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.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.AHUs.SingleZone.VAV.Controller con( eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1, venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1, VAreBreZon_flow=0.4989, VPopBreZon_flow=0.2075, ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb, ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_6B, freSta=Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeStat.No_freeze_stat, have_winSen=false, have_CO2Sen=false, buiPreCon=Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.BarometricRelief, have_locAdj=false, TSupDew_max=297.15, maxHeaSpe=0.2, maxCooSpe=1, minSpe=0.1, kCoo=0.1, kCooCoi=1, VOutMin_flow=0.5, VOutDes_flow=0.71, kHea=0.1, kMod=4, have_occSen=false, TSup_max=343.15, TSup_min=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.Reals.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"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOccHeaSet(final k=293.15) "Occupied heating setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOccCooSet(final k=297.15) "Occupied cooling setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TUnoHeaSet(final k=288.15) "Unoccupied heating setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TUnoCooSet(final k=303.15) "Unoccupied cooling setpoint"; Modelica.Blocks.Sources.BooleanConstant freRes(k=true) "Freeze protection reset"; protected Buildings.Controls.OBC.CDL.Reals.Sources.Constant TSetSupChiConst( final k=TSupChi_nominal) "Set point for chiller temperature"; equation connect(con.yHeaCoi, hvac.uHea); 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(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(warUpTim, con.warUpTim); connect(cooDowTim, con.cooDowTim); connect(hvac.weaBus, weaBus); connect(sinZonFlo.TRooAir, errTRooCoo1.u1); connect(weaBus.TDryBul, con.TOut); connect(uOcc, con.u1Occ); connect(TOccHeaSet.y, con.TOccHeaSet); connect(TOccCooSet.y, con.TOccCooSet); connect(TUnoHeaSet.y, con.TUnoHeaSet); connect(TUnoCooSet.y, con.TUnoCooSet); connect(hvac.TSup, con.TAirSup); connect(hvac.TMix, con.TAirMix); connect(con.yOutDam, hvac.uEco); connect(con.ySupFan, hvac.uFan); connect(freRes.y, con.u1SofSwiRes); connect(con.yHeaCoi, con.uHeaCoi_actual); connect(con.yCooCoi, con.uCooCoi_actual); connect(con.ySupFan, con.uSupFan_actual); end ZoneWithAHUG36;