Buildings.Templates.Components.BaseClasses

Package with base classes for Buildings.Templates.Components

Information

This package contains base classes that are used to construct the models in Buildings.Templates.Components.

Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).

Package Content

Name Description
Buildings.Templates.Components.BaseClasses.MoverSpeedControlled_y MoverSpeedControlled_y  
Buildings.Templates.Components.BaseClasses.PartialHeatPumpTableData2DLoadDep PartialHeatPumpTableData2DLoadDep Interface for heat pump using load-dependent 2D table data

Buildings.Templates.Components.BaseClasses.MoverSpeedControlled_y Buildings.Templates.Components.BaseClasses.MoverSpeedControlled_y


Buildings.Templates.Components.BaseClasses.MoverSpeedControlled_y

Information

This is a compiler-friendly version of Buildings.Fluid.Movers.SpeedControlled_y which facilitates the propagation of the mover performance curves by binding _m_flow_nominal to a top-level parameter rather than to an expression that depends on the performance data record.

Extends from Buildings.Fluid.Movers.SpeedControlled_y (Fan or pump with ideally controlled normalized speed y as input signal).

Parameters

TypeNameDefaultDescription
replaceable package MediumPartialMediumMedium in the component
Genericperredeclare parameter Building...Record with performance data
BooleanaddPowerToMediumtrueSet to false to avoid any power (=heat and flow work) being added to medium (may give simpler equations)
MassFlowRatem_flow_nominal [kg/s]
Control
InputTypeinputTypeBuildings.Fluid.Types.InputT...Control input type
Dynamics
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Timetau1Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic [s]
Motor speed
Booleanuse_riseTimetrueSet to true to continuously change motor speed
TimeriseTime30Time needed to change motor speed between zero and full speed [s]
InitinitModelica.Blocks.Types.Init.I...Type of initialization (no init/steady state/initial state/initial output)
Realy_start0Initial value of speed [1]
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
Initialization
AbsolutePressurep_startMedium.p_defaultStart value of pressure [Pa]
TemperatureT_startMedium.T_defaultStart value of temperature [K]
MassFractionX_start[Medium.nX]Medium.X_defaultStart value of mass fractions m_i/m [kg/kg]
ExtraPropertyC_start[Medium.nC]fill(0, Medium.nC)Start value of trace substances
ExtraPropertyC_nominal[Medium.nC]fill(1E-2, Medium.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal

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 IntegerInputstageStage input signal for the pressure head
output RealOutputy_actualActual normalised fan or pump speed that is used for computations [1]
output RealOutputPElectrical power consumed [W]
HeatPort_aheatPortHeat dissipation to environment
input RealInputyConstant normalized rotational speed [1]

Modelica definition

model MoverSpeedControlled_y extends Buildings.Fluid.Movers.SpeedControlled_y( final _m_flow_nominal=m_flow_nominal); parameter Modelica.Units.SI.MassFlowRate m_flow_nominal; end MoverSpeedControlled_y;

Buildings.Templates.Components.BaseClasses.PartialHeatPumpTableData2DLoadDep Buildings.Templates.Components.BaseClasses.PartialHeatPumpTableData2DLoadDep

Interface for heat pump using load-dependent 2D table data

Buildings.Templates.Components.BaseClasses.PartialHeatPumpTableData2DLoadDep

Information

This is the base class for heat pump models where the capacity and input power are computed by interpolating manufacturer data along the condenser entering or leaving temperature, the evaporator entering or leaving temperature and the part load ratio. Toggling the Boolean parameter typMod==Buildings.Templates.Components.Types.HeatPumpCapability.Reversible enables representing either a non-reversible (heating-only) heat pump or a reversible heat pump.

This model is a wrapper for Buildings.Fluid.HeatPumps.ModularReversible.TableData2DLoadDep, which the user may refer to for the modeling assumptions.

Control points

The following input and output points are available.

Extends from Buildings.Templates.Components.Interfaces.PartialHeatPump.

Parameters

TypeNameDefaultDescription
replaceable package MediumHeaWatWaterHW medium
replaceable package MediumChiWatMediumHeaWatCHW medium
replaceable package MediumSouWaterSource-side medium
replaceable package MediumAirAirAir medium
HeatPumptyp Heat pump source/sink type
HeatPumpCapabilitytypMod Heat pump operating mode capability
HeatPumpdat Design and operating parameters
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal
BooleanallowFlowReversalSoutrueSource side flow reversal: false to simplify equations, assuming, but not enforcing, no flow reversal
Booleanhave_dpChiHeaWattrueSet to true for CHW/HW pressure drop computed by this model, false for external computation
Booleanhave_dpSoutrueSet to true for source fluid pressure drop computed by this model, false for external computation
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
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state

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)
FluidPort_aport_aChiWatCHW fluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bChiWatCHW fluid connector b (positive design flow direction is from port_a to port_b)
FluidPort_aport_aSouSource fluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bSouSource fluid connector b (positive design flow direction is from port_a to port_b)
BusbusControl bus
BusbusWeaWeather bus

Modelica definition

partial model PartialHeatPumpTableData2DLoadDep "Interface for heat pump using load-dependent 2D table data" extends Buildings.Templates.Components.Interfaces.PartialHeatPump; Controls.StatusEmulator y1_actual "Compute heat pump status"; Fluid.Sensors.MassFlowRate mHeaWat_flow( redeclare final package Medium=MediumHeaWat) "HW mass flow rate"; Fluid.Sensors.TemperatureTwoPort THeaWatEnt( redeclare final package Medium=MediumHeaWat, final m_flow_nominal=max(mChiWat_flow_nominal, mHeaWat_flow_nominal)) "HW entering temperature"; Fluid.Sensors.TemperatureTwoPort THeaWatLvg( redeclare final package Medium=MediumHeaWat, final m_flow_nominal=max(mChiWat_flow_nominal, mHeaWat_flow_nominal)) "HW leaving temperature"; Fluid.Sensors.TemperatureTwoPort TSouEnt( redeclare final package Medium=MediumSou, final m_flow_nominal=mSouHea_flow_nominal) "Source fluid entering temperature"; Fluid.Sensors.TemperatureTwoPort TSouLvg( redeclare final package Medium=MediumSou, final m_flow_nominal=mSouHea_flow_nominal) "Source fluid leaving temperature"; Buildings.Fluid.HeatPumps.ModularReversible.TableData2DLoadDep hp( redeclare final package MediumCon=MediumHeaWat, redeclare final package MediumEva=MediumSou, final datHea=dat.perHea, final datCoo=dat.perCoo, final P_min=dat.P_min, final use_rev=typMod==Buildings.Templates.Components.Types.HeatPumpCapability.Reversible, final QCoo_flow_nominal=QCoo_flow_nominal, final QHea_flow_nominal=QHea_flow_nominal, final TConHea_nominal=THeaWatSup_nominal, final TEvaHea_nominal=TSouHea_nominal, final TConCoo_nominal=TChiWatSup_nominal, final TEvaCoo_nominal=TSouCoo_nominal, final allowFlowReversalCon=allowFlowReversal, final allowFlowReversalEva=allowFlowReversalSou, final dTCon_nominal=THeaWatSup_nominal - THeaWatRet_nominal, dTEva_nominal=0, final dpCon_nominal=if have_dpChiHeaWat then dpHeaWat_nominal else 0, final dpEva_nominal=if have_dpSou then dpSouHea_nominal else 0, final energyDynamics=energyDynamics, final mCon_flow_nominal=mHeaWat_flow_nominal, final mEva_flow_nominal=mSouHea_flow_nominal, final show_T=show_T, use_conCap=false, use_evaCap=false) if not typMod == Buildings.Templates.Components.Types.HeatPumpCapability.Polyvalent "Heat pump"; Buildings.Fluid.HeatPumps.ModularReversible.TableData2DLoadDepSHC php( redeclare final package MediumCon=MediumHeaWat, redeclare final package MediumEva=MediumChiWat, final P_min=dat.P_min, final QCoo_flow_nominal=QCoo_flow_nominal, final QHea_flow_nominal=QHea_flow_nominal, final QHeaShc_flow_nominal=abs(dat.capHeaShc_nominal), final QCooShc_flow_nominal=-abs(dat.capCooShc_nominal), final dat=dat.perPhp, final TConHea_nominal=THeaWatSup_nominal, final TEvaHea_nominal=TSouHea_nominal, final TConCoo_nominal=TChiWatSup_nominal, final TEvaCoo_nominal=TSouCoo_nominal, final allowFlowReversalCon=allowFlowReversal, final allowFlowReversalEva=allowFlowReversal, final dTCon_nominal=THeaWatSup_nominal - THeaWatRet_nominal, final dTEva_nominal=TChiWatSup_nominal - TChiWatRet_nominal, final energyDynamics=energyDynamics, final dpHw_nominal=if have_dpChiHeaWat then dpHeaWat_nominal else 0, final dpChw_nominal=if have_dpChiHeaWat then dpChiWat_nominal else 0, final mCon_flow_nominal=mHeaWat_flow_nominal, final mEva_flow_nominal=mChiWat_flow_nominal, final show_T=show_T, use_conCap=false, use_evaCap=false) if typMod == Buildings.Templates.Components.Types.HeatPumpCapability.Polyvalent "Polyvalent heat pump"; Routing.PassThroughFluid pas(redeclare final package Medium=MediumSou) if typ == Buildings.Templates.Components.Types.HeatPump.AirToWater and typMod == Buildings.Templates.Components.Types.HeatPumpCapability.Polyvalent "Direct fluid pass through in case of air-source polyvalent HP"; Buildings.Controls.OBC.CDL.Logical.Or onHeaOrCoo if typMod == Buildings.Templates.Components.Types.HeatPumpCapability.Polyvalent "Commanded on in cooling or heating mode"; equation connect(port_a, mHeaWat_flow.port_a); connect(mHeaWat_flow.port_b, THeaWatEnt.port_a); connect(THeaWatLvg.port_b, port_b); connect(TSouLvg.port_b, port_bSou); connect(THeaWatEnt.port_b, hp.port_a1); connect(hp.port_b1, THeaWatLvg.port_a); connect(TSouLvg.port_a, hp.port_b2); connect(TSouEnt.port_b, hp.port_a2); connect(y1_actual.y1_actual, bus.y1_actual); connect(bus.y1, hp.on); connect(bus.y1Hea, hp.hea); connect(bus.THeaWatSet, hp.THwSet); connect(bus.TChiWatSet, hp.TChwSet); connect(hp.on, y1_actual.y1); connect(php.port_b1, THeaWatLvg.port_a); connect(THeaWatEnt.port_b,php. port_a1); connect(php.port_b2, port_bChiWat); connect(port_aChiWat,php. port_a2); connect(busWea,php. weaBus); connect(TSouEnt.port_b, pas.port_a); connect(pas.port_b, TSouLvg.port_a); connect(bus.THeaWatSet,php. THwSet); connect(bus.TChiWatSet,php. TChwSet); connect(bus.y1Hea,php. onHea); connect(bus.y1Coo,php. onCoo); connect(onHeaOrCoo.y, y1_actual.y1); connect(php.onHea, onHeaOrCoo.u1); connect(php.onCoo, onHeaOrCoo.u2); end PartialHeatPumpTableData2DLoadDep;