Collection of validation models
Information
This package contains validation models for the classes in
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.
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 |
Controller
|
Validation controller model |
Controller_UnspecifiedClimate
|
Validation controller model for generating warnng when the climate zone is not specified |
Validation controller model
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller.
Modelica definition
model Controller
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller conAHU(
final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1,
final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1,
final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_4B,
final minOADes=Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow,
final buiPreCon=Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefDamper,
final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb,
final VUncDesOutAir_flow=0.05,
final VDesTotOutAir_flow=0.05) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TSup(
final height=4,
final duration=3600,
final offset=273.15 + 14) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOut_flow(
final duration=1800,
final offset=0.02,
final height=0.0168)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TMixMea(
final height=4,
final duration=1,
final offset=273.15 + 2,
final startTime=0)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin TOut(
final amplitude=5,
final offset=18 + 273.15,
final freqHz=1/3600) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin ducStaPre(
final offset=200,
final amplitude=150,
final freqHz=1/3600) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sine2(
final offset=3,
final amplitude=2,
final freqHz=1/9600) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sine3(
final amplitude=6,
final freqHz=1/9600)
;
Buildings.Controls.OBC.CDL.Reals.Abs abs2
;
Buildings.Controls.OBC.CDL.Reals.Abs abs3
;
Buildings.Controls.OBC.CDL.Reals.Round round3(n=0)
;
Buildings.Controls.OBC.CDL.Reals.Round round4(n=0)
;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger ducPreResReq
;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger maxSupResReq
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant sumDesPopBreZon(
final k=0.0125)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant sumDesAreBreZon(
final k=0.03)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp vavBoxFlo2(
final offset=0.08,
final height=0.02,
final duration=3600)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp vavBoxFlo1(
final height=0.05,
final offset=0.08,
final duration=3600)
;
Buildings.Controls.OBC.CDL.Reals.Add add2
;
Buildings.Controls.OBC.CDL.Reals.Sources.Pulse uOutAirFra_max(
final amplitude=0.005,
final width=0.25,
final period=3600,
final offset=0.015)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp dpBui(
final height=40,
final offset=0,
final duration=1800) ;
Buildings.Controls.OBC.CDL.Logical.Not not1
;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse freRes(
final width=0.95,
final period=3600)
;
Buildings.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol(
final trueHoldDuration=1)
;
equation
connect(TOut.y, conAHU.TOut);
connect(ducStaPre.y, conAHU.dpDuc);
connect(sine2.y, abs3.u);
connect(abs3.y,round4. u);
connect(round4.y, ducPreResReq.u);
connect(sine3.y, abs2.u);
connect(abs2.y, round3.u);
connect(round3.y, maxSupResReq.u);
connect(maxSupResReq.y, conAHU.uZonTemResReq);
connect(ducPreResReq.y, conAHU.uZonPreResReq);
connect(TMixMea.y, conAHU.TAirMix);
connect(VOut_flow.y, conAHU.VAirOut_flow);
connect(TSup.y, conAHU.TAirSup);
connect(vavBoxFlo2.y, add2.u1);
connect(vavBoxFlo1.y, add2.u2);
connect(uOutAirFra_max.y, conAHU.uOutAirFra_max);
connect(dpBui.y, conAHU.dpBui);
connect(freRes.y,not1. u);
connect(not1.y, conAHU.u1SofSwiRes);
connect(conAHU.y1SupFan, truFalHol.u);
connect(truFalHol.y, conAHU.u1SupFan);
connect(sumDesPopBreZon.y, conAHU.VSumAdjPopBreZon_flow);
connect(sumDesAreBreZon.y, conAHU.VSumAdjAreBreZon_flow);
connect(add2.y, conAHU.VSumZonPri_flow);
connect(opeMod.y, conAHU.uAhuOpeMod);
end Controller;
Validation controller model for generating warnng when the climate zone is not specified
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller for generating
warning when the climate zone is not specified.
Modelica definition
model Controller_UnspecifiedClimate
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller conAHU(
final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1,
final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1,
final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Not_Specified,
final minOADes=Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow,
final buiPreCon=Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefDamper,
final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb,
final VUncDesOutAir_flow=0.05,
final VDesTotOutAir_flow=0.05) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TSup(
final height=4,
final duration=3600,
final offset=273.15 + 14) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOut_flow(
final duration=1800,
final offset=0.02,
final height=0.0168)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TMixMea(
final height=4,
final duration=1,
final offset=273.15 + 2,
final startTime=0)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin TOut(
final amplitude=5,
final offset=18 + 273.15,
final freqHz=1/3600) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin ducStaPre(
final offset=200,
final amplitude=150,
final freqHz=1/3600) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sine2(
final offset=3,
final amplitude=2,
final freqHz=1/9600) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sine3(
final amplitude=6,
final freqHz=1/9600)
;
Buildings.Controls.OBC.CDL.Reals.Abs abs2
;
Buildings.Controls.OBC.CDL.Reals.Abs abs3
;
Buildings.Controls.OBC.CDL.Reals.Round round3(n=0)
;
Buildings.Controls.OBC.CDL.Reals.Round round4(n=0)
;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger ducPreResReq
;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger maxSupResReq
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant sumDesPopBreZon(
final k=0.0125)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant sumDesAreBreZon(
final k=0.03)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp vavBoxFlo2(
final offset=0.08,
final height=0.02,
final duration=3600)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp vavBoxFlo1(
final height=0.05,
final offset=0.08,
final duration=3600)
;
Buildings.Controls.OBC.CDL.Reals.Add add2
;
Buildings.Controls.OBC.CDL.Reals.Sources.Pulse uOutAirFra_max(
final amplitude=0.005,
final width=0.25,
final period=3600,
final offset=0.015)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp dpBui(
final height=40,
final offset=0,
final duration=1800) ;
Buildings.Controls.OBC.CDL.Logical.Not not1
;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse freRes(
final width=0.95,
final period=3600)
;
Buildings.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol(
final trueHoldDuration=1)
;
equation
connect(TOut.y, conAHU.TOut);
connect(ducStaPre.y, conAHU.dpDuc);
connect(sine2.y, abs3.u);
connect(abs3.y,round4. u);
connect(round4.y, ducPreResReq.u);
connect(sine3.y, abs2.u);
connect(abs2.y, round3.u);
connect(round3.y, maxSupResReq.u);
connect(maxSupResReq.y, conAHU.uZonTemResReq);
connect(ducPreResReq.y, conAHU.uZonPreResReq);
connect(TMixMea.y, conAHU.TAirMix);
connect(VOut_flow.y, conAHU.VAirOut_flow);
connect(TSup.y, conAHU.TAirSup);
connect(vavBoxFlo2.y, add2.u1);
connect(vavBoxFlo1.y, add2.u2);
connect(uOutAirFra_max.y, conAHU.uOutAirFra_max);
connect(dpBui.y, conAHU.dpBui);
connect(freRes.y,not1. u);
connect(not1.y, conAHU.u1SofSwiRes);
connect(conAHU.y1SupFan, truFalHol.u);
connect(truFalHol.y, conAHU.u1SupFan);
connect(sumDesPopBreZon.y, conAHU.VSumAdjPopBreZon_flow);
connect(sumDesAreBreZon.y, conAHU.VSumAdjAreBreZon_flow);
connect(add2.y, conAHU.VSumZonPri_flow);
connect(opeMod.y, conAHU.uAhuOpeMod);
end Controller_UnspecifiedClimate;