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.PressureControl.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;