Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Validation
Collection of validation models
Information
This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.
Note that most validation models contain simple input data which may not be realistic, but for which the correct output can be obtained through an analytic solution. The examples plot various outputs, which have been verified against these solutions. These model outputs are stored as reference data and used for continuous validation whenever models in the library change.
Package Content
Name | Description |
---|---|
Controller | Validation of model that controls cooling only unit |
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Validation.Controller
Validation of model that controls cooling only unit
Information
This example validates Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Controller.
Modelica definition
model Controller
"Validation of model that controls cooling only unit"
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Controller cooBoxCon(
final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1,
final VAreBreZon_flow=0.006,
final VPopBreZon_flow=0.005,
final VMin_flow=0.5,
final VCooMax_flow=1.5,
final staPreMul=1,
final floHys=0.01,
final looHys=0.01,
final damPosHys=0.01,
final VOccMin_flow=0,
final VAreMin_flow=0) "Cooling only unit controller";
Buildings.Controls.OBC.CDL.Reals.Sources.Sin TZon(
final freqHz=1/86400,
final amplitude=4,
final offset=299.15)
"Zone temperature";
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp disAirTem(
final height=2,
final duration=43200,
final offset=273.15 + 15,
final startTime=28800)
"Discharge airflow temperture";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse winSta(
final width=0.05,
final period=43200,
final shift=43200)
"Window opening status";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant cooSet(
final k=273.15 + 24)
"Zone cooling setpoint temperature";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant heaSet(
final k=273.15 + 20)
"Zone heating setpoint temperature";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse occ(
final width=0.75,
final period=43200,
final shift=28800) "Occupancy status";
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp opeMod(
final offset=1,
final height=2,
final duration=28800,
final startTime=28800)
"Operation mode";
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt2
"Convert real to integer";
Buildings.Controls.OBC.CDL.Reals.Round round2(
final n=0)
"Round real number to given digits";
Buildings.Controls.OBC.CDL.Reals.Sources.Sin CO2(
final amplitude=400,
final freqHz=1/28800,
final offset=600) "CO2 concentration";
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp supAirTem(
final height=2,
final duration=43200,
final offset=273.15 + 14)
"Supply air temperature from air handling unit";
Buildings.Controls.OBC.CDL.Reals.Sources.Sin VDis_flow(
final offset=1.2,
final amplitude=0.6,
final freqHz=1/28800) "Discharge airflow rate";
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp oveFlo(
final height=2,
final duration=10000,
final startTime=35000)
"Override flow setpoint";
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1
"Convert real to integer";
Buildings.Controls.OBC.CDL.Reals.Round round1(
final n=0)
"Round real number to given digits";
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp oveDam(
final height=2,
final duration=5000,
startTime=60000) "Override damper position";
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt3
"Convert real to integer";
Buildings.Controls.OBC.CDL.Reals.Round round3(
final n=0)
"Round real number to given digits";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse supFanSta(
final width=0.9,
final period=73200,
final shift=18800) "Supply fan status";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant CO2Set(final k=894)
"CO2 concentration setpoint";
Buildings.Controls.OBC.CDL.Logical.Not not2 "Logical not";
equation
connect(TZon.y, cooBoxCon.TZon);
connect(cooSet.y, cooBoxCon.TCooSet);
connect(heaSet.y, cooBoxCon.THeaSet);
connect(occ.y, cooBoxCon.u1Occ);
connect(opeMod.y,round2. u);
connect(round2.y,reaToInt2. u);
connect(reaToInt2.y, cooBoxCon.uOpeMod);
connect(CO2.y, cooBoxCon.ppmCO2);
connect(disAirTem.y, cooBoxCon.TDis);
connect(supAirTem.y, cooBoxCon.TSup);
connect(VDis_flow.y, cooBoxCon.VDis_flow);
connect(oveFlo.y,round1. u);
connect(round1.y,reaToInt1. u);
connect(oveDam.y, round3.u);
connect(round3.y,reaToInt3. u);
connect(reaToInt1.y, cooBoxCon.oveFloSet);
connect(reaToInt3.y, cooBoxCon.oveDamPos);
connect(supFanSta.y, cooBoxCon.u1Fan);
connect(CO2Set.y, cooBoxCon.ppmCO2Set);
connect(winSta.y, not2.u);
connect(not2.y, cooBoxCon.u1Win);
end Controller;