modelCoolingCoilHumidifyingHeating
Extends from Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialCoolingCoilHumidifyingHeating (Partial AHU model ).
Information
This model can represent a typical air handler with a cooling coil, a variable-speed fan, a humidifier and an electric reheater. The heating coil is not included in this model.
The water-side valve can be manipulated to control the outlet temperature on air side, as shown in Buildings.Applications.DataCenters.AHUs.Example.AirHandlingUnitControl.
It's usually undesired to control the outlet air temperature by simultenanously manipulating the water-valve and reheater, because energy waste could happen in this case. For example, under the part-load condition, the water valve might be in its maximum position with the reheater turning on to maintain the outlet air temperature. To avoid that water-valve and reheater control the outlet temperature at the same time, a buit-in reheater on/off controller is implemented. The detailed control logic about the reheater on/off control is shown in Buildings.Applications.DataCenters.ChillerCooled.Controls.Reheat.
The humidfier is an adiabatic spray air washer with a prescribed outlet water vapor mass fraction
in kg/kg total air. During the humidification, the enthalpy remains constant.
Details can be found in
Buildings.Fluid.Humidifiers.SprayAirWasher_X. The humidifer can be turned off
when the prescribed mass fraction
is smaller than the current state at the outlet, for example, XSet=0.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | homotopyInitialization (from PartialCoolingCoilHumidifyingHeating) | true | = true, use homotopy method |
| Buildings.Fluid.Movers.Data.Generic | perFan (from PartialCoolingCoilHumidifyingHeating) | Performance data for the fan | |
| Real | yValSwi | Switch point for valve signal | |
| Real | yValDeaBan | 0.1 | Deadband for valve signal |
| Modelica.Units.SI.TemperatureDifference | dTSwi | 0 | Switch point for temperature difference |
| Modelica.Units.SI.TemperatureDifference | dTDeaBan | 0.5 | Deadband for temperature difference |
| Modelica.Units.SI.Time | tWai | 60 | Waiting time |
| Assumptions | |||
| Boolean | allowFlowReversal1 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
| Boolean | allowFlowReversal2 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m1_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.MassFlowRate | m2_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from ValveParameters) | Nominal mass flow rate | |
| Modelica.Units.SI.PressureDifference | dpValve_nominal (from ValveParameters) | Nominal pressure drop of fully open valve, used if CvData=Buildings.Fluid.Types.CvTypes.OpPoint | |
| Modelica.Units.SI.PressureDifference | dp1_nominal (from FourPortFlowResistanceParameters) | Pressure difference | |
| Modelica.Units.SI.PressureDifference | dp2_nominal (from FourPortFlowResistanceParameters) | Pressure difference | |
| Advanced | |||
| Medium1.MassFlowRate | m1_flow_small (from PartialFourPortInterface) | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Medium2.MassFlowRate | m2_flow_small (from PartialFourPortInterface) | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialFourPortInterface) | false | = true, if actual temperature at port is computed |
| Cooling coil | |||
| Modelica.Units.SI.ThermalConductance | UA_nominal (from AHUParameters) | Thermal conductance at nominal flow for sensible heat, used to compute time constant | |
| Real | r_nominal (from AHUParameters) | 2/3 | Ratio between air-side and water-side convective heat transfer coefficient |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from AHUParameters) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Flow Coefficient | |||
| Buildings.Fluid.Types.CvTypes | CvData (from ValveParameters) | Buildings.Fluid.Types.CvTypes.OpPoint | Selection of flow coefficient |
| Real | Kv (from ValveParameters) | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] | |
| Real | Cv (from ValveParameters) | Cv (US) flow coefficient [USG/min/(psi)^(1/2)] | |
| Modelica.Units.SI.Area | Av (from ValveParameters) | Av (metric) flow coefficient | |
| Pressure-flow linearization | |||
| Real | deltaM (from ValveParameters) | 0.02 | Fraction of nominal flow rate where linearization starts, if y=1 |
| Advanced › Nominal condition | |||
| Modelica.Units.SI.Density | rhoStd (from ValveParameters) | Inlet density for which valve coefficients are defined | |
| Flow resistance › Medium 1 | |||
| Boolean | computeFlowResistance1 (from FourPortFlowResistanceParameters) | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dp1 (from FourPortFlowResistanceParameters) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Real | n1 (from FourPortFlowResistanceParameters) | 2 | Flow exponent for side 1, n=1 for laminar, n=2 for turbulent |
| Boolean | linearizeFlowResistance1 (from FourPortFlowResistanceParameters) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Real | deltaM1 (from FourPortFlowResistanceParameters) | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
| Flow resistance › Medium 2 | |||
| Boolean | computeFlowResistance2 (from FourPortFlowResistanceParameters) | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dp2 (from FourPortFlowResistanceParameters) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Real | n2 (from FourPortFlowResistanceParameters) | 2 | Flow exponent for side 2, n=1 for laminar, n=2 for turbulent |
| Boolean | linearizeFlowResistance2 (from FourPortFlowResistanceParameters) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Real | deltaM2 (from FourPortFlowResistanceParameters) | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
| Initialization | |||
| Medium2.AbsolutePressure | p_start (from PartialCoolingCoilHumidifyingHeating) | Medium2.p_default | Start value of pressure |
| Medium2.Temperature | T_start (from PartialCoolingCoilHumidifyingHeating) | Medium2.T_default | Start value of temperature |
| Medium2.MassFraction[Medium2.nX] | X_start (from PartialCoolingCoilHumidifyingHeating) | Medium2.X_default | Start value of mass fractions m_i/m |
| Medium2.ExtraProperty[Medium2.nC] | C_start (from PartialCoolingCoilHumidifyingHeating) | fill(0, Medium2.nC) | Start value of trace substances |
| Medium2.ExtraProperty[Medium2.nC] | C_nominal (from PartialCoolingCoilHumidifyingHeating) | fill(1E-2, Medium2.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
| Valve | |||
| Real | l (from PartialCoolingCoilHumidifyingHeating) | 0.0001 | Valve leakage, l=Kv(y=0)/Kv(y=1) |
| Real | R | 50 | Rangeability, R=50...100 typically |
| Real | delta0 | 0.01 | Range of significant deviation from equal percentage law |
| Dynamics › Valve | |||
| Boolean | use_strokeTime (from PartialCoolingCoilHumidifyingHeating) | false | Set to true to continuously open and close valve on the water-side |
| Modelica.Units.SI.Time | strokeTime (from PartialCoolingCoilHumidifyingHeating) | 120 | Time needed to open or close valve |
| Modelica.Blocks.Types.Init | initValve (from PartialCoolingCoilHumidifyingHeating) | Modelica.Blocks.Types.Init.InitialOutput | Type of initialization (no init/steady state/initial state/initial output) |
| Real | yValve_start (from PartialCoolingCoilHumidifyingHeating) | 1 | Initial value of output |
| Fan | |||
| Buildings.Fluid.Types.InputType | inputType (from PartialCoolingCoilHumidifyingHeating) | Buildings.Fluid.Types.InputType.Continuous | Control input type |
| Boolean | addPowerToMedium (from PartialCoolingCoilHumidifyingHeating) | true | Set to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations) |
| Dynamics › Fan | |||
| Modelica.Units.SI.Time | tauFan (from PartialCoolingCoilHumidifyingHeating) | 1 | Time constant at nominal flow (if energyDynamics <> SteadyState) |
| Boolean | use_riseTime (from PartialCoolingCoilHumidifyingHeating) | true | Set to true to continuously change motor speed |
| Modelica.Units.SI.Time | riseTime (from PartialCoolingCoilHumidifyingHeating) | 30 | Time needed to change motor speed between zero and full speed |
| Modelica.Blocks.Types.Init | initFan (from PartialCoolingCoilHumidifyingHeating) | Modelica.Blocks.Types.Init.InitialOutput | Type of initialization (no init/steady state/initial state/initial output) |
| Real | yFan_start (from PartialCoolingCoilHumidifyingHeating) | 0 | Initial value of speed |
| Dynamics › Electric heater | |||
| Modelica.Units.SI.Time | tauEleHea | 10 | Time constant at nominal flow for electric heater (if energyDynamics <> SteadyState) |
| Electric heater | |||
| Modelica.Units.SI.Efficiency | etaHea | 1.0 | Efficiency of electrical heater |
| Modelica.Units.SI.HeatFlowRate | QHeaMax_flow | Nominal heating capacity of eletric heater,positive | |
| General › Humidifier | |||
| Modelica.Units.SI.MassFlowRate | mWatMax_flow | Nominal humidification capacity for humidifier, positive for humidification | |
| Humidifier | |||
| Modelica.Units.SI.Temperature | THum | 293.15 | Temperature of water that is added to the fluid stream by the humidifier |
| Dynamics › Humidifier | |||
| Modelica.Units.SI.Time | tauHum | 10 | Time constant at nominal flow for humidifier(if energyDynamics <> SteadyState) |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a1 (from PartialFourPort) | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b1 (from PartialFourPort) | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_a2 (from PartialFourPort) | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b2 (from PartialFourPort) | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Blocks.Interfaces.RealInput | uVal (from PartialCoolingCoilHumidifyingHeating) | Actuator position (0: closed, 1: open) on water side | |
| Modelica.Blocks.Interfaces.RealInput | uFan (from PartialCoolingCoilHumidifyingHeating) | Continuous input signal for the fan | |
| Modelica.Blocks.Interfaces.RealOutput | PFan (from PartialCoolingCoilHumidifyingHeating) | Electrical power consumed by the fan | |
| Modelica.Blocks.Interfaces.RealOutput | yVal (from PartialCoolingCoilHumidifyingHeating) | Actual valve position | |
| Modelica.Blocks.Interfaces.IntegerInput | stage (from PartialCoolingCoilHumidifyingHeating) | Stage input signal for the pressure head | |
| Modelica.Blocks.Interfaces.RealOutput | PHea | Power consumed by electric heater | |
| Modelica.Blocks.Interfaces.RealInput | TSet | Set point temperature of the fluid that leaves port_b | |
| Modelica.Blocks.Interfaces.RealInput | XSet_w | Set point for water vapor mass fraction in kg/kg total air of the fluid that leaves port_b |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium1.MassFlowRate | m1_flow (from PartialFourPortInterface) | port_a1.m_flow | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp1 (from PartialFourPortInterface) | port_a1.p - port_b1.p | Pressure difference between port_a1 and port_b1 |
| Medium2.MassFlowRate | m2_flow (from PartialFourPortInterface) | port_a2.m_flow | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp2 (from PartialFourPortInterface) | port_a2.p - port_b2.p | Pressure difference between port_a2 and port_b2 |
| Medium1.ThermodynamicState | sta_a1 (from PartialFourPortInterface) | if allowFlowReversal1 then Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium1.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow)) | Medium properties in port_a1 |
| Medium1.ThermodynamicState | sta_b1 (from PartialFourPortInterface) | if allowFlowReversal1 then Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium1.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow) | Medium properties in port_b1 |
| Medium2.ThermodynamicState | sta_a2 (from PartialFourPortInterface) | if allowFlowReversal2 then Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium2.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow)) | Medium properties in port_a2 |
| Medium2.ThermodynamicState | sta_b2 (from PartialFourPortInterface) | if allowFlowReversal2 then Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium2.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow) | Medium properties in port_b2 |
| Fluid.HeatExchangers.WetCoilEffectivenessNTU | cooCoi (from PartialCoolingCoilHumidifyingHeating) | Cooling coil | |
| Buildings.Fluid.Movers.BaseClasses.PartialFlowMachine | fan (from PartialCoolingCoilHumidifyingHeating) | ||
| Buildings.Fluid.Actuators.BaseClasses.PartialTwoWayValveKv | watVal (from PartialCoolingCoilHumidifyingHeating) | ||
| Modelica.Blocks.Sources.RealExpression | dT | Difference between inlet temperature and temperature setpoint of the reheater | |
| Buildings.Fluid.Humidifiers.SprayAirWasher_X | hum | Humidifier | |
| Buildings.Applications.DataCenters.ChillerCooled.Equipment.ElectricHeater | eleHea | Electric heater | |
| Buildings.Applications.DataCenters.ChillerCooled.Controls.Reheat | heaCon | Reheater on/off controller |
Revisions
-
May 14, 2017 by Yangyang Fu:
First implementation.