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

Collection of validation models

Information

This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.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.DualDuctMixConDischargeSensor.Subsequences.Validation.ActiveAirFlow ActiveAirFlow Validate the model for calculating active airflow setpoint for dual-duct terminal unit using mixing control with discharge flow sensor
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Validation.Alarms Alarms Validation of model that generates alarms
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Validation.Dampers Dampers Validate model for controlling damper position of dual-duct unit
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Validation.Overrides Overrides Validation of model that overrides control
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Validation.SystemRequests SystemRequests Validation of model that generates system requests

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

Validate the model for calculating active airflow setpoint for dual-duct terminal unit using mixing control with discharge flow sensor

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

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.ActiveAirFlow for calculating active minimum and maximum airflow setpoint used in dual-duct terminal unit using mixing control with discharge flow sensor.

Modelica definition

model ActiveAirFlow "Validate the model for calculating active airflow setpoint for dual-duct terminal unit using mixing control with discharge flow sensor" Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.ActiveAirFlow actAirSet( final VCooMax_flow=0.5, final VHeaMax_flow=0.4) "Output the active airflow setpoint for terminal unit"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin minFlo( final amplitude=0.3, final freqHz=1/3600, final offset=0.2) "Occupied zone minimum flow"; Buildings.Controls.OBC.CDL.Reals.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.Reals.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.DualDuctMixConDischargeSensor.Subsequences.Validation.Alarms Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Validation.Alarms

Validation of model that generates alarms

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

Information

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

Modelica definition

model Alarms "Validation of model that generates alarms" Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Alarms ala( final staPreMul=1, final VCooMax_flow=1, final floHys=0.01, final damPosHys=0.01) "Block outputs system alarms"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp disAirSet( final height=0.9, final duration=7200, final offset=0.1) "Discharge airflow rate setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp disAir( final duration=7200, final offset=0.1, final height=0.3) "Discharge airflow rate"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp damPos( final duration=7200, final height=0.7, final offset=0.3) "Damper position"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse supCooFan( final width=0.75, final period=7500) "Cooling supply fan status"; Buildings.Controls.OBC.CDL.Conversions.BooleanToReal booToRea "Convert boolean input to real output"; Buildings.Controls.OBC.CDL.Reals.Multiply mul "Damper position"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse colDammSta( final width=0.5, final period=7500) "Cooling duct damper open and close status"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp damPos1( final duration=7200, final height=0.7, final offset=0.3) "Damper position"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse supHeaFan( final width=0.75, final period=7500) "Heating supply fan status"; Buildings.Controls.OBC.CDL.Conversions.BooleanToReal booToRea1 "Convert boolean input to real output"; Buildings.Controls.OBC.CDL.Reals.Multiply mul1 "Damper position"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse heaDammSta( final width=0.5, final period=7500) "Heating duct damper open and close status"; Buildings.Controls.OBC.CDL.Integers.Sources.Pulse intPul( amplitude=6, width=0.1, period=8500, offset=1) "Operation mode"; equation connect(disAirSet.y, ala.VActSet_flow); connect(booToRea.y, mul.u1); connect(damPos.y, mul.u2); connect(colDammSta.y, booToRea.u); connect(booToRea1.y, mul1.u1); connect(damPos1.y, mul1.u2); connect(heaDammSta.y, booToRea1.u); connect(supCooFan.y, ala.u1CooFan); connect(mul.y, ala.uCooDam); connect(supHeaFan.y, ala.u1HeaFan); connect(mul1.y, ala.uHeaDam); connect(disAir.y, ala.VDis_flow); connect(intPul.y, ala.uOpeMod); end Alarms;

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

Validate model for controlling damper position of dual-duct unit

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

Information

This example validates BBuildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Dampers for damper control of dual-duct unit.

Modelica definition

model Dampers "Validate model for controlling damper position of dual-duct unit" Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Dampers dam1( final VCooMax_flow=0.08, final VHeaMax_flow=0.06, final kDam=1) "Output signal for controlling damper position"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp uCoo( final height=-1, final duration=3600, final offset=1, final startTime=900) "Cooling control signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TZon( final k=273.15 + 22) "Zone temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TCooSup( final k=273.15 + 13) "AHU supply air temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant VActMin_flow( final k=0.01) "Active minimum airflow setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant VActCooMax_flow( final k=0.075) "Active cooling maximum airflow setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin VDis( final offset=0.015, final amplitude=0.002, final freqHz=1/3600) "Discharge airflow rate"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse cooAhu( final width=0.75, final period=7200) "Cold air handling unit status"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant THeaSup( final k=273.15 + 25) "AHU supply air temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp uHea( final height=1, final duration=3600, final offset=0, final startTime=5500) "Heating control signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant VActHeaMax_flow( final k=0.07) "Active heating maximum airflow setpoint"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse heaAhu( final width=0.75, final period=7200, final shift=5000) "Hot air handling unit status"; equation connect(VActMin_flow.y, dam1.VActMin_flow); connect(TZon.y, dam1.TZon); connect(VActCooMax_flow.y, dam1.VActCooMax_flow); connect(uCoo.y, dam1.uCoo); connect(TCooSup.y, dam1.TColSup); connect(cooAhu.y, dam1.u1CooAHU); connect(THeaSup.y, dam1.THotSup); connect(uHea.y, dam1.uHea); connect(VActHeaMax_flow.y, dam1.VActHeaMax_flow); connect(heaAhu.y, dam1.u1HeaAHU); connect(VDis.y, dam1.VDis_flow); end Dampers;

Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Validation.Overrides Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Validation.Overrides

Validation of model that overrides control

Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Validation.Overrides

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Overrides for overrideing controls.

Modelica definition

model Overrides "Validation of model that overrides control" Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.Overrides ove( final VMin_flow=0.1, final VCooMax_flow=0.9, final VHeaMax_flow=0.8) "Block outputs system requests"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp disAirSet( final height=0.9, final duration=7200, final offset=0.1) "Discharge airflow rate setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp cooDamPos( final duration=3600, final height=0.5, final offset=0.5) "Cooling damper position setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp oveFlo( final height=3, final duration=2000, startTime=1000) "Override flow setpoint"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt2 "Convert real to integer"; Buildings.Controls.OBC.CDL.Reals.Round round2( final n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp oveDam( final height=2, final duration=2000, startTime=1000) "Override damper position"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 "Convert real to integer"; Buildings.Controls.OBC.CDL.Reals.Round round1( final n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp heaDamPos( final duration=3600, final height=0.5, final offset=0.5) "Heating damper position setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp oveDam1( 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.Reals.Round round3(final n=0) "Round real number to given digits"; equation connect(oveDam.y, round1.u); connect(round1.y, reaToInt1.u); connect(oveFlo.y, round2.u); connect(round2.y, reaToInt2.u); connect(reaToInt2.y, ove.oveFloSet); connect(disAirSet.y, ove.VActSet_flow); connect(reaToInt1.y, ove.oveCooDamPos); connect(cooDamPos.y, ove.uCooDam); connect(oveDam1.y, round3.u); connect(round3.y,reaToInt3. u); connect(reaToInt3.y, ove.oveHeaDamPos); connect(heaDamPos.y, ove.uHeaDam); end Overrides;

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

Validation of model that generates system requests

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

Information

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

Modelica definition

model SystemRequests "Validation of model that generates system requests" Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.DualDuctMixConDischargeSensor.Subsequences.SystemRequests sysReq( final floHys=0.01, final looHys=0.01, final damPosHys=0.01) "Block outputs system requests"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin 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.Reals.Sources.Sin TZon( final freqHz=1/7200, final amplitude=2, final offset=299.15) "Zone temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp uCoo( final height=-1, final duration=2000, final offset=1, final startTime=1000) "Cooling loop signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp disAirSet( final height=0.9, final duration=7200, final offset=0.1) "Discharge airflow rate setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp disAirRate( final duration=7200, final offset=0.1, final height=0.3) "Discharge airflow rate"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp colDamPos( final duration=3000, final height=-0.7, final offset=0.7) "Cold-duct 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"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin sine1( final freqHz=1/7200, final offset=293.15) "Generate data for setpoint"; Buildings.Controls.OBC.CDL.Discrete.UnitDelay TZonHeaSet( final samplePeriod=1800) "Heating setpoint temperature"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( final width=0.1, final period=7200) "After suppression"; Buildings.Controls.OBC.CDL.Logical.Not not2 "Logical not"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp uHea( final height=0.9, final duration=3600, final startTime=3600) "Heating loop signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp hotDamPos( final duration=3600, final height=0.7, startTime=3600) "Hot-duct damper position"; equation connect(sine.y, TZonCooSet.u); connect(TZonCooSet.y, sysReq.TCooSet); connect(TZon.y, sysReq.TZon); connect(uCoo.y, sysReq.uCoo); connect(booPul.y, not1.u); connect(not1.y, sysReq.uAftSupCoo); connect(colDamPos.y, sysReq.uCooDam); connect(sine1.y, TZonHeaSet.u); connect(booPul1.y, not2.u); connect(not2.y, sysReq.uAftSupHea); connect(TZonHeaSet.y, sysReq.THeaSet); connect(uHea.y, sysReq.uHea); connect(hotDamPos.y, sysReq.uHeaDam); connect(disAirRate.y, sysReq.VDis_flow); connect(disAirSet.y, sysReq.VDis_flow_Set); end SystemRequests;