modelSystem4

4th part of the system model, which adds closed-loop control for the pumps and the boiler

Extends from Modelica.Icons.Example (Icon for runnable examples).

Information

This part of the system model adds to the model that is implemented in Buildings.Examples.Tutorial.Boiler.System3 closed loop control for the pumps and the boiler. The control valves are still open loop control.

Implementation

This model was built as follows:

  1. First, we copied the model Buildings.Examples.Tutorial.Boiler.System3 and called it Buildings.Examples.Tutorial.Boiler.System4.

  2. Next, we added the outdoor temperature sensor senTOut, which we will use to disable the plant when the outdoor temperature is warmer than 17°C. This is implemented by the instances hysTOut and not2, whose output signal is connected to the block and1 as shown in the figure below.

    image

  3. Similar to the control of the radiator pump, we used a boolean to real converter, followed by a first order filter, to set the mass flow rate of the boiler pump.

  4. Next, for the boiler on/off control, we use again a hysteresis block (instance hysTBoi), which we configured as

      Buildings.Controls.OBC.CDL.Reals.Hysteresis hysTBoi(uLow=273.15 + 70,
                                                               uHigh=273.15 + 90)
        "Hysteresis for on/off of boiler";
    

    The output of the hysteresis block is sent to the instance not3, which negates its input signal. The output signal of the not3 instance is then sent to the and2 block, which ensures that the boiler is only on when the pumps are on and the temperature is below 70°C, and that the boiler is off if its temperature reaches 90°C. Therefore, the boiler control sequence is as shown below.

    image

This completes the closed loop control of the boiler and the pumps. When simulating the model for 2 days, or 172800 seconds, the response shown below should be seen.

image

The figure shows that the return water temperature temRet.T is below 50°C for quite some time when the system heats up. Furthermore, the supply water temperature temSup.T is oscillating with the boiler temperature. We will fix these issues by adding closed loop control for the valves in model Buildings.Examples.Tutorial.Boiler.System5.

Parameters

TypeNameDefaultDescription
Modelica.Units.SI.HeatFlowRateQ_flow_nominal20000Nominal heat flow rate of radiator
Modelica.Units.SI.TemperatureTRadSup_nominal273.15 + 50Radiator nominal supply water temperature
Modelica.Units.SI.TemperatureTRadRet_nominal273.15 + 40Radiator nominal return water temperature
Modelica.Units.SI.MassFlowRatemRad_flow_nominalQ_flow_nominal/4200/(TRadSup_nominal - TRadRet_nominal)Radiator nominal mass flow rate
Modelica.Units.SI.TemperatureTBoiSup_nominal273.15 + 70Boiler nominal supply water temperature
Modelica.Units.SI.TemperatureTBoiRet_min273.15 + 60Boiler minimum return water temperature
Modelica.Units.SI.MassFlowRatemBoi_flow_nominalQ_flow_nominal/4200/(TBoiSup_nominal - TBoiRet_min)Boiler nominal mass flow rate
Modelica.Units.SI.MassFlowRatemRadVal_flow_nominalQ_flow_nominal/4200/(TBoiSup_nominal - TRadRet_nominal)Radiator nominal mass flow rate
Modelica.Units.SI.VolumeV6*10*3Room volume
Modelica.Units.SI.MassFlowRatemA_flow_nominalV*1.2*6/3600Nominal mass flow rate
Modelica.Units.SI.HeatFlowRateQRooInt_flow4000Internal heat gains of the room

Components

TypeNameDefaultDescription
Buildings.Fluid.MixingVolumes.MixingVolumevol
Modelica.Thermal.HeatTransfer.Components.ThermalConductortheConThermal conductance with the ambient
Modelica.Thermal.HeatTransfer.Sources.FixedTemperatureTOutOutside temperature
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlowpreHeaPrescribed heat flow
Modelica.Thermal.HeatTransfer.Components.HeatCapacitorheaCapHeat capacity for furniture and walls
Buildings.Controls.OBC.CDL.Reals.Sources.TimeTabletimTabTime table for internal heat gain
Buildings.Fluid.HeatExchangers.Radiators.RadiatorEN442_2radRadiator
Buildings.Fluid.Sensors.TemperatureTwoPorttemSupSupply water temperature
Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensortemRooRoom temperature
Buildings.Fluid.Movers.FlowControlled_m_flowpumRadPump for radiator
Buildings.Fluid.FixedResistances.JunctionmixMixer between valve and radiators
Buildings.Fluid.FixedResistances.JunctionsplSplitter of boiler loop bypass
Buildings.Fluid.FixedResistances.Junctionspl2
Buildings.Fluid.FixedResistances.Junctionmix2Mixer
Buildings.Fluid.FixedResistances.Junctionspl4Splitter for radiator loop valve bypass
Buildings.Fluid.Movers.FlowControlled_m_flowpumBoiPump for boiler
Buildings.Fluid.Boilers.BoilerPolynomialboiBoiler
Buildings.Fluid.Actuators.Valves.ThreeWayEqualPercentageLinearvalRadThree-way valve for radiator loop
Buildings.Fluid.Sources.Boundary_pTpreSouSource for pressure and to account for thermal expansion of water
Buildings.Fluid.Actuators.Valves.ThreeWayEqualPercentageLinearvalBoiThree-way valve for boiler
Buildings.Fluid.Sensors.TemperatureTwoPorttemRetReturn water temperature
Buildings.Fluid.FixedResistances.Junctionspl1Splitter
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantconstConstant control signal for valves
Buildings.Controls.OBC.CDL.Reals.HysteresishysTOutHysteresis for on/off based on outside temperature
Buildings.Controls.OBC.CDL.Logical.Notnot2
Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensorsenTOutOutdoor temperature sensor
Buildings.Controls.OBC.CDL.Reals.HysteresishysTBoiHysteresis for on/off of boiler
Buildings.Controls.OBC.CDL.Logical.Notnot3
Buildings.Controls.OBC.CDL.Logical.Andand1
Buildings.Controls.OBC.CDL.Conversions.BooleanToRealbooToReaRad1Boiler pump signal
Buildings.Controls.OBC.CDL.Logical.Andand2
Buildings.Controls.OBC.CDL.Conversions.BooleanToRealbooToReaRad2Boiler signal
Buildings.Controls.OBC.CDL.Reals.HysteresishysPumPump hysteresis
Buildings.Controls.OBC.CDL.Conversions.BooleanToRealbooToReaRadRadiator pump signal
Buildings.Controls.OBC.CDL.Logical.Notnot1Negate output of hysteresis

Contents

NameDescription
MediumA
MediumWMedium model

Revisions

  • April 9, 2024, by Hongxiang Fu:
    Specified nominalValuesDefineDefaultPressureCurve=true in the mover component to suppress a warning. This is for #3819.
  • March 6, 2017, by Michael Wetter:
    Added missing density to computation of air mass flow rate.
    This is for #673.
  • December 22, 2014 by Michael Wetter:
    Removed Modelica.Fluid.System to address issue #311.
  • March 1, 2013, by Michael Wetter:
    Added nominal pressure drop for valves as this parameter no longer has a default value.
  • January 27, 2012, by Michael Wetter:
    First implementation.