This package contains examples with step-by-step instructions for how to implement control sequences using the Control Description Language (CDL). The CDL is described at obc.lbl.gov and elementary building blocks are available at Buildings.Controls.OBC.CDL.

The example starts with an open-loop model of a boiler, a simple room and a radiator. In subsequent steps, controllers are added, starting with open loop control and then closed loop control. The tutorial also demonstrates how to add open loop validation tests for the controllers. At the end, you should be able to implement, document and test your own controllers.

The figure below shows the system architecture and the control charts.


The controls intent is as follows:

  1. The overall system shall be switched on if the outdoor temperature is below 16°C and, in addition, the room temperature is below 20°C. It shall be switched off if either the outdoor temperature is above 17°C or the room temperature is above 21°C.

  2. The boiler shall have on/off control that regulates its temperature between 70°C and 90°C.

  3. The three-way valve at the boiler return shall be modulated with a PI controller to track a return water temperature of 60°C.

  4. The heating water supply temperature to the room shall be regulated with a PI controller to be 50°C if the room temperature is 19°C, and 21°C if the room temperature is 21°C.

To explain the implementation of the controllers for this model, the model has been created in the stages described below.

  1. In Buildings.Examples.Tutorial.CDL.System1 we connected constant control signals to the open loop model that is the starting point for this tutorial.
  2. In Buildings.Examples.Tutorial.CDL.System2 we implemented four distinct controllers, which are all open loop but have the correct control input and output connectors. These controllers will be refined in the next steps. This determines the control architecture.
  3. In Buildings.Examples.Tutorial.CDL.System3 we implemented the controller that regulates the return water temperature to its setpoint.
  4. In Buildings.Examples.Tutorial.CDL.System4 we implemented the controller that switches the boiler on and off.
  5. In Buildings.Examples.Tutorial.CDL.System5 we implemented the controller that switches the whole system on and off.
  6. In Buildings.Examples.Tutorial.CDL.System6 we implemented the controller that tracks the room temperature set point.


System1Open loop model
System2Open loop model with control architecture implemented
System3Open loop model with boiler return temperature control
System4Open loop model with equipment on/off control
System5Open loop model with system on/off control
System6Closed loop model with all controls implemented
ControlsPackage with the controllers used in the tutorial
BaseClassesPackage that contains the model of the HVAC system and the building load

Generated at 2023-10-01T00:32:18Z by OpenModelicaOpenModelica 1.22.0~dev.02-2-ge84afdd using GenerateDoc.mos