Version_3_2

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).