Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctColdDuctMin.Validation
Collection of validation models
Information
This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctColdDuctMin.
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 dual-duct unit with minimum cold duct control |
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctColdDuctMin.Validation.Controller
Validation of model that controls dual-duct unit with minimum cold duct control
Information
This example validates Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctColdDuctMin.Controller.
Modelica definition
model Controller
"Validation of model that controls dual-duct unit with minimum cold duct control"
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctColdDuctMin.Controller
duaDucCon(
final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1_2016,
final VAreBreZon_flow=0.006,
final VPopBreZon_flow=0.005,
final VMin_flow=0.5,
final VCooMax_flow=1.5,
final VHeaMax_flow=1.2,
final have_preIndDam=false,
final staPreMul=1,
final floHys=0.01,
final looHys=0.01,
final damPosHys=0.01,
final VOccMin_flow=0,
final VAreMin_flow=0)
"Dual duct unit controller";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine TZon(
final freqHz=1/86400,
final amplitude=4,
final offset=299.15)
"Zone temperature";
Buildings.Controls.OBC.CDL.Continuous.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.Continuous.Sources.Constant cooSet(
final k=273.15 + 24)
"Zone cooling setpoint temperature";
Buildings.Controls.OBC.CDL.Continuous.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.Continuous.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.Continuous.Round round2(
final n=0)
"Round real number to given digits";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine CO2(
final amplitude=400,
final freqHz=1/28800,
final offset=600) "CO2 concentration";
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp colSupAirTem(
final height=2,
final duration=43200,
final offset=273.15 + 14)
"Cold-duct supply air temperature from air handling unit";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine VColDis_flow(
final offset=1.2,
final amplitude=0.6,
final freqHz=1/28800) "Cold duct airflow rate";
Buildings.Controls.OBC.CDL.Continuous.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.Continuous.Round round1(
final n=0)
"Round real number to given digits";
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp oveColDam(
final height=2,
final duration=5000,
startTime=60000) "Override cold-duct damper position";
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt3
"Convert real to integer";
Buildings.Controls.OBC.CDL.Continuous.Round round3(
final n=0)
"Round real number to given digits";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse cooSupFanSta(
final width=0.9,
final period=73200,
final shift=18800) "Cooling supply fan status";
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp oveHotDam(
final height=2,
final duration=5000,
final startTime=60000) "Override hot-duct damper position";
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt4
"Convert real to integer";
Buildings.Controls.OBC.CDL.Continuous.Round round4(
final n=0)
"Round real number to given digits";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse heaSupFanSta(
final width=0.9,
final period=73200,
final shift=18800) "Heating supply fan status";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine VHotDis_flow(
final offset=1.2,
final amplitude=0.6,
final freqHz=1/28800) "Hot duct airflow rate";
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp hotSupAirTem(
final height=2,
final duration=43200,
final offset=273.15 + 24)
"Hot-duct supply air temperature from air handling unit";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant CO2Set(
final k=894)
"CO2 concentration setpoint";
equation
connect(TZon.y,duaDucCon. TZon);
connect(cooSet.y, duaDucCon.TCooSet);
connect(heaSet.y, duaDucCon.THeaSet);
connect(winSta.y, duaDucCon.u1Win);
connect(occ.y, duaDucCon.u1Occ);
connect(opeMod.y,round2. u);
connect(round2.y,reaToInt2. u);
connect(reaToInt2.y,duaDucCon. uOpeMod);
connect(CO2.y,duaDucCon. ppmCO2);
connect(oveFlo.y,round1. u);
connect(round1.y,reaToInt1. u);
connect(oveColDam.y, round3.u);
connect(round3.y,reaToInt3. u);
connect(reaToInt1.y,duaDucCon. oveFloSet);
connect(reaToInt3.y, duaDucCon.oveCooDamPos);
connect(oveHotDam.y, round4.u);
connect(round4.y,reaToInt4. u);
connect(reaToInt4.y, duaDucCon.oveHeaDamPos);
connect(disAirTem.y, duaDucCon.TDis);
connect(colSupAirTem.y, duaDucCon.TColSup);
connect(VColDis_flow.y, duaDucCon.VColDucDis_flow);
connect(cooSupFanSta.y, duaDucCon.u1CooAHU);
connect(hotSupAirTem.y, duaDucCon.THotSup);
connect(VHotDis_flow.y, duaDucCon.VHotDucDis_flow);
connect(heaSupFanSta.y, duaDucCon.u1HeaAHU);
connect(CO2Set.y, duaDucCon.ppmCO2Set);
end Controller;