This package provides records for design and operating parameters.
Most of the parameters should be assigned through the sub-record
dedicated to the controller.
All parameters that are also needed to parameterize other plant
components are propagated from the controller sub-record
to the corresponding equipment sub-records.
Note that those parameter bindings are not final so they may be
overwritten in case a component is parameterized at nominal
conditions that differ from the design conditions specified
in the controller sub-record.
record HeatPumpPlant
extends Modelica.Icons.Record;
parameter Buildings.Templates.Plants.HeatPumps.Configuration.HeatPumpPlant cfg
;
parameter String id=""
;
parameter Buildings.Templates.Plants.HeatPumps.Components.Data.Controller ctl(
final cfg=cfg)
;
parameter Buildings.Templates.Plants.HeatPumps.Components.Data.HeatPumpGroup
hp(
final typ=cfg.typ,
final nHp=cfg.nHp,
final is_rev=cfg.is_rev,
final typMod=cfg.typMod,
final cpHeaWat_default=cfg.cpHeaWat_default,
final cpSou_default=cfg.cpSou_default,
TChiWatSupHp_nominal=ctl.TChiWatSup_nominal,
capCooHp_nominal=ctl.capCooHp_nominal,
mHeaWatHp_flow_nominal=ctl.VHeaWatHp_flow_nominal*cfg.rhoHeaWat_default,
capHeaHp_nominal=ctl.capHeaHp_nominal,
mChiWatHp_flow_nominal=ctl.VChiWatHp_flow_nominal*cfg.rhoChiWat_default,
THeaWatSupHp_nominal=ctl.THeaWatSup_nominal)
;
parameter Buildings.Templates.Components.Data.PumpMultiple pumHeaWatPri(
final nPum=cfg.nPumHeaWatPri,
final rho_default=cfg.rhoHeaWat_default,
final typ=
if cfg.typPumHeaWatPri <> Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimary.None
then Buildings.Templates.Components.Types.Pump.Multiple
else Buildings.Templates.Components.Types.Pump.None,
m_flow_nominal=
fill(hp.nHp * (
if cfg.have_chiWat
and cfg.typPumChiWatPri==Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimary.None
then
max(hp.mHeaWatHp_flow_nominal, hp.mChiWatHp_flow_nominal)
else hp.mHeaWatHp_flow_nominal) /
max(cfg.nPumHeaWatPri, 1),
cfg.nPumHeaWatPri))
;
final parameter Buildings.Templates.Components.Data.PumpSingle pumHeaWatPriSin[
max(cfg.nPumHeaWatPri, 1)](
each typ=pumHeaWatPri.typ,
m_flow_nominal=
if pumHeaWatPri.typ == Buildings.Templates.Components.Types.Pump.None
then {0}
else pumHeaWatPri.m_flow_nominal,
dp_nominal=
if pumHeaWatPri.typ == Buildings.Templates.Components.Types.Pump.None
then {0}
else pumHeaWatPri.dp_nominal,
per(
pressure(
V_flow=
if pumHeaWatPri.typ == Buildings.Templates.Components.Types.Pump.None
then
[0]
else pumHeaWatPri.per.pressure.V_flow,
dp=
if pumHeaWatPri.typ == Buildings.Templates.Components.Types.Pump.None
then
[0]
else pumHeaWatPri.per.pressure.dp)),
each rho_default=pumHeaWatPri.rho_default)
;
parameter Buildings.Templates.Components.Data.PumpMultiple pumHeaWatSec(
final nPum=cfg.nPumHeaWatSec,
final rho_default=cfg.rhoHeaWat_default,
final typ=
if cfg.typPumHeaWatSec == Buildings.Templates.Plants.HeatPumps.Types.PumpsSecondary.Centralized
then Buildings.Templates.Components.Types.Pump.Multiple
else Buildings.Templates.Components.Types.Pump.None)
;
parameter Buildings.Templates.Components.Data.PumpMultiple pumChiWatPri(
final nPum=cfg.nPumChiWatPri,
final rho_default=cfg.rhoChiWat_default,
final typ=
if cfg.typPumChiWatPri <> Buildings.Templates.Plants.HeatPumps.Types.PumpsPrimary.None
then Buildings.Templates.Components.Types.Pump.Multiple
else Buildings.Templates.Components.Types.Pump.None,
m_flow_nominal=
fill(hp.mChiWatHp_flow_nominal * hp.nHp /
max(cfg.nPumChiWatPri, 1), cfg.nPumChiWatPri))
;
final parameter Buildings.Templates.Components.Data.PumpSingle pumChiWatPriSin[
max(cfg.nPumChiWatPri, 1)](
each typ=pumChiWatPri.typ,
m_flow_nominal=
if pumChiWatPri.typ == Buildings.Templates.Components.Types.Pump.None
then {0}
else pumChiWatPri.m_flow_nominal,
dp_nominal=
if pumChiWatPri.typ == Buildings.Templates.Components.Types.Pump.None
then {0}
else pumChiWatPri.dp_nominal,
per(
pressure(
V_flow=
if pumChiWatPri.typ == Buildings.Templates.Components.Types.Pump.None
then
[
0]
else pumChiWatPri.per.pressure.V_flow,
dp=
if pumChiWatPri.typ == Buildings.Templates.Components.Types.Pump.None
then
[
0]
else pumChiWatPri.per.pressure.dp)),
each rho_default=pumChiWatPri.rho_default)
;
parameter Buildings.Templates.Components.Data.PumpMultiple pumChiWatSec(
final nPum=cfg.nPumChiWatSec,
final rho_default=cfg.rhoChiWat_default,
final typ=
if cfg.typPumChiWatSec == Buildings.Templates.Plants.HeatPumps.Types.PumpsSecondary.Centralized
then Buildings.Templates.Components.Types.Pump.Multiple
else Buildings.Templates.Components.Types.Pump.None)
;
end HeatPumpPlant;