Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation
Collection of validation models
Information
This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.
Package Content
Name | Description |
---|---|
Alarms | Validate block for generating alarms |
ControlLoops | Validation models of determining heating and coooling loop signal |
Setpoints | Validate block for zone set point |
ZoneStates | Validation models of determining zone state |
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.Alarms
Validate block for generating alarms
Information
This example validates Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Alarms for generating alarms.
Modelica definition
model Alarms "Validate block for generating alarms"
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Alarms zonAla(
final have_CO2Sen=true) "Block that generates alarms";
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp ram(
final duration=7200) "Generate ramp output";
Buildings.Controls.OBC.CDL.Continuous.GreaterThreshold greThr(t=0.75)
"Check if input is greater than 0.75";
Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger booToInt(
final integerTrue=1,
final integerFalse=2)
"Convert boolean input to integer output";
Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonCooSetOcc(
final k=295.15)
"Occupied cooling setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonHeaSetOcc(
final k=293.15)
"Occupied heating setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine zonTem(
final amplitude=8,
final freqHz=1/7200,
final offset=273.15 + 15) "Zone temperature";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse occSta(
final period=7200,
final width=0.05)
"Generate signal indicating suppressing status";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine CO2(
final amplitude=500,
final freqHz=1/7200,
final offset=600) "CO2 concentration";
equation
connect(ram.y, greThr.u);
connect(greThr.y, not1.u);
connect(not1.y, booToInt.u);
connect(booToInt.y, zonAla.uOpeMod);
connect(zonTem.y, zonAla.TZon);
connect(TZonCooSetOcc.y, zonAla.TCooSet);
connect(TZonHeaSetOcc.y, zonAla.THeaSet);
connect(occSta.y, zonAla.u1ResSet);
connect(CO2.y, zonAla.ppmCO2);
end Alarms;
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.ControlLoops
Validation models of determining heating and coooling loop signal
Information
This example validates Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.ControlLoops.
Modelica definition
model ControlLoops
"Validation models of determining heating and coooling loop signal"
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.ControlLoops conLoo
"Heating and cooling loop";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonCooSetOcc(
final k=297.15)
"Occupied cooling setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonHeaSetOcc(
final k=293.15)
"Occupied heating setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine zonTem(
final amplitude=8,
final freqHz=1/7200,
final offset=273.15 + 18) "Zone temperature";
equation
connect(TZonCooSetOcc.y, conLoo.TCooSet);
connect(TZonHeaSetOcc.y, conLoo.THeaSet);
connect(zonTem.y, conLoo.TZon);
end ControlLoops;
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.Setpoints
Validate block for zone set point
Information
This example validates Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Setpoints for a change of zone setpoint temperature.
Modelica definition
model Setpoints "Validate block for zone set point"
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Setpoints TZonSet(
final have_occSen=true,
final have_winSen=true) "Block that determines the thermal zone setpoints";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonCooSetOcc(
final k=297.15)
"Occupied cooling setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonHeaSetOcc(
final k=293.15)
"Occupied heating setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonCooSetUno(
final k=303.15)
"Unoccupied cooling setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonHeaSetUno(
final k=287.15)
"Unoccupied heating setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine cooSetAdj(
final freqHz=1/28800) "Cooling setpoint adjustment";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine heaSetAdj(
final freqHz=1/28800,
final amplitude=0.5)
"Heating setpoint adjustment";
Buildings.Controls.OBC.CDL.Integers.Sources.Constant cooDemLimLev(
final k=0)
"Cooling demand limit level";
Buildings.Controls.OBC.CDL.Integers.Sources.Constant heaDemLimLev(
final k=0)
"Heating demand limit level";
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp ram(
final duration=28800)
"Generate ramp output";
Buildings.Controls.OBC.CDL.Continuous.GreaterThreshold greThr(t=0.75)
"Check if input is greater than 0.75";
Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger booToInt(
final integerTrue=1,
final integerFalse=7)
"Convert boolean input to integer output";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse winSta(
final period=14400, final shift=1200)
"Generate signal indicating window status";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse occSta(
final period=14400,
final width=0.95)
"Generate signal indicating occupancy status";
Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant zerAdj(
final k=0) "Zero adjustment";
Buildings.Controls.OBC.CDL.Continuous.Switch swi1
"Switch to zero adjustment when window is open";
Buildings.Controls.OBC.CDL.Continuous.Switch swi2
"Switch to zero adjustment when window is open";
equation
connect(ram.y, greThr.u);
connect(greThr.y, not1.u);
connect(not1.y, booToInt.u);
connect(TZonCooSetOcc.y, TZonSet.TOccCooSet);
connect(TZonHeaSetOcc.y, TZonSet.TOccHeaSet);
connect(TZonCooSetUno.y, TZonSet.TUnoCooSet);
connect(TZonHeaSetUno.y, TZonSet.TUnoHeaSet);
connect(cooDemLimLev.y, TZonSet.uCooDemLimLev);
connect(heaDemLimLev.y, TZonSet.uHeaDemLimLev);
connect(booToInt.y, TZonSet.uOpeMod);
connect(winSta.y, swi2.u2);
connect(winSta.y, swi1.u2);
connect(zerAdj.y, swi2.u1);
connect(zerAdj.y, swi1.u1);
connect(cooSetAdj.y, swi2.u3);
connect(heaSetAdj.y, swi1.u3);
connect(swi1.y, TZonSet.heaSetAdj);
connect(occSta.y, TZonSet.u1Occ);
connect(winSta.y, TZonSet.u1Win);
connect(swi2.y, TZonSet.cooSetAdj);
end Setpoints;
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.ZoneStates
Validation models of determining zone state
Information
This example validates Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.ZoneStates.
Modelica definition
model ZoneStates "Validation models of determining zone state"
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.ZoneStates zonSta "Zone state";
Buildings.Controls.OBC.CDL.Continuous.Sources.Pulse uCoo(
final period=2,
final shift=1,
final offset=0,
final amplitude=1) "Cooling control signal";
Buildings.Controls.OBC.CDL.Continuous.Sources.Pulse uHea(
final period=2,
final shift=2,
final offset=0,
final amplitude=1) "Heating control signal";
equation
connect(uHea.y, zonSta.uHea);
connect(uCoo.y, zonSta.uCoo);
end ZoneStates;