modelAdsolair58HeaCoi

Adsolair 58 with additional heating coil model

Extends from IDEAS.Airflow.AHU.Adsolair58 (Menerga Adsolair type 58 air handling unit).

Information

Example model of Menerga type 58 air handling unit with additional heating coil and corresponding controller model. It demonstrates how the original model can easily be extended to support additional functionality and a new controller. The yHea output should be connected to an external valve that controls the secondary mass flow rate of the heating coil.

Parameters

TypeNameDefaultDescription
IDEAS.Airflow.AHU.BaseClasses.Adsolair14200per (from Adsolair58)
Booleanuse_onOffSignal (from Adsolair58)trueSet to true to switch device on/off using external signal
BooleanonOff (from Adsolair58)trueSet to true if device is on
Modelica.Units.SI.Pressuredp_fouling_top (from Adsolair58)0Nominal pressure drop in top channel due to filter fouling
Modelica.Units.SI.Pressuredp_fouling_bot (from Adsolair58)0Nominal pressure drop in bottom channel due to filter fouling
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from LumpedVolumeDeclarations)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicssubstanceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of independent mass fraction balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicstraceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of trace substance balance: dynamic (3 initialization options) or steady state
Advanced › Dynamics
Modelica.Fluid.Types.DynamicsmassDynamics (from LumpedVolumeDeclarations)energyDynamicsType of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state
Initialization
Medium.AbsolutePressurep_start (from LumpedVolumeDeclarations)Medium.p_defaultStart value of pressure
Medium.TemperatureT_start (from LumpedVolumeDeclarations)Medium.T_defaultStart value of temperature
Medium.MassFraction[Medium.nX]X_start (from LumpedVolumeDeclarations)Medium.X_defaultStart value of mass fractions m_i/m
Medium.ExtraProperty[Medium.nC]C_start (from LumpedVolumeDeclarations)fill(0, Medium.nC)Start value of trace substances
Medium.ExtraProperty[Medium.nC]C_nominal (from LumpedVolumeDeclarations)fill(1E-2, Medium.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Dynamics
RealmSenFac (from LumpedVolumeDeclarations)1Factor for scaling the sensible thermal mass of the volume
Assumptions
BooleanallowFlowReversal1 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1
BooleanallowFlowReversal2 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2
Nominal condition
Modelica.Units.SI.MassFlowRatem1_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.Units.SI.MassFlowRatem2_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Advanced
Medium1.MassFlowRatem1_flow_small (from PartialFourPortInterface)1E-4*abs(m1_flow_nominal)Small mass flow rate for regularization of zero flow
Medium2.MassFlowRatem2_flow_small (from PartialFourPortInterface)1E-4*abs(m2_flow_nominal)Small mass flow rate for regularization of zero flow
BooleanallowFlowReversal (from Adsolair58)falseFlow reversal is not supported
Modelica.Units.SI.MassFlowRatem_flow_small (from Adsolair58)m1_flow_nominal/50Small mass flow rate for regularization of zero flow
Modelica.Units.SI.Timetau (from Adsolair58)60Thermal time constant of evaporator, condensor and heat recovery unit at nominal flow rate
Realalpha (from Adsolair58)0.5Pressure recovery factor for fixed pressure drop in bottom bypass channel
Realk1 (from Adsolair58)0.45Flow coefficient for y=1, k1 = pressure drop divided by dynamic pressure
Advanced › Diagnostics
Booleanshow_T (from PartialFourPortInterface)false= true, if actual temperature at port is computed

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a1 (from PartialFourPort)Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_bport_b1 (from PartialFourPort)Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_aport_a2 (from PartialFourPort)Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Fluid.Interfaces.FluidPort_bport_b2 (from PartialFourPort)Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Blocks.Interfaces.BooleanInputon (from Adsolair58)
Modelica.Blocks.Interfaces.RealInputTset (from Adsolair58)Setpoints of the valves
Modelica.Blocks.Interfaces.RealInputdpSet (from Adsolair58)Top and bottom fan pressure set points
Modelica.Blocks.Interfaces.RealOutputP (from Adsolair58)
Modelica.Blocks.Interfaces.RealOutputTFanSupOut (from Adsolair58)Temperature measured behind supply fan
Modelica.Fluid.Interfaces.FluidPort_bport_b
Modelica.Fluid.Interfaces.FluidPort_aport_a
Modelica.Blocks.Interfaces.RealOutputyHeaControl signal for heating coil

Components

TypeNameDefaultDescription
Medium1.MassFlowRatem1_flow (from PartialFourPortInterface)port_a1.m_flowMass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp1 (from PartialFourPortInterface)port_a1.p - port_b1.pPressure difference between port_a1 and port_b1
Medium2.MassFlowRatem2_flow (from PartialFourPortInterface)port_a2.m_flowMass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp2 (from PartialFourPortInterface)port_a2.p - port_b2.pPressure difference between port_a2 and port_b2
Medium1.ThermodynamicStatesta_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.ThermodynamicStatesta_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.ThermodynamicStatesta_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.ThermodynamicStatesta_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
Modelica.Units.SI.EnergyE (from Adsolair58)IEH.E + eva.U + con.U
RealBPF (from Adsolair58)min(1, max(0, IDEAS.Utilities.Math.Functions.spliceFunction(x = abs(IEH.TOutBot - eva.heatPort.T) - 0.2, pos = (eva.heatPort.T - com.Teva)*IDEAS.Utilities.Math.Functions.inverseXRegularized(x = IEH.TOutBot - com.Teva, delta = 0.1), neg = 1, deltax = 0.1)))Fraction of air that is bypassed in the evaporator
RealX_sat_evap (from Adsolair58)IDEAS.Utilities.Psychrometrics.Functions.X_pSatpphi(pSat = IDEAS.Media.Air.saturationPressure(com.Teva), p = eva.ports[1].p, phi = 1)Water fraction at saturation in evaporator at refrigerant temperature
Realx_out (from Adsolair58)BPF*IEH.port_b2.Xi_outflow[1] + (1 - BPF)*min(X_sat_evap, IEH.port_b2.Xi_outflow[1])Outlet water mass fraction based on BPF
Modelica.Units.SI.MassFlowRatem_condens (from Adsolair58)IEH.port_a2.m_flow*(IEH.port_b2.Xi_outflow[1] - x_out)Water condensation mass flow rate in the evaporator.
IDEAS.Airflow.AHU.BaseClasses.AdsolairControlleradsCon (from Adsolair58)
DummyExchangerhexSupOut (from Adsolair58)
IDEAS.Airflow.AHU.BaseClasses.SimpleCompressorTablecom (from Adsolair58)
Modelica.Blocks.Sources.BooleanExpressiononExp (from Adsolair58)AHU control signal
Modelica.Blocks.Sources.RealExpressionTEvaExp (from Adsolair58)Evaporator outlet temperature
IDEAS.Fluid.HeatExchangers.IndirectEvaporativeHexIEH (from Adsolair58)Indirect evaporative heat exchanger
IDEAS.Fluid.MixingVolumes.MixingVolumecon (from Adsolair58)Simple condensor model for active chiller
IDEAS.Fluid.Movers.FlowControlled_dpfanTop (from Adsolair58)Top fan
IDEAS.Fluid.MixingVolumes.MixingVolumeMoistAireva (from Adsolair58)Simple evaporator model for active chiller
IDEAS.Fluid.Movers.FlowControlled_dpfanBot (from Adsolair58)Bottom fan
Modelica.Blocks.Math.Sumsum (from Adsolair58)Total electrical power consumption
IDEAS.Fluid.Sensors.TemperatureTwoPortTSupIn (from Adsolair58)Supply inlet air temperature
Modelica.Blocks.Sources.RealExpressionm_condens_exp (from Adsolair58)Real expression for setting water condensation mass flow rate
Modelica.Thermal.HeatTransfer.Components.ThermalConductorconCon (from Adsolair58)Conductor describing the temperature drop in the condensor
Modelica.Blocks.Sources.RealExpression[2]fan_flow_set (from Adsolair58)Fan flow set points
Modelica.Thermal.HeatTransfer.Sources.FixedTemperaturefixedTemperature (from Adsolair58)
IDEAS.Fluid.FixedResistances.PressureDropresTop (from Adsolair58)Top pressure drop component
IDEAS.Fluid.FixedResistances.PressureDropresBot (from Adsolair58)Bottom pressure drop component
TwoWayEqualPercentageAddvalBypassBottom (from Adsolair58)
TwoWayEqualPercentageAddvalRecupBot (from Adsolair58)
TwoWayEqualPercentageAddvalBypassTop (from Adsolair58)
TwoWayEqualPercentageAddvalRecupTop (from Adsolair58)
IDEAS.Fluid.Sensors.TemperatureTwoPortsenTemFanSupOut (from Adsolair58)Inlet temperature of the heater
Modelica.Blocks.Sources.RealExpressionPPum (from Adsolair58)Electrical power consumption of circulation pump
Modelica.Blocks.Sources.BooleanConstantbooleanConstant (from Adsolair58)Only valRecupTop has conditional Kv value
Modelica.Blocks.Sources.RealExpressionPUnit (from Adsolair58)Remaing electrical power consumption from unit
Modelica.Blocks.Sources.RealExpressionTHeaExpHeater outlet temperature

Contents

NameDescription
MediumHeating

Revisions

  • January 26, 2018, by Filip Jorissen:
    Improved adsolair controller performance. See #751, #730, #729, #754.
  • October 11, 2016, by Filip Jorissen:
    First implementation.