Buildings.Experimental.DHC.Plants.Steam.Examples

Example models for steam plants

Information

This package contains advanced examples illustrating the use of the models in Buildings.Experimental.DHC.Plants.Steam.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

Package Content

Name Description
Buildings.Experimental.DHC.Plants.Steam.Examples.SingleBoiler SingleBoiler Example model to demonstrate the single-boiler steam plant in a single closed loop

Buildings.Experimental.DHC.Plants.Steam.Examples.SingleBoiler Buildings.Experimental.DHC.Plants.Steam.Examples.SingleBoiler

Example model to demonstrate the single-boiler steam plant in a single closed loop

Buildings.Experimental.DHC.Plants.Steam.Examples.SingleBoiler

Information

This model validates the steam plant implemented in Buildings.Experimental.DHC.Plants.Steam.SingleBoiler.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
AbsolutePressurepSat300000Saturation pressure [Pa]
TemperatureTSatMediumSte.saturationTemperat...Saturation temperature [K]
MassFlowRatem_flow_nominal1Nominal mass flow rate of plant [kg/s]
PressureDifferencedpPip6000Pressure drop in the condensate return pipe [Pa]
GenericperPumFWperPumFW(pressure(V_flow=(m_...Performance data for feedwater pump
GenericperPumCNRperPumCNR(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.Experimental.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.Experimental.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.Experimental.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;