modelSingleBoiler
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
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | have_fue (from PartialPlant) | nFue > 0 | Set to true if the plant has fuel use |
| Buildings.Fluid.Data.Fuels.Generic[nFue] | fue (from PartialPlant) | Fuel type | |
| Buildings.Fluid.Data.Fuels.Generic | fueBoi | Buildings.Fluid.Data.Fuels.NaturalGasLowerHeatingValue() | Boiler fuel type |
| Modelica.Units.SI.MassFlowRate | m_flow_nominal | 1 | Nominal mass flow rate |
| Modelica.Units.SI.Power | Q_flow_nominal | m_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.AbsolutePressure | pSteSet | 300000 | Steam pressure setpoint |
| Modelica.Units.SI.Temperature | TSat | MediumHea_b.saturationTemperature(pSteSet) | Saturation temperature at pressure setpoint |
| Modelica.Units.SI.AbsolutePressure | pTanFW | 101325 | Pressure of feedwater tank |
| Modelica.Units.SI.Volume | VBoiWatSet | VBoi/2 | Setpoint for liquid water volume in the boiler |
| Modelica.Units.SI.Volume | VBoi | 3 | Total drum volume of steam boiler |
| Real | boiSca | 1.25 | Boiler heat capacity scaling factor |
| Buildings.Fluid.Movers.Data.Generic | per | Performance data for the feedwater pump | |
| Configuration | |||
| Buildings.DHC.Types.DistrictSystemType | typ (from PartialPlant) | Buildings.DHC.Types.DistrictSystemType.CombinedGeneration2to4 | Type of district system |
| Boolean | have_fan (from PartialPlant) | false | Set to true if fan power is computed |
| Boolean | have_pum (from PartialPlant) | false | Set to true if pump power is computed |
| Boolean | have_eleHea (from PartialPlant) | false | Set to true if the plant has electric heating system |
| Integer | nFue (from PartialPlant) | 0 | Number of fuel types (0 means no combustion system) |
| Boolean | have_eleCoo (from PartialPlant) | false | Set to true if the plant has electric cooling system |
| Boolean | have_weaBus (from PartialPlant) | false | Set to true to use a weather bus |
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialPlant) | false | Set to true to allow flow reversal in service lines |
| Dynamics | |||
| Modelica.Units.SI.Mass | mDry | 1.5E-3*Q_flow_nominal | Mass of boiler that will be lumped to water heat capacity |
| Initialization | |||
| Modelica.Units.SI.Volume | VTanFW_start | 1 | Setpoint for liquid water volume in the boiler |
| Modelica.Media.Interfaces.Types.AbsolutePressure | pBoi_start | pTanFW | Start value of boiler pressure |
| Real | yPum_start | 0.7 | Initial value of pump speed |
| Dynamics › Equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | massDynamics | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state |
| Control › Boiler | |||
| Modelica.Blocks.Types.SimpleController | controllerTypeBoi | Modelica.Blocks.Types.SimpleController.PI | Type of controller |
| Real | kBoi | 10 | Gain of controller |
| Modelica.Units.SI.Time | TiBoi | 120 | Time constant of Integrator block |
| Modelica.Units.SI.Time | TdBoi | 10 | Time constant of Derivative block |
| Real | wpBoi | 1 | Set-point weight for Proportional block (0..1) |
| Real | wdBoi | 0 | Set-point weight for Derivative block (0..1) |
| Real | NiBoi | 0.9 | Ni*Ti is time constant of anti-windup compensation |
| Real | NdBoi | 10 | The higher Nd, the more ideal the derivative block |
| Control › Pump | |||
| Modelica.Blocks.Types.SimpleController | controllerTypePum | Modelica.Blocks.Types.SimpleController.PI | Type of controller |
| Real | kPum | 5 | Gain of controller |
| Modelica.Units.SI.Time | TiPum | 120 | Time constant of Integrator block |
| Modelica.Units.SI.Time | TdPum | 0.1 | Time constant of Derivative block |
| Real | wpPum | 1 | Set-point weight for Proportional block (0..1) |
| Real | wdPum | 0 | Set-point weight for Derivative block (0..1) |
| Real | NiPum | 0.9 | Ni*Ti is time constant of anti-windup compensation |
| Real | NdPum | 10 | The higher Nd, the more ideal the derivative block |
Connectors
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.Movers.SpeedControlled_y | pumFW | Feedwater pump | |
| Buildings.DHC.Plants.Steam.BaseClasses.BoilerPolynomial | boi | Steam boiler | |
| Buildings.Controls.Continuous.LimPID | conPum | Pump control | |
| Modelica.Blocks.Math.Gain | VNor | Normalized volume setpoint | |
| Buildings.Controls.Continuous.LimPID | conBoi | Boiler control | |
| Modelica.Blocks.Math.Gain | PNor | Normalized pressure setpoint | |
| Buildings.Fluid.Sensors.Pressure | senPreSte | Steam pressure sensor | |
| Modelica.Blocks.Sources.Constant | uni | Unitary | |
| Buildings.Fluid.Storage.ExpansionVessel | tanFW | Feedwater tank | |
| Buildings.Fluid.FixedResistances.CheckValve | cheVal | Check valve |
Revisions
-
September 15, 2023, by Kathryn Hinkelman:
Added publication references. -
July 18, 2023, by Michael Wetter:
Corrected assignment ofallowFlowReversal, 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.