Buildings.Experimental.DHC.Examples.Combined.Generation5.CentralPlants
Package of models for central plant
Information
This package contains models of central plants that are used to build example models of DHC systems.
Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).
Package Content
Name | Description |
---|---|
SewageHeatRecovery | Model for sewage heat recovery plant |
Buildings.Experimental.DHC.Examples.Combined.Generation5.CentralPlants.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 DHC.CentralPlants.BaseClasses.PartialPlant (Partial class for modeling a central 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 | DHC.Types.DistrictSystemType... | 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[nFue] | 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 DHC.CentralPlants.BaseClasses.PartialPlant(
final have_fan=false,
final have_pum=true,
final have_eleHea=false,
final nFue=0,
final have_eleCoo=false,
final have_weaBus=false,
final typ=DHC.Types.DistrictSystemType.CombinedGeneration5);
parameter Modelica.SIunits.MassFlowRate mSew_flow_nominal
"Sewage water nominal mass flow rate";
parameter Modelica.SIunits.MassFlowRate mDis_flow_nominal
"District water nominal mass flow rate";
parameter Modelica.SIunits.PressureDifference dpSew_nominal
"Sewage side pressure drop at nominal mass flow rate";
parameter Modelica.SIunits.PressureDifference dpDis_nominal
"District side pressure drop at nominal mass flow rate";
parameter Modelica.SIunits.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)";
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";
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);
DHC.Networks.BaseClasses.DifferenceEnthalpyFlowRate senDifEntFlo(
redeclare package Medium1 = Medium,
final m_flow_nominal=mDis_flow_nominal)
"Variation of enthalpy flow rate";
Controls.OBC.CDL.Continuous.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;