Buildings.Obsolete.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 | 
|---|---|
|  ZoneWithAHUG36 | A single zone building with a VAV system and a Guideline36 controller | 
 Buildings.Obsolete.Air.Systems.SingleZone.VAV.Examples.OptimalStart.BaseClasses.ZoneWithAHUG36
Buildings.Obsolete.Air.Systems.SingleZone.VAV.Examples.OptimalStart.BaseClasses.ZoneWithAHUG36
A single zone building with a VAV system and a Guideline36 controller
 
Information
This base class contains a controller based on Guideline36 Buildings.Obsolete.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
| 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
  "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.Obsolete.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.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";
protected 
  Buildings.Controls.OBC.CDL.Reals.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;
