Buildings.Templates.Components.Fans

Fan models

Information

This package contains models for fans.

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

Name Description
Buildings.Templates.Components.Fans.ArrayVariable ArrayVariable Fan array - Variable speed
Buildings.Templates.Components.Fans.None None No fan
Buildings.Templates.Components.Fans.SingleConstant SingleConstant Single fan - Constant speed
Buildings.Templates.Components.Fans.SingleVariable SingleVariable Single fan - Variable speed

Buildings.Templates.Components.Fans.ArrayVariable Buildings.Templates.Components.Fans.ArrayVariable

Fan array - Variable speed

Buildings.Templates.Components.Fans.ArrayVariable

Information

This is a model for a parallel arrangement of identical variable speed fans (or fan array).

Extends from Buildings.Templates.Components.Interfaces.PartialFan (Interface class for fan).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Fandat Design and operating parameters
Configuration
FantypBuildings.Templates.Componen...Equipment type
Booleanhave_senFlofalseSet to true for air flow measurement
IntegernFan Number of fans
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Dynamics
Nominal condition
Timetau1Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Graphics
FanSingletypSinBuildings.Templates.Componen...Type of single fan
Integertext_rotation0Text rotation angle in icon layer
Booleantext_flipfalseTrue to flip text horizontally in icon layer

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)
BusbusControl bus

Modelica definition

model ArrayVariable "Fan array - Variable speed" extends Buildings.Templates.Components.Interfaces.PartialFan( final typ=Buildings.Templates.Components.Types.Fan.ArrayVariable); Buildings.Fluid.Movers.SpeedControlled_y fan[nFan]( redeclare each final package Medium=Medium, each final inputType=Buildings.Fluid.Types.InputType.Continuous, each final per=dat.per, each final energyDynamics=energyDynamics, each final tau=tau, each use_inputFilter=energyDynamics<>Modelica.Fluid.Types.Dynamics.SteadyState, each final allowFlowReversal=allowFlowReversal) "Fan array"; Buildings.Controls.OBC.CDL.Routing.RealScalarReplicator repSig( final nout=nFan) "Replicate signal"; Buildings.Controls.OBC.CDL.Conversions.BooleanToReal sigSta "Start/stop signal"; Buildings.Controls.OBC.CDL.Reals.Multiply sigCon "Resulting control signal"; Buildings.Controls.OBC.CDL.Reals.GreaterThreshold evaSta[nFan]( each t=1E-2, each h=0.5E-2) "Evaluate fan status"; Buildings.Fluid.Delays.DelayFirstOrder volInl( redeclare final package Medium=Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, final m_flow_nominal=m_flow_nominal, tau=1, final nPorts=nFan+1) "Fluid volume at inlet"; Buildings.Fluid.Delays.DelayFirstOrder volOut( redeclare final package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, final m_flow_nominal=m_flow_nominal, tau=1, final nPorts=nFan+1) "Fluid volume at outet"; Buildings.Controls.OBC.CDL.Logical.MultiAnd evaStaArr( final nin=nFan) "Evaluate fan array status"; equation connect(repSig.y, fan.y); connect(sigSta.y, sigCon.u2); connect(sigCon.y, repSig.u); connect(fan.y_actual, evaSta.u); connect(volInl.ports[1:nFan], fan.port_a); connect(fan.port_b, volOut.ports[1:nFan]); connect(volOut.ports[nFan+1], V_flow.port_a); connect(volInl.ports[nFan+1], port_a); connect(evaSta.y, evaStaArr.u); connect(evaStaArr.y, bus.y1_actual); connect(bus.y1, sigSta.u); connect(bus.y, sigCon.u1); end ArrayVariable;

Buildings.Templates.Components.Fans.None Buildings.Templates.Components.Fans.None

No fan

Buildings.Templates.Components.Fans.None

Information

This is a direct fluid pass-through model to represent a configuration with no fan.

Extends from Buildings.Templates.Components.Interfaces.PartialFan (Interface class for fan).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Fandat Design and operating parameters
Configuration
FantypBuildings.Templates.Componen...Equipment type
Booleanhave_senFlofalseSet to true for air flow measurement
IntegernFan0Number of fans
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Dynamics
Nominal condition
Timetau1Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Graphics
FanSingletypSinBuildings.Templates.Componen...Type of single fan
Integertext_rotation0Text rotation angle in icon layer
Booleantext_flipfalseTrue to flip text horizontally in icon layer

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)
BusbusControl bus

Modelica definition

model None "No fan" extends Buildings.Templates.Components.Interfaces.PartialFan( final nFan=0, final typ=Buildings.Templates.Components.Types.Fan.None); equation connect(port_a, V_flow.port_a); end None;

Buildings.Templates.Components.Fans.SingleConstant Buildings.Templates.Components.Fans.SingleConstant

Single fan - Constant speed

Buildings.Templates.Components.Fans.SingleConstant

Information

This is a model for a constant speed fan.

Extends from Buildings.Templates.Components.Interfaces.PartialFan (Interface class for fan).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Fandat Design and operating parameters
Configuration
FantypBuildings.Templates.Componen...Equipment type
Booleanhave_senFlofalseSet to true for air flow measurement
IntegernFan1Number of fans
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Dynamics
Nominal condition
Timetau1Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Graphics
FanSingletypSinBuildings.Templates.Componen...Type of single fan
Integertext_rotation0Text rotation angle in icon layer
Booleantext_flipfalseTrue to flip text horizontally in icon layer

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)
BusbusControl bus

Modelica definition

model SingleConstant "Single fan - Constant speed" extends Buildings.Templates.Components.Interfaces.PartialFan( final nFan=1, final typ=Buildings.Templates.Components.Types.Fan.SingleConstant); Buildings.Fluid.Movers.SpeedControlled_y fan( redeclare final package Medium =Medium, final inputType=Buildings.Fluid.Types.InputType.Continuous, final per=dat.per, final energyDynamics=energyDynamics, final tau=tau, use_inputFilter=energyDynamics<>Modelica.Fluid.Types.Dynamics.SteadyState, final allowFlowReversal=allowFlowReversal) "Fan"; Buildings.Controls.OBC.CDL.Conversions.BooleanToReal sigSta "Start/stop signal"; Buildings.Controls.OBC.CDL.Reals.GreaterThreshold evaSta( t=1E-2, h=0.5E-2) "Evaluate fan status"; equation connect(sigSta.y, fan.y); connect(port_a, fan.port_a); connect(fan.y_actual, evaSta.u); connect(bus.y1, sigSta.u); connect(evaSta.y, bus.y1_actual); connect(fan.port_b, V_flow.port_a); end SingleConstant;

Buildings.Templates.Components.Fans.SingleVariable Buildings.Templates.Components.Fans.SingleVariable

Single fan - Variable speed

Buildings.Templates.Components.Fans.SingleVariable

Information

This is a model for a variable speed fan (with VFD).

Extends from Buildings.Templates.Components.Interfaces.PartialFan (Interface class for fan).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Fandat Design and operating parameters
Configuration
FantypBuildings.Templates.Componen...Equipment type
Booleanhave_senFlofalseSet to true for air flow measurement
IntegernFan1Number of fans
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Dynamics
Nominal condition
Timetau1Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Graphics
FanSingletypSinBuildings.Templates.Componen...Type of single fan
Integertext_rotation0Text rotation angle in icon layer
Booleantext_flipfalseTrue to flip text horizontally in icon layer

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)
BusbusControl bus

Modelica definition

model SingleVariable "Single fan - Variable speed" extends Buildings.Templates.Components.Interfaces.PartialFan( final nFan=1, final typ=Buildings.Templates.Components.Types.Fan.SingleVariable); Buildings.Fluid.Movers.SpeedControlled_y fan( redeclare final package Medium = Medium, final inputType=Buildings.Fluid.Types.InputType.Continuous, final per=dat.per, final energyDynamics=energyDynamics, final tau=tau, use_inputFilter=energyDynamics<>Modelica.Fluid.Types.Dynamics.SteadyState, final allowFlowReversal=allowFlowReversal) "Fan"; Buildings.Controls.OBC.CDL.Conversions.BooleanToReal sigSta "Start/stop signal"; Buildings.Controls.OBC.CDL.Reals.Multiply sigCon "Resulting control signal"; Buildings.Controls.OBC.CDL.Reals.GreaterThreshold evaSta( t=1E-2, h=0.5E-2) "Evaluate fan status"; equation connect(port_a, fan.port_a); connect(fan.y_actual, evaSta.u); connect(bus.y1, sigSta.u); connect(evaSta.y, bus.y1_actual); connect(sigCon.y, fan.y); connect(bus.y, sigCon.u1); connect(sigSta.y, sigCon.u2); connect(fan.port_b, V_flow.port_a); end SingleVariable;