This package contains examples for the use of models that can be found in Buildings.Utilities.Psychrometrics.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).Name | Description |
---|---|
DewPointTemperature | Unit test for dew point temperature calculation |
HumidityRatioPressure | Unit test for humidity ratio model |
MassFraction_pTphi | Unit test for dew point temperature calculation |
TotalAirDryAir | Unit test for conversion of humidity per total air and dry air mass |
TWetBul_TDryBulPhi | Model to test the wet bulb temperature computation |
TWetBul_TDryBulXi | |
WetBul_pTX | Model to test the wet bulb temperature computation |
model DewPointTemperature "Unit test for dew point temperature calculation" extends Modelica.Icons.Example; package Medium = Buildings.Media.PerfectGases.MoistAir "Medium model";Buildings.Utilities.Psychrometrics.pW_TDewPoi watVapPre; Modelica.Blocks.Sources.Ramp XHum( duration=1, height=(0.01 - 0.1), offset=0.1) "Humidity concentration"; Buildings.Utilities.Psychrometrics.pW_X humRat( use_p_in=false); Buildings.Utilities.Psychrometrics.TDewPoi_pW TDewPoi; equationconnect(XHum.y, humRat.X_w); connect(humRat.p_w, TDewPoi.p_w); connect(TDewPoi.T, watVapPre.T); end DewPointTemperature;
model HumidityRatioPressure "Unit test for humidity ratio model" extends Modelica.Icons.Example; package Medium = Buildings.Media.PerfectGases.MoistAir "Medium model";Buildings.Utilities.Psychrometrics.pW_X vapPre( use_p_in=true) "Model for humidity ratio"; Modelica.Blocks.Sources.Ramp XHumDryAir( duration=1, height=(0.0133 - 0.2), offset=0.2) "Humidity concentration in [kg/kg dry air]"; Modelica.Blocks.Sources.Constant p(k=101325) "Pressure"; Buildings.Utilities.Psychrometrics.X_pW humRat( use_p_in=true); Diagnostics.AssertEquality assertEquality(threShold=1E-5) "Checks that model and its inverse implementation are correct"; ToTotalAir toTotalAir; equationconnect(vapPre.p_w, humRat.p_w); connect(humRat.X_w, assertEquality.u1); connect(p.y, humRat.p_in); connect(p.y, vapPre.p_in); connect(XHumDryAir.y, toTotalAir.XiDry); connect(toTotalAir.XiTotalAir, vapPre.X_w); connect(toTotalAir.XiTotalAir, assertEquality.u2); end HumidityRatioPressure;
model MassFraction_pTphi "Unit test for dew point temperature calculation" extends Modelica.Icons.Example; package Medium1 = Buildings.Media.PerfectGases.MoistAir "Medium model"; package Medium2 = Buildings.Media.GasesPTDecoupled.MoistAir "Medium model";Modelica.Blocks.Sources.Ramp Phi( offset=0, duration=0.5, height=1) "Relative humidity"; Buildings.Utilities.Psychrometrics.X_pTphi masFra1 "Mass fraction computation"; Modelica.Blocks.Sources.Ramp T( height=10, offset=283.15, duration=0.5, startTime=0.5) "Temperature"; Modelica.Blocks.Sources.Constant P(k=101325) "Pressure"; Buildings.Utilities.Psychrometrics.X_pTphi masFra2(use_p_in=false) "Mass fraction computation"; equationconnect(T.y, masFra1.T); connect(Phi.y, masFra1.phi); connect(T.y, masFra2.T); connect(Phi.y, masFra2.phi); connect(P.y, masFra1.p_in); end MassFraction_pTphi;
model TotalAirDryAir "Unit test for conversion of humidity per total air and dry air mass" extends Modelica.Icons.Example; package Medium = Buildings.Media.PerfectGases.MoistAir "Medium model";Modelica.Blocks.Sources.Ramp XHum( duration=1, height=(0.01 - 0.1), offset=0.1) "Humidity concentration"; ToTotalAir toTotalAir; ToDryAir toDryAir; Diagnostics.AssertEquality assertEquality(threShold=1E-5) "Checks that model and its inverse implementation are correct"; equationconnect(toTotalAir.XiDry, XHum.y); connect(toTotalAir.XiTotalAir, toDryAir.XiTotalAir); connect(toDryAir.XiDry, assertEquality.u1); connect(assertEquality.u2, XHum.y); end TotalAirDryAir;
model TWetBul_TDryBulPhi "Model to test the wet bulb temperature computation" extends Modelica.Icons.Example; package Medium = Buildings.Media.PerfectGases.MoistAirUnsaturated "Medium model";Buildings.Utilities.Psychrometrics.TWetBul_TDryBulPhi wetBulPhi(redeclare package Medium = Medium) "Model for wet bulb temperature"; Modelica.Blocks.Sources.Constant p(k=101325) "Pressure"; Modelica.Blocks.Sources.Ramp phi( duration=1, height=0.98, offset=0.01) "Relative humidity"; Modelica.Blocks.Sources.Constant TDryBul(k=283.15) "Dry bulb temperature"; Buildings.Utilities.Psychrometrics.TWetBul_TDryBulPhi wetBulPhiApp(redeclare package Medium = Medium, approximateWetBulb=true) "Model for wet bulb temperature"; equationconnect(p.y, wetBulPhi.p); connect(TDryBul.y, wetBulPhi.TDryBul); connect(phi.y, wetBulPhi.phi); connect(p.y, wetBulPhiApp.p); connect(TDryBul.y, wetBulPhiApp.TDryBul); connect(phi.y, wetBulPhiApp.phi); end TWetBul_TDryBulPhi;
model TWetBul_TDryBulXi extends Modelica.Icons.Example; package Medium = Buildings.Media.PerfectGases.MoistAir "Medium model";Modelica.Blocks.Sources.Ramp TDryBul( height=10, duration=1, offset=273.15 + 30) "Dry bulb temperature"; Buildings.Utilities.Psychrometrics.TWetBul_TDryBulXi wetBul( redeclare package Medium = Medium) "Model for wet bulb temperature"; Modelica.Blocks.Sources.Constant p(k=101325) "Pressure"; Modelica.Blocks.Sources.Ramp XHum( duration=1, height=(0.0133 - 0.0175), offset=0.0175) "Humidity concentration"; Buildings.Utilities.Psychrometrics.TWetBul_TDryBulXi wetBulApp(redeclare package Medium = Medium, approximateWetBulb=true) "Model for wet bulb temperature"; equationconnect(p.y, wetBul.p); connect(XHum.y, wetBul.Xi[1]); connect(TDryBul.y, wetBul.TDryBul); connect(p.y, wetBulApp.p); connect(XHum.y, wetBulApp.Xi[1]); connect(TDryBul.y, wetBulApp.TDryBul); end TWetBul_TDryBulXi;
model WetBul_pTX "Model to test the wet bulb temperature computation" extends Modelica.Icons.Example; package Medium = Buildings.Media.PerfectGases.MoistAirUnsaturated "Medium model";Modelica.Blocks.Sources.Constant p(k=101325) "Pressure"; Modelica.Blocks.Sources.Ramp XDryBul( duration=1, height=0.014, offset=0) "Dry bulb water vapor mass fraction"; Modelica.Blocks.Sources.Constant TDryBul(k=293.15) "Dry bulb temperature"; Buildings.Utilities.Psychrometrics.WetBul_pTX wetBul_TDryBulX(redeclare package Medium = Medium); equationconnect(TDryBul.y, wetBul_TDryBulX.TDryBul); connect(XDryBul.y, wetBul_TDryBulX.XDryBul); connect(p.y, wetBul_TDryBulX.p); end WetBul_pTX;