modelExponential

Air damper with exponential opening characteristics

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

Information

This model is an air damper with flow coefficient that is an exponential function of the opening angle. The model is as in ASHRAE 825-RP. A control signal of y=0 means the damper is closed, and y=1 means the damper is open. This is opposite of the implementation of ASHRAE 825-RP, but used here for consistency within this library.

For yL < y < yU, the damper characteristics is

kd(y) = exp(a+b (1-y)).

Outside this range, the damper characteristic is defined by a quadratic polynomial that matches the damper resistance at y=0 and y=yL or y=yU and y=1, respectively. In addition, the polynomials are such that kd(y) is differentiable in y and the derivative is continuous.

The damper characteristics kd(y) is then used to compute the flow coefficient k(y) as

k(y) = (2 ρ ⁄ kd(y))1/2 A,

where A is the face area, which is computed using the nominal mass flow rate m_flow_nominal, the nominal velocity v_nominal and the density of the medium. The flow coefficient k(y) is used to compute the mass flow rate versus pressure drop relation as

m = sign(Δp) k(y) √ Δp  

with regularization near the origin.

ASHRAE 825-RP lists the following parameter values as typical:

opposed bladessingle blades
yL15/9015/90
yU55/9065/90
k01E61E6
k10.2 to 0.50.2 to 0.5
a-1.51-1.51
b0.105*900.0842*90

References

P. Haves, L. K. Norford, M. DeSimone and L. Mei, A Standard Simulation Testbed for the Evaluation of Control Algorithms & Strategies, ASHRAE Final Report 825-RP, Atlanta, GA.

Parameters

TypeNameDefaultDescription
Modelica.SIunits.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.SIunits.Velocityv_nominal (from PartialDamperExponential)1Nominal face velocity
Modelica.SIunits.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 turbulent starts
RealkFixed (from PartialDamperExponential)Flow 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.SIunits.MassFlowRatem_flow_nominal (from PartialTwoPortInterface)Nominal mass flow rate
Modelica.SIunits.PressureDifferencedp_nominal (from PartialResistance)Pressure drop at nominal mass flow rate
Advanced
Modelica.SIunits.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)
BooleanhomotopyInitialization (from PartialResistance)true= true, use homotopy method
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 › Filtered opening
Booleanuse_inputFilter (from ActuatorSignal)true= true, if opening is filtered with a 2nd order CriticalDamping filter
Modelica.SIunits.TimeriseTime (from ActuatorSignal)120Rise time of the filter (time to reach 99.6 % of an opening step)
Integerorder (from ActuatorSignal)2Order of filter
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 value of output
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)1E6Flow coefficient for y=0, k0 = pressure drop divided by dynamic pressure
Realk1 (from PartialDamperExponential)0.45Flow coefficient for y=1, k1 = pressure drop divided by dynamic pressure

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 valve position

Components

TypeNameDefaultDescription
Modelica.SIunits.MassFlowRatem_flow (from PartialTwoPortInterface)port_a.m_flowMass flow rate from port_a to port_b (m_flow > 0 is design flow direction)
Modelica.SIunits.PressureDifferencedp (from PartialTwoPortInterface)port_a.p - port_b.pPressure difference between port_a and port_b
Medium.ThermodynamicStatesta_a (from PartialTwoPortInterface)Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow)))Medium properties in port_a
Medium.ThermodynamicStatesta_b (from PartialTwoPortInterface)Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(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)

Revisions

  • March 22, 2017, by Michael Wetter:
    Updated documentation.
  • April 14, 2014 by Michael Wetter:
    Improved documentation.
  • September 26, 2013 by Michael Wetter:
    Moved assignment of kDam_default and kThetaSqRt_default from initial algorithm to the variable declaration, to avoid a division by zero in OpenModelica.
  • December 14, 2012 by Michael Wetter:
    Renamed protected parameters for consistency with the naming conventions.
  • June 22, 2008 by Michael Wetter:
    Extended range of control signal from 0 to 1 by implementing the function IBPSA.Fluid.Actuators.BaseClasses.exponentialDamper.
  • June 10, 2008 by Michael Wetter:
    Introduced new partial base class, PartialDamperExponential.
  • June 30, 2007 by Michael Wetter:
    Introduced new partial base class, PartialActuator.
  • July 27, 2007 by Michael Wetter:
    Introduced partial base class.
  • July 20, 2007 by Michael Wetter:
    First implementation.