modelVav

Variable air volume with control signal in [0, 1] that corresponds to mass flow rates [fraMin, fraMax]*m_flow_nominal

Extends from IDEAS.Fluid.Actuators.Dampers.PressureIndependent (Model for an air damper whose mass flow is proportional to the input signal).

Information

This VAV model is an extension of IDEAS.Fluid.Actuators.Dampers.PressureIndependent and adds the parameters fraMin and fraMax.

Parameters

TypeNameDefaultDescription
BooleanhomotopyInitialization (from PartialResistance)true= true, use homotopy method
Modelica.Units.SI.MassFlowRatem_flow_turbulent (from PartialResistance)Turbulent flow if |m_flow| >= m_flow_turbulent
Booleanuse_deltaM (from PartialDamperExponential)trueSet to true to use deltaM for turbulent transition, else ReC is used
RealdeltaM (from PartialDamperExponential)0.3Fraction of nominal mass flow rate where transition to turbulent occurs
Modelica.Units.SI.Velocityv_nominal (from PartialDamperExponential)(2/rho_default/k1*dpDamper_nominal)^0.5Nominal face velocity
Modelica.Units.SI.AreaA (from PartialDamperExponential)m_flow_nominal/rho_default/v_nominalFace area
BooleanroundDuct (from PartialDamperExponential)falseSet to true for round duct, false for square cross section
RealReC (from PartialDamperExponential)4000Reynolds number where transition to turbulence starts
RealkFixed (from PartialDamperExponential)if dpFixed_nominal > Modelica.Constants.eps then m_flow_nominal/sqrt(dpFixed_nominal) else Modelica.Constants.infFlow coefficient of fixed resistance that may be in series with damper, k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2).
RealfraMax1m_flow_set = fraMax*m_flow_nominal at y = y_nominal
RealfraMin0m_flow_set = fraMin*m_flow_nominal at y = 0
Assumptions
BooleanallowFlowReversal (from PartialTwoPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Nominal condition
Modelica.Units.SI.MassFlowRatem_flow_nominal (from PartialTwoPortInterface)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedp_nominal (from PartialResistance)Pressure drop at nominal mass flow rate
Modelica.Units.SI.PressureDifferencedpDamper_nominal (from PartialDamperExponential)Pressure drop of fully open damper at nominal mass flow rate
Modelica.Units.SI.PressureDifferencedpFixed_nominal (from PartialDamperExponential)0Pressure drop of duct and resistances other than the damper in series, at nominal mass flow rate
Advanced
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialTwoPortInterface)1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
Booleanfrom_dp (from PartialResistance)false= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearized (from PartialResistance)false= true, use linear relation between m_flow and dp for any flow rate
Booleanuse_constant_density (from PartialDamperExponential)trueSet to true to use constant density for flow friction
Reall2 (from PressureIndependent)0.01Gain for mass flow increase if pressure is above nominal pressure
Realdeltax (from PressureIndependent)0.02Transition interval for flow rate
Advanced › Diagnostics
Booleanshow_T (from PartialTwoPortInterface)false= true, if actual temperature at port is computed
Dynamics › Actuator position
Booleanuse_strokeTime (from ActuatorSignal)trueSet to true to continuously open and close valve using strokeTime
Modelica.Units.SI.TimestrokeTime (from ActuatorSignal)120Time needed to fully open or close actuator
Modelica.Blocks.Types.Initinit (from ActuatorSignal)Modelica.Blocks.Types.Init.InitialOutputType of initialization (no init/steady state/initial state/initial output)
Realy_start (from ActuatorSignal)1Initial position of actuator
Damper coefficients
Reala (from PartialDamperExponential)-1.51Coefficient a for damper characteristics
Realb (from PartialDamperExponential)0.105*90Coefficient b for damper characteristics
RealyL (from PartialDamperExponential)15/90Lower value for damper curve
RealyU (from PartialDamperExponential)55/90Upper value for damper curve
Realk0 (from PartialDamperExponential)2*rho_default*(A/kDamMin)^2Loss coefficient for y=0 (pressure drop divided by dynamic pressure)
Realk1 (from PartialDamperExponential)0.45Loss coefficient for y=1 (pressure drop divided by dynamic pressure)
Reall (from PartialDamperExponential)0.0001Damper leakage, ratio of flow coefficients k(y=0)/k(y=1)

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a (from PartialTwoPort)Fluid connector a (positive design flow direction is from port_a to port_b)
Modelica.Fluid.Interfaces.FluidPort_bport_b (from PartialTwoPort)Fluid connector b (positive design flow direction is from port_a to port_b)
Modelica.Blocks.Interfaces.RealInputy (from ActuatorSignal)Actuator position (0: closed, 1: open)
Modelica.Blocks.Interfaces.RealOutputy_actual (from ActuatorSignal)Actual actuator position

Components

TypeNameDefaultDescription
Modelica.Units.SI.MassFlowRatem_flow (from PartialTwoPortInterface)port_a.m_flowMass flow rate from port_a to port_b (m_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp (from PartialTwoPortInterface)port_a.p - port_b.pPressure difference between port_a and port_b
Medium.ThermodynamicStatesta_a (from PartialTwoPortInterface)if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow)))Medium properties in port_a
Medium.ThermodynamicStatesta_b (from PartialTwoPortInterface)if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow))Medium properties in port_b
Medium.Densityrho (from PartialDamperExponential)Medium density
RealkDam (from PartialDamperExponential)Flow coefficient of damper, k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2)
Realk (from PartialDamperExponential)Flow coefficient of damper plus fixed resistance, k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2)
Realphi (from PressureIndependent)l + y_internal*(1 - l)Ratio actual to nominal mass flow rate of damper, phi=kDam(y)/kDam(y=1)

Revisions

  • April 12, 2021 by Filip Jorissen:
    First implementation.