Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation

Collection of validation models

Information

This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.

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
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.ActiveAirFlow ActiveAirFlow Validate the model for calculating active airflow setpoint for VAV cooling only unit
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.Alarms Alarms Validation of model that generates alarms
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.Dampers Dampers Validate model for controlling damper position of cooling only terminal unit
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.SystemRequests SystemRequests Validation of model that generates system requests

Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.ActiveAirFlow Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.ActiveAirFlow

Validate the model for calculating active airflow setpoint for VAV cooling only unit

Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.ActiveAirFlow

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.ActiveAirFlow for calculating active minimum and maximum airflow setpoint used in cooling only unit control.

Modelica definition

model ActiveAirFlow "Validate the model for calculating active airflow setpoint for VAV cooling only unit" Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.ActiveAirFlow actAirSet(final VCooMax_flow=0.5) "Output the active airflow setpoint for terminal unit"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine minFlo( final amplitude=0.3, final freqHz=1/3600, final offset=0.2) "Occupied zone minimum flow"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp opeMod( final offset=1, final height=5, final duration=3600) "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"; equation connect(opeMod.y,round2. u); connect(round2.y,reaToInt2. u); connect(reaToInt2.y, actAirSet.uOpeMod); connect(minFlo.y, actAirSet.VOccMin_flow); end ActiveAirFlow;

Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.Alarms Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.Alarms

Validation of model that generates alarms

Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.Alarms

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Alarms for generating system alarms.

Modelica definition

model Alarms "Validation of model that generates alarms" Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Alarms ala( final staPreMul=1, final VCooMax_flow=0.5, final floHys=0.01, final damPosHys=0.01) "Block outputs system alarms"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp disAirSet( final height=0.9, final duration=7200, final offset=0.1) "Discharge airflow rate setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp disAirRate( final duration=7200, final offset=0.1, final height=0.3) "Discharge airflow rate"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp damPos( final duration=7200, final height=0.7, final offset=0.3) "Damper position"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse supFan( final width=0.75, final period=7500) "Supply fan status"; Buildings.Controls.OBC.CDL.Conversions.BooleanToReal booToRea "Convert boolean input to real output"; Buildings.Controls.OBC.CDL.Continuous.Multiply mul "Damper position"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse damSta( final width=0.5, final period=7500) "Damper open and close status"; equation connect(disAirRate.y, ala.VDis_flow); connect(disAirSet.y, ala.VActSet_flow); connect(supFan.y, ala.u1Fan); connect(booToRea.y, mul.u1); connect(damPos.y, mul.u2); connect(mul.y, ala.uDam); connect(damSta.y, booToRea.u); end Alarms;

Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.Dampers Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.Dampers

Validate model for controlling damper position of cooling only terminal unit

Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.Dampers

Information

This example validates BBuildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Dampers for damper control of VAV cooling only terminal unit.

Modelica definition

model Dampers "Validate model for controlling damper position of cooling only terminal unit" Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Dampers dam( final have_preIndDam=true, final VMin_flow=0.01, final VCooMax_flow=0.09, final kDam=1) "Output signal for controlling damper position"; Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Dampers dam1( final have_preIndDam=false, final VMin_flow=0.01, final VCooMax_flow=0.09, final kDam=1) "Output signal for controlling damper position"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp uCoo( final height=1, final duration=3600, final offset=0, final startTime=900) "Cooling control signal"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZon( final k=273.15 + 22) "Zone temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSup( final k=273.15 + 13) "AHU supply air temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant VActMin_flow( final k=0.01) "Active minimum airflow setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant VActCooMax_flow( final k=0.075) "Active cooling maximum airflow setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine VDis_flow( final offset=0.015, final amplitude=0.002, final freqHz=1/3600) "Discharge airflow rate"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp zonSta( final offset=3, final height=-2, final duration=1000, startTime=1800) "Zone state"; 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.Ramp oveFlo( final height=3, final duration=2000, startTime=1000) "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 oveDam( final height=2, final duration=2000, startTime=1000) "Override 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"; equation connect(uCoo.y, dam.uCoo); connect(TSup.y, dam.TSup); connect(TZon.y, dam.TZon); connect(VActCooMax_flow.y, dam.VActCooMax_flow); connect(VActMin_flow.y, dam.VActMin_flow); connect(zonSta.y,round2. u); connect(round2.y,reaToInt2. u); connect(reaToInt2.y, dam.uZonSta); connect(VActMin_flow.y, dam1.VActMin_flow); connect(TSup.y, dam1.TSup); connect(TZon.y, dam1.TZon); connect(VActCooMax_flow.y, dam1.VActCooMax_flow); connect(reaToInt2.y, dam1.uZonSta); connect(VDis_flow.y, dam1.VDis_flow); connect(uCoo.y, dam1.uCoo); connect(oveFlo.y,round1. u); connect(round1.y,reaToInt1. u); connect(oveDam.y,round3. u); connect(round3.y,reaToInt3. u); connect(reaToInt1.y, dam.oveFloSet); connect(reaToInt1.y, dam1.oveFloSet); connect(reaToInt3.y, dam.oveDamPos); connect(reaToInt3.y, dam1.oveDamPos); end Dampers;

Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.SystemRequests Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.SystemRequests

Validation of model that generates system requests

Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Validation.SystemRequests

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.SystemRequests for generating system requests.

Modelica definition

model SystemRequests "Validation of model that generates system requests" Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.SystemRequests sysReq( final floHys=0.01, final looHys=0.01, final damPosHys=0.01) "Block outputs system requests"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sine( final freqHz=1/7200, final offset=296.15) "Generate data for setpoint"; Buildings.Controls.OBC.CDL.Discrete.UnitDelay TZonCooSet( final samplePeriod=1800) "Cooling setpoint temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine TZon( final freqHz=1/7200, final amplitude=2, final offset=299.15) "Zone temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp uCoo( final height=0.9, final duration=7200, final offset=0.1) "Cooling loop signal"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp disAirSet( final height=0.9, final duration=7200, final offset=0.1) "Discharge airflow rate setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp disAirRate( final duration=7200, final offset=0.1, final height=0.3) "Discharge airflow rate"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp damPos( final duration=7200, final height=0.7, final offset=0.3) "Damper position"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul( final width=0.1, final period=7200) "After suppression"; Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not"; equation connect(sine.y, TZonCooSet.u); connect(TZonCooSet.y, sysReq.TCooSet); connect(TZon.y, sysReq.TZon); connect(uCoo.y, sysReq.uCoo); connect(disAirRate.y, sysReq.VDis_flow); connect(disAirSet.y, sysReq.VSet_flow); connect(damPos.y, sysReq.uDam); connect(booPul.y, not1.u); connect(not1.y, sysReq.uAftSup); end SystemRequests;