Buildings.Fluids.Actuators.Dampers

Package with air damper models

Information


This package contains components models for air dampers.
For motor models, see
Buildings.Fluids.Actuators.Motors.

Package Content

NameDescription
Buildings.Fluids.Actuators.Dampers.Exponential Exponential Air damper with exponential opening characteristics
Buildings.Fluids.Actuators.Dampers.OAMixingBoxMinimumDamper OAMixingBoxMinimumDamper Outside air mixing box with parallel damper for minimum outside air flow rate
Buildings.Fluids.Actuators.Dampers.VAVBoxExponential VAVBoxExponential VAV box with a fixed resistance plus a damper model withe exponential characteristics


Buildings.Fluids.Actuators.Dampers.Exponential Buildings.Fluids.Actuators.Dampers.Exponential

Air damper with exponential opening characteristics

Buildings.Fluids.Actuators.Dampers.Exponential

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

  k = 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 k(y) is differentiable in y and the derivative is continuous.

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.

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

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Booleanuse_deltaMtrueSet to true to use deltaM for turbulent transition, else ReC is used
RealdeltaM0.3Fraction of nominal mass flow rate where transition to turbulent occurs
Booleanuse_v_nominaltrueSet to true to use face velocity to compute area
Velocityv_nominal1Nominal face velocity [m/s]
AreaA Face area [m2]
BooleanroundDuctfalseSet to true for round duct, false for square cross section
RealReC4000Reynolds number where transition to turbulent starts
Nominal condition
MassFlowRatem_flow_nominal Nominal mass flow rate [kg/s]
Pressuredp_nominal(m_flow_nominal/kDam_nominal...Pressure [Pa]
Initialization
RealkDamSqu.start1Flow coefficient for damper, kDam=k^2=m_flow^2/|dp| [kg.m]
Assumptions
BooleanallowFlowReversalsystem.allowFlowReversal= true to allow flow reversal, false restricts to design direction (port_a -> port_b)
Advanced
AbsolutePressuredp_start0.01*system.p_startGuess value of dp = port_a.p - port_b.p [Pa]
MassFlowRatem_flow_startsystem.m_flow_startGuess value of m_flow = port_a.m_flow [kg/s]
MassFlowRatem_flow_small1E-4*m_flow_nominalSmall mass flow rate for regularization of zero flow [kg/s]
Booleanfrom_dptrue= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Booleanuse_constant_densitytrueSet to true to use constant density for flow friction
Diagnostics
Booleanshow_Ttrue= true, if temperatures at port_a and port_b are computed
Booleanshow_V_flowtrue= true, if volume flow rate at inflowing port is computed
Damper coefficients
Reala-1.51Coefficient a for damper characteristics
Realb0.105*90Coefficient b for damper characteristics
RealyL15/90Lower value for damper curve
RealyU55/90Upper value for damper curve
Realk01E6Flow coefficient for y=0, k0 = pressure drop divided by dynamic pressure
Realk10.45Flow coefficient for y=1, k1 = pressure drop divided by dynamic pressure

Connectors

TypeNameDescription
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)
input RealInputyDamper position (0: closed, 1: open)

Modelica definition

model Exponential 
  "Air damper with exponential opening characteristics"
  extends Buildings.Fluids.Actuators.BaseClasses.PartialDamperExponential(dp_nominal=(m_flow_nominal/kDam_nominal)^2,
  dp(nominal=10));
protected 
   parameter Real kDam_nominal(fixed=false) 
    "Flow coefficient for damper, k=m_flow/sqrt(dp), with unit=(kg*m)^(1/2)";
   parameter Real kTheta_nominal(min=0, fixed=false) 
    "Flow coefficient, kTheta = pressure drop divided by dynamic pressure";
initial algorithm 
   kTheta_nominal :=Buildings.Fluids.Actuators.BaseClasses.exponentialDamper(
    y=1,
    a=a,
    b=b,
    cL=cL,
    cU=cU,
    yL=yL,
    yU=yU) "y=0 is closed";
   assert(kTheta_nominal>=0, "Flow coefficient must not be negative");
   kDam_nominal :=sqrt(2*rho_nominal/kTheta_nominal)*A 
    "flow coefficient for resistance base model, kDam=k=m_flow/sqrt(dp)";

equation 
  k = sqrt(kDamSqu) "flow coefficient for resistance base model";
end Exponential;

Buildings.Fluids.Actuators.Dampers.OAMixingBoxMinimumDamper Buildings.Fluids.Actuators.Dampers.OAMixingBoxMinimumDamper

Outside air mixing box with parallel damper for minimum outside air flow rate

Buildings.Fluids.Actuators.Dampers.OAMixingBoxMinimumDamper

Information


Model of an outside air mixing box with air dampers and a flow path for the minimum outside air flow rate.


Extends from Buildings.BaseClasses.BaseIcon (Base icon).

Parameters

TypeNameDefaultDescription
AreaAOutMin Face area minimum outside air damper [m2]
AreaAOut Face area outside air damper [m2]
AreaAExh Face area exhaust air damper [m2]
AreaARec Face area recirculation air damper [m2]
Nominal condition
MassFlowRatem0OutMin_flow Mass flow rate minimum outside air damper [kg/s]
PressuredpOutMin_nominal Pressure drop minimum outside air leg (without damper) [Pa]
MassFlowRatem0Out_flow Mass flow rate outside air damper [kg/s]
PressuredpOut_nominal Pressure drop outside air leg (without damper) [Pa]
MassFlowRatem0Rec_flow Mass flow rate recirculation air damper [kg/s]
PressuredpRec_nominal Pressure drop recirculation air leg (without damper) [Pa]
MassFlowRatem0Exh_flow Mass flow rate exhaust air damper [kg/s]
PressuredpExh_nominal Pressure drop exhaust air leg (without damper) [Pa]
Assumptions
BooleanallowFlowReversalsystem.allowFlowReversal= true to allow flow reversal, false restricts to design direction (port_a -> port_b)

Connectors

TypeNameDescription
FluidPort_aport_OutFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_aport_OutMinFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_ExhFluid connector b (positive design flow direction is from port_a to port_b)
FluidPort_aport_RetFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_SupFluid connector b (positive design flow direction is from port_a to port_b)
input RealInputyDamper position (0: closed, 1: open)
input RealInputyOutMinDamper position minimum outside air (0: closed, 1: open)

Modelica definition

model OAMixingBoxMinimumDamper 
  "Outside air mixing box with parallel damper for minimum outside air flow rate"
  extends Buildings.BaseClasses.BaseIcon;
  outer Modelica_Fluid.System system "System wide properties";
  replaceable package Medium = 
      Modelica.Media.Interfaces.PartialMedium "Medium in the component";
   import Modelica.Constants;

  parameter Boolean allowFlowReversal = system.allowFlowReversal 
    "= true to allow flow reversal, false restricts to design direction (port_a -> port_b)";

  Buildings.Fluids.Actuators.Dampers.Exponential damOAMin(
                                                         A=AOutMin,
    redeclare package Medium = Medium,
    m_flow_nominal=m0OutMin_flow) "Damper for minimum outside air supply";
  Buildings.Fluids.Actuators.Dampers.Exponential damOA(
                                                      A=AOut,
    redeclare package Medium = Medium,
    m_flow_nominal=m0Out_flow);
  parameter Modelica.SIunits.Area AOutMin 
    "Face area minimum outside air damper";
  parameter Modelica.SIunits.Area AOut "Face area outside air damper";
  Buildings.Fluids.Actuators.Dampers.Exponential damExh(
                                                       A=AExh,
    redeclare package Medium = Medium,
    m_flow_nominal=m0Exh_flow) "Exhaust air damper";
  parameter Modelica.SIunits.Area AExh "Face area exhaust air damper";
  Buildings.Fluids.Actuators.Dampers.Exponential damRec(
                                                       A=ARec,
    redeclare package Medium = Medium,
    m_flow_nominal=m0Rec_flow) "Recirculation air damper";
  parameter Modelica.SIunits.Area ARec "Face area recirculation air damper";

  parameter Modelica.SIunits.MassFlowRate m0OutMin_flow 
    "Mass flow rate minimum outside air damper";
  parameter Modelica.SIunits.Pressure dpOutMin_nominal 
    "Pressure drop minimum outside air leg (without damper)";

  parameter Modelica.SIunits.MassFlowRate m0Out_flow 
    "Mass flow rate outside air damper";
  parameter Modelica.SIunits.Pressure dpOut_nominal 
    "Pressure drop outside air leg (without damper)";

  parameter Modelica.SIunits.MassFlowRate m0Rec_flow 
    "Mass flow rate recirculation air damper";
  parameter Modelica.SIunits.Pressure dpRec_nominal 
    "Pressure drop recirculation air leg (without damper)";

  parameter Modelica.SIunits.MassFlowRate m0Exh_flow 
    "Mass flow rate exhaust air damper";
  parameter Modelica.SIunits.Pressure dpExh_nominal 
    "Pressure drop exhaust air leg (without damper)";

  Buildings.Fluids.FixedResistances.FixedResistanceDpM preDroOutMin(
                                                              m_flow_nominal=
        m0OutMin_flow, dp_nominal=dpOutMin_nominal, redeclare package Medium = Medium) 
    "Pressure drop for minimum outside air branch";
  Buildings.Fluids.FixedResistances.FixedResistanceDpM preDroOut(
                                                           m_flow_nominal=
        m0Out_flow, dp_nominal=dpOut_nominal, redeclare package Medium = Medium) 
    "Pressure drop for outside air branch";
  Buildings.Fluids.FixedResistances.FixedResistanceDpM preDroExh(
                                                           m_flow_nominal=
        m0Exh_flow, dp_nominal=dpExh_nominal, redeclare package Medium = Medium) 
    "Pressure drop for exhaust air branch";
  Buildings.Fluids.FixedResistances.FixedResistanceDpM preDroRec(
                                                           m_flow_nominal=
        m0Rec_flow, dp_nominal=dpRec_nominal, redeclare package Medium = Medium) 
    "Pressure drop for recirculation air branch";
  Modelica_Fluid.Interfaces.FluidPort_a port_Out(redeclare package Medium = 
        Medium, m_flow(start=0, min=if allowFlowReversal then -Constants.inf else 
                0)) 
    "Fluid connector a (positive design flow direction is from port_a to port_b)";
  Modelica_Fluid.Interfaces.FluidPort_a port_OutMin(redeclare package Medium = 
        Medium, m_flow(start=0, min=if allowFlowReversal then -Constants.inf else 
                0)) 
    "Fluid connector a (positive design flow direction is from port_a to port_b)";
  Modelica_Fluid.Interfaces.FluidPort_b port_Exh(redeclare package Medium = 
        Medium, m_flow(start=0, max=if allowFlowReversal then +Constants.inf else 
                0)) 
    "Fluid connector b (positive design flow direction is from port_a to port_b)";
  Modelica_Fluid.Interfaces.FluidPort_a port_Ret(redeclare package Medium = 
        Medium, m_flow(start=0, min=if allowFlowReversal then -Constants.inf else 
                0)) 
    "Fluid connector a (positive design flow direction is from port_a to port_b)";
  Modelica_Fluid.Interfaces.FluidPort_b port_Sup(redeclare package Medium = 
        Medium, m_flow(start=0, max=if allowFlowReversal then +Constants.inf else 
                0)) 
    "Fluid connector b (positive design flow direction is from port_a to port_b)";
  Modelica.Blocks.Interfaces.RealInput y "Damper position (0: closed, 1: open)";
  Modelica.Blocks.Interfaces.RealInput yOutMin 
    "Damper position minimum outside air (0: closed, 1: open)";
  Modelica.Blocks.Sources.Constant uni(k=1) "Unity signal";

  Modelica.Blocks.Math.Add add(k2=-1);
protected 
  Modelica_Fluid.Interfaces.FluidPort_b port_Ret1(redeclare package Medium = 
        Medium);
protected 
  Modelica_Fluid.Interfaces.FluidPort_b port_b1(redeclare package Medium = 
        Medium);
equation 
  connect(preDroOutMin.port_b, damOAMin.port_a);
  connect(preDroOut.port_b, damOA.port_a);
  connect(yOutMin, damOAMin.y);
  connect(y, damOA.y);
  connect(y, damExh.y);
  connect(damExh.port_b, preDroExh.port_a);
  connect(preDroExh.port_b, port_Exh);
  connect(preDroOut.port_a, port_Out);
  connect(port_OutMin, preDroOutMin.port_a);
  connect(uni.y, add.u1);
  connect(y, add.u2);
  connect(add.y, damRec.y);
  connect(port_Ret, port_Ret1);
  connect(preDroRec.port_a, port_Ret1);
  connect(damExh.port_a, port_Ret1);
  connect(damOAMin.port_b, port_b1);
  connect(port_Sup, port_b1);
  connect(damRec.port_b, port_b1);
  connect(damOA.port_b, port_b1);
  connect(preDroRec.port_b, damRec.port_a);
end OAMixingBoxMinimumDamper;

Buildings.Fluids.Actuators.Dampers.VAVBoxExponential Buildings.Fluids.Actuators.Dampers.VAVBoxExponential

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

Buildings.Fluids.Actuators.Dampers.VAVBoxExponential

Information


VAV box plus an air damper with a flow coefficient that is an exponential function of the opening angle.

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

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Booleanuse_deltaMtrueSet to true to use deltaM for turbulent transition, else ReC is used
RealdeltaM0.3Fraction of nominal mass flow rate where transition to turbulent occurs
Booleanuse_v_nominaltrueSet to true to use face velocity to compute area
Velocityv_nominal1Nominal face velocity [m/s]
AreaA Face area [m2]
BooleanroundDuctfalseSet to true for round duct, false for square cross section
RealReC4000Reynolds number where transition to turbulent starts
Nominal condition
MassFlowRatem_flow_nominal Nominal mass flow rate [kg/s]
Pressuredp_nominal Pressure [Pa]
Initialization
RealkDamSqu.start1Flow coefficient for damper, kDam=k^2=m_flow^2/|dp| [kg.m]
Assumptions
BooleanallowFlowReversalsystem.allowFlowReversal= true to allow flow reversal, false restricts to design direction (port_a -> port_b)
Advanced
AbsolutePressuredp_startdp_nominalGuess value of dp = port_a.p - port_b.p [Pa]
MassFlowRatem_flow_startsystem.m_flow_startGuess value of m_flow = port_a.m_flow [kg/s]
MassFlowRatem_flow_small1E-4*m_flow_nominalSmall mass flow rate for regularization of zero flow [kg/s]
Booleanfrom_dptrue= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Booleanuse_constant_densitytrueSet to true to use constant density for flow friction
Diagnostics
Booleanshow_Ttrue= true, if temperatures at port_a and port_b are computed
Booleanshow_V_flowtrue= true, if volume flow rate at inflowing port is computed
Damper coefficients
Reala-1.51Coefficient a for damper characteristics
Realb0.105*90Coefficient b for damper characteristics
RealyL15/90Lower value for damper curve
RealyU55/90Upper value for damper curve
Realk01E6Flow coefficient for y=0, k0 = pressure drop divided by dynamic pressure
Realk10.45Flow coefficient for y=1, k1 = pressure drop divided by dynamic pressure

Connectors

TypeNameDescription
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)
input RealInputyDamper position (0: closed, 1: open)

Modelica definition

model VAVBoxExponential 
  "VAV box with a fixed resistance plus a damper model withe exponential characteristics"
  extends Buildings.Fluids.Actuators.BaseClasses.PartialDamperExponential(dp_start=dp_nominal);
  import SI = Modelica.SIunits;

  parameter SI.MassFlowRate m_flow_nominal "Mass flow rate";
  parameter SI.Pressure dp_nominal(min=0) 
    "Pressure drop, including fully open damper";
protected 
  parameter SI.Pressure dpDamOpe0 = k1*m_flow_nominal^2/2/Medium.density(sta0)/A^2 
    "Pressure drop of fully open damper at nominal flow rate";
  parameter Real kResSqu(unit="kg.m") = m_flow_nominal^2 / (dp_nominal-dpDamOpe0) 
    "Resistance coefficient for fixed resistance element";
equation 
//    "flow coefficient for resistance base model";
   k = sqrt(1/(1/kResSqu + 1/kDamSqu)) 
    "flow coefficient for resistance base model";

end VAVBoxExponential;

HTML-documentation generated by Dymola Fri May 15 10:14:13 2009.