modelVAVBoxExponential

VAV box with a fixed resistance plus a damper model withe exponential characteristics

Extends from AixLib.Fluid.Actuators.BaseClasses.PartialDamperExponential (Partial model for air dampers with exponential opening characteristics).

Information

Model of two resistances in series. One resistance has a fixed flow coefficient, the other resistance is an air damper whose flow coefficient is an exponential function of the opening angle.

If dp_nominalIncludesDamper=true, then the parameter dp_nominal is equal to the pressure drop of the damper plus the fixed flow resistance at the nominal flow rate. If dp_nominalIncludesDamper=false, then dp_nominal does not include the flow resistance of the air damper.

  • January 22, 2016, by Michael Wetter:
    Corrected type declaration of pressure difference. This is for #404.
  • December 14, 2012 by Michael Wetter:
    Renamed protected parameters for consistency with the naming conventions.
  • April 13, 2010 by Michael Wetter:
    Added noEvent to guard evaluation of the square root for negative numbers during the solver iterations.
  • June 10, 2008 by Michael Wetter:
    Introduced new partial base class, PartialDamperExponential.
  • September 11, 2007 by Michael Wetter:
    Redefined kRes, now the pressure drop of the fully open damper is subtracted from the fixed resistance.
  • February 24, 2010 by Michael Wetter:
    Added parameter dp_nominalIncludesDamper.
  • July 27, 2007 by Michael Wetter:
    First implementation.

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).
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
Booleandp_nominalIncludesDampertrueset to true if dp_nominal includes the pressure loss of the open damper
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
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)