Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation

Collection of validation models

Information

This package contains validation models for the classes in Buildings.Applications.DataCenters.ChillerCooled.Controls.

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
Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.ChillerStage ChillerStage Test the model ChillerWSE.Examples.BaseClasses.ChillerStageControl
Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.ConstantSpeedPumpStage ConstantSpeedPumpStage Test the model ChillerWSE.Examples.BaseClasses.ConstatnSpeedPumpStageControl
Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.CoolingMode CoolingMode Test the model ChillerWSE.Examples.BaseClasses.CoolingModeController
Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.CoolingModeNonIntegrated CoolingModeNonIntegrated Example that illustrates the use of Buildings.Applications.DataCenters.ChillerCooled.Controls.CoolingModeNonIntegrated
Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.CoolingTowerSpeed CoolingTowerSpeed Test the model ChillerWSE.Examples.BaseClasses.CoolingTowerSpeedControl
Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.Reheat Reheat Test model for reheater controller
Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.VariableSpeedPumpStage VariableSpeedPumpStage Test the model ChillerWSE.Examples.BaseClasses.VariableSpeedPumpStageControl

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.ChillerStage Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.ChillerStage

Test the model ChillerWSE.Examples.BaseClasses.ChillerStageControl

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.ChillerStage

Information

This example test the chiller staging controller implemented in Buildings.Applications.DataCenters.ChillerCooled.Controls.ChillerStage.

The number of running chillers is determined by cooling mode signal and total cooling load. In Free Cooling (FC) mode, no chillers are required; in Partial Mechanic Cooling (PMC) mode and Fully Mechanic Cooling (FMC) mode, chillers are required to run and the running number is based on cooling load. Details can be found in Buildings.Applications.DataCenters.ChillerCooled.Controls.ChillerStage.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model ChillerStage "Test the model ChillerWSE.Examples.BaseClasses.ChillerStageControl" extends Modelica.Icons.Example; Buildings.Applications.DataCenters.ChillerCooled.Controls.ChillerStage chiStaCon( tWai=30, QEva_nominal=-100*3.517*1000, dT=0.5) "Staging controller for chillers"; Modelica.Blocks.Sources.Constant QTot( k=0.55*chiStaCon.QEva_nominal) "Total cooling load in chillers"; Modelica.Blocks.Sources.IntegerTable cooMod( table=[0,0; 360,1; 720,2; 1080,3]) "Cooling mode"; Modelica.Blocks.Sources.Pulse TCHWSup( amplitude=2, period=360, offset=273.15 + 5) "WSE chilled water supply temperature"; equation connect(QTot.y, chiStaCon.QTot); connect(cooMod.y, chiStaCon.cooMod); connect(TCHWSup.y, chiStaCon.TCHWSup); end ChillerStage;

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.ConstantSpeedPumpStage Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.ConstantSpeedPumpStage

Test the model ChillerWSE.Examples.BaseClasses.ConstatnSpeedPumpStageControl

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.ConstantSpeedPumpStage

Information

This example test how the number of required constant-speed pumps varies based on cooling mode signals and the number of running chillers. Detailed control logic can be found in Buildings.Applications.DataCenters.ChillerCooled.Controls.ConstantSpeedPumpStage.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model ConstantSpeedPumpStage "Test the model ChillerWSE.Examples.BaseClasses.ConstatnSpeedPumpStageControl" extends Modelica.Icons.Example; Buildings.Applications.DataCenters.ChillerCooled.Controls.ConstantSpeedPumpStage conSpePumSta( tWai=30) "Staging controller for constant speed pumps"; Modelica.Blocks.Sources.IntegerTable cooMod( table=[0,0; 360,1; 720,2; 1080,3]) "Cooling mode"; Modelica.Blocks.Sources.IntegerTable chiNumOn( table=[0,0; 360,1; 540,2; 720,1; 900,2; 1080,1; 1260,2; 1440,1]) "The number of running chillers"; equation connect(cooMod.y, conSpePumSta.cooMod); connect(chiNumOn.y,conSpePumSta.numOnChi); end ConstantSpeedPumpStage;

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.CoolingMode Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.CoolingMode

Test the model ChillerWSE.Examples.BaseClasses.CoolingModeController

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.CoolingMode

Information

This model tests the cooling mode controller implemented in Buildings.Applications.DataCenters.ChillerCooled.Controls.CoolingMode.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model CoolingMode "Test the model ChillerWSE.Examples.BaseClasses.CoolingModeController" extends Modelica.Icons.Example; Buildings.Applications.DataCenters.ChillerCooled.Controls.CoolingMode cooModCon( deaBan1=1, deaBan2=1, tWai=30, deaBan3=1, deaBan4=1) "Cooling mode controller used in integrared waterside economizer chilled water system"; Modelica.Blocks.Sources.Pulse TCHWLeaWSE( period=300, amplitude=15, offset=273.15 + 5) "WSE chilled water supply temperature"; Modelica.Blocks.Sources.Constant TWetBub(k=273.15 + 5) "Wet bulb temperature"; Modelica.Blocks.Sources.Constant TAppTow(k=5) "Cooling tower approach"; Modelica.Blocks.Sources.Constant TCHWEntWSE(k=273.15 + 12) "Chilled water return temperature in waterside economizer"; Modelica.Blocks.Sources.Constant TCHWLeaSet(k=273.15 + 10) "Chilled water supply temperature setpoint"; equation connect(TCHWLeaSet.y, cooModCon.TCHWSupSet); connect(TWetBub.y, cooModCon.TWetBul); connect(TAppTow.y, cooModCon.TApp); connect(TCHWLeaWSE.y, cooModCon.TCHWSupWSE); connect(TCHWEntWSE.y, cooModCon.TCHWRetWSE); end CoolingMode;

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.CoolingModeNonIntegrated Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.CoolingModeNonIntegrated

Example that illustrates the use of Buildings.Applications.DataCenters.ChillerCooled.Controls.CoolingModeNonIntegrated

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.CoolingModeNonIntegrated

Information

This model tests the cooling mode controller implemented in Buildings.Applications.DataCenters.ChillerCooled.Controls.CoolingModeNonIntegrated.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model CoolingModeNonIntegrated "Example that illustrates the use of Buildings.Applications.DataCenters.ChillerCooled.Controls.CoolingModeNonIntegrated" extends Modelica.Icons.Example; Buildings.Applications.DataCenters.ChillerCooled.Controls.CoolingModeNonIntegrated cooModCon( tWai=30, deaBan=1, TSwi=280.15) "Cooling mode controller used in integrared waterside economizer chilled water system"; Modelica.Blocks.Sources.Pulse TCHWSup( period=300, amplitude=2, offset=273.15 + 7) "WSE chilled water supply temperature"; Modelica.Blocks.Sources.Sine TWetBub( amplitude=4, freqHz=1/300, offset=273.15 + 8) "Wet bulb temperature"; Modelica.Blocks.Sources.Constant TCHWSupSet(k=273.15 + 10) "Chilled water supply temperature setpoint"; Modelica.Blocks.Sources.IntegerTable chiNumOn(table=[0,0; 360,1; 540,2; 720,1; 900,2]) "The number of running chillers"; equation connect(TCHWSupSet.y, cooModCon.TCHWSupSet); connect(TWetBub.y, cooModCon.TWetBul); connect(TCHWSup.y, cooModCon.TCHWSup); connect(chiNumOn.y, cooModCon.numOnChi); end CoolingModeNonIntegrated;

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.CoolingTowerSpeed Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.CoolingTowerSpeed

Test the model ChillerWSE.Examples.BaseClasses.CoolingTowerSpeedControl

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.CoolingTowerSpeed

Information

This example tests the controller for the cooling tower fan speed. Detailed control logic can be found in Buildings.Applications.DataCenters.ChillerCooled.Controls.CoolingTowerSpeed.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
Controller
SimpleControllercontrollerTypeModelica.Blocks.Types.Simple...Type of controller
Realk1Gain of controller [1]
TimeTi0.5Time constant of integrator block [s]
TimeTd0.1Time constant of derivative block [s]
RealyMax1Upper limit of output
RealyMin0Lower limit of output

Modelica definition

model CoolingTowerSpeed "Test the model ChillerWSE.Examples.BaseClasses.CoolingTowerSpeedControl" extends Modelica.Icons.Example; parameter Modelica.Blocks.Types.SimpleController controllerType= Modelica.Blocks.Types.SimpleController.PID "Type of controller"; parameter Real k(min=0, unit="1") = 1 "Gain of controller"; parameter Modelica.SIunits.Time Ti(min=Modelica.Constants.small)=0.5 "Time constant of integrator block"; parameter Modelica.SIunits.Time Td(min=0)=0.1 "Time constant of derivative block"; parameter Real yMax(start=1)=1 "Upper limit of output"; parameter Real yMin=0 "Lower limit of output"; Buildings.Applications.DataCenters.ChillerCooled.Controls.CoolingTowerSpeed cooTowSpeCon(controllerType=Modelica.Blocks.Types.SimpleController.PI) "Cooling tower speed controller"; Modelica.Blocks.Sources.Sine CHWST( amplitude=2, freqHz=1/360, offset=273.15 + 5) "Chilled water supply temperature"; Modelica.Blocks.Sources.Constant CWSTSet(k=273.15 + 20) "Condenser water supply temperature setpoint"; Modelica.Blocks.Sources.Sine CWST( amplitude=5, freqHz=1/360, offset=273.15 + 20) "Condenser water supply temperature"; Modelica.Blocks.Sources.Constant CHWSTSet(k=273.15 + 6) "Chilled water supply temperature setpoint"; Modelica.Blocks.Sources.IntegerTable cooMod(table=[0,1; 360,2; 720,3]) "Cooling mode"; equation connect(CWSTSet.y, cooTowSpeCon.TCWSupSet); connect(CHWSTSet.y, cooTowSpeCon.TCHWSupSet); connect(CWST.y, cooTowSpeCon.TCWSup); connect(CHWST.y, cooTowSpeCon.TCHWSup); connect(cooMod.y, cooTowSpeCon.cooMod); end CoolingTowerSpeed;

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.Reheat Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.Reheat

Test model for reheater controller

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.Reheat

Information

This example tests the reheater controller with two varing input error signals.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Reheat "Test model for reheater controller" extends Modelica.Icons.Example; Buildings.Applications.DataCenters.ChillerCooled.Controls.Reheat heaCon( yValSwi=0.2, yValDeaBan=0.1, dTSwi=0, dTDeaBan=0.5, tWai=60) "Heater on/off controller"; Modelica.Blocks.Sources.Sine sig1( amplitude=0.3, offset=0.3, freqHz=1/1200) "Signal 1"; Modelica.Blocks.Sources.Sine sig2( amplitude=3, offset=273.15 + 15, freqHz=1/1200, phase=1.0471975511966) "Signal 2"; Modelica.Blocks.Sources.Constant set1(k=0.2) "Set point for signal 1"; Modelica.Blocks.Sources.Constant set2(k=273.15 + 16) "Set point for signal 2"; Modelica.Blocks.Math.Add add1(k1=+1, k2=-1) "Error between signal 1 and setpoint 1"; Modelica.Blocks.Math.Add add2(k1=+1, k2=-1) "Error between signal 2 and setpoint 2"; equation connect(sig1.y, add1.u1); connect(set1.y, add1.u2); connect(add1.y, heaCon.yVal); connect(sig2.y, add2.u1); connect(set2.y, add2.u2); connect(add2.y,heaCon.dT); end Reheat;

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.VariableSpeedPumpStage Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.VariableSpeedPumpStage

Test the model ChillerWSE.Examples.BaseClasses.VariableSpeedPumpStageControl

Buildings.Applications.DataCenters.ChillerCooled.Controls.Validation.VariableSpeedPumpStage

Information

This model test the staging controller for variable-speed pumps. The staging controller is located in Buildings.Applications.DataCenters.ChillerCooled.Controls.VariableSpeedPumpStage.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
MassFlowRatem_flow_nominal100Nominal mass flowrate [kg/s]

Modelica definition

model VariableSpeedPumpStage "Test the model ChillerWSE.Examples.BaseClasses.VariableSpeedPumpStageControl" extends Modelica.Icons.Example; parameter Modelica.SIunits.MassFlowRate m_flow_nominal=100 "Nominal mass flowrate"; Buildings.Applications.DataCenters.ChillerCooled.Controls.VariableSpeedPumpStage varSpePumSta(tWai=30, m_flow_nominal=m_flow_nominal, criPoiSpe=0.6) "Staging controller for variable speed pumps"; Modelica.Blocks.Sources.Pulse speSig( amplitude=0.8, period=180, offset=0.2) "Speed signal"; Modelica.Blocks.Sources.Sine masFlo( offset=0.5*m_flow_nominal, freqHz=1/360, amplitude=0.5*m_flow_nominal) "Mass flowrate"; equation connect(speSig.y, varSpePumSta.speSig); connect(masFlo.y, varSpePumSta.masFloPum); end VariableSpeedPumpStage;