Buildings.ThermalZones.Detailed.Examples.Controls

Package with control models

Information

Extends from Modelica.Icons.Package (Icon for standard packages).

Package Content

Name Description
Buildings.ThermalZones.Detailed.Examples.Controls.ElectrochromicWindow ElectrochromicWindow Controller for electrochromic windows
Buildings.ThermalZones.Detailed.Examples.Controls.Validation Validation Package with validation models

Buildings.ThermalZones.Detailed.Examples.Controls.ElectrochromicWindow Buildings.ThermalZones.Detailed.Examples.Controls.ElectrochromicWindow

Controller for electrochromic windows

Buildings.ThermalZones.Detailed.Examples.Controls.ElectrochromicWindow

Information

Controller for electrochromic windows. If the temperature or the irradiation is below TClear or HClear, then the window is in the clear state, allowing for passive heating and for view if the room is cool enough. If the temperature and the irradition is above TDark and HDark, then the window is in the dark state, thereby protecting the room from too much solar gain. For each of these measured quantity, the respective control signal is a linear function, with output limitation between 0 and 1. The control output of this block is the product of these two control signals. Hence, there is a continuous transition for intermediate values.

Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).

Parameters

TypeNameDefaultDescription
IrradianceHClear250Solar irradiation below which the window will be in clear state regardless of temperature [W/m2]
IrradianceHDarkHClear + 100Solar irradiation at which the window will be in dark state if T > TDark [W/m2]
TemperatureTClear273.15 + 22Measured temperature below which the window will be in clear state for any irradiation [K]
TemperatureTDarkTClear + 2Measured temperature above which the window will be transitioned to completely dark state if H > HDark [K]

Connectors

TypeNameDescription
input RealInputTTemperature used for control [K]
input RealInputHDirect solar radiation onto window [W/m2]
output RealOutputyControl signal for window

Modelica definition

block ElectrochromicWindow "Controller for electrochromic windows" extends Modelica.Blocks.Icons.Block; parameter Modelica.SIunits.Irradiance HClear = 250 "Solar irradiation below which the window will be in clear state regardless of temperature"; parameter Modelica.SIunits.Irradiance HDark = HClear+100 "Solar irradiation at which the window will be in dark state if T > TDark"; parameter Modelica.SIunits.Temperature TClear = 273.15+22 "Measured temperature below which the window will be in clear state for any irradiation"; parameter Modelica.SIunits.Temperature TDark = TClear+2 "Measured temperature above which the window will be transitioned to completely dark state if H > HDark"; Modelica.Blocks.Interfaces.RealInput T( quantity="ThermodynamicTemperature", unit="K") "Temperature used for control"; Modelica.Blocks.Interfaces.RealInput H( quantity="RadiantEnergyFluenceRate", unit="W/m2") "Direct solar radiation onto window"; Modelica.Blocks.Interfaces.RealOutput y "Control signal for window"; protected Modelica.Blocks.Sources.Constant TLow(final k=TClear) "Lower temperature"; Modelica.Blocks.Nonlinear.Limiter limT( final uMax=1, final uMin=0, final strict=true, final limitsAtInit=true) "Limiter for temperature"; Modelica.Blocks.Math.Feedback feeT "Feedback for temperature"; Modelica.Blocks.Math.Gain gaiT(final k=1/(TDark - TClear)) "Gain for temperature"; Modelica.Blocks.Sources.Constant HLow(final k=HClear) "Lower irradiation"; Modelica.Blocks.Nonlinear.Limiter limH( final uMax=1, final uMin=0, final strict=true, final limitsAtInit=true) "Limiter for irradiation"; Modelica.Blocks.Math.Feedback feeH "Feedback for irradiation"; Modelica.Blocks.Math.Gain gaiH(final k=1/(HDark - HClear)) "Gain for irradiation"; Modelica.Blocks.Math.Product product; equation connect(TLow.y, feeT.u2); connect(feeT.u1, T); connect(feeT.y, gaiT.u); connect(gaiT.y, limT.u); connect(H, feeH.u1); connect(HLow.y, feeH.u2); connect(feeH.y, gaiH.u); connect(gaiH.y, limH.u); connect(limT.y, product.u1); connect(limH.y, product.u2); connect(product.y, y); end ElectrochromicWindow;