Buildings.Fluid.AirFilters.Examples

Package with example models

Information

This package contains examples for the use of models that can be found in Buildings.Fluid.AirFilters.

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

Package Content

Name Description
Buildings.Fluid.AirFilters.Examples.SpaceCooling SpaceCooling Space cooling system

Buildings.Fluid.AirFilters.Examples.SpaceCooling Buildings.Fluid.AirFilters.Examples.SpaceCooling

Space cooling system

Buildings.Fluid.AirFilters.Examples.SpaceCooling

Information

This block is identical to Buildings.Examples.Tutorial.SpaceCooling.System3, except that an air filter is added to the cooling system.

The major input signals for the air filter are configured as follows:

The expected output are:

Note that these changes in filtration efficiency and pressure drop are relatively minor over the span of a single day, with more pronounced effects expected over months.

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

Parameters

TypeNameDefaultDescription
replaceable package MediumABuildings.Media.Air (extraPr...Medium for air
replaceable package MediumWBuildings.Media.WaterMedium for water
VolumeV6*10*3Room volume [m3]
Realeps0.8Heat recovery effectiveness
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]
TemperatureTOut_nominal303.15Design outlet air temperature [K]
TemperatureTHeaRecLvgTOut_nominal - eps*(TOut_nom...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]
Genericperper(mCon_max=5, mCon_start=0...Performance dataset of the air filter

Connectors

TypeNameDescription
replaceable package MediumAMedium for air
replaceable package MediumWMedium for water
BusweaBus 

Modelica definition

model SpaceCooling "Space cooling system" extends Modelica.Icons.Example; replaceable package MediumA = Buildings.Media.Air(extraPropertiesNames={"PM10"}) "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 Real eps = 0.8 "Heat recovery effectiveness"; ///////////////////////////////////////////////////////// // 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 TOut_nominal=303.15 "Design outlet air temperature"; parameter Modelica.Units.SI.Temperature THeaRecLvg=TOut_nominal - eps*( 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"; parameter Buildings.Fluid.AirFilters.Data.Generic per( mCon_max=5, mCon_start=0, namCon={"PM10"}, filEffPar={ Buildings.Fluid.AirFilters.Data.Characteristics.FiltrationEfficiencyParameters( rat={0,0.5,1}, eps={0.75,0.5,0.2})}, b=1.3, m_flow_nominal=mA_flow_nominal, dp_nominal=50) "Performance dataset of the air filter"; Buildings.Fluid.MixingVolumes.MixingVolume vol( redeclare package Medium = MediumA, m_flow_nominal=mA_flow_nominal, V=V, nPorts=2, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyStateInitial, mSenFac=3); 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.SteadyState) "Supply air fan"; Buildings.Fluid.HeatExchangers.ConstantEffectiveness hex( redeclare package Medium1 = MediumA, redeclare package Medium2 = MediumA, m1_flow_nominal=mA_flow_nominal, m2_flow_nominal=mA_flow_nominal, dp1_nominal=200, dp2_nominal=200, eps=eps) "Heat recovery"; 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, use_C_in=true, nPorts=2); 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"; 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"; BoundaryConditions.WeatherData.Bus weaBus; Buildings.Controls.OBC.CDL.Reals.Sources.Constant mAir_flow(k=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.Continuous.LimPID conRoo( k=0.1, Ti=60, yMax=mW_flow_nominal, reverseActing=false) "Room controller"; Buildings.Fluid.AirFilters.Empirical airFil( redeclare package Medium = MediumA, per=per) "Air filter"; Modelica.Blocks.Sources.Ramp C_inflow( duration=87600/2, height=5/1000000000/1.293, offset=10/1000000000/1.293, startTime=15552000 + 87600/2) "Contaminant mass flow rate fraction"; Buildings.Fluid.Sensors.TraceSubstancesTwoPort C_out( redeclare package Medium =MediumA, m_flow_nominal=mA_flow_nominal, substanceName="PM10") "Trace substance sensor of outlet air"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant repSig(k=false) "Filter replacement signal"; Buildings.Controls.OBC.CDL.Reals.Subtract subDif "Substance difference between inlet and outlet"; equation connect(theCon.port_b, vol.heatPort); connect(preHea.port, vol.heatPort); connect(fan.port_b, vol.ports[1]); connect(vol.ports[2], hex.port_a2); 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(hex.port_b1, senTemHXOut.port_a); 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(conRoo.y, souWat.m_flow_in); connect(conRoo.u_s, TRooSetPoi.y); connect(conRoo.u_m, senTemRoo.T); connect(out.ports[1], airFil.port_a); connect(out.ports[2], hex.port_b2); connect(C_inflow.y, out.C_in[1]); connect(airFil.port_b, C_out.port_a); connect(C_out.port_b, hex.port_a1); connect(repSig.y,airFil.uRep); connect(C_inflow.y, subDif.u1); connect(C_out.C, subDif.u2); end SpaceCooling;