modelSystem6
Extends from Buildings.Examples.Tutorial.CDL.BaseClasses.PartialOpenLoop (Partial model with open loop system).
Information
In this step, we added the last controller, which is controlling the mixing valve for the radiator supply water temperature.
Implementation
This model was built as follows:
-
First, we copied the controller Buildings.Examples.Tutorial.CDL.Controls.OpenLoopRadiatorSupply to create the block Buildings.Examples.Tutorial.CDL.Controls.RadiatorSupply.
-
In this new block, we used Buildings.Controls.OBC.CDL.Reals.Line to compute the set point for the supply water temperature based on the room air temperature. This set point is then used in a PI controller Buildings.Controls.OBC.CDL.Reals.PID to modulate the mixing valve position in order to track the supply water temperature set point.
-
To allow configuring the temperatures and the control gains, we exposed the main parameters of the controller, see Buildings.Examples.Tutorial.CDL.Controls.RadiatorSupply.
-
We also implemented the open loop validation Buildings.Examples.Tutorial.CDL.Controls.Validation.RadiatorSupply to ensure that the controller is implemented correctly.
Exercise
Create a model, such as this model. To do so,
-
Implement the controller for the radiator supply water temperature control.
Make a small unit test to verify that the controller is implemented correctly.
-
Use this new controller instead of the open loop controller
conRadSup.
Simulate the system to verify that the mixing valve conRadSup is modulated and
the room air temperature temRoo.T is well tracked.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.HeatFlowRate | Q_flow_nominal (from PartialOpenLoop) | 20000 | Nominal heat flow rate of radiator |
| Modelica.Units.SI.Temperature | TRadSup_nominal (from PartialOpenLoop) | 273.15 + 50 | Radiator nominal supply water temperature |
| Modelica.Units.SI.Temperature | TRadRet_nominal (from PartialOpenLoop) | 273.15 + 40 | Radiator nominal return water temperature |
| Modelica.Units.SI.MassFlowRate | mRad_flow_nominal (from PartialOpenLoop) | Q_flow_nominal/4200/(TRadSup_nominal - TRadRet_nominal) | Radiator nominal mass flow rate |
| Modelica.Units.SI.Temperature | TBoiSup_nominal (from PartialOpenLoop) | 273.15 + 70 | Boiler nominal supply water temperature |
| Modelica.Units.SI.Temperature | TBoiRet_min (from PartialOpenLoop) | 273.15 + 60 | Boiler minimum return water temperature |
| Modelica.Units.SI.MassFlowRate | mBoi_flow_nominal (from PartialOpenLoop) | Q_flow_nominal/4200/(TBoiSup_nominal - TBoiRet_min) | Boiler nominal mass flow rate |
| Modelica.Units.SI.MassFlowRate | mRadVal_flow_nominal (from PartialOpenLoop) | Q_flow_nominal/4200/(TBoiSup_nominal - TRadRet_nominal) | Radiator nominal mass flow rate |
| Modelica.Units.SI.Volume | V (from PartialOpenLoop) | 6*10*3 | Room volume |
| Modelica.Units.SI.MassFlowRate | mA_flow_nominal (from PartialOpenLoop) | V*1.2*6/3600 | Nominal mass flow rate |
| Modelica.Units.SI.HeatFlowRate | QRooInt_flow (from PartialOpenLoop) | 4000 | Internal heat gains of the room |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| BoundaryConditions.WeatherData.Bus | weaBus (from PartialOpenLoop) | Weather data bus |
Components
Revisions
-
February 18, 2020, by Michael Wetter:
First implementation.