Buildings.DHC.ETS.Combined.BaseClasses

Package with base classes

Information

This package contains base classes that are used to construct the classes in Buildings.DHC.ETS.Combined.

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

Package Content

Name Description
Buildings.DHC.ETS.Combined.BaseClasses.PartialHeatPumpHeatExchanger PartialHeatPumpHeatExchanger Partial model of a substation with heat pump and compressor-less cooling

Buildings.DHC.ETS.Combined.BaseClasses.PartialHeatPumpHeatExchanger Buildings.DHC.ETS.Combined.BaseClasses.PartialHeatPumpHeatExchanger

Partial model of a substation with heat pump and compressor-less cooling

Buildings.DHC.ETS.Combined.BaseClasses.PartialHeatPumpHeatExchanger

Information

This model represents an energy transfer station based on that described in Sommer (2020), with some additioinal details:

The cooling function is provided in a compressor-less mode by a heat exchanger connected to the district supply line.

The space heating heating function is provided by a water-to-water heat pump Buildings.DHC.ETS.Combined.Subsystems.HeatPump.

Space Heating and Cooling Enable/Disable

Heating (resp. cooling) is enabled based on the input signal uHea (resp. uCoo) which is held for 15 minutes, meaning that, when enabled, the mode remains active for at least 15 minutes and, when disabled, the mode cannot be enabled again for at least 15 minutes. The heating and cooling enable signals should be computed externally based on a schedule (to lock out the system during off-hours), ideally in conjunction with the number of requests yielded by the terminal unit controllers, or any other signal representative of the load.

Modeling considerations

There is a control volume at each of the two fluid ports that serve as inlet and outlet of the heating and cooling systems. These approximate the dynamics of the substation, and they also generally avoid nonlinear systems of equations if multiple substations are connected to each other.

References

Sommer T., Sulzer M., Wetter M., Sotnikov A., Mennel S., Stettler C. The reservoir network: A new network topology for district heating and cooling. Energy, Volume 199, 15 May 2020, 117418.

Extends from Buildings.DHC.ETS.BaseClasses.PartialETS (Partial class for modeling an energy transfer station).

Parameters

TypeNameDefaultDescription
replaceable package MediumSerWaterService side medium
replaceable package MediumSerHea_aWaterService side medium at heating inlet
replaceable package MediumBuiWaterBuilding side medium
Genericfue[nFue] Fuel type
Booleanhave_varFloContrueSet to true for heat pumps with variable condenser flow
Booleanhave_varFloEvatrueSet to true for heat pumps with variable evaporator flow
RealratFloMin0.3Minimum condenser mass flow rate (ratio to nominal) [1]
Configuration
DistrictSystemTypetypBuildings.DHC.Types.District...Type of district system
Booleanhave_heaWattrueSet to true if the ETS supplies heating water
Booleanhave_hotWatfalseSet to true if the ETS supplies hot water
Booleanhave_chiWattrueSet to true if the ETS supplies chilled water
Booleanhave_fanfalseSet to true if fan power is computed
Booleanhave_pumtrueSet to true if pump power is computed
Booleanhave_eleHeatrueSet to true if the ETS has electric heating system
IntegernFue0Number of fuel types (0 means no combustion system)
Booleanhave_eleCoofalseSet to true if the ETS has electric cooling system
Booleanhave_weaBusfalseSet to true to use a weather bus
Nominal condition
HeatFlowRateQHeaWat_flow_nominal0Nominal capacity of heating system (>=0) [W]
HeatFlowRateQHotWat_flow_nominal0Nominal capacity of hot water production system (>=0) [W]
HeatFlowRateQChiWat_flow_nominal0Nominal capacity of cooling system (<=0) [W]
TemperatureDifferencedT_nominal5Water temperature drop/increase accross load and source-side HX (always positive) [K]
TemperatureTHeaWatSup_nominal313.15Heating water supply temperature [K]
TemperatureTHotWatSup_nominal336.15Domestic hot water supply temperature to fixtures [K]
TemperatureTColWat_nominal288.15Cold water temperature (for hot water production) [K]
Pressuredp_nominal50000Pressure difference at nominal flow rate (for each flow leg) [Pa]
RealCOPHeaWat_nominal COP of heat pump for heating water production [1]
RealCOPHotWat_nominal COP of heat pump for hot water production [1]
DHC system
TemperatureTDisWatMin District water minimum temperature [K]
TemperatureTDisWatMax District water maximum temperature [K]
Nominal conditions
TemperatureTChiWatSup_nominal291.15Chilled water supply temperature [K]
Assumptions
BooleanallowFlowReversalSerfalseSet to true to allow flow reversal on service side
BooleanallowFlowReversalBuifalseSet to true to allow flow reversal on building side
Dynamics
DynamicsmixingVolumeEnergyDynamicsModelica.Fluid.Types.Dynamic...Formulation of energy balance for mixing volume at inlet and outlet

Connectors

TypeNameDescription
FluidPorts_aports_aHeaWat[nPorts_aHeaWat]Fluid connectors for heating water return (from building)
FluidPorts_bports_bHeaWat[nPorts_bHeaWat]Fluid connectors for heating water supply (to building)
FluidPorts_aports_aChiWat[nPorts_aChiWat]Fluid connectors for chilled water return (from building)
FluidPorts_bports_bChiWat[nPorts_bChiWat]Fluid connectors for chilled water supply (to building)
FluidPort_aport_aSerAmbFluid connector for ambient water service supply line
FluidPort_bport_bSerAmbFluid connector for ambient water service return line
FluidPort_aport_aSerHeaFluid connector for heating service supply line
FluidPort_bport_bSerHeaFluid connector for heating service return line
FluidPort_aport_aSerCooFluid connector for cooling service supply line
FluidPort_bport_bSerCooFluid connector for cooling service return line
output RealOutputPHeaPower drawn by heating system [W]
output RealOutputPCooPower drawn by cooling system [W]
output RealOutputPFanPower drawn by fan motors [W]
output RealOutputPPumPower drawn by pump motors [W]
output RealOutputQFue_flow[nFue]Fuel energy input rate [W]
BusweaBusWeather data bus
input BooleanInputuCooCooling enable signal
input BooleanInputuHeaHeating enable signal
input BooleanInputuSHWSHW production enable signal
input RealInputTHeaWatSupSetHeating water supply temperature set point [K]
input RealInputTHotWatSupSetDomestic hot water temperature set point for supply to fixtures [K]
input RealInputTColWatCold water temperature [K]
input RealInputQReqHotWat_flowService hot water load [W]
input RealInputTChiWatSupSetChilled water supply temperature set point [K]
output RealOutputmHea_flowDistrict water mass flow rate used for heating service [kg/s]
output RealOutputmCoo_flowDistrict water mass flow rate used for cooling service [kg/s]

Modelica definition

model PartialHeatPumpHeatExchanger "Partial model of a substation with heat pump and compressor-less cooling" extends Buildings.DHC.ETS.BaseClasses.PartialETS ( final typ=Buildings.DHC.Types.DistrictSystemType.CombinedGeneration5, final have_weaBus=false, final have_chiWat=true, final have_heaWat=true, have_hotWat=false, final have_eleHea=true, final nFue=0, final have_eleCoo=false, final have_pum=true, final have_fan=false, nPorts_aHeaWat=1, nPorts_aChiWat=1); // SYSTEM GENERAL parameter Boolean have_varFloCon = true "Set to true for heat pumps with variable condenser flow"; parameter Boolean have_varFloEva = true "Set to true for heat pumps with variable evaporator flow"; parameter Real ratFloMin( final unit="1", final min=0, final max=1)=0.3 "Minimum condenser mass flow rate (ratio to nominal)"; parameter Modelica.Units.SI.Temperature TDisWatMin "District water minimum temperature"; parameter Modelica.Units.SI.Temperature TDisWatMax "District water maximum temperature"; parameter Modelica.Units.SI.TemperatureDifference dT_nominal(min=0) = 5 "Water temperature drop/increase accross load and source-side HX (always positive)"; parameter Modelica.Units.SI.Temperature TChiWatSup_nominal=291.15 "Chilled water supply temperature"; final parameter Modelica.Units.SI.Temperature TChiWatRet_nominal= TChiWatSup_nominal + dT_nominal "Chilled water return temperature"; parameter Modelica.Units.SI.Temperature THeaWatSup_nominal=313.15 "Heating water supply temperature"; final parameter Modelica.Units.SI.Temperature THeaWatRet_nominal= THeaWatSup_nominal - dT_nominal "Heating water return temperature"; parameter Modelica.Units.SI.Temperature THotWatSup_nominal=336.15 "Domestic hot water supply temperature to fixtures"; parameter Modelica.Units.SI.Temperature TColWat_nominal=288.15 "Cold water temperature (for hot water production)"; parameter Modelica.Units.SI.Pressure dp_nominal(displayUnit="Pa") = 50000 "Pressure difference at nominal flow rate (for each flow leg)"; final parameter Modelica.Units.SI.MassFlowRate mHeaWat_flow_nominal(min=0)= abs(QHeaWat_flow_nominal/cpBui_default/(THeaWatSup_nominal - THeaWatRet_nominal)) "Heating water mass flow rate"; final parameter Modelica.Units.SI.MassFlowRate mChiWat_flow_nominal(min=0)= abs(QChiWat_flow_nominal/cpBui_default/(TChiWatSup_nominal - TChiWatRet_nominal)) "Chilled water mass flow rate"; final parameter Modelica.Units.SI.MassFlowRate mEvaHotWat_flow_nominal(min=0)= QHotWat_flow_nominal*(COPHotWat_nominal - 1)/COPHotWat_nominal/cpSer_default/dT_nominal "Evaporator water mass flow rate of heat pump for hot water production"; final parameter Modelica.Units.SI.MassFlowRate mSerWat_flow_nominal(min=0)= max(proHeaWat.mCon_flow_nominal + mEvaHotWat_flow_nominal, hexChi.m1_flow_nominal) "Service water mass flow rate"; constant Modelica.Units.SI.SpecificHeatCapacity cpBui_default= MediumBui.specificHeatCapacityCp(MediumBui.setState_pTX( p=MediumBui.p_default, T=MediumBui.T_default)) "Specific heat capacity of the fluid"; constant Modelica.Units.SI.SpecificHeatCapacity cpSer_default= MediumBui.specificHeatCapacityCp(MediumSer.setState_pTX( p=MediumSer.p_default, T=MediumSer.T_default)) "Specific heat capacity of the fluid"; // Heat pump for heating water production parameter Real COPHeaWat_nominal(final unit="1") "COP of heat pump for heating water production"; // Heat pump for hot water production parameter Real COPHotWat_nominal(final unit="1") "COP of heat pump for hot water production"; // District HX final parameter Modelica.Units.SI.MassFlowRate m1HexChi_flow_nominal(min=0)= abs(QChiWat_flow_nominal/cpSer_default/dT_nominal) "CHW HX primary mass flow rate"; final parameter Modelica.Units.SI.MassFlowRate m2HexChi_flow_nominal(min=0)= abs(QChiWat_flow_nominal/cpSer_default/(THeaWatSup_nominal - THeaWatRet_nominal)) "CHW HX secondary mass flow rate"; // Dynamics parameter Modelica.Fluid.Types.Dynamics mixingVolumeEnergyDynamics= Modelica.Fluid.Types.Dynamics.FixedInitial "Formulation of energy balance for mixing volume at inlet and outlet"; // IO CONNECTORS Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uCoo "Cooling enable signal"; Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uHea "Heating enable signal"; Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uSHW if have_hotWat "SHW production enable signal"; Buildings.Controls.OBC.CDL.Interfaces.RealInput THeaWatSupSet( final unit="K", displayUnit="degC") "Heating water supply temperature set point"; Buildings.Controls.OBC.CDL.Interfaces.RealInput THotWatSupSet( final unit="K", displayUnit="degC") if have_hotWat "Domestic hot water temperature set point for supply to fixtures"; Buildings.Controls.OBC.CDL.Interfaces.RealInput TColWat( final unit="K", displayUnit="degC") if have_hotWat "Cold water temperature"; Buildings.Controls.OBC.CDL.Interfaces.RealInput QReqHotWat_flow( final unit="W") if have_hotWat "Service hot water load"; Buildings.Controls.OBC.CDL.Interfaces.RealInput TChiWatSupSet(final unit="K", displayUnit="degC") "Chilled water supply temperature set point"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput mHea_flow(final unit="kg/s") "District water mass flow rate used for heating service"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput mCoo_flow(final unit="kg/s") "District water mass flow rate used for cooling service"; // COMPONENTS Buildings.Fluid.Delays.DelayFirstOrder volMix_a( redeclare final package Medium = MediumSer, final m_flow_nominal=mSerWat_flow_nominal, tau=600, final energyDynamics=mixingVolumeEnergyDynamics) "Mixing volume to break algebraic loops and to emulate the delay of the substation"; Buildings.Fluid.Delays.DelayFirstOrder volMix_b( redeclare final package Medium = MediumSer, final m_flow_nominal=mSerWat_flow_nominal, tau=600, final energyDynamics=mixingVolumeEnergyDynamics) "Mixing volume to break algebraic loops and to emulate the delay of the substation"; Buildings.DHC.ETS.BaseClasses.Pump_m_flow pum1HexChi( redeclare final package Medium = MediumSer, final m_flow_nominal=m1HexChi_flow_nominal, final allowFlowReversal=allowFlowReversalSer, dp_nominal=dp_nominal) "Chilled water HX primary pump"; Buildings.Fluid.HeatExchangers.DryCoilEffectivenessNTU hexChi( redeclare final package Medium1 = MediumSer, redeclare final package Medium2 = MediumBui, final m1_flow_nominal=m1HexChi_flow_nominal, final m2_flow_nominal=m2HexChi_flow_nominal, final dp1_nominal=dp_nominal/2, final dp2_nominal=dp_nominal/2, configuration=Buildings.Fluid.Types.HeatExchangerConfiguration.CounterFlow, final Q_flow_nominal=QChiWat_flow_nominal, final T_a1_nominal=TDisWatMax, final T_a2_nominal=TChiWatRet_nominal, final allowFlowReversal1=allowFlowReversalSer, final allowFlowReversal2=allowFlowReversalBui) "Chilled water HX"; Buildings.Fluid.Delays.DelayFirstOrder volHeaWatRet( redeclare final package Medium = MediumBui, final m_flow_nominal=proHeaWat.mCon_flow_nominal, tau=60, final energyDynamics=mixingVolumeEnergyDynamics, T_start=THeaWatSup_nominal, nPorts=3) "Mixing volume representing building HHW primary"; Buildings.Fluid.Sensors.MassFlowRate senMasFloHeaWat( redeclare final package Medium = MediumBui, final allowFlowReversal=allowFlowReversalBui) "Heating water mass flow rate"; Buildings.Fluid.Delays.DelayFirstOrder volChiWat( redeclare final package Medium = MediumBui, final m_flow_nominal=m1HexChi_flow_nominal, tau=60, final energyDynamics=mixingVolumeEnergyDynamics, T_start=TChiWatSup_nominal, nPorts=3) "Mixing volume representing building CHW primary"; Buildings.Fluid.Sensors.MassFlowRate senMasFloChiWat( redeclare final package Medium = MediumBui, final allowFlowReversal=allowFlowReversalBui) "Chilled water mass flow rate"; Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter gai2(final k= m1HexChi_flow_nominal); Buildings.Controls.OBC.Utilities.PIDWithEnable conTChiWat( k=0.05, Ti=120, yMax=1, controllerType=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, reverseActing=false, yMin=0) "PI controller for district HX primary side"; Buildings.Controls.OBC.CDL.Reals.MultiSum PPumHeaTot(nin=2) "Total pump power for heating applications"; Buildings.Fluid.Sources.Boundary_pT bouHeaWat( redeclare final package Medium = MediumBui, nPorts=1) "Pressure boundary condition representing the expansion vessel"; Buildings.Fluid.Sources.Boundary_pT bouChiWat( redeclare final package Medium = MediumBui, nPorts=1) "Pressure boundary condition representing the expansion vessel"; Buildings.Controls.OBC.CDL.Reals.MultiSum PPumCooTot(nin=1) "Total pump power for space cooling"; Buildings.Controls.OBC.CDL.Reals.MultiSum PPumTot(nin=2) "Total pump power"; Buildings.Fluid.Sensors.TemperatureTwoPort senTHeaWatSup( redeclare final package Medium=MediumBui, final allowFlowReversal=allowFlowReversalBui, final m_flow_nominal=mHeaWat_flow_nominal) "Heating water supply temperature"; Buildings.Fluid.Sensors.TemperatureTwoPort senTChiWatSup( redeclare final package Medium=MediumBui, final allowFlowReversal=allowFlowReversalBui, final m_flow_nominal=mChiWat_flow_nominal) "Chilled water supply temperature"; Buildings.DHC.ETS.Combined.Subsystems.SwitchBox swiFlo( redeclare final package Medium = MediumSer, final m_flow_nominal=mSerWat_flow_nominal, dpValve_nominal=1e-4) "Flow switch box"; Buildings.DHC.ETS.BaseClasses.Junction bypHeaWatSup( redeclare final package Medium = MediumBui, final m_flow_nominal=proHeaWat.mCon_flow_nominal *{1,-1,-1}) "Bypass heating water (supply)"; Buildings.DHC.ETS.BaseClasses.Junction bypHeaWatRet( redeclare final package Medium = MediumBui, final m_flow_nominal=proHeaWat.mCon_flow_nominal *{1,-1,1}) "Bypass heating water (return)"; Buildings.Controls.OBC.CDL.Logical.TrueFalseHold enaHea( trueHoldDuration=15*60) "Enable heating"; Buildings.DHC.ETS.Combined.Subsystems.HeatPump proHeaWat( redeclare final package Medium1 = MediumBui, redeclare final package Medium2 = MediumSer, dT_nominal=dT_nominal, final have_varFloCon=have_varFloCon, final COP_nominal=COPHeaWat_nominal, final TCon_nominal=THeaWatSup_nominal, final TEva_nominal=TDisWatMin - dT_nominal, final Q1_flow_nominal=QHeaWat_flow_nominal, final allowFlowReversal1=allowFlowReversalBui, final allowFlowReversal2=allowFlowReversalSer, final dp1_nominal=dp_nominal, final dp2_nominal=dp_nominal) "Subsystem for heating water production"; Buildings.Controls.OBC.CDL.Reals.MultiSum masFloHeaTot(nin=2) "Compute district water mass flow rate used for heating service"; Modelica.Blocks.Sources.Constant zer(final k=0) if not have_hotWat "Replacement variable"; Buildings.Fluid.Sensors.TemperatureTwoPort senTHeaWatRet( redeclare final package Medium = MediumBui, final allowFlowReversal=allowFlowReversalBui, final m_flow_nominal=mHeaWat_flow_nominal) "Heating water return temperature"; Buildings.Fluid.Sensors.TemperatureTwoPort senTChiWatRet( redeclare final package Medium = MediumBui, final allowFlowReversal=allowFlowReversalBui, final m_flow_nominal=mChiWat_flow_nominal) "Chilled water return temperature"; Buildings.Fluid.Sensors.MassFlowRate senMasFloHeaWatPri(redeclare final package Medium = MediumBui, final allowFlowReversal=allowFlowReversalBui) "Primary heating water mass flow rate"; Buildings.Controls.OBC.CDL.Logical.TrueFalseHold enaSHW( trueHoldDuration=15*60) if have_hotWat "Enable SHW production"; Modelica.Blocks.Sources.Constant zer1(k=0) if not have_hotWat "Replacement variable"; Buildings.Controls.OBC.CDL.Reals.Add masFloHea "Service water mass flow rate for heating applications"; Buildings.Controls.OBC.CDL.Reals.MultiSum PHeaTot(nin=2) "Total power used for heating and hot water production"; Buildings.Controls.OBC.CDL.Reals.Subtract dTHHW "Heating hot water DeltaT"; Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter capFloHHW( final k=cpBui_default) if have_varFloEva or have_varFloCon "Capacity flow rate"; Buildings.DHC.ETS.Combined.Controls.PrimaryVariableFlow conFloConHHW( final Q_flow_nominal=QHeaWat_flow_nominal, final dT_nominal=dT_nominal, final ratFloMin=ratFloMin, final cp=cpBui_default) if have_varFloCon "Mass flow rate control"; Buildings.Controls.OBC.CDL.Reals.Max priOve if have_varFloCon "Ensure primary overflow"; Buildings.Controls.OBC.CDL.Reals.Multiply loaHHW if have_varFloEva or have_varFloCon "Heating load"; Fluid.Sensors.MassFlowRate senMasFlo1HexChi(redeclare package Medium = MediumSer) "Chilled water HX primary mass flow rate"; equation connect(TChiWatSupSet, conTChiWat.u_s); connect(pum1HexChi.P, PPumCooTot.u[1]); connect(PPumHeaTot.y, PPumTot.u[1]); connect(PPumCooTot.y, PPumTot.u[2]); connect(pum1HexChi.m_flow_actual, mCoo_flow); connect(volMix_a.ports[1], swiFlo.port_bSup); connect(swiFlo.port_aRet, volMix_b.ports[1]); connect(volMix_b.ports[2], pum1HexChi.port_a); connect(hexChi.port_b1, volMix_a.ports[2]); connect(gai2.y, pum1HexChi.m_flow_in); connect(PPumTot.y, PPum); connect(ports_aHeaWat[1], senMasFloHeaWat.port_a); connect(bypHeaWatSup.port_2, senTHeaWatSup.port_a); connect(senTHeaWatSup.port_b, ports_bHeaWat[1]); connect(bypHeaWatRet.port_2, volHeaWatRet.ports[1]); connect(bouHeaWat.ports[1], volHeaWatRet.ports[2]); connect(ports_aChiWat[1], senMasFloChiWat.port_a); connect(senTChiWatSup.port_b, ports_bChiWat[1]); connect(bypHeaWatRet.port_3, bypHeaWatSup.port_3); connect(volHeaWatRet.ports[3], proHeaWat.port_a1); connect(proHeaWat.port_b2, volMix_b.ports[3]); connect(volMix_a.ports[3], proHeaWat.port_a2); connect(enaHea.y, proHeaWat.uEna); connect(THeaWatSupSet, proHeaWat.TSupSet); connect(proHeaWat.PPum, PPumHeaTot.u[1]); connect(masFloHeaTot.y, mHea_flow); connect(zer.y, masFloHeaTot.u[2]); connect(proHeaWat.mEva_flow, masFloHeaTot.u[1]); connect(zer.y, PPumHeaTot.u[2]); connect(senMasFloHeaWat.port_b, senTHeaWatRet.port_a); connect(senTHeaWatRet.port_b, bypHeaWatRet.port_1); connect(senMasFloChiWat.port_b, senTChiWatRet.port_a); connect(proHeaWat.port_b1, senMasFloHeaWatPri.port_a); connect(senMasFloHeaWatPri.port_b, bypHeaWatSup.port_1); connect(port_aSerAmb, swiFlo.port_aSup); connect(swiFlo.port_bRet, port_bSerAmb); connect(uHea, enaHea.u); connect(conTChiWat.y, gai2.u); connect(uCoo, conTChiWat.uEna); connect(uSHW, enaSHW.u); connect(senTChiWatRet.port_b, volChiWat.ports[1]); connect(volChiWat.ports[2], hexChi.port_a2); connect(hexChi.port_b2, senTChiWatSup.port_a); connect(bouChiWat.ports[1], volChiWat.ports[3]); connect(senTChiWatSup.T, conTChiWat.u_m); connect(zer1.y, masFloHea.u2); connect(proHeaWat.mEva_flow, masFloHea.u1); connect(masFloHea.y, swiFlo.mPos_flow); connect(proHeaWat.PHea, PHeaTot.u[1]); connect(zer.y, PHeaTot.u[2]); connect(PHeaTot.y, PHea); connect(senTHeaWatRet.T, dTHHW.u2); connect(senTHeaWatSup.T, dTHHW.u1); connect(senMasFloHeaWat.m_flow, capFloHHW.u); connect(senMasFloHeaWat.m_flow, priOve.u1); connect(conFloConHHW.m_flow, priOve.u2); connect(priOve.y, proHeaWat.m1_flow); connect(capFloHHW.y, loaHHW.u2); connect(dTHHW.y, loaHHW.u1); connect(loaHHW.y, conFloConHHW.loa); connect(pum1HexChi.port_b, senMasFlo1HexChi.port_a); connect(senMasFlo1HexChi.port_b, hexChi.port_a1); connect(senMasFlo1HexChi.m_flow, swiFlo.mRev_flow); end PartialHeatPumpHeatExchanger;