modelSystem4
Extends from Modelica.Icons.Example.
Information
This part of the system model adds to the model that is implemented in Buildings.Examples.Tutorial.Boiler.System3 closed loop control for the pumps and the boiler. The control valves are still open loop control.
Implementation
This model was built as follows:
-
First, we copied the model Buildings.Examples.Tutorial.Boiler.System3 and called it
Buildings.Examples.Tutorial.Boiler.System4. -
Next, we added the outdoor temperature sensor
senTOut, which we will use to disable the plant when the outdoor temperature is warmer than 17°C. This is implemented by the instanceshysTOutandnot2, whose output signal is connected to the blockand1as shown in the figure below.
-
Similar to the control of the radiator pump, we used a boolean to real converter, followed by a first order filter, to set the mass flow rate of the boiler pump.
-
Next, for the boiler on/off control, we use again a hysteresis block (instance
hysTBoi), which we configured asBuildings.Controls.OBC.CDL.Reals.Hysteresis hysTBoi(uLow=273.15 + 70, uHigh=273.15 + 90) "Hysteresis for on/off of boiler";The output of the hysteresis block is sent to the instance
not3, which negates its input signal. The output signal of thenot3instance is then sent to theand2block, which ensures that the boiler is only on when the pumps are on and the temperature is below 70°C, and that the boiler is off if its temperature reaches 90°C. Therefore, the boiler control sequence is as shown below.
This completes the closed loop control of the boiler and the pumps. When simulating the model for 2 days, or 172800 seconds, the response shown below should be seen.
The figure shows that the return water temperature
temRet.T is below
50°C for quite some time when the system heats up.
Furthermore, the supply water temperature
temSup.T is oscillating with the boiler temperature.
We will fix these issues by adding closed loop control for the valves in model
Buildings.Examples.Tutorial.Boiler.System5.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.HeatFlowRate | Q_flow_nominal | 20000 | Nominal heat flow rate of radiator |
| Modelica.Units.SI.Temperature | TRadSup_nominal | 273.15 + 50 | Radiator nominal supply water temperature |
| Modelica.Units.SI.Temperature | TRadRet_nominal | 273.15 + 40 | Radiator nominal return water temperature |
| Modelica.Units.SI.MassFlowRate | mRad_flow_nominal | Q_flow_nominal/4200/(TRadSup_nominal - TRadRet_nominal) | Radiator nominal mass flow rate |
| Modelica.Units.SI.Temperature | TBoiSup_nominal | 273.15 + 70 | Boiler nominal supply water temperature |
| Modelica.Units.SI.Temperature | TBoiRet_min | 273.15 + 60 | Boiler minimum return water temperature |
| Modelica.Units.SI.MassFlowRate | mBoi_flow_nominal | Q_flow_nominal/4200/(TBoiSup_nominal - TBoiRet_min) | Boiler nominal mass flow rate |
| Modelica.Units.SI.MassFlowRate | mRadVal_flow_nominal | Q_flow_nominal/4200/(TBoiSup_nominal - TRadRet_nominal) | Radiator nominal mass flow rate |
| Modelica.Units.SI.Volume | V | 6*10*3 | Room volume |
| Modelica.Units.SI.MassFlowRate | mA_flow_nominal | V*1.2*6/3600 | Nominal mass flow rate |
| Modelica.Units.SI.HeatFlowRate | QRooInt_flow | 4000 | Internal heat gains of the room |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.MixingVolumes.MixingVolume | vol | ||
| Modelica.Thermal.HeatTransfer.Components.ThermalConductor | theCon | Thermal conductance with the ambient | |
| Modelica.Thermal.HeatTransfer.Sources.FixedTemperature | TOut | Outside temperature | |
| Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow | preHea | Prescribed heat flow | |
| Modelica.Thermal.HeatTransfer.Components.HeatCapacitor | heaCap | Heat capacity for furniture and walls | |
| Buildings.Controls.OBC.CDL.Reals.Sources.TimeTable | timTab | Time table for internal heat gain | |
| Buildings.Fluid.HeatExchangers.Radiators.RadiatorEN442_2 | rad | Radiator | |
| Buildings.Fluid.Sensors.TemperatureTwoPort | temSup | Supply water temperature | |
| Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor | temRoo | Room temperature | |
| Buildings.Fluid.Movers.FlowControlled_m_flow | pumRad | Pump for radiator | |
| Buildings.Fluid.FixedResistances.Junction | mix | Mixer between valve and radiators | |
| Buildings.Fluid.FixedResistances.Junction | spl | Splitter of boiler loop bypass | |
| Buildings.Fluid.FixedResistances.Junction | spl2 | ||
| Buildings.Fluid.FixedResistances.Junction | mix2 | Mixer | |
| Buildings.Fluid.FixedResistances.Junction | spl4 | Splitter for radiator loop valve bypass | |
| Buildings.Fluid.Movers.FlowControlled_m_flow | pumBoi | Pump for boiler | |
| Buildings.Fluid.Boilers.BoilerPolynomial | boi | Boiler | |
| Buildings.Fluid.Actuators.Valves.ThreeWayEqualPercentageLinear | valRad | Three-way valve for radiator loop | |
| Buildings.Fluid.Sources.Boundary_pT | preSou | Source for pressure and to account for thermal expansion of water | |
| Buildings.Fluid.Actuators.Valves.ThreeWayEqualPercentageLinear | valBoi | Three-way valve for boiler | |
| Buildings.Fluid.Sensors.TemperatureTwoPort | temRet | Return water temperature | |
| Buildings.Fluid.FixedResistances.Junction | spl1 | Splitter | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | const | Constant control signal for valves | |
| Buildings.Controls.OBC.CDL.Reals.Hysteresis | hysTOut | Hysteresis for on/off based on outside temperature | |
| Buildings.Controls.OBC.CDL.Logical.Not | not2 | ||
| Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor | senTOut | Outdoor temperature sensor | |
| Buildings.Controls.OBC.CDL.Reals.Hysteresis | hysTBoi | Hysteresis for on/off of boiler | |
| Buildings.Controls.OBC.CDL.Logical.Not | not3 | ||
| Buildings.Controls.OBC.CDL.Logical.And | and1 | ||
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal | booToReaRad1 | Boiler pump signal | |
| Buildings.Controls.OBC.CDL.Logical.And | and2 | ||
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal | booToReaRad2 | Boiler signal | |
| Buildings.Controls.OBC.CDL.Reals.Hysteresis | hysPum | Pump hysteresis | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal | booToReaRad | Radiator pump signal | |
| Buildings.Controls.OBC.CDL.Logical.Not | not1 | Negate output of hysteresis |
Contents
| Name | Description |
|---|---|
| MediumA | |
| MediumW | Medium model |
Revisions
-
April 9, 2024, by Hongxiang Fu:
SpecifiednominalValuesDefineDefaultPressureCurve=truein the mover component to suppress a warning. This is for #3819. -
March 6, 2017, by Michael Wetter:
Added missing density to computation of air mass flow rate.
This is for #673. -
December 22, 2014 by Michael Wetter:
RemovedModelica.Fluid.Systemto address issue #311. -
March 1, 2013, by Michael Wetter:
Added nominal pressure drop for valves as this parameter no longer has a default value. -
January 27, 2012, by Michael Wetter:
First implementation.