Buildings.Fluid.Actuators.Dampers.Examples

Collection of models that illustrate model use and test models

Information

This package contains examples for the use of models that can be found in Buildings.Fluid.Actuators.Dampers.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

Package Content

Name Description
Buildings.Fluid.Actuators.Dampers.Examples.Damper Damper Dampers with constant pressure difference and varying control signal.
Buildings.Fluid.Actuators.Dampers.Examples.MixingBox MixingBox Mixing box with constant pressure difference and varying control signal
Buildings.Fluid.Actuators.Dampers.Examples.MixingBoxMinimumFlow MixingBoxMinimumFlow Mixing box with minimum flow rate, with constant pressure difference and varying control signal
Buildings.Fluid.Actuators.Dampers.Examples.VAVBoxExponential VAVBoxExponential VAV box with constant pressure difference and varying control signal

Buildings.Fluid.Actuators.Dampers.Examples.Damper Buildings.Fluid.Actuators.Dampers.Examples.Damper

Dampers with constant pressure difference and varying control signal.

Buildings.Fluid.Actuators.Dampers.Examples.Damper

Information

Test model for exponential and linear air dampers. The air dampers are connected to models for constant inlet and outlet pressures. The control signal of the dampers is a ramp.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Damper "Dampers with constant pressure difference and varying control signal." extends Modelica.Icons.Example; package Medium = Buildings.Media.Air "Medium model for air"; Buildings.Fluid.Actuators.Dampers.Exponential res( redeclare package Medium = Medium, use_inputFilter=false, dpDamper_nominal=10, m_flow_nominal=1, k1=0.45) "A damper with quadratic relationship between m_flow and dp"; Modelica.Blocks.Sources.Ramp yRam( duration=0.3, offset=0, startTime=0.2, height=1); Buildings.Fluid.Sources.Boundary_pT sou( redeclare package Medium = Medium, p(displayUnit="Pa") = 101335, T=293.15, nPorts=4) "Pressure boundary condition"; Buildings.Fluid.Sources.Boundary_pT sin( redeclare package Medium = Medium, nPorts=4) "Pressure boundary condition"; Buildings.Fluid.Actuators.Dampers.PressureIndependent preIndDpFixed_nominal( use_inputFilter=false, redeclare package Medium = Medium, m_flow_nominal=1, dpFixed_nominal=5, dpDamper_nominal=10) "A damper with a mass flow proportional to the input signal and using dpFixed_nominal"; Buildings.Fluid.Actuators.Dampers.PressureIndependent preIndFrom_dp( use_inputFilter=false, redeclare package Medium = Medium, m_flow_nominal=1, dpFixed_nominal=0, dpDamper_nominal=10, from_dp=false) "A damper with a mass flow proportional to the input signal and using from_dp = false"; Buildings.Fluid.Actuators.Dampers.PressureIndependent preInd( redeclare package Medium = Medium, m_flow_nominal=1, dpDamper_nominal=10, use_inputFilter=false) "A damper with a mass flow proportional to the input signal"; equation connect(yRam.y, res.y); connect(yRam.y, preInd.y); connect(res.port_a, sou.ports[1]); connect(preInd.port_a, sou.ports[2]); connect(preIndFrom_dp.port_a, sou.ports[3]); connect(res.port_b, sin.ports[1]); connect(preInd.port_b, sin.ports[2]); connect(sou.ports[4], preIndDpFixed_nominal.port_a); connect(preIndFrom_dp.port_b, sin.ports[3]); connect(preIndDpFixed_nominal.port_b, sin.ports[4]); connect(preIndFrom_dp.y, yRam.y); connect(preIndDpFixed_nominal.y, yRam.y); end Damper;

Buildings.Fluid.Actuators.Dampers.Examples.MixingBox Buildings.Fluid.Actuators.Dampers.Examples.MixingBox

Mixing box with constant pressure difference and varying control signal

Buildings.Fluid.Actuators.Dampers.Examples.MixingBox

Information

Test model for the economizer mixing box. The economizer mixing box is exposed to time varying pressure boundary conditions and input signals.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model MixingBox "Mixing box with constant pressure difference and varying control signal" extends Modelica.Icons.Example; package Medium = Buildings.Media.Air "Medium in the component"; Buildings.Fluid.Actuators.Dampers.MixingBox mixBox( mOut_flow_nominal=1, mRec_flow_nominal=1, mExh_flow_nominal=1, redeclare package Medium = Medium, dpDamExh_nominal=10, dpDamOut_nominal=10, dpDamRec_nominal=10, dpFixExh_nominal=20, dpFixOut_nominal=20, dpFixRec_nominal=20) "mixing box"; Buildings.Fluid.Sources.Boundary_pT bouIn( redeclare package Medium = Medium, T=273.15 + 10, use_p_in=true, nPorts=2); Buildings.Fluid.Sources.Boundary_pT bouSup( redeclare package Medium = Medium, T=273.15 + 26, use_p_in=true, nPorts=1); Buildings.Fluid.Sources.Boundary_pT bouRet( redeclare package Medium = Medium, T=273.15 + 20, use_p_in=true, nPorts=1); Modelica.Blocks.Sources.Constant PAtm(k=101325); Modelica.Blocks.Sources.Ramp PSup( offset=101320, height=-10, startTime=0, duration=20); Modelica.Blocks.Sources.Ramp PRet( height=10, offset=101330, duration=20, startTime=20); Modelica.Blocks.Sources.Step yDam( height=1, offset=0, startTime=60); equation connect(yDam.y, mixBox.y); connect(bouIn.p_in, PAtm.y); connect(PRet.y, bouRet.p_in); connect(bouSup.p_in, PSup.y); connect(bouIn.ports[1], mixBox.port_Out); connect(bouIn.ports[2], mixBox.port_Exh); connect(bouSup.ports[1], mixBox.port_Sup); connect(bouRet.ports[1], mixBox.port_Ret); end MixingBox;

Buildings.Fluid.Actuators.Dampers.Examples.MixingBoxMinimumFlow Buildings.Fluid.Actuators.Dampers.Examples.MixingBoxMinimumFlow

Mixing box with minimum flow rate, with constant pressure difference and varying control signal

Buildings.Fluid.Actuators.Dampers.Examples.MixingBoxMinimumFlow

Information

Test model for the economizer mixing box that has a flow leg for the minimum outside air intake. The economizer mixing box is exposed to time varying pressure boundary conditions and input signals.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model MixingBoxMinimumFlow "Mixing box with minimum flow rate, with constant pressure difference and varying control signal" extends Modelica.Icons.Example; package Medium = Buildings.Media.Air "Medium in the component"; Buildings.Fluid.Actuators.Dampers.MixingBoxMinimumFlow mixBox( mOutMin_flow_nominal=0.3, dpDamOutMin_nominal=5, dpFixOutMin_nominal=20, mOut_flow_nominal=1, mRec_flow_nominal=1, mExh_flow_nominal=1, redeclare package Medium = Medium, dpDamExh_nominal=10, dpDamOut_nominal=10, dpDamRec_nominal=10, dpFixExh_nominal=20, dpFixOut_nominal=20, dpFixRec_nominal=20) "mixing box"; Buildings.Fluid.Sources.Boundary_pT bouIn( redeclare package Medium = Medium, T=273.15 + 10, use_p_in=true, nPorts=3); Buildings.Fluid.Sources.Boundary_pT bouSup( redeclare package Medium = Medium, T=273.15 + 26, use_p_in=true, nPorts=1); Buildings.Fluid.Sources.Boundary_pT bouRet( redeclare package Medium = Medium, T=273.15 + 20, use_p_in=true, nPorts=1); Modelica.Blocks.Sources.Constant PAtm(k=101325); Modelica.Blocks.Sources.Constant yDamMin(k=0.5); Modelica.Blocks.Sources.Ramp PSup( offset=101320, height=-60, startTime=0, duration=20); Modelica.Blocks.Sources.Ramp PRet( height=60, offset=101330, duration=20, startTime=20); Modelica.Blocks.Sources.Step yDam( height=0.1, offset=0.45, startTime=60); equation connect(yDamMin.y, mixBox.yOutMin); connect(yDam.y, mixBox.y); connect(bouIn.p_in, PAtm.y); connect(PRet.y, bouRet.p_in); connect(bouSup.p_in, PSup.y); connect(bouIn.ports[1], mixBox.port_OutMin); connect(bouIn.ports[2], mixBox.port_Out); connect(bouIn.ports[3], mixBox.port_Exh); connect(bouSup.ports[1], mixBox.port_Sup); connect(bouRet.ports[1], mixBox.port_Ret); end MixingBoxMinimumFlow;

Buildings.Fluid.Actuators.Dampers.Examples.VAVBoxExponential Buildings.Fluid.Actuators.Dampers.Examples.VAVBoxExponential

VAV box with constant pressure difference and varying control signal

Buildings.Fluid.Actuators.Dampers.Examples.VAVBoxExponential

Information

Test model for the variable air volume flow box. The model has two flow legs, both are connected to models for constant inlet and outlet pressures. The top flow leg has a flow resistance and an air damper, and the bottom flow leg combines both of these resistances into one model. Both flow legs have identical mass flow rates, except at very small flow rates. The reason for this difference is that the equations are regularized for numerical reasons, and combining the two components within one component leads to a slightly different equation for the regularization.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model VAVBoxExponential "VAV box with constant pressure difference and varying control signal" extends Modelica.Icons.Example; package Medium = Buildings.Media.Air; Buildings.Fluid.Actuators.Dampers.Exponential dam( redeclare package Medium = Medium, dpDamper_nominal=5, m_flow_nominal=2); Modelica.Blocks.Sources.Step yDam( height=-1, offset=1, startTime=60); Modelica.Blocks.Sources.Ramp P( height=-20, offset=101335, startTime=0, duration=60); Buildings.Fluid.Sources.Boundary_pT sou( redeclare package Medium = Medium, T=273.15 + 20, nPorts=2, use_p_in=true); Buildings.Fluid.Sources.Boundary_pT sin( redeclare package Medium = Medium, T=273.15 + 20, nPorts=2, use_p_in=true); Modelica.Blocks.Sources.Constant PAtm(k=101325); Buildings.Fluid.Actuators.Dampers.Exponential vav( redeclare package Medium = Medium, dpDamper_nominal=5, dpFixed_nominal=5, m_flow_nominal=2); Buildings.Fluid.FixedResistances.PressureDrop res( from_dp=true, m_flow_nominal=2, redeclare package Medium = Medium, dp_nominal=5); equation connect(yDam.y,dam. y); connect(P.y, sou.p_in); connect(PAtm.y, sin.p_in); connect(yDam.y, vav.y); connect(res.port_b, dam.port_a); connect(sou.ports[1], res.port_a); connect(sou.ports[2], vav.port_a); connect(dam.port_b, sin.ports[1]); connect(sin.ports[2], vav.port_b); end VAVBoxExponential;