modelSystem4
Extends from Modelica.Icons.Example (Icon for runnable examples).
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
Contents
| Name | Description |
|---|---|
| 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.