This part of the system model adds to the model that is implemented in Buildings.Examples.Tutorial.Boiler.System4 closed loop control for the valves.
This model was built as follows:
First, we copied the model
Buildings.Examples.Tutorial.Boiler.System4
and called it
Buildings.Examples.Tutorial.Boiler.System5
.
Next, we added closed loop control for the boiler valve as shown in the figure below.
This is implemented using the constant block Buildings.Controls.OBC.CDL.Reals.Sources.Constant for the set point, the PID controller with output limitation Buildings.Controls.OBC.CDL.Reals.PID. We configured the controller as
Buildings.Controls.OBC.CDL.Reals.PID conPIDBoi( controllerType=Buildings.Controls.OBC.CDL.Types.SimpleController.P, k=0.1, Ti=120, Td=1, reverseActing=false) "Controller for valve in boiler loop";
We set the proportional band to 10 Kelvin, hence k=0.1
.
We set the integral time constant to 120 seconds, which is
the same time as is required to open or close the valve.
These settings turn out to give satisfactory closed loop control performance.
Otherwise, we would need to retune the controller, which is
usually easiest by configuring the controller as a P-controller, then tuning the
proportional gain, and finally changing it to a PI-controller and tuning the
integral time constant.
Note that we also set reverseActing=false
because
if, for a constant set point, the measured
temperature increases, the valve control signal needs to decrease towards y=0,
because in this condition, the boiler inlet temperature is not yet high enough.
Once it is high enough, the control error will be negative and the valve
can open.
The valve control for the radiator loop is implemented similar to
the boiler loop, with the exception that the setpoint is computed
using the model
Buildings.Controls.OBC.CDL.Reals.Line to implement
a set point that shifts as a function of the room temperature.
This instance is called TSetSup
in the
control sequence shown in the figure below, and takes as an input
the room temperature, and the points for the
(x1, f1) and
(x2, f2) coordinates through which the setpoint
goes.
This completes the closed loop control. 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
quickly raises to 50°C and the supply water temperature
temSup.T
has smaller oscillations compared to
Buildings.Examples.Tutorial.Boiler.System4.
Name | Description |
---|---|
MediumA | |
MediumW | Medium model |
conPIDBoi
and set
reverseActing=false
to address issue
#436.
Modelica.Fluid.System
to address issue
#311.