diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/CondensationControl.mo b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/CondensationControl.mo new file mode 100644 index 00000000000..db9b361dc15 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/CondensationControl.mo @@ -0,0 +1,238 @@ +within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints; +block CondensationControl + "Sequence to calculate setpoint limits for condensation control in non-condesing boilers" + + parameter Boolean have_priOnl = false + "True: Primary-only plant; False: Primary-secondary plant"; + + parameter Boolean have_varPriPum = true + "True: Variable speed pumps in primary loop; False: Constant speed pumps in primary loop" + annotation(Evaluate=true,Dialog(enable=(not have_priOnl))); + + parameter Integer nSta=5 + "Number of stages"; + + parameter Real TRetSet( + final unit="K", + final displayUnit="K", + final quantity="ThermodynamicTemperature") = 60 + "Minimum hot water return temperature for optimal non-condensing boiler performance"; + + parameter Real TRetMinAll( + final unit="K", + final displayUnit="K", + final quantity="ThermodynamicTemperature") = 57.2 + "Minimum allowed hot water return temperature for non-condensing boiler"; + + parameter Real minSecPumSpe( + final unit="1", + final displayUnit="1", + final min=0, + final max=1) = 0 + "Minimum secondary pump speed"; + + parameter Real minPriPumSpeSta[nSta]( + final unit="1", + final displayUnit="1", + final min=0, + final max=1) = {0,0,0,0,0} + "Vector of minimum primary pump speed for each stage"; + + Buildings.Controls.OBC.CDL.Interfaces.IntegerInput uCurSta + "Current stage" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}), + iconTransformation(extent={{-140,-20},{-100,20}}))); + + Buildings.Controls.OBC.CDL.Interfaces.IntegerInput uStaTyp[nSta] + "Stage type vector" + annotation (Placement(transformation(extent={{-140,-90},{-100,-50}}), + iconTransformation(extent={{-140,-80},{-100,-40}}))); + + Buildings.Controls.OBC.CDL.Interfaces.RealInput THotWatRet( + final unit="K", + final displayUnit="K", + final quantity="ThermodynamicTemperature") + "Measured hot water return temperature" + annotation (Placement(transformation(extent={{-140,50},{-100,90}}), + iconTransformation(extent={{-140,40},{-100,80}}))); + + Buildings.Controls.OBC.CDL.Interfaces.RealOutput yMinBypValPos( + final unit="1", + final displayUnit="1", + final min=0, + final max=1) if have_priOnl + "Minimum allowed setpoint of bypass valve position" + annotation (Placement(transformation(extent={{100,30},{140,70}}), + iconTransformation(extent={{100,40},{140,80}}))); + + Buildings.Controls.OBC.CDL.Interfaces.RealOutput yMinPriPumSpe( + final unit="1", + final displayUnit="1", + final min=0, + final max=1) if (have_varPriPum and not have_priOnl) + "Minimum allowed primary pump speed" + annotation (Placement(transformation(extent={{100,-20},{140,20}}), + iconTransformation(extent={{100,-20},{140,20}}))); + + Buildings.Controls.OBC.CDL.Interfaces.RealOutput yMaxSecPumSpe( + final unit="1", + final displayUnit="1", + final min=0, + final max=1) if not have_priOnl + "Maximum allowed secondary pump speed" + annotation (Placement(transformation(extent={{100,-70},{140,-30}}), + iconTransformation(extent={{100,-80},{140,-40}}))); + +protected + Buildings.Controls.OBC.CDL.Logical.Switch swi + "Pass 0 regulation signal if stage type is not non-condensing" + annotation (Placement(transformation(extent={{-50,40},{-30,60}}))); + + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant con( + final k=0) + "Zero source" + annotation (Placement(transformation(extent={{-90,20},{-70,40}}))); + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.ProportionalRegulator proReg( + final TRetSet=TRetSet, + final TRetMinAll=TRetMinAll) + "Proportional regulator" + annotation (Placement(transformation(extent={{-90,60},{-70,80}}))); + + Buildings.Controls.OBC.CDL.Routing.RealExtractor extIndSig( + final nin=nSta) + "Identify stage type for current stage" + annotation (Placement(transformation(extent={{-50,-80},{-30,-60}}))); + + Buildings.Controls.OBC.CDL.Conversions.IntegerToReal intToRea[nSta] + "Integer to Real conversion" + annotation (Placement(transformation(extent={{-90,-80},{-70,-60}}))); + + Buildings.Controls.OBC.CDL.Continuous.GreaterThreshold greThr( + final threshold=Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.Types.BoilerTypes.condensingBoiler) + "Identify if current stage is condensing type or non-condensing type" + annotation (Placement(transformation(extent={{-10,-80},{10,-60}}))); + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.PumpSpeedLimits pumSpeLim( + final have_varPriPum=have_varPriPum, + final nSta=nSta, + final minSecPumSpe=minSecPumSpe, + final minPriPumSpeSta=minPriPumSpeSta) if not have_priOnl + "Block to calculate pump speed limits" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + +equation + connect(THotWatRet, proReg.THotWatRet) + annotation (Line(points={{-120,70},{-92,70}}, + color={0,0,127})); + + connect(yMinBypValPos, yMinBypValPos) + annotation (Line(points={{120,50},{120,50}}, color={0,0,127})); + + connect(uStaTyp, intToRea.u) + annotation (Line(points={{-120,-70},{-92,-70}}, + color={255,127,0})); + + connect(intToRea.y, extIndSig.u) + annotation (Line(points={{-68,-70},{-52,-70}}, + color={0,0,127})); + + connect(uCurSta, extIndSig.index) annotation (Line(points={{-120,0},{-60,0},{-60, + -90},{-40,-90},{-40,-82}}, + color={255,127,0})); + + connect(extIndSig.y, greThr.u) + annotation (Line(points={{-28,-70},{-12,-70}}, + color={0,0,127})); + + connect(proReg.yRegSig, swi.u1) annotation (Line(points={{-68,70},{-60,70},{-60, + 58},{-52,58}}, color={0,0,127})); + connect(greThr.y, swi.u2) annotation (Line(points={{12,-70},{20,-70},{20,-50}, + {-56,-50},{-56,50},{-52,50}}, color={255,0,255})); + connect(swi.y, yMinBypValPos) annotation (Line(points={{-28,50},{120,50}}, + color={0,0,127})); + connect(con.y, swi.u3) annotation (Line(points={{-68,30},{-60,30},{-60,42},{-52, + 42}}, color={0,0,127})); + connect(swi.y, pumSpeLim.uRegSig) annotation (Line(points={{-28,50},{-20,50},{ + -20,-5},{-12,-5}}, color={0,0,127})); + connect(uCurSta, pumSpeLim.uCurSta) annotation (Line(points={{-120,0},{-60,0}, + {-60,5},{-12,5}}, color={255,127,0})); + connect(pumSpeLim.yMinPriPumSpe, yMinPriPumSpe) + annotation (Line(points={{12,5},{30,5},{30,0},{120,0}},color={0,0,127})); + connect(pumSpeLim.yMaxSecPumSpe, yMaxSecPumSpe) annotation (Line(points={{12,-5}, + {30,-5},{30,-50},{120,-50}}, color={0,0,127})); + annotation (defaultComponentName= + "conSet", + Icon(graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineThickness=0.1), + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={28,108,200}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineThickness=5, + borderPattern=BorderPattern.Raised), + Text( + extent={{-120,146},{100,108}}, + lineColor={0,0,255}, + textString="%name"), + Ellipse( + extent={{-80,80},{80,-80}}, + lineColor={28,108,200}, + fillColor={170,255,213}, + fillPattern=FillPattern.Solid)}, + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}})), + Diagram( + coordinateSystem(preserveAspectRatio=false, + extent={{-100,-100},{100,100}})), + Documentation( + info=" +

+ Block that generates condensation control setpoints according to ASHRAE RP-1711, + March, 2020 draft, section 5.3.5. +

+

+ The sequence calculates the condensation control setpoints for minimum bypass + valve position yMinBypValPos, minimum primary pump speed yMinPriPumSpe + and maximum secondary pump speed yMaxSecPumSpe using the following calculations: +

    +
  1. + Block proReg implemented in the class + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.ProportionalRegulator + uses the measured hot water return temperature THotWatRet to generate a regulation signal with P-only control loop. +
  2. +
  3. + The regulation signal is used as is for yMinBypValPos. +
  4. +
  5. + The regulation signal is used by block pumSpeLim implemented in the class + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.PumpSpeedLimits + to generate the pump speed limits yMinPriPumSpe and yMaxSecPumSpe. +
  6. +
+

+ \"Validation +
+ Validation plot generated from model + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Validation.CondensationControl. +

+ ", + revisions=" + + ")); +end CondensationControl; diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/ProportionalRegulator.mo b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/ProportionalRegulator.mo new file mode 100644 index 00000000000..7c8695e3da4 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/ProportionalRegulator.mo @@ -0,0 +1,128 @@ +within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences; +block ProportionalRegulator + "Sequence to calculate regulation signal with measured return temperature as input" + + parameter Real TRetSet( + final unit="K", + final displayUnit="K", + final quantity="ThermodynamicTemperature") = 60 + "Minimum hot water return temperature for optimal non-condensing boiler performance"; + + parameter Real TRetMinAll( + final unit="K", + final displayUnit="K", + final quantity="ThermodynamicTemperature") = 57.2 + "Minimum allowed hot water return temperature for non-condensing boiler"; + + Buildings.Controls.OBC.CDL.Interfaces.RealInput THotWatRet( + final unit="K", + final displayUnit="K", + final quantity="ThermodynamicTemperature") + "Measured hot water return temperature" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}), + iconTransformation(extent={{-140,-20},{-100,20}}))); + + Buildings.Controls.OBC.CDL.Interfaces.RealOutput yRegSig( + final unit="1", + final displayUnit="1", + final min=0, + final max=1) + "Regulation signal from P-only loop for condensation control" + annotation (Placement(transformation(extent={{100,-20},{140,20}}), + iconTransformation(extent={{100,-20},{140,20}}))); + +protected + Buildings.Controls.OBC.CDL.Continuous.AddParameter addPar( + final p=TRetSet, + final k=-1) + "Compare hot water return temperature and minimum return temperature" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + + Buildings.Controls.OBC.CDL.Continuous.Limiter lim( + final uMax=TRetSet - TRetMinAll, + final uMin=0) + "Limit input for calculating control signal" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + + Buildings.Controls.OBC.CDL.Continuous.Gain gai( + final k=1/(TRetSet - TRetMinAll)) + "Calculate control signal" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + +equation + connect(addPar.u, THotWatRet) + annotation (Line(points={{-62,0},{-120,0}}, color={0,0,127})); + + connect(lim.u, addPar.y) + annotation (Line(points={{-12,0},{-38,0}}, color={0,0,127})); + + connect(lim.y, gai.u) + annotation (Line(points={{12,0},{38,0}}, color={0,0,127})); + + connect(gai.y, yRegSig) + annotation (Line(points={{62,0},{120,0}}, color={0,0,127})); + + annotation (defaultComponentName= + "proReg", + Icon(graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineThickness=0.1), + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={28,108,200}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineThickness=5, + borderPattern=BorderPattern.Raised), + Text( + extent={{-120,146},{100,108}}, + lineColor={0,0,255}, + textString="%name"), + Ellipse( + extent={{-80,80},{80,-80}}, + lineColor={28,108,200}, + fillColor={170,255,213}, + fillPattern=FillPattern.Solid)}, + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}})), + Diagram( + coordinateSystem(preserveAspectRatio=false, + extent={{-100,-100},{100,100}})), + Documentation( + info=" +

+ Block that generates proportional regulation signal for condensation control + in non-condensing boilers according to RP-1711, March, 2020 draft, section + 5.3.5. +

+

+ The minimum bypass valve position yProReg is calculated + as follows: +

  • + The measured hot-water return temperature THotWatRet is compared + to the minimum hot water return temperature for optimal operation TRetSet, + with the output yProReg varying linearly from 0% at + TRetSet to 100% at TRetMinAll. +
  • +

    + \"Validation +
    + Validation plot generated from model + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.Validation.ProportionalRegulator. +

    + ", + revisions=" + + ")); +end ProportionalRegulator; diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/PumpSpeedLimits.mo b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/PumpSpeedLimits.mo new file mode 100644 index 00000000000..10433a0f7ac --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/PumpSpeedLimits.mo @@ -0,0 +1,263 @@ +within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences; +block PumpSpeedLimits + "Sequence to calculate pump speed limits from regulation signal" + + parameter Boolean have_varPriPum = true + "True: Variable speed pumps in primary loop; False: Constant speed pumps in primary loop"; + + parameter Integer nSta = 5 + "Number of stages" + annotation(Evaluate=true,Dialog(enable=have_varPriPum)); + + parameter Real minSecPumSpe( + final unit="1", + final displayUnit="1", + final min=0, + final max=1) = 0 + "Minimum secondary pump speed"; + + parameter Real minPriPumSpeSta[nSta]( + final unit="1", + final displayUnit="1", + final min=0, + final max=1) = {0,0,0,0,0} + "Vector of minimum primary pump speed for each stage" + annotation(Evaluate=true,Dialog(enable=have_varPriPum)); + + Buildings.Controls.OBC.CDL.Interfaces.IntegerInput uCurSta if have_varPriPum + "Current stage" + annotation (Placement(transformation(extent={{-140,30},{-100,70}}), + iconTransformation(extent={{-140,30},{-100,70}}))); + + Buildings.Controls.OBC.CDL.Interfaces.RealInput uRegSig( + final unit="K", + final displayUnit="K", + final quantity="ThermodynamicTemperature") + "Regulation signal from proportional regulator" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}), + iconTransformation(extent={{-140,-70},{-100,-30}}))); + + Buildings.Controls.OBC.CDL.Interfaces.RealOutput yMinPriPumSpe( + final unit="1", + final displayUnit="1", + final min=0, + final max=1) if have_varPriPum + "Minimum allowed primary pump speed" + annotation (Placement(transformation(extent={{100,10},{140,50}}), + iconTransformation(extent={{100,30},{140,70}}))); + + Buildings.Controls.OBC.CDL.Interfaces.RealOutput yMaxSecPumSpe( + final unit="1", + final displayUnit="1", + final min=0, + final max=1) + "Maximum allowed secondary pump speed" + annotation (Placement(transformation(extent={{100,-20},{140,20}}), + iconTransformation(extent={{100,-70},{140,-30}}))); + +protected + Buildings.Controls.OBC.CDL.Continuous.AddParameter addPar2( + final p=-0.5, + final k=1) if have_varPriPum + "Extract secondary pump signal from regulation signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + + Buildings.Controls.OBC.CDL.Continuous.Limiter lim1( + final uMax=0.5, + final uMin=0) if have_varPriPum + "Limit signal between 0 and 0.5" + annotation (Placement(transformation(extent={{-30,-10},{-10,10}}))); + + Buildings.Controls.OBC.CDL.Continuous.Gain gai1( + final k=2) if have_varPriPum + "Multiply signal by 2" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + + Buildings.Controls.OBC.CDL.Continuous.AddParameter addPar3( + final p=1, + final k=(minSecPumSpe - 1)) if have_varPriPum + "Generate secondary pump setpoint signal from regulation signal" + annotation (Placement(transformation(extent={{30,-10},{50,10}}))); + + Buildings.Controls.OBC.CDL.Continuous.AddParameter addPar( + final p=1, + final k=(minSecPumSpe - 1)) if not have_varPriPum + "Generate secondary pump setpoint signal from regulation signal" + annotation (Placement(transformation(extent={{30,-50},{50,-30}}))); + + Buildings.Controls.OBC.CDL.Continuous.Limiter lim2( + final uMax=1, + final uMin=0) if not have_varPriPum + "Limit signal between 0 and 1" + annotation (Placement(transformation(extent={{-30,-50},{-10,-30}}))); + + Buildings.Controls.OBC.CDL.Continuous.Limiter lim( + final uMax=0.5, + final uMin=0) if have_varPriPum + "Limit signal between 0 and 0.5" + annotation (Placement(transformation(extent={{-60,20},{-40,40}}))); + + Buildings.Controls.OBC.CDL.Continuous.Gain gai( + final k=2) if have_varPriPum + "Multiply signal by 2" + annotation (Placement(transformation(extent={{-30,20},{-10,40}}))); + + Buildings.Controls.OBC.CDL.Continuous.Product pro if have_varPriPum + "Normalize regulation signal in terms of pump speed" + annotation (Placement(transformation(extent={{0,20},{20,40}}))); + + Buildings.Controls.OBC.CDL.Continuous.Add add2 if have_varPriPum + "Add minimum pump speed value to normalized regulation signal" + annotation (Placement(transformation(extent={{30,20},{50,40}}))); + + Buildings.Controls.OBC.CDL.Continuous.AddParameter addPar1( + final p=1, + final k=-1) if have_varPriPum + "Subtract minimum primary pump speed from 1" + annotation (Placement(transformation(extent={{-30,70},{-10,90}}))); + + Buildings.Controls.OBC.CDL.Routing.RealExtractor extIndSig1( + final nin=nSta) if have_varPriPum + "Identify minimum primary pump speed for current stage" + annotation (Placement(transformation(extent={{-60,70},{-40,90}}))); + + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant con2[nSta]( + final k=minPriPumSpeSta) if have_varPriPum + "Source signal for B-MinPriPumpSpdStage" + annotation (Placement(transformation(extent={{-90,70},{-70,90}}))); + +equation + + connect(uRegSig, addPar2.u) annotation (Line(points={{-120,0},{-62,0}}, + color={0,0,127})); + + connect(addPar2.y, lim1.u) + annotation (Line(points={{-38,0},{-32,0}}, color={0,0,127})); + + connect(lim1.y, gai1.u) + annotation (Line(points={{-8,0},{-2,0}}, color={0,0,127})); + + connect(gai1.y, addPar3.u) + annotation (Line(points={{22,0},{28,0}}, color={0,0,127})); + + connect(addPar3.y, yMaxSecPumSpe) annotation (Line(points={{52,0},{120,0}}, + color={0,0,127})); + + connect(addPar.y, yMaxSecPumSpe) annotation (Line(points={{52,-40},{70,-40},{70, + 0},{120,0}}, color={0,0,127})); + + connect(uRegSig, lim2.u) annotation (Line(points={{-120,0},{-90,0},{-90,-40},{ + -32,-40}}, color={0,0,127})); + + connect(lim2.y, addPar.u) + annotation (Line(points={{-8,-40},{28,-40}},color={0,0,127})); + + connect(uRegSig, lim.u) annotation (Line(points={{-120,0},{-90,0},{-90,30},{-62, + 30}}, color={0,0,127})); + + connect(lim.y, gai.u) + annotation (Line(points={{-38,30},{-32,30}}, color={0,0,127})); + + connect(con2.y, extIndSig1.u) + annotation (Line(points={{-68,80},{-62,80}}, color={0,0,127})); + + connect(add2.u2, pro.y) annotation (Line(points={{28,24},{26,24},{26,30},{22,30}}, + color={0,0,127})); + + connect(gai.y, pro.u2) annotation (Line(points={{-8,30},{-6,30},{-6,24},{-2,24}}, + color={0,0,127})); + + connect(extIndSig1.y, addPar1.u) + annotation (Line(points={{-38,80},{-32,80}}, color={0,0,127})); + + connect(uCurSta, extIndSig1.index) + annotation (Line(points={{-120,50},{-50,50},{-50,68}}, color={255,127,0})); + + connect(add2.y, yMinPriPumSpe) + annotation (Line(points={{52,30},{120,30}}, color={0,0,127})); + + connect(addPar1.y, pro.u1) annotation (Line(points={{-8,80},{-6,80},{-6,36},{ + -2,36}}, color={0,0,127})); + connect(extIndSig1.y, add2.u1) annotation (Line(points={{-38,80},{-36,80},{ + -36,60},{26,60},{26,36},{28,36}}, color={0,0,127})); + annotation (defaultComponentName="pumSpeLim", + Icon(graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineThickness=0.1), + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={28,108,200}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineThickness=5, + borderPattern=BorderPattern.Raised), + Text( + extent={{-120,146},{100,108}}, + lineColor={0,0,255}, + textString="%name"), + Ellipse( + extent={{-80,80},{80,-80}}, + lineColor={28,108,200}, + fillColor={170,255,213}, + fillPattern=FillPattern.Solid)}, + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}})), + Diagram( + coordinateSystem(preserveAspectRatio=false, + extent={{-100,-100},{100,100}})), + Documentation( + info=" +

    + Block that generates pump speed limits for condensation control + in non-condensing boilers according to RP-1711, March, 2020 draft, sections + 5.3.5.3, 5.3.5.4, 5.3.5.5 and 5.3.5.6. +

    +

    + The maximum allowed secondary pump speed yMaxSecPumSpe is calculated + as follows: +

      +
    1. + if the primary pumps are constant speed have_varPriPum=false, + yMaxSecPumSpe is reset from 100% pump speed at 0% of regulation + signal uRegSig to minimum pump speed minSecPumSpe + at 100% of uRegSig. +
    2. +
    3. + if the primary pumps are variable speed have_varPriPum=true, + yMaxSecPumSpe is reset from 100% pump speed at 50% of uRegSig + to minSecPumSpe at 100% of uRegSig. +
    4. +
    +

    +

    + If have_varPriPum=true, the minimum allowed primary pump speed + yMinPriPumSpe is calculated as follows: +

    +

    +

    + \"Validation +
    + Validation plot generated from model + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.Validation.PumpSpeedLimits. +

    + ", + revisions=" + + ")); +end PumpSpeedLimits; diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/ProportionalRegulator.mo b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/ProportionalRegulator.mo new file mode 100644 index 00000000000..266d5451f24 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/ProportionalRegulator.mo @@ -0,0 +1,58 @@ +within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.Validation; +model ProportionalRegulator + "Validation model for ProportionalRegulator sequence" + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.ProportionalRegulator + proReg( + final TRetSet=60, + final TRetMinAll=57.2) + "Test model for ProportionalRegulator" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + +protected + Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sin( + final amplitude=5, + final freqHz=1/60, + final offset=60) + "Sine input" + annotation (Placement(transformation(extent={{-50,-10},{-30,10}}))); + +equation + connect(sin.y, proReg.THotWatRet) + annotation (Line(points={{-28,0},{-12,0}}, color={0,0,127})); + + annotation ( + Icon(coordinateSystem(preserveAspectRatio=false), + graphics={Ellipse( + lineColor = {75,138,73}, + fillColor={255,255,255}, + fillPattern = FillPattern.Solid, + extent={{-100,-100},{100,100}}), + Polygon( + lineColor = {0,0,255}, + fillColor = {75,138,73}, + pattern = LinePattern.None, + fillPattern = FillPattern.Solid, + points={{-36,60},{64,0},{-36,-60},{-36,60}})}), + Diagram(coordinateSystem(preserveAspectRatio=false)), + experiment( + StopTime=60, + Interval=1, + Tolerance=1e-06), + __Dymola_Commands(file="./Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/ProportionalRegulator.mos" + "Simulate and plot"), + Documentation(info=" +

    + This example validates + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.ProportionalRegulator. +

    + ", revisions=" + + ")); +end ProportionalRegulator; diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/PumpSpeedLimits.mo b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/PumpSpeedLimits.mo new file mode 100644 index 00000000000..361b18c0455 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/PumpSpeedLimits.mo @@ -0,0 +1,78 @@ +within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.Validation; +model PumpSpeedLimits + "Validation model for PumpSpeedLimits sequence" + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.PumpSpeedLimits + pumSpeLim( + final have_varPriPum=true, + final nSta=1, + final minSecPumSpe=0.1, + final minPriPumSpeSta={0.2}) + "Testing scenario with variable primary pumps" + annotation (Placement(transformation(extent={{10,10},{30,30}}))); + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.PumpSpeedLimits + pumSpeLim1( + final have_varPriPum=false, + final nSta=1, + final minSecPumSpe=0.1, + final minPriPumSpeSta={0.2}) + "Testing scenario with fixed-speed primary pumps" + annotation (Placement(transformation(extent={{10,-30},{30,-10}}))); + +protected + Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sin( + final amplitude=0.6, + final freqHz=1/60, + final offset=0.50) + "Sine input" + annotation (Placement(transformation(extent={{-30,-30},{-10,-10}}))); + + Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt( + final k=1) + "Constant Integer source" + annotation (Placement(transformation(extent={{-30,10},{-10,30}}))); + +equation + connect(conInt.y, pumSpeLim.uCurSta) annotation (Line(points={{-8,20},{0,20}, + {0,25},{8,25}}, color={255,127,0})); + connect(sin.y, pumSpeLim.uRegSig) annotation (Line(points={{-8,-20},{0,-20},{ + 0,15},{8,15}}, color={0,0,127})); + connect(sin.y, pumSpeLim1.uRegSig) annotation (Line(points={{-8,-20},{0,-20}, + {0,-25},{8,-25}}, color={0,0,127})); + annotation ( + Icon(coordinateSystem(preserveAspectRatio=false), + graphics={Ellipse( + lineColor = {75,138,73}, + fillColor={255,255,255}, + fillPattern = FillPattern.Solid, + extent={{-100,-100},{100,100}}), + Polygon( + lineColor = {0,0,255}, + fillColor = {75,138,73}, + pattern = LinePattern.None, + fillPattern = FillPattern.Solid, + points={{-36,60},{64,0},{-36,-60},{-36,60}})}), + Diagram(coordinateSystem( + preserveAspectRatio=false)), + experiment( + StopTime=60, + Interval=1, + Tolerance=1e-06), + __Dymola_Commands(file="./Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/PumpSpeedLimits.mos" + "Simulate and plot"), + Documentation(info=" +

    + This example validates + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.PumpSpeedLimits. +

    + ", revisions=" + + ")); +end PumpSpeedLimits; diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/package.mo b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/package.mo new file mode 100644 index 00000000000..6eff51d8f77 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/package.mo @@ -0,0 +1,40 @@ +within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences; +package Validation "Collection of validation models" + + + + +annotation (Icon(graphics={ + Rectangle( + lineColor={200,200,200}, + fillColor={248,248,248}, + fillPattern=FillPattern.HorizontalCylinder, + extent={{-100,-100},{100,100}}, + radius=25.0), + Rectangle( + lineColor={128,128,128}, + extent={{-100,-100},{100,100}}, + radius=25.0), + Polygon( + origin={8,14}, + lineColor={78,138,73}, + fillColor={78,138,73}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}})}), + Documentation(info=" +

    + This package contains validation models for the classes in + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.CondensationControl.Subsequences. +

    +

    + 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. +

    + ")); +end Validation; diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/package.order b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/package.order new file mode 100644 index 00000000000..d5ec19c87d3 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/package.order @@ -0,0 +1,2 @@ +ProportionalRegulator +PumpSpeedLimits diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/package.mo b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/package.mo new file mode 100644 index 00000000000..1008f1f94b3 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/package.mo @@ -0,0 +1,46 @@ +within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints; +package Subsequences "Subsequences for setpoint calculations" + + + + +annotation(Icon(graphics={ + Rectangle( + lineColor={200,200,200}, + fillColor={248,248,248}, + fillPattern=FillPattern.HorizontalCylinder, + extent={{-100,-100},{100,100}}, + radius=25.0), + Rectangle( + lineColor={128,128,128}, + extent={{-100,-100},{100,100}}, + radius=25.0), + Ellipse( + origin={10,10}, + fillColor={76,76,76}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{-80.0,-80.0},{-20.0,-20.0}}), + Ellipse( + origin={10,10}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{0.0,-80.0},{60.0,-20.0}}), + Ellipse( + origin={10,10}, + fillColor={128,128,128}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{0.0,0.0},{60.0,60.0}}), + Ellipse( + origin={10,10}, + lineColor={128,128,128}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-80.0,0.0},{-20.0,60.0}})}), + Documentation(info=" +

    + This package contains control subsequences for setpoint calculations. +

    + ")); +end Subsequences; diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/package.order b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/package.order new file mode 100644 index 00000000000..4ef1857ac5c --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/package.order @@ -0,0 +1,3 @@ +ProportionalRegulator +PumpSpeedLimits +Validation diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/CondensationControl.mo b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/CondensationControl.mo new file mode 100644 index 00000000000..b56fe7f52ca --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/CondensationControl.mo @@ -0,0 +1,197 @@ +within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Validation; +model CondensationControl + "Validation model for CondensationControl sequence" + + parameter Integer nSta=1 + "Number of stages"; + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.CondensationControl + conSet( + final have_priOnl=true, + final have_varPriPum=false, + final nSta=nSta, + final TRetSet=60, + final TRetMinAll=57.2, + final minSecPumSpe=0.1, + final minPriPumSpeSta={0.2}) + "Setpoint generation for primary-only plant" + annotation (Placement(transformation(extent={{-40,40},{-20,60}}))); + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.CondensationControl + conSet1( + final have_priOnl=false, + final have_varPriPum=true, + final nSta=1, + final TRetSet=60, + final TRetMinAll=57.2, + final minSecPumSpe=0.1, + final minPriPumSpeSta={0.2}) + "Setpoint generation for primary-secondary plant with variable speed primary loop pumps" + annotation (Placement(transformation(extent={{60,40},{80,60}}))); + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.CondensationControl + conSet2( + final have_priOnl=false, + final have_varPriPum=false, + final nSta=1, + final TRetSet=60, + final TRetMinAll=57.2, + final minSecPumSpe=0.1, + final minPriPumSpeSta={0.2}) + "Setpoint generation for primary-secondary plant with constant speed primary loop pumps" + annotation (Placement(transformation(extent={{-40,-60},{-20,-40}}))); + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.CondensationControl + conSet3( + final have_priOnl=false, + final have_varPriPum=true, + final nSta=1, + final TRetSet=60, + final TRetMinAll=57.2, + final minSecPumSpe=0.1, + final minPriPumSpeSta={0.2}) + "Setpoint generation when only condensing boilers are operating" + annotation (Placement(transformation(extent={{60,-60},{80,-40}}))); + +protected + Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sin( + final amplitude=5, + final freqHz=1/60, + final offset=60) + "Sine input" + annotation (Placement(transformation(extent={{-80,70},{-60,90}}))); + + Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sin1( + final amplitude=5, + final freqHz=1/60, + final offset=60) + "Sine input" + annotation (Placement(transformation(extent={{20,70},{40,90}}))); + + Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sin2( + final amplitude=5, + final freqHz=1/60, + final offset=60) + "Sine input" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + + Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sin3( + final amplitude=5, + final freqHz=1/60, + final offset=60) + "Sine input" + annotation (Placement(transformation(extent={{20,-30},{40,-10}}))); + + Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt( + final k=1) + "Constant Integer source" + annotation (Placement(transformation(extent={{-80,40},{-60,60}}))); + + Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt1( + final k=1) + "Constant Integer source" + annotation (Placement(transformation(extent={{20,40},{40,60}}))); + + Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt2( + final k=1) + "Constant Integer source" + annotation (Placement(transformation(extent={{-80,-60},{-60,-40}}))); + + Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt3( + final k=1) + "Constant Integer source" + annotation (Placement(transformation(extent={{20,-60},{40,-40}}))); + + Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt4[nSta]( + final k={2}) + "Stage type vector source" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + + Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt5[nSta]( + final k={2}) + "Stage type vector source" + annotation (Placement(transformation(extent={{20,10},{40,30}}))); + + Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt6[nSta]( + final k={2}) + "Stage type vector source" + annotation (Placement(transformation(extent={{-80,-90},{-60,-70}}))); + + Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt7[nSta]( + final k={1}) + "Stage type vector source" + annotation (Placement(transformation(extent={{20,-90},{40,-70}}))); + +equation + connect(sin.y, conSet.THotWatRet) annotation (Line(points={{-58,80},{-50,80},{ + -50,56},{-42,56}}, color={0,0,127})); + + connect(sin2.y, conSet2.THotWatRet) annotation (Line(points={{-58,-20},{-50,-20}, + {-50,-44},{-42,-44}}, color={0,0,127})); + + connect(sin3.y, conSet3.THotWatRet) annotation (Line(points={{42,-20},{50,-20}, + {50,-44},{58,-44}}, color={0,0,127})); + + connect(conInt.y, conSet.uCurSta) + annotation (Line(points={{-58,50},{-42,50}}, color={255,127,0})); + + connect(conInt1.y, conSet1.uCurSta) + annotation (Line(points={{42,50},{58,50}}, color={255,127,0})); + + connect(conInt2.y, conSet2.uCurSta) + annotation (Line(points={{-58,-50},{-42,-50}}, color={255,127,0})); + + connect(conInt3.y, conSet3.uCurSta) + annotation (Line(points={{42,-50},{58,-50}}, color={255,127,0})); + + connect(conInt4.y, conSet.uStaTyp) annotation (Line(points={{-58,20},{-50,20}, + {-50,44},{-42,44}}, color={255,127,0})); + + connect(conInt5.y, conSet1.uStaTyp) annotation (Line(points={{42,20},{50,20},{ + 50,44},{58,44}}, color={255,127,0})); + + connect(conInt6.y, conSet2.uStaTyp) annotation (Line(points={{-58,-80},{-50,-80}, + {-50,-56},{-42,-56}}, color={255,127,0})); + + connect(conInt7.y, conSet3.uStaTyp) annotation (Line(points={{42,-80},{50,-80}, + {50,-56},{58,-56}}, color={255,127,0})); + + connect(sin1.y, conSet1.THotWatRet) annotation (Line(points={{42,80},{50,80}, + {50,56},{58,56}}, color={0,0,127})); + + annotation ( + Icon(coordinateSystem(preserveAspectRatio=false), + graphics={Ellipse( + lineColor = {75,138,73}, + fillColor={255,255,255}, + fillPattern = FillPattern.Solid, + extent={{-100,-100},{100,100}}), + Polygon( + lineColor = {0,0,255}, + fillColor = {75,138,73}, + pattern = LinePattern.None, + fillPattern = FillPattern.Solid, + points={{-36,60},{64,0},{-36,-60},{-36,60}})}), + Diagram(coordinateSystem( + preserveAspectRatio=false)), + experiment( + StopTime=60, + Interval=1, + Tolerance=1e-06), + __Dymola_Commands(file="./Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/CondensationControl.mos" + "Simulate and plot"), + Documentation(info=" +

    + This example validates + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.CondensationControl. +

    + ", revisions=" + + ")); +end CondensationControl; diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/package.mo b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/package.mo new file mode 100644 index 00000000000..b546e2c19c4 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/package.mo @@ -0,0 +1,37 @@ +within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints; +package Validation "Collection of validation models" + + annotation (Icon(graphics={ + Rectangle( + lineColor={200,200,200}, + fillColor={248,248,248}, + fillPattern=FillPattern.HorizontalCylinder, + extent={{-100,-100},{100,100}}, + radius=25.0), + Rectangle( + lineColor={128,128,128}, + extent={{-100,-100},{100,100}}, + radius=25.0), + Polygon( + origin={8,14}, + lineColor={78,138,73}, + fillColor={78,138,73}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-58.0,46.0},{42.0,-14.0},{-58.0,-74.0},{-58.0,46.0}})}), + Documentation(info=" +

    + This package contains validation models for the classes in + + Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints. +

    +

    + 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. +

    + ")); +end Validation; diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/package.order b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/package.order new file mode 100644 index 00000000000..75158156278 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/package.order @@ -0,0 +1 @@ +CondensationControl diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/package.mo b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/package.mo new file mode 100644 index 00000000000..c7648f7c66c --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/package.mo @@ -0,0 +1,26 @@ +within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant; +package SetPoints + + + +annotation (Icon(graphics={ + Rectangle( + lineColor={200,200,200}, + fillColor={248,248,248}, + fillPattern=FillPattern.HorizontalCylinder, + extent={{-100,-100},{100,100}}, + radius=25.0), + Rectangle( + lineColor={128,128,128}, + extent={{-100,-100},{100,100}}, + radius=25.0), + Text( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + textString="S")}), + Documentation(info=" +

    + This package contains boiler plant setpoint control sequences. The implementation + is based on sections 5.3.4, 5.3.5, and 5.3.8 in ASHRAE RP-1711, Draft on March 23, 2020.

    +")); +end SetPoints; diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/package.order b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/package.order new file mode 100644 index 00000000000..8e9eb8ceb10 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/package.order @@ -0,0 +1,3 @@ +CondensationControl +Subsequences +Validation diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/Types/BoilerTypes.mo b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/Types/BoilerTypes.mo new file mode 100644 index 00000000000..047306d5093 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/Types/BoilerTypes.mo @@ -0,0 +1,39 @@ +within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.Types; +package BoilerTypes + "Definitions for boiler types" + + constant Integer condensingBoiler = 1 + "Condensing boiler"; + + constant Integer nonCondensingBoiler = 2 + "Non-condensing boiler"; + +annotation ( + Documentation(info=" +

    + This package provides constants that indicate the boiler type based on the + presence of flue gas heat recovery. + The boiler types are enumerated in an order that enables identification of stage + type as condensing or non-condensing. +

    + ", + revisions=" + + "), + Icon(graphics={ + Rectangle( + lineColor={200,200,200}, + fillColor={248,248,248}, + fillPattern=FillPattern.HorizontalCylinder, + extent={{-100.0,-100.0},{100.0,100.0}}, + radius=25.0), + Rectangle( + lineColor={128,128,128}, + extent={{-100.0,-100.0},{100.0,100.0}}, + radius=25.0)})); +end BoilerTypes; diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/Types/package.mo b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/Types/package.mo new file mode 100644 index 00000000000..848584bd0e1 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/Types/package.mo @@ -0,0 +1,46 @@ +within Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant; +package Types "Package with type definitions for boiler plants" +annotation (Documentation(info=" +

    + This package provides type definitions used in boiler plant control sequences. +

    + ", + revisions=" + + "), + Icon(graphics={ + Rectangle( + lineColor={200,200,200}, + fillColor={248,248,248}, + fillPattern=FillPattern.HorizontalCylinder, + extent={{-100.0,-100.0},{100.0,100.0}}, + radius=25.0), + Rectangle( + lineColor={128,128,128}, + extent={{-100.0,-100.0},{100.0,100.0}}, + radius=25.0), + Polygon( + origin={-12.167,-23}, + fillColor={128,128,128}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{12.167,65},{14.167,93},{36.167,89},{24.167,20},{4.167,-30}, + {14.167,-30},{24.167,-30},{24.167,-40},{-5.833,-50},{-15.833, + -30},{4.167,20},{12.167,65}}, + smooth=Smooth.Bezier, + lineColor={0,0,0}), + Polygon( + origin={2.7403,1.6673}, + fillColor={128,128,128}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{49.2597,22.3327},{31.2597,24.3327},{7.2597,18.3327},{-26.7403, + 10.3327},{-46.7403,14.3327},{-48.7403,6.3327},{-32.7403,0.3327},{-6.7403, + 4.3327},{33.2597,14.3327},{49.2597,14.3327},{49.2597,22.3327}}, + smooth=Smooth.Bezier)})); +end Types; diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/Types/package.order b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/Types/package.order new file mode 100644 index 00000000000..ffa2ca5ac4e --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/Types/package.order @@ -0,0 +1 @@ +BoilerTypes diff --git a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/package.order b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/package.order index 8470d611953..9faad8541e7 100644 --- a/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/package.order +++ b/Buildings/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/package.order @@ -1 +1,3 @@ Generic +SetPoints +Types diff --git a/Buildings/Resources/Images/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/CondensationControl.png b/Buildings/Resources/Images/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/CondensationControl.png new file mode 100644 index 00000000000..69a47734826 Binary files /dev/null and b/Buildings/Resources/Images/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/CondensationControl.png differ diff --git a/Buildings/Resources/Images/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/ProportionalRegulator.png b/Buildings/Resources/Images/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/ProportionalRegulator.png new file mode 100644 index 00000000000..5357f2411de Binary files /dev/null and b/Buildings/Resources/Images/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/ProportionalRegulator.png differ diff --git a/Buildings/Resources/Images/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/PumpSpeedLimits.png b/Buildings/Resources/Images/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/PumpSpeedLimits.png new file mode 100644 index 00000000000..7cd58042832 Binary files /dev/null and b/Buildings/Resources/Images/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/PumpSpeedLimits.png differ diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_ASHRAE_PrimarySystem_BoilerPlant_SetPoints_Subsequences_Validation_ProportionalRegulator.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_ASHRAE_PrimarySystem_BoilerPlant_SetPoints_Subsequences_Validation_ProportionalRegulator.txt new file mode 100644 index 00000000000..4fe09db5501 --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_ASHRAE_PrimarySystem_BoilerPlant_SetPoints_Subsequences_Validation_ProportionalRegulator.txt @@ -0,0 +1,12 @@ +last-generated=2020-07-28 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +proReg.THotWatRet=[6e+01, 6.031395338719434e+01, 6.062666699791529e+01, 6.093690493172229e+01, 6.124345011635225e+01, 6.154508590698242e+01, 6.184062199455361e+01, 6.212889489600248e+01, 6.240876761238084e+01, 6.267913432656856e+01, 6.293892669677734e+01, 6.318711856854804e+01, 6.342273719394728e+01, 6.36448439863515e+01, 6.385256589172698e+01, 6.404508209228516e+01, 6.422164143243162e+01, 6.438153080927931e+01, 6.452413173181651e+01, 6.464888007725384e+01, 6.475527954101562e+01, 6.484291834511325e+01, 6.491143800637415e+01, 6.496057127592938e+01, 6.499013520414874e+01, 6.5e+01, 6.499013520414874e+01, 6.496057133664694e+01, 6.491143791096262e+01, 6.484291834511325e+01, 6.475527954101562e+01, 6.464888007725384e+01, 6.452413194273326e+01, 6.438153056711249e+01, 6.422164143243162e+01, 6.404508209228516e+01, 6.385256589172698e+01, 6.364484432678538e+01, 6.342273682865402e+01, 6.318711837558766e+01, 6.293892669677734e+01, 6.267913453686079e+01, 6.240876804905079e+01, 6.212889444339827e+01, 6.184062176207599e+01, 6.154508590698242e+01, 6.124345035793387e+01, 6.093690529915541e+01, 6.062666662607115e+01, 6.031395320023773e+01, 6e+01, 5.968604679976227e+01, 5.937333337392885e+01, 5.906309470084459e+01, 5.875655061027085e+01, 5.845491409301758e+01, 5.815937731079125e+01, 5.787110555660749e+01, 5.759123195094367e+01, 5.732086630833415e+01, 5.706107330322266e+01, 5.681288085734748e+01, 5.657726317135063e+01, 5.635515567321031e+01, 5.614743474770793e+01, 5.595491409301758e+01, 5.577836185033084e+01, 5.561846561824184e+01, 5.547586424259106e+01, 5.535111647921241e+01, 5.524471664428711e+01, 5.515708522487409e+01, 5.508856208903862e+01, 5.50394248486793e+01, 5.500986486232791e+01, 5.5e+01, 5.500986486232791e+01, 5.50394248486793e+01, 5.508856208903862e+01, 5.515708522487409e+01, 5.524471664428711e+01, 5.535111647921241e+01, 5.547586424259106e+01, 5.561846561824184e+01, 5.577836185033084e+01, 5.595491409301758e+01, 5.614743474770793e+01, 5.635515567321031e+01, 5.657726317135063e+01, 5.681288085734748e+01, 5.706107330322266e+01, 5.732086630833415e+01, 5.759123195094367e+01, 5.787110555660749e+01, 5.815937731079125e+01, 5.845491409301758e+01, 5.875655061027085e+01, 5.906309470083836e+01, 5.937333337393515e+01, 5.968604580335164e+01, 6e+01] +proReg.TRetMinAll=[5.720000076293945e+01, 5.720000076293945e+01] +proReg.TRetSet=[6e+01, 6e+01] +time=[0e+00, 6e+01] +proReg.yRegSig=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.121258545000747e-01, 2.238092049047075e-01, 3.346096186817693e-01, 4.440888080573288e-01, 5.518160462379456e-01, 6.573655271364933e-01, 7.603200571442347e-01, 8.602745586775219e-01, 9.56833299525521e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.56833299525521e-01, 8.602745586775219e-01, 7.603200571442347e-01, 6.573655271364933e-01, 5.518160462379456e-01, 4.440888080573288e-01, 3.346096186839947e-01, 2.23809204902456e-01, 1.121262103688644e-01, 0e+00] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_ASHRAE_PrimarySystem_BoilerPlant_SetPoints_Subsequences_Validation_PumpSpeedLimits.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_ASHRAE_PrimarySystem_BoilerPlant_SetPoints_Subsequences_Validation_PumpSpeedLimits.txt new file mode 100644 index 00000000000..9e45323f19f --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_ASHRAE_PrimarySystem_BoilerPlant_SetPoints_Subsequences_Validation_PumpSpeedLimits.txt @@ -0,0 +1,13 @@ +last-generated=2020-07-28 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +pumSpeLim.uRegSig=[5e-01, 5.376743063275602e-01, 5.751999586875818e-01, 6.124287873097954e-01, 6.492139042898054e-01, 6.8541020154953e-01, 7.208747323296468e-01, 7.554676044810981e-01, 7.890521778586632e-01, 8.214960643519617e-01, 8.526711463928223e-01, 8.824543998870947e-01, 9.107282844602312e-01, 9.373811400799414e-01, 9.623079451542254e-01, 9.85410213470459e-01, 1.006596790695478e+00, 1.025784021362792e+00, 1.042896265581281e+00, 1.057865866761343e+00, 1.070633888244629e+00, 1.081149929615895e+00, 1.089372398640726e+00, 1.095268843981518e+00, 1.098816038532798e+00, 1.100000023841858e+00, 1.098816038532798e+00, 1.095268851266722e+00, 1.089372387190819e+00, 1.081149929615895e+00, 1.070633888244629e+00, 1.057865866761343e+00, 1.042896290888783e+00, 1.025783992298341e+00, 1.006596790695478e+00, 9.85410213470459e-01, 9.623079451542255e-01, 9.373811809328643e-01, 9.107282406264587e-01, 8.824543767307744e-01, 8.526711463928223e-01, 8.214960895872719e-01, 7.890522302575496e-01, 7.55467550168306e-01, 7.208747044322431e-01, 6.8541020154953e-01, 6.492139332802072e-01, 6.124288314000645e-01, 5.751999140672519e-01, 5.376742838934061e-01, 5e-01, 4.623257161065939e-01, 4.248001157350704e-01, 3.87571168599746e-01, 3.50786153101801e-01, 3.1458979845047e-01, 2.791251843125982e-01, 2.445324647334521e-01, 2.109477548408135e-01, 1.785039969352783e-01, 1.473288536071777e-01, 1.175455312213626e-01, 8.927177427530836e-02, 6.261878926443756e-02, 3.769211667953461e-02, 1.458980329334736e-02, -6.596806097009087e-03, -2.578398484762625e-02, -4.289624991143087e-02, -5.786585575377606e-02, -7.06339105963707e-02, -8.114992172763209e-02, -8.937234248742505e-02, -9.526882891559166e-02, -9.88160305571644e-02, -1.000000014901161e-01, -9.88160305571644e-02, -9.526882891559166e-02, -8.937234248742505e-02, -8.114992172763209e-02, -7.06339105963707e-02, -5.786585575377606e-02, -4.289624991143087e-02, -2.578398484762625e-02, -6.596806097009087e-03, 1.458980329334736e-02, 3.769211667953461e-02, 6.261878926443756e-02, 8.927177427530837e-02, 1.175455312213626e-01, 1.473288536071777e-01, 1.785039969352783e-01, 2.109477548408135e-01, 2.445324647334521e-01, 2.791251843125982e-01, 3.1458979845047e-01, 3.50786153101801e-01, 3.875711685989983e-01, 4.248001157358269e-01, 4.623255965346502e-01, 5e-01] +time=[0e+00, 6e+01] +pumSpeLim.yMaxSecPumSpe=[1e+00, 9.321862486103893e-01, 8.646401220460734e-01, 7.976281590004913e-01, 7.314149245947008e-01, 6.662616729736328e-01, 6.024254460439057e-01, 5.401583715385546e-01, 4.797060381312496e-01, 4.213070662851041e-01, 3.651919364929199e-01, 3.115820802032627e-01, 2.606891237343517e-01, 2.127138971922284e-01, 1.678456689201477e-01, 1.262616515159607e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.262616515159607e-01, 1.678456689201476e-01, 2.127138236571237e-01, 2.606892026352748e-01, 3.115821218845871e-01, 3.651919364929199e-01, 4.213070208617254e-01, 4.797059438135384e-01, 5.401584693012391e-01, 6.024254962591375e-01, 6.662616729736328e-01, 7.314148724121766e-01, 7.976280796377228e-01, 8.646402023627381e-01, 9.321862889918311e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +pumSpeLim.yMinPriPumSpe=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.397211457706639e-01, 8.796801732553353e-01, 8.201138816805983e-01, 7.612578568838105e-01, 7.033436894416809e-01, 6.466002829796829e-01, 5.912519793359312e-01, 5.375164077453775e-01, 4.856064129776871e-01, 4.357261657714844e-01, 3.880728499544076e-01, 3.42834826919716e-01, 3.001900687836025e-01, 2.603073807270183e-01, 2.233436852693558e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.233436852693558e-01, 2.603073807270183e-01, 3.001900687836025e-01, 3.42834826919716e-01, 3.880728499544076e-01, 4.357261657714844e-01, 4.856064129776871e-01, 5.375164077453775e-01, 5.912519793359312e-01, 6.466002829796829e-01, 7.033436894416809e-01, 7.612578568838105e-01, 8.201138816794019e-01, 8.796801732565458e-01, 9.397209544555919e-01, 1e+00] +pumSpeLim1.uRegSig=[5e-01, 5.376743063275602e-01, 5.751999586875818e-01, 6.124287873097954e-01, 6.492139042898054e-01, 6.8541020154953e-01, 7.208747323296468e-01, 7.554676044810981e-01, 7.890521778586632e-01, 8.214960643519617e-01, 8.526711463928223e-01, 8.824543998870947e-01, 9.107282844602312e-01, 9.373811400799414e-01, 9.623079451542254e-01, 9.85410213470459e-01, 1.006596790695478e+00, 1.025784021362792e+00, 1.042896265581281e+00, 1.057865866761343e+00, 1.070633888244629e+00, 1.081149929615895e+00, 1.089372398640726e+00, 1.095268843981518e+00, 1.098816038532798e+00, 1.100000023841858e+00, 1.098816038532798e+00, 1.095268851266722e+00, 1.089372387190819e+00, 1.081149929615895e+00, 1.070633888244629e+00, 1.057865866761343e+00, 1.042896290888783e+00, 1.025783992298341e+00, 1.006596790695478e+00, 9.85410213470459e-01, 9.623079451542255e-01, 9.373811809328643e-01, 9.107282406264587e-01, 8.824543767307744e-01, 8.526711463928223e-01, 8.214960895872719e-01, 7.890522302575496e-01, 7.55467550168306e-01, 7.208747044322431e-01, 6.8541020154953e-01, 6.492139332802072e-01, 6.124288314000645e-01, 5.751999140672519e-01, 5.376742838934061e-01, 5e-01, 4.623257161065939e-01, 4.248001157350704e-01, 3.87571168599746e-01, 3.50786153101801e-01, 3.1458979845047e-01, 2.791251843125982e-01, 2.445324647334521e-01, 2.109477548408135e-01, 1.785039969352783e-01, 1.473288536071777e-01, 1.175455312213626e-01, 8.927177427530836e-02, 6.261878926443756e-02, 3.769211667953461e-02, 1.458980329334736e-02, -6.596806097009087e-03, -2.578398484762625e-02, -4.289624991143087e-02, -5.786585575377606e-02, -7.06339105963707e-02, -8.114992172763209e-02, -8.937234248742505e-02, -9.526882891559166e-02, -9.88160305571644e-02, -1.000000014901161e-01, -9.88160305571644e-02, -9.526882891559166e-02, -8.937234248742505e-02, -8.114992172763209e-02, -7.06339105963707e-02, -5.786585575377606e-02, -4.289624991143087e-02, -2.578398484762625e-02, -6.596806097009087e-03, 1.458980329334736e-02, 3.769211667953461e-02, 6.261878926443756e-02, 8.927177427530837e-02, 1.175455312213626e-01, 1.473288536071777e-01, 1.785039969352783e-01, 2.109477548408135e-01, 2.445324647334521e-01, 2.791251843125982e-01, 3.1458979845047e-01, 3.50786153101801e-01, 3.875711685989983e-01, 4.248001157358269e-01, 4.623255965346502e-01, 5e-01] +pumSpeLim1.yMaxSecPumSpe=[5.50000011920929e-01, 5.160931362261295e-01, 4.823200431416433e-01, 4.488140914211746e-01, 4.157074742182557e-01, 3.83130818605423e-01, 3.512127349428818e-01, 3.200791678878839e-01, 2.898530160853926e-01, 2.606535301623198e-01, 2.325959652662277e-01, 2.057910371213991e-01, 1.803445588869436e-01, 1.563569530664507e-01, 1.339228314798416e-01, 1.131308227777481e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.131308227777481e-01, 1.339228314798415e-01, 1.563569162989102e-01, 1.803445983374052e-01, 2.057910579620613e-01, 2.325959652662277e-01, 2.606535074506778e-01, 2.898529689265369e-01, 3.200792167692261e-01, 3.512127600504977e-01, 3.83130818605423e-01, 4.157074481270173e-01, 4.488140517397903e-01, 4.823200832999756e-01, 5.160931564169392e-01, 5.50000011920929e-01, 5.839068674249187e-01, 6.176799107393705e-01, 6.511859721020675e-01, 6.842924711488864e-01, 7.168691754341125e-01, 7.487873639204914e-01, 7.799207772696869e-01, 8.101470251135973e-01, 8.39346395307991e-01, 8.67404043674469e-01, 8.942090338218825e-01, 9.196554106026941e-01, 9.436430628401198e-01, 9.660770934985775e-01, 9.868691563606262e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.868691563606262e-01, 9.660770934985775e-01, 9.436430628401198e-01, 9.196554106026941e-01, 8.942090338218825e-01, 8.67404043674469e-01, 8.39346395307991e-01, 8.101470251135973e-01, 7.799207772696869e-01, 7.487873639204914e-01, 7.168691754341125e-01, 6.842924711488864e-01, 6.511859721027405e-01, 6.176799107386896e-01, 5.839069750397059e-01, 5.50000011920929e-01] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_ASHRAE_PrimarySystem_BoilerPlant_SetPoints_Validation_CondensationControl.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_ASHRAE_PrimarySystem_BoilerPlant_SetPoints_Validation_CondensationControl.txt new file mode 100644 index 00000000000..17fceb6bc73 --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_ASHRAE_PrimarySystem_BoilerPlant_SetPoints_Validation_CondensationControl.txt @@ -0,0 +1,24 @@ +last-generated=2020-07-28 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +conSet.THotWatRet=[6e+01, 6.031395338719434e+01, 6.062666699791529e+01, 6.093690493172229e+01, 6.124345011635225e+01, 6.154508590698242e+01, 6.184062199455361e+01, 6.212889489600248e+01, 6.240876761238084e+01, 6.267913432656856e+01, 6.293892669677734e+01, 6.318711856854804e+01, 6.342273719394728e+01, 6.36448439863515e+01, 6.385256589172698e+01, 6.404508209228516e+01, 6.422164143243162e+01, 6.438153080927931e+01, 6.452413173181651e+01, 6.464888007725384e+01, 6.475527954101562e+01, 6.484291834511325e+01, 6.491143800637415e+01, 6.496057127592938e+01, 6.499013520414874e+01, 6.5e+01, 6.499013520414874e+01, 6.496057133664694e+01, 6.491143791096262e+01, 6.484291834511325e+01, 6.475527954101562e+01, 6.464888007725384e+01, 6.452413194273326e+01, 6.438153056711249e+01, 6.422164143243162e+01, 6.404508209228516e+01, 6.385256589172698e+01, 6.364484432678538e+01, 6.342273682865402e+01, 6.318711837558766e+01, 6.293892669677734e+01, 6.267913453686079e+01, 6.240876804905079e+01, 6.212889444339827e+01, 6.184062176207599e+01, 6.154508590698242e+01, 6.124345035793387e+01, 6.093690529915541e+01, 6.062666662607115e+01, 6.031395320023773e+01, 6e+01, 5.968604679976227e+01, 5.937333337392885e+01, 5.906309470084459e+01, 5.875655061027085e+01, 5.845491409301758e+01, 5.815937731079125e+01, 5.787110555660749e+01, 5.759123195094367e+01, 5.732086630833415e+01, 5.706107330322266e+01, 5.681288085734748e+01, 5.657726317135063e+01, 5.635515567321031e+01, 5.614743474770793e+01, 5.595491409301758e+01, 5.577836185033084e+01, 5.561846561824184e+01, 5.547586424259106e+01, 5.535111647921241e+01, 5.524471664428711e+01, 5.515708522487409e+01, 5.508856208903862e+01, 5.50394248486793e+01, 5.500986486232791e+01, 5.5e+01, 5.500986486232791e+01, 5.50394248486793e+01, 5.508856208903862e+01, 5.515708522487409e+01, 5.524471664428711e+01, 5.535111647921241e+01, 5.547586424259106e+01, 5.561846561824184e+01, 5.577836185033084e+01, 5.595491409301758e+01, 5.614743474770793e+01, 5.635515567321031e+01, 5.657726317135063e+01, 5.681288085734748e+01, 5.706107330322266e+01, 5.732086630833415e+01, 5.759123195094367e+01, 5.787110555660749e+01, 5.815937731079125e+01, 5.845491409301758e+01, 5.875655061027085e+01, 5.906309470083836e+01, 5.937333337393515e+01, 5.968604580335164e+01, 6e+01] +conSet.TRetSet=[6e+01, 6e+01] +conSet.TRetMinAll=[5.720000076293945e+01, 5.720000076293945e+01] +time=[0e+00, 6e+01] +conSet.yMinBypValPos=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.121258545000747e-01, 2.238092049047075e-01, 3.346096186817693e-01, 4.440888080573288e-01, 5.518160462379456e-01, 6.573655271364933e-01, 7.603200571442347e-01, 8.602745586775219e-01, 9.56833299525521e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.56833299525521e-01, 8.602745586775219e-01, 7.603200571442347e-01, 6.573655271364933e-01, 5.518160462379456e-01, 4.440888080573288e-01, 3.346096186839947e-01, 2.23809204902456e-01, 1.121262103688644e-01, 0e+00] +conSet1.TRetMinAll=[5.720000076293945e+01, 5.720000076293945e+01] +conSet1.THotWatRet=[6e+01, 6.031395338719434e+01, 6.062666699791529e+01, 6.093690493172229e+01, 6.124345011635225e+01, 6.154508590698242e+01, 6.184062199455361e+01, 6.212889489600248e+01, 6.240876761238084e+01, 6.267913432656856e+01, 6.293892669677734e+01, 6.318711856854804e+01, 6.342273719394728e+01, 6.36448439863515e+01, 6.385256589172698e+01, 6.404508209228516e+01, 6.422164143243162e+01, 6.438153080927931e+01, 6.452413173181651e+01, 6.464888007725384e+01, 6.475527954101562e+01, 6.484291834511325e+01, 6.491143800637415e+01, 6.496057127592938e+01, 6.499013520414874e+01, 6.5e+01, 6.499013520414874e+01, 6.496057133664694e+01, 6.491143791096262e+01, 6.484291834511325e+01, 6.475527954101562e+01, 6.464888007725384e+01, 6.452413194273326e+01, 6.438153056711249e+01, 6.422164143243162e+01, 6.404508209228516e+01, 6.385256589172698e+01, 6.364484432678538e+01, 6.342273682865402e+01, 6.318711837558766e+01, 6.293892669677734e+01, 6.267913453686079e+01, 6.240876804905079e+01, 6.212889444339827e+01, 6.184062176207599e+01, 6.154508590698242e+01, 6.124345035793387e+01, 6.093690529915541e+01, 6.062666662607115e+01, 6.031395320023773e+01, 6e+01, 5.968604679976227e+01, 5.937333337392885e+01, 5.906309470084459e+01, 5.875655061027085e+01, 5.845491409301758e+01, 5.815937731079125e+01, 5.787110555660749e+01, 5.759123195094367e+01, 5.732086630833415e+01, 5.706107330322266e+01, 5.681288085734748e+01, 5.657726317135063e+01, 5.635515567321031e+01, 5.614743474770793e+01, 5.595491409301758e+01, 5.577836185033084e+01, 5.561846561824184e+01, 5.547586424259106e+01, 5.535111647921241e+01, 5.524471664428711e+01, 5.515708522487409e+01, 5.508856208903862e+01, 5.50394248486793e+01, 5.500986486232791e+01, 5.5e+01, 5.500986486232791e+01, 5.50394248486793e+01, 5.508856208903862e+01, 5.515708522487409e+01, 5.524471664428711e+01, 5.535111647921241e+01, 5.547586424259106e+01, 5.561846561824184e+01, 5.577836185033084e+01, 5.595491409301758e+01, 5.614743474770793e+01, 5.635515567321031e+01, 5.657726317135063e+01, 5.681288085734748e+01, 5.706107330322266e+01, 5.732086630833415e+01, 5.759123195094367e+01, 5.787110555660749e+01, 5.815937731079125e+01, 5.845491409301758e+01, 5.875655061027085e+01, 5.906309470083836e+01, 5.937333337393515e+01, 5.968604580335164e+01, 6e+01] +conSet1.TRetSet=[6e+01, 6e+01] +conSet1.yMinPriPumSpe=[2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 3.794013612396172e-01, 5.580947516891626e-01, 7.353753898909825e-01, 9.105421048125034e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.105421048125034e-01, 7.353753898945432e-01, 5.580947516855602e-01, 3.794019306298702e-01, 2.000000029802322e-01] +conSet1.yMaxSecPumSpe=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.067310690879822e-01, 7.1674203923308e-01, 5.314239209820839e-01, 3.515058301428306e-01, 1.777000161514881e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.777000161514881e-01, 3.515058301428306e-01, 5.314239209820839e-01, 7.1674203923308e-01, 9.067310690879822e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +conSet2.THotWatRet=[6e+01, 6.031395338719434e+01, 6.062666699791529e+01, 6.093690493172229e+01, 6.124345011635225e+01, 6.154508590698242e+01, 6.184062199455361e+01, 6.212889489600248e+01, 6.240876761238084e+01, 6.267913432656856e+01, 6.293892669677734e+01, 6.318711856854804e+01, 6.342273719394728e+01, 6.36448439863515e+01, 6.385256589172698e+01, 6.404508209228516e+01, 6.422164143243162e+01, 6.438153080927931e+01, 6.452413173181651e+01, 6.464888007725384e+01, 6.475527954101562e+01, 6.484291834511325e+01, 6.491143800637415e+01, 6.496057127592938e+01, 6.499013520414874e+01, 6.5e+01, 6.499013520414874e+01, 6.496057133664694e+01, 6.491143791096262e+01, 6.484291834511325e+01, 6.475527954101562e+01, 6.464888007725384e+01, 6.452413194273326e+01, 6.438153056711249e+01, 6.422164143243162e+01, 6.404508209228516e+01, 6.385256589172698e+01, 6.364484432678538e+01, 6.342273682865402e+01, 6.318711837558766e+01, 6.293892669677734e+01, 6.267913453686079e+01, 6.240876804905079e+01, 6.212889444339827e+01, 6.184062176207599e+01, 6.154508590698242e+01, 6.124345035793387e+01, 6.093690529915541e+01, 6.062666662607115e+01, 6.031395320023773e+01, 6e+01, 5.968604679976227e+01, 5.937333337392885e+01, 5.906309470084459e+01, 5.875655061027085e+01, 5.845491409301758e+01, 5.815937731079125e+01, 5.787110555660749e+01, 5.759123195094367e+01, 5.732086630833415e+01, 5.706107330322266e+01, 5.681288085734748e+01, 5.657726317135063e+01, 5.635515567321031e+01, 5.614743474770793e+01, 5.595491409301758e+01, 5.577836185033084e+01, 5.561846561824184e+01, 5.547586424259106e+01, 5.535111647921241e+01, 5.524471664428711e+01, 5.515708522487409e+01, 5.508856208903862e+01, 5.50394248486793e+01, 5.500986486232791e+01, 5.5e+01, 5.500986486232791e+01, 5.50394248486793e+01, 5.508856208903862e+01, 5.515708522487409e+01, 5.524471664428711e+01, 5.535111647921241e+01, 5.547586424259106e+01, 5.561846561824184e+01, 5.577836185033084e+01, 5.595491409301758e+01, 5.614743474770793e+01, 5.635515567321031e+01, 5.657726317135063e+01, 5.681288085734748e+01, 5.706107330322266e+01, 5.732086630833415e+01, 5.759123195094367e+01, 5.787110555660749e+01, 5.815937731079125e+01, 5.845491409301758e+01, 5.875655061027085e+01, 5.906309470083836e+01, 5.937333337393515e+01, 5.968604580335164e+01, 6e+01] +conSet2.yMaxSecPumSpe=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 8.990867182839553e-01, 7.985717140956565e-01, 6.988513402060428e-01, 6.003200518871953e-01, 5.033655166625977e-01, 4.083710017355255e-01, 3.157119724117814e-01, 2.257529120911831e-01, 1.388500125460924e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.000000014901161e-01, 1.388500125460924e-01, 2.257529120911831e-01, 3.157119724117814e-01, 4.083710017355255e-01, 5.033655166625977e-01, 6.003200518871953e-01, 6.988513402040398e-01, 7.985717140976829e-01, 8.990863980026129e-01, 1e+00] +conSet3.TRetMinAll=[5.720000076293945e+01, 5.720000076293945e+01] +conSet3.THotWatRet=[6e+01, 6.031395338719434e+01, 6.062666699791529e+01, 6.093690493172229e+01, 6.124345011635225e+01, 6.154508590698242e+01, 6.184062199455361e+01, 6.212889489600248e+01, 6.240876761238084e+01, 6.267913432656856e+01, 6.293892669677734e+01, 6.318711856854804e+01, 6.342273719394728e+01, 6.36448439863515e+01, 6.385256589172698e+01, 6.404508209228516e+01, 6.422164143243162e+01, 6.438153080927931e+01, 6.452413173181651e+01, 6.464888007725384e+01, 6.475527954101562e+01, 6.484291834511325e+01, 6.491143800637415e+01, 6.496057127592938e+01, 6.499013520414874e+01, 6.5e+01, 6.499013520414874e+01, 6.496057133664694e+01, 6.491143791096262e+01, 6.484291834511325e+01, 6.475527954101562e+01, 6.464888007725384e+01, 6.452413194273326e+01, 6.438153056711249e+01, 6.422164143243162e+01, 6.404508209228516e+01, 6.385256589172698e+01, 6.364484432678538e+01, 6.342273682865402e+01, 6.318711837558766e+01, 6.293892669677734e+01, 6.267913453686079e+01, 6.240876804905079e+01, 6.212889444339827e+01, 6.184062176207599e+01, 6.154508590698242e+01, 6.124345035793387e+01, 6.093690529915541e+01, 6.062666662607115e+01, 6.031395320023773e+01, 6e+01, 5.968604679976227e+01, 5.937333337392885e+01, 5.906309470084459e+01, 5.875655061027085e+01, 5.845491409301758e+01, 5.815937731079125e+01, 5.787110555660749e+01, 5.759123195094367e+01, 5.732086630833415e+01, 5.706107330322266e+01, 5.681288085734748e+01, 5.657726317135063e+01, 5.635515567321031e+01, 5.614743474770793e+01, 5.595491409301758e+01, 5.577836185033084e+01, 5.561846561824184e+01, 5.547586424259106e+01, 5.535111647921241e+01, 5.524471664428711e+01, 5.515708522487409e+01, 5.508856208903862e+01, 5.50394248486793e+01, 5.500986486232791e+01, 5.5e+01, 5.500986486232791e+01, 5.50394248486793e+01, 5.508856208903862e+01, 5.515708522487409e+01, 5.524471664428711e+01, 5.535111647921241e+01, 5.547586424259106e+01, 5.561846561824184e+01, 5.577836185033084e+01, 5.595491409301758e+01, 5.614743474770793e+01, 5.635515567321031e+01, 5.657726317135063e+01, 5.681288085734748e+01, 5.706107330322266e+01, 5.732086630833415e+01, 5.759123195094367e+01, 5.787110555660749e+01, 5.815937731079125e+01, 5.845491409301758e+01, 5.875655061027085e+01, 5.906309470083836e+01, 5.937333337393515e+01, 5.968604580335164e+01, 6e+01] +conSet3.TRetSet=[6e+01, 6e+01] +conSet3.yMinPriPumSpe=[2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01, 2.000000029802322e-01] +conSet3.yMaxSecPumSpe=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/ProportionalRegulator.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/ProportionalRegulator.mos new file mode 100644 index 00000000000..4226d0dddb0 --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/ProportionalRegulator.mos @@ -0,0 +1,4 @@ +simulateModel("Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.Validation.ProportionalRegulator", startTime=0,tolerance=1e-6, stopTime=60, method="dassl", resultFile="ProportionalRegulator"); + +createPlot(id=1, position={0, 0, 1545, 978}, y={"proReg.THotWatRet", "proReg.TRetSet", "proReg.TRetMinAll"}, range={0.0, 60.0, 54.0, 66.0}, grid=true, colors={{28,108,200}, {238,46,47}, {0,140,72}}); +createPlot(id=1, position={0, 0, 1545, 486}, y={"proReg.yRegSig"}, range={0.0, 60.0, -0.1, 1.1}, autoscale=false, grid=true, subPlot=2, colors={{28,108,200}}); diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/PumpSpeedLimits.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/PumpSpeedLimits.mos new file mode 100644 index 00000000000..72412f5e490 --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Subsequences/Validation/PumpSpeedLimits.mos @@ -0,0 +1,8 @@ +simulateModel("Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.Validation.PumpSpeedLimits", startTime=0,tolerance=1e-6, stopTime=60, method="dassl", resultFile="PumpSpeedLimits"); + +createPlot(id=1, position={0, 0, 1545, 978}, y={"pumSpeLim.uRegSig"}, range={0.0, 60.0, 54.0, 66.0}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={0, 0, 1545, 329}, y={"pumSpeLim.yMaxSecPumSpe"}, range={0.0, 60.0, -0.1, 1.1}, autoscale=false, grid=true, subPlot=2, colors={{28,108,200}}); +createPlot(id=1, position={0, 0, 1545, 329}, y={"pumSpeLim.yMinPriPumSpe"}, range={0.0, 60.0, -0.1, 1.1}, autoscale=false, grid=true, subPlot=3, colors={{28,108,200}}); + +createPlot(id=2, position={0, 0, 1545, 978}, y={"pumSpeLim1.uRegSig"}, range={0.0, 60.0, 54.0, 66.0}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={0, 0, 1545, 486}, y={"pumSpeLim1.yMaxSecPumSpe"}, range={0.0, 60.0, -0.1, 1.1}, autoscale=false, grid=true, subPlot=2, colors={{28,108,200}}); diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/CondensationControl.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/CondensationControl.mos new file mode 100644 index 00000000000..f2c1d5d3bcf --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/PrimarySystem/BoilerPlant/SetPoints/Validation/CondensationControl.mos @@ -0,0 +1,15 @@ +simulateModel("Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Validation.CondensationControl", startTime=0,tolerance=1e-6, stopTime=60, method="dassl", resultFile="CondensationControl"); + +createPlot(id=1, position={0, 0, 1545, 978}, y={"conSet.THotWatRet", "conSet.TRetSet", "conSet.TRetMinAll"}, range={0.0, 60.0, 54.0, 66.0}, autoscale=false, grid=true, colors={{28,108,200}, {238,46,47}, {0,140,72}}); +createPlot(id=1, position={0, 0, 1545, 496}, y={"conSet.yMinBypValPos"}, range={0.0, 60.0, 0.0, 1.2000000000000002}, autoscale=false, grid=true, subPlot=2, colors={{28,108,200}}); + +createPlot(id=2, position={0, 0, 1545, 978}, y={"conSet1.THotWatRet", "conSet1.TRetSet", "conSet1.TRetMinAll"}, range={0.0, 60.0, 54.0, 66.0}, autoscale=false, grid=true, colors={{28,108,200}, {238,46,47}, {0,140,72}}); +createPlot(id=2, position={0, 0, 1545, 322}, y={"conSet1.yMinPriPumSpe"}, range={0.0, 60.0, 0.1, 1.1}, autoscale=false, grid=true, subPlot=2, colors={{28,108,200}}); +createPlot(id=2, position={0, 0, 1545, 323}, y={"conSet1.yMaxSecPumSpe"}, range={0.0, 60.0, 0.0, 1.2000000000000002}, autoscale=false, grid=true, subPlot=3, colors={{28,108,200}}); + +createPlot(id=3, position={0, 0, 1545, 978}, y={"conSet2.THotWatRet", "conSet1.TRetSet", "conSet1.TRetMinAll"}, range={0.0, 60.0, 54.0, 66.0}, autoscale=false, grid=true, colors={{28,108,200}, {238,46,47}, {0,140,72}}); +createPlot(id=3, position={0, 0, 1545, 496}, y={"conSet2.yMaxSecPumSpe"}, range={0.0, 60.0, 0.0, 1.2000000000000002}, autoscale=false, grid=true, subPlot=2, colors={{28,108,200}}); + +createPlot(id=4, position={0, 0, 1545, 978}, y={"conSet3.THotWatRet", "conSet3.TRetSet", "conSet3.TRetMinAll"}, range={0.0, 60.0, 54.0, 66.0}, autoscale=false, grid=true, colors={{28,108,200}, {238,46,47}, {0,140,72}}); +createPlot(id=4, position={0, 0, 1545, 322}, y={"conSet3.yMinPriPumSpe"}, range={0.0, 60.0, 0.1, 1.1}, autoscale=false, grid=true, subPlot=2, colors={{28,108,200}}); +createPlot(id=4, position={0, 0, 1545, 323}, y={"conSet3.yMaxSecPumSpe"}, range={0.0, 60.0, 0.0, 1.2000000000000002}, autoscale=false, grid=true, subPlot=3, colors={{28,108,200}}); diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.Validation.ProportionalRegulator.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.Validation.ProportionalRegulator.mos new file mode 100644 index 00000000000..6a6cd56ac5d --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.Validation.ProportionalRegulator.mos @@ -0,0 +1,7 @@ +compareVars := + { + "proReg.THotWatRet", + "proReg.TRetSet", + "proReg.TRetMinAll", + "proReg.yRegSig" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.Validation.PumpSpeedLimits.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.Validation.PumpSpeedLimits.mos new file mode 100644 index 00000000000..e5ab2a8eca9 --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Subsequences.Validation.PumpSpeedLimits.mos @@ -0,0 +1,8 @@ +compareVars := + { + "pumSpeLim.uRegSig", + "pumSpeLim.yMaxSecPumSpe", + "pumSpeLim.yMinPriPumSpe", + "pumSpeLim1.uRegSig", + "pumSpeLim1.yMaxSecPumSpe" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Validation.CondensationControl.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Validation.CondensationControl.mos new file mode 100644 index 00000000000..f4ebc5a6cdd --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.ASHRAE.PrimarySystem.BoilerPlant.SetPoints.Validation.CondensationControl.mos @@ -0,0 +1,21 @@ +compareVars := + { + "conSet.THotWatRet", + "conSet.TRetSet", + "conSet.TRetMinAll", + "conSet.yMinBypValPos", + "conSet1.THotWatRet", + "conSet1.TRetSet", + "conSet1.TRetMinAll", + "conSet1.yMinPriPumSpe", + "conSet1.yMaxSecPumSpe", + "conSet2.THotWatRet", + "conSet1.TRetSet", + "conSet1.TRetMinAll", + "conSet2.yMaxSecPumSpe", + "conSet3.THotWatRet", + "conSet3.TRetSet", + "conSet3.TRetMinAll", + "conSet3.yMinPriPumSpe", + "conSet3.yMaxSecPumSpe" + };