modelSystem5
Extends from Buildings.Examples.Tutorial.CDL.BaseClasses.PartialOpenLoop (Partial model with open loop system).
Information
In this step, we added the controller for the system on/off control.
Implementation
This model was built as follows:
-
First, we copied the controller Buildings.Examples.Tutorial.CDL.Controls.OpenLoopSystemOnOff to create the block Buildings.Examples.Tutorial.CDL.Controls.SystemOnOff.
-
In this new block, we implemented the on/off control by using both Buildings.Controls.OBC.CDL.Reals.Subtract and Buildings.Controls.OBC.CDL.Reals.Hysteresis to determine whether the system should be on, which is the case if both, the outside air temperature and the room air temperature are below a limit. If either is above this limit, plus a deadband, the system is off.
-
We also implemented the open loop validation Buildings.Examples.Tutorial.CDL.Controls.Validation.SystemOnOff to ensure that the controller is implemented correctly.
Exercise
Create a model, such as this model. To do so,
-
Implement the controller for the system on/off control.
Make a small unit test to verify that the controller is implemented correctly.
-
Use this new controller instead of the open loop controller
conSysSta.
Simulate the system to verify that the system is switched off if the room temperature exceeeds its set point plus half the dead band. This should yield a plot similar to the one below.
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.