Buildings.DHC.Plants.Steam.Examples
Example models for steam plants
Information
This package contains advanced examples illustrating the use of the models in Buildings.DHC.Plants.Steam.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
Name | Description |
---|---|
SingleBoiler | Example model to demonstrate the single-boiler steam plant in a single closed loop |
Buildings.DHC.Plants.Steam.Examples.SingleBoiler
Example model to demonstrate the single-boiler steam plant
in a single closed loop
Information
This model validates the steam plant implemented in Buildings.DHC.Plants.Steam.SingleBoiler.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Type | Name | Default | Description |
---|---|---|---|
AbsolutePressure | pSat | 300000 | Saturation pressure [Pa] |
Temperature | TSat | MediumSte.saturationTemperat... | Saturation temperature [K] |
MassFlowRate | m_flow_nominal | 1 | Nominal mass flow rate of plant [kg/s] |
PressureDifference | dpPip | 6000 | Pressure drop in the condensate return pipe [Pa] |
Generic | perPumFW | perPumFW(pressure(V_flow=(m_... | Performance data for feedwater pump |
Generic | perPumCNR | perPumCNR(pressure(V_flow=(m... | Performance data for condensate return pumps |
Modelica definition
model SingleBoiler "Example model to demonstrate the single-boiler steam plant
in a single closed loop"
extends Modelica.Icons.Example;
package MediumSte = Buildings.Media.Steam (
p_default=300000,
T_default=273.15+200,
h_default=2700000)
"Steam medium";
package MediumWat =
Buildings.Media.Specialized.Water.TemperatureDependentDensity (
p_default=101325,
T_default=273.15+100)
"Water medium";
parameter Modelica.Units.SI.AbsolutePressure pSat=300000
"Saturation pressure";
parameter Modelica.Units.SI.Temperature TSat=
MediumSte.saturationTemperature(pSat)
"Saturation temperature";
parameter Modelica.Units.SI.MassFlowRate m_flow_nominal=1
"Nominal mass flow rate of plant";
parameter Modelica.Units.SI.PressureDifference dpPip=6000
"Pressure drop in the condensate return pipe";
// pumps
parameter Buildings.Fluid.Movers.Data.Generic perPumFW(
pressure(
V_flow=(m_flow_nominal/1000)*{0.4,0.6,0.8,1.0},
dp=(pSat-101325)*{1.34,1.27,1.17,1.0}))
"Performance data for feedwater pump";
parameter Buildings.Fluid.Movers.Data.Generic perPumCNR(
pressure(
V_flow=(m_flow_nominal/1000)*{0,1,2},
dp=dpPip*{2,1,0}))
"Performance data for condensate return pumps";
Buildings.DHC.Plants.Steam.SingleBoiler pla(
redeclare final package Medium = MediumWat,
redeclare final package MediumHea_b = MediumSte,
allowFlowReversal=true,
final m_flow_nominal=m_flow_nominal,
final pSteSet=pSat,
final per=perPumFW,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Plant";
Buildings.DHC.Loads.Steam.BaseClasses.ControlVolumeCondensation vol(
redeclare final package MediumSte = MediumSte,
redeclare final package MediumWat = MediumWat,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
final p_start=pSat,
final m_flow_nominal=m_flow_nominal,
V=1)
"Volume";
Buildings.Fluid.FixedResistances.PressureDrop res(
redeclare final package Medium = MediumWat,
final m_flow_nominal=m_flow_nominal,
final dp_nominal = dpPip)
"Resistance in district network";
Buildings.DHC.Loads.Steam.BaseClasses.SteamTrap steTra(
redeclare final package Medium = MediumWat,
final m_flow_nominal=m_flow_nominal)
"Steam trap";
Modelica.Blocks.Sources.Sine inp(
amplitude=-0.5,
f=1/86400,
phase=3.1415926535898,
offset=0.5)
"Input signal";
Buildings.Fluid.Sensors.MassFlowRate senMasFlo(
redeclare final package Medium = MediumWat)
"Mass flow rate sensor";
Buildings.Controls.Continuous.LimPID conPumCNR(
controllerType=Modelica.Blocks.Types.SimpleController.PI,
k=1,
Ti=15)
"Controller";
Modelica.Blocks.Math.Gain m_flow(final k=m_flow_nominal)
"Gain to calculate m_flow";
Buildings.Fluid.Movers.SpeedControlled_y pumCNR(
redeclare final package Medium = MediumWat,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
p_start=101325,
final per=perPumCNR,
y_start=1)
"Condensate return pump";
equation
connect(res.port_b, pla.port_aSerHea);
connect(vol.port_b, steTra.port_a);
connect(pla.port_bSerHea, vol.port_a);
connect(steTra.port_b, senMasFlo.port_a);
connect(senMasFlo.port_b, pumCNR.port_a);
connect(pumCNR.port_b, res.port_a);
connect(senMasFlo.m_flow, conPumCNR.u_m);
connect(conPumCNR.y, pumCNR.y);
connect(m_flow.y, conPumCNR.u_s);
connect(inp.y, m_flow.u);
end SingleBoiler;