Version 3.2 (August 5, 2020)
ThermoSysPro modifications from version 3.1
o New Function Misc.Function_FM
o New Function Thermal.Function_U1
o Introduction of connector InputReal Kcorr and variable Kcor
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;
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;
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;
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;
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);
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);
o New component SourceQX
o New component GenericCombustion1D
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);
o Equation Wcpat = Qea*XQat*(Hiscpat - Hecpat)/eta_isc; is replaced by Wcpat = Qea*XQat*(Hiscpat - Hecpat)*eta_isc;
o Parameter rho=0.72 is replaced by rho=720
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
o New package Solar
o New component HeatExchangerWallWithLosses
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
o New component TwoPhaseCavityOnePipe
o New parameter eta_is_wet(start=0.83) "Isentropic efficiency for wet steam"; eta_is_wet = xm*eta_is;
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
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;
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;
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;
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;
o Component is replaced by new component DynamicCondenser (from SEPTEN)
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];
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;
o parameter Integer mode=0 is replaced by parameter Integer mode=1
o Equation Wm - Wr = 0; is replaced by Cm - Cr = 0;
o parameter Integer mode=0 is replaced by parameter Integer mode=1
o parameter Integer mode=0 is replaced by parameter Integer mode=1
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);
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);
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;
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;
o New block AdaptorForFMU.AdaptorModelicaTSP
o New block AdaptorForFMU.AdaptorTSPModelica
o Parameter Pnom is removed
o Parameter Surf_ext becomes public
o Component is renamed as DynamicOnePhaseFlowShell
o The momentum balance equations are replaced by singular pressure losses that represent the pressure losses at the orifices.
o The spring torque Cr is removed.
o Component is completely modified (previous version was incorrect).