Buildings.Fluid.HeatExchangers.ThermalWheels.Latent.Examples

Collection of models that illustrate model use and test models

Information

This package contains validation models for the classes in Buildings.Fluid.HeatExchangers.ThermalWheels.Latent.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

Package Content

Name Description
Buildings.Fluid.HeatExchangers.ThermalWheels.Latent.Examples.SpaceCooling SpaceCooling Space cooling system

Buildings.Fluid.HeatExchangers.ThermalWheels.Latent.Examples.SpaceCooling Buildings.Fluid.HeatExchangers.ThermalWheels.Latent.Examples.SpaceCooling

Space cooling system

Buildings.Fluid.HeatExchangers.ThermalWheels.Latent.Examples.SpaceCooling

Information

This block is identical to Buildings.Examples.Tutorial.SpaceCooling.System3, except that the heat recovery device is modelled with Buildings.Fluid.HeatExchangers.ThermalWheels.Latent.BypassDampers.

The major input signals for the heat recovery device are configured as follows:

The expected output is:

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
replaceable package MediumABuildings.Media.AirMedium for air
replaceable package MediumWBuildings.Media.WaterMedium for water
VolumeV6*10*3Room volume [m3]
Genericperper(mSup_flow_nominal=mA_flo...Performance record for the enthalpy wheel
TemperatureTASup_nominal291.15Nominal air temperature supplied to room [K]
DimensionlessRatiowASup_nominal0.012Nominal air humidity ratio supplied to room [kg/kg] assuming 90% relative humidity [1]
TemperatureTRooSet297.15Nominal room air temperature [K]
TemperatureTMixSet298.15Nominal mixed air temperature [K]
TemperatureTOut_nominal303.15Design outlet air temperature [K]
TemperatureTHeaRecLvgTOut_nominal - per.epsSen_no...Air temperature leaving the heat recovery [K]
DimensionlessRatiowHeaRecLvg0.0135Air humidity ratio leaving the heat recovery [kg/kg] [1]
HeatFlowRateQRooInt_flow1000Internal heat gains of the room [W]
HeatFlowRateQRooC_flow_nominal-QRooInt_flow - 10E3/30*(TOu...Nominal cooling load of the room [W]
MassFlowRatemA_flow_nominal1.3*QRooC_flow_nominal/1006/...Nominal air mass flow rate, increased by factor 1.3 to allow for recovery after temperature setback [kg/s]
TemperatureDifferencedTFan2Estimated temperature raise across fan that needs to be made up by the cooling coil [K]
HeatFlowRateQCoiC_flow_nominalmA_flow_nominal*(TASup_nomin...Cooling load of coil, taking into account outside air sensible and latent heat removal [W]
TemperatureTWSup_nominal285.15Water supply temperature [K]
TemperatureTWRet_nominal289.15Water return temperature [K]
MassFlowRatemW_flow_nominal-QCoiC_flow_nominal/(TWRet_n...Nominal water mass flow rate [kg/s]

Connectors

TypeNameDescription
replaceable package MediumAMedium for air
replaceable package MediumWMedium for water
BusweaBusWeather data bus

Modelica definition

model SpaceCooling "Space cooling system" extends Modelica.Icons.Example; replaceable package MediumA = Buildings.Media.Air "Medium for air"; replaceable package MediumW = Buildings.Media.Water "Medium for water"; parameter Modelica.Units.SI.Volume V=6*10*3 "Room volume"; // Heat recovery effectiveness parameter Buildings.Fluid.HeatExchangers.ThermalWheels.Data.Generic per( mSup_flow_nominal=mA_flow_nominal, mExh_flow_nominal=mA_flow_nominal, dpSup_nominal=200, have_varSpe=false) "Performance record for the enthalpy wheel"; ///////////////////////////////////////////////////////// // Design air conditions parameter Modelica.Units.SI.Temperature TASup_nominal=291.15 "Nominal air temperature supplied to room"; parameter Modelica.Units.SI.DimensionlessRatio wASup_nominal=0.012 "Nominal air humidity ratio supplied to room [kg/kg] assuming 90% relative humidity"; parameter Modelica.Units.SI.Temperature TRooSet=297.15 "Nominal room air temperature"; parameter Modelica.Units.SI.Temperature TMixSet=298.15 "Nominal mixed air temperature"; parameter Modelica.Units.SI.Temperature TOut_nominal=303.15 "Design outlet air temperature"; parameter Modelica.Units.SI.Temperature THeaRecLvg= TOut_nominal - per.epsSen_nominal*(TOut_nominal - TRooSet) "Air temperature leaving the heat recovery"; parameter Modelica.Units.SI.DimensionlessRatio wHeaRecLvg=0.0135 "Air humidity ratio leaving the heat recovery [kg/kg]"; ///////////////////////////////////////////////////////// // Cooling loads and air mass flow rates parameter Modelica.Units.SI.HeatFlowRate QRooInt_flow=1000 "Internal heat gains of the room"; parameter Modelica.Units.SI.HeatFlowRate QRooC_flow_nominal= -QRooInt_flow -10E3/30*(TOut_nominal - TRooSet) "Nominal cooling load of the room"; parameter Modelica.Units.SI.MassFlowRate mA_flow_nominal= 1.3*QRooC_flow_nominal/1006/(TASup_nominal - TRooSet) "Nominal air mass flow rate, increased by factor 1.3 to allow for recovery after temperature setback"; parameter Modelica.Units.SI.TemperatureDifference dTFan=2 "Estimated temperature raise across fan that needs to be made up by the cooling coil"; parameter Modelica.Units.SI.HeatFlowRate QCoiC_flow_nominal=mA_flow_nominal*( TASup_nominal - THeaRecLvg - dTFan)*1006 + mA_flow_nominal*(wASup_nominal - wHeaRecLvg)*2458.3e3 "Cooling load of coil, taking into account outside air sensible and latent heat removal"; ///////////////////////////////////////////////////////// // Water temperatures and mass flow rates parameter Modelica.Units.SI.Temperature TWSup_nominal=285.15 "Water supply temperature"; parameter Modelica.Units.SI.Temperature TWRet_nominal=289.15 "Water return temperature"; parameter Modelica.Units.SI.MassFlowRate mW_flow_nominal= -QCoiC_flow_nominal/(TWRet_nominal - TWSup_nominal)/4200 "Nominal water mass flow rate"; Buildings.Fluid.MixingVolumes.MixingVolume vol( redeclare package Medium = MediumA, m_flow_nominal=mA_flow_nominal, V=V, nPorts=2, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, mSenFac=3) "Indoor room"; Modelica.Thermal.HeatTransfer.Components.ThermalConductor theCon( G=10000/30) "Thermal conductance with the ambient"; Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature TOut "Outside temperature"; Modelica.Thermal.HeatTransfer.Sources.FixedHeatFlow preHea( Q_flow=QRooInt_flow) "Prescribed heat flow"; Buildings.Fluid.Movers.FlowControlled_m_flow fan( redeclare package Medium = MediumA, per(etaHydMet=Buildings.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.NotProvided, etaMotMet=Buildings.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.NotProvided), nominalValuesDefineDefaultPressureCurve=true, m_flow_nominal=mA_flow_nominal, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Supply air fan"; Buildings.Fluid.HeatExchangers.ThermalWheels.Latent.BypassDampers whe( redeclare package Medium = MediumA, per=per) "Heat recovery with bypass damper"; Buildings.Fluid.HeatExchangers.WetCoilEffectivenessNTU cooCoi( redeclare package Medium1 = MediumW, redeclare package Medium2 = MediumA, m1_flow_nominal=mW_flow_nominal, m2_flow_nominal=mA_flow_nominal, dp1_nominal=6000, dp2_nominal=200, use_Q_flow_nominal=true, Q_flow_nominal=QCoiC_flow_nominal, T_a1_nominal=TWSup_nominal, T_a2_nominal=THeaRecLvg, w_a2_nominal=wHeaRecLvg, show_T=true, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Cooling coil"; Buildings.Fluid.Sources.Outside out( redeclare package Medium = MediumA, nPorts=2) "Outdoor"; Buildings.Fluid.Sources.MassFlowSource_T souWat( nPorts=1, redeclare package Medium = MediumW, use_m_flow_in=true, T=TWSup_nominal) "Source for water flow rate"; Buildings.Fluid.Sources.Boundary_pT sinWat( nPorts=1, redeclare package Medium = MediumW) "Sink for water circuit"; Buildings.BoundaryConditions.WeatherData.ReaderTMY3 weaDat( pAtmSou=Buildings.BoundaryConditions.Types.DataSource.Parameter, TDryBul=TOut_nominal, filNam=Modelica.Utilities.Files.loadResource("modelica://Buildings/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos"), TDryBulSou=Buildings.BoundaryConditions.Types.DataSource.File) "Weather data reader"; Buildings.BoundaryConditions.WeatherData.Bus weaBus "Weather data bus"; Buildings.Controls.OBC.CDL.Reals.Sources.Pulse mAir_flow( amplitude=-mA_flow_nominal, width=0.5, period=87600, shift=0.24*87600, offset=mA_flow_nominal) "Fan air flow rate"; Buildings.Fluid.Sensors.TemperatureTwoPort senTemHXOut( redeclare package Medium = MediumA, m_flow_nominal=mA_flow_nominal) "Temperature sensor for heat recovery outlet on supply side"; Buildings.Fluid.Sensors.TemperatureTwoPort senTemSupAir( redeclare package Medium = MediumA, m_flow_nominal=mA_flow_nominal) "Temperature sensor for supply air"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TRooSetPoi( k=TRooSet) "Room temperature set point"; Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor senTemRoo "Room temperature sensor"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse opeSig( width=0.5, period=86400, shift=0.25*86400) "Operating signal"; Buildings.Controls.Continuous.LimPID conWhe( u_s(final unit="K", displayUnit="degC"), u_m(final unit="K", displayUnit="degC"), k=0.1, Ti=60) "Heat recovery controller"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TMixSetPoi( k=TMixSet) "Mixed air temperature set point"; Buildings.Fluid.Sensors.TemperatureTwoPort senTemRetAir( redeclare package Medium = MediumA, m_flow_nominal=mA_flow_nominal) "Temperature sensor for return air"; Buildings.Controls.Continuous.LimPID conRoo( k=0.1, Ti=60, yMax=mW_flow_nominal, reverseActing=false) "Room controller"; Buildings.Fluid.Sensors.MassFractionTwoPort senMasFraHXIn( redeclare package Medium = MediumA, m_flow_nominal=mA_flow_nominal) "Humidity sensor for heat recovery inlet on supply side"; Buildings.Fluid.Sensors.MassFractionTwoPort senMasFraHXOut( redeclare package Medium = MediumA, m_flow_nominal=mA_flow_nominal) "Humidity sensor for heat recovery outlet on supply side"; equation connect(theCon.port_b, vol.heatPort); connect(preHea.port, vol.heatPort); connect(fan.port_b, vol.ports[1]); connect(souWat.ports[1], cooCoi.port_a1); connect(cooCoi.port_b1, sinWat.ports[1]); connect(weaDat.weaBus, out.weaBus); connect(weaDat.weaBus, weaBus); connect(weaBus.TDryBul, TOut.T); connect(fan.m_flow_in, mAir_flow.y); connect(senTemHXOut.port_b, cooCoi.port_a2); connect(cooCoi.port_b2, senTemSupAir.port_a); connect(senTemSupAir.port_b, fan.port_a); connect(TOut.port, theCon.port_a); connect(vol.heatPort, senTemRoo.port); connect(whe.port_b2, out.ports[1]); connect(opeSig.y, whe.uRot); connect(TMixSetPoi.y, conWhe.u_s); connect(senTemHXOut.T, conWhe.u_m); connect(conWhe.y, whe.uBypDamPos); connect(vol.ports[2], senTemRetAir.port_a); connect(conRoo.u_m, senTemRoo.T); connect(TRooSetPoi.y, conRoo.u_s); connect(conRoo.y, souWat.m_flow_in); connect(whe.port_a2, senTemRetAir.port_b); connect(senMasFraHXIn.port_a, out.ports[2]); connect(senMasFraHXIn.port_b, whe.port_a1); connect(whe.port_b1, senMasFraHXOut.port_a); connect(senMasFraHXOut.port_b, senTemHXOut.port_a); end SpaceCooling;