Package containing validation models for fan coil unit subsequences
Information
This package contains the validation models for the fan coil unit subsequences.
Package Content
| Name |
Description |
FanSpeed
|
Validation model for fan speed subsequence |
PlantRequests
|
Validation model for subsequence for calculating the plant requests |
SupplyAirTemperature
|
Validation model for supply air temperature setpoint subsequence |
Validation model for fan speed subsequence
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.FanSpeed.
Each of the six instances of the controller represents operation with different
inputs for heating and cooling loop signals, as well as the operating mode
and fan proven on signal, and different configuration
parameters of fan coil unit with presence or absence of heating and cooling
coils, as described by the comment for each instance.
Modelica definition
block FanSpeed
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.FanSpeed fanSpe(
have_cooCoi=true,
have_heaCoi=true)
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.FanSpeed fanSpe2(
have_cooCoi=true,
have_heaCoi=true)
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.FanSpeed fanSpe1(
have_cooCoi=true,
have_heaCoi=true)
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.FanSpeed fanSpe3(
have_cooCoi=true,
have_heaCoi=false)
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.FanSpeed fanSpe4(
have_cooCoi=false,
have_heaCoi=true)
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.FanSpeed fanSpe5(
have_cooCoi=false,
have_heaCoi=false)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp ram(
height=6,
duration=70,
offset=1)
;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt
;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul(
period=100)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sin(
freqHz=1/50)
;
Buildings.Controls.OBC.CDL.Reals.Abs abs
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con(
k=0)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con1(
k=1)
;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1
;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul1(
period=100)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con2(
k=0)
;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt2
;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul2(
period=100)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sin2(
freqHz=1/50)
;
Buildings.Controls.OBC.CDL.Reals.Abs abs2
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con3(
k=0)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con4(
k=1)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con5(
k=0.75)
;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt3
;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul3(
period=100)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sin1(
freqHz=1/50)
;
Buildings.Controls.OBC.CDL.Reals.Abs abs1
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con7(
k=1)
;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt4
;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul4(
period=100)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sin3(
freqHz=1/50)
;
Buildings.Controls.OBC.CDL.Reals.Abs abs3
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con8(
k=1)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp ram1(
height=6,
duration=70,
offset=1)
;
Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt5
;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul5(
period=100)
;
equation
connect(reaToInt.y, fanSpe.opeMod);
connect(booPul.y, fanSpe.u1FanPro);
connect(sin.y, abs.u);
connect(abs.y, fanSpe.uHea);
connect(con.y, fanSpe.uCoo);
connect(con1.y, reaToInt.u);
connect(reaToInt1.y, fanSpe2.opeMod);
connect(booPul1.y, fanSpe2.u1FanPro);
connect(con2.y, fanSpe2.uCoo);
connect(ram.y, reaToInt1.u);
connect(reaToInt2.y,fanSpe1. opeMod);
connect(booPul2.y,fanSpe1. u1FanPro);
connect(sin2.y, abs2.u);
connect(con4.y, reaToInt2.u);
connect(con3.y,fanSpe1. uHea);
connect(abs2.y,fanSpe1. uCoo);
connect(con5.y, fanSpe2.uHea);
connect(reaToInt3.y,fanSpe3. opeMod);
connect(booPul3.y,fanSpe3. u1FanPro);
connect(sin1.y,abs1. u);
connect(con7.y,reaToInt3. u);
connect(abs1.y,fanSpe3. uCoo);
connect(reaToInt4.y, fanSpe4.opeMod);
connect(booPul4.y, fanSpe4.u1FanPro);
connect(sin3.y, abs3.u);
connect(abs3.y, fanSpe4.uHea);
connect(con8.y, reaToInt4.u);
connect(reaToInt5.y, fanSpe5.opeMod);
connect(booPul5.y, fanSpe5.u1FanPro);
connect(ram1.y, reaToInt5.u);
end FanSpeed;
Validation model for subsequence for calculating the plant requests
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.PlantRequests
for fan coil units. The three instances of the controller are as follows:
-
plaReq represents a controller instance for a system with both
heating and cooling coils.
-
plaReq1 represents a controller instance for a system with just a
cooling coil.
-
plaReq2 represents a controller instance for a system with just a
heating coil.
Each instance is subjected to an increasing deviation of the measured supply
temperature TAirSup from the supply temperature setpoint TSupSet
that results in an increasing number of requests from the controllers.
Modelica definition
model PlantRequests
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.PlantRequests plaReq
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.PlantRequests plaReq1(
have_hotWatCoi=false)
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.PlantRequests plaReq2(
have_chiWatCoi=false)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Pulse fanSpe(
width=0.8,
period=3600)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Pulse fanSpe1(
width=0.8,
period=3600)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Pulse fanSpe2(
width=0.8,
period=3600)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp supTem(
height=16,
offset=273.15 + 15,
duration=3600)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp supTemSet(
height=6,
offset=273.15 + 14.5,
duration=3600)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp cooCoi(
height=-0.3,
offset=0.96,
duration=3600,
startTime=1000)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp heaCoi(
height=-0.3,
offset=0.96,
duration=3600,
startTime=1000)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp supTem1(
height=8,
offset=273.15 + 12,
duration=3600)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp supTemSet1(
height=25,
offset=273.15 + 20,
duration=3600)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant cooCoi1(
k=0)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp supTem3(
height=8,
offset=273.15 + 15,
duration=3600)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp supTemSet2(
height=6,
offset=273.15 + 14.5,
duration=3600)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp heaCoi2(
height=-0.3,
offset=0.96,
duration=3600,
startTime=1000)
;
equation
connect(supTem.y, plaReq1.TAirSup);
connect(cooCoi.y, plaReq1.uCooCoiSet);
connect(supTem1.y, plaReq.TAirSup);
connect(cooCoi1.y, plaReq.uCooCoiSet);
connect(heaCoi.y, plaReq.uHeaCoiSet);
connect(supTemSet1.y, plaReq.TAirSupSet);
connect(supTemSet.y, plaReq1.TAirSupSet);
connect(fanSpe.y, plaReq.uFan);
connect(fanSpe1.y, plaReq1.uFan);
connect(supTem3.y, plaReq2.TAirSup);
connect(supTemSet2.y, plaReq2.TAirSupSet);
connect(fanSpe2.y, plaReq2.uFan);
connect(heaCoi2.y, plaReq2.uHeaCoiSet);
end PlantRequests;
Validation model for supply air temperature setpoint subsequence
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.SupplyAirTemperature.
Each of the four instances of the controller represents operation with different
inputs for heating and cooling loop signals, and different configuration
parameters of fan coil unit with presence or absence of heating and cooling
coils, as described in the instance comments.
Modelica definition
block SupplyAirTemperature
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.SupplyAirTemperature
TSupAir(
have_cooCoi=true,
have_heaCoi=true)
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.SupplyAirTemperature
TSupAir3(
have_cooCoi=true,
have_heaCoi=false)
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.SupplyAirTemperature
TSupAir2(
have_cooCoi=false,
have_heaCoi=true)
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.SupplyAirTemperature
TSupAir1(
have_cooCoi=true,
have_heaCoi=true)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sin(
amplitude=20,
freqHz=1/50,
offset=273.15 + 23)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sin3(
amplitude=20,
freqHz=1/50,
offset=273.15 + 23)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sin5(
amplitude=0.5,
freqHz=1/100,
offset=0.5)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sin6(
amplitude=20,
freqHz=1/50,
offset=273.15 + 23)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sin8(
amplitude=0.5,
freqHz=1/100,
offset=0.5)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sin4(
amplitude=20,
freqHz=1/50,
offset=273.15 + 23)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con(
k=273.15 + 21)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con1(
k=273.15 + 25)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con2(
k=273.15 + 21)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con3(
k=273.15 + 25)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con4(
k=273.15 + 21)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con6(
k=273.15 + 25)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con5(
k=0.25)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con7(
k=0)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con8(
k=0)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con9(
k=0.25)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant con10(
k=true)
;
equation
connect(sin.y, TSupAir.TAirSup);
connect(sin6.y, TSupAir2.TAirSup);
connect(sin8.y, TSupAir2.uHea);
connect(sin4.y,TSupAir1. TAirSup);
connect(con.y,TSupAir.TZonHeaSet);
connect(con1.y,TSupAir.TZonCooSet);
connect(con2.y,TSupAir1.TZonHeaSet);
connect(con3.y,TSupAir1.TZonCooSet);
connect(con4.y,TSupAir2.TZonHeaSet);
connect(con6.y,TSupAir3.TZonCooSet);
connect(con5.y, TSupAir.uHea);
connect(con7.y, TSupAir1.uHea);
connect(con8.y, TSupAir.uCoo);
connect(con9.y, TSupAir1.uCoo);
connect(sin5.y, TSupAir3.uCoo);
connect(sin3.y, TSupAir3.TAirSup);
connect(con10.y, TSupAir.u1Fan);
connect(con10.y, TSupAir1.u1Fan);
connect(con10.y, TSupAir2.u1Fan);
connect(con10.y, TSupAir3.u1Fan);
end SupplyAirTemperature;