Buildings.Experimental.DHC.Plants.Heating
Package of models for central heating production
Information
This package contains models for central plants producing hot water.
Extends from Modelica.Icons.Package (Icon for standard packages).
Package Content
Name | Description |
---|---|
SewageHeatRecovery | Model for sewage heat recovery plant |
Buildings.Experimental.DHC.Plants.Heating.SewageHeatRecovery
Model for sewage heat recovery plant
Information
Model of sewage heat recovery plant with sewage mass flow rate and temperature as an input.
Extends from Buildings.Experimental.DHC.Plants.BaseClasses.PartialPlant (Partial class for modeling a plant).
Parameters
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | Water | Service side medium | |
replaceable package MediumHea_b | Water | Service side medium at heating supply | |
Generic | fue[nFue] | Fuel type | |
Efficiency | epsHex | Heat exchanger effectiveness [1] | |
Configuration | |||
DistrictSystemType | typ | Buildings.Experimental.DHC.T... | Type of district system |
Boolean | have_fan | false | Set to true if fan power is computed |
Boolean | have_pum | true | Set to true if pump power is computed |
Boolean | have_eleHea | false | Set to true if the plant has electric heating system |
Integer | nFue | 0 | Number of fuel types (0 means no combustion system) |
Boolean | have_eleCoo | false | Set to true if the plant has electric cooling system |
Boolean | have_weaBus | false | Set to true to use a weather bus |
Nominal conditions | |||
MassFlowRate | mSew_flow_nominal | Sewage water nominal mass flow rate [kg/s] | |
MassFlowRate | mDis_flow_nominal | District water nominal mass flow rate [kg/s] | |
PressureDifference | dpSew_nominal | Sewage side pressure drop at nominal mass flow rate [Pa] | |
PressureDifference | dpDis_nominal | District side pressure drop at nominal mass flow rate [Pa] | |
Assumptions | |||
Boolean | allowFlowReversal | false | Set to true to allow flow reversal in service lines |
Connectors
Type | Name | Description |
---|---|---|
FluidPort_a | port_aSerAmb | Fluid connector for ambient water service supply line |
FluidPort_b | port_bSerAmb | Fluid connector for ambient water service return line |
FluidPort_a | port_aSerHea | Fluid connector for heating service supply line |
FluidPort_b | port_bSerHea | Fluid connector for heating service return line |
FluidPort_a | port_aSerCoo | Fluid connector for cooling service supply line |
FluidPort_b | port_bSerCoo | Fluid connector for cooling service return line |
Bus | weaBus | Weather data bus |
output RealOutput | PHea | Power drawn by heating system [W] |
output RealOutput | PCoo | Power drawn by cooling system [W] |
output RealOutput | PFan | Power drawn by fan motors [W] |
output RealOutput | PPum | Power drawn by pump motors [W] |
output RealOutput | QFue_flow | Fuel energy input rate [W] |
input RealInput | TSewWat | Sewage water temperature [K] |
input RealInput | mPum_flow | Pumps mass flow rate [kg/s] |
output RealOutput | dH_flow | Variation of enthalpy flow rate across HX (leaving - entering) [W] |
Modelica definition
model SewageHeatRecovery
"Model for sewage heat recovery plant"
extends Buildings.Experimental.DHC.Plants.BaseClasses.PartialPlant(
final have_fan=false,
final have_pum=true,
final have_eleHea=false,
final have_eleCoo=false,
final have_weaBus=false,
final typ=Buildings.Experimental.DHC.Types.DistrictSystemType.CombinedGeneration5);
parameter Modelica.Units.SI.MassFlowRate mSew_flow_nominal
"Sewage water nominal mass flow rate";
parameter Modelica.Units.SI.MassFlowRate mDis_flow_nominal
"District water nominal mass flow rate";
parameter Modelica.Units.SI.PressureDifference dpSew_nominal
"Sewage side pressure drop at nominal mass flow rate";
parameter Modelica.Units.SI.PressureDifference dpDis_nominal
"District side pressure drop at nominal mass flow rate";
parameter Modelica.Units.SI.Efficiency epsHex "Heat exchanger effectiveness";
// IO CONNECTORS
Buildings.Controls.OBC.CDL.Interfaces.RealInput TSewWat(
final unit="K",
displayUnit="degC")
"Sewage water temperature";
Buildings.Controls.OBC.CDL.Interfaces.RealInput mPum_flow(
final unit="kg/s")
"Pumps mass flow rate";
Buildings.Controls.OBC.CDL.Interfaces.RealOutput dH_flow(final unit="W")
"Variation of enthalpy flow rate across HX (leaving - entering)";
// COMPONENTS
Fluid.HeatExchangers.ConstantEffectiveness hex(
redeclare final package Medium1=Medium,
redeclare final package Medium2=Medium,
final allowFlowReversal1=allowFlowReversal,
final allowFlowReversal2=allowFlowReversal,
final m1_flow_nominal=mSew_flow_nominal,
final m2_flow_nominal=mDis_flow_nominal,
final dp1_nominal=dpSew_nominal,
final dp2_nominal=dpDis_nominal,
final eps=epsHex)
"Heat exchanger (primary is sewage water side)";
Buildings.Experimental.DHC.EnergyTransferStations.BaseClasses.Pump_m_flow pumDis(
redeclare final package Medium=Medium,
final m_flow_nominal=mDis_flow_nominal,
final dp_nominal=dpDis_nominal,
final allowFlowReversal=allowFlowReversal)
"District water pump";
Fluid.Sources.Boundary_pT souSew(
redeclare final package Medium = Medium,
final use_T_in=true,
final nPorts=2)
"Source of sewage water";
Buildings.Experimental.DHC.EnergyTransferStations.BaseClasses.Pump_m_flow pumSew(
redeclare final package Medium=Medium,
final m_flow_nominal=mSew_flow_nominal,
final dp_nominal=dpSew_nominal,
final allowFlowReversal=allowFlowReversal)
"Sewage water pump";
Fluid.Sensors.TemperatureTwoPort senTSewOut(
redeclare final package Medium=Medium,
final allowFlowReversal=allowFlowReversal,
final m_flow_nominal=mSew_flow_nominal,
tau=0);
Buildings.Experimental.DHC.Networks.BaseClasses.DifferenceEnthalpyFlowRate senDifEntFlo(
redeclare package Medium1 = Medium,
final m_flow_nominal=mDis_flow_nominal)
"Variation of enthalpy flow rate";
Buildings.Controls.OBC.CDL.Reals.MultiSum sumPPum(nin=2) "Sum pump power";
equation
connect(senTSewOut.port_b, souSew.ports[1]);
connect(souSew.ports[2], pumSew.port_a);
connect(souSew.T_in, TSewWat);
connect(mPum_flow, pumSew.m_flow_in);
connect(pumSew.port_b, hex.port_a1);
connect(hex.port_b1, senTSewOut.port_a);
connect(mPum_flow, pumDis.m_flow_in);
connect(senDifEntFlo.dH_flow, dH_flow);
connect(senDifEntFlo.port_b2, hex.port_a2);
connect(hex.port_b2, senDifEntFlo.port_a1);
connect(port_aSerAmb, senDifEntFlo.port_a2);
connect(senDifEntFlo.port_b1, pumDis.port_a);
connect(pumDis.port_b, port_bSerAmb);
connect(sumPPum.y, PPum);
connect(pumSew.P, sumPPum.u[1]);
connect(pumDis.P, sumPPum.u[2]);
end SewageHeatRecovery;