diff --git a/Buildings/Controls/OBC/FDE/DOAS/CoolingCoil.mo b/Buildings/Controls/OBC/FDE/DOAS/CoolingCoil.mo index bf7af487fa5..0c5dc458622 100644 --- a/Buildings/Controls/OBC/FDE/DOAS/CoolingCoil.mo +++ b/Buildings/Controls/OBC/FDE/DOAS/CoolingCoil.mo @@ -15,10 +15,10 @@ block CoolingCoil "This block commands the cooling coil." parameter Real erwDPadj( final unit = "K", - final displayUnit = "degC", - final quantity = "ThermodynamicTemperature") = 5 + final quantity = "TemperatureDifference") = 5 "Value subtracted from ERW supply air dewpoint."; + // ---inputs--- Buildings.Controls.OBC.CDL.Interfaces.RealInput saT( final unit = "K", @@ -75,7 +75,7 @@ block CoolingCoil "This block commands the cooling coil." Buildings.Controls.OBC.CDL.Reals.Switch swi "Logical switch outputs supply air PI value when fan is proven on." - annotation(Placement(transformation(extent = {{14, -54}, {34, -34}}))); + annotation(Placement(transformation(extent={{22,-50},{42,-30}}))); Buildings.Controls.OBC.CDL.Reals.Switch swi1 "Logical switch passes different PI calculations to yCC based on dehumidification mode." @@ -85,24 +85,27 @@ block CoolingCoil "This block commands the cooling coil." "Logical AND;true when dehumidification is on and supply fan is proven on." annotation(Placement(transformation(extent = {{-20, -14}, {0, 8}}))); - Buildings.Controls.OBC.CDL.Reals.PID conPID2 annotation(Placement(visible = true, transformation(origin = {-62, -42}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); + Buildings.Controls.OBC.CDL.Reals.PID conPID2(reverseActing=false) + annotation(Placement(visible = true, transformation(origin = {-62, -42}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); - Buildings.Controls.OBC.CDL.Reals.PID conPID + Buildings.Controls.OBC.CDL.Reals.PID conPID(reverseActing=false) annotation(Placement(visible = true, transformation(origin = {16, 78}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); Buildings.Controls.OBC.CDL.Psychrometrics.DewPoint_TDryBulPhi dewPoi + "Calculates dewpoint temperature for ERW return air" annotation(Placement(visible = true, transformation(origin = {-66, 48}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); Buildings.Controls.OBC.CDL.Reals.AddParameter addPar( - p = -erwDPadj) + p = -erwDPadj) "Ensures setpoint is below calculated dewpoint" annotation(Placement(visible = true, transformation(origin = {-36, 36}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation connect(con0.y, swi.u3) annotation ( - Line(points = {{2, -52}, {12, -52}}, color = {0, 0, 127})); + Line(points={{2,-52},{18,-52},{18,-48},{20,-48}}, + color = {0, 0, 127})); connect(swi.u2, supFanProof) annotation ( - Line(points = {{12, -44}, {6, -44}, {6, -96}, {-122, -96}}, color = {255, 0, 255})); + Line(points={{20,-40},{6,-40},{6,-96},{-122,-96}}, color = {255, 0, 255})); connect(and2.u1, dehumMode) annotation ( Line(points = {{-22, -3}, {-78, -3}, {-78, -4}, {-122, -4}}, color = {255, 0, 255})); @@ -117,7 +120,7 @@ equation Line(points = {{80, 76}, {122, 76}}, color = {0, 0, 127})); connect(swi.y, swi1.u3) annotation ( - Line(points = {{36, -44}, {46, -44}, {46, 68}, {56, 68}}, color = {0, 0, 127})); + Line(points={{44,-40},{46,-40},{46,68},{56,68}}, color = {0, 0, 127})); connect(saT, conPID2.u_m) annotation ( Line(points = {{-122, -36}, {-90, -36}, {-90, -54}, {-62, -54}}, color = {0, 0, 127})); @@ -126,7 +129,7 @@ equation Line(points = {{-122, -66}, {-80, -66}, {-80, -42}, {-74, -42}}, color = {0, 0, 127})); connect(conPID2.y, swi.u1) annotation ( - Line(points = {{-50, -42}, {-17, -42}, {-17, -36}, {12, -36}}, color = {0, 0, 127})); + Line(points={{-50,-42},{-17,-42},{-17,-32},{20,-32}}, color = {0, 0, 127})); connect(ccT, conPID.u_m) annotation ( Line(points = {{-122, 84}, {-22, 84}, {-22, 66}, {16, 66}}, color = {0, 0, 127})); diff --git a/Buildings/Controls/OBC/FDE/DOAS/Dewpoint.mo b/Buildings/Controls/OBC/FDE/DOAS/Dewpoint.mo index 2d991b09a5e..1b6daebb36b 100644 --- a/Buildings/Controls/OBC/FDE/DOAS/Dewpoint.mo +++ b/Buildings/Controls/OBC/FDE/DOAS/Dewpoint.mo @@ -1,201 +1,118 @@ within Buildings.Controls.OBC.FDE.DOAS; -block Dewpoint - "Calculates dewpoint temperature from Tdb and relative humidity." - // ---inputs--- - Buildings.Controls.OBC.CDL.Interfaces.RealInput relHum( - final min=0, - final max=100) - "Relative humidity sensor" - annotation (Placement(transformation(extent={{-142,52},{-102,92}}), - iconTransformation(extent={{-142,40},{-102,80}}))); - - Buildings.Controls.OBC.CDL.Interfaces.RealInput dbT( - final unit="K", - final displayUnit="degC", - final quantity="ThermodynamicTemperature") - "Dry bulb temperature sensor." - annotation (Placement(transformation(extent={{-142,12},{-102,52}}), - iconTransformation(extent={{-142,-80},{-102,-40}}))); - - // ---outputs--- - Buildings.Controls.OBC.CDL.Interfaces.RealOutput dpT( - final unit="K", - final displayUnit="degC", - final quantity="ThermodynamicTemperature") - "Dewpoint temperature" - annotation (Placement(transformation(extent={{102,-96},{142,-56}}), - iconTransformation(extent={{102,-20},{142,20}}))); - - Buildings.Controls.OBC.CDL.Reals.Log log - "Calculate natural log of input value." - annotation (Placement(transformation(extent={{-32,56},{-12,76}}))); - - Buildings.Controls.OBC.CDL.Reals.Division div - "Divide relHum by 100." - annotation (Placement(transformation(extent={{-62,56},{-42,76}}))); - - Buildings.Controls.OBC.CDL.Reals.Sources.Constant con100( - final k=100) - "Real constant 100" - annotation (Placement(transformation(extent={{-92,46},{-72,66}}))); - - Buildings.Controls.OBC.CDL.Reals.Multiply pro - "Calculate the product of dry bulb temperature (degC) and 17.27" - annotation (Placement(transformation(extent={{-30,16},{-10,36}}))); - - Buildings.Controls.OBC.CDL.Reals.Sources.Constant con1727( - final k=17.27) - "Real constant 17.27" - annotation (Placement(transformation(extent={{-62,-10},{-42,10}}))); - - Buildings.Controls.OBC.CDL.Reals.Add add2 - "Add dry bulb temperature (degC) and 237.3" - annotation (Placement(transformation(extent={{-30,-34},{-10,-14}}))); - - Buildings.Controls.OBC.CDL.Reals.Sources.Constant con2373( - final k=237.3) - "Real constant 237.3" - annotation (Placement(transformation(extent={{-62,-52},{-42,-32}}))); - - Buildings.Controls.OBC.CDL.Reals.Division div1 - "Output first input divided by second input." - annotation (Placement(transformation(extent={{0,10},{20,30}}))); - - Buildings.Controls.OBC.CDL.Reals.Add add1 - "Add two values." - annotation (Placement(transformation(extent={{30,16},{50,36}}))); - - Buildings.Controls.OBC.CDL.Reals.Division div2 - "Output first input divided by second input" - annotation (Placement(transformation(extent={{62,10},{82,30}}))); - - Buildings.Controls.OBC.CDL.Reals.Multiply pro1 - "Output product of two inputs" - annotation (Placement(transformation(extent={{4,-46},{24,-26}}))); - - Buildings.Controls.OBC.CDL.Reals.Division div3 - "Output first input divided by second input" - annotation (Placement(transformation(extent={{60,-52},{80,-32}}))); - - Buildings.Controls.OBC.CDL.Reals.Add add3 - "Output the sum of two inputs" - annotation (Placement(transformation(extent={{32,-80},{52,-60}}))); - - Buildings.Controls.OBC.CDL.Reals.Sources.Constant con1( - final k=1) - "Real constant 1" - annotation (Placement(transformation(extent={{4,-72},{24,-52}}))); - - Buildings.Controls.OBC.CDL.Reals.Add add4( - final k2=-1) - "Subtract 273.15 from dry bulb temperature." - annotation (Placement(transformation(extent={{-92,16},{-72,36}}))); - - Buildings.Controls.OBC.CDL.Reals.Sources.Constant con27315( - final k=273.15) - "Real constant 273.15" - annotation (Placement(transformation(extent={{-92,-14},{-72,6}}))); - - Buildings.Controls.OBC.CDL.Reals.Add add5 - "Add 273.15 to the final value to output dew point temperature in K" - annotation (Placement(transformation(extent={{70,-86},{90,-66}}))); - +block Dewpoint "Calculates dewpoint temperature from Tdb and relative humidity." + // ---inputs--- + Buildings.Controls.OBC.CDL.Interfaces.RealInput relHum(final min = 0, final max = 100) "Relative humidity sensor" annotation( + Placement(transformation(extent = {{-142, 52}, {-102, 92}}), iconTransformation(extent = {{-142, 40}, {-102, 80}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealInput dbT(final unit = "K", final displayUnit = "degC", final quantity = "ThermodynamicTemperature") "Dry bulb temperature sensor." annotation( + Placement(transformation(extent = {{-142, 12}, {-102, 52}}), iconTransformation(extent = {{-142, -80}, {-102, -40}}))); + // ---outputs--- + Buildings.Controls.OBC.CDL.Interfaces.RealOutput dpT(final unit = "K", final displayUnit = "degC", final quantity = "ThermodynamicTemperature") "Dewpoint temperature" annotation( + Placement(transformation(extent = {{102, -96}, {142, -56}}), iconTransformation(extent = {{102, -20}, {142, 20}}))); + Buildings.Controls.OBC.CDL.Reals.Log log "Calculate natural log of input value." annotation( + Placement(transformation(extent = {{-32, 56}, {-12, 76}}))); + Buildings.Controls.OBC.CDL.Reals.Sources.Constant con100(final k = 100) "Real constant 100" annotation( + Placement(transformation(extent = {{-92, 46}, {-72, 66}}))); + Buildings.Controls.OBC.CDL.Reals.Multiply pro "Calculate the product of dry bulb temperature (degC) and 17.27" annotation( + Placement(transformation(extent = {{-30, 16}, {-10, 36}}))); + Buildings.Controls.OBC.CDL.Reals.Sources.Constant con1727(final k = 17.27) "Real constant 17.27" annotation( + Placement(visible = true, transformation(origin = {6, 2}, extent = {{-62, -10}, {-42, 10}}, rotation = 0))); + Buildings.Controls.OBC.CDL.Reals.Add add2 "Add dry bulb temperature (degC) and 237.3" annotation( + Placement(transformation(extent = {{-30, -34}, {-10, -14}}))); + Buildings.Controls.OBC.CDL.Reals.Sources.Constant con2373(final k = 237.3) "Real constant 237.3" annotation( + Placement(transformation(extent = {{-62, -52}, {-42, -32}}))); + Buildings.Controls.OBC.CDL.Reals.Add add1 "Add two values." annotation( + Placement(transformation(extent = {{30, 16}, {50, 36}}))); + Buildings.Controls.OBC.CDL.Reals.Multiply pro1 "Output product of two inputs" annotation( + Placement(visible = true, transformation(origin = {8, 4}, extent = {{4, -46}, {24, -26}}, rotation = 0))); + Buildings.Controls.OBC.CDL.Reals.Add add3 "Output the sum of two inputs" annotation( + Placement(visible = true, transformation(origin = {0, 0}, extent = {{32, -80}, {52, -60}}, rotation = 0))); + Buildings.Controls.OBC.CDL.Reals.Sources.Constant con1(final k = 1) "Real constant 1" annotation( + Placement(transformation(extent = {{4, -72}, {24, -52}}))); + //Buildings.Controls.OBC.CDL.Reals.Add add4(final k2 = -1) "Subtract 273.15 from dry bulb temperature." annotation( + //Placement(transformation(extent = {{-92, 16}, {-72, 36}}))); + Buildings.Controls.OBC.CDL.Reals.Sources.Constant con27315(final k = 273.15) "Real constant 273.15" annotation( + Placement(visible = true, transformation(origin = {-18, -14}, extent = {{-92, -14}, {-72, 6}}, rotation = 0))); + Buildings.Controls.OBC.CDL.Reals.Add add5 "Add 273.15 to the final value to output dew point temperature in K" annotation( + Placement(transformation(extent = {{70, -86}, {90, -66}}))); + Buildings.Controls.OBC.CDL.Reals.Divide div4 "Divide relative humidity by 100" annotation( + Placement(visible = true, transformation(origin = {-52, 74}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); + CDL.Reals.Divide div "Output first input divided by second input" annotation( + Placement(visible = true, transformation(origin = {10, 14}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); + Buildings.Controls.OBC.CDL.Reals.Divide div1 "Output first input divided by second input" annotation( + Placement(visible = true, transformation(origin = {82, 20}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); + Buildings.Controls.OBC.CDL.Reals.Divide div2 annotation( + Placement(visible = true, transformation(origin = {72, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); + Buildings.Controls.OBC.CDL.Reals.Subtract sub "subtract 273.15 from dry bulb temp" annotation( + Placement(visible = true, transformation(origin = {-76, 26}, extent = {{-10, -10}, {10, 10}}, rotation = 0))); equation - connect(div.u1, relHum) annotation ( - Line(points={{-64,72},{-122,72}}, color={0,0,127})); - - connect(div.u2, con100.y) annotation ( - Line(points={{-64,60},{-68,60},{-68,56},{-70,56}},color={0,0,127})); - - connect(div.y, log.u) annotation ( - Line(points={{-40,66},{-34,66}}, color={0,0,127})); - - connect(con1727.y, pro.u2) annotation ( - Line(points={{-40,0},{-36,0},{-36,20},{-32,20}},color={0,0,127})); - - connect(con2373.y, add2.u2) annotation ( - Line(points={{-40,-42},{-36,-42},{-36,-30},{-32,-30}},color={0,0,127})); - - connect(pro.y, div1.u1) annotation ( - Line(points={{-8,26},{-2,26}}, color={0,0,127})); - - connect(add2.y, div1.u2) annotation ( - Line(points={{-8,-24},{-6,-24},{-6,14},{-2,14}},color={0,0,127})); - - connect(div1.y, add1.u2) annotation ( - Line(points={{22,20},{28,20}}, color={0,0,127})); - - connect(log.y, add1.u1) annotation ( - Line(points={{-10,66},{24,66},{24,32},{28,32}},color={0,0,127})); - - connect(add1.y, div2.u1) annotation ( - Line(points={{52,26},{60,26}}, color={0,0,127})); - - connect(con1727.y, div2.u2) annotation ( - Line(points={{-40,0},{54,0},{54,14},{60,14}},color={0,0,127})); - - connect(div2.y, pro1.u1) - annotation (Line(points={{84,20},{82,20},{82,-6},{-2,-6},{-2,-30},{2,-30}},color={0,0,127})); - - connect(con2373.y, pro1.u2) annotation ( - Line(points={{-40,-42},{2,-42}}, color={0,0,127})); - - connect(pro1.y, div3.u1) annotation ( - Line(points={{26,-36},{58,-36}}, color={0,0,127})); - - connect(div2.y, add3.u2) annotation ( - Line(points={{84,20},{82,20},{82,-6},{-2,-6},{-2,-76},{30,-76}}, color={0,0,127})); - - connect(add3.u1, con1.y) annotation ( - Line(points={{30,-64},{28,-64},{28,-62},{26,-62}},color={0,0,127})); - - connect(add3.y, div3.u2) annotation ( - Line(points={{54,-70},{56,-70},{56,-48},{58,-48}},color={0,0,127})); - - connect(con27315.y, add4.u2) annotation ( - Line(points={{-70,-4},{-70,14},{-98,14},{-98,20},{-94,20}}, color={0,0,127})); - - connect(dbT, add4.u1) annotation ( - Line(points={{-122,32},{-94,32}}, color={0,0,127})); - - connect(add4.y, pro.u1) annotation ( - Line(points={{-70,26},{-52,26},{-52,32},{-32,32}},color={0,0,127})); - - connect(add4.y, add2.u1)annotation ( - Line(points={{-70,26},{-64,26},{-64,-18},{-32,-18}},color={0,0,127})); - - connect(add5.y, dpT) annotation ( - Line(points={{92,-76},{122,-76}}, color={0,0,127})); - - connect(div3.y, add5.u1) annotation ( - Line(points={{82,-42},{86,-42},{86,-60},{64,-60},{64,-70},{68,-70}}, color={0,0,127})); - - connect(con27315.y, add5.u2) annotation ( - Line(points={{-70,-4},{-70,-68},{-22,-68},{-22,-82},{68,-82}}, color={0,0,127})); - - annotation (defaultComponentName="Dewpt", - Icon(coordinateSystem(preserveAspectRatio=false), graphics={Text(extent={{-90,180},{90,76}},lineColor={28,108,200}, textStyle={TextStyle.Bold},textString="%name"),Rectangle(extent={{-100,100},{100,-100}},lineColor={179,151,128},radius=10,fillColor={255,255,255}, - fillPattern = -FillPattern.Solid),Text(extent={{-60,66},{28,-30}},lineColor={28,108,200},fillColor={28,108,200}, - fillPattern = -FillPattern.Solid,textString="T"),Text(extent={{-28,0},{62,-60}},lineColor={28,108,200},fillColor={28,108,200}, - fillPattern = -FillPattern.Solid,textString="dp"),Text(extent={{-96,74},{-58,46}},lineColor={28,108,200},fillColor={28,108,200}, - fillPattern = -FillPattern.Solid,textString="relHum"),Text(extent={{-96,-50},{-66,-70}},lineColor={28,108,200},fillColor={28,108,200}, - fillPattern = -FillPattern.Solid,textString="dbT"),Text(extent={{64,12},{98,-12}},lineColor={28,108,200},fillColor={28,108,200}, - fillPattern = -FillPattern.Solid,textString="%dpT")}), - Diagram(coordinateSystem(preserveAspectRatio=false)), - Documentation(revisions=" + connect(con1727.y, pro.u2) annotation( + Line(points = {{-34, 2}, {-34, 20}, {-32, 20}}, color = {0, 0, 127})); + connect(con2373.y, add2.u2) annotation( + Line(points = {{-40, -42}, {-36, -42}, {-36, -30}, {-32, -30}}, color = {0, 0, 127})); + connect(log.y, add1.u1) annotation( + Line(points = {{-10, 66}, {24, 66}, {24, 32}, {28, 32}}, color = {0, 0, 127})); + connect(con2373.y, pro1.u2) annotation( + Line(points = {{-40, -42}, {-18, -42}, {-18, -38}, {10, -38}}, color = {0, 0, 127})); + connect(add3.u1, con1.y) annotation( + Line(points = {{30, -64}, {28, -64}, {28, -62}, {26, -62}}, color = {0, 0, 127})); + // connect(con27315.y, add4.u2) annotation( + //Line(points = {{-88, -18}, {-88, 14}, {-98, 14}, {-98, 20}, {-94, 20}}, color = {0, 0, 127})); + //connect(dbT, add4.u1) annotation( + // Line(points = {{-122, 32}, {-94, 32}}, color = {0, 0, 127})); + //connect(add4.y, pro.u1) annotation( + //Line(points = {{-70, 26}, {-52, 26}, {-52, 32}, {-32, 32}}, color = {0, 0, 127})); + //connect(add4.y, add2.u1) annotation( + //Line(points = {{-70, 26}, {-64, 26}, {-64, -18}, {-32, -18}}, color = {0, 0, 127})); + connect(add5.y, dpT) annotation( + Line(points = {{92, -76}, {122, -76}}, color = {0, 0, 127})); + connect(con27315.y, add5.u2) annotation( + Line(points = {{-88, -18}, {-88, -68}, {-22, -68}, {-22, -82}, {68, -82}}, color = {0, 0, 127})); + connect(relHum, div4.u1) annotation( + Line(points = {{-122, 72}, {-82, 72}, {-82, 80}, {-64, 80}}, color = {0, 0, 127})); + connect(con100.y, div4.u2) annotation( + Line(points = {{-70, 56}, {-68, 56}, {-68, 68}, {-64, 68}}, color = {0, 0, 127})); + connect(div4.y, log.u) annotation( + Line(points = {{-40, 74}, {-38, 74}, {-38, 66}, {-34, 66}}, color = {0, 0, 127})); + connect(add2.y, div.u2) annotation( + Line(points = {{-8, -24}, {-6, -24}, {-6, 8}, {-2, 8}}, color = {0, 0, 127})); + connect(pro.y, div.u1) annotation( + Line(points = {{-8, 26}, {-6, 26}, {-6, 20}, {-2, 20}}, color = {0, 0, 127})); + connect(div.y, add1.u2) annotation( + Line(points = {{22, 14}, {22, 20}, {28, 20}}, color = {0, 0, 127})); + connect(add1.y, div1.u1) annotation( + Line(points = {{52, 26}, {70, 26}}, color = {0, 0, 127})); + connect(con1727.y, div1.u2) annotation( + Line(points = {{-34, 2}, {64, 2}, {64, 14}, {70, 14}}, color = {0, 0, 127})); + connect(div1.y, add3.u2) annotation( + Line(points = {{94, 20}, {108, 20}, {108, -18}, {-6, -18}, {-6, -76}, {30, -76}}, color = {0, 0, 127})); + connect(pro1.y, div2.u1) annotation( + Line(points = {{34, -32}, {47, -32}, {47, -34}, {60, -34}}, color = {0, 0, 127})); + connect(add3.y, div2.u2) annotation( + Line(points = {{54, -70}, {54, -59}, {60, -59}, {60, -46}}, color = {0, 0, 127})); + connect(div2.y, add5.u1) annotation( + Line(points = {{84, -40}, {94, -40}, {94, -56}, {62, -56}, {62, -70}, {68, -70}}, color = {0, 0, 127})); + connect(dbT, sub.u1) annotation( + Line(points = {{-122, 32}, {-88, 32}}, color = {0, 0, 127})); + connect(con27315.y, sub.u2) annotation( + Line(points = {{-88, -18}, {-82, -18}, {-82, 6}, {-96, 6}, {-96, 20}, {-88, 20}}, color = {0, 0, 127})); + connect(sub.y, pro.u1) annotation( + Line(points = {{-64, 26}, {-50, 26}, {-50, 32}, {-32, 32}}, color = {0, 0, 127})); + connect(sub.y, add2.u1) annotation( + Line(points = {{-64, 26}, {-64, -18}, {-32, -18}}, color = {0, 0, 127})); + connect(div1.y, pro1.u1) annotation( + Line(points = {{94, 20}, {94, -8}, {2, -8}, {2, -26}, {10, -26}}, color = {0, 0, 127})); + annotation( + defaultComponentName = "Dewpt", + Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics = {Text(textColor = {28, 108, 200}, extent = {{-90, 180}, {90, 76}}, textString = "%name", textStyle = {TextStyle.Bold}), Rectangle(lineColor = {179, 151, 128}, fillColor = {255, 255, 255}, fillPattern = FillPattern.Solid, extent = {{-100, 100}, {100, -100}}, radius = 10), Text(textColor = {28, 108, 200}, extent = {{-60, 66}, {28, -30}}, textString = "T"), Text(textColor = {28, 108, 200}, extent = {{-28, 0}, {62, -60}}, textString = "dp"), Text(textColor = {28, 108, 200}, extent = {{-96, 74}, {-58, 46}}, textString = "relHum"), Text(textColor = {28, 108, 200}, extent = {{-96, -50}, {-66, -70}}, textString = "dbT"), Text(textColor = {28, 108, 200}, extent = {{64, 12}, {98, -12}}, textString = "%dpT")}), + Diagram(coordinateSystem(preserveAspectRatio = false)), + Documentation(revisions = "
This block calculates dewpoint
(dpT
) using a reduced formula that only
diff --git a/Buildings/Controls/OBC/FDE/DOAS/EnergyWheel.mo b/Buildings/Controls/OBC/FDE/DOAS/EnergyWheel.mo
index 0330a98d377..083123cde22 100644
--- a/Buildings/Controls/OBC/FDE/DOAS/EnergyWheel.mo
+++ b/Buildings/Controls/OBC/FDE/DOAS/EnergyWheel.mo
@@ -3,7 +3,7 @@ block EnergyWheel "This block commands the energy recovery wheel and associated
parameter Real recSet(
final unit = "K",
final displayUnit = "degC",
- final quantity = "ThermodynamicTemperature") = 7 +273.15
+ final quantity = "ThermodynamicTemperature") = 7
"Energy recovery set point.";
parameter Real Thys(
@@ -94,7 +94,7 @@ block EnergyWheel "This block commands the energy recovery wheel and associated
Buildings.Controls.OBC.CDL.Logical.MultiAnd mulAnd(nin=3) "Logical AND; true when fan is proven, economizer mode is off, and ERW
temperature start conditions are met."
- annotation (Placement(transformation(extent={{62,10},{82,30}})));
+ annotation (Placement(transformation(extent={{66,8},{86,28}})));
Buildings.Controls.OBC.CDL.Logical.Not not1
"Logical NOT; true when economizer mode is off."
@@ -144,13 +144,15 @@ equation
Line(points = {{-28, 50}, {-122, 50}}, color = {255, 0, 255}));
connect(mulAnd.y, erwStart)
- annotation (Line(points={{84,20},{122,20}}, color={255,0,255}));
+ annotation (Line(points={{88,18},{104,18},{104,20},{122,20}},
+ color={255,0,255}));
connect(max.y, swi.u1) annotation (
Line(points = {{-40, -68}, {64, -68}}, color = {0, 0, 127}));
- connect(mulAnd.y, swi.u2) annotation (Line(points={{84,20},{88,20},{88,-58},{
- 56,-58},{56,-76},{64,-76}}, color={255,0,255}));
+ connect(mulAnd.y, swi.u2) annotation (Line(points={{88,18},{88,-20},{92,-20},{
+ 92,-58},{58,-58},{58,-76},{64,-76}},
+ color={255,0,255}));
connect(con0.y, swi.u3) annotation (
Line(points = {{52, -84}, {64, -84}}, color = {0, 0, 127}));
@@ -169,8 +171,9 @@ equation
connect(not2.y, or2.u2) annotation (
Line(points = {{56, 50}, {58, 50}, {58, 58}, {60, 58}}, color = {255, 0, 255}));
- connect(mulAnd.y, not2.u) annotation (Line(points={{84,20},{88,20},{88,36},{
- 28,36},{28,50},{32,50}}, color={255,0,255}));
+ connect(mulAnd.y, not2.u) annotation (Line(points={{88,18},{88,20},{98,20},{98,
+ 36},{28,36},{28,50},{32,50}},
+ color={255,0,255}));
connect(or2.y, bypDam) annotation (
Line(points = {{84, 66}, {122, 66}}, color = {255, 0, 255}));
@@ -209,11 +212,11 @@ equation
connect(abs.y, hys.u)
annotation (Line(points={{-14, 2}, {-4, 2}}, color={0,0,127}));
connect(supFanProof, mulAnd.u[1]) annotation (Line(points={{-122,80},{-70,80},
- {-70,88},{20,88},{20,24.6667},{60,24.6667}}, color={255,0,255}));
- connect(not1.y, mulAnd.u[2]) annotation (Line(points={{-4,50},{10,50},{10,20},
- {60,20}}, color={255,0,255}));
+ {-70,88},{20,88},{20,22.6667},{64,22.6667}}, color={255,0,255}));
+ connect(not1.y, mulAnd.u[2]) annotation (Line(points={{-4,50},{10,50},{10,18},
+ {64,18}}, color={255,0,255}));
connect(truDel.y, mulAnd.u[3]) annotation (Line(points={{54,0},{56,0},{56,
- 15.3333},{60,15.3333}}, color={255,0,255}));
+ 13.3333},{64,13.3333}}, color={255,0,255}));
annotation (
defaultComponentName = "ERWcon",
Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics={ Rectangle(fillColor = {255, 255, 255},
diff --git a/Buildings/Controls/OBC/FDE/DOAS/HeatingCoil.mo b/Buildings/Controls/OBC/FDE/DOAS/HeatingCoil.mo
index 7363bb3a0b7..16143821b11 100644
--- a/Buildings/Controls/OBC/FDE/DOAS/HeatingCoil.mo
+++ b/Buildings/Controls/OBC/FDE/DOAS/HeatingCoil.mo
@@ -1,84 +1,83 @@
within Buildings.Controls.OBC.FDE.DOAS;
-
block HeatingCoil "This block commands the heating coil."
- parameter Real SArhcPIk = 0.0000001
+ parameter Real SArhcPIk = 0.0000001
"Heating coil SAT PI gain value k.";
-
- parameter Real SArhcPITi = 0.000025
+
+ parameter Real SArhcPITi = 0.000025
"Heating coil SAT PI time constant value Ti.";
-
+
// ---inputs---
- Buildings.Controls.OBC.CDL.Interfaces.BooleanInput supFanProof
- "True when supply fan is proven on."
+ Buildings.Controls.OBC.CDL.Interfaces.BooleanInput supFanProof
+ "True when supply fan is proven on."
annotation(Placement(transformation(extent = {{-142, -20}, {-102, 20}}), iconTransformation(extent = {{-142, -20}, {-102, 20}})));
-
- Buildings.Controls.OBC.CDL.Interfaces.RealInput saT "Supply air temperature sensor value."
+
+ Buildings.Controls.OBC.CDL.Interfaces.RealInput saT "Supply air temperature sensor value."
annotation(Placement(transformation(extent = {{-142, -60}, {-102, -20}}), iconTransformation(extent = {{-142, -70}, {-102, -30}})));
-
- Buildings.Controls.OBC.CDL.Interfaces.RealInput supHeaSP
+
+ Buildings.Controls.OBC.CDL.Interfaces.RealInput supHeaSP
"Supply air temperature heating set point." annotation(Placement(transformation(extent = {{-142, 16}, {-102, 56}}), iconTransformation(extent = {{-142, 28}, {-102, 68}})));
-
+
// ---outputs---
- Buildings.Controls.OBC.CDL.Interfaces.RealOutput yRHC "Reheat coil valve command."
+ Buildings.Controls.OBC.CDL.Interfaces.RealOutput yRHC "Reheat coil valve command."
annotation(Placement(transformation(extent = {{102, -20}, {142, 20}}), iconTransformation(extent = {{102, -20}, {142, 20}})));
-
- Buildings.Controls.OBC.CDL.Reals.Switch swi
- "Logical switch passes supply air heating set point when supply fan is proven otherwise sends 0 set point." annotation(Placement(transformation(extent = {{-20, -10}, {0, 10}})));
-
+
+ Buildings.Controls.OBC.CDL.Reals.Switch swi
+ "Logical switch passes supply air heating set point when supply fan is proven otherwise sends 0 set point." annotation(Placement(transformation(extent={{36,-12},
+ {56,8}})));
+
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con0(
- final k = 0)
- "Real constant 0"
- annotation(Placement(transformation(extent = {{-52, -28}, {-32, -8}})));
-
+ final k = 0)
+ "Real constant 0"
+ annotation(Placement(transformation(extent={{-20,-38},{0,-18}})));
+
Buildings.Controls.OBC.CDL.Reals.PID conPID1(
- Ti = SArhcPITi,
- k = SArhcPIk)
- annotation(Placement(visible = true, transformation(origin = {32, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
+ Ti = SArhcPITi,
+ k = SArhcPIk)
+ annotation(Placement(visible = true, transformation(origin={-30,24}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
+
equation
- connect(swi.u2, supFanProof) annotation(
- Line(points = {{-22, 0}, {-122, 0}}, color = {255, 0, 255}));
-
- connect(con0.y, swi.u3) annotation(
- Line(points = {{-30, -18}, {-26, -18}, {-26, -8}, {-22, -8}}, color = {0, 0, 127}));
-
- connect(swi.u1, supHeaSP) annotation(
- Line(points = {{-22, 8}, {-32, 8}, {-32, 36}, {-122, 36}}, color = {0, 0, 127}));
-
- connect(swi.y, conPID1.u_s) annotation(
- Line(points = {{2, 0}, {20, 0}}, color = {0, 0, 127}));
-
- connect(saT, conPID1.u_m) annotation(
- Line(points = {{-122, -40}, {32, -40}, {32, -12}}, color = {0, 0, 127}));
-
- connect(conPID1.y, yRHC) annotation(
- Line(points = {{44, 0}, {122, 0}}, color = {0, 0, 127}));
-
- annotation(
+ connect(swi.u2, supFanProof) annotation (
+ Line(points={{34,-2},{-62,-2},{-62,0},{-122,0}},
+ color = {255, 0, 255}));
+
+ connect(con0.y, swi.u3) annotation (
+ Line(points={{2,-28},{12,-28},{12,-12},{28,-12},{28,-10},{34,-10}},
+ color = {0, 0, 127}));
+
+ connect(saT, conPID1.u_m) annotation (
+ Line(points={{-122,-40},{-30,-40},{-30,12}}, color = {0, 0, 127}));
+
+ connect(conPID1.y, swi.u1) annotation (Line(points={{-18,24},{-4,24},{-4,6},{
+ 34,6}}, color={0,0,127}));
+ connect(supHeaSP, conPID1.u_s) annotation (Line(points={{-122,36},{-86,36},{
+ -86,32},{-50,32},{-50,24},{-42,24}}, color={0,0,127}));
+ connect(swi.y, yRHC) annotation (Line(points={{58,-2},{90,-2},{90,0},{122,0}},
+ color={0,0,127}));
+ annotation (
defaultComponentName = "Heating",
- Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics = {Rectangle(lineColor = {179, 151, 128}, fillColor = {255, 255, 255},
- fillPattern =
-FillPattern.Solid, extent = {{-100, 100}, {100, -100}}, radius = 10), Rectangle(lineColor = {238, 46, 47}, fillColor = {254, 56, 30},
- fillPattern =
-FillPattern.Solid, extent = {{-22, 68}, {6, -66}}), Rectangle(fillColor = {162, 29, 33},
- fillPattern =
-FillPattern.Solid, extent = {{-14, 58}, {68, 56}}), Ellipse(lineColor = {28, 108, 200}, fillColor = {162, 29, 33},
- fillPattern =
-FillPattern.Solid, extent = {{-16, 60}, {-10, 54}}), Rectangle(fillColor = {162, 29, 33},
- fillPattern =
-FillPattern.Solid, extent = {{-2, -56}, {80, -58}}), Ellipse(lineColor = {28, 108, 200}, fillColor = {162, 29, 33},
- fillPattern =
-FillPattern.Solid, extent = {{-4, -54}, {2, -60}}), Polygon(lineColor = {127, 0, 0}, fillColor = {255, 255, 255},
- fillPattern =
-FillPattern.Solid, points = {{42, -58}, {30, -66}, {30, -50}, {42, -58}}), Polygon(lineColor = {127, 0, 0}, fillColor = {255, 255, 255},
- fillPattern =
-FillPattern.Solid, points = {{42, -58}, {54, -66}, {54, -50}, {42, -58}}), Ellipse(lineColor = {127, 0, 0}, fillColor = {255, 255, 255},
- fillPattern =
-FillPattern.Solid, extent = {{38, -54}, {46, -62}}), Line(points = {{42, -48}, {42, -54}}, color = {127, 0, 0}), Ellipse(lineColor = {127, 0, 0}, fillColor = {255, 255, 255},
- fillPattern =
-FillPattern.Solid, extent = {{36, -32}, {48, -46}}), Rectangle(lineColor = {127, 0, 0}, fillColor = {255, 255, 255},
- fillPattern =
+ Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics={ Rectangle(lineColor = {179, 151, 128}, fillColor = {255, 255, 255},
+ fillPattern=
+FillPattern.Solid, extent = {{-100, 100}, {100, -100}}, radius = 10), Rectangle(lineColor = {238, 46, 47}, fillColor = {254, 56, 30},
+ fillPattern=
+FillPattern.Solid, extent = {{-22, 68}, {6, -66}}), Rectangle(fillColor = {162, 29, 33},
+ fillPattern=
+FillPattern.Solid, extent = {{-14, 58}, {68, 56}}), Ellipse(lineColor = {28, 108, 200}, fillColor = {162, 29, 33},
+ fillPattern=
+FillPattern.Solid, extent = {{-16, 60}, {-10, 54}}), Rectangle(fillColor = {162, 29, 33},
+ fillPattern=
+FillPattern.Solid, extent = {{-2, -56}, {80, -58}}), Ellipse(lineColor = {28, 108, 200}, fillColor = {162, 29, 33},
+ fillPattern=
+FillPattern.Solid, extent = {{-4, -54}, {2, -60}}), Polygon(lineColor = {127, 0, 0}, fillColor = {255, 255, 255},
+ fillPattern=
+FillPattern.Solid, points = {{42, -58}, {30, -66}, {30, -50}, {42, -58}}), Polygon(lineColor = {127, 0, 0}, fillColor = {255, 255, 255},
+ fillPattern=
+FillPattern.Solid, points = {{42, -58}, {54, -66}, {54, -50}, {42, -58}}), Ellipse(lineColor = {127, 0, 0}, fillColor = {255, 255, 255},
+ fillPattern=
+FillPattern.Solid, extent = {{38, -54}, {46, -62}}), Line(points = {{42, -48}, {42, -54}}, color = {127, 0, 0}), Ellipse(lineColor = {127, 0, 0}, fillColor = {255, 255, 255},
+ fillPattern=
+FillPattern.Solid, extent = {{36, -32}, {48, -46}}), Rectangle(lineColor = {127, 0, 0}, fillColor = {255, 255, 255},
+ fillPattern=
FillPattern.Solid, extent = {{36, -38}, {48, -48}}), Text(textColor = {28, 108, 200}, extent = {{-90, 180}, {90, 76}}, textString = "%name", textStyle = {TextStyle.Bold}), Text(textColor = {28, 108, 200}, extent = {{-98, 8}, {-54, -6}}, textString = "supFanProof"), Text(textColor = {28, 108, 200}, extent = {{58, 8}, {102, -6}}, textString = "yRHC"), Text(textColor = {28, 108, 200}, extent = {{-98, 54}, {-58, 44}}, textString = "supHeaSP"), Text(textColor = {28, 108, 200}, extent = {{-108, -42}, {-68, -54}}, textString = "saT")}),
Diagram(coordinateSystem(preserveAspectRatio = false)),
experiment(StopTime = 5760, __Dymola_Algorithm = "Dassl"));
diff --git a/Buildings/Controls/OBC/FDE/DOAS/SupplyFanController.mo b/Buildings/Controls/OBC/FDE/DOAS/SupplyFanController.mo
index 7e792416c89..f9d8001a91c 100644
--- a/Buildings/Controls/OBC/FDE/DOAS/SupplyFanController.mo
+++ b/Buildings/Controls/OBC/FDE/DOAS/SupplyFanController.mo
@@ -1,147 +1,150 @@
within Buildings.Controls.OBC.FDE.DOAS;
-
block SupplyFanController "This block manages start, stop, status, and speed of the supply fan."
-
+
parameter Real minDDSPset(
- min = 0,
- final unit = "Pa",
- final quantity = "PressureDifference") = 125
+ min = 0,
+ final unit = "Pa",
+ final quantity = "PressureDifference") = 125
"Minimum down duct static pressure reset value" annotation(Dialog(group = "DDSP range"));
-
+
parameter Real maxDDSPset(
- min = 0,
- final unit = "Pa",
- final quantity = "PressureDifference") = 500
+ min = 0,
+ final unit = "Pa",
+ final quantity = "PressureDifference") = 500
"Maximum down duct static pressure reset value" annotation(Dialog(group = "DDSP range"));
-
+
parameter Real cvDDSPset(
- min = 0,
- final unit = "Pa",
+ min = 0,
+ final unit = "Pa",
final quantity = "PressureDifference") = 250 "Constant volume down duct static pressure set point";
-
+
parameter Real damSet(
min = 0,
max = 1,
- final unit = "1") = 0.9
+ final unit = "1") = 0.9
"DDSP terminal damper percent open set point";
-
- parameter Boolean vvUnit = true
+
+ parameter Boolean vvUnit = true
"Set true when unit serves variable volume system.";
-
- parameter Real DampspPIk = 0.0000001
+
+ parameter Real DampspPIk = 0.0000001
"Damper position setpoint PI gain value k.";
-
- parameter Real DampspPITi = 0.000025
+
+ parameter Real DampspPITi = 0.000025
"Damper position setpoint PI time constant value Ti.";
-
+
parameter Real FSspPIk = 0.0000001 "
Fan speed set point SAT PI gain value k.";
-
- parameter Real MinFS = 0.0000001
+
+ parameter Real MinFS = 0.0000001
"Minimum Fan Speed";
-
- parameter Real FSspPITi = 0.000025
+
+ parameter Real FSspPITi = 0.000025
"Fan speed set point SAT PI time constant value Ti.";
// ---inputs---
- Buildings.Controls.OBC.CDL.Interfaces.BooleanInput occ
- "True when occupied mode is active"
+ Buildings.Controls.OBC.CDL.Interfaces.BooleanInput occ
+ "True when occupied mode is active"
annotation(Placement(transformation(extent = {{-142, 60}, {-102, 100}}), iconTransformation(extent = {{-140, 50}, {-100, 90}})));
-
- Buildings.Controls.OBC.CDL.Interfaces.RealInput mostOpenDam if vvUnit
- "Most open damper position from all terminal units served."
+
+ Buildings.Controls.OBC.CDL.Interfaces.RealInput mostOpenDam if vvUnit
+ "Most open damper position from all terminal units served."
annotation(Placement(transformation(extent = {{-142, -24}, {-102, 16}}), iconTransformation(extent = {{-140, 14}, {-100, 54}})));
-
- Buildings.Controls.OBC.CDL.Interfaces.BooleanInput supFanStatus
- "True when supply fan is proven on."
+
+ Buildings.Controls.OBC.CDL.Interfaces.BooleanInput supFanStatus
+ "True when supply fan is proven on."
annotation(Placement(transformation(extent = {{-142, 22}, {-102, 62}}), iconTransformation(extent = {{-140, -56}, {-100, -16}})));
-
- Buildings.Controls.OBC.CDL.Interfaces.RealInput DDSP "Down duct static pressure measurement."
+
+ Buildings.Controls.OBC.CDL.Interfaces.RealInput DDSP "Down duct static pressure measurement."
annotation(Placement(transformation(extent = {{-142, -106}, {-102, -66}}), iconTransformation(extent = {{-140, -92}, {-100, -52}})));
// ---outputs---
- Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput supFanStart
- "Command supply fan to start when true."
+ Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput supFanStart
+ "Command supply fan to start when true."
annotation(Placement(transformation(extent = {{102, 60}, {142, 100}}), iconTransformation(extent = {{100, 32}, {140, 72}})));
-
- Buildings.Controls.OBC.CDL.Interfaces.RealOutput supFanSpeed
- "Supply fan speed command"
+
+ Buildings.Controls.OBC.CDL.Interfaces.RealOutput supFanSpeed
+ "Supply fan speed command"
annotation(Placement(transformation(extent = {{102, -50}, {142, -10}}), iconTransformation(extent = {{100, -64}, {140, -24}})));
-
+
Buildings.Controls.OBC.CDL.Reals.Sources.Constant dampSet(
- k = damSet) if vvUnit
- "Most open damper position set point."
+ k = damSet) if vvUnit
+ "Most open damper position set point."
annotation(Placement(transformation(extent = {{-98, 4}, {-78, 24}})));
-
+
Buildings.Controls.OBC.CDL.Reals.Sources.Constant cvDDSPsetpt(
- final k = cvDDSPset) if not vvUnit
+ final k = cvDDSPset) if not vvUnit
"DDSP set point for constant volume systems." annotation(Placement(transformation(extent = {{-72, -64}, {-52, -44}})));
-
- Buildings.Controls.OBC.CDL.Reals.Switch swi
- "Swtich passes fan speed set point when true; 0 when false."
+
+ Buildings.Controls.OBC.CDL.Reals.Switch swi
+ "Swtich passes fan speed set point when true; 0 when false."
annotation(Placement(transformation(extent = {{14, -40}, {34, -20}})));
-
+
Buildings.Controls.OBC.CDL.Reals.Sources.Constant con0(
- k = MinFS)
- "Real constant 0"
+ k = MinFS)
+ "Real constant 0"
annotation(Placement(transformation(extent = {{-26, -64}, {-6, -44}})));
-
+
Buildings.Controls.OBC.CDL.Reals.PID DamperSPPI(
- Ti = DampspPITi,
- k = DampspPIk) if vvUnit
+ Ti = DampspPITi,
+ k = DampspPIk,
+ yMax=maxDDSPset,
+ yMin=minDDSPset,
+ reverseActing=false) if
+ vvUnit
annotation(Placement(visible = true, transformation(origin = {-38, 22}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
+
Buildings.Controls.OBC.CDL.Reals.PID FanSpeedSPPI(
- Ti = FSspPITi,
- k = FSspPIk)
+ Ti = FSspPITi,
+ k = FSspPIk)
annotation(Placement(visible = true, transformation(origin = {62, -30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
- Buildings.Controls.OBC.CDL.Logical.Timer
- tim(t = 300)
+
+ Buildings.Controls.OBC.CDL.Logical.Timer
+ tim(t = 300)
annotation(Placement(visible = true, transformation(origin = {-8, 88}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
-
+
equation
- connect(con0.y, swi.u3) annotation(
+ connect(con0.y, swi.u3) annotation (
Line(points = {{-4, -54}, {4, -54}, {4, -38}, {12, -38}}, color = {0, 0, 127}));
-
- connect(supFanStatus, swi.u2) annotation(
+
+ connect(supFanStatus, swi.u2) annotation (
Line(points = {{-122, 42}, {0, 42}, {0, -30}, {12, -30}}, color = {255, 0, 255}));
-
- connect(cvDDSPsetpt.y, swi.u1) annotation(
+
+ connect(cvDDSPsetpt.y, swi.u1) annotation (
Line(points = {{-50, -54}, {-34, -54}, {-34, -22}, {12, -22}}, color = {0, 0, 127}));
-
- connect(dampSet.y, DamperSPPI.u_s) annotation(
+
+ connect(dampSet.y, DamperSPPI.u_s) annotation (
Line(points = {{-76, 14}, {-71, 14}, {-71, 22}, {-50, 22}}, color = {0, 0, 127}));
-
- connect(mostOpenDam, DamperSPPI.u_m) annotation(
+
+ connect(mostOpenDam, DamperSPPI.u_m) annotation (
Line(points = {{-122, -4}, {-38, -4}, {-38, 10}}, color = {0, 0, 127}));
-
- connect(DamperSPPI.y, swi.u1) annotation(
+
+ connect(DamperSPPI.y, swi.u1) annotation (
Line(points = {{-26, 22}, {-26, -22}, {12, -22}}, color = {0, 0, 127}));
-
- connect(swi.y, FanSpeedSPPI.u_s) annotation(
+
+ connect(swi.y, FanSpeedSPPI.u_s) annotation (
Line(points = {{36, -30}, {50, -30}}, color = {0, 0, 127}));
-
- connect(DDSP, FanSpeedSPPI.u_m) annotation(
+
+ connect(DDSP, FanSpeedSPPI.u_m) annotation (
Line(points = {{-122, -86}, {62, -86}, {62, -42}}, color = {0, 0, 127}));
-
- connect(FanSpeedSPPI.y, supFanSpeed) annotation(
+
+ connect(FanSpeedSPPI.y, supFanSpeed) annotation (
Line(points = {{74, -30}, {122, -30}}, color = {0, 0, 127}));
-
- connect(occ, tim.u) annotation(
+
+ connect(occ, tim.u) annotation (
Line(points = {{-122, 80}, {-69, 80}, {-69, 88}, {-20, 88}}, color = {255, 0, 255}));
-
- connect(tim.passed, supFanStart) annotation(
+
+ connect(tim.passed, supFanStart) annotation (
Line(points = {{4, 80}, {122, 80}}, color = {255, 0, 255}));
-
- annotation(
+
+ annotation (
defaultComponentName = "SFcon",
- Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics = {Rectangle(lineColor = {179, 151, 128}, fillColor = {255, 255, 255},
- fillPattern =
-FillPattern.Solid, extent = {{-100, 100}, {100, -100}}, radius = 10), Rectangle(lineColor = {162, 29, 33}, fillColor = {255, 255, 255},
- fillPattern =
-FillPattern.Solid, extent = {{-8, 40}, {54, -14}}), Text(textColor = {28, 108, 200}, extent = {{-90, 180}, {90, 76}}, textString = "%name", textStyle = {TextStyle.Bold}), Ellipse(lineColor = {162, 29, 33}, fillColor = {255, 255, 255},
- fillPattern =
-FillPattern.Solid, extent = {{-54, 40}, {28, -42}}), Ellipse(lineColor = {162, 29, 33}, fillColor = {255, 255, 255},
- fillPattern =
+ Icon(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}}), graphics={ Rectangle(lineColor = {179, 151, 128}, fillColor = {255, 255, 255},
+ fillPattern=
+FillPattern.Solid, extent = {{-100, 100}, {100, -100}}, radius = 10), Rectangle(lineColor = {162, 29, 33}, fillColor = {255, 255, 255},
+ fillPattern=
+FillPattern.Solid, extent = {{-8, 40}, {54, -14}}), Text(textColor = {28, 108, 200}, extent = {{-90, 180}, {90, 76}}, textString = "%name", textStyle = {TextStyle.Bold}), Ellipse(lineColor = {162, 29, 33}, fillColor = {255, 255, 255},
+ fillPattern=
+FillPattern.Solid, extent = {{-54, 40}, {28, -42}}), Ellipse(lineColor = {162, 29, 33}, fillColor = {255, 255, 255},
+ fillPattern=
FillPattern.Solid, extent = {{-24, 12}, {0, -12}}), Text(textColor = {28, 108, 200}, extent = {{-108, 78}, {-64, 62}}, textString = "occ"), Text(textColor = {28, 108, 200}, extent = {{-100, -30}, {-58, -44}}, textString = "Status"), Text(textColor = {28, 108, 200}, extent = {{62, 60}, {106, 44}}, textString = "Start"), Text(textColor = {28, 108, 200}, extent = {{56, 8}, {106, -8}}, textString = "Proof"), Text(textColor = {28, 108, 200}, extent = {{-102, -66}, {-60, -78}}, textString = "DDSP"), Text(textColor = {28, 108, 200}, extent = {{56, -36}, {106, -52}}, textString = "Speed"), Line(points = {{-54, 54}, {-10, 52}, {-50, 52}}, color = {0, 127, 0}, pattern = LinePattern.None), Line(points = {{-52, 50}, {-2, 48}, {30, 54}, {-26, 68}, {134, 70}, {148, 22}, {152, 42}}, color = {0, 127, 0}, pattern = LinePattern.None), Line(points = {{-68, 72}, {6, 72}}, color = {0, 127, 0}, pattern = LinePattern.None), Line(points = {{-52, 70}, {6, 66}, {-28, 66}}, color = {0, 127, 0}, pattern = LinePattern.None), Line(points = {{42, 60}, {36, 54}, {28, 70}, {42, 62}}, color = {0, 127, 0}, pattern = LinePattern.None), Text(textColor = {28, 108, 200}, extent = {{-96, 44}, {-52, 28}}, textString = "openDam")}),
Diagram(coordinateSystem(preserveAspectRatio = false, extent = {{-100, -100}, {100, 100}})),
Documentation(revisions = "
diff --git a/Buildings/Controls/OBC/FDE/DOAS/Validation/CoolingCoil.mo b/Buildings/Controls/OBC/FDE/DOAS/Validation/CoolingCoil.mo
index 93bd2668781..74090c527bf 100644
--- a/Buildings/Controls/OBC/FDE/DOAS/Validation/CoolingCoil.mo
+++ b/Buildings/Controls/OBC/FDE/DOAS/Validation/CoolingCoil.mo
@@ -7,16 +7,16 @@ model CoolingCoil "This model simulates CoolingCoil"
final quantity="ThermodynamicTemperature")=5
"Value subtracted from ERW supply air dewpoint.";
- Buildings.Controls.OBC.FDE.DOAS.CoolingCoil Cooling(
- erwDPadj=278.15)
+ Buildings.Controls.OBC.FDE.DOAS.CoolingCoil Cooling(erwDPadj(displayUnit="K")
+ = 5)
annotation (Placement(transformation(extent={{48,-24},{68,-4}})));
-
+
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse SFproof(
width=0.8,
period=5760,
- startTime=300)
+ shift=300)
annotation (Placement(transformation(extent={{-62,60},{-42,80}})));
-
+
Buildings.Controls.OBC.CDL.Reals.Sources.Sin saTGen(
amplitude=3,
freqHz=1/4800,
@@ -24,7 +24,7 @@ model CoolingCoil "This model simulates CoolingCoil"
offset=295,
startTime=0)
annotation (Placement(transformation(extent={{-26,40},{-6,60}})));
-
+
Buildings.Controls.OBC.CDL.Reals.Sources.Sin ccTGen(
amplitude=3,
freqHz=1/4800,
@@ -32,20 +32,20 @@ model CoolingCoil "This model simulates CoolingCoil"
offset=293,
startTime=0)
annotation (Placement(transformation(extent={{-60,-28},{-40,-8}})));
-
+
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse dehumMode(
width=0.5,
period=4700,
- startTime=1000)
+ shift=1000)
annotation (Placement(transformation(extent={{-26,-6},{-6,14}})));
-
+
Buildings.Controls.OBC.CDL.Reals.Sources.Sin supCooGen(
amplitude=2,
freqHz=1/3100,
offset=293,
startTime=12)
annotation (Placement(transformation(extent={{-62,16},{-42,36}})));
-
+
Buildings.Controls.OBC.CDL.Reals.Sources.Sin erwTGen(
amplitude=3,
freqHz=1/4800,
@@ -53,45 +53,45 @@ model CoolingCoil "This model simulates CoolingCoil"
offset=294,
startTime=0)
annotation (Placement(transformation(extent={{-60,-66},{-40,-46}})));
-
+
Buildings.Controls.OBC.CDL.Reals.Sources.Sin erwHumGen(
- amplitude=10,
+ amplitude=0.25,
freqHz=1/3600,
- offset=60,
+ offset=0.5,
startTime=1250)
annotation (Placement(transformation(extent={{-26,-48},{-6,-28}})));
-
+
equation
connect(SFproof.y, Cooling.supFanProof) annotation (
Line(points={{-40,70},{18,70},{18,-5.6},{45.8,-5.6}}, color={255,0,255}));
-
+
connect(saTGen.y, Cooling.saT) annotation (
Line(points={{-4,50},{12,50},{12,-8.4},{45.8,-8.4}},
color={0,0,127}));
-
+
connect(ccTGen.y, Cooling.ccT) annotation (
Line(points={{-38,-18},{14,-18},{14,-17.2},{45.8,-17.2}}, color={0,0,127}));
-
+
connect(dehumMode.y, Cooling.dehumMode) annotation (
Line(points={{-4,4},{0,4},{0,-14.6},{45.8,-14.6}}, color={255,0,255}));
-
+
connect(supCooGen.y, Cooling.supCooSP) annotation (
Line(points={{-40,26},{6,26},{6,-11.2},{45.8,-11.2}}, color={0,0,127}));
-
+
connect(erwHumGen.y, Cooling.erwHum) annotation (
Line(points={{-4,-38},{14,-38},{14,-19.8},{45.8,-19.8}},color={0,0,127}));
-
+
connect(erwTGen.y, Cooling.erwT) annotation (
Line(points={{-38,-56},{18,-56},{18,-22.4},{45.8,-22.4}}, color={0,0,127}));
-
+
annotation (
Icon(coordinateSystem(preserveAspectRatio=false), graphics={Ellipse(lineColor = {75,138,73},
fillColor={255,255,255},
- fillPattern =
+ fillPattern=
FillPattern.Solid,extent={{-100,-100},{100,100}}),
Polygon(lineColor = {0,0,255},fillColor = {75,138,73},
pattern = LinePattern.None,
- fillPattern =
+ fillPattern=
FillPattern.Solid,
points={{-36,60},{64,0},{-36,-60},{-36,60}})}),
Diagram(coordinateSystem(preserveAspectRatio=false)),
@@ -108,5 +108,7 @@ This example simulates
Buildings.Controls.OBC.FDE.DOAS.CoolingCoil.