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
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.Alarms Alarms Validate block for generating alarms
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.ControlLoops ControlLoops Validation models of determining heating and coooling loop signal
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.Setpoints Setpoints Validate block for zone set point
Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.ZoneStates ZoneStates Validation models of determining zone state

Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.Alarms Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.Alarms

Validate block for generating alarms

Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.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.Reals.Sources.Ramp ram( final duration=7200) "Generate ramp output"; Buildings.Controls.OBC.CDL.Reals.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.Reals.Sources.Constant TZonCooSetOcc( final k=295.15) "Occupied cooling setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TZonHeaSetOcc( final k=293.15) "Occupied heating setpoint"; 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.Logical.Sources.Pulse occSta( final period=7200, final width=0.05) "Generate signal indicating suppressing status"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin 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 Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.ControlLoops

Validation models of determining heating and coooling loop signal

Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.ControlLoops

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.Reals.Sources.Constant TZonCooSetOcc( final k=297.15) "Occupied cooling setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TZonHeaSetOcc( final k=293.15) "Occupied heating setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin 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 Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.Setpoints

Validate block for zone set point

Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.Setpoints

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.Reals.Sources.Constant TZonCooSetOcc( final k=297.15) "Occupied cooling setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TZonHeaSetOcc( final k=293.15) "Occupied heating setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TZonCooSetUno( final k=303.15) "Unoccupied cooling setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TZonHeaSetUno( final k=287.15) "Unoccupied heating setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin cooSetAdj( final freqHz=1/28800) "Cooling setpoint adjustment"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin 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.Reals.Sources.Ramp ram( final duration=28800) "Generate ramp output"; Buildings.Controls.OBC.CDL.Reals.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.Reals.Sources.Constant zerAdj( final k=0) "Zero adjustment"; Buildings.Controls.OBC.CDL.Reals.Switch swi1 "Switch to zero adjustment when window is open"; Buildings.Controls.OBC.CDL.Reals.Switch swi2 "Switch to zero adjustment when window is open"; 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(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(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(swi2.y, TZonSet.cooSetAdj); connect(winSta.y, not2.u); connect(not2.y, swi1.u2); connect(not2.y, swi2.u2); connect(not2.y, TZonSet.u1Win); end Setpoints;

Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.ZoneStates Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.ZoneStates

Validation models of determining zone state

Buildings.Controls.OBC.ASHRAE.G36.ThermalZones.Validation.ZoneStates

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.Reals.Sources.Pulse uCoo( final period=2, final shift=1, final offset=0, final amplitude=1) "Cooling control signal"; Buildings.Controls.OBC.CDL.Reals.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;