Buildings.Controls.OBC.ASHRAE.G36.VentilationZones.ASHRAE62_1.Validation
Collection of validation models
Information
This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36.VentilationZones.ASHRAE62_1.
Package Content
Name | Description |
---|---|
Setpoints | Validate the outdoor airflow setpoint according to the ASHRAE 62.1 |
Buildings.Controls.OBC.ASHRAE.G36.VentilationZones.ASHRAE62_1.Validation.Setpoints
Validate the outdoor airflow setpoint according to the ASHRAE 62.1
Information
This example validates Buildings.Controls.OBC.ASHRAE.G36.VentilationZones.ASHRAE62_1.Setpoints.
Modelica definition
model Setpoints "Validate the outdoor airflow setpoint according to the ASHRAE 62.1"
Buildings.Controls.OBC.ASHRAE.G36.VentilationZones.ASHRAE62_1.Setpoints
noSenZon(
final VAreBreZon_flow=0.009,
final VPopBreZon_flow=0.005,
final VMin_flow=0.018) "Setpoints of zone without any sensors";
Buildings.Controls.OBC.ASHRAE.G36.VentilationZones.ASHRAE62_1.Setpoints
winSenZon(
final have_winSen=true,
final VAreBreZon_flow=0.009,
final VPopBreZon_flow=0.005,
final VMin_flow=0.018) "Setpoints of a zone with window sensor";
Buildings.Controls.OBC.ASHRAE.G36.VentilationZones.ASHRAE62_1.Setpoints
occSenZon(
final have_occSen=true,
final VAreBreZon_flow=0.009,
final VPopBreZon_flow=0.005,
final VMin_flow=0.018) "Setpoints of a zone with occupancy sensor";
Buildings.Controls.OBC.ASHRAE.G36.VentilationZones.ASHRAE62_1.Setpoints
co2SenZon(
final have_CO2Sen=true,
have_typTerUni=true,
final VAreBreZon_flow=0.009,
final VPopBreZon_flow=0.005,
final VMin_flow=0.018)
"Setpoints of a zone with CO2 sensor and typical terminal unit";
Buildings.Controls.OBC.ASHRAE.G36.VentilationZones.ASHRAE62_1.Setpoints
co2SenZonParFan(
final have_CO2Sen=true,
have_parFanPowUni=true,
final VAreBreZon_flow=0.009,
final VPopBreZon_flow=0.005,
final VMin_flow=0.018)
"Setpoints of a zone with CO2 sensor and parallel fan-powered terminal unit";
Buildings.Controls.OBC.ASHRAE.G36.VentilationZones.ASHRAE62_1.Setpoints
co2SenSZVAV(
final have_CO2Sen=true,
have_SZVAV=true,
final VAreBreZon_flow=0.009,
final VPopBreZon_flow=0.005,
final VMin_flow=0.018)
"Setpoints of a zone with CO2 sensor and single zone VAV AHU";
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp ram(
final duration=7200)
"Generate ramp output";
Buildings.Controls.OBC.CDL.Reals.GreaterThreshold greThr(
final t=0.75)
"Check if input is greater than 0.75";
Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not";
Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger booToInt(
final integerTrue=1,
final integerFalse=2)
"Convert boolean input to integer output";
Buildings.Controls.OBC.CDL.Reals.Sources.Sin zonTem(
final amplitude=8,
final freqHz=1/7200,
final offset=273.15 + 15) "Zone temperature";
Buildings.Controls.OBC.CDL.Reals.Sources.Sin disTem(
final amplitude=-5,
final freqHz=1/7200,
final offset=273.15 + 20) "Discharge air temperature";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse winSta(
final period=7200,
final width=0.2) "Window operating status";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse occSta(
final period=7200,
final width=0.8)
"Occupancy status";
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp co2Con(
final height=300,
final duration=7200,
offset=800) "CO2 concentration";
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp ram1(
final height=2.6,
final duration=7200,
offset=0.6) "Generate ramp output";
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt
"Convert real input to integer output";
Buildings.Controls.OBC.CDL.Reals.Sources.Sin parFanFlo(
final amplitude=0.01,
final freqHz=1/7200,
final offset=0.008) "Parallel fan flow rate";
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(ram.y, greThr.u);
connect(greThr.y, not1.u);
connect(not1.y, booToInt.u);
connect(booToInt.y, noSenZon.uOpeMod);
connect(zonTem.y, noSenZon.TZon);
connect(disTem.y, noSenZon.TDis);
connect(booToInt.y, winSenZon.uOpeMod);
connect(zonTem.y, winSenZon.TZon);
connect(disTem.y, winSenZon.TDis);
connect(booToInt.y, occSenZon.uOpeMod);
connect(zonTem.y, occSenZon.TZon);
connect(disTem.y, occSenZon.TDis);
connect(occSta.y, occSenZon.u1Occ);
connect(booToInt.y, co2SenZon.uOpeMod);
connect(zonTem.y, co2SenZon.TZon);
connect(disTem.y, co2SenZon.TDis);
connect(co2Con.y, co2SenZon.ppmCO2);
connect(booToInt.y, co2SenZonParFan.uOpeMod);
connect(ram1.y, reaToInt.u);
connect(reaToInt.y, co2SenZonParFan.uZonSta);
connect(co2Con.y, co2SenZonParFan.ppmCO2);
connect(parFanFlo.y, co2SenZonParFan.VParFan_flow);
connect(zonTem.y, co2SenZonParFan.TZon);
connect(disTem.y, co2SenZonParFan.TDis);
connect(booToInt.y, co2SenSZVAV.uOpeMod);
connect(co2Con.y, co2SenSZVAV.ppmCO2);
connect(zonTem.y, co2SenSZVAV.TZon);
connect(disTem.y, co2SenSZVAV.TDis);
connect(CO2Set.y, co2SenZonParFan.ppmCO2Set);
connect(CO2Set.y, co2SenSZVAV.ppmCO2Set);
connect(CO2Set.y, co2SenZon.ppmCO2Set);
connect(winSta.y, not2.u);
connect(not2.y, winSenZon.u1Win);
end Setpoints;