classVersion_3_2
Version 3.2
Information
Version 4.1 (August 5, 2020) ThermoSysPro modifications from version 3.1 Package Correlations o New Function Misc.Function_FM o New Function Thermal.Function_U1 Component FlueGases.HeatExchangers.StaticFluegasesFluegasesExchangerKS o Introduction of connector InputReal Kcorr and variable Kcor Components FlueGases.Volumes.VolumesATh; VolumesBTh; VolumesCTh and VolumesDTh o New parameters hr, Xco20, Xh2o0, Xo20, Xso20 o Initial section is modified to replace state variable T with state variable h. o Equation V*(ThermoSysPro.Properties.FlueGases.FlueGases_drhodp(P, T, Xco2, Xh2o, Xo2, Xso2)*der(P) + ThermoSysPro.Properties.FlueGases.FlueGases_drhodh(P, T, Xco2, Xh2o, Xo2, Xso2)*cp*der(T)) = BQ; is replaced by V*(ThermoSysPro.Properties.FlueGases.FlueGases_drhodp(P, T, Xco2, Xh2o, Xo2, Xso2)*der(P) + ThermoSysPro.Properties.FlueGases.FlueGases_drhodh(P, T, Xco2, Xh2o, Xo2, Xso2)*der(h - Xh2o*hr)) = BQ; o Equation V*((h*ThermoSysPro.Properties.FlueGases.FlueGases_drhodp(P, T, Xco2, Xh2o, Xo2, Xso2) - 1)*der(P) + (h*ThermoSysPro.Properties.FlueGases.FlueGases_drhodh(P, T, Xco2, Xh2o, Xo2, Xso2) + rho)*cp*der(T)) = BH; is replaced by V*(((h - Xh2o*hr)*ThermoSysPro.Properties.FlueGases.FlueGases_drhodp(P, T, Xco2, Xh2o, Xo2, Xso2) - 1)*der(P) + ((h - Xh2o*hr)*ThermoSysPro.Properties.FlueGases.FlueGases_drhodh(P, T, Xco2, Xh2o, Xo2, Xso2) + rho)*der(h - Xh2o*hr)) = BH; Component FlueGases.Volumes.VolumesATh and VolumesBTh o Equation BH = Ce1.Q*he1 + Ce2.Q*he2 - Cs1.Q*hs1 - Cs2.Q*hs2 + Cth.W; is replaced by BH = Ce1.Q*(he1 - Ce1.Xh2o*hr) + Ce2.Q*(he2 - Ce2.Xh2o*hr) - Cs1.Q*(hs1 - Cs1.Xh2o*hr) - Cs2.Q*(hs2 - Cs2.Xh2o*hr) + Cth.W; Component FlueGases.Volumes.VolumesCTh o Equation BH = Ce1.Q*he1 + Ce2.Q*he2 + Ce3.Q*he3 - Cs.Q*hs + Cth.W; is replaced by BH = Ce1.Q*(he1 - Ce1.Xh2o*hr) + Ce2.Q*(he2 - Ce2.Xh2o*hr) + Ce3.Q*(he3 - Ce3.Xh2o*hr) - Cs.Q*(hs - Cs.Xh2o*hr) + Cth.W; Component FlueGases.Volumes.VolumesDTh o Equation BH = Ce1.Q*he1 – Cs1.Q*hs1 – Cs2.Q*hs2 – Cs3.Q*hs3 + Cth.W; is replaced by BH = Ce.Q*(he - Ce.Xh2o*hr) - Cs1.Q*(hs1 - Cs1.Xh2o*hr) - Cs2.Q*(hs2 - Cs2.Xh2o*hr) - Cs3.Q*(hs3 - Cs3.Xh2o*hr) + Cth.W; Component FlueGases.Junctions.Mixer2 o Equation 0 = Ce1.Q*he1 + Ce2.Q*he2 - Cs.Q*hs; is replaced by 0 = Ce1.Q*(he1 - Ce1.Xh2o*hr) + Ce2.Q*(he2 - Ce2.Xh2o*hr) - Cs.Q*(hs - Cs.Xh2o*hr); Component FlueGases.Junctions.Splitter2 o Equation 0 = Ce.Q*he - Cs1.Q*hs1 - Cs2.Q*hs2 is replaced by 0 = Ce.Q*(he - Ce.Xh2o*hr) - Cs1.Q*(hs1 - Cs1.Xh2o*hr) - Cs2.Q*(hs2 - Cs2.Xh2o*hr); Package FlueGases.BoundaryConditions o New component SourceQX Package Combustion.CombustionChambers o New component GenericCombustion1D Component CombustionChamber.GenericCombustion o Equations Hfuel = Cpfuel*Tfuel; Hcv = Cpcd*Tsf; Hbf = Cpcd*Tbf; are replaced by Hfuel = Cpfuel*(Tfuel - 273.16); Hcv = Cpcd*(Tsf - 273.16); Hbf = Cpcd*(Tbf - 273.16); Component Combustion.CombustionChambers.GTCombustionChamber o Equation Wcpat = Qea*XQat*(Hiscpat - Hecpat)/eta_isc; is replaced by Wcpat = Qea*XQat*(Hiscpat - Hecpat)*eta_isc; Component Combustion.BoundaryConditions.FuelSourcePQ o Parameter rho=0.72 is replaced by rho=720 Package Properties o New Package Properties.DryAirIdealGas o New Package Properties.SolarSalt o Package Properties.Fluid has been completed o Package Properties.C3H3F5 has been completed o Package Properties.MoltenSalt has been completed o Package Properties.Oil_TherminolVP1 has been completed Package ThermoSysPro o New package Solar Package Thermal.HeatTransfer o New component HeatExchangerWallWithLosses Package WaterSteam.HeatExchangers o New component CoolingTower o New component DynamicOnePhaseFlowShell o New component DynamicTwoPhaseFlowRiser o New component DynamicTwoFlowHeatExchangerShell o New component SteamGenerator_1SG o New component SteamGenerator_4SG o New component StaticCondenserHEI o Component TemperatureWallBoiler is removed Package WaterSteam.Volumes o New component TwoPhaseCavityOnePipe Component WaterSteam.Machines.StodolaTurbine o New parameter eta_is_wet(start=0.83) "Isentropic efficiency for wet steam"; eta_is_wet = xm*eta_is; Component WaterSteam.PressureLosses.LumpedStraightPipe o New parameter ntubes o Equation mu = ThermoSysPro.Properties.WaterSteam.IF97.DynamicViscosity_rhoT(rho, T); is replaced by mu = ThermoSysPro.Properties.Fluid.DynamicViscosity_Ph(Pm,h,fluid,mode, 0.1,0.1,0.1,0); for fluid = 2 Component WaterSteam.PressureLosses.InvSingularPressureLoss o Equation deltaP = if noEvent(abs(Q) < Qeps) then 1.e10 else K*ThermoSysPro.Functions.ThermoSquare(Q, eps)/rho; is replaced by deltaP = if noEvent(abs(Q) < Qeps) then 1.e-10 else K*ThermoSysPro.Functions.ThermoSquare(Q, eps)/rho; Component WaterSteam.HeatExchangers.DynamicOnePhaseFlowPipe o Equation hc[i] = hcCorr*3.66*k[i]/D; is replaced by hc[i] = hcCorr*k[i]/D*max(4.36,0.023*Re1[i]^0.8*Pr[i]^0.4); o Equation dpa[i] = noEvent(Q[i]* abs Q[i]*(1/rhoc[i + 1] - 1/rhoc[i])/A^2); is replaced by dpa[i] = Q[i]^2*(1/rhoc[i + 1] - 1/rhoc[i])/A^2; Component WaterSteam. HeatExchangers.DynamicTwoPhaseFlowPipe o Equation xv1[i] = pro1[i].x); is replaced by xv1[i] = if noEvent((P[i+1] > pcrit) or (T1[i] > Tcrit)) then 1 else pro1[i].x; o Equation xv2[i] = pro2[i].x); is replaced by xv2[i] = if noEvent(((P[i] + P[i + 1])/2 > pcrit) or (T2[i] > Tcrit)) then 1 else pro2[i].x; o Equation dpa[i] = noEvent(Q[i]* abs Q[i]*(1/rhoc[i + 1] - 1/rhoc[i])/A^2); is replaced by dpa[i] = Q[i]^2*(1/rhoc[i + 1] - 1/rhoc[i])/A^2; Component WaterSteam.Junctions.SteamExtractionSplitter o parameter Real alpha = 1 "Steam extraction rate (0 <= alpha <= 1)"; is replaced by parameter Real alpha = 1 "Vapor mass fraction at the extraction/Vapor mass fraction at the inlet (0 <= alpha <= 1)"; o Equation x_ex = 1 - alpha*(1 - proe.x); is replaced by x_ex = alpha*proe.x; Component WaterSteam.HeatExchangers.DynamicCondenser o Component is replaced by new component DynamicCondenser (from SEPTEN) Component WaterSteam.HeatExchangers.DynamicWaterWaterExchanger o Equation DPc[i] = p_Kc*Qc[i]^2/rhoc[i]; is replaced by DPc[i] = p_Kc*ThermoSysPro.Functions.ThermoSquare(Qc[i], 1.e-3)/rhoc[i]; o Equation DPf[i] = p_Kf*Qf[i]^2/rhof[i]; is replaced by DPf[i] = p_Kf*ThermoSysPro.Functions.ThermoSquare(Qf[i], 1.e-3)/rhof[i]; Component WaterSteam.HeatExchangers.StaticWaterWaterExchanger o Equation DPc = p_Kc*Qc^2/rhoc; is replaced by DPc = p_Kc*ThermoSysPro.Functions.ThermoSquare(Qc, 1.e-3)/rhoc; o Equation DPf = p_Kf*Qf^2/rhof; is replaced by DPf = p_Kf*ThermoSysPro.Functions.ThermoSquare(Qf, 1.e-3)/rhof; Component WaterSteam.Machines.CentrifugalPump o parameter Integer mode=0 is replaced by parameter Integer mode=1 o Equation Wm - Wr = 0; is replaced by Cm - Cr = 0; Component WaterSteam.Machines.DynamicCentrifugalPump o parameter Integer mode=0 is replaced by parameter Integer mode=1 Component WaterSteam.Machines.StaticCentrifugalPump o parameter Integer mode=0 is replaced by parameter Integer mode=1 Component WaterSteam.Volumes.Pressurizer o parameter Real Cevap=0.5 "Evaporation coefficient"; is replaced by parameter Real Cevap=0.1 "Evaporation coefficient"; o Equation Qcond = noEvent(Ccond*rhov*Vv*(hvs - hv)/(hvs - hls) + (Cas.Q*(hls - Cas.h) + 0.5*(Wpv + abs(Wpv)) + Wlv)/(hv - hls)); is replaced by Qcond = Ccond*rhov*Vv*(hvs - hv)/(hvs - hls); Component WaterSteam.Junctions.SteamDryer o Deleted variable Real eta1(start=1.0) "Vapor mass fraction at outlet (0 < eta <= 1)"; o Deleted equation eta1 = noEvent(max(xe, eta)); o Equation Csl.h_vol = noEvent(if (Csv.Q > 0) then (if (xe > 0) then lsat1.h else Cev.h) else h); is replaced by Csl.h_vol = noEvent(if (xe > 0) then lsat1.h else Cev.h); o Equation Csv.Q = Cev.Q*xe/eta1; is replaced by Csv.Q = noEvent(if (xe > 0) then Cev.Q*(1-eta*(1-xe)) else 0); Component MultiFluids.Machines.AlternatingEngine o Parameter Pnom is removed o Constant Real Gamma=1.3333 "Flue gases gamma = Cp/Cv"; is replaced by parameter Real Gamma=1.3333 "Flue gases gamma = Cp/Cv"; o Equation Tfcb = (Wcomb - Wpth_ref)/ThermoSysPro.Properties.FlueGases.FlueGases_cp(Pfcp, (Tfcp + Tfcb)/2, XsfCO2, XsfH2O, XsfO2, XsfSO2)/0.75/Qsf + Tfcp; is replaced by Tfcb = Wcomb/ThermoSysPro.Properties.FlueGases.FlueGases_cp(Pfcp, (Tfcp + Tfcb)/2, XsfCO2, XsfH2O, XsfO2, XsfSO2)/Qsf + Tfcp; o Equation if (Wmeca > (Pnom * 0.5)) then Welec = (Wmeca*Relec)*(0.0479*Cosphi + 0.952); else Welec = (Wmeca*Relec_red)*(0.0479*Cosphi + 0.952); end if; is replaced by Welec = Wmeca*Relec; Component MultiFluids.Boilers.FossilFuelBoiler o New parameter Boiler_efficiency_type = 1 "1: Taking into account LHV only - 2: Using the total incoming power"; o Equation eta_boil = 100*Wboil/Wfuel; is replaced by if (Boiler_efficiency_type == 1) then eta_boil = 100*Wboil/Wfuel; else eta_boil = 100*Wboil/Wtot; end if; Package InstrumentationAndControl o New block AdaptorForFMU.AdaptorModelicaTSP o New block AdaptorForFMU.AdaptorTSPModelica All components MultiFluids.Machines.CHPEngine* o Parameter Pnom is removed Component FlueGases.HeatExchangers.StaticWallFlueGasesExchanger o Parameter Surf_ext becomes public Component WaterSteam.HeatExchangers.DynamicOnePhaseFlow o Component is renamed as DynamicOnePhaseFlowShell Component WaterSteam.Volumes.Tank o The momentum balance equations are replaced by singular pressure losses that represent the pressure losses at the orifices. Component WaterSteam.PressureLosses.DynamicCheckValve o The spring torque Cr is removed. Component WaterSteam.PressureLosses.DynamicReliefValve o Component is completely modified (previous version was incorrect).