Version_3_2#
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)cpder(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 - Xh2ohr)) = BQ;
o Equation V((hThermoSysPro.Properties.FlueGases.FlueGases_drhodp(P, T, Xco2, Xh2o, Xo2, Xso2) - 1)der(P) + (hThermoSysPro.Properties.FlueGases.FlueGases_drhodh(P, T, Xco2, Xh2o, Xo2, Xso2) + rho)cpder(T)) = BH; is replaced by V(((h - Xh2o*hr)*ThermoSysPro.Properties.FlueGases.FlueGases_drhodp(P, T, Xco2, Xh2o, Xo2, Xso2) - 1)der(P) + ((h - Xh2ohr)*ThermoSysPro.Properties.FlueGases.FlueGases_drhodh(P, T, Xco2, Xh2o, Xo2, Xso2) + rho)der(h - Xh2ohr)) = BH;
Component FlueGases.Volumes.VolumesATh and VolumesBTh
o Equation BH = Ce1.Qhe1 + Ce2.Qhe2 - Cs1.Qhs1 - Cs2.Qhs2 + Cth.W; is replaced by BH = Ce1.Q*(he1 - Ce1.Xh2ohr) + Ce2.Q(he2 - Ce2.Xh2ohr) - Cs1.Q(hs1 - Cs1.Xh2ohr) - Cs2.Q(hs2 - Cs2.Xh2o*hr) + Cth.W;
Component FlueGases.Volumes.VolumesCTh
o Equation BH = Ce1.Qhe1 + Ce2.Qhe2 + Ce3.Qhe3 - Cs.Qhs + Cth.W; is replaced by BH = Ce1.Q*(he1 - Ce1.Xh2ohr) + Ce2.Q(he2 - Ce2.Xh2ohr) + Ce3.Q(he3 - Ce3.Xh2ohr) - Cs.Q(hs - Cs.Xh2o*hr) + Cth.W;
Component FlueGases.Volumes.VolumesDTh
o Equation BH = Ce1.Qhe1 – Cs1.Qhs1 – Cs2.Qhs2 – Cs3.Qhs3 + Cth.W; is replaced by BH = Ce.Q*(he - Ce.Xh2ohr) - Cs1.Q(hs1 - Cs1.Xh2ohr) - Cs2.Q(hs2 - Cs2.Xh2ohr) - Cs3.Q(hs3 - Cs3.Xh2o*hr) + Cth.W;
Component FlueGases.Junctions.Mixer2
o Equation 0 = Ce1.Qhe1 + Ce2.Qhe2 - Cs.Qhs; is replaced by 0 = Ce1.Q(he1 - Ce1.Xh2ohr) + Ce2.Q(he2 - Ce2.Xh2ohr) - Cs.Q(hs - Cs.Xh2o*hr);
Component FlueGases.Junctions.Splitter2
o Equation 0 = Ce.Qhe - Cs1.Qhs1 - Cs2.Qhs2 is replaced by 0 = Ce.Q(he - Ce.Xh2ohr) - Cs1.Q(hs1 - Cs1.Xh2ohr) - 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 = CpfuelTfuel; Hcv = CpcdTsf; Hbf = CpcdTbf; 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 = QeaXQat(Hiscpat - Hecpat)/eta_isc; is replaced by Wcpat = QeaXQat(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 KThermoSysPro.Functions.ThermoSquare(Q, eps)/rho; is replaced by deltaP = if noEvent(abs(Q) < Qeps) then 1.e-10 else KThermoSysPro.Functions.ThermoSquare(Q, eps)/rho;
Component WaterSteam.HeatExchangers.DynamicOnePhaseFlowPipe
o Equation hc[i] = hcCorr3.66k[i]/D; is replaced by hc[i] = hcCorrk[i]/Dmax(4.36,0.023Re1[i]^0.8Pr[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_KcQc[i]^2/rhoc[i]; is replaced by DPc[i] = p_KcThermoSysPro.Functions.ThermoSquare(Qc[i], 1.e-3)/rhoc[i];
o Equation DPf[i] = p_KfQf[i]^2/rhof[i]; is replaced by DPf[i] = p_KfThermoSysPro.Functions.ThermoSquare(Qf[i], 1.e-3)/rhof[i];
Component WaterSteam.HeatExchangers.StaticWaterWaterExchanger
o Equation DPc = p_KcQc^2/rhoc; is replaced by DPc = p_KcThermoSysPro.Functions.ThermoSquare(Qc, 1.e-3)/rhoc;
o Equation DPf = p_KfQf^2/rhof; is replaced by DPf = p_KfThermoSysPro.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(CcondrhovVv*(hvs - hv)/(hvs - hls) + (Cas.Q*(hls - Cas.h) + 0.5*(Wpv + abs(Wpv)) + Wlv)/(hv - hls)); is replaced by Qcond = CcondrhovVv*(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.Qxe/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 = (WmecaRelec)(0.0479Cosphi + 0.952); else Welec = (WmecaRelec_red)(0.0479Cosphi + 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 = 100Wboil/Wfuel; is replaced by if (Boiler_efficiency_type == 1) then eta_boil = 100Wboil/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).