Buildings.Air.Systems.SingleZone.VAV.Examples.OptimalStart.BaseClasses

Base classes of models in the package OptimalStart

Information

This package contains base classes used by the example models in the package Buildings.Air.Systems.SingleZone.VAV.Examples.OptimalStart.

Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).

Package Content

Name Description
Buildings.Air.Systems.SingleZone.VAV.Examples.OptimalStart.BaseClasses.ZoneWithAHUConventional ZoneWithAHUConventional A single zone building with a VAV system and a conventional controller
Buildings.Air.Systems.SingleZone.VAV.Examples.OptimalStart.BaseClasses.ZoneWithAHUG36 ZoneWithAHUG36 A single zone building with a VAV system and a Guideline36 controller

Buildings.Air.Systems.SingleZone.VAV.Examples.OptimalStart.BaseClasses.ZoneWithAHUConventional Buildings.Air.Systems.SingleZone.VAV.Examples.OptimalStart.BaseClasses.ZoneWithAHUConventional

A single zone building with a VAV system and a conventional controller

Buildings.Air.Systems.SingleZone.VAV.Examples.OptimalStart.BaseClasses.ZoneWithAHUConventional

Information

This base class contains a conventional controller Buildings.Air.Systems.SingleZone.VAV.BaseClasses.ControllerChillerDXHeatingEconomizer, a single-zone VAV system Buildings.Air.Systems.SingleZone.VAV.ChillerDXHeatingEconomizer, and a single-zone floor building Buildings.ThermalZones.Detailed.Validation.BaseClasses.SingleZoneFloor.

Parameters

TypeNameDefaultDescription
TemperatureTSupChi_nominal279.15Design value for chiller leaving water temperature [K]
VolumeVRoo4555.7Space volume of the floor [m3]
MassFlowRatemAir_flow_nominalVRoo*4*1.2/3600Design air flow rate [kg/s]
HeatFlowRateQHea_flow_nominal90000Design heating flow rate [W]
HeatFlowRateQCoo_flow_nominal-100000Design cooling flow rate [W]

Connectors

TypeNameDescription
input RealInputTSetRooHeaRoom heating setpoint temperature [K]
input RealInputTSetRooCooRoom cooling setpoint temperature [K]
input BooleanInputuOccCurrent occupancy period, true if it is in occupant period
output RealOutputTZonZone temperature [K]
BusweaBusWeather bus

Modelica definition

block ZoneWithAHUConventional "A single zone building with a VAV system and a conventional controller" package MediumA = Buildings.Media.Air(extraPropertiesNames={"CO2"}) "Buildings library air media package"; package MediumW = Buildings.Media.Water "Buildings library water media package"; parameter Modelica.Units.SI.Temperature TSupChi_nominal=279.15 "Design value for chiller leaving water temperature"; parameter Modelica.Units.SI.Volume VRoo=4555.7 "Space volume of the floor"; parameter Modelica.Units.SI.MassFlowRate mAir_flow_nominal=VRoo*4*1.2/3600 "Design air flow rate"; parameter Modelica.Units.SI.HeatFlowRate QHea_flow_nominal=90000 "Design heating flow rate"; parameter Modelica.Units.SI.HeatFlowRate QCoo_flow_nominal=-100000 "Design cooling flow rate"; Buildings.Controls.OBC.CDL.Interfaces.RealInput TSetRooHea( final unit="K", displayUnit="degC") "Room heating setpoint temperature"; Buildings.Controls.OBC.CDL.Interfaces.RealInput TSetRooCoo( final unit="K", displayUnit="degC") "Room cooling setpoint temperature"; Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uOcc "Current occupancy period, true if it is in occupant period"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput TZon( final unit="K", displayUnit="degC") "Zone temperature"; Buildings.Air.Systems.SingleZone.VAV.ChillerDXHeatingEconomizer hvac( redeclare package MediumA = MediumA, redeclare package MediumW = MediumW, mAir_flow_nominal=mAir_flow_nominal, etaHea_nominal=0.99, QHea_flow_nominal=QHea_flow_nominal, QCoo_flow_nominal=QCoo_flow_nominal, TSupChi_nominal=TSupChi_nominal) "Single zone VAV system"; Buildings.Air.Systems.SingleZone.VAV.BaseClasses.ControllerChillerDXHeatingEconomizer con( minAirFlo=0.1, minOAFra=0.4, TSupChi_nominal=TSupChi_nominal, TSetSupAir=286.15) "Controller"; Buildings.ThermalZones.Detailed.Validation.BaseClasses.SingleZoneFloor sinZonFlo(redeclare package Medium = MediumA) "Single zone floor building"; Buildings.BoundaryConditions.WeatherData.Bus weaBus "Weather bus"; equation connect(con.yCooCoiVal,hvac. uCooVal); connect(hvac.uEco,con. yOutAirFra); connect(con.chiOn,hvac. chiOn); connect(con.yFan,hvac. uFan); connect(con.yHea,hvac. uHea); connect(hvac.TMix,con. TMix); connect(hvac.TSup,con. TSup); connect(sinZonFlo.TRooAir,con. TRoo); connect(hvac.supplyAir,sinZonFlo. ports[1]); connect(hvac.returnAir,sinZonFlo. ports[2]); connect(con.TSetSupChi,hvac. TSetChi); connect(TSetRooHea, con.TSetRooHea); connect(TSetRooCoo, con.TSetRooCoo); connect(sinZonFlo.TRooAir,TZon); connect(uOcc, con.uOcc); connect(weaBus, sinZonFlo.weaBus); connect(weaBus, hvac.weaBus); connect(weaBus.TDryBul, con.TOut); end ZoneWithAHUConventional;

Buildings.Air.Systems.SingleZone.VAV.Examples.OptimalStart.BaseClasses.ZoneWithAHUG36 Buildings.Air.Systems.SingleZone.VAV.Examples.OptimalStart.BaseClasses.ZoneWithAHUG36

A single zone building with a VAV system and a Guideline36 controller

Buildings.Air.Systems.SingleZone.VAV.Examples.OptimalStart.BaseClasses.ZoneWithAHUG36

Information

This base class contains a controller based on Guideline36 Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller, a single-zone VAV system Buildings.Air.Systems.SingleZone.VAV.ChillerDXHeatingEconomizer, and a single-zone floor building Buildings.ThermalZones.Detailed.Validation.BaseClasses.SingleZoneFloor.

Parameters

TypeNameDefaultDescription
TemperatureTSupChi_nominal279.15Design value for chiller leaving water temperature [K]
VolumeVRoo4555.7Space volume of the floor [m3]
MassFlowRatemAir_flow_nominalVRoo*4*1.2/3600Design air flow rate [kg/s]
HeatFlowRateQHea_flow_nominal90000Design heating flow rate [W]
HeatFlowRateQCoo_flow_nominal-100000Design cooling flow rate [W]

Connectors

TypeNameDescription
input RealInputwarUpTimWarm-up time retrieved from optimal warm-up block [s]
input RealInputcooDowTimCool-down time retrieved from optimal cool-down block [s]
input RealInputtNexOccNext occupancy time [s]
input BooleanInputuOccCurrent occupancy period, true if it is in occupant period
output RealOutputTZonZone air temperature [K]
BusweaBusWeather bus

Modelica definition

block ZoneWithAHUG36 "A single zone building with a VAV system and a Guideline36 controller" package MediumA = Buildings.Media.Air(extraPropertiesNames={"CO2"}) "Buildings library air media package"; package MediumW = Buildings.Media.Water "Buildings library water media package"; parameter Modelica.Units.SI.Temperature TSupChi_nominal=279.15 "Design value for chiller leaving water temperature"; parameter Modelica.Units.SI.Volume VRoo=4555.7 "Space volume of the floor"; parameter Modelica.Units.SI.MassFlowRate mAir_flow_nominal=VRoo*4*1.2/3600 "Design air flow rate"; parameter Modelica.Units.SI.HeatFlowRate QHea_flow_nominal=90000 "Design heating flow rate"; parameter Modelica.Units.SI.HeatFlowRate QCoo_flow_nominal=-100000 "Design cooling flow rate"; Buildings.Controls.OBC.CDL.Interfaces.RealInput warUpTim( final unit="s", final quantity="Time") "Warm-up time retrieved from optimal warm-up block"; Buildings.Controls.OBC.CDL.Interfaces.RealInput cooDowTim( final unit="s", final quantity="Time") "Cool-down time retrieved from optimal cool-down block"; Buildings.Controls.OBC.CDL.Interfaces.RealInput tNexOcc( final unit="s", final quantity="Time") "Next occupancy time"; Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uOcc "Current occupancy period, true if it is in occupant period"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput TZon( final unit="K", displayUnit="degC", final quantity="ThermodynamicTemperature") "Zone air temperature"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller con( have_winSen=false, TZonHeaOn=293.15, TZonCooOff=303.15, kCoo=4, kCooCoi=1, yHeaMax=0.2, AFlo=1663, VOutMin_flow=0.5, VOutDes_flow=0.71, yMin=0.1, kHea=4, kMod=4, have_occSen=false, TZonHeaOff=288.15, TZonCooOn=297.15, TSupSetMax=343.15, TSupSetMin=286.15, uLow=0, uHigh=0.5) "VAV controller"; Buildings.ThermalZones.Detailed.Validation.BaseClasses.SingleZoneFloor sinZonFlo( redeclare package Medium = MediumA) "Single zone floor"; Buildings.Air.Systems.SingleZone.VAV.ChillerDXHeatingEconomizer hvac( redeclare package MediumA = MediumA, redeclare package MediumW = MediumW, mAir_flow_nominal=mAir_flow_nominal, etaHea_nominal=0.99, QHea_flow_nominal=QHea_flow_nominal, QCoo_flow_nominal=QCoo_flow_nominal, TSupChi_nominal=TSupChi_nominal) "HVAC system"; Buildings.Controls.OBC.CDL.Continuous.Hysteresis hysChiPla1(uLow=-1, uHigh=0) "Hysteresis with delay to switch on cooling"; Modelica.Blocks.Math.Feedback errTRooCoo1 "Control error on room temperature for cooling"; Buildings.BoundaryConditions.WeatherData.Bus weaBus "Weather bus"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant demLim( final k=0) "Cooling and heating demand imit level"; protected Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSetSupChiConst( final k=TSupChi_nominal) "Set point for chiller temperature"; equation connect(con.yFan, hvac.uFan); connect(con.yHeaCoi, hvac.uHea); connect(con.yOutDamPos, hvac.uEco); connect(hvac.TSup, con.TSup); connect(hvac.TMix, con.TMix); connect(hvac.TRet, con.TCut); connect(weaBus, sinZonFlo.weaBus); connect(con.yCooCoi, hvac.uCooVal); connect(hvac.supplyAir, sinZonFlo.ports[1]); connect(hvac.returnAir, sinZonFlo.ports[2]); connect(errTRooCoo1.y,hysChiPla1. u); connect(hysChiPla1.y, hvac.chiOn); connect(con.TZonCooSet, errTRooCoo1.u2); connect(con.TOut, weaBus.TDryBul); connect(errTRooCoo1.u1, con.TZon); connect(TSetSupChiConst.y, hvac.TSetChi); connect(sinZonFlo.TRooAir, con.TZon); connect(demLim.y, con.uCooDemLimLev); connect(demLim.y, con.uHeaDemLimLev); connect(sinZonFlo.TRooAir, TZon); connect(tNexOcc, con.tNexOcc); connect(uOcc, con.uOcc); connect(warUpTim, con.warUpTim); connect(cooDowTim, con.cooDowTim); connect(hvac.weaBus, weaBus); end ZoneWithAHUG36;