modelSystem4
Extends from Buildings.Examples.Tutorial.CDL.BaseClasses.PartialOpenLoop (Partial model with open loop system).
Information
In this step, we added the controller for the boiler on/off control.
Implementation
This model was built as follows:
-
First, we copied the controller Buildings.Examples.Tutorial.CDL.Controls.OpenLoopEquipmentOnOff to create the block Buildings.Examples.Tutorial.CDL.Controls.EquipmentOnOff.
-
In this new block, we used a hysteresis block Buildings.Controls.OBC.CDL.Reals.Hysteresis to switch the boiler, and negated its output because the boiler needs to be off if the temperature exceeds the value
uHighof this hysteresis. We also used an instance of Buildings.Controls.OBC.CDL.Logical.And to switch the boiler on only if the system control signal is on. Otherwise, the boiler would be kept warm in summer. (Note that in the simulations, the boiler has no heat loss to the ambient and, hence, if the boiler and its circulation pump are switched off, its temperature remains constant. To model heat losses to the ambient, the heat portboi.heatPortwould need to be connected to a model that simulates heat conduction to ambient conditions.) -
We also implemented the open loop validation Buildings.Examples.Tutorial.CDL.Controls.Validation.EquipmentOnOff to ensure that the controller is implemented correctly.
Exercise
Create a model, such as this model. To do so,
-
Implement the controller for the equipment 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
conEquSta.
Simulate the system to verify that the valve is controlled to maintain a return water temperature of at least 60°C, and that the boiler is switched off when the temperature exceeds 90°C and switched on again if it reaches 70°C as shown 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.