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.Reals.Sources.Ramp disAirSet(
    
final height=0.9,
    
final duration=7200,
    
final offset=0.1) ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp disAirRate(
    
final duration=7200,
    
final offset=0.1,
    
final height=0.3) ;
  
Buildings.Controls.OBC.CDL.Reals.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.Reals.Multiply mul
    ;
  
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse damSta(
    
final width=0.5,
    
final period=7500)
    ;
  
Buildings.Controls.OBC.CDL.Integers.Sources.Pulse intPul(
    amplitude=6,
    width=0.1,
    period=8500,
    offset=1)
    ;
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);
  
connect(intPul.y, ala.uOpeMod);
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
                                                                                   dam1(
    
final VMin_flow=0.01,
    
final VCooMax_flow=0.09,
    
final kDam=1) ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp uCoo(
    
final height=1,
    
final duration=3600,
    
final offset=0,
    
final startTime=900)
    ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TZon(
    
final k=273.15 + 22)
    ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TSup(
    
final k=273.15 + 13)
    ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Constant VActMin_flow(
    
final k=0.01)
    ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Constant VActCooMax_flow(
    
final k=0.075)
    ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Sin VDis_flow(
    
final offset=0.015,
    
final amplitude=0.002,
    
final freqHz=1/3600) ;
  
Buildings.Controls.OBC.CDL.Reals.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.Reals.Round round2(
    
final n=0)
    ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp oveFlo(
    
final height=3,
    
final duration=2000,
    startTime=1000) ;
  
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1
    ;
  
Buildings.Controls.OBC.CDL.Reals.Round round1(
final n=0)
    ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp oveDam(
    
final height=2,
    
final duration=2000,
    startTime=1000) ;
  
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt3
    ;
  
Buildings.Controls.OBC.CDL.Reals.Round round3(
final n=0)
    ;
  
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul(
    
final width=0.9,
    
final period=4800,
    
final shift=180) ;
equation 
  connect(zonSta.y,round2. u);
  
connect(round2.y,reaToInt2. u);
  
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, dam1.oveFloSet);
  
connect(reaToInt3.y, dam1.oveDamPos);
  
connect(booPul.y, dam1.u1Fan);
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.Reals.Sources.Sin sine(
    
final freqHz=1/7200,
    
final offset=296.15) ;
  
Buildings.Controls.OBC.CDL.Discrete.UnitDelay TZonCooSet(
    
final samplePeriod=1800)
    ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Sin TZon(
    
final freqHz=1/7200,
    
final amplitude=2,
    
final offset=299.15) ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp uCoo(
    
final height=0.9,
    
final duration=7200,
    
final offset=0.1) ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp disAirSet(
    
final height=0.9,
    
final duration=7200,
    
final offset=0.1) ;
  
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp disAirRate(
    
final duration=7200,
    
final offset=0.1,
    
final height=0.3) ;
  
Buildings.Controls.OBC.CDL.Reals.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;