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 |
ZoneWithAHUConventional
|
A single zone building with a VAV system and a conventional controller |
ZoneWithAHUG36
|
A single zone building with a VAV system and a Guideline36 controller |
A single zone building with a VAV system and a conventional controller
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
Type | Name | Default | Description |
Temperature | TSupChi_nominal | 279.15 | Design value for chiller leaving water temperature [K] |
Volume | VRoo | 4555.7 | Space volume of the floor [m3] |
MassFlowRate | mAir_flow_nominal | VRoo*4*1.2/3600 | Design air flow rate [kg/s] |
HeatFlowRate | QHea_flow_nominal | 90000 | Design heating flow rate [W] |
HeatFlowRate | QCoo_flow_nominal | -100000 | Design cooling flow rate [W] |
Connectors
Type | Name | Description |
input RealInput | TSetRooHea | Room heating setpoint temperature [K] |
input RealInput | TSetRooCoo | Room cooling setpoint temperature [K] |
input BooleanInput | uOcc | Current occupancy period, true if it is in occupant period |
output RealOutput | TZon | Zone temperature [K] |
Bus | weaBus | Weather bus |
Modelica definition
block ZoneWithAHUConventional
package MediumA =
Buildings.Media.Air(extraPropertiesNames={"CO2"})
;
package MediumW =
Buildings.Media.Water
;
parameter Modelica.Units.SI.Temperature TSupChi_nominal=279.15
;
parameter Modelica.Units.SI.Volume VRoo=4555.7 ;
parameter Modelica.Units.SI.MassFlowRate mAir_flow_nominal=VRoo*4*1.2/3600
;
parameter Modelica.Units.SI.HeatFlowRate QHea_flow_nominal=90000
;
parameter Modelica.Units.SI.HeatFlowRate QCoo_flow_nominal=-100000
;
Buildings.Controls.OBC.CDL.Interfaces.RealInput TSetRooHea(
final unit="K",
displayUnit="degC")
;
Buildings.Controls.OBC.CDL.Interfaces.RealInput TSetRooCoo(
final unit="K",
displayUnit="degC")
;
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uOcc
;
Buildings.Controls.OBC.CDL.Interfaces.RealOutput TZon(
final unit="K",
displayUnit="degC")
;
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)
;
Buildings.Air.Systems.SingleZone.VAV.BaseClasses.ControllerChillerDXHeatingEconomizer
con(
minAirFlo=0.1,
minOAFra=0.4,
TSupChi_nominal=TSupChi_nominal,
TSetSupAir=286.15)
;
Buildings.ThermalZones.Detailed.Validation.BaseClasses.SingleZoneFloor
sinZonFlo(
redeclare package Medium = MediumA)
;
Buildings.BoundaryConditions.WeatherData.Bus weaBus
;
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;
A single zone building with a VAV system and a Guideline36 controller
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
Type | Name | Default | Description |
Temperature | TSupChi_nominal | 279.15 | Design value for chiller leaving water temperature [K] |
Volume | VRoo | 4555.7 | Space volume of the floor [m3] |
MassFlowRate | mAir_flow_nominal | VRoo*4*1.2/3600 | Design air flow rate [kg/s] |
HeatFlowRate | QHea_flow_nominal | 90000 | Design heating flow rate [W] |
HeatFlowRate | QCoo_flow_nominal | -100000 | Design cooling flow rate [W] |
Connectors
Type | Name | Description |
input RealInput | warUpTim | Warm-up time retrieved from optimal warm-up block [s] |
input RealInput | cooDowTim | Cool-down time retrieved from optimal cool-down block [s] |
input RealInput | tNexOcc | Next occupancy time [s] |
input BooleanInput | uOcc | Current occupancy period, true if it is in occupant period |
output RealOutput | TZon | Zone air temperature [K] |
Bus | weaBus | Weather bus |
Modelica definition
block ZoneWithAHUG36
package MediumA =
Buildings.Media.Air(extraPropertiesNames={"CO2"})
;
package MediumW =
Buildings.Media.Water
;
parameter Modelica.Units.SI.Temperature TSupChi_nominal=279.15
;
parameter Modelica.Units.SI.Volume VRoo=4555.7 ;
parameter Modelica.Units.SI.MassFlowRate mAir_flow_nominal=VRoo*4*1.2/3600
;
parameter Modelica.Units.SI.HeatFlowRate QHea_flow_nominal=90000
;
parameter Modelica.Units.SI.HeatFlowRate QCoo_flow_nominal=-100000
;
Buildings.Controls.OBC.CDL.Interfaces.RealInput warUpTim(
final unit="s",
final quantity="Time")
;
Buildings.Controls.OBC.CDL.Interfaces.RealInput cooDowTim(
final unit="s",
final quantity="Time")
;
Buildings.Controls.OBC.CDL.Interfaces.RealInput tNexOcc(
final unit="s",
final quantity="Time")
;
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uOcc
;
Buildings.Controls.OBC.CDL.Interfaces.RealOutput TZon(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature") ;
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)
;
Buildings.ThermalZones.Detailed.Validation.BaseClasses.SingleZoneFloor sinZonFlo(
redeclare package Medium = MediumA)
;
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) ;
Buildings.Controls.OBC.CDL.Reals.Hysteresis hysChiPla1(uLow=-1, uHigh=0)
;
Modelica.Blocks.Math.Feedback errTRooCoo1
;
Buildings.BoundaryConditions.WeatherData.Bus weaBus
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant demLim(
final k=0)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOccHeaSet(
final k=293.15)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOccCooSet(
final k=297.15)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TUnoHeaSet(
final k=288.15)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TUnoCooSet(
final k=303.15)
;
Modelica.Blocks.Sources.BooleanConstant freRes(k=true)
;
protected
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TSetSupChiConst(
final k=TSupChi_nominal)
;
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;