Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Validation
Collection of validation models
Information
This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.
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 |
|---|---|
| Validates the waterside economizer enable-disable controller |
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Validation.Controller
Validates the waterside economizer enable-disable controller
Information
This example validates Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Controller.
Modelica definition
model Controller
"Validates the waterside economizer enable-disable controller"
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Controller
wseSta(TOutWetDes(displayUnit="degC"))
"Waterside economizer enable status sequence";
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Controller
wseSta1 "Waterside economizer enable status sequence";
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Controller
wseSta2 "Waterside economizer enable status sequence";
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Controller
wseSta3(
final have_byPasValCon=false,
TOutWetDes(displayUnit="degC"))
"Waterside economizer enable status sequence";
Buildings.Controls.OBC.CDL.Reals.Sources.Sin dpWSE(
final amplitude=3000,
freqHz=1/3600,
final offset=4500)
"Static pressure difference across chilled water side economizer";
protected
parameter Real TOutWetBul(
final unit="K",
final quantity="ThermodynamicTemperature",
displayUnit="degC")=283.15
"Average outdoor air wet bulb temperature";
parameter Real TChiWatRet(
final unit="K",
final quantity="ThermodynamicTemperature",
displayUnit="degC")=293.15
"Chilled water retun temperature upstream of the WSE";
parameter Real TWseOut(
final unit="K",
final quantity="ThermodynamicTemperature",
displayUnit="degC")=290.15
"Chilled water retun temperature downstream of the WSE";
parameter Real VChiWat_flow(
final unit="m3/s",
final quantity="VolumeFlowRate",
displayUnit="m3/s")=0.01
"Measured chilled water return temperature";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant chiWatFlow(
final k=VChiWat_flow)
"Chilled water flow";
Buildings.Controls.OBC.CDL.Reals.Sources.Pulse TOutWetSig(
final amplitude=5,
final period=2*15*60,
final offset=TOutWetBul) "Measured outdoor air wet bulb temperature";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant constTowFanSig(
final k=1)
"Cooling tower fan full load signal";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRetSig(
final k=TChiWatRet)
"Chilled water return temperature upstream of WSE";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRetDow(
final k=TWseOut)
"Chilled water return temperature downstream of WSE";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant chiWatFlow1(
final k=VChiWat_flow)
"Chilled water flow";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOutWetSig1(
final k=TOutWetBul)
"Measured outdoor air wet bulb temperature";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant constTowFanSig1(
final k=1)
"Cooling tower fan full load signal";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRetSig1(
final k=TChiWatRet)
"Chilled water return temperature upstream of WSE";
Buildings.Controls.OBC.CDL.Reals.Sources.Sin TChiWatRetDow1(
final offset=TWseOut,
final freqHz=1/1800,
final amplitude=4)
"Chilled water return temperature downstream of WSE";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant chiWatFlow2(
final k=VChiWat_flow)
"Chilled water flow";
Buildings.Controls.OBC.CDL.Reals.Sources.Pulse TOutWetSig2(
final amplitude=5,
final period=2*15*60,
final offset=TOutWetBul) "Measured outdoor air wet bulb temperature";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant constTowFanSig2(
final k=1)
"Cooling tower fan full load signal";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRetSig2(
final k=TChiWatRet)
"Chilled water return temperature upstream of WSE";
Buildings.Controls.OBC.CDL.Reals.Sources.Sin TChiWatRetDow3(
final offset=TWseOut,
final freqHz=1/1800,
final amplitude=4)
"Chilled water return temperature downstream of WSE";
Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt(
final k=0)
"Stage 0";
Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt1(
final k=2)
"Stage 0";
Buildings.Controls.OBC.CDL.Logical.Sources.Constant con(
final k=true) "Enabled plant";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant chiWatFlow3(
final k=VChiWat_flow)
"Chilled water flow";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant constTowFanSig3(
final k=1)
"Cooling tower fan full load signal";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRetSig3(
final k=TChiWatRet)
"Chilled water return temperature upstream of WSE";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRetDow2(
final k=TWseOut)
"Chilled water return temperature downstream of WSE";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOutWetSig3(
final k=292.15)
"Measured outdoor air wet bulb temperature";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul(
final width=0.1,
final period=3600) "Enabled plant";
Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt2(
final k=0)
"Stage 0";
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TEntHex(
final height=3,
final duration=3600,
final offset=290.15)
"Return chilled water temperature entering heat exchanger";
Buildings.Controls.OBC.CDL.Logical.Not not1
"Logical not";
Buildings.Controls.OBC.CDL.Logical.Sources.Constant con1[2](
final k=fill(true, 2))
"Enabled chiller chilled water isolation valves";
Buildings.Controls.OBC.CDL.Logical.Sources.Constant con3[2](
final k=fill(true, 2))
"Enabled chiller chilled water isolation valves";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con2[2](k=fill(1, 2))
"Chiller chilled water isolation valve positions";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con4[2](k=fill(1, 2))
"Chiller chilled water isolation valve positions";
Buildings.Controls.OBC.CDL.Logical.Sources.Constant con5(final k=false)
"Not in process";
equation
connect(constTowFanSig.y, wseSta.uTowFanSpeMax);
connect(TOutWetSig.y, wseSta.TOutWet);
connect(TChiWatRetSig.y, wseSta.TChiWatRet);
connect(chiWatFlow.y, wseSta.VChiWat_flow);
connect(TChiWatRetDow.y,wseSta.TChiWatRetDow);
connect(constTowFanSig1.y, wseSta1.uTowFanSpeMax);
connect(TOutWetSig1.y, wseSta1.TOutWet);
connect(TChiWatRetSig1.y, wseSta1.TChiWatRet);
connect(chiWatFlow1.y, wseSta1.VChiWat_flow);
connect(TChiWatRetDow1.y,wseSta1.TChiWatRetDow);
connect(constTowFanSig2.y, wseSta2.uTowFanSpeMax);
connect(TOutWetSig2.y,wseSta2. TOutWet);
connect(TChiWatRetSig2.y,wseSta2. TChiWatRet);
connect(chiWatFlow2.y,wseSta2. VChiWat_flow);
connect(wseSta2.TChiWatRetDow, TChiWatRetDow3.y);
connect(con.y, wseSta.uPla);
connect(con.y, wseSta1.uPla);
connect(con.y, wseSta2.uPla);
connect(conInt.y, wseSta.uIni);
connect(conInt.y, wseSta1.uIni);
connect(conInt.y, wseSta2.uIni);
connect(conInt1.y, wseSta.uChiSta);
connect(conInt1.y, wseSta1.uChiSta);
connect(conInt1.y, wseSta2.uChiSta);
connect(dpWSE.y, wseSta.dpChiWat);
connect(dpWSE.y, wseSta1.dpChiWat);
connect(dpWSE.y, wseSta2.dpChiWat);
connect(TOutWetSig3.y, wseSta3.TOutWet);
connect(TChiWatRetSig3.y, wseSta3.TChiWatRet);
connect(TChiWatRetDow2.y, wseSta3.TChiWatRetDow);
connect(chiWatFlow3.y, wseSta3.VChiWat_flow);
connect(constTowFanSig3.y, wseSta3.uTowFanSpeMax);
connect(conInt2.y, wseSta3.uIni);
connect(booPul.y, not1.u);
connect(not1.y, wseSta3.uPla);
connect(not1.y, wseSta3.uPum);
connect(TEntHex.y, wseSta3.TEntHex);
connect(conInt2.y, wseSta3.uChiSta);
connect(con1.y, wseSta.u1ChiIsoVal);
connect(con1.y, wseSta1.u1ChiIsoVal);
connect(con1.y, wseSta2.u1ChiIsoVal);
connect(con2.y, wseSta.uChiIsoVal);
connect(con2.y, wseSta1.uChiIsoVal);
connect(con2.y, wseSta2.uChiIsoVal);
connect(con3.y, wseSta3.u1ChiIsoVal);
connect(con4.y, wseSta3.uChiIsoVal);
connect(con5.y, wseSta3.uStaPro);
end Controller;