Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Pumps.CondenserWater.Validation
Collection of validation models
Information
This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Pumps.CondenserWater.
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 |
|---|---|
| Validate condenser water pump control sequence |
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Pumps.CondenserWater.Validation.Controller
Validate condenser water pump control sequence
Information
This example validates Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Pumps.CondenserWater.Controller.
Modelica definition
model Controller "Validate condenser water pump control sequence"
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Pumps.CondenserWater.Controller
heaHavWse
"Condenser water pumps controller for plant with headered condenser water pump and have waterside economizer";
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Pumps.CondenserWater.Controller
dedHavWse(
final have_heaPum=false)
"Condenser water pumps controller for plant with dedicated condenser water pump and have waterside economizer";
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Pumps.CondenserWater.Controller
heaNoWse(
final have_WSE=false,
final nPlaSta=4,
final staVec={0,1,2,3},
final desConWatPumSpe={0,0.5,0.5,0.75},
final desConWatPumNum={0,1,1,2})
"Condenser water pumps controller for plant with headered condenser water pump and without waterside economizer";
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp ramp1(
final duration=3600,
final height=2.4) "Block that generates ramp signal";
Buildings.Controls.OBC.CDL.Reals.Round round1(final n=0)
"Round real number to given digits";
Buildings.Controls.OBC.CDL.Conversions.RealToInteger chiSta
"Convert real to integer";
Buildings.Controls.OBC.CDL.Integers.GreaterThreshold chiOn "Chiller status";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse wseSta(
final period=1800)
"Waterside economizer status";
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fal(
final k=false) "Logical false";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul(
final period=3600) "Output boolean pulse";
Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger booToInt(
final integerTrue=2) "Convert boolean to integer";
Buildings.Controls.OBC.CDL.Integers.Add addInt "Add two integer inputs";
Buildings.Controls.OBC.CDL.Logical.Sources.Constant con1(final k=false)
"Constant false";
equation
connect(ramp1.y,round1. u);
connect(round1.y, chiSta.u);
connect(chiSta.y, chiOn.u);
connect(chiSta.y, heaHavWse.uChiSta);
connect(chiSta.y, dedHavWse.uChiSta);
connect(wseSta.y, heaHavWse.uWSE);
connect(wseSta.y, dedHavWse.uWSE);
connect(chiOn.y, heaHavWse.uLeaChiSta);
connect(chiOn.y, heaHavWse.uLeaConWatReq);
connect(chiOn.y, dedHavWse.uLeaChiSta);
connect(chiOn.y, dedHavWse.uLeaConWatReq);
connect(chiOn.y, heaNoWse.uLeaChiSta);
connect(chiOn.y, heaNoWse.uLeaConWatReq);
connect(booPul.y, booToInt.u);
connect(booToInt.y, addInt.u2);
connect(chiSta.y, addInt.u1);
connect(addInt.y, heaNoWse.uChiSta);
connect(chiOn.y, heaHavWse.uLeaChiEna);
connect(chiOn.y, dedHavWse.uLeaChiEna);
connect(chiOn.y, heaNoWse.uLeaChiEna);
connect(chiOn.y, heaHavWse.uChiConIsoVal[1]);
connect(chiOn.y, dedHavWse.uChiConIsoVal[1]);
connect(chiOn.y, heaNoWse.uChiConIsoVal[1]);
connect(fal.y, heaHavWse.uChiConIsoVal[2]);
connect(fal.y, dedHavWse.uChiConIsoVal[2]);
connect(fal.y, heaNoWse.uChiConIsoVal[2]);
connect(con1.y, heaHavWse.uEnaPla);
connect(con1.y, dedHavWse.uEnaPla);
connect(con1.y, heaNoWse.uEnaPla);
end Controller;