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 |
ActiveAirFlow
|
Validate the model for calculating active airflow setpoint for VAV cooling only unit |
Alarms
|
Validation of model that generates alarms |
Dampers
|
Validate model for controlling damper position of cooling only terminal unit |
SystemRequests
|
Validation of model that generates system requests |
Validate the model for calculating active airflow setpoint for VAV cooling only unit
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
Validation of model that generates alarms
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.Alarms
for generating system alarms.
Modelica definition
model 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) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp disAirSet(
final height=0.9,
final duration=7200,
final offset=0.1) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp disAirRate(
final duration=7200,
final offset=0.1,
final height=0.3) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp damPos(
final duration=7200,
final height=0.7,
final offset=0.3) ;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse supFan(
final width=0.75,
final period=7500) ;
Buildings.Controls.OBC.CDL.Conversions.BooleanToReal booToRea
;
Buildings.Controls.OBC.CDL.Continuous.Multiply mul
;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse damSta(
final width=0.5,
final period=7500)
;
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;
Validate model for controlling damper position of cooling only terminal unit
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
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) ;
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) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp uCoo(
final height=1,
final duration=3600,
final offset=0,
final startTime=900)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZon(
final k=273.15 + 22)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSup(
final k=273.15 + 13)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant VActMin_flow(
final k=0.01)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant VActCooMax_flow(
final k=0.075)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine VDis_flow(
final offset=0.015,
final amplitude=0.002,
final freqHz=1/3600) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp zonSta(
final offset=3,
final height=-2,
final duration=1000,
startTime=1800) ;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt2
;
Buildings.Controls.OBC.CDL.Continuous.Round round2(
final n=0)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp oveFlo(
final height=3,
final duration=2000,
startTime=1000) ;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1
;
Buildings.Controls.OBC.CDL.Continuous.Round round1(
final n=0)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp oveDam(
final height=2,
final duration=2000,
startTime=1000) ;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt3
;
Buildings.Controls.OBC.CDL.Continuous.Round round3(
final n=0)
;
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;
Validation of model that generates system requests
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.SystemRequests
for generating system requests.
Modelica definition
model SystemRequests
Buildings.Controls.OBC.ASHRAE.G36.TerminalUnits.CoolingOnly.Subsequences.SystemRequests
sysReq(
final floHys=0.01,
final looHys=0.01,
final damPosHys=0.01) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sine(
final freqHz=1/7200,
final offset=296.15) ;
Buildings.Controls.OBC.CDL.Discrete.UnitDelay TZonCooSet(
final samplePeriod=1800)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine TZon(
final freqHz=1/7200,
final amplitude=2,
final offset=299.15) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp uCoo(
final height=0.9,
final duration=7200,
final offset=0.1) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp disAirSet(
final height=0.9,
final duration=7200,
final offset=0.1) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp disAirRate(
final duration=7200,
final offset=0.1,
final height=0.3) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp damPos(
final duration=7200,
final height=0.7,
final offset=0.3) ;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul(
final width=0.1,
final period=7200)
;
Buildings.Controls.OBC.CDL.Logical.Not not1 ;
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;