Collection of validation models
Information
This package contains validation models for the classes in
Buildings.Controls.OBC.ASHRAE.G36_PR1.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.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
Name |
Description |
Controller
|
Validation controller model |
Validation controller model
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.Controller.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Modelica definition
model Controller
extends Modelica.Icons.Example;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.Controller conAHU(
numZon=2,
AFlo={50,50},
minZonPriFlo={(50*3/3600)*6,(50*3/3600)*6},
maxSysPriFlo=0.7*(50*3/3600)*6*2,
have_occSen=true) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSetRooCooOn(
final k=273.15
+ 24) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSetRooHeaOn(
final k=273.15
+ 20) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutCut(
final k=297.15)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TZon[2](
each height=6,
each offset=273.15 + 17,
each duration=3600) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TDis[2](
each height=4,
each duration=3600,
each offset=273.15 + 18) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp numOfOcc1(height=2,
duration=3600) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp numOfOcc2(duration=3600,
height=3) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSup(
each height=4,
each duration=3600,
each offset=273.15 + 14) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp VOut_flow(
duration=1800,
offset=0.02,
height=0.0168) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp vavBoxFlo1(
height=1.5,
offset=1,
duration=3600) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp vavBoxFlo2(
offset=1,
height=0.5,
duration=3600) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TMixMea(
height=4,
duration=1,
offset=273.15 + 2,
startTime=0) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine TOut(
amplitude=5,
offset=18 + 273.15,
freqHz=1/3600) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine ducStaPre(
offset=200,
amplitude=150,
freqHz=1/3600) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sine(
offset=3,
amplitude=2,
freqHz=1/9600) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sine1(amplitude=6, freqHz=1
/9600) ;
Buildings.Controls.OBC.CDL.Continuous.Abs abs ;
Buildings.Controls.OBC.CDL.Continuous.Abs abs1 ;
Buildings.Controls.OBC.CDL.Continuous.Round round1(n=0) ;
Buildings.Controls.OBC.CDL.Continuous.Round round2(n=0) ;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger ducPreResReq ;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger maxSupResReq ;
equation
connect(sine.y, abs1.u);
connect(abs1.y, round2.u);
connect(round2.y, ducPreResReq.u);
connect(sine1.y, abs.u);
connect(abs.y, round1.u);
connect(round1.y, maxSupResReq.u);
connect(TSetRooHeaOn.y, conAHU.THeaSet);
connect(TSetRooCooOn.y, conAHU.TCooSet);
connect(TOut.y, conAHU.TOut);
connect(TZon.y, conAHU.TZon);
connect(TDis.y, conAHU.TDis);
connect(TOutCut.y, conAHU.TOutCut);
connect(TSup.y, conAHU.TSup);
connect(numOfOcc1.y, conAHU.nOcc[1]);
connect(numOfOcc2.y, conAHU.nOcc[2]);
connect(VOut_flow.y, conAHU.VOut_flow);
connect(ducStaPre.y, conAHU.ducStaPre);
connect(vavBoxFlo1.y, conAHU.VBox_flow[1]);
connect(vavBoxFlo2.y, conAHU.VBox_flow[2]);
connect(TMixMea.y, conAHU.TMix);
connect(opeMod.y, conAHU.uOpeMod);
connect(maxSupResReq.y, conAHU.uZonTemResReq);
connect(ducPreResReq.y, conAHU.uZonPreResReq);
end Controller;