modelSingleBoiler

A generic steam plant with a single boiler that discharges saturated steam

Extends from Buildings.DHC.Plants.BaseClasses.PartialPlant (Partial class for modeling a plant).

Information

This is a generic steam plant model that can be used in district heating system simulations. The model contains a feedwater tank, feedwater pump, check valve, and a boiler. The boiler is designed to discharge saturated steam vapor. For controls, the feedwater pump maintains the water volume setpoint in the drum boiler, while the boiler control maintains the discharge pressure setpoint.

References

Kathryn Hinkelman, Saranya Anbarasu, Michael Wetter, Antoine Gautier, Wangda Zuo. 2022. “A Fast and Accurate Modeling Approach for Water and Steam Thermodynamics with Practical Applications in District Heating System Simulation,” Energy, 254(A), pp. 124227. 10.1016/j.energy.2022.124227

Kathryn Hinkelman, Saranya Anbarasu, Michael Wetter, Antoine Gautier, Baptiste Ravache, Wangda Zuo 2022. “Towards Open-Source Modelica Models For Steam-Based District Heating Systems.” Proc. of the 1st International Workshop On Open Source Modelling And Simulation Of Energy Systems (OSMSES 2022), Aachen, German, April 4-5, 2022. 10.1109/OSMSES54027.2022.9769121

Parameters

TypeNameDefaultDescription
Booleanhave_fue (from PartialPlant)nFue > 0Set to true if the plant has fuel use
Buildings.Fluid.Data.Fuels.Generic[nFue]fue (from PartialPlant)Fuel type
Buildings.Fluid.Data.Fuels.GenericfueBoiBuildings.Fluid.Data.Fuels.NaturalGasLowerHeatingValue()Boiler fuel type
Modelica.Units.SI.MassFlowRatem_flow_nominal1Nominal mass flow rate
Modelica.Units.SI.PowerQ_flow_nominalm_flow_nominal*(MediumHea_b.specificEnthalpy(MediumHea_b.setState_pTX(p = pSteSet, T = TSat, X = MediumHea_b.X_default)) - Medium.specificEnthalpy(Medium.setState_pTX(p = pSteSet, T = TSat, X = Medium.X_default)))Nominal heating power
Modelica.Units.SI.AbsolutePressurepSteSet300000Steam pressure setpoint
Modelica.Units.SI.TemperatureTSatMediumHea_b.saturationTemperature(pSteSet)Saturation temperature at pressure setpoint
Modelica.Units.SI.AbsolutePressurepTanFW101325Pressure of feedwater tank
Modelica.Units.SI.VolumeVBoiWatSetVBoi/2Setpoint for liquid water volume in the boiler
Modelica.Units.SI.VolumeVBoi3Total drum volume of steam boiler
RealboiSca1.25Boiler heat capacity scaling factor
Buildings.Fluid.Movers.Data.GenericperPerformance data for the feedwater pump
Configuration
Buildings.DHC.Types.DistrictSystemTypetyp (from PartialPlant)Buildings.DHC.Types.DistrictSystemType.CombinedGeneration2to4Type of district system
Booleanhave_fan (from PartialPlant)falseSet to true if fan power is computed
Booleanhave_pum (from PartialPlant)falseSet to true if pump power is computed
Booleanhave_eleHea (from PartialPlant)falseSet to true if the plant has electric heating system
IntegernFue (from PartialPlant)0Number of fuel types (0 means no combustion system)
Booleanhave_eleCoo (from PartialPlant)falseSet to true if the plant has electric cooling system
Booleanhave_weaBus (from PartialPlant)falseSet to true to use a weather bus
Assumptions
BooleanallowFlowReversal (from PartialPlant)falseSet to true to allow flow reversal in service lines
Dynamics
Modelica.Units.SI.MassmDry1.5E-3*Q_flow_nominalMass of boiler that will be lumped to water heat capacity
Initialization
Modelica.Units.SI.VolumeVTanFW_start1Setpoint for liquid water volume in the boiler
Modelica.Media.Interfaces.Types.AbsolutePressurepBoi_startpTanFWStart value of boiler pressure
RealyPum_start0.7Initial value of pump speed
Dynamics › Equations
Modelica.Fluid.Types.DynamicsenergyDynamicsModelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicsmassDynamicsenergyDynamicsType of mass balance: dynamic (3 initialization options) or steady state
Control › Boiler
Modelica.Blocks.Types.SimpleControllercontrollerTypeBoiModelica.Blocks.Types.SimpleController.PIType of controller
RealkBoi10Gain of controller
Modelica.Units.SI.TimeTiBoi120Time constant of Integrator block
Modelica.Units.SI.TimeTdBoi10Time constant of Derivative block
RealwpBoi1Set-point weight for Proportional block (0..1)
RealwdBoi0Set-point weight for Derivative block (0..1)
RealNiBoi0.9Ni*Ti is time constant of anti-windup compensation
RealNdBoi10The higher Nd, the more ideal the derivative block
Control › Pump
Modelica.Blocks.Types.SimpleControllercontrollerTypePumModelica.Blocks.Types.SimpleController.PIType of controller
RealkPum5Gain of controller
Modelica.Units.SI.TimeTiPum120Time constant of Integrator block
Modelica.Units.SI.TimeTdPum0.1Time constant of Derivative block
RealwpPum1Set-point weight for Proportional block (0..1)
RealwdPum0Set-point weight for Derivative block (0..1)
RealNiPum0.9Ni*Ti is time constant of anti-windup compensation
RealNdPum10The higher Nd, the more ideal the derivative block

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_aSerAmb (from PartialPlant)Fluid connector for ambient water service supply line
Modelica.Fluid.Interfaces.FluidPort_bport_bSerAmb (from PartialPlant)Fluid connector for ambient water service return line
Modelica.Fluid.Interfaces.FluidPort_aport_aSerHea (from PartialPlant)Fluid connector for heating service supply line
Modelica.Fluid.Interfaces.FluidPort_bport_bSerHea (from PartialPlant)Fluid connector for heating service return line
Modelica.Fluid.Interfaces.FluidPort_aport_aSerCoo (from PartialPlant)Fluid connector for cooling service supply line
Modelica.Fluid.Interfaces.FluidPort_bport_bSerCoo (from PartialPlant)Fluid connector for cooling service return line
Buildings.BoundaryConditions.WeatherData.BusweaBus (from PartialPlant)Weather data bus
Buildings.Controls.OBC.CDL.Interfaces.RealOutputPHea (from PartialPlant)Power drawn by heating system
Buildings.Controls.OBC.CDL.Interfaces.RealOutputPCoo (from PartialPlant)Power drawn by cooling system
Buildings.Controls.OBC.CDL.Interfaces.RealOutputPFan (from PartialPlant)Power drawn by fan motors
Buildings.Controls.OBC.CDL.Interfaces.RealOutputPPum (from PartialPlant)Power drawn by pump motors
Buildings.Controls.OBC.CDL.Interfaces.RealOutputQFue_flow (from PartialPlant)Fuel energy input rate

Components

TypeNameDefaultDescription
Buildings.Fluid.Movers.SpeedControlled_ypumFWFeedwater pump
Buildings.DHC.Plants.Steam.BaseClasses.BoilerPolynomialboiSteam boiler
Buildings.Controls.Continuous.LimPIDconPumPump control
Modelica.Blocks.Math.GainVNorNormalized volume setpoint
Buildings.Controls.Continuous.LimPIDconBoiBoiler control
Modelica.Blocks.Math.GainPNorNormalized pressure setpoint
Buildings.Fluid.Sensors.PressuresenPreSteSteam pressure sensor
Modelica.Blocks.Sources.ConstantuniUnitary
Buildings.Fluid.Storage.ExpansionVesseltanFWFeedwater tank
Buildings.Fluid.FixedResistances.CheckValvecheValCheck valve

Revisions

  • September 15, 2023, by Kathryn Hinkelman:
    Added publication references.
  • July 18, 2023, by Michael Wetter:
    Corrected assignment of allowFlowReversal, and set start pressure of boiler to be equal to start pressure of feed water tank. Otherwise, backflow occurs at the start of the simulation.
  • March 3, 2022 by Kathryn Hinkelman:
    First implementation.