Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.ParallelFanVVF.Validation

Collection of validation models

Information

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

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.ParallelFanVVF.Validation.Controller Controller Validation of model that controls parallel-fan powered unit with variable volume fan

Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.ParallelFanVVF.Validation.Controller Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.ParallelFanVVF.Validation.Controller

Validation of model that controls parallel-fan powered unit with variable volume fan

Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.ParallelFanVVF.Validation.Controller

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.ParallelFanVVF.Controller.

Modelica definition

model Controller "Validation of model that controls parallel-fan powered unit with variable volume fan" Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.ParallelFanVVF.Controller parFanCon( final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1, final VAreBreZon_flow=0.006, final VPopBreZon_flow=0.005, final VMin_flow=0.5, final VCooMax_flow=1.5, final minRat=0.1, final maxRat=2, final controllerTypeVal=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, final staPreMul=1, final hotWatRes=1, final floHys=0.01, final looHys=0.01, final damPosHys=0.01, final valPosHys=0.01, final VOccMin_flow=0, final VAreMin_flow=0) "Paralle-fan powered unit controller"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin TZon( final freqHz=1/86400, final amplitude=4, final offset=299.15) "Zone temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp disAirTem( final height=2, final duration=43200, final offset=273.15 + 15, final startTime=28800) "Discharge airflow temperture"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse winSta( final width=0.05, final period=43200, final shift=43200) "Window opening status"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant cooSet( final k=273.15 + 24) "Zone cooling setpoint temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant heaSet( final k=273.15 + 20) "Zone heating setpoint temperature"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse occ( final width=0.75, final period=43200, final shift=28800) "Occupancy status"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp opeMod( final offset=1, final height=2, final duration=28800, final startTime=28800) "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"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin CO2( final amplitude=400, final freqHz=1/28800, final offset=600) "CO2 concentration"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin parFanFlo( final offset=1.2, final amplitude=0.6, final freqHz=1/28800) "Parallel fan flow"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp oveFlo( final height=2, final duration=10000, final startTime=35000) "Override flow setpoint"; 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 oveDam( final height=2, final duration=5000, startTime=60000) "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"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp oveTerFan( final height=2, final duration=5000, final startTime=60000) "Override terminal fan control"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt4 "Convert real to integer"; Buildings.Controls.OBC.CDL.Reals.Round round4( final n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin TSup( final offset=273.15 + 13, final amplitude=1, final freqHz=1/28800) "Supply air temperature from air handling unit"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse heaOff( final width=0.75, final period=3600) "Close heating valve"; Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant terFan( final k=true) "Terminal fan status"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse hotPla( final width=0.9, final period=7500) "Hot water plant status"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse supFan( final width=0.75, final period=7500) "AHU supply fan status"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TSupSet( final k=273.15 + 13) "AHU supply air temperature setpoint"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin disFlo( final offset=1.3, final amplitude=0.6, final freqHz=1/28800) "Discharge airflow 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(TZon.y,parFanCon. TZon); connect(cooSet.y,parFanCon. TCooSet); connect(heaSet.y,parFanCon. THeaSet); connect(occ.y, parFanCon.u1Occ); connect(opeMod.y,round2. u); connect(round2.y,reaToInt2. u); connect(reaToInt2.y,parFanCon. uOpeMod); connect(CO2.y,parFanCon. ppmCO2); connect(oveFlo.y,round1. u); connect(round1.y,reaToInt1. u); connect(oveDam.y, round3.u); connect(round3.y,reaToInt3. u); connect(reaToInt1.y,parFanCon. oveFloSet); connect(oveTerFan.y, round4.u); connect(round4.y,reaToInt4. u); connect(disAirTem.y,parFanCon. TDis); connect(reaToInt3.y, parFanCon.oveDamPos); connect(reaToInt4.y, parFanCon.oveFan); connect(heaOff.y, not1.u); connect(not1.y, parFanCon.uHeaOff); connect(supFan.y, parFanCon.u1Fan); connect(terFan.y, parFanCon.u1TerFan); connect(hotPla.y, parFanCon.u1HotPla); connect(parFanFlo.y, parFanCon.VParFan_flow); connect(TSupSet.y, parFanCon.TSupSet); connect(TSup.y, parFanCon.TSup); connect(disFlo.y,parFanCon.VPri_flow); connect(CO2Set.y, parFanCon.ppmCO2Set); connect(winSta.y, not2.u); connect(not2.y, parFanCon.u1Win); end Controller;