diff --git a/IBPSA/Airflow/Multizone/BaseClasses/TwoWayFlowElement.mo b/IBPSA/Airflow/Multizone/BaseClasses/TwoWayFlowElement.mo index f784b173ac..e0e2c8e1db 100644 --- a/IBPSA/Airflow/Multizone/BaseClasses/TwoWayFlowElement.mo +++ b/IBPSA/Airflow/Multizone/BaseClasses/TwoWayFlowElement.mo @@ -169,7 +169,7 @@ This is for February 24, 2015 by Michael Wetter:
Changed model to use -Buildings.Utilities.Psychrometrics.Functions.density_pTX +IBPSA.Utilities.Psychrometrics.Functions.density_pTX for the density computation as diff --git a/IBPSA/Controls/OBC/CDL/Constants.mo b/IBPSA/Controls/OBC/CDL/Constants.mo new file mode 100644 index 0000000000..b964aecc93 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Constants.mo @@ -0,0 +1,68 @@ +within IBPSA.Controls.OBC.CDL; +package Constants + "Package with constants" + // Machine dependent constants + final constant Real eps=1E-15 + "Biggest number such that 1.0 + eps = 1.0"; + final constant Real small=1E-37 + "Smallest number such that small and -small are representable on the machine"; + final constant Real pi=2*Modelica.Math.asin(1.0) + "Constant number pi, 3.14159265358979"; + annotation ( + Documentation( + info=" +

+This package provides often needed constants. +

+", + revisions=" +
+"), + Icon( + coordinateSystem( + extent={{-100.0,-100.0},{100.0,100.0}}), + 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), + Polygon( + origin={-9.2597,25.6673}, + fillColor={102,102,102}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{48.017,11.336},{48.017,11.336},{10.766,11.336},{-25.684,10.95},{-34.944,-15.111},{-34.944,-15.111},{-32.298,-15.244},{-32.298,-15.244},{-22.112,0.168},{11.292,0.234},{48.267,-0.097},{48.267,-0.097}}, + smooth=Smooth.Bezier), + Polygon( + origin={-19.9923,-8.3993}, + fillColor={102,102,102}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{3.239,37.343},{3.305,37.343},{-0.399,2.683},{-16.936,-20.071},{-7.808,-28.604},{6.811,-22.519},{9.986,37.145},{9.986,37.145}}, + smooth=Smooth.Bezier), + Polygon( + origin={23.753,-11.5422}, + fillColor={102,102,102}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-10.873,41.478},{-10.873,41.478},{-14.048,-4.162},{-9.352,-24.8},{7.912,-24.469},{16.247,0.27},{16.247,0.27},{13.336,0.071},{13.336,0.071},{7.515,-9.983},{-3.134,-7.271},{-2.671,41.214},{-2.671,41.214}}, + smooth=Smooth.Bezier), + Rectangle( + lineColor={128,128,128}, + extent={{-100.0,-100.0},{100.0,100.0}}, + radius=25.0)})); +end Constants; diff --git a/IBPSA/Controls/OBC/CDL/Conversions/BooleanToInteger.mo b/IBPSA/Controls/OBC/CDL/Conversions/BooleanToInteger.mo new file mode 100644 index 0000000000..bfa2cac483 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Conversions/BooleanToInteger.mo @@ -0,0 +1,101 @@ +within IBPSA.Controls.OBC.CDL.Conversions; +block BooleanToInteger + "Convert Boolean to Integer signal" + parameter Integer integerTrue=1 + "Output signal for true Boolean input"; + parameter Integer integerFalse=0 + "Output signal for false Boolean input"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Boolean signal to be converted to an Integer signal" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Converted input signal as an Integer" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=if u then + integerTrue + else + integerFalse; + annotation ( + defaultComponentName="booToInt", + Documentation( + info=" +

+Block that outputs the Integer +equivalent of the Boolean input. +

+
+  y = if u then integerTrue else integerFalse;
+
+

+where u is of Boolean and y +of Integer type, +and integerTrue and integerFalse are parameters. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-86,78},{-34,26}}, + textColor={255,0,255}, + textString="B"), + Polygon( + points={{28,48},{8,68},{8,58},{-24,58},{-24,38},{8,38},{8,28},{28,48}}, + lineColor={255,170,85}, + fillColor={255,170,85}, + fillPattern=FillPattern.Solid), + Text( + extent={{34,82},{86,24}}, + textColor={255,170,85}, + textString="I"), + Ellipse( + extent={{-71,7},{-85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-74,-28},{64,20}}, + textColor={0,0,0}, + textString="%integerTrue"), + Text( + extent={{-74,-90},{64,-42}}, + textColor={0,0,0}, + textString="%integerFalse")})); +end BooleanToInteger; diff --git a/IBPSA/Controls/OBC/CDL/Conversions/BooleanToReal.mo b/IBPSA/Controls/OBC/CDL/Conversions/BooleanToReal.mo new file mode 100644 index 0000000000..175b93d1e5 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Conversions/BooleanToReal.mo @@ -0,0 +1,101 @@ +within IBPSA.Controls.OBC.CDL.Conversions; +block BooleanToReal + "Convert Boolean to Real signal" + parameter Real realTrue=1.0 + "Output signal for true Boolean input"; + parameter Real realFalse=0.0 + "Output signal for false Boolean input"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Boolean signal to be converted to a Real signal" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Converted input signal as a Real" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=if u then + realTrue + else + realFalse; + annotation ( + defaultComponentName="booToRea", + Documentation( + info=" +

+Block that outputs the Real +equivalent of the Boolean input. +

+
+  y = if u then realTrue else realFalse;
+
+

+where u is of Boolean and y +of Real type, +and realTrue and realFalse are parameters. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{-71,7},{-85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-68,-86},{70,-38}}, + textColor={0,0,0}, + textString="%realFalse"), + Text( + extent={{-68,-26},{70,22}}, + textColor={0,0,0}, + textString="%realTrue"), + Text( + extent={{-86,78},{-34,26}}, + textColor={255,0,255}, + textString="B"), + Polygon( + points={{26,48},{6,68},{6,58},{-26,58},{-26,38},{6,38},{6,28},{26,48}}, + lineColor={0,0,127}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid), + Text( + extent={{34,82},{86,24}}, + textColor={0,0,127}, + textString="R")})); +end BooleanToReal; diff --git a/IBPSA/Controls/OBC/CDL/Conversions/IntegerToReal.mo b/IBPSA/Controls/OBC/CDL/Conversions/IntegerToReal.mo new file mode 100644 index 0000000000..23a9bfb7ba --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Conversions/IntegerToReal.mo @@ -0,0 +1,66 @@ +within IBPSA.Controls.OBC.CDL.Conversions; +block IntegerToReal + "Convert Integer to Real signals" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u + "Integer signal to be converted to a Real signal" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Converted input signal as a Real" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u; + annotation ( + defaultComponentName="intToRea", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={255,127,0}, + extent={{-120.0,-40.0},{-20.0,40.0}}, + textString="I"), + Text( + textColor={0,0,127}, + fillPattern=FillPattern.Solid, + extent={{0.0,-40.0},{100.0,40.0}}, + textString="R"), + Polygon( + lineColor={0,0,127}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid, + points={{10.0,0.0},{-10.0,20.0},{-10.0,10.0},{-40.0,10.0},{-40.0,-10.0},{-10.0,-10.0},{-10.0,-20.0},{10.0,0.0}})}), + Documentation( + info=" +

+Block that outputs the Real +equivalent of the Integer input. +

+
+  y = u;
+
+

+where u is of Integer and +y of Real type. +

+", + revisions=" + +")); +end IntegerToReal; diff --git a/IBPSA/Controls/OBC/CDL/Conversions/RealToInteger.mo b/IBPSA/Controls/OBC/CDL/Conversions/RealToInteger.mo new file mode 100644 index 0000000000..a3ee5c3f94 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Conversions/RealToInteger.mo @@ -0,0 +1,73 @@ +within IBPSA.Controls.OBC.CDL.Conversions; +block RealToInteger + "Convert Real to Integer signal" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Real signal to be converted to an Integer signal" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Converted input signal as an Integer" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=if + (u > 0) then + integer( + floor( + u+0.5)) + else + integer( + ceil( + u-0.5)); + annotation ( + defaultComponentName="reaToInt", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,127}, + extent={{-100.0,-40.0},{0.0,40.0}}, + textString="R"), + Text( + textColor={255,127,0}, + extent={{20.0,-40.0},{120.0,40.0}}, + textString="I"), + Polygon( + lineColor={255,127,0}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid, + points={{50.0,0.0},{30.0,20.0},{30.0,10.0},{0.0,10.0},{0.0,-10.0},{30.0,-10.0},{30.0,-20.0},{50.0,0.0}}), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})}), + Documentation( + info=" +

+Block that outputs y +as the nearest integer value of the input u. +

+

+The block outputs +

+
+    y = integer( floor( u + 0.5 ) )  if u > 0,
+    y = integer( ceil ( u - 0.5 ) )  otherwise.
+
+", + revisions=" + +")); +end RealToInteger; diff --git a/IBPSA/Controls/OBC/CDL/Conversions/Validation/BooleanToInteger.mo b/IBPSA/Controls/OBC/CDL/Conversions/Validation/BooleanToInteger.mo new file mode 100644 index 0000000000..9af28be520 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Conversions/Validation/BooleanToInteger.mo @@ -0,0 +1,50 @@ +within IBPSA.Controls.OBC.CDL.Conversions.Validation; +model BooleanToInteger + "Validation model for the BooleanToInteger block" + IBPSA.Controls.OBC.CDL.Conversions.BooleanToInteger booToInt + "Block that converts Boolean to Integer signal" + annotation (Placement(transformation(extent={{30,-10},{50,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + period=1) + "Generate cyclic on-and-off output" + annotation (Placement(transformation(extent={{-20,-10},{0,10}}))); + +equation + connect(booPul.y,booToInt.u) + annotation (Line(points={{2,0},{28,0},{28,0}},color={255,0,255})); + annotation ( + experiment( + StopTime=4.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/BooleanToInteger.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Conversions.BooleanToInteger. +

+", + revisions=" + +"), + Icon( + 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}})})); +end BooleanToInteger; diff --git a/IBPSA/Controls/OBC/CDL/Conversions/Validation/BooleanToReal.mo b/IBPSA/Controls/OBC/CDL/Conversions/Validation/BooleanToReal.mo new file mode 100644 index 0000000000..fda9178d76 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Conversions/Validation/BooleanToReal.mo @@ -0,0 +1,50 @@ +within IBPSA.Controls.OBC.CDL.Conversions.Validation; +model BooleanToReal + "Validation model for the BooleanToReal block" + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal booToRea + "Block that converts Boolean to Real signal" + annotation (Placement(transformation(extent={{30,-10},{50,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + period=1) + "Generate cyclic on-and-off output" + annotation (Placement(transformation(extent={{-20,-10},{0,10}}))); + +equation + connect(booPul.y,booToRea.u) + annotation (Line(points={{2,0},{28,0},{28,0}},color={255,0,255})); + annotation ( + experiment( + StopTime=4.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/BooleanToReal.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal. +

+", + revisions=" + +"), + Icon( + 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}})})); +end BooleanToReal; diff --git a/IBPSA/Controls/OBC/CDL/Conversions/Validation/IntegerToReal.mo b/IBPSA/Controls/OBC/CDL/Conversions/Validation/IntegerToReal.mo new file mode 100644 index 0000000000..42ab49f046 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Conversions/Validation/IntegerToReal.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Conversions.Validation; +model IntegerToReal + "Validation model for the IntegerToReal block" + IBPSA.Controls.OBC.CDL.Conversions.IntegerToReal intToRea + "Block that converts Integer to Real signal" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=7.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round2( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + +equation + connect(ramp1.y,round2.u) + annotation (Line(points={{-58,0},{-42,0}},color={0,0,127})); + connect(round2.y,reaToInt1.u) + annotation (Line(points={{-18,0},{-2,0}},color={0,0,127})); + connect(reaToInt1.y,intToRea.u) + annotation (Line(points={{22,0},{28,0},{28,0},{38,0}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/IntegerToReal.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Conversions.IntegerToReal. +

+", + revisions=" + +"), + Icon( + 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}})})); +end IntegerToReal; diff --git a/IBPSA/Controls/OBC/CDL/Conversions/Validation/RealToInteger.mo b/IBPSA/Controls/OBC/CDL/Conversions/Validation/RealToInteger.mo new file mode 100644 index 0000000000..6af50942b9 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Conversions/Validation/RealToInteger.mo @@ -0,0 +1,52 @@ +within IBPSA.Controls.OBC.CDL.Conversions.Validation; +model RealToInteger + "Validation model for the RealToInteger block" + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Block that converts Real to Integer signal" + annotation (Placement(transformation(extent={{30,-10},{50,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=7.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y,reaToInt.u) + annotation (Line(points={{-39,0},{28,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/RealToInteger.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Conversions.RealToInteger. +

+", + revisions=" + +"), + Icon( + 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}})})); +end RealToInteger; diff --git a/IBPSA/Controls/OBC/CDL/Conversions/Validation/package.mo b/IBPSA/Controls/OBC/CDL/Conversions/Validation/package.mo new file mode 100644 index 0000000000..26ec4de8c5 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Conversions/Validation/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL.Conversions; +package Validation "Collection of models that validate the conversion blocks of the CDL" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains models that validate the blocks in + +IBPSA.Controls.OBC.CDL.Conversions. +

+

+The examples plot various outputs, which have been verified against +analytical solutions. These model outputs are stored as reference data to +allow continuous validation whenever models in the library change. +

+"), + 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}})})); +end Validation; diff --git a/IBPSA/Controls/OBC/CDL/Conversions/Validation/package.order b/IBPSA/Controls/OBC/CDL/Conversions/Validation/package.order new file mode 100644 index 0000000000..50d7ddd0d7 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Conversions/Validation/package.order @@ -0,0 +1,4 @@ +BooleanToInteger +BooleanToReal +IntegerToReal +RealToInteger diff --git a/IBPSA/Controls/OBC/CDL/Conversions/package.mo b/IBPSA/Controls/OBC/CDL/Conversions/package.mo new file mode 100644 index 0000000000..52d55e5d3a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Conversions/package.mo @@ -0,0 +1,30 @@ +within IBPSA.Controls.OBC.CDL; +package Conversions "Package with blocks for type conversion" + annotation ( + Documentation( + info=" +

+Package with blocks for type conversions. +

+", + 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 Conversions; diff --git a/IBPSA/Controls/OBC/CDL/Conversions/package.order b/IBPSA/Controls/OBC/CDL/Conversions/package.order new file mode 100644 index 0000000000..92db79bf1c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Conversions/package.order @@ -0,0 +1,5 @@ +BooleanToInteger +BooleanToReal +IntegerToReal +RealToInteger +Validation diff --git a/IBPSA/Controls/OBC/CDL/Discrete/FirstOrderHold.mo b/IBPSA/Controls/OBC/CDL/Discrete/FirstOrderHold.mo new file mode 100644 index 0000000000..0a3a4ee7ba --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/FirstOrderHold.mo @@ -0,0 +1,137 @@ +within IBPSA.Controls.OBC.CDL.Discrete; +block FirstOrderHold + "First order hold of a sampled-data system" + parameter Real samplePeriod( + final quantity="Time", + final unit="s", + min=1E-3) + "Sample period of component"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input signal to be sampled" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "First order hold of input signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Real t0( + final quantity="Time", + final unit="s", + fixed=false) + "First sample time instant"; + output Boolean sampleTrigger + "True, if sample time instant"; + output Boolean firstTrigger( + start=false, + fixed=true) + "Rising edge signals first sample instant"; + Real tSample( + final quantity="Time", + final unit="s") + "Time of sample"; + Real uSample + "Value of sample"; + Real pre_uSample + "Value of previous sample"; + Real c + "Slope"; + +initial equation + t0=IBPSA.Utilities.Math.Functions.round( + x=integer(time/samplePeriod)*samplePeriod, + n=6); + pre(tSample)=t0; + pre(uSample)=u; + pre(pre_uSample)=u; + pre(c)=0.0; + +equation + // Declarations that are used for all discrete blocks + sampleTrigger=sample( + t0, + samplePeriod); + when sampleTrigger then + firstTrigger=time <= t0+samplePeriod/2; + tSample=time; + uSample=u; + pre_uSample=pre(uSample); + c=if firstTrigger then + 0 + else + (uSample-pre_uSample)/samplePeriod; + end when; + /* Use pre_uSample and pre(c) to break potential algebraic loops by an + infinitesimal delay if both the continuous and the discrete part + have direct feedthrough. + */ + y=pre_uSample+pre(c)*(time-tSample); + annotation ( + defaultComponentName="firOrdHol", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={223,211,169}, + lineThickness=5.0, + borderPattern=BorderPattern.Raised, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-79.0,-41.0},{-59.0,-33.0},{-40.0,1.0},{-20.0,9.0},{0.0,63.0},{21.0,20.0},{41.0,10.0},{60.0,20.0}}, + color={0,0,127}), + Line( + points={{60.0,20.0},{81.0,10.0}}, + color={0,0,127}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs the extrapolation through the +values of the last two sampled input signals. +

+", + revisions=" + +")); +end FirstOrderHold; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/Sampler.mo b/IBPSA/Controls/OBC/CDL/Discrete/Sampler.mo new file mode 100644 index 0000000000..5188669c63 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/Sampler.mo @@ -0,0 +1,137 @@ +within IBPSA.Controls.OBC.CDL.Discrete; +block Sampler + "Ideal sampler of a continuous signal" + parameter Real samplePeriod( + final quantity="Time", + final unit="s", + min=1E-3) + "Sample period of component"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input signal to be sampled" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Sampled input signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Real t0( + final quantity="Time", + final unit="s", + fixed=false) + "First sample time instant"; + output Boolean sampleTrigger + "True, if sample time instant"; + output Boolean firstTrigger( + start=false, + fixed=true) + "Rising edge signals first sample instant"; + +initial equation + t0=IBPSA.Utilities.Math.Functions.round( + x=integer(time/samplePeriod)*samplePeriod, + n=6); + +equation + // Declarations that are used for all discrete blocks + sampleTrigger=sample( + t0, + samplePeriod); + when sampleTrigger then + firstTrigger=time <= t0+samplePeriod/2; + end when; + // Declarations specific to this type of discrete block + when {sampleTrigger,initial()} then + y=u; + end when; + annotation ( + defaultComponentName="sam", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={223,211,169}, + lineThickness=5.0, + borderPattern=BorderPattern.Raised, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Ellipse( + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{25.0,-10.0},{45.0,10.0}}), + Line( + points={{-100.0,0.0},{-45.0,0.0}}, + color={0,0,127}), + Line( + points={{45.0,0.0},{100.0,0.0}}, + color={0,0,127}), + Line( + points={{-35.0,0.0},{30.0,35.0}}, + color={0,0,127}), + Ellipse( + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-45.0,-10.0},{-25.0,10.0}})}), + Diagram( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs the input signal, sampled at a sampling rate defined +via parameter samplePeriod. +

+", + revisions=" + +")); +end Sampler; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/TriggeredMax.mo b/IBPSA/Controls/OBC/CDL/Discrete/TriggeredMax.mo new file mode 100644 index 0000000000..94da32d7a0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/TriggeredMax.mo @@ -0,0 +1,110 @@ +within IBPSA.Controls.OBC.CDL.Discrete; +block TriggeredMax + "Output the maximum, absolute value of a continuous signal at trigger instants" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input signal to be sampled" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput trigger + "Input for trigger that causes u to be sampled" + annotation (Placement(transformation(origin={0,-120},extent={{-20,-20},{20,20}},rotation=90))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Maximum of input signal over all trigger instants" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + y=u; + +equation + when trigger then + y=max( + pre(y), + abs(u)); + end when; + annotation ( + defaultComponentName="triMax", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={223,211,169}, + lineThickness=5.0, + borderPattern=BorderPattern.Raised, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Ellipse( + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{25.0,-10.0},{45.0,10.0}}), + Line( + points={{-100.0,0.0},{-45.0,0.0}}, + color={0,0,127}), + Line( + points={{45.0,0.0},{100.0,0.0}}, + color={0,0,127}), + Line( + points={{0.0,-100.0},{0.0,-26.0}}, + color={255,0,255}), + Line( + points={{-35.0,0.0},{28.0,-48.0}}, + color={0,0,127}), + Text( + extent={{-86.0,24.0},{82.0,82.0}}, + textString="max"), + Ellipse( + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-45.0,-10.0},{-25.0,10.0}})}), + Diagram( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs the input signal whenever the trigger input +signal is rising (i.e., trigger changes to +true). The maximum, absolute value of the input signal +at the sampling point is provided as the output signal. +

+", + revisions=" + +")); +end TriggeredMax; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/TriggeredMovingMean.mo b/IBPSA/Controls/OBC/CDL/Discrete/TriggeredMovingMean.mo new file mode 100644 index 0000000000..a9ad80c179 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/TriggeredMovingMean.mo @@ -0,0 +1,200 @@ +within IBPSA.Controls.OBC.CDL.Discrete; +block TriggeredMovingMean + "Triggered discrete moving mean of an input signal" + parameter Integer n( + min=1) + "Number of samples over which the input is averaged"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input signal to be sampled" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput trigger + "Input for trigger that causes u to be sampled" + annotation (Placement(transformation(origin={0,-120},extent={{-20,-20},{20,20}},rotation=90),iconTransformation(extent={{-20,-20},{20,20}},rotation=90,origin={0,-120}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Moving mean of input signal over all trigger instants" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + Integer iSample( + start=0, + fixed=true) + "Sample numbering in the calculation"; + Integer counter( + start=0, + fixed=true) + "Number of samples used for averaging calculation"; + Integer index( + start=0, + fixed=true) + "Index of the vector ySample"; + discrete Real ySample[n]( + start=zeros(n), + each fixed=true) + "Vector of samples to be averaged"; + +equation + when {initial(),trigger} then + index=mod( + pre(iSample), + n)+1; + ySample={ + if + (i == index) then + u + else + pre(ySample[i]) for i in 1:n}; + counter= + if pre(counter) == n then + n + else + pre(counter)+1; + y=sum(ySample)/counter; + iSample=pre(iSample)+1; + end when; + annotation ( + defaultComponentName="triMovMea", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={223,211,169}, + lineThickness=5.0, + borderPattern=BorderPattern.Raised, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-88,0},{70,0}}, + color={192,192,192}), + Polygon( + points={{92,0},{70,8},{70,-8},{92,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,68},{-80,-80}}, + color={192,192,192}), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,0},{-52,0}}, + color={217,67,180}), + Line( + points={{-80,0},{-68.7,34.2},{-61.5,53.1},{-55.1,66.4},{-49.4,74.6},{-43.8,79.1},{-38.2,79.8},{-32.6,76.6},{-26.9,69.7},{-21.3,59.4},{-14.9,44.1},{-6.83,21.2},{10.1,-30.8},{17.3,-50.2},{23.7,-64.2},{29.3,-73.1},{35,-78.4},{40.6,-80},{46.2,-77.6},{51.9,-71.5},{57.5,-61.9},{63.9,-47.2},{72,-24.8},{80,0}}, + smooth=Smooth.Bezier, + color={28,108,200}), + Line( + points={{-52,36},{-24,36}}, + color={217,67,180}), + Line( + points={{-52,0},{-52,36}}, + color={217,67,180}, + smooth=Smooth.Bezier), + Line( + points={{-24,36},{-24,46}}, + color={217,67,180}, + smooth=Smooth.Bezier), + Line( + points={{-24,46},{4,46}}, + color={217,67,180}), + Line( + points={{4,4},{32,4}}, + color={217,67,180}), + Line( + points={{4,46},{4,4}}, + color={217,67,180}, + smooth=Smooth.Bezier), + Line( + points={{32,-32},{60,-32}}, + color={217,67,180}), + Line( + points={{32,4},{32,-32}}, + color={217,67,180}, + smooth=Smooth.Bezier), + Line( + points={{60,-58},{82,-58}}, + color={217,67,180}), + Line( + points={{60,-32},{60,-58}}, + color={217,67,180}, + smooth=Smooth.Bezier), + Ellipse( + extent={{-25,-10},{-45,10}}, + lineColor={176,181,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{45,-10},{25,10}}, + lineColor={176,181,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,0},{-45,0}}, + color={176,181,255}), + Line( + points={{45,0},{100,0}}, + color={176,181,255}), + Line( + points={{-35,0},{28,-48}}, + color={176,181,255}), + Line( + points={{0,-100},{0,-26}}, + color={255,0,255}), + Text( + extent={{56,92},{92,60}}, + textColor={28,108,200}, + textString="%n"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs the triggered moving mean value of an input signal. +

+

+At the start of the simulation, and whenever the trigger signal is rising +(i.e., the trigger changes to true), the block samples +the input, computes the moving mean value over the past n samples, +and produces this value at its output y. +

+", + revisions=" + +")); +end TriggeredMovingMean; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/TriggeredSampler.mo b/IBPSA/Controls/OBC/CDL/Discrete/TriggeredSampler.mo new file mode 100644 index 0000000000..a21ae28181 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/TriggeredSampler.mo @@ -0,0 +1,101 @@ +within IBPSA.Controls.OBC.CDL.Discrete; +block TriggeredSampler + "Triggered sampling of continuous signals" + parameter Real y_start=0 + "Initial value of output signal"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input signal to be sampled" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput trigger + "Input for trigger that causes u to be sampled" + annotation (Placement(transformation(origin={0,-120},extent={{-20,-20},{20,20}},rotation=90))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Input signal at the last trigger instant" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + y=y_start; + +equation + when trigger then + y=u; + end when; + annotation ( + defaultComponentName="triSam", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={223,211,169}, + lineThickness=5.0, + borderPattern=BorderPattern.Raised, + fillPattern=FillPattern.Solid), + Ellipse( + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{25.0,-10.0},{45.0,10.0}}), + Line( + points={{-100.0,0.0},{-45.0,0.0}}, + color={0,0,127}), + Line( + points={{45.0,0.0},{100.0,0.0}}, + color={0,0,127}), + Line( + points={{0.0,-100.0},{0.0,-26.0}}, + color={255,0,255}), + Line( + points={{-35.0,0.0},{28.0,-48.0}}, + color={0,0,127}), + Ellipse( + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-45.0,-10.0},{-25.0,10.0}}), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Samples the continuous input signal whenever the trigger input +signal is rising (i.e., trigger changes from false to +true) and provides the sampled input signal as output. +Before the first sampling, the output signal is equal to +the initial value defined via parameter y_start. +

+", + revisions=" + +")); +end TriggeredSampler; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/UnitDelay.mo b/IBPSA/Controls/OBC/CDL/Discrete/UnitDelay.mo new file mode 100644 index 0000000000..1430a216ac --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/UnitDelay.mo @@ -0,0 +1,135 @@ +within IBPSA.Controls.OBC.CDL.Discrete; +block UnitDelay + "Output the input signal with a unit delay" + parameter Real samplePeriod( + final quantity="Time", + final unit="s", + min=1E-3) + "Sample period of component"; + parameter Real y_start=0 + "Initial value of output signal"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input signal to be sampled" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Input signal at the previous sample instant" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Real t0( + final quantity="Time", + final unit="s", + fixed=false) + "First sample time instant"; + output Boolean sampleTrigger + "True, if sample time instant"; + discrete Real u_internal + "Input value at each sampling moment"; + +initial equation + t0=IBPSA.Utilities.Math.Functions.round( + x=integer(time/samplePeriod)*samplePeriod, + n=6); + y=y_start; + u_internal=y_start; + +equation + // Declarations that are used for all discrete blocks + sampleTrigger=sample( + t0, + samplePeriod); + when sampleTrigger then + u_internal=u; + y=pre(u_internal); + end when; + annotation ( + defaultComponentName="uniDel", + Documentation( + info=" +

+Block that outputs the input signal with a unit delay: +

+
+          1
+     y = --- * u
+          z
+
+

+that is, the output signal y is the +input signal u of the +previous sample instant. Before the second sample instant, +the output y is identical to parameter y_start. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={223,211,169}, + lineThickness=5.0, + borderPattern=BorderPattern.Raised, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-30.0,0.0},{30.0,0.0}}, + color={0,0,127}), + Text( + textColor={0,0,127}, + extent={{-90.0,10.0},{90.0,90.0}}, + textString="1"), + Text( + textColor={0,0,127}, + extent={{-90.0,-90.0},{90.0,-10.0}}, + textString="z"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end UnitDelay; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/Validation/FirstOrderHold.mo b/IBPSA/Controls/OBC/CDL/Discrete/Validation/FirstOrderHold.mo new file mode 100644 index 0000000000..19bf4a00ba --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/Validation/FirstOrderHold.mo @@ -0,0 +1,62 @@ +within IBPSA.Controls.OBC.CDL.Discrete.Validation; +model FirstOrderHold + "Example model for the FirstOrderHold block" + IBPSA.Controls.OBC.CDL.Discrete.FirstOrderHold firOrdHol( + samplePeriod=0.2) + "Block that first order hold of a sampled-data system" + annotation (Placement(transformation(extent={{30,-10},{50,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=6.2831852) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Cos cos1 + "Block that outputs the cosine of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + +equation + connect(ramp1.y,cos1.u) + annotation (Line(points={{-38,0},{-12,0},{-12,0}},color={0,0,127})); + connect(cos1.y,firOrdHol.u) + annotation (Line(points={{12,0},{12,0},{28,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/FirstOrderHold.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Discrete.FirstOrderHold. +

+", + revisions=" + +"), + Icon( + 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}})})); +end FirstOrderHold; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/Validation/Sampler.mo b/IBPSA/Controls/OBC/CDL/Discrete/Validation/Sampler.mo new file mode 100644 index 0000000000..e39791f57f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/Validation/Sampler.mo @@ -0,0 +1,58 @@ +within IBPSA.Controls.OBC.CDL.Discrete.Validation; +model Sampler + "Example model for the Sampler block" + IBPSA.Controls.OBC.CDL.Discrete.Sampler sampler1( + samplePeriod=0.2) + "Ideal sampler of a continuous signal" + annotation (Placement(transformation(extent={{30,-10},{50,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=6.2831852) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sin sin1 + "Block that outputs the sine of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + +equation + connect(ramp1.y,sin1.u) + annotation (Line(points={{-39,0},{-12,0},{-12,0}},color={0,0,127})); + connect(sin1.y,sampler1.u) + annotation (Line(points={{11,0},{20,0},{28,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/Sampler.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Discrete.Sampler. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Sampler; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/Validation/TriggeredMax.mo b/IBPSA/Controls/OBC/CDL/Discrete/Validation/TriggeredMax.mo new file mode 100644 index 0000000000..a0a0c374ea --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/Validation/TriggeredMax.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Discrete.Validation; +model TriggeredMax + "Example model for the TriggeredMax block" + IBPSA.Controls.OBC.CDL.Discrete.TriggeredMax triggeredMax + "Output the maximum, absolute value of a continuous signal at trigger instants" + annotation (Placement(transformation(extent={{30,-10},{50,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=6.2831852) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sin sin1 + "Block that outputs the sine of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + width=0.5, + period=0.2) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-10,-50},{10,-30}}))); + +equation + connect(ramp1.y,sin1.u) + annotation (Line(points={{-39,0},{-12,0},{-12,0}},color={0,0,127})); + connect(sin1.y,triggeredMax.u) + annotation (Line(points={{11,0},{19.5,0},{28,0}},color={0,0,127})); + connect(booPul.y,triggeredMax.trigger) + annotation (Line(points={{11,-40},{26,-40},{40,-40},{40,-11.8}},color={255,0,255})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/TriggeredMax.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Discrete.TriggeredMax. +

+", + revisions=" + +"), + Icon( + 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}})})); +end TriggeredMax; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/Validation/TriggeredMovingMean.mo b/IBPSA/Controls/OBC/CDL/Discrete/Validation/TriggeredMovingMean.mo new file mode 100644 index 0000000000..a7d30aca3d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/Validation/TriggeredMovingMean.mo @@ -0,0 +1,83 @@ +within IBPSA.Controls.OBC.CDL.Discrete.Validation; +model TriggeredMovingMean + "Validation model for the TriggeredMovingMean block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin sin( + freqHz=1/8, + phase=0.5235987755983, + startTime=-0.5) + "Example input signal" + annotation (Placement(transformation(extent={{-60,40},{-40,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + width=0.5, + period=1, + shift=-0.5) + "Block that outputs trigger signals" + annotation (Placement(transformation(extent={{-60,-20},{-40,0}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredMovingMean triMovMea( + n=3) + "Triggered moving mean with 3 samples to average" + annotation (Placement(transformation(extent={{0,0},{20,20}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredMovingMean triMovMea1( + n=1) + "Triggered moving mean with 1 sample to average" + annotation (Placement(transformation(extent={{0,60},{20,80}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredMovingMean triMovMea2( + n=3) + "Triggered moving mean with 3 samples to average with a different trigger period" + annotation (Placement(transformation(extent={{0,-60},{20,-40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + width=0.5, + period=1) + "Block that outputs trigger signals" + annotation (Placement(transformation(extent={{-60,-80},{-40,-60}}))); + +equation + connect(sin.y,triMovMea.u) + annotation (Line(points={{-38,50},{-20,50},{-20,10},{-2,10}},color={0,0,127})); + connect(booPul.y,triMovMea.trigger) + annotation (Line(points={{-38,-10},{10,-10},{10,-2}},color={255,0,255})); + connect(booPul.y,triMovMea1.trigger) + annotation (Line(points={{-38,-10},{-10,-10},{-10,30},{10,30},{10,58}},color={255,0,255})); + connect(sin.y,triMovMea1.u) + annotation (Line(points={{-38,50},{-20,50},{-20,70},{-2,70}},color={0,0,127})); + connect(booPul1.y,triMovMea2.trigger) + annotation (Line(points={{-38,-70},{10,-70},{10,-62}},color={255,0,255})); + connect(sin.y,triMovMea2.u) + annotation (Line(points={{-38,50},{-20,50},{-20,-50},{-2,-50}},color={0,0,127})); + annotation ( + experiment( + StartTime=-0.5, + StopTime=15.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/TriggeredMovingMean.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Discrete.TriggeredMovingMean. +

+", + revisions=" + +"), + Icon( + 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}})})); +end TriggeredMovingMean; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/Validation/TriggeredSampler.mo b/IBPSA/Controls/OBC/CDL/Discrete/Validation/TriggeredSampler.mo new file mode 100644 index 0000000000..17798c10d4 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/Validation/TriggeredSampler.mo @@ -0,0 +1,72 @@ +within IBPSA.Controls.OBC.CDL.Discrete.Validation; +model TriggeredSampler + "Example model for the TriggeredSampler block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=6.2831852) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sin sin1 + "Block that outputs the sine of the input" + annotation (Placement(transformation(extent={{-20,-10},{0,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + width=0.5, + period=0.2) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-10,-50},{10,-30}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triSam + "Triggered sampler wity y_start = 0" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triSam1( + y_start=1) + "Triggered sampler with y_start = 1" + annotation (Placement(transformation(extent={{60,40},{80,60}}))); + +equation + connect(ramp1.y,sin1.u) + annotation (Line(points={{-39,0},{-22,0}},color={0,0,127})); + connect(sin1.y,triSam.u) + annotation (Line(points={{1,0},{38,0}},color={0,0,127})); + connect(booPul.y,triSam.trigger) + annotation (Line(points={{11,-40},{50,-40},{50,-12},{50,-11.8}},color={255,0,255})); + connect(sin1.y,triSam1.u) + annotation (Line(points={{1,0},{30,0},{30,50},{58,50}},color={0,0,127})); + connect(booPul.y,triSam1.trigger) + annotation (Line(points={{11,-40},{70,-40},{70,38.2}},color={255,0,255})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/TriggeredSampler.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler. +

+", + revisions=" + +"), + Icon( + 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}})})); +end TriggeredSampler; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/Validation/UnitDelay.mo b/IBPSA/Controls/OBC/CDL/Discrete/Validation/UnitDelay.mo new file mode 100644 index 0000000000..cbed5b698c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/Validation/UnitDelay.mo @@ -0,0 +1,58 @@ +within IBPSA.Controls.OBC.CDL.Discrete.Validation; +model UnitDelay + "Example model for the UnitDelay block" + IBPSA.Controls.OBC.CDL.Discrete.UnitDelay unitDelay1( + samplePeriod=0.2) + "Sample period of component" + annotation (Placement(transformation(extent={{30,-10},{50,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=6.2831852) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sin sin1 + "Block that outputs the sine of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + +equation + connect(ramp1.y,sin1.u) + annotation (Line(points={{-39,0},{-12,0},{-12,0}},color={0,0,127})); + connect(sin1.y,unitDelay1.u) + annotation (Line(points={{11,0},{20,0},{28,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/UnitDelay.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Discrete.UnitDelay. +

+", + revisions=" + +"), + Icon( + 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}})})); +end UnitDelay; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/Validation/ZeroOrderHold.mo b/IBPSA/Controls/OBC/CDL/Discrete/Validation/ZeroOrderHold.mo new file mode 100644 index 0000000000..dac2bb8dd9 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/Validation/ZeroOrderHold.mo @@ -0,0 +1,62 @@ +within IBPSA.Controls.OBC.CDL.Discrete.Validation; +model ZeroOrderHold + "Example model for the ZeroOrderHold block" + IBPSA.Controls.OBC.CDL.Discrete.ZeroOrderHold zerOrdHol( + samplePeriod=0.2) + "Output the input signal with a zero order hold" + annotation (Placement(transformation(extent={{30,-10},{50,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=6.2831852) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Cos cos1 + "Block that outputs the cosine of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + +equation + connect(ramp1.y,cos1.u) + annotation (Line(points={{-39,0},{-12,0},{-12,0}},color={0,0,127})); + connect(cos1.y,zerOrdHol.u) + annotation (Line(points={{11,0},{20,0},{28,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/ZeroOrderHold.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Discrete.ZeroOrderHold. +

+", + revisions=" + +"), + Icon( + 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}})})); +end ZeroOrderHold; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/Validation/package.mo b/IBPSA/Controls/OBC/CDL/Discrete/Validation/package.mo new file mode 100644 index 0000000000..2729317450 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/Validation/package.mo @@ -0,0 +1,41 @@ +within IBPSA.Controls.OBC.CDL.Discrete; +package Validation "Collection of models that validate the discrete blocks of the CDL" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains models that validate the blocks in + +IBPSA.Controls.OBC.CDL.Discrete. +

+", +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={8.0,14.0}, + 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}})})); +end Validation; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/Validation/package.order b/IBPSA/Controls/OBC/CDL/Discrete/Validation/package.order new file mode 100644 index 0000000000..202f8ba5ec --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/Validation/package.order @@ -0,0 +1,7 @@ +FirstOrderHold +Sampler +TriggeredMax +TriggeredMovingMean +TriggeredSampler +UnitDelay +ZeroOrderHold diff --git a/IBPSA/Controls/OBC/CDL/Discrete/ZeroOrderHold.mo b/IBPSA/Controls/OBC/CDL/Discrete/ZeroOrderHold.mo new file mode 100644 index 0000000000..a4192aaa3c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/ZeroOrderHold.mo @@ -0,0 +1,123 @@ +within IBPSA.Controls.OBC.CDL.Discrete; +block ZeroOrderHold + "Output the input signal with a zero order hold" + parameter Real samplePeriod( + final quantity="Time", + final unit="s", + min=1E-3) + "Sample period of component"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input signal to be sampled" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Zero order hold of the input signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Real t0( + final quantity="Time", + final unit="s", + fixed=false) + "First sample time instant"; + output Real ySample( + fixed=true, + start=0) + "Sampled value of input"; + output Boolean sampleTrigger + "True, if sample time instant"; + output Boolean firstTrigger( + start=false, + fixed=true) + "Rising edge signals first sample instant"; + +initial equation + t0=IBPSA.Utilities.Math.Functions.round( + x=integer(time/samplePeriod)*samplePeriod, + n=6); + +equation + // Declarations that are used for all discrete blocks + sampleTrigger=sample( + t0, + samplePeriod); + when sampleTrigger then + firstTrigger=time <= t0+samplePeriod/2; + end when; + // Declarations specific to this type of discrete block + when {sampleTrigger,initial()} then + ySample=u; + end when; + /* Define y=ySample with an infinitesimal delay to break potential + algebraic loops if both the continuous and the discrete part have + direct feedthrough + */ + y=pre(ySample); + annotation ( + defaultComponentName="zerOrdHol", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={223,211,169}, + lineThickness=5.0, + borderPattern=BorderPattern.Raised, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-78.0,-42.0},{-52.0,-42.0},{-52.0,0.0},{-26.0,0.0},{-26.0,24.0},{-6.0,24.0},{-6.0,64.0},{18.0,64.0},{18.0,20.0},{38.0,20.0},{38.0,0.0},{44.0,0.0},{44.0,0.0},{62.0,0.0}}, + color={0,0,127}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs the sampled input signal at sample +time instants. The output signal is held at the value of the last +sample instant during the sample points. +At initial time, the block feeds the input directly to the output. +

+", + revisions=" + +")); +end ZeroOrderHold; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/package.mo b/IBPSA/Controls/OBC/CDL/Discrete/package.mo new file mode 100644 index 0000000000..a35342737c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/package.mo @@ -0,0 +1,61 @@ +within IBPSA.Controls.OBC.CDL; +package Discrete "Package with discrete blocks" + annotation ( + Documentation( + info=" +

+This package contains discrete control blocks +with fixed sample period. +Every component of this package is structured in the following way: +

+
    +
  1. A component has continuous Real input and output signals.
  2. +
  3. The input signals are sampled by the given sample period + defined via parameter samplePeriod. + The first sample instant is defined by the parameter startTime. +
  4. +
  5. The output signals are computed from the sampled input signals. +
  6. +
+ +", + 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), + Line( + points={{-88,0},{-45,0}}, + color={95,95,95}), + Ellipse( + lineColor={95,95,95}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-45,-10},{-25,10}}), + Line( + points={{-35,0},{24,52}}, + color={95,95,95}), + Ellipse( + lineColor={95,95,95}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{25,-10},{45,10}}), + Line( + points={{45,0},{82,0}}, + color={95,95,95})})); +end Discrete; diff --git a/IBPSA/Controls/OBC/CDL/Discrete/package.order b/IBPSA/Controls/OBC/CDL/Discrete/package.order new file mode 100644 index 0000000000..9303418f38 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Discrete/package.order @@ -0,0 +1,8 @@ +FirstOrderHold +Sampler +TriggeredMax +TriggeredMovingMean +TriggeredSampler +UnitDelay +ZeroOrderHold +Validation diff --git a/IBPSA/Controls/OBC/CDL/Integers/Abs.mo b/IBPSA/Controls/OBC/CDL/Integers/Abs.mo new file mode 100644 index 0000000000..11be997b63 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Abs.mo @@ -0,0 +1,109 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block Abs + "Output the absolute value of the input" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u + "Input for absolute function" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Absolute value of the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=if u >= 0 then u else -u; + annotation ( + defaultComponentName="absInt", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Polygon( + points={{92,0},{70,8},{70,-8},{92,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{0,-14},{0,68}}, + color={192,192,192}), + Polygon( + points={{0,90},{-8,68},{8,68},{0,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-34,-28},{38,-76}}, + textColor={192,192,192}, + textString="abs"), + Line( + points={{-88,0},{76,0}}, + color={192,192,192}), + Ellipse( + extent={{-68,68},{-60,60}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-38,38},{-30,30}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-4,4},{4,-4}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{28,38},{36,30}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{58,68},{66,60}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Line( + points={{-64,-6},{-64,6}}, + color={192,192,192}), + Line( + points={{-34,-6},{-34,6}}, + color={192,192,192}), + Line( + points={{32,-6},{32,6}}, + color={192,192,192}), + Line( + points={{62,-6},{62,6}}, + color={192,192,192}), + Line( + points={{-8,64},{8,64}}, + color={192,192,192}), + Line( + points={{-8,34},{8,34}}, + color={192,192,192})}), + Documentation( + info=" +

+Block that outputs y = abs(u), +where +u is an Integer input. +

+", + revisions=" + +")); +end Abs; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Add.mo b/IBPSA/Controls/OBC/CDL/Integers/Add.mo new file mode 100644 index 0000000000..9b610b866a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Add.mo @@ -0,0 +1,70 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block Add + "Output the sum of the two inputs" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u1 + "Input to be added" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u2 + "Input to be added" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Sum of the two inputs" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1+u2; + +annotation (defaultComponentName="addInt", + Documentation(info=" +

+Block that outputs y as the sum of the +two Integer input signals u1 and u2, +

+
+    y = u1 + u2.
+
+", +revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,60},{-74,24},{-44,24}}, + color={255,127,0}), + Line( + points={{-100,-60},{-74,-28},{-42,-28}}, + color={255,127,0}), + Ellipse( + lineColor={255,127,0}, + extent={{-50,-50},{50,50}}), + Line( + points={{50,0},{100,0}}, + color={255,127,0}), + Text( + extent={{-36,-24},{40,44}}, + textString="+")})); +end Add; diff --git a/IBPSA/Controls/OBC/CDL/Integers/AddParameter.mo b/IBPSA/Controls/OBC/CDL/Integers/AddParameter.mo new file mode 100644 index 0000000000..64d2973341 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/AddParameter.mo @@ -0,0 +1,67 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block AddParameter "Output the sum of an input plus a parameter" + parameter Integer p + "Parameter to be added to the input"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u + "Input to be added to the parameter" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Sum of the parameter and the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u+p; + annotation ( + defaultComponentName="addPar", + Documentation( + info=" +

+Block that outputs y = u + p, +where p is parameter and u is an input. +

+", +revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Line(points={{-54,66},{-28,30},{2,30}}, color={255,127,0}), + Line(points={{-100,0},{100,0}}, color={255,127,0}), + Text( + extent={{-122,58},{-17,98}}, + textColor={255,127,0}, + textString="%p"), + Ellipse( + lineColor={255,127,0}, + extent={{-12,-52},{88,48}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{0,-26},{76,42}}, + textString="+", + textColor={255,127,0}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end AddParameter; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Change.mo b/IBPSA/Controls/OBC/CDL/Integers/Change.mo new file mode 100644 index 0000000000..5b6fbb429a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Change.mo @@ -0,0 +1,93 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block Change + "Output whether the Integer input changes values, increases or decreases" + parameter Integer pre_u_start=0 + "Start value of pre(u) at initial time"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u + "Integer to be monitored for a change in value" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output that is true when the input changes its value" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput up + "Output that is true when the input increased its value" + annotation (Placement(transformation(extent={{100,40},{140,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput down + "Output that is true when the input decreased its value" + annotation (Placement(transformation(extent={{100,-80},{140,-40}}))); + +initial equation + pre(u)=pre_u_start; + +equation + y=change(u); + up=u > pre(u); + down=u < pre(u); + annotation ( + defaultComponentName="cha", + Icon( + coordinateSystem( + preserveAspectRatio=true), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-50,62},{50,-56}}, + textColor={255,127,0}, + textString="change"), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})}), + Documentation( + info=" +

+Block that evaluates the integer input u to check if its value +changes. +

+ +", + revisions=" + +")); +end Change; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Equal.mo b/IBPSA/Controls/OBC/CDL/Integers/Equal.mo new file mode 100644 index 0000000000..6ff03796b1 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Equal.mo @@ -0,0 +1,74 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block Equal + "Output y is true, if input u1 is equal to input u2" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u1 + "Input to be checked for equality with other input" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u2 + "Input to be checked for equality with other input" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs that is true if the two inputs are equal, and false otherwise" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1 == u2; + annotation ( + defaultComponentName="intEqu", + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{73,7},{87,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{32,10},{52,-10}}, + lineColor={255,127,0}), + Line( + points={{-100,-80},{42,-80},{42,0}}, + color={255,127,0}), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-76,-36},{20,54}}, + textColor={255,127,0}, + textString="=")}), + Documentation( + info=" +

+Block that outputs true if the Integer input u1 +is equal to the Integer input u2. +Otherwise the output is false. +

+", + revisions=" + +")); +end Equal; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Greater.mo b/IBPSA/Controls/OBC/CDL/Integers/Greater.mo new file mode 100644 index 0000000000..fe81658840 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Greater.mo @@ -0,0 +1,74 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block Greater + "Output y is true, if input u1 is greater than input u2" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u1 + "First input u1" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u2 + "Second input u2" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true if u1 is greater than u2" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1 > u2; + annotation ( + defaultComponentName="intGre", + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{73,7},{87,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{32,10},{52,-10}}, + lineColor={255,127,0}), + Line( + points={{-100,-80},{42,-80},{42,0}}, + color={255,127,0}), + Line( + points={{-54,22},{-8,2},{-54,-18}}, + thickness=0.5, + color={255,127,0}), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})}), + Documentation( + info=" +

+Block that outputs true if the Integer input u1 +is greater than the Integer input u2. +Otherwise the output is false. +

+", + revisions=" + +")); +end Greater; diff --git a/IBPSA/Controls/OBC/CDL/Integers/GreaterEqual.mo b/IBPSA/Controls/OBC/CDL/Integers/GreaterEqual.mo new file mode 100644 index 0000000000..62d7966e87 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/GreaterEqual.mo @@ -0,0 +1,78 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block GreaterEqual + "Output y is true, if input u1 is greater or equal than input u2" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u1 + "First input u1" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u2 + "Second input u2" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true if u1 is greater or equal than u2" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1 >= u2; + annotation ( + defaultComponentName="intGreEqu", + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{73,7},{87,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{32,10},{52,-10}}, + lineColor={255,127,0}), + Line( + points={{-100,-80},{42,-80},{42,0}}, + color={255,127,0}), + Line( + points={{-54,22},{-8,2},{-54,-18}}, + thickness=0.5, + color={255,127,0}), + Line( + points={{-52,-36},{-6,-14}}, + thickness=0.5, + color={255,127,0}), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})}), + Documentation( + info=" +

+Block that outputs true if Integer the input u1 +is greater than or equal to the Integer input u2. +Otherwise the output is false. +

+", + revisions=" + +")); +end GreaterEqual; diff --git a/IBPSA/Controls/OBC/CDL/Integers/GreaterEqualThreshold.mo b/IBPSA/Controls/OBC/CDL/Integers/GreaterEqualThreshold.mo new file mode 100644 index 0000000000..62b344c199 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/GreaterEqualThreshold.mo @@ -0,0 +1,80 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block GreaterEqualThreshold + "Output y is true, if input u is greater or equal than a threshold" + parameter Integer t=0 + "Threshold against which the input is compared to"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u + "Input to be compared against the threshold" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true if u is greater or equal than the threshold" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u >= t; + annotation ( + defaultComponentName="intGreEquThr", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + extent={{-150,-140},{150,-110}}, + textColor={0,0,0}, + textString="%t"), + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-54,22},{-8,2},{-54,-18}}, + thickness=0.5, + color={255,127,0}), + Line( + points={{-52,-36},{-6,-14}}, + thickness=0.5, + color={255,127,0})}), + Documentation( + info=" +

+Block that outputs true if the Integer input is greater than or equal to +the parameter t. +Otherwise the output is false. +

+", + revisions=" + +")); +end GreaterEqualThreshold; diff --git a/IBPSA/Controls/OBC/CDL/Integers/GreaterThreshold.mo b/IBPSA/Controls/OBC/CDL/Integers/GreaterThreshold.mo new file mode 100644 index 0000000000..7f20cf1d8b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/GreaterThreshold.mo @@ -0,0 +1,76 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block GreaterThreshold + "Output y is true, if input u is greater than a threshold" + parameter Integer t=0 + "Threshold against which the input is compared to"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u + "Input to be compared against the threshold" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true if u is greater than the threshold" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u > t; + annotation ( + defaultComponentName="intGreThr", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,-140},{150,-110}}, + textColor={0,0,0}, + textString="%t"), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name"), + Line( + points={{-54,22},{-8,2},{-54,-18}}, + thickness=0.5, + color={255,127,0})}), + Documentation( + info=" +

+Block that outputs true if the Integer input is greater than +the parameter t. +Otherwise the output is false. +

+", + revisions=" + +")); +end GreaterThreshold; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Less.mo b/IBPSA/Controls/OBC/CDL/Integers/Less.mo new file mode 100644 index 0000000000..2c793fd9e4 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Less.mo @@ -0,0 +1,74 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block Less + "Output y is true, if input u1 is less than input u2" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u1 + "First input u1" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u2 + "Second input u2" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true if u1 is less than u2" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1 < u2; + annotation ( + defaultComponentName="intLes", + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{73,7},{87,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{32,10},{52,-10}}, + lineColor={255,127,0}), + Line( + points={{-100,-80},{42,-80},{42,0}}, + color={255,127,0}), + Line( + points={{-6,18},{-50,-2},{-6,-20}}, + thickness=0.5, + color={255,127,0}), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")}), + Documentation( + info=" +

+Block that outputs true if the Integer input u1 +is less than the Integer input u2. +Otherwise the output is false. +

+", + revisions=" + +")); +end Less; diff --git a/IBPSA/Controls/OBC/CDL/Integers/LessEqual.mo b/IBPSA/Controls/OBC/CDL/Integers/LessEqual.mo new file mode 100644 index 0000000000..56f1e14e97 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/LessEqual.mo @@ -0,0 +1,78 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block LessEqual + "Output y is true, if input u1 is less or equal than input u2" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u1 + "First input" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u2 + "Second input" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true if u1 is less or equal than u2" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1 <= u2; + annotation ( + defaultComponentName="intLesEqu", + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{73,7},{87,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{32,10},{52,-10}}, + lineColor={255,127,0}), + Line( + points={{-100,-80},{42,-80},{42,0}}, + color={255,127,0}), + Line( + points={{-10,20},{-54,0},{-10,-18}}, + thickness=0.5, + color={255,127,0}), + Line( + points={{-54,-18},{-14,-34}}, + thickness=0.5, + color={255,127,0}), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")}), + Documentation( + info=" +

+Block that outputs true if the Integer input u1 +is less than or equal to the Integer input u2. +Otherwise the output is false. +

+", + revisions=" + +")); +end LessEqual; diff --git a/IBPSA/Controls/OBC/CDL/Integers/LessEqualThreshold.mo b/IBPSA/Controls/OBC/CDL/Integers/LessEqualThreshold.mo new file mode 100644 index 0000000000..e7684209e6 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/LessEqualThreshold.mo @@ -0,0 +1,80 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block LessEqualThreshold + "Output y is true, if input u is less or equal than a threshold" + parameter Integer t=0 + "Threshold for comparison"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u + "Input to be compared" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true if u is less or equal than the threshold" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u <= t; + annotation ( + defaultComponentName="intLesEquThr", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,-140},{150,-110}}, + textColor={0,0,0}, + textString="%t"), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name"), + Line( + points={{-54,-18},{-14,-34}}, + thickness=0.5, + color={255,127,0}), + Line( + points={{-10,20},{-54,0},{-10,-18}}, + thickness=0.5, + color={255,127,0})}), + Documentation( + info=" +

+Block that outputs true if the Integer input is less than or equal to +the parameter t. +Otherwise the output is false. +

+", + revisions=" + +")); +end LessEqualThreshold; diff --git a/IBPSA/Controls/OBC/CDL/Integers/LessThreshold.mo b/IBPSA/Controls/OBC/CDL/Integers/LessThreshold.mo new file mode 100644 index 0000000000..c7eb2a775b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/LessThreshold.mo @@ -0,0 +1,71 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block LessThreshold + "Output y is true, if input u is less than a threshold" + parameter Integer t=0 + "Threshold for comparison"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u + "Input to be compared against the threshold" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true if u is less than the threshold" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u < t; + annotation ( + defaultComponentName="intLesThr", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,-140},{150,-110}}, + textColor={0,0,0}, + textString="%t"), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name"), + Line( + points={{-10,20},{-54,0},{-10,-18}}, + thickness=0.5, + color={255,127,0})}), + Documentation( + info=" +

+Block that outputs true if the Integer input is less than +the parameter t. +Otherwise the output is false. +

+", + revisions=" + +")); +end LessThreshold; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Max.mo b/IBPSA/Controls/OBC/CDL/Integers/Max.mo new file mode 100644 index 0000000000..1f1bc80502 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Max.mo @@ -0,0 +1,58 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block Max + "Pass through the largest signal" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u1 + "Input to the max function" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u2 + "Input to the max function" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Maximum of the inputs" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=max(u1, u2); + annotation ( + defaultComponentName="maxInt", + Documentation( + info=" +

+Block that outputs y = max(u1, u2), +where +u1 and u2 are inputs. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-90,36},{90,-36}}, + textColor={160,160,164}, + textString="max()")})); +end Max; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Min.mo b/IBPSA/Controls/OBC/CDL/Integers/Min.mo new file mode 100644 index 0000000000..16873247e2 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Min.mo @@ -0,0 +1,58 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block Min + "Pass through the smallest signal" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u1 + "Input to the min function" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u2 + "Input to the max function" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Minimum of the inputs" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=min(u1, u2); + annotation ( + defaultComponentName="minInt", + Documentation( + info=" +

+Block that outputs y = min(u1, u2), +where +u1 and u2 are inputs. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-90,36},{90,-36}}, + textColor={160,160,164}, + textString="min()")})); +end Min; diff --git a/IBPSA/Controls/OBC/CDL/Integers/MultiSum.mo b/IBPSA/Controls/OBC/CDL/Integers/MultiSum.mo new file mode 100644 index 0000000000..05d90b9356 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/MultiSum.mo @@ -0,0 +1,84 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block MultiSum + "Sum of Integers, y = k[1]*u[1] + k[2]*u[2] + ... + k[n]*u[n]" + parameter Integer nin(min=0)=0 + "Number of input connections" + annotation (Dialog(connectorSizing=true),HideResult=true); + parameter Integer k[nin]=fill(1, nin) + "Input gains"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u[nin] + "Inputs to be multipled with gain and added" + annotation (Placement(transformation(extent={{-140,70},{-100,-70}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Sum of inputs multiplied by the gain" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + if size(u, 1) > 0 then + y=k*u; + else + y=0; + end if; + annotation ( + defaultComponentName="mulSumInt", + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-200,-110},{200,-140}}, + textColor={0,0,0}, + fillColor={255,213,170}, + fillPattern=FillPattern.Solid, + textString="%k"), + Text( + extent={{-82,84},{82,-52}}, + textColor={255,127,0}, + fillColor={255,213,170}, + fillPattern=FillPattern.Solid, + textString="+"), + Text( + extent={{-144,150},{156,110}}, + textString="%name", + textColor={0,0,255})}), + Documentation( + info=" +

+Block that outputs +

+

+y = ∑i=1n ki   ui, +

+

+where k is a parameter with n elements and u is +an input of the same length. +The dimension of u can be enlarged by +drawing an additional connection line. The connection is automatically connected +to this new free index. +

+ +

+If no connection to the input connector u is present, +the output is y=0. +

+

+See + +IBPSA.Controls.OBC.CDL.Integers.Validation.MultiSum +for an example. +

+", + revisions=" + +")); +end MultiSum; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Multiply.mo b/IBPSA/Controls/OBC/CDL/Integers/Multiply.mo new file mode 100644 index 0000000000..fe78df1088 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Multiply.mo @@ -0,0 +1,71 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block Multiply "Output product of the two inputs" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u1 + "Input for multiplication" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u2 + "Input for multiplication" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Product of the inputs" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1*u2; + annotation ( + defaultComponentName="mulInt", + Documentation( + info=" +

+Block that outputs y = u1 * u2, +where +u1 and u2 are Integer inputs. +

+", +revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,60},{-40,60},{-30,40}}, + color={255,127,0}), + Line( + points={{-100,-60},{-40,-60},{-30,-40}}, + color={255,127,0}), + Line( + points={{50,0},{100,0}}, + color={255,127,0}), + Line( + points={{-30,0},{30,0}}), + Line( + points={{-15,25.99},{15,-25.99}}), + Line( + points={{-15,-25.99},{15,25.99}}), + Ellipse( + lineColor={255,127,0}, + extent={{-50,-50},{50,50}}), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})})); +end Multiply; diff --git a/IBPSA/Controls/OBC/CDL/Integers/OnCounter.mo b/IBPSA/Controls/OBC/CDL/Integers/OnCounter.mo new file mode 100644 index 0000000000..f163c92e22 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/OnCounter.mo @@ -0,0 +1,79 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block OnCounter + "Increment the output if the input switches to true" + parameter Integer y_start=0 + "Initial and reset value of y if input reset switches to true"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput trigger + "Trigger, when set to true, the counter increases" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput reset + "Reset, when true, the counter is set to y_start" + annotation (Placement(transformation(extent={{-20,-20},{20,20}},rotation=90,origin={0,-120}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Counter value" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + pre(y)=y_start; + +equation + when {trigger,reset} then + y=if reset then + y_start + else + pre(y)+1; + end when; + annotation ( + defaultComponentName="onCouInt", + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}, + initialScale=0.06), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={255,213,170}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-64,-62},{58,-86}}, + textColor={0,0,0}, + textString="reset"), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})}), + Documentation( + info=" +

+Block that outputs how often the trigger input changed to true +since the last invocation of reset. +

+

+This block may be used as a counter. Its output y starts +at the parameter value y_start. +Whenever the input signal trigger changes to true, +the output is incremented by 1. +When the input reset changes to true, +then the output is reset to y = y_start. +If both inputs trigger and reset change +simultaneously, then the ouput is y = y_start. +

+", + revisions=" + +")); +end OnCounter; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Sources/Constant.mo b/IBPSA/Controls/OBC/CDL/Integers/Sources/Constant.mo new file mode 100644 index 0000000000..3d1bece672 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Sources/Constant.mo @@ -0,0 +1,62 @@ +within IBPSA.Controls.OBC.CDL.Integers.Sources; +block Constant + "Output constant signal of type Integer" + parameter Integer k + "Constant output value"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Output with constant value" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=k; + annotation ( + defaultComponentName="conInt", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,68},{-80,-80}}, + color={192,192,192}), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-90,-70},{82,-70}}, + color={192,192,192}), + Polygon( + points={{90,-70},{68,-62},{68,-78},{90,-70}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,0},{80,0}}), + Text( + extent={{-150,-150},{150,-110}}, + textColor={0,0,0}, + textString="k=%k")}), + Documentation( + info=" +

+Block that outputs a constant signal y = k, +where k is an Integer-valued parameter. +

+ +

+\"IntegerConstant.png\" +

+")); +end Constant; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Sources/Pulse.mo b/IBPSA/Controls/OBC/CDL/Integers/Sources/Pulse.mo new file mode 100644 index 0000000000..5131cecfa5 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Sources/Pulse.mo @@ -0,0 +1,162 @@ +within IBPSA.Controls.OBC.CDL.Integers.Sources; +block Pulse + "Generate pulse signal of type Integer" + parameter Integer amplitude=1 + "Amplitude of pulse"; + parameter Real width( + final min=Constants.small, + final max=1, + final unit="1")=0.5 + "Width of pulse in fraction of period"; + parameter Real period( + final quantity="Time", + final unit="s", + final min=Constants.small) + "Time for one period"; + parameter Real shift( + final quantity="Time", + final unit="s")=0 + "Shift time for output"; + parameter Integer offset=0 + "Offset of output signals"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Output connector with pulse value" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + Logical.Sources.Pulse booPul( + final width=width, + final period=period, + final shift=shift) + "Boolean pulse" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + Conversions.BooleanToInteger booToInt( + final integerTrue=offset+amplitude, + final integerFalse=offset) + "Boolean to integer conversion" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + +equation + connect(booPul.y,booToInt.u) + annotation (Line(points={{-18,0},{18,0}},color={255,0,255})); + connect(booToInt.y,y) + annotation (Line(points={{42,0},{100,0}},color={255,127,0})); + annotation ( + defaultComponentName="intPul", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,68},{-80,-80}}, + color={244,125,35}), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={244,125,35}, + fillColor={244,125,35}, + fillPattern=FillPattern.Solid), + Line( + points={{-90,-70},{82,-70}}, + color={255,170,85}), + Text( + extent={{-147,-152},{153,-112}}, + textColor={0,0,0}, + textString="period=%period"), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3))), + Line( + points={{-132,-18}}, + color={28,108,200}), + Polygon( + points={{-80,52},{-68,56},{-68,48},{-80,52}}, + fillColor={135,135,135}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0}), + Line( + points={{-80,52},{-4,52}}, + color={135,135,135}), + Text( + extent={{-66,80},{-8,56}}, + textColor={135,135,135}, + textString="%period"), + Polygon( + points={{-2,52},{-14,56},{-14,48},{-2,52}}, + fillColor={135,135,135}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0}), + Line( + points={{40,34},{72,34}}, + color={135,135,135}), + Polygon( + points={{74,34},{62,38},{62,30},{74,34}}, + fillColor={135,135,135}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0}), + Text( + extent={{38,64},{96,40}}, + textColor={135,135,135}, + textString="%shift"), + Line( + points={{79,-70},{40,-70},{40,44},{-1,44},{-1,-70},{-41,-70},{-41,44},{-80,44}}), + Polygon( + points={{90,-70},{68,-62},{68,-78},{90,-70}}, + lineColor={244,125,35}, + fillColor={244,125,35}, + fillPattern=FillPattern.Solid)}), + Documentation( + info=" +

+Block that outputs a pulse signal as shown below. +

+

+\"Pulse.png\" +

+

+The pulse signal is generated an infinite number of times, and aligned with time=shift. +

+", + revisions=" + +")); +end Pulse; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Sources/TimeTable.mo b/IBPSA/Controls/OBC/CDL/Integers/Sources/TimeTable.mo new file mode 100644 index 0000000000..d59e32ec7f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Sources/TimeTable.mo @@ -0,0 +1,221 @@ +within IBPSA.Controls.OBC.CDL.Integers.Sources; +block TimeTable + "Table look-up with respect to time with constant segments" + parameter Real table[:,:] + "Table matrix with time as a first table column (in seconds, unless timeScale is not 1) and Integers in all other columns"; + parameter Real timeScale( + final unit="1")=1 + "Time scale of first table column. Set to 3600 if time in table is in hours"; + parameter Real period( + final quantity="Time", + final unit="s", + min=1E-6) + "Periodicity of table"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y[nout] + "Output with tabulated values" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + final parameter Integer nout=size( + table, + 2)-1 + "Dimension of output vector"; + final parameter Integer nT=size( + table, + 1) + "Number of time stamps"; + parameter Real t0( + final quantity="Time", + final unit="s", + fixed=false) + "First sample time instant"; + final parameter Real timeStamps[:]( + each final quantity="Time", + each final unit="s")=timeScale*table[1:end,1] + "Time stamps"; + final parameter Integer val[:,:]=integer( + table[1:end,2:end]+ones( + nT, + nout)*Constants.small) + "Table values as Integer"; + Integer idx( + fixed=false) + "Index for table lookup"; + function getIndex + "Function to get the index for the table look-up" + input Real t( + final quantity="Time", + final unit="s") + "Current time"; + input Real period( + final quantity="Time", + final unit="s") + "Time period"; + input Real x[:]( + each final quantity="Time", + each final unit="s") + "Time stamps"; + output Integer k + "Index in table"; + + protected + Real tS( + final quantity="Time", + final unit="s") + "Time shifted so it is within the period"; + + algorithm + tS := mod( + t, + period); + k :=-1; + for i in size( + x, + 1):-1:1 loop + if tS >= x[i]-1E-6 then + k := i; + break; + end if; + end for; + end getIndex; + +initial equation + t0=IBPSA.Utilities.Math.Functions.round( + x=integer(time/period)*period, + n=6); + assert( + nT > 0, + "No table values defined."); + // Check that all values in the second column are Integer values + for i in 1:nT loop + for j in 2:size( + table, + 2) loop + assert( + abs( + table[i,j]-integer( + table[i,j])) < Constants.small, + "In "+getInstanceName()+": Table value table["+String(i)+", "+String(j)+"] = "+String( + table[i,j])+" is not an Integer."); + end for; + end for; + assert( + abs( + table[1,1]) < Constants.small, + "In "+getInstanceName()+": First time stamp must be zero as otherwise no data is defined for the start of the table."); + assert( + period-table[1,end] > Constants.small, + "In "+getInstanceName()+": Last time stamp in table must be smaller than period."); + idx=getIndex( + time, + period, + timeStamps); + y[:]=val[idx,:]; + +equation + when {sample(t0+timeStamps[i],period) for i in 1:nT} then + idx=getIndex( + time, + period, + timeStamps); + y[:]=val[idx,:]; + end when; + annotation ( + defaultComponentName="intTimTab", + Documentation( + info=" +

+Block that outputs Integer time table values. +

+

+The block takes as a parameter a time table of a format: +

+
+table = [ 0*3600, 2;
+          6*3600, 1;
+         18*3600, 8];
+period = 24*3600;
+
+

+where the first column of table is time and the remaining column(s) are the table values. +The time column contains Real values that are in units of seconds if timeScale = 1. +The parameter timeScale can be used to scale the time values, for example, use +timeScale = 3600 if the values in the first column are interpreted as hours. +

+

+The values in column two and higher must be of type Integer, otherwise the model stops with an error. +

+

+Until a new tabulated value is set, the previous tabulated value is returned. +

+

+The table scope is repeated periodically with periodicity period. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={244,125,35}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Polygon( + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid, + points={{-80.0,90.0},{-88.0,68.0},{-72.0,68.0},{-80.0,90.0}}), + Line( + points={{-80.0,68.0},{-80.0,-80.0}}, + color={192,192,192}), + Line( + points={{-90.0,-70.0},{82.0,-70.0}}, + color={192,192,192}), + Polygon( + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid, + points={{90.0,-70.0},{68.0,-62.0},{68.0,-78.0},{90.0,-70.0}}), + Rectangle( + lineColor={255,255,255}, + fillColor={255,215,136}, + fillPattern=FillPattern.Solid, + extent={{-48.0,-50.0},{2.0,70.0}}), + Line( + points={{-48.0,-50.0},{-48.0,70.0},{52.0,70.0},{52.0,-50.0},{-48.0,-50.0},{-48.0,-20.0},{52.0,-20.0},{52.0,10.0},{-48.0,10.0},{-48.0,40.0},{52.0,40.0},{52.0,70.0},{2.0,70.0},{2.0,-51.0}})})); +end TimeTable; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/Constant.mo b/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/Constant.mo new file mode 100644 index 0000000000..83b1efc9dd --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/Constant.mo @@ -0,0 +1,44 @@ +within IBPSA.Controls.OBC.CDL.Integers.Sources.Validation; +model Constant + "Validate the Constant block" + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant con( + k=5) + "Block output integer constant value" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/Constant.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Sources.Constant. +

+ +", + revisions=" + +"), + Icon( + 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}})})); +end Constant; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/Pulse.mo b/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/Pulse.mo new file mode 100644 index 0000000000..d444a49170 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/Pulse.mo @@ -0,0 +1,67 @@ +within IBPSA.Controls.OBC.CDL.Integers.Sources.Validation; +model Pulse + "Validation model for the Integer Pulse block" + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse pul3( + amplitude=1, + width=0.5, + period=1, + offset=3) + "Block that generates pulse signal of type Integer at simulation start time" + annotation (Placement(transformation(extent={{-10,-80},{10,-60}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse pul1( + amplitude=2, + width=0.5, + period=1, + offset=1, + shift=1.75) + "Block that generates pulse signal of type Integer starting from after the simulation start time" + annotation (Placement(transformation(extent={{-10,0},{10,20}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse pul2( + amplitude=3, + width=0.5, + period=1, + offset=-2, + shift=-1.25) + "Block that generates pulse signal of type Integer starting from before the simulation start time" + annotation (Placement(transformation(extent={{-10,-40},{10,-20}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse pul( + width=0.5, + period=1) + "Block that generates pulse signal of type Integer at simulation start time and has infinite number of periods" + annotation (Placement(transformation(extent={{-10,40},{10,60}}))); + annotation ( + experiment( + StopTime=5, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/Pulse.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Pulse; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/TimeTable.mo b/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/TimeTable.mo new file mode 100644 index 0000000000..59164ca38d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/TimeTable.mo @@ -0,0 +1,68 @@ +within IBPSA.Controls.OBC.CDL.Integers.Sources.Validation; +model TimeTable + "Validation model for TimeTable block" + IBPSA.Controls.OBC.CDL.Integers.Sources.TimeTable intTimTab( + table=[ + 0,1,4; + 1.3,2,2; + 2.9,0,-1; + 4,3,7], + period=5) + "Integer time table" + annotation (Placement(transformation(extent={{-40,40},{-20,60}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.TimeTable intTimTab1( + table=[ + 0,-1,-2; + 6,1,4; + 7.3,2,2; + 8.9,0,-1; + 10,3,7], + period=11) + "Integer time table" + annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.TimeTable tabOneRow( + table=[ + 0,-1], + period=2) + "Time table with only one row of data" + annotation (Placement(transformation(extent={{-40,-40},{-20,-20}}))); + annotation ( + experiment( + Tolerance=1e-6, + StopTime=15.0), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/TimeTable.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Sources.TimeTable. +

+", + revisions=" + +"), + Icon( + 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}})})); +end TimeTable; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/TimeTableNegativeStartTime.mo b/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/TimeTableNegativeStartTime.mo new file mode 100644 index 0000000000..022bb3e046 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/TimeTableNegativeStartTime.mo @@ -0,0 +1,72 @@ +within IBPSA.Controls.OBC.CDL.Integers.Sources.Validation; +model TimeTableNegativeStartTime + "Validation model for TimeTable block with negative start time" + IBPSA.Controls.OBC.CDL.Integers.Sources.TimeTable intTimTab( + table=[ + 0,1,4; + 1.3,2,2; + 2.9,0,-1; + 4,3,7], + period=5) + "Integer time table" + annotation (Placement(transformation(extent={{-40,40},{-20,60}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.TimeTable intTimTab1( + table=[ + 0,-1,-2; + 6,1,4; + 7.3,2,2; + 8.9,0,-1; + 10,3,7], + period=11) + "Integer time table" + annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.TimeTable tabOneRow( + table=[ + 0,-1], + period=2) + "Time table with only one row of data" + annotation (Placement(transformation(extent={{-40,-40},{-20,-20}}))); + annotation ( + experiment( + Tolerance=1e-6, + StartTime=-5.0, + StopTime=10.0), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/TimeTableNegativeStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

+This model validates the block + +IBPSA.Controls.OBC.CDL.Integers.Sources.TimeTable. +The model is identical to + +IBPSA.Controls.OBC.CDL.Integers.Sources.Validation.TimeTable +except that the start time is negative. +", + revisions=" +

+"), + Icon( + 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}})})); +end TimeTableNegativeStartTime; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/package.mo b/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/package.mo new file mode 100644 index 0000000000..ef71fd3acb --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL.Integers.Sources; +package Validation "Collection of models that validate the logical sources blocks of the CDL" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains models that validate the blocks in + +IBPSA.Controls.OBC.CDL.Integers.Sources. +

+

+The examples plot various outputs, which have been verified against +analytical solutions. These model outputs are stored as reference data to +allow continuous validation whenever models in the library change. +

+"), + 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}})})); +end Validation; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/package.order b/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/package.order new file mode 100644 index 0000000000..dd6122382b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Sources/Validation/package.order @@ -0,0 +1,4 @@ +Constant +Pulse +TimeTable +TimeTableNegativeStartTime diff --git a/IBPSA/Controls/OBC/CDL/Integers/Sources/package.mo b/IBPSA/Controls/OBC/CDL/Integers/Sources/package.mo new file mode 100644 index 0000000000..b6e3294db1 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Sources/package.mo @@ -0,0 +1,33 @@ +within IBPSA.Controls.OBC.CDL.Integers; +package Sources "Package with blocks that generate source signals" + annotation ( + Documentation( + info=" +

+Package with blocks that generate signals. +

+"), + 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={23.3333,0}, + fillColor={128,128,128}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-23.333,30.0},{46.667,0.0},{-23.333,-30.0}}), + Rectangle( + fillColor={128,128,128}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{-70,-4.5},{0,4.5}})})); +end Sources; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Sources/package.order b/IBPSA/Controls/OBC/CDL/Integers/Sources/package.order new file mode 100644 index 0000000000..04261d0db1 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Sources/package.order @@ -0,0 +1,4 @@ +Constant +Pulse +TimeTable +Validation diff --git a/IBPSA/Controls/OBC/CDL/Integers/Stage.mo b/IBPSA/Controls/OBC/CDL/Integers/Stage.mo new file mode 100644 index 0000000000..61a90bda16 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Stage.mo @@ -0,0 +1,143 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block Stage "Output total stages that should be enabled" + + parameter Integer n(final min=1) + "Number of stages that could be enabled"; + + parameter Real holdDuration( + final quantity="Time", + final unit="s", + min=0) + "Minimum time that the output needs to be held constant. Set to 0 to disable hold time"; + + parameter Real h( + min=0.001/n, + max=0.5/n) = 0.02/n "Hysteresis for comparing input with threshold"; + + parameter Integer pre_y_start = 0 + "Value of pre(y) at initial time"; + + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u( + final min=0, + final max=1) + "Input between 0 and 1 for specifying stages" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}), + iconTransformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y( + final min=1, + final max=n) + "Total number of stages that should be enabled" + annotation (Placement(transformation(extent={{100,-20},{140,20}}), + iconTransformation(extent={{100,-20},{140,20}}))); + +protected + final parameter Real staThr[n]={(i - 1)/n for i in 1:n} + "Stage thresholds"; + discrete Real tNext( + final unit="s") + "Next instant at which the block checks if it has passed the minimum hold time"; + discrete Real upperThreshold + "Current upper bound of the stage range which the input is in"; + discrete Real lowerThreshold + "Current lower bound of the stage range which the input is in"; + Boolean checkUpper + "Check if the input value is greater than the upper bound"; + Boolean checkLower + "Check if the input value is greater than the lower bound"; + +initial equation + upperThreshold = 0; + lowerThreshold = 0; + pre(checkUpper) = false; + pre(checkLower) = true; + tNext =time + holdDuration; + pre(y)=pre_y_start; + +equation + checkUpper = not pre(checkUpper) and (u > (pre(upperThreshold) + h)) or pre(checkUpper) and (u >= (pre(upperThreshold) - h)); + checkLower = not pre(checkLower) and (u > (pre(lowerThreshold) + h)) or pre(checkLower) and (u >= (pre(lowerThreshold) - h)); + + when (time >= pre(tNext) and (checkUpper or not checkLower)) then + tNext =time + holdDuration; + y =if (u >= staThr[n]) + then + n + else + sum({(if ((u < staThr[i]) and (u >= staThr[i - 1])) then i - 1 else 0) for i in 2:n}); + upperThreshold = if (y == n) then staThr[n] else staThr[y + 1]; + lowerThreshold = if (y == 0) then pre(lowerThreshold) else staThr[y]; + end when; + +annotation (defaultComponentName="sta", + Icon(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={255,213,170}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-100,140},{100,100}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-98,14},{-54,-12}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(u, + leftJustified=false, + significantDigits=3))), + Text( + extent={{56,16},{100,-10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3))), + Text( + extent={{-62,70},{64,100}}, + textColor={0,0,0}, + textString="h=%h"), + Line( + points={{-60,-60},{-40,-60},{-40,-20},{0,-20},{0,20},{40,20},{40,60},{ + 60,60}}, + color={0,0,0}, + thickness=0.5), + Line( + points={{-80,-60},{40,60}}, + color={0,0,0}, + thickness=0.5, + pattern=LinePattern.Dash)}), + Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-100,-100},{100,100}})), + Documentation(info=" +

+Block that outputs the total number of stages to be enabled. +

+

+The block compares the input u with the threshold of each stage. If the input is greater +than a stage threshold, the output is set to that stage. +The block outputs the total number of stages to be enabled. +

+

+The parameter n specifies the maximum number of stages. +The stage thresholds are evenly distributed, i.e. the thresholds +for stages [1, 2, 3, ... , n] are +[0, 1/n, 2/n, ... , (n-1)/n], plus a hysteresis which is by default +h=0.02/n. +Once the output changes, it cannot change for at least holdDuration seconds. +

+", +revisions=" + +")); +end Stage; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Subtract.mo b/IBPSA/Controls/OBC/CDL/Integers/Subtract.mo new file mode 100644 index 0000000000..2cbe7f3eb8 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Subtract.mo @@ -0,0 +1,68 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block Subtract "Output the difference of the two inputs" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u1 + "Input u1 for the minuend" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u2 + "Input u2 for the subtrahend" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Output with the difference u1-u2" + annotation (Placement(transformation(extent={{100,-20},{140,20}}), + iconTransformation(extent={{100,-20},{140,20}}))); + +equation + y=u1-u2; + annotation ( + defaultComponentName="intSub", + Documentation( + info=" +

+Block that outputs y as the difference of the +two input signals u1 and u2, +

+
+    y = u1 - u2
+
+", +revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Ellipse( + lineColor={255,127,0}, + extent={{-50,-50},{50,50}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line(points={{-100,60},{-74,24},{-44,24}}, color={255,127,0}), + Line(points={{-100,-60},{-74,-28},{-42,-28}}, color={255,127,0}), + Line(points={{50,0},{100,0}}, color={255,127,0}), + Text( + extent={{-38,-28},{38,40}}, + textColor={255,127,0}, + textString="-"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end Subtract; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Switch.mo b/IBPSA/Controls/OBC/CDL/Integers/Switch.mo new file mode 100644 index 0000000000..fa6cddcaaa --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Switch.mo @@ -0,0 +1,118 @@ +within IBPSA.Controls.OBC.CDL.Integers; +block Switch + "Switch between two integer signals" + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u1 + "Input u1" + annotation (Placement(transformation(extent={{-140,60},{-100,100}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u2 + "Boolean switch input signal, if true, y=u1, else y=u3" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u3 + "Input u3" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Output with u1 if u2 is true, else u3" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=if u2 then u1 else u3; + annotation ( + defaultComponentName="intSwi", + Documentation( + info=" +

+Block that outputs one of two integer input signals based on a boolean input signal. +

+

+If the input signal u2 is true, +the block outputs y = u1. +Otherwise, it outputs y = u3. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Line( + points={{12,0},{100,0}}, + color={244,125,35}), + Line( + points={{-100,0},{-40,0}}, + color={255,0,255}), + Line( + points={{-100,-80},{-40,-80},{-40,-80}}, + color={244,125,35}), + Line( + points={{-40,12},{-40,-10}}, + color={255,0,255}), + Line( + points={{-100,80},{-40,80}}, + color={244,125,35}), + Line( + points=DynamicSelect({{8,2},{-40,80}},{{8,2}, + if u2 then + {-40,80} + else + {-40,-80}}), + color={244,125,35}, + thickness=1), + Ellipse( + lineColor={0,0,127}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{2.0,-6.0},{18.0,8.0}}), + Ellipse( + extent={{-71,7},{-85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-90,80},{-46,54}}, + textColor=DynamicSelect({0,0,0}, + if u2 then + {0,0,0} + else + {235,235,235}), + textString="true"), + Text( + extent={{-90,-46},{-38,-76}}, + textColor=DynamicSelect({0,0,0}, + if u2 then + {235,235,235} + else + {0,0,0}), + textString="false"), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")})); +end Switch; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/Abs.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/Abs.mo new file mode 100644 index 0000000000..3d3d3759ab --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/Abs.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model Abs + "Validation model for the absolute block" + IBPSA.Controls.OBC.CDL.Integers.Abs abs1 + "Block that outputs the absolute value of the input" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=7.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-59,0},{-42,0}},color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-19,0},{-2,0}},color={0,0,127})); + connect(reaToInt.y,abs1.u) + annotation (Line(points={{21,0},{38,0}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Abs.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Abs. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Abs; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/Add.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/Add.mo new file mode 100644 index 0000000000..2d8bb02fab --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/Add.mo @@ -0,0 +1,82 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model Add + "Validation model for the Add block" + IBPSA.Controls.OBC.CDL.Integers.Add add1 + "Block that outputs the sum of the two inputs" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=7.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=-0.5, + height=7.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,10},{-20,30}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,10},{20,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round2( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-30},{-20,-10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-30},{20,-10}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-58,20},{-42,20}},color={0,0,127})); + connect(ramp2.y,round2.u) + annotation (Line(points={{-58,-20},{-42,-20}},color={0,0,127})); + connect(round2.y,reaToInt1.u) + annotation (Line(points={{-18,-20},{-2,-20}},color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-18,20},{-2,20}},color={0,0,127})); + connect(reaToInt.y,add1.u1) + annotation (Line(points={{22,20},{40,20},{40,6},{58,6}},color={255,127,0})); + connect(reaToInt1.y,add1.u2) + annotation (Line(points={{22,-20},{40,-20},{40,-6},{58,-6}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Add.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Add. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Add; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/AddParameter.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/AddParameter.mo new file mode 100644 index 0000000000..19cc9ab1fe --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/AddParameter.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model AddParameter "Validation model for the AddParameter block" + IBPSA.Controls.OBC.CDL.Integers.AddParameter addPar(p=5) + "Block that outputs the sum of an input plus a parameter" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=7.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1(n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-58,0},{-42,0}}, color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-18,0},{-2,0}}, color={0,0,127})); + connect(reaToInt.y, addPar.u) + annotation (Line(points={{22,0},{38,0}}, color={255,127,0})); + +annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/AddParameter.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.AddParameter. +

+", +revisions=" + +"), + Icon( + 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}})})); +end AddParameter; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/Change.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/Change.mo new file mode 100644 index 0000000000..0ee795c834 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/Change.mo @@ -0,0 +1,93 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model Change + "Validation model for the Change block" + IBPSA.Controls.OBC.CDL.Integers.Change cha + "Check if the integer input changes value" + annotation (Placement(transformation(extent={{0,-50},{20,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + offset=0, + height=20, + duration=1) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-40,20},{-20,40}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler changeSampler + "Triggered sampler" + annotation (Placement(transformation(extent={{60,20},{80,40}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{-40,-50},{-20,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLin( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.ConstantSegments, + table=[ + 0,-1; + 0.3,0.5; + 0.5,0; + 0.7,1; + 1,0]) + "Time table with smoothness method of constant segments" + annotation (Placement(transformation(extent={{-80,-50},{-60,-30}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler increaseSampler + "Increase sampler" + annotation (Placement(transformation(extent={{60,60},{80,80}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler decreaseSampler + "Decrease sampler" + annotation (Placement(transformation(extent={{60,-20},{80,0}}))); + +equation + connect(ramp2.y,changeSampler.u) + annotation (Line(points={{-18,30},{58,30}},color={0,0,127})); + connect(timTabLin.y[1],reaToInt.u) + annotation (Line(points={{-58,-40},{-42,-40}},color={0,0,127})); + connect(reaToInt.y,cha.u) + annotation (Line(points={{-18,-40},{-2,-40}},color={255,127,0})); + connect(ramp2.y,increaseSampler.u) + annotation (Line(points={{-18,30},{40,30},{40,70},{58,70}},color={0,0,127})); + connect(ramp2.y,decreaseSampler.u) + annotation (Line(points={{-18,30},{40,30},{40,-10},{58,-10}},color={0,0,127})); + connect(cha.up,increaseSampler.trigger) + annotation (Line(points={{22,-34},{30,-34},{30,52},{70,52},{70,58.2}},color={255,0,255})); + connect(cha.y,changeSampler.trigger) + annotation (Line(points={{22,-40},{46,-40},{46,12},{70,12},{70,18.2}},color={255,0,255})); + connect(cha.down,decreaseSampler.trigger) + annotation (Line(points={{22,-46},{70,-46},{70,-21.8}},color={255,0,255})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Change.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Change. +

+", + revisions=" + +"), + 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))); +end Change; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/Equal.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/Equal.mo new file mode 100644 index 0000000000..c12bfc65d2 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/Equal.mo @@ -0,0 +1,84 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model Equal + "Validation model for the Equal block" + IBPSA.Controls.OBC.CDL.Integers.Equal intEqu + "Block output true if input 1 is equal to input 2" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{-20,10},{0,30}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 + "Convert real to integer" + annotation (Placement(transformation(extent={{-20,-30},{0,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLin( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.ConstantSegments, + table=[ + 0,0; + 0.3,1; + 0.5,0; + 0.7,1; + 1,0]) + "Time table with smoothness method of constant segments" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLin1( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.ConstantSegments, + table=[ + 0,0; + 0.35,1; + 0.55,0; + 0.7,1; + 1,0]) + "Time table with smoothness method of constant segments" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + +equation + connect(reaToInt.y,intEqu.u1) + annotation (Line(points={{1,20},{40,20},{40,0},{58,0}},color={255,127,0})); + connect(reaToInt1.y,intEqu.u2) + annotation (Line(points={{1,-20},{40,-20},{40,-8},{58,-8}},color={255,127,0})); + connect(timTabLin.y[1],reaToInt.u) + annotation (Line(points={{-59,20},{-22,20}},color={0,0,127})); + connect(timTabLin1.y[1],reaToInt1.u) + annotation (Line(points={{-59,-20},{-22,-20}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Equal.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Equal. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Equal; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/Greater.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/Greater.mo new file mode 100644 index 0000000000..fc163aa4d0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/Greater.mo @@ -0,0 +1,82 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model Greater + "Validation model for the Greater block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=10.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=-1.5, + height=5.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + IBPSA.Controls.OBC.CDL.Integers.Greater intGre + "Block output true if input 1 is greater than input 2" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,10},{-20,30}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,10},{20,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round2( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-30},{-20,-10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-30},{20,-10}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-59,20},{-42,20}},color={0,0,127})); + connect(ramp2.y,round2.u) + annotation (Line(points={{-59,-20},{-42,-20}},color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-19,20},{-2,20}},color={0,0,127})); + connect(round2.y,reaToInt1.u) + annotation (Line(points={{-19,-20},{-2,-20}},color={0,0,127})); + connect(reaToInt.y,intGre.u1) + annotation (Line(points={{21,20},{40,20},{40,0},{58,0}},color={255,127,0})); + connect(reaToInt1.y,intGre.u2) + annotation (Line(points={{21,-20},{40,-20},{40,-8},{58,-8}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Greater.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Greater. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Greater; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/GreaterEqual.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/GreaterEqual.mo new file mode 100644 index 0000000000..458d123262 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/GreaterEqual.mo @@ -0,0 +1,84 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model GreaterEqual + "Validation model for the GreaterEqual block" + IBPSA.Controls.OBC.CDL.Integers.GreaterEqual intGreEqu + "Block output true if input 1 is greater or equal to input 2" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{-20,10},{0,30}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 + "Convert real to integer" + annotation (Placement(transformation(extent={{-20,-30},{0,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLin( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.ConstantSegments, + table=[ + 0,-1; + 0.3,0.5; + 0.5,0; + 0.7,1; + 1,0]) + "Time table with smoothness method of constant segments" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLin1( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.ConstantSegments, + table=[ + 0,0; + 0.35,1; + 0.55,0; + 0.7,1; + 1,0]) + "Time table with smoothness method of constant segments" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + +equation + connect(reaToInt.y,intGreEqu.u1) + annotation (Line(points={{1,20},{40,20},{40,0},{58,0}},color={255,127,0})); + connect(reaToInt1.y,intGreEqu.u2) + annotation (Line(points={{1,-20},{40,-20},{40,-8},{58,-8}},color={255,127,0})); + connect(timTabLin.y[1],reaToInt.u) + annotation (Line(points={{-59,20},{-22,20}},color={0,0,127})); + connect(timTabLin1.y[1],reaToInt1.u) + annotation (Line(points={{-59,-20},{-22,-20}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/GreaterEqual.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.GreaterEqual. +

+", + revisions=" + +"), + Icon( + 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}})})); +end GreaterEqual; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/GreaterEqualThreshold.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/GreaterEqualThreshold.mo new file mode 100644 index 0000000000..1489d62f43 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/GreaterEqualThreshold.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model GreaterEqualThreshold + "Validation model for the GreaterEqualThreshold block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=10.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); + IBPSA.Controls.OBC.CDL.Integers.GreaterEqualThreshold intGreEquThr( + t=2) + "Block output true if input is greater or equal to threshold value" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-59,0},{-42,0}},color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-19,0},{-2,0}},color={0,0,127})); + connect(reaToInt.y,intGreEquThr.u) + annotation (Line(points={{21,0},{38,0}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/GreaterEqualThreshold.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.GreaterEqualThreshold. +

+", + revisions=" + +"), + Icon( + 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}})})); +end GreaterEqualThreshold; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/GreaterThreshold.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/GreaterThreshold.mo new file mode 100644 index 0000000000..774f26cefb --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/GreaterThreshold.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model GreaterThreshold + "Validation model for the GreaterThreshold block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=10.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); + IBPSA.Controls.OBC.CDL.Integers.GreaterThreshold intGreThr( + t=2) + "Block output true if input is greater than threshold value" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-59,0},{-50,0},{-50,0},{-42,0}},color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-19,0},{-12,0},{-12,0},{-2,0}},color={0,0,127})); + connect(reaToInt.y,intGreThr.u) + annotation (Line(points={{21,0},{38,0}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/GreaterThreshold.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.GreaterThreshold. +

+", + revisions=" + +"), + Icon( + 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}})})); +end GreaterThreshold; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/Less.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/Less.mo new file mode 100644 index 0000000000..0ee0bedf50 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/Less.mo @@ -0,0 +1,84 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model Less + "Validation model for the Less block" + IBPSA.Controls.OBC.CDL.Integers.Less intLes + "Block output true if input 1 is less than input 2" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{-20,10},{0,30}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 + "Convert real to integer" + annotation (Placement(transformation(extent={{-20,-30},{0,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLin( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.ConstantSegments, + table=[ + 0,-1; + 0.3,0.5; + 0.5,0; + 0.7,1; + 1,0]) + "Time table with smoothness method of constant segments" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLin1( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.ConstantSegments, + table=[ + 0,0; + 0.35,1; + 0.55,0; + 0.7,1; + 1,0]) + "Time table with smoothness method of constant segments" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + +equation + connect(reaToInt1.y,intLes.u2) + annotation (Line(points={{1,-20},{40,-20},{40,-8},{58,-8}},color={255,127,0})); + connect(reaToInt.y,intLes.u1) + annotation (Line(points={{1,20},{40,20},{40,0},{58,0}},color={255,127,0})); + connect(timTabLin.y[1],reaToInt.u) + annotation (Line(points={{-59,20},{-22,20}},color={0,0,127})); + connect(timTabLin1.y[1],reaToInt1.u) + annotation (Line(points={{-59,-20},{-22,-20}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Less.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Less. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Less; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/LessEqual.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/LessEqual.mo new file mode 100644 index 0000000000..ffb57e5e46 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/LessEqual.mo @@ -0,0 +1,82 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model LessEqual + "Validation model for the LessEqual block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=10.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=-1.5, + height=5.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + IBPSA.Controls.OBC.CDL.Integers.LessEqual intLesEqu + "Block output true if input 1 is less or equal to input 2" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,10},{-20,30}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,10},{20,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round2( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-30},{-20,-10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-30},{20,-10}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-59,20},{-42,20}},color={0,0,127})); + connect(ramp2.y,round2.u) + annotation (Line(points={{-59,-20},{-42,-20}},color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-19,20},{-2,20}},color={0,0,127})); + connect(round2.y,reaToInt1.u) + annotation (Line(points={{-19,-20},{-2,-20}},color={0,0,127})); + connect(reaToInt1.y,intLesEqu.u2) + annotation (Line(points={{21,-20},{40,-20},{40,-8},{58,-8}},color={255,127,0})); + connect(reaToInt.y,intLesEqu.u1) + annotation (Line(points={{21,20},{40,20},{40,0},{58,0}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/LessEqual.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.LessEqual. +

+", + revisions=" + +"), + Icon( + 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}})})); +end LessEqual; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/LessEqualThreshold.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/LessEqualThreshold.mo new file mode 100644 index 0000000000..df07a3997c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/LessEqualThreshold.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model LessEqualThreshold + "Validation model for the LessEqualThreshold block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=10.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); + IBPSA.Controls.OBC.CDL.Integers.LessEqualThreshold intLesEquThr( + t=2) + "Block output true if input is less or equal to threshold value" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-59,0},{-42,0}},color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-19,0},{-2,0}},color={0,0,127})); + connect(reaToInt.y,intLesEquThr.u) + annotation (Line(points={{21,0},{38,0}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/LessEqualThreshold.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.LessEqualThreshold. +

+", + revisions=" + +"), + Icon( + 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}})})); +end LessEqualThreshold; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/LessThreshold.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/LessThreshold.mo new file mode 100644 index 0000000000..91ec41c363 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/LessThreshold.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model LessThreshold + "Validation model for the LessThreshold block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=10.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); + IBPSA.Controls.OBC.CDL.Integers.LessThreshold intLesThr( + t=2) + "Block output true if input is less than threshold value" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-59,0},{-42,0}},color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-19,0},{-2,0}},color={0,0,127})); + connect(reaToInt.y,intLesThr.u) + annotation (Line(points={{21,0},{38,0}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/LessThreshold.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.LessThreshold. +

+", + revisions=" + +"), + Icon( + 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}})})); +end LessThreshold; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/Max.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/Max.mo new file mode 100644 index 0000000000..15c3fec996 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/Max.mo @@ -0,0 +1,82 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model Max + "Validation model for the Max block" + IBPSA.Controls.OBC.CDL.Integers.Max max1 + "Block that outputs the largest inputs" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=10.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=-1.5, + height=5.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,10},{-20,30}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,10},{20,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round2( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-30},{-20,-10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-30},{20,-10}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-59,20},{-42,20}},color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-19,20},{-2,20}},color={0,0,127})); + connect(ramp2.y,round2.u) + annotation (Line(points={{-59,-20},{-42,-20}},color={0,0,127})); + connect(round2.y,reaToInt1.u) + annotation (Line(points={{-19,-20},{-2,-20}},color={0,0,127})); + connect(reaToInt1.y,max1.u2) + annotation (Line(points={{21,-20},{40,-20},{40,-6},{58,-6}},color={255,127,0})); + connect(reaToInt.y,max1.u1) + annotation (Line(points={{21,20},{40,20},{40,6},{58,6}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Max.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Max. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Max; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/Min.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/Min.mo new file mode 100644 index 0000000000..7389df1e7b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/Min.mo @@ -0,0 +1,82 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model Min + "Validation model for the Min block" + IBPSA.Controls.OBC.CDL.Integers.Min min1 + "Block that outputs the smallest inputs" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=10.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=-1.5, + height=5.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,10},{-20,30}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,10},{20,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round2( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-30},{-20,-10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-30},{20,-10}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-59,20},{-42,20}},color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-19,20},{-2,20}},color={0,0,127})); + connect(reaToInt.y,min1.u1) + annotation (Line(points={{21,20},{40,20},{40,6},{58,6}},color={255,127,0})); + connect(ramp2.y,round2.u) + annotation (Line(points={{-59,-20},{-42,-20}},color={0,0,127})); + connect(round2.y,reaToInt1.u) + annotation (Line(points={{-19,-20},{-2,-20}},color={0,0,127})); + connect(reaToInt1.y,min1.u2) + annotation (Line(points={{21,-20},{40,-20},{40,-6},{58,-6}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Min.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Min. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Min; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/MultiSum.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/MultiSum.mo new file mode 100644 index 0000000000..92b8440e4d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/MultiSum.mo @@ -0,0 +1,102 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model MultiSum + "Validation model for the block to find sum of multiple inputs" + IBPSA.Controls.OBC.CDL.Integers.MultiSum add1( + nin=3) + "Block that outputs the sum of the inputs" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=7.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,30},{-60,50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=-0.5, + height=7.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp3( + duration=1, + height=7.0, + offset=-1.5) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-50},{-60,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,30},{-20,50}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,30},{20,50}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round2( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round3( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-50},{-20,-30}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt2 + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-50},{20,-30}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-59,40},{-42,40}},color={0,0,127})); + connect(ramp2.y,round2.u) + annotation (Line(points={{-59,0},{-42,0}},color={0,0,127})); + connect(ramp3.y,round3.u) + annotation (Line(points={{-59,-40},{-42,-40}},color={0,0,127})); + connect(round3.y,reaToInt2.u) + annotation (Line(points={{-19,-40},{-2,-40}},color={0,0,127})); + connect(round2.y,reaToInt1.u) + annotation (Line(points={{-19,0},{-2,0}},color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-19,40},{-2,40}},color={0,0,127})); + connect(reaToInt.y,add1.u[1]) + annotation (Line(points={{21,40},{40,40},{40,4.66667},{58,4.66667}},color={255,127,0})); + connect(reaToInt1.y,add1.u[2]) + annotation (Line(points={{21,0},{38,0},{38,0},{58,0}},color={255,127,0})); + connect(reaToInt2.y,add1.u[3]) + annotation (Line(points={{21,-40},{40,-40},{40,-4.66667},{58,-4.66667}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/MultiSum.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.MultiSum. +

+", + revisions=" + +"), + Icon( + 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}})})); +end MultiSum; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/Multiply.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/Multiply.mo new file mode 100644 index 0000000000..874f1302d4 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/Multiply.mo @@ -0,0 +1,88 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model Multiply "Validation model for the Multiply block" + IBPSA.Controls.OBC.CDL.Integers.Multiply product + "Block that outputs the product of the two inputs" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 + "Convert real to integer" + annotation (Placement(transformation(extent={{-20,10},{0,30}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt2 + "Convert real to integer" + annotation (Placement(transformation(extent={{-20,-30},{0,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLin( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.ConstantSegments, + table=[ + 0,-1; + 0.3,0.5; + 0.5,0; + 0.7,1; + 1,0]) + "Time table with smoothness method of constant segments" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLin1( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.ConstantSegments, + table=[ + 0,0; + 0.35,1; + 0.55,0; + 0.7,1; + 1,0]) + "Time table with smoothness method of constant segments" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + +equation + connect(reaToInt1.y,product.u1) + annotation (Line(points={{2,20},{40,20},{40,6},{58,6}},color={255,127,0})); + connect(reaToInt2.y,product.u2) + annotation (Line(points={{2,-20},{40,-20},{40,-6},{58,-6}},color={255,127,0})); + connect(timTabLin.y[1],reaToInt1.u) + annotation (Line(points={{-58,20},{-22,20}},color={0,0,127})); + connect(timTabLin1.y[1],reaToInt2.u) + annotation (Line(points={{-58,-20},{-22,-20}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Multiply.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Multiply. +

+", +revisions=" + +"), + Icon( + 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}})})); +end Multiply; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/OnCounter.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/OnCounter.mo new file mode 100644 index 0000000000..ed33ed1f0b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/OnCounter.mo @@ -0,0 +1,58 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model OnCounter + "Validation model for the OnCounter block" + IBPSA.Controls.OBC.CDL.Integers.OnCounter onCounter + "Block that outputs increment if the input switches to true" + annotation (Placement(transformation(extent={{16,-10},{36,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + width=0.5, + period=0.1) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,-10},{-6,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse reset( + width=0.5, + period=1.0) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,-50},{-6,-30}}))); + +equation + connect(reset.y,onCounter.reset) + annotation (Line(points={{-5,-40},{26,-40},{26,-14},{26,-14},{26,-12},{26,-12}},color={255,0,255})); + connect(booPul.y,onCounter.trigger) + annotation (Line(points={{-5,0},{12,0},{12,0}},color={255,0,255})); + annotation ( + experiment( + StopTime=2.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/OnCounter.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.OnCounter. +

+", + revisions=" + +"), + Icon( + 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}})})); +end OnCounter; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/Stage.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/Stage.mo new file mode 100644 index 0000000000..45988e13b0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/Stage.mo @@ -0,0 +1,85 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model Stage + "Validation model for the block to find the total number of enabled stages" + + IBPSA.Controls.OBC.CDL.Integers.Stage sta( + final n=4, + final holdDuration=5) + "Total number of enabled stages, with a hold duration of 5 seconds" + annotation (Placement(transformation(extent={{20,50},{40,70}}))); + IBPSA.Controls.OBC.CDL.Integers.Stage zerHolTim( + final n=4, + final holdDuration=0) + "Total number of enabled stages, without any hold duration" + annotation (Placement(transformation(extent={{20,10},{40,30}}))); + IBPSA.Controls.OBC.CDL.Integers.Stage sta1( + final n=4, + final holdDuration=2) + "Total number of enabled stages, with a hold duration of 2 seconds" + annotation (Placement(transformation(extent={{20,-30},{40,-10}}))); + IBPSA.Controls.OBC.CDL.Integers.Stage lesHolTim( + final n=4, + final holdDuration=1) + "Total number of enabled stages, with a hold duration of 1 second" + annotation (Placement(transformation(extent={{20,-70},{40,-50}}))); + + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + final duration=10, + final height=1, + final startTime=1) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-40,50},{-20,70}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin sin( + final amplitude=0.5, + final freqHz=1/5, + final offset=0.5) + "Block that generates sine signal" + annotation (Placement(transformation(extent={{-40,-30},{-20,-10}}))); + +equation + connect(ramp1.y, sta.u) + annotation (Line(points={{-18,60},{18,60}}, color={0,0,127})); + connect(ramp1.y,zerHolTim. u) annotation (Line(points={{-18,60},{0,60},{0,20}, + {18,20}}, color={0,0,127})); + connect(sin.y, sta1.u) + annotation (Line(points={{-18,-20},{18,-20}}, color={0,0,127})); + connect(sin.y, lesHolTim.u) annotation (Line(points={{-18,-20},{0,-20},{0,-60}, + {18,-60}}, color={0,0,127})); + annotation ( + experiment(StopTime=10.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Stage.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Stage. +

+

+The instances use different values for the duration time during which the output is held constant. +

+", +revisions=" + +"), + Icon( + 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}})})); +end Stage; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/Subtract.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/Subtract.mo new file mode 100644 index 0000000000..97ad81008c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/Subtract.mo @@ -0,0 +1,81 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model Subtract "Validation model for the Subtract block" + IBPSA.Controls.OBC.CDL.Integers.Subtract sub + "Block that outputs the difference of the two inputs" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=7.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=-0.5, + height=7.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round1(n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,10},{-20,30}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert real to integer" + annotation (Placement(transformation(extent={{0,10},{20,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round2(n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{-40,-30},{-20,-10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 + "Convert real to integer" + annotation (Placement(transformation(extent={{0,-30},{20,-10}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-58,20},{-42,20}},color={0,0,127})); + connect(ramp2.y,round2.u) + annotation (Line(points={{-58,-20},{-42,-20}},color={0,0,127})); + connect(round2.y,reaToInt1.u) + annotation (Line(points={{-18,-20},{-2,-20}},color={0,0,127})); + connect(round1.y,reaToInt.u) + annotation (Line(points={{-18,20},{-2,20}},color={0,0,127})); + connect(reaToInt.y, sub.u1) + annotation (Line(points={{22,20},{40,20},{40,6},{58,6}}, color={255,127,0})); + connect(reaToInt1.y, sub.u2) + annotation (Line(points={{22,-20},{40,-20},{40,-6},{58,-6}}, color={255,127,0})); + +annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Subtract.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Subtract. +

+", +revisions=" + +"), + Icon( + 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}})})); +end Subtract; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/Switch.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/Switch.mo new file mode 100644 index 0000000000..efcd93acb7 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/Switch.mo @@ -0,0 +1,102 @@ +within IBPSA.Controls.OBC.CDL.Integers.Validation; +model Switch "Validation model for the Switch block" + IBPSA.Controls.OBC.CDL.Integers.Switch integerSwitch + "Integer switch" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + width=0.7, + period=1.5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-80,20},{-60,40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul2( + width=0.5, + period=3) + "Block that outputs cyclic on and off: switch between u1 and u3" + annotation (Placement(transformation(extent={{-26,-10},{-6,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul3( + width=0.5, + period=5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-80,-80},{-60,-60}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt( + k=5) + "Integer constant" + annotation (Placement(transformation(extent={{-80,60},{-60,80}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt1( + k=2) + "Integer constant" + annotation (Placement(transformation(extent={{-80,-40},{-60,-20}}))); + +protected + IBPSA.Controls.OBC.CDL.Conversions.BooleanToInteger booToInt + "Type converter" + annotation (Placement(transformation(extent={{-40,20},{-20,40}}))); + IBPSA.Controls.OBC.CDL.Integers.Multiply proInt "Product" + annotation (Placement(transformation(extent={{0,40},{20,60}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToInteger booToInt1 + "Type converter" + annotation (Placement(transformation(extent={{-40,-80},{-20,-60}}))); + IBPSA.Controls.OBC.CDL.Integers.Multiply proInt1 "Product" + annotation (Placement(transformation(extent={{0,-60},{20,-40}}))); + +equation + connect(booPul2.y,integerSwitch.u2) + annotation (Line(points={{-4,0},{58,0}},color={255,0,255})); + connect(booPul1.y,booToInt.u) + annotation (Line(points={{-58,30},{-42,30}},color={255,0,255})); + connect(booPul3.y,booToInt1.u) + annotation (Line(points={{-58,-70},{-42,-70}},color={255,0,255})); + connect(conInt.y,proInt.u1) + annotation (Line(points={{-58,70},{-20,70},{-20,56},{-2,56}},color={255,127,0})); + connect(booToInt.y,proInt.u2) + annotation (Line(points={{-18,30},{-10,30},{-10,44},{-2,44}},color={255,127,0})); + connect(conInt1.y,proInt1.u1) + annotation (Line(points={{-58,-30},{-10,-30},{-10,-44},{-2,-44}},color={255,127,0})); + connect(booToInt1.y,proInt1.u2) + annotation (Line(points={{-18,-70},{-10,-70},{-10,-56},{-2,-56}},color={255,127,0})); + connect(proInt.y,integerSwitch.u1) + annotation (Line(points={{22,50},{40,50},{40,8},{58,8}},color={255,127,0})); + connect(proInt1.y,integerSwitch.u3) + annotation (Line(points={{22,-50},{40,-50},{40,-8},{58,-8}},color={255,127,0})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Switch.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Integers.Switch. +

+

+The input u2 is the switch input: If u2 = true, +then output y = u1; +else output y = u3. +

+ +", + revisions=" + +"), + Icon( + 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}})})); +end Switch; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/package.mo b/IBPSA/Controls/OBC/CDL/Integers/Validation/package.mo new file mode 100644 index 0000000000..e1c71c475f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL.Integers; +package Validation "Collection of models that validate the integer blocks of the CDL" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains models that validate the blocks in + +IBPSA.Controls.OBC.CDL.Integers. +

+

+The examples plot various outputs, which have been verified against +analytical solutions. These model outputs are stored as reference data to +allow continuous validation whenever models in the library change. +

+"), + 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}})})); +end Validation; diff --git a/IBPSA/Controls/OBC/CDL/Integers/Validation/package.order b/IBPSA/Controls/OBC/CDL/Integers/Validation/package.order new file mode 100644 index 0000000000..027e6b7b2a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/Validation/package.order @@ -0,0 +1,21 @@ +Abs +Add +AddParameter +Change +Equal +Greater +GreaterEqual +GreaterEqualThreshold +GreaterThreshold +Less +LessEqual +LessEqualThreshold +LessThreshold +Max +Min +MultiSum +Multiply +OnCounter +Stage +Subtract +Switch diff --git a/IBPSA/Controls/OBC/CDL/Integers/package.mo b/IBPSA/Controls/OBC/CDL/Integers/package.mo new file mode 100644 index 0000000000..e101829651 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL; +package Integers "Package with blocks for integer variables" + annotation ( + Documentation( + info=" +

+Package with blocks for elementary mathematical functions +for integer variables. +

+", + 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), + Text( + extent={{-56,90},{48,-88}}, + textColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid, + textString="Z")})); +end Integers; diff --git a/IBPSA/Controls/OBC/CDL/Integers/package.order b/IBPSA/Controls/OBC/CDL/Integers/package.order new file mode 100644 index 0000000000..f8b45b509a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Integers/package.order @@ -0,0 +1,23 @@ +Abs +Add +AddParameter +Change +Equal +Greater +GreaterEqual +GreaterEqualThreshold +GreaterThreshold +Less +LessEqual +LessEqualThreshold +LessThreshold +Max +Min +MultiSum +Multiply +OnCounter +Stage +Subtract +Switch +Sources +Validation diff --git a/IBPSA/Controls/OBC/CDL/Interfaces/BooleanInput.mo b/IBPSA/Controls/OBC/CDL/Interfaces/BooleanInput.mo new file mode 100644 index 0000000000..28046082a4 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Interfaces/BooleanInput.mo @@ -0,0 +1,39 @@ +within IBPSA.Controls.OBC.CDL.Interfaces; +connector BooleanInput=input Boolean + "Boolean input connector" +annotation (defaultComponentName="u", + Icon(graphics={Polygon(lineColor={255,0,255}, + fillColor={255,0,255}, + fillPattern = FillPattern.Solid, + points={{0,50},{100,0},{0,-50}})}, + coordinateSystem(extent={{-100,-100},{100,100}}, + preserveAspectRatio=true, + initialScale=0.2)), + Diagram(coordinateSystem(preserveAspectRatio=true, + initialScale=0.2, + extent={{-100,-100},{100,100}}), + graphics={Polygon(points={{0,50},{100,0},{0,-50},{0,50}}, + lineColor={255,0,255}, + fillColor={255,0,255},fillPattern = FillPattern.Solid), + Text(extent={{-10,85},{-10,60}}, + textColor={255,0,255}, + textString="%name")}), +Documentation(info=" +

+Connector with one input signal of type Boolean. +

+",revisions=" + +")); diff --git a/IBPSA/Controls/OBC/CDL/Interfaces/BooleanOutput.mo b/IBPSA/Controls/OBC/CDL/Interfaces/BooleanOutput.mo new file mode 100644 index 0000000000..c3c9129d6c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Interfaces/BooleanOutput.mo @@ -0,0 +1,46 @@ +within IBPSA.Controls.OBC.CDL.Interfaces; +connector BooleanOutput=output Boolean + "Boolean output connector" +annotation (defaultComponentName="y", + Icon(coordinateSystem(preserveAspectRatio=true, + initialScale=0.2, + extent={{-100,-100},{100,100}}), + graphics={Polygon(lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern= FillPattern.Solid, + points={{-100,50},{0,0},{-100,-50}})}), + Diagram(coordinateSystem(preserveAspectRatio=true, + initialScale=0.2, + extent={{-100,-100},{100,100}}), + graphics={Polygon(points={{-100,50},{0,0},{-100,-50},{-100,50}}, + lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern= FillPattern.Solid), + Text(extent={{30,110},{30,60}}, + textColor={255,0,255}, + textString="%name")}), +Documentation(info=" +

+Connector with one output signal of type Boolean. +

+",revisions=" + +")); diff --git a/IBPSA/Controls/OBC/CDL/Interfaces/IntegerInput.mo b/IBPSA/Controls/OBC/CDL/Interfaces/IntegerInput.mo new file mode 100644 index 0000000000..e0d54bcd8d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Interfaces/IntegerInput.mo @@ -0,0 +1,40 @@ +within IBPSA.Controls.OBC.CDL.Interfaces; +connector IntegerInput=input Integer + "Integer input connector" +annotation (defaultComponentName="u", + Icon(graphics={Polygon(lineColor={255,127,0}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid, + points={{0,50},{100,0},{0,-50}})}, + coordinateSystem(extent={{-100,-100},{100,100}}, + preserveAspectRatio=true, + initialScale=0.2)), + Diagram(coordinateSystem(preserveAspectRatio=true, + initialScale=0.2, + extent={{-100,-100},{100,100}}), + graphics={Polygon(points={{0,50},{100,0},{0,-50},{0,50}}, + lineColor={255,127,0}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid), + Text(extent={{-10,85},{-10,60}}, + textColor={255,127,0}, + textString="%name")}), +Documentation(info=" +

+Connector with one input signal of type Integer. +

+",revisions=" + +")); diff --git a/IBPSA/Controls/OBC/CDL/Interfaces/IntegerOutput.mo b/IBPSA/Controls/OBC/CDL/Interfaces/IntegerOutput.mo new file mode 100644 index 0000000000..03d184a9f7 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Interfaces/IntegerOutput.mo @@ -0,0 +1,46 @@ +within IBPSA.Controls.OBC.CDL.Interfaces; +connector IntegerOutput=output Integer + "Integer output connector" +annotation (defaultComponentName="y", + Icon(coordinateSystem(preserveAspectRatio=true, + initialScale=0.2, + extent={{-100,-100},{100,100}}), + graphics={Polygon(lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + points={{-100,50},{0,0},{-100,-50}})}), + Diagram(coordinateSystem(preserveAspectRatio=true, + initialScale=0.2, + extent={{-100,-100},{100,100}}), + graphics={Polygon(points={{-100,50},{0,0},{-100,-50},{-100,50}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text(extent={{30,110},{30,60}}, + textColor={255,127,0}, + textString="%name")}), +Documentation(info=" +

+Connector with one output signal of type Integer. +

+",revisions=" + +")); diff --git a/IBPSA/Controls/OBC/CDL/Interfaces/RealInput.mo b/IBPSA/Controls/OBC/CDL/Interfaces/RealInput.mo new file mode 100644 index 0000000000..6769da7271 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Interfaces/RealInput.mo @@ -0,0 +1,40 @@ +within IBPSA.Controls.OBC.CDL.Interfaces; +connector RealInput=input Real + "Real input connector" +annotation (defaultComponentName="u", + Icon(graphics={Polygon(lineColor={0,0,127}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid, + points={{0,50},{100,0},{0,-50}})}, + coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}}, + preserveAspectRatio=true, + initialScale=0.2)), + Diagram(coordinateSystem(preserveAspectRatio=true, + initialScale=0.2, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={Polygon(lineColor={0,0,127}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid, + points={{0.0,50.0},{100.0,0.0},{0.0,-50.0},{0.0,50.0}}), + Text(textColor={0,0,127}, + extent={{-10.0,60.0},{-10.0,85.0}}, + textString="%name")}), +Documentation(info=" +

+Connector with one input signal of type Real. +

+",revisions=" + +")); diff --git a/IBPSA/Controls/OBC/CDL/Interfaces/RealOutput.mo b/IBPSA/Controls/OBC/CDL/Interfaces/RealOutput.mo new file mode 100644 index 0000000000..63d45cbaf6 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Interfaces/RealOutput.mo @@ -0,0 +1,46 @@ +within IBPSA.Controls.OBC.CDL.Interfaces; +connector RealOutput=output Real + "Real output connector" +annotation (defaultComponentName="y", + Icon(coordinateSystem(preserveAspectRatio=true, + initialScale=0.2, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={Polygon(lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + points={{-100,50},{0,0},{-100,-50}})}), + Diagram(coordinateSystem(preserveAspectRatio=true, + initialScale=0.2, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={Polygon(lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + points={{-100.0,50.0},{0.0,0.0},{-100.0,-50.0}}), + Text(textColor={0,0,127}, + extent={{30.0,60.0},{30.0,110.0}}, + textString="%name")}), +Documentation(info=" +

+Connector with one output signal of type Real. +

+",revisions=" + +")); diff --git a/IBPSA/Controls/OBC/CDL/Interfaces/package.mo b/IBPSA/Controls/OBC/CDL/Interfaces/package.mo new file mode 100644 index 0000000000..00ac15ad2f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Interfaces/package.mo @@ -0,0 +1,41 @@ +within IBPSA.Controls.OBC.CDL; +package Interfaces "Package with connectors for input and output signals" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains implementations of connectors for input +and output signals of blocks. +

+

+The connectors are compatible with, and equivalent to, +the connectors from the Modelica Standard Library. +They are here implemented to make the CDL +package a self-contained package. +

+"), + 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={20.0,0.0}, + lineColor={64,64,64}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + points={{-10.0,70.0},{10.0,70.0},{40.0,20.0},{80.0,20.0},{80.0,-20.0},{40.0,-20.0},{10.0,-70.0},{-10.0,-70.0}}), + Polygon( + fillColor={102,102,102}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-100.0,20.0},{-60.0,20.0},{-30.0,70.0},{-10.0,70.0},{-10.0,-70.0},{-30.0,-70.0},{-60.0,-20.0},{-100.0,-20.0}})})); +end Interfaces; diff --git a/IBPSA/Controls/OBC/CDL/Interfaces/package.order b/IBPSA/Controls/OBC/CDL/Interfaces/package.order new file mode 100644 index 0000000000..25397a7f23 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Interfaces/package.order @@ -0,0 +1,6 @@ +BooleanInput +BooleanOutput +IntegerInput +IntegerOutput +RealInput +RealOutput diff --git a/IBPSA/Controls/OBC/CDL/Logical/And.mo b/IBPSA/Controls/OBC/CDL/Logical/And.mo new file mode 100644 index 0000000000..fdb56a7531 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/And.mo @@ -0,0 +1,92 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block And + "Logical 'and': y = u1 and u2" + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u1 + "Input signal for logical 'and'" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u2 + "Input signal for logical 'and'" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true if u1 and u2 are both true" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1 and u2; + annotation ( + defaultComponentName="and2", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-90,40},{90,-40}}, + textColor={0,0,0}, + textString="and"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-75,-6},{-89,8}}, + lineColor=DynamicSelect({235,235,235}, + if u1 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u1 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-75,-73},{-89,-87}}, + lineColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})}), + Documentation( + info=" +

+Block that outputs true if all inputs are true. +Otherwise the output is false. +

+", + revisions=" + +")); +end And; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Change.mo b/IBPSA/Controls/OBC/CDL/Logical/Change.mo new file mode 100644 index 0000000000..257ca1fba2 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Change.mo @@ -0,0 +1,71 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Change + "Output y is true, if the input u has a rising or falling edge (y = change(u))" + parameter Boolean pre_u_start=false + "Start value of pre(u) at initial time"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Input to be monitored for a change" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with true when the input changes" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + pre(u)=pre_u_start; + +equation + y=change(u); + annotation ( + defaultComponentName="cha", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-50,62},{50,-56}}, + textColor={0,0,0}, + textString="change"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})}), + Documentation( + info=" +

+Block that outputs true if the Boolean input has either a rising edge +from false to true or a falling edge from +true to false. +Otherwise the output is false. +

+", + revisions=" + +")); +end Change; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Edge.mo b/IBPSA/Controls/OBC/CDL/Logical/Edge.mo new file mode 100644 index 0000000000..e472037418 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Edge.mo @@ -0,0 +1,73 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Edge + "Output y is true, if the input u has a rising edge (y = edge(u))" + parameter Boolean pre_u_start=false + "Start value of pre(u) at initial time"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Input to be monitored" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true when the input switches to true" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + pre(u)=pre_u_start; + +equation + y=edge(u); + annotation ( + defaultComponentName="edg", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-50,52},{50,-46}}, + textColor={0,0,0}, + textString="edge"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Polygon( + points={{-120,140},{-120,140}}, + lineColor={28,108,200}), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})}), + Documentation( + info=" +

+Block that outputs true if the Boolean input has a rising edge +from false to true. +Otherwise the output is false. +

+", + revisions=" + +")); +end Edge; diff --git a/IBPSA/Controls/OBC/CDL/Logical/FallingEdge.mo b/IBPSA/Controls/OBC/CDL/Logical/FallingEdge.mo new file mode 100644 index 0000000000..fd69807c62 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/FallingEdge.mo @@ -0,0 +1,74 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block FallingEdge + "Output y is true, if the input u has a falling edge (y = edge(not u))" + parameter Boolean pre_u_start=false + "Start value of pre(u) at initial time"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Input to be monitored" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true when the input switches to false" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + Boolean not_u=not u + "Boolean not of the input"; + +initial equation + pre(not_u)=not pre_u_start; + +equation + y=edge(not_u); + annotation ( + defaultComponentName="falEdg", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-62,64},{56,-54}}, + textColor={0,0,0}, + textString="falling"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})}), + Documentation( + info=" +

+Block that outputs true if the Boolean input has a falling edge +from true to false. +Otherwise the output is false. +

+", + revisions=" + +")); +end FallingEdge; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Latch.mo b/IBPSA/Controls/OBC/CDL/Logical/Latch.mo new file mode 100644 index 0000000000..fc97b6a022 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Latch.mo @@ -0,0 +1,151 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Latch + "Maintains a true signal until cleared" + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Latch input" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput clr + "Clear input" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with latched signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); +equation + when initial() then + y=not clr and u; + elsewhen {clr, u} then + y=not clr and u; + end when; + annotation ( + defaultComponentName="lat", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{-73,9},{-87,-5}}, + lineColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{81,7},{95,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-73,-53},{-87,-67}}, + lineColor=DynamicSelect({235,235,235}, + if clr then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if clr then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Line( + points={{-68,-62},{4,-62},{4,-22},{74,-22}}, + color={255,0,255}), + Line( + points={{-68,24},{-48,24},{-48,56},{-16,56},{-16,24},{24,24},{24,56},{54,56},{54,24},{74,24}}, + color={255,0,255}), + Text( + extent={{-14,-8},{14,-18}}, + textColor={0,0,0}, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + textString="Clear"), + Text( + extent={{-16,72},{24,58}}, + textColor={0,0,0}, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + textString="Latch input"), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")}), + Documentation( + info=" +

+Block that generates a true output when the latch input u +rises from false to true, provided that the clear input +clr is false or also became at the same time false. +The output remains true until the clear input clr rises +from false to true. +

+

+If the clear input clr is true, the output y +switches to false (if it was true) and it remains false, +regardless of the value of the latch input u. +

+

+At initial time, if clr = false, then the output will be +y = u. Otherwise it will be y=false +(because the clear input clr is true). +

+ +

+\"Latch.png\" +

+ +", + revisions=" + +")); +end Latch; diff --git a/IBPSA/Controls/OBC/CDL/Logical/MultiAnd.mo b/IBPSA/Controls/OBC/CDL/Logical/MultiAnd.mo new file mode 100644 index 0000000000..a1ab070a48 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/MultiAnd.mo @@ -0,0 +1,92 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block MultiAnd + "Logical MultiAnd, y = u[1] and u[2] and u[3] and ..." + parameter Integer nin(min=0)=0 + "Number of input connections" + annotation (Dialog(connectorSizing=true),HideResult=true); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u[nin] + "Input signals" + annotation (Placement(transformation(extent={{-140,70},{-100,-70}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with true if all input signals are true" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + Boolean uTemp[nin] + "Temporary variable"; + +equation + if size(u, 1) > 1 then + uTemp[1]=u[1]; + for i in 2:size(u, 1) loop + uTemp[i]=u[i] and uTemp[i-1]; + end for; + y=uTemp[nin]; + elseif (size(u, 1) == 1) then + uTemp[1]=u[1]; + y=uTemp[1]; + else + y=false; + end if; + annotation ( + defaultComponentName="mulAnd", + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-144,150},{156,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-80,52},{56,-52}}, + textColor={0,0,0}, + textString="AND"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid)}), + Documentation( + info=" +

+Block that outputs y = true if and only if +all elements of the input vector u are true. +If no connection to the input connector u is present, +the output is y=false. +

+

+See + +IBPSA.Controls.OBC.CDL.Logical.Validation.MultiAnd +for an example. +

+", +revisions=" + +")); +end MultiAnd; diff --git a/IBPSA/Controls/OBC/CDL/Logical/MultiOr.mo b/IBPSA/Controls/OBC/CDL/Logical/MultiOr.mo new file mode 100644 index 0000000000..71e9376f5c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/MultiOr.mo @@ -0,0 +1,91 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block MultiOr + "Logical MultiOr, y = u[1] or u[2] or u[3] or ..." + parameter Integer nin(min=0)=0 + "Number of input connections" + annotation (Dialog(connectorSizing=true),HideResult=true); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u[nin] + "Input signals" + annotation (Placement(transformation(extent={{-140,70},{-100,-70}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with true if at least one input is true" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + Boolean uTemp[nin] + "Temporary variable"; + +equation + if size(u, 1) > 1 then + uTemp[1]=u[1]; + for i in 2:size(u, 1) loop + uTemp[i]=u[i] or uTemp[i-1]; + end for; + y=uTemp[nin]; + elseif (size(u, 1) == 1) then + uTemp[1]=u[1]; + y=uTemp[1]; + else + y=false; + end if; + annotation ( + defaultComponentName="mulOr", + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-144,150},{156,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-80,52},{56,-52}}, + textColor={0,0,0}, + textString="OR"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid)}), + Documentation( + info=" +

+Block that outputs y = true if any element in the input +vector u is true. +If no connection to the input connector u is present, +the output is y=false. +

+

+See + +IBPSA.Controls.OBC.CDL.Logical.Validation.MultiOr +for an example. +

+", +revisions=" + +")); +end MultiOr; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Nand.mo b/IBPSA/Controls/OBC/CDL/Logical/Nand.mo new file mode 100644 index 0000000000..f7fd08c4fe --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Nand.mo @@ -0,0 +1,93 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Nand + "Logical 'nand': y = not (u1 and u2)" + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u1 + "Input signal for 'nand'" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u2 + "Input signal for 'nand'" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with false if both inputs are true" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=not (u1 and u2); + annotation ( + defaultComponentName="nand", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-50,52},{50,-48}}, + textColor={0,0,0}, + textString="nand"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-75,-6},{-89,8}}, + lineColor=DynamicSelect({235,235,235}, + if u1 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u1 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-75,-73},{-89,-87}}, + lineColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")}), + Documentation( + info=" +

+Block that outputs true if at least +one input is false. +Otherwise the output is false. +

+", + revisions=" + +")); +end Nand; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Nor.mo b/IBPSA/Controls/OBC/CDL/Logical/Nor.mo new file mode 100644 index 0000000000..19dc9c648b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Nor.mo @@ -0,0 +1,92 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Nor + "Logical 'nor': y = not (u1 or u2)" + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u1 + "Input signal for 'nor'" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u2 + "Input signal for 'nor'" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with false if at least one of the inputs is true" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=not (u1 or u2); + annotation ( + defaultComponentName="nor", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-90,40},{90,-40}}, + textColor={0,0,0}, + textString="nor"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-75,-6},{-89,8}}, + lineColor=DynamicSelect({235,235,235}, + if u1 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u1 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-75,-73},{-89,-87}}, + lineColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")}), + Documentation( + info=" +

+Block that outputs true if none of the inputs is true. +Otherwise the output is false. +

+", + revisions=" + +")); +end Nor; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Not.mo b/IBPSA/Controls/OBC/CDL/Logical/Not.mo new file mode 100644 index 0000000000..6da92b289a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Not.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Not "Logical not" + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Input to be negated" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with negated input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=not u; + annotation ( + defaultComponentName="not1", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-56,28},{72,-24}}, + textColor={0,0,0}, + textString="not"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")}), + Documentation( + info=" +

+Block that outputs true if the input is false, +and false if the input is true. +

+", + revisions=" + +")); +end Not; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Or.mo b/IBPSA/Controls/OBC/CDL/Logical/Or.mo new file mode 100644 index 0000000000..73d83ec44a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Or.mo @@ -0,0 +1,93 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Or + "Logical 'or': y = u1 or u2" + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u1 + "Input for logical 'or'" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u2 + "Input for logical 'or'" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with true if at least one of the inputs is true" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1 or u2; + annotation ( + defaultComponentName="or2", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-90,40},{90,-40}}, + textColor={0,0,0}, + textString="or"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-75,-6},{-89,8}}, + lineColor=DynamicSelect({235,235,235}, + if u1 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u1 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-75,-73},{-89,-87}}, + lineColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")}), + Documentation( + info=" +

+Block that outputs true if at least one input +is true. +Otherwise the output is false. +

+", + revisions=" + +")); +end Or; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Pre.mo b/IBPSA/Controls/OBC/CDL/Logical/Pre.mo new file mode 100644 index 0000000000..c6dc1a3a0d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Pre.mo @@ -0,0 +1,88 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Pre + "Breaks algebraic loops by adding a delay of the output without advancing time (y = pre(u): event iteration continues until u = pre(u))" + parameter Boolean pre_u_start=false + "Start value of pre(u) at initial time"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Input to be delayed by one event iteration" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Input delayed by one event iteration" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + pre(u)=pre_u_start; + +equation + y=pre(u); + annotation ( + defaultComponentName="pre", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-90,40},{90,-40}}, + textColor={0,0,0}, + textString="pre"), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-75,-6},{-89,8}}, + lineColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid)}), + Documentation( + info=" +

+This block delays the Boolean input by an infinitesimal small time delay and +therefore breaks algebraic loops. In a network of logical blocks, in every +closed connection loop, at least one logical block must have a delay, +since algebraic systems of Boolean equations are not solvable. +

+ +

+This block returns the value of the input signal u from the +last event iteration. The event iteration stops once both +values are identical, i.e., if u = pre(u). +

+", + revisions=" + +")); +end Pre; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Proof.mo b/IBPSA/Controls/OBC/CDL/Logical/Proof.mo new file mode 100644 index 0000000000..7115e02412 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Proof.mo @@ -0,0 +1,520 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Proof "Verify two boolean inputs" + parameter Real debounce( + final quantity="Time", + final unit="s") + "Time during which input must remain unchanged for signal to considered valid and used in checks"; + parameter Real feedbackDelay( + final quantity="Time", + final unit="s") + "Delay after which the two inputs are checked for equality once they become valid"; + + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u_s + "Commanded status setpoint" + annotation (Placement(transformation(extent={{-300,-20},{-260,20}}), + iconTransformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u_m + "Measured status" + annotation (Placement(transformation(extent={{-20,-20},{20,20}}, rotation=90, origin={0,-260}), + iconTransformation(extent={{-20,-20},{20,20}}, rotation=90, origin={0,-120}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput yLocFal + "Output with true if the measured input is locked to false even after the setpoint has changed to true" + annotation (Placement(transformation(extent={{240,100},{280,140}}), + iconTransformation(extent={{100,30},{140,70}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput yLocTru + "Output with true if the measured input is locked to true even after the setpoint has changed to false" + annotation (Placement(transformation(extent={{240,-140},{280,-100}}), + iconTransformation(extent={{100,-70},{140,-30}}))); + +protected + IBPSA.Controls.OBC.CDL.Logical.Or valInp + "Output true if the input becomes stable after the delay time" + annotation (Placement(transformation(extent={{-140,170},{-120,190}}))); + IBPSA.Controls.OBC.CDL.Logical.And invInp + "Output true if debounce time has passed and there is still no stable input" + annotation (Placement(transformation(extent={{0,170},{20,190}}))); + IBPSA.Controls.OBC.CDL.Logical.Or pasDel + "Output true if the feedback checking time has passed" + annotation (Placement(transformation(extent={{-142,-10},{-122,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Or cheDif + "Output true if the measured input is stable, or the feedback checking time has passed" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Logical.And botTru + "Output true if both valid measured input and the setpoint input are true" + annotation (Placement(transformation(extent={{-100,-90},{-80,-70}}))); + IBPSA.Controls.OBC.CDL.Logical.And truFal + "Output true if the setpoint input is true but the valid measured input is false" + annotation (Placement(transformation(extent={{0,-110},{20,-90}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay valTru( + final delayTime=debounce) "Valid measured input change from false to true" + annotation (Placement(transformation(extent={{-240,170},{-220,190}}))); + IBPSA.Controls.OBC.CDL.Logical.Switch valFal + "Output false if measured input is stable and changed from true to false" + annotation (Placement(transformation(extent={{-140,100},{-120,120}}))); + IBPSA.Controls.OBC.CDL.Logical.Switch cheDif1 + "Output the difference check result if the difference check condition is satisfied" + annotation (Placement(transformation(extent={{120,140},{140,160}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay truDel1( + final delayTime=debounce) + "Delay a rising edge, to check if the false input is valid" + annotation (Placement(transformation(extent={{-200,130},{-180,150}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not1 + "Logical not" + annotation (Placement(transformation(extent={{-240,130},{-220,150}}))); + IBPSA.Controls.OBC.CDL.Logical.Not notBotFal "Not both false inputs" + annotation (Placement(transformation(extent={{40,-160},{60,-140}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not2 "Logical not" + annotation (Placement(transformation(extent={{-220,-50},{-200,-30}}))); + IBPSA.Controls.OBC.CDL.Logical.And falTru + "Output true if the setpoint input is false but the valid measured input is true" + annotation (Placement(transformation(extent={{80,-200},{100,-180}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay delChe1( + final delayTime=feedbackDelay + debounce) + "Delay the difference check" + annotation (Placement(transformation(extent={{-180,-50},{-160,-30}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToInteger booToInt + "Convert boolean input to integer output" + annotation (Placement(transformation(extent={{-100,-140},{-80,-120}}))); + IBPSA.Controls.OBC.CDL.Integers.Equal equSta + "Output true if both inputs are same" + annotation (Placement(transformation(extent={{-60,-140},{-40,-120}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToInteger booToInt1 + "Convert boolean input to integer output" + annotation (Placement(transformation(extent={{-100,-180},{-80,-160}}))); + IBPSA.Controls.OBC.CDL.Logical.And botFal + "Output true if both valid measured input and the setpoint input are false" + annotation (Placement(transformation(extent={{0,-160},{20,-140}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant conTru( + final k=true) + "True constant" + annotation (Placement(transformation(extent={{-200,200},{-180,220}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not3 + "Input is invalid" + annotation (Placement(transformation(extent={{-80,170},{-60,190}}))); + IBPSA.Controls.OBC.CDL.Logical.Switch cheStaMea + "Output true if there is no stable measured input" + annotation (Placement(transformation(extent={{160,110},{180,130}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay delChe2( + final delayTime=feedbackDelay + debounce) + "Delay the difference check" + annotation (Placement(transformation(extent={{-220,-10},{-200,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant conFal( + final k=false) + "False constant" + annotation (Placement(transformation(extent={{40,132},{60,152}}))); + IBPSA.Controls.OBC.CDL.Logical.Not notBotTru + "Not both true inputs" + annotation (Placement(transformation(extent={{-60,-90},{-40,-70}}))); + IBPSA.Controls.OBC.CDL.Logical.Switch cheDif2 + "Output the difference check result if the difference check condition is satisfied" + annotation (Placement(transformation(extent={{120,-90},{140,-70}}))); + IBPSA.Controls.OBC.CDL.Logical.Switch cheStaMea1 + "Output true if there is no stable measured input" + annotation (Placement(transformation(extent={{160,-130},{180,-110}}))); + IBPSA.Controls.OBC.CDL.Logical.Timer pasDeb( + final t=feedbackDelay + debounce) + "Check if the debounce time has passed" + annotation (Placement(transformation(extent={{-40,140},{-20,160}}))); + IBPSA.Controls.OBC.CDL.Logical.Latch holTru + "Hold the true output when the input changes to true" + annotation (Placement(transformation(extent={{200,110},{220,130}}))); + IBPSA.Controls.OBC.CDL.Logical.Latch holTru1 + "Hold the true output when the input changes to true" + annotation (Placement(transformation(extent={{200,-130},{220,-110}}))); + IBPSA.Controls.OBC.CDL.Logical.Or equInp + "Output true if the measured input equal to the set point" + annotation (Placement(transformation(extent={{20,10},{40,30}}))); + IBPSA.Controls.OBC.CDL.Logical.Edge samInpEdg + "Output a rising edge when both inputs are same" + annotation (Placement(transformation(extent={{160,-30},{180,-10}}))); + IBPSA.Controls.OBC.CDL.Logical.And valEqu + "Output true if the measured input is valid and equal to the set point" + annotation (Placement(transformation(extent={{120,-30},{140,-10}}))); + +initial equation + assert( + feedbackDelay >= debounce, + "In " + getInstanceName() + ": Require feedbackDelay >= debounce, setting feedbackDelay = debounce.", + level=AssertionLevel.warning); + +equation + connect(u_m, valTru.u) annotation (Line(points={{0,-260},{0,-220},{-250,-220}, + {-250,180},{-242,180}}, color={255,0,255})); + connect(u_m, not1.u) annotation (Line(points={{0,-260},{0,-220},{-250,-220},{-250, + 140},{-242,140}}, color={255,0,255})); + connect(not1.y, truDel1.u) + annotation (Line(points={{-218,140},{-202,140}}, color={255,0,255})); + connect(valTru.y, valInp.u1) + annotation (Line(points={{-218,180},{-142,180}},color={255,0,255})); + connect(truDel1.y, valInp.u2) annotation (Line(points={{-178,140},{-160,140},{ + -160,172},{-142,172}},color={255,0,255})); + connect(truDel1.y, valFal.u2) annotation (Line(points={{-178,140},{-160,140},{ + -160,110},{-142,110}}, color={255,0,255})); + connect(u_m, valFal.u1) annotation (Line(points={{0,-260},{0,-220},{-250,-220}, + {-250,118},{-142,118}}, color={255,0,255})); + connect(conTru.y, valFal.u3) annotation (Line(points={{-178,210},{-170,210},{-170, + 102},{-142,102}}, color={255,0,255})); + connect(valInp.y, not3.u) + annotation (Line(points={{-118,180},{-82,180}}, color={255,0,255})); + connect(not3.y, invInp.u1) + annotation (Line(points={{-58,180},{-2,180}},color={255,0,255})); + connect(conTru.y, cheStaMea.u1) annotation (Line(points={{-178,210},{110,210}, + {110,128},{158,128}}, color={255,0,255})); + connect(u_s, not2.u) annotation (Line(points={{-280,0},{-240,0},{-240,-40},{ + -222,-40}}, color={255,0,255})); + connect(not2.y, delChe1.u) + annotation (Line(points={{-198,-40},{-182,-40}}, color={255,0,255})); + connect(u_s, delChe2.u) + annotation (Line(points={{-280,0},{-222,0}}, color={255,0,255})); + connect(delChe2.y, pasDel.u1) + annotation (Line(points={{-198,0},{-144,0}},color={255,0,255})); + connect(delChe1.y, pasDel.u2) annotation (Line(points={{-158,-40},{-154,-40}, + {-154,-8},{-144,-8}}, color={255,0,255})); + connect(valInp.y, cheDif.u2) annotation (Line(points={{-118,180},{-100,180},{-100, + -8},{-62,-8}}, color={255,0,255})); + connect(pasDel.y, cheDif.u1) + annotation (Line(points={{-120,0},{-62,0}}, color={255,0,255})); + connect(cheDif.y, cheDif1.u2) annotation (Line(points={{-38,0},{90,0},{90,150}, + {118,150}}, color={255,0,255})); + connect(botTru.y, notBotTru.u) + annotation (Line(points={{-78,-80},{-62,-80}}, color={255,0,255})); + connect(notBotTru.y, truFal.u1) annotation (Line(points={{-38,-80},{-20,-80},{ + -20,-100},{-2,-100}}, color={255,0,255})); + connect(valTru.y, botTru.u1) annotation (Line(points={{-218,180},{-150,180},{-150, + -80},{-102,-80}},color={255,0,255})); + connect(u_s, truFal.u2) annotation (Line(points={{-280,0},{-240,0},{-240,-108}, + {-2,-108}}, color={255,0,255})); + connect(u_s, booToInt1.u) annotation (Line(points={{-280,0},{-240,0},{-240,-170}, + {-102,-170}},color={255,0,255})); + connect(valFal.y, booToInt.u) annotation (Line(points={{-118,110},{-110,110},{ + -110,-130},{-102,-130}}, color={255,0,255})); + connect(booToInt.y, equSta.u1) + annotation (Line(points={{-78,-130},{-62,-130}}, color={255,127,0})); + connect(booToInt1.y, equSta.u2) annotation (Line(points={{-78,-170},{-70,-170}, + {-70,-138},{-62,-138}}, color={255,127,0})); + connect(not2.y, botFal.u1) annotation (Line(points={{-198,-40},{-190,-40},{ + -190,-150},{-2,-150}}, color={255,0,255})); + connect(equSta.y, botFal.u2) annotation (Line(points={{-38,-130},{-10,-130},{-10, + -158},{-2,-158}}, color={255,0,255})); + connect(botFal.y, notBotFal.u) + annotation (Line(points={{22,-150},{38,-150}}, color={255,0,255})); + connect(notBotFal.y, falTru.u1) annotation (Line(points={{62,-150},{70,-150},{ + 70,-190},{78,-190}}, color={255,0,255})); + connect(not2.y, falTru.u2) annotation (Line(points={{-198,-40},{-190,-40},{ + -190,-198},{78,-198}}, color={255,0,255})); + connect(cheDif1.y, cheStaMea.u3) annotation (Line(points={{142,150},{150,150}, + {150,112},{158,112}}, color={255,0,255})); + connect(cheDif.y, cheDif2.u2) annotation (Line(points={{-38,0},{90,0},{90,-80}, + {118,-80}}, color={255,0,255})); + connect(cheDif2.y, cheStaMea1.u3) annotation (Line(points={{142,-80},{150,-80}, + {150,-128},{158,-128}}, color={255,0,255})); + connect(conTru.y, cheStaMea1.u1) annotation (Line(points={{-178,210},{110,210}, + {110,-112},{158,-112}}, color={255,0,255})); + connect(conFal.y, cheDif1.u3) annotation (Line(points={{62,142},{118,142}}, + color={255,0,255})); + connect(conFal.y, cheDif2.u3) annotation (Line(points={{62,142},{100,142},{ + 100,-88},{118,-88}}, color={255,0,255})); + connect(falTru.y, cheDif2.u1) annotation (Line(points={{102,-190},{114,-190}, + {114,-72},{118,-72}}, color={255,0,255})); + connect(truFal.y, cheDif1.u1) annotation (Line(points={{22,-100},{70,-100},{ + 70,158},{118,158}}, color={255,0,255})); + connect(u_s, botTru.u2) annotation (Line(points={{-280,0},{-240,0},{-240,-88}, + {-102,-88}}, color={255,0,255})); + connect(cheStaMea.y, holTru.u) + annotation (Line(points={{182,120},{198,120}}, color={255,0,255})); + connect(cheStaMea1.y, holTru1.u) + annotation (Line(points={{182,-120},{198,-120}}, color={255,0,255})); + connect(holTru.y, yLocFal) + annotation (Line(points={{222,120},{260,120}}, color={255,0,255})); + connect(holTru1.y, yLocTru) + annotation (Line(points={{222,-120},{260,-120}}, color={255,0,255})); + connect(botTru.y, equInp.u1) annotation (Line(points={{-78,-80},{-70,-80},{-70, + 20},{18,20}}, color={255,0,255})); + connect(equSta.y, equInp.u2) annotation (Line(points={{-38,-130},{-10,-130},{-10, + 12},{18,12}}, color={255,0,255})); + connect(samInpEdg.y, holTru.clr) annotation (Line(points={{182,-20},{190,-20}, + {190,114},{198,114}}, color={255,0,255})); + connect(samInpEdg.y, holTru1.clr) annotation (Line(points={{182,-20},{190,-20}, + {190,-126},{198,-126}}, color={255,0,255})); + connect(invInp.y, cheStaMea.u2) + annotation (Line(points={{22,180},{80,180},{80,120},{158,120}}, color={255,0,255})); + connect(invInp.y, cheStaMea1.u2) annotation (Line(points={{22,180},{80,180},{ + 80,-120},{158,-120}}, color={255,0,255})); + connect(not3.y, pasDeb.u) annotation (Line(points={{-58,180},{-50,180},{-50, + 150},{-42,150}}, color={255,0,255})); + connect(pasDeb.passed, invInp.u2) annotation (Line(points={{-18,142},{-10,142}, + {-10,172},{-2,172}}, color={255,0,255})); + connect(equInp.y, valEqu.u1) annotation (Line(points={{42,20},{60,20},{60,-20}, + {118,-20}}, color={255,0,255})); + connect(valEqu.y, samInpEdg.u) + annotation (Line(points={{142,-20},{158,-20}}, color={255,0,255})); + connect(valInp.y, valEqu.u2) annotation (Line(points={{-118,180},{-100,180},{-100, + -28},{118,-28}}, color={255,0,255})); +annotation ( + defaultComponentName="pro", + Diagram( + coordinateSystem(extent={{-260,-240},{240,240}}), graphics={ + Rectangle( + extent={{-258,236},{28,42}}, + lineColor={215,215,215}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-258,38},{-114,-58}}, + lineColor={215,215,215}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-116,-62},{66,-198}}, + lineColor={215,215,215}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Text( + extent={{-248,38},{-174,20}}, + textColor={0,0,255}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + horizontalAlignment=TextAlignment.Left, + textString="Output true if u_s has passed +the feedback delay"), + Text( + extent={{-90,-182},{-4,-196}}, + textColor={0,0,255}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + horizontalAlignment=TextAlignment.Left, + textString="Check if the inputs are different"), + Text( + extent={{-252,236},{-130,224}}, + textColor={0,0,255}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + horizontalAlignment=TextAlignment.Left, + textString="Check if there is a stable measured input u_m")}), + Icon( + coordinateSystem(extent={{-100,-100},{100,100}}), graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{7,-73},{-7,-87}}, + lineColor=DynamicSelect({235,235,235}, if u_m then {0,255,0} else {235, + 235,235}), + fillColor=DynamicSelect({235,235,235}, if u_m then {0,255,0} else {235, + 235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-73,7},{-87,-7}}, + lineColor=DynamicSelect({235,235,235}, if u_s then {0,255,0} else {235, + 235,235}), + fillColor=DynamicSelect({235,235,235}, if u_s then {0,255,0} else {235, + 235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{73,57},{87,43}}, + lineColor=DynamicSelect({235,235,235}, if yLocFal then {0,255,0} else {235, + 235,235}), + fillColor=DynamicSelect({235,235,235}, if yLocFal then {0,255,0} else {235, + 235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{75,-43},{89,-57}}, + lineColor=DynamicSelect({235,235,235}, if yLocTru then {0,255,0} else {235, + 235,235}), + fillColor=DynamicSelect({235,235,235}, if yLocTru then {0,255,0} else {235, + 235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-100,140},{100,100}}, + textColor={0,0,255}, + textString="%name"), + Line( + points={{-60,60},{-60,-88}}, + color={192,192,192}), + Polygon( + points={{-60,82},{-68,60},{-52,60},{-60,82}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-70,-68},{80,-68}}, + color={192,192,192}), + Polygon( + points={{90,-68},{68,-60},{68,-76},{90,-68}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line(points={{-40,44}}, color={28,108,200}), + Line(points={{-60,-36},{-40,-36},{-40,-16},{20,-16},{20,-36},{60,-36}}, + color={0,0,0}), + Line(points={{-60,-68},{-14,-68},{-14,-48},{40,-48},{40,-68},{60,-68}}, + color={0,0,0}), + Line(points={{-60,44},{-40,44},{-40,64},{-14,64},{-14,44},{60,44}}, + color={28,108,200}), + Line(points={{-60,12},{20,12},{20,32},{40,32},{40,12},{60,12}}, color={28, + 108,200}), + Line( + points={{-40,40},{-40,-12}}, + color={28,108,200}, + pattern=LinePattern.Dash), + Line( + points={{-14,40},{-14,-44}}, + color={28,108,200}, + pattern=LinePattern.Dash), + Line( + points={{20,8},{20,-12}}, + color={28,108,200}, + pattern=LinePattern.Dash), + Line( + points={{40,8},{40,-44}}, + color={28,108,200}, + pattern=LinePattern.Dash), + Text( + extent={{-6,-4},{6,-14}}, + textColor={0,0,0}, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + textString="u_s"), + Text( + extent={{-10,-36},{6,-46}}, + textColor={0,0,0}, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + textString="u_m"), + Text( + extent={{22,44},{44,32}}, + textColor={0,0,0}, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + textString="yLocTru"), + Text( + extent={{-40,76},{-18,64}}, + textColor={0,0,0}, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + textString="yLocFal")}), +Documentation(info=" +

+Block that compares a boolean set point u_s with +a measured signal u_m and produces two outputs +that may be used to raise alarms about malfunctioning equipment. +

+

+The block sets the output yLocFal = true if +the set point is u_s = true but the measured signal is locked +at false, i.e., u_m = false. +Similarly, the block sets the output yLocTru = true +if the set point is u_s = false but the measured signal is locked +at true, i.e., u_m = true. +Hence, any output being true indicates an operational +problem. +

+

+To use this block, proceed as follows: +Set the parameter feedbackDelay ≥ 0 to specify how long the +feedback of the controlled device is allowed to take to report +its measured operational signal u_s +after a set point change u_m. +Set the parameter debounce ≥ 0 +to specify how long the measured +signal u_m need to remain constant for it to be considered +stable. +Connect the inputs for the set point u_s and +the measured signal u_m to the output signals that need to be checked. +If either output is true, raise an alarm, such as by +connecting instances of + +IBPSA.Controls.OBC.CDL.Utilities.Assert +to the outputs of this block. +

+

+Any output being true indicates a problem. +

+

+The block has two timers that each start whenever the corresponding input changes. +One timer, called feedbackDelay+debounce timer, starts +whenever the set point u_s change, and it runs for a time equal to +feedbackDelay+debounce. +The other timer, called debounce timer, starts whenever +the measured signal u_m changes, and it runs for a time equal to +debounce. +The block starts verifying the inputs whenever the feedbackDelay+debounce timer +lapsed, or the debounce timer lapsed, +(and hence the measurement is stable,) whichever is first. +

+

+Both outputs being true indicates that the measured signal u_m +is not stable within feedbackDelay+debounce time. +Exactly one output being true indicates +that the measured signal u_m is stable, but +u_s ≠ u_m. In this case, +the block sets yLocFal = true if u_s = true +(the measured signal is locked at false), +or it sets yLocTru = true if u_s = false +(the measured signal is locked at true). +

+

+Therefore, exactly one output being true can be interpreted as follows: +Suppose true means on and false means off.
+Then, yLocTru = true indicates that an equipment is locked +in operation mode but is commanded off; and similarly, +yLocFal = true indicates that it is locked in off mode +when it is commanded on. +

+

Detailed description

+

+The block works as follows. +Any change in set point u_s starts the feedbackDelay+debounce timer, and +any change in measured signal u_m starts the debounce timer. +

+

+As soon as the feedbackDelay+debounce timer +or the debounce timer lapsed, +whichever happens first, +the controller continuously performs these checks: +

+
    +
  1. +Check for stable measured signal.
    +If u_m is stable, then
    +    goto step 2.
    +Else:
    +    Set yLocFal = yLocTru = true.
    +    (Equipment is commanded on but we cannot conclude it is running;
    +    set both true to flag an unstable measurement signal.)
    +
  2. +
  3. +Check for commanded and measured input to be equal.
    +If u_s ≠ u_m, then
    +    goto step 3.
    +Else,
    +    set yLocFal = false and yLocTru = false.
    +    (Equipment is operating as commanded, verified using stable input.) +
  4. +
  5. +Inputs differ.
    +If u_s = true , then
    +    set yLocFal = true and yLocTru = false.
    +    (The equipment is commanded on, but it is off.)
    +Else,
    +    set yLocFal = false and yLocTru = true.
    +    (The equipment is commanded off, but it is on.)
    +
  6. +
+", +revisions=" + +")); +end Proof; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Constant.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/Constant.mo new file mode 100644 index 0000000000..2295f61fe1 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Constant.mo @@ -0,0 +1,76 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources; +block Constant + "Output constant signal of type Boolean" + parameter Boolean k + "Constant output value"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with constant value" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=k; + annotation ( + defaultComponentName="con", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Line( + points={{-90,-70},{72,-70}}, + color={255,0,255}), + Polygon( + points={{90,-70},{68,-62},{68,-78},{90,-70}}, + lineColor={255,0,255}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-80,88},{-88,66},{-72,66},{-80,88}}, + lineColor={255,0,255}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,66},{-80,-82}}, + color={255,0,255}), + Line( + points={{-80,0},{64,0}}), + Text( + extent={{-150,-140},{150,-110}}, + textColor={0,0,0}, + textString="%k")}), + Documentation( + info=" +

+Block that outputs a constant signal y = k, +where k is a Boolean-valued parameter. +

+ +

+\"Constant.png\" +

+")); +end Constant; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Pulse.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/Pulse.mo new file mode 100644 index 0000000000..27d18a6c61 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Pulse.mo @@ -0,0 +1,210 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources; +block Pulse + "Generate pulse signal of type Boolean" + parameter Real width( + final min=Constants.small, + final max=1, + final unit="1")=0.5 + "Width of pulse in fraction of period"; + parameter Real period( + final quantity="Time", + final unit="s", + final min=Constants.small) + "Time for one period"; + parameter Real shift( + final quantity="Time", + final unit="s")=0 + "Shift time for output"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with pulse value" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Real t0( + final quantity="Time", + final unit="s", + fixed=false) + "First sample time instant"; + parameter Real t1( + final quantity="Time", + final unit="s", + fixed=false) + "First end of amplitude"; + +initial algorithm + t0 := IBPSA.Utilities.Math.Functions.round( + x=integer((time)/period)*period+mod(shift,period), + n=6); + t1 := t0+width*period; + // Make sure t0 and t1 are within time + period. + if time+period < t1 then + t0 := t0-period; + t1 := t1-period; + end if; + // Make sure time is between t0 and t1, or t1 and t0 + // Now, t0 < t1 + if time >= t1 then + t0 := t0+period; + elseif time < t0 then + t1 := t1-period; + end if; + // Assert that t0 <= t < t1 or t1 <= t < t0 + if + (t0 < t1) then + assert( + t0 <= time and time < t1, + getInstanceName()+": Implementation error in initial time calculation: t0 = "+String(t0)+", t1 = "+String(t1)+", period = "+String(period)+", time = "+String(time)); + y := time >= t0 and time < t1; + else + assert( + t1 <= time and time < t0, + getInstanceName()+": Implementation error in initial time calculation: t0 = "+String(t0)+", t1 = "+String(t1)+", period = "+String(period)+", time = "+String(time)); + y := not + (time >= t1 and time < t0); + end if; + +equation + when sample( + t0, + period) then + y=true; + elsewhen sample( + t1, + period) then + y=false; + end when; + annotation ( + defaultComponentName="booPul", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-150,-140},{150,-110}}, + textColor={0,0,0}, + textString="%period"), + Line( + points={{79,-70},{40,-70},{40,44},{-1,44},{-1,-70},{-41,-70},{-41,44},{-80,44}}), + Polygon( + points={{-80,88},{-88,66},{-72,66},{-80,88}}, + lineColor={255,0,255}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,66},{-80,-82}}, + color={255,0,255}), + Line( + points={{-90,-70},{72,-70}}, + color={255,0,255}), + Polygon( + points={{90,-70},{68,-62},{68,-78},{90,-70}}, + lineColor={255,0,255}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Text( + extent={{-66,80},{-8,56}}, + textColor={135,135,135}, + textString="%period"), + Polygon( + points={{-2,52},{-14,56},{-14,48},{-2,52}}, + fillColor={135,135,135}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0}), + Line( + points={{-80,52},{-4,52}}, + color={135,135,135}), + Polygon( + points={{-80,52},{-68,56},{-68,48},{-80,52}}, + fillColor={135,135,135}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0}), + Line( + points={{40,34},{72,34}}, + color={135,135,135}), + Polygon( + points={{74,34},{62,38},{62,30},{74,34}}, + fillColor={135,135,135}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0}), + Text( + extent={{38,64},{96,40}}, + textColor={135,135,135}, + textString="%shift")}), + Documentation( + info=" +

+Block that outputs a pulse signal as shown below. +

+

+\"BooleanPulse.png\" +

+

+The pulse signal is generated an infinite number of times, and aligned with time=shift. +

+", + revisions=" + +")); +end Pulse; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/SampleTrigger.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/SampleTrigger.mo new file mode 100644 index 0000000000..1f1a7ee477 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/SampleTrigger.mo @@ -0,0 +1,131 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources; +block SampleTrigger + "Generate sample trigger signal" + parameter Real period( + final quantity="Time", + final unit="s", + final min=Constants.small) + "Sample period"; + parameter Real shift( + final quantity="Time", + final unit="s")=0 + "Shift time for output"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with trigger value" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Real t0( + final quantity="Time", + final unit="s", + fixed=false) + "First sample time instant"; + +initial equation + t0=IBPSA.Utilities.Math.Functions.round( + x=integer((time)/period)*period+mod(shift,period), + n=6); + +equation + y=sample(t0, period); + annotation ( + defaultComponentName="samTri", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Line( + points={{-60,-70},{-60,70}}), + Line( + points={{-20,-70},{-20,70}}), + Line( + points={{20,-70},{20,70}}), + Line( + points={{60,-70},{60,70}}), + Text( + extent={{-150,-140},{150,-110}}, + textColor={0,0,0}, + textString="%period"), + Polygon( + points={{-80,88},{-88,66},{-72,66},{-80,88}}, + lineColor={255,0,255}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,66},{-80,-82}}, + color={255,0,255}), + Line( + points={{-90,-70},{72,-70}}, + color={255,0,255}), + Polygon( + points={{90,-70},{68,-62},{68,-78},{90,-70}}, + lineColor={255,0,255}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name")}), + Documentation( + info=" +

+The Boolean output y is a trigger signal that is only true +at sample times (defined by parameter period) and is otherwise +false. +

+

+\"SampleTrigger.png\" +

+

+The trigger signal is generated an infinite number of times, and aligned with time=delay. +

+", + revisions=" + +")); +end SampleTrigger; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/TimeTable.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/TimeTable.mo new file mode 100644 index 0000000000..fa7bd4fa64 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/TimeTable.mo @@ -0,0 +1,143 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources; +block TimeTable + "Table look-up with respect to time with constant segments" + parameter Real table[:,:] + "Table matrix with time as a first column (in seconds, unless timeScale is not 1) and 0 for False or 1 for True in all other columns"; + parameter Real timeScale( + final unit="1")=1 + "Time scale of first table column. Set to 3600 if time in table is in hours"; + parameter Real period( + final quantity="Time", + final unit="s") + "Periodicity of table"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y[nout] + "Output with tabulated values" + annotation (Placement(transformation(extent={{120,-20},{160,20}}),iconTransformation(extent={{100,-20},{140,20}}))); + +protected + final parameter Integer nout=size(table, 2)-1 + "Dimension of output vector"; + final parameter Integer nT=size(table, 1) + "Number of table points"; + Integers.Sources.TimeTable intTimTab( + final table=table, + final timeScale=timeScale, + final period=period) + "Time table" + annotation (Placement(transformation(extent={{-12,-10},{8,10}}))); + Integers.GreaterThreshold intGreThr[nout](each t=0) + "Converts to boolean" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + +initial equation + // Check that all values in the second column are Integer values + for i in 1:nT loop + for j in 2:size(table, 2) loop + assert((abs(table[i,j]) < Constants.small) or + (abs(table[i,j]-1.0) < Constants.small), + "Table value table[" + String(i) + ", " + String(j) + "] = " + + String(table[i,j]) + " does not equal either 0 or 1."); + end for; + end for; + +equation + connect(intTimTab.y,intGreThr.u) + annotation (Line(points={{10,0},{38,0}},color={255,127,0})); + connect(intGreThr.y,y) + annotation (Line(points={{62,0},{96,0},{96,0},{140,0}},color={255,0,255})); + annotation ( + defaultComponentName="booTimTab", + Documentation( + info=" +

+Block that outputs true/false time table values. +

+

+The block takes as a parameter a time table of a format: +

+
+table = [ 0*3600, 0;
+          6*3600, 1;
+          6*3600, 0;
+         18*3600, 1;
+         18*3600, 1];
+period = 24*3600;
+
+

+where the first column of table is time and the remaining column(s) are the table values. +The time column contains Real values that are in units of seconds if timeScale = 1. +The parameter timeScale can be used to scale the time values, for example, use +timeScale = 3600 if the values in the first column are interpreted as hours. +

+

+The values in column two and higher must be 0 or 1, otherwise the model stops with an error. +

+

+Until a new tabulated value is set, the previous tabulated value is returned. +

+

+The table scope is repeated periodically with periodicity period. +

+", + revisions=" + +"), + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised, + lineColor={0,0,0}), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Polygon( + lineColor={217,67,180}, + fillColor={217,67,180}, + fillPattern=FillPattern.Solid, + points={{-80.0,90.0},{-88.0,68.0},{-72.0,68.0},{-80.0,90.0}}), + Line( + points={{-80.0,68.0},{-80.0,-80.0}}, + color={255,0,255}), + Line( + points={{-90.0,-70.0},{82.0,-70.0}}, + color={255,0,255}), + Polygon( + lineColor={255,0,255}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid, + points={{90.0,-70.0},{68.0,-62.0},{68.0,-78.0},{90.0,-70.0}}), + Rectangle( + lineColor={255,255,255}, + fillColor={255,215,136}, + fillPattern=FillPattern.Solid, + extent={{-48.0,-50.0},{2.0,70.0}}), + Line( + points={{-48.0,-50.0},{-48.0,70.0},{52.0,70.0},{52.0,-50.0},{-48.0,-50.0},{-48.0,-20.0},{52.0,-20.0},{52.0,10.0},{-48.0,10.0},{-48.0,40.0},{52.0,40.0},{52.0,70.0},{2.0,70.0},{2.0,-51.0}})}), + Diagram( + coordinateSystem( + extent={{-100,-100},{100,100}}))); +end TimeTable; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/Constant.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/Constant.mo new file mode 100644 index 0000000000..7de10168b3 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/Constant.mo @@ -0,0 +1,44 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources.Validation; +model Constant + "Validate the Constant block" + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant con( + k=true) + "Block output boolean constant value" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/Constant.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Sources.Constant. +

+ +", + revisions=" + +"), + Icon( + 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}})})); +end Constant; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/Pulse.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/Pulse.mo new file mode 100644 index 0000000000..4904c9f652 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/Pulse.mo @@ -0,0 +1,146 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources.Validation; +model Pulse + "Validation model for the Boolean Pulse block" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a1( + width=0.2, + period=2) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-90,40},{-70,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b1( + width=0.2, + period=2, + shift=0.1) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-90,0},{-70,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c1( + width=0.2, + period=2, + shift=0.6) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-90,-40},{-70,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a2( + width=0.2, + period=2, + shift=2) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-50,40},{-30,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b2( + width=0.2, + period=2, + shift=2.1) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-50,0},{-30,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c2( + width=0.2, + period=2, + shift=2.6) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-50,-40},{-30,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a3( + width=0.2, + period=2, + shift=4) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-10,40},{10,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b3( + width=0.2, + period=2, + shift=4.1) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-10,0},{10,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c3( + width=0.2, + period=2, + shift=4.6) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-10,-40},{10,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a4( + width=0.2, + period=2, + shift=-2) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{30,40},{50,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b4( + width=0.2, + period=2, + shift=-1.9) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{30,0},{50,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c4( + width=0.2, + period=2, + shift=-1.4) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{30,-40},{50,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a5( + width=0.2, + period=2, + shift=-4) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{70,40},{90,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b5( + width=0.2, + period=2, + shift=-3.9) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{70,0},{90,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c5( + width=0.2, + period=2, + shift=-3.4) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{70,-40},{90,-20}}))); + annotation ( + experiment( + StartTime=0, + StopTime=10, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/Pulse.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse. +

+

+This validates the blocks with a start time of 0. +All blocks with the same letter after the underscore are configured to produce +the same output. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Pulse; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/PulseNegativeStartTime.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/PulseNegativeStartTime.mo new file mode 100644 index 0000000000..7dd7468014 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/PulseNegativeStartTime.mo @@ -0,0 +1,136 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources.Validation; +model PulseNegativeStartTime + "Validation model for the Boolean Pulse block with negative start time" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a1( + width=0.2, + period=2) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-90,40},{-70,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b1( + width=0.2, + period=2, + shift=0.1) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-90,0},{-70,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c1( + width=0.2, + period=2, + shift=0.6) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-90,-40},{-70,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a2( + width=0.2, + period=2, + shift=2) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-50,40},{-30,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b2( + width=0.2, + period=2, + shift=2.1) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-50,0},{-30,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c2( + width=0.2, + period=2, + shift=2.6) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-50,-40},{-30,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a3( + width=0.2, + period=2, + shift=4) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-10,40},{10,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b3( + width=0.2, + period=2, + shift=4.1) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-10,0},{10,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c3( + width=0.2, + period=2, + shift=4.6) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-10,-40},{10,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a4( + width=0.2, + period=2, + shift=-2) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{30,40},{50,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b4( + width=0.2, + period=2, + shift=-1.9) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{30,0},{50,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c4( + width=0.2, + period=2, + shift=-1.4) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{30,-40},{50,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a5( + width=0.2, + period=2, + shift=-4) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{70,40},{90,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b5( + width=0.2, + period=2, + shift=-3.9) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{70,0},{90,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c5( + width=0.2, + period=2, + shift=-3.4) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{70,-40},{90,-20}}))); + annotation ( + experiment( + StartTime=-10, + StopTime=1, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/PulseNegativeStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse. +

+

+This validates the blocks with a start time of -10 seconds. +All blocks with the same letter after the underscore are configured to produce +the same output. +

+", + revisions=" + +"), + Icon( + 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}})})); +end PulseNegativeStartTime; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/PulsePositiveStartTime.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/PulsePositiveStartTime.mo new file mode 100644 index 0000000000..0834536813 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/PulsePositiveStartTime.mo @@ -0,0 +1,136 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources.Validation; +model PulsePositiveStartTime + "Validation model for the Boolean Pulse block with positive, non-zero start time" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a1( + width=0.2, + period=2) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-90,40},{-70,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b1( + width=0.2, + period=2, + shift=0.1) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-90,0},{-70,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c1( + width=0.2, + period=2, + shift=0.6) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-90,-40},{-70,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a2( + width=0.2, + period=2, + shift=2) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-50,40},{-30,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b2( + width=0.2, + period=2, + shift=2.1) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-50,0},{-30,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c2( + width=0.2, + period=2, + shift=2.6) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-50,-40},{-30,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a3( + width=0.2, + period=2, + shift=4) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-10,40},{10,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b3( + width=0.2, + period=2, + shift=4.1) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-10,0},{10,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c3( + width=0.2, + period=2, + shift=4.6) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{-10,-40},{10,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a4( + width=0.2, + period=2, + shift=-2) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{30,40},{50,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b4( + width=0.2, + period=2, + shift=-1.9) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{30,0},{50,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c4( + width=0.2, + period=2, + shift=-1.4) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{30,-40},{50,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_a5( + width=0.2, + period=2, + shift=-4) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{70,40},{90,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_b5( + width=0.2, + period=2, + shift=-3.9) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{70,0},{90,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul_c5( + width=0.2, + period=2, + shift=-3.4) + "Boolean pulse signal" + annotation (Placement(transformation(extent={{70,-40},{90,-20}}))); + annotation ( + experiment( + StartTime=9, + StopTime=20, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/PulsePositiveStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse. +

+

+This validates the blocks with a start time of 9 seconds. +All blocks with the same letter after the underscore are configured to produce +the same output. +

+", + revisions=" + +"), + Icon( + 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}})})); +end PulsePositiveStartTime; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/SampleTrigger.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/SampleTrigger.mo new file mode 100644 index 0000000000..c8b1805a70 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/SampleTrigger.mo @@ -0,0 +1,77 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources.Validation; +model SampleTrigger + "Validation model for the SampleTrigger block" + IBPSA.Controls.OBC.CDL.Logical.Sources.SampleTrigger samTri( + period=0.5) + "Block that generates sample trigger signal" + annotation (Placement(transformation(extent={{-30,20},{-10,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp( + duration=5, + offset=0, + height=20) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,60},{-60,80}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triggeredSampler + "Triggered sampler" + annotation (Placement(transformation(extent={{20,60},{40,80}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.SampleTrigger samTri1( + period=0.5, + shift=1.3) + "Block that generates sample trigger signal" + annotation (Placement(transformation(extent={{-30,-80},{-10,-60}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triggeredSampler1 + "Triggered sampler" + annotation (Placement(transformation(extent={{20,-40},{40,-20}}))); + +equation + connect(ramp.y,triggeredSampler.u) + annotation (Line(points={{-58,70},{18,70}},color={0,0,127})); + connect(samTri.y,triggeredSampler.trigger) + annotation (Line(points={{-8,30},{30,30},{30,58.2}},color={255,0,255})); + connect(samTri1.y,triggeredSampler1.trigger) + annotation (Line(points={{-8,-70},{30,-70},{30,-41.8}},color={255,0,255})); + connect(triggeredSampler1.u,ramp.y) + annotation (Line(points={{18,-30},{-40,-30},{-40,70},{-58,70}},color={0,0,127})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/SampleTrigger.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Sources.SampleTrigger. +The instances samTri and samTri1 use a different value for the parameter shift. +

+", + revisions=" + +"), + Icon( + 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}})})); +end SampleTrigger; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerNegativeStartTime.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerNegativeStartTime.mo new file mode 100644 index 0000000000..ab98d3143a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerNegativeStartTime.mo @@ -0,0 +1,74 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources.Validation; +model SampleTriggerNegativeStartTime + "Validation model for the SampleTrigger block with a negative start time" + IBPSA.Controls.OBC.CDL.Logical.Sources.SampleTrigger samTri( + period=0.5) + "Block that generates sample trigger signal" + annotation (Placement(transformation(extent={{-30,20},{-10,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp( + duration=5, + offset=0, + height=20, + startTime=-2) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,60},{-60,80}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triggeredSampler + "Triggered sampler" + annotation (Placement(transformation(extent={{20,60},{40,80}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.SampleTrigger samTri1( + period=0.5, + shift=3.2) + "Block that generates sample trigger signal" + annotation (Placement(transformation(extent={{-30,-80},{-10,-60}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triggeredSampler1 + "Triggered sampler" + annotation (Placement(transformation(extent={{20,-40},{40,-20}}))); + +equation + connect(ramp.y,triggeredSampler.u) + annotation (Line(points={{-58,70},{18,70}},color={0,0,127})); + connect(samTri.y,triggeredSampler.trigger) + annotation (Line(points={{-8,30},{30,30},{30,58.2}},color={255,0,255})); + connect(samTri1.y,triggeredSampler1.trigger) + annotation (Line(points={{-8,-70},{30,-70},{30,-41.8}},color={255,0,255})); + connect(triggeredSampler1.u,ramp.y) + annotation (Line(points={{18,-30},{-50,-30},{-50,70},{-58,70}},color={0,0,127})); + annotation ( + experiment( + StartTime=-2.0, + StopTime=3.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerNegativeStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Sources.SampleTrigger +with negative start time. +The instances samTri and samTri1 use a different value for the parameter shift. +

+", + revisions=" + +"), + Icon( + 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}})})); +end SampleTriggerNegativeStartTime; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerPositiveStartTime.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerPositiveStartTime.mo new file mode 100644 index 0000000000..eced5d8241 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerPositiveStartTime.mo @@ -0,0 +1,75 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources.Validation; +model SampleTriggerPositiveStartTime + "Validation model for the SampleTrigger block with a positive start time" + IBPSA.Controls.OBC.CDL.Logical.Sources.SampleTrigger samTri( + period=0.5) + "Block that generates sample trigger signal" + annotation (Placement(transformation(extent={{-30,20},{-10,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp( + duration=5, + offset=0, + height=20, + startTime=1) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,60},{-60,80}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triggeredSampler + "Triggered sampler" + annotation (Placement(transformation(extent={{20,60},{40,80}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.SampleTrigger samTri1( + period=0.5, + shift=0.3) + "Block that generates sample trigger signal" + annotation (Placement(transformation(extent={{-30,-80},{-10,-60}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triggeredSampler1( + y_start=-2) + "Triggered sampler" + annotation (Placement(transformation(extent={{20,-40},{40,-20}}))); + +equation + connect(ramp.y,triggeredSampler.u) + annotation (Line(points={{-58,70},{18,70}},color={0,0,127})); + connect(samTri.y,triggeredSampler.trigger) + annotation (Line(points={{-8,30},{30,30},{30,58}}, color={255,0,255})); + connect(samTri1.y,triggeredSampler1.trigger) + annotation (Line(points={{-8,-70},{30,-70},{30,-42}}, color={255,0,255})); + connect(triggeredSampler1.u,ramp.y) + annotation (Line(points={{18,-30},{-50,-30},{-50,70},{-58,70}},color={0,0,127})); + annotation ( + experiment( + StartTime=1.0, + StopTime=6.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerPositiveStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Sources.SampleTrigger +with positive start time. +The instances samTri and samTri1 use a different value for the parameter shift. +

+", + revisions=" + +"), + Icon( + 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}})})); +end SampleTriggerPositiveStartTime; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/TimeTable.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/TimeTable.mo new file mode 100644 index 0000000000..44ef8a0acb --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/TimeTable.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources.Validation; +model TimeTable + "Validation model for TimeTable block" + IBPSA.Controls.OBC.CDL.Logical.Sources.TimeTable booTimTab( + table=[ + 0,1,0; + 1.3,1,1; + 2.9,0,0; + 4,1,0], + period=5) + "Time table with boolean output" + annotation (Placement(transformation(extent={{-40,40},{-20,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.TimeTable booTimTabOneRow( + table=[ + 0,1,0], + period=1) + "Time table with boolean output for a single table row" + annotation (Placement(transformation(extent={{-40,-60},{-20,-40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.TimeTable booTimTabTwi( + table=[ + 0,1,0; + 1.3,1,1; + 2.9,0,0; + 4,1,0], + period=10, + timeScale=2) + "Time table with boolean output, periodic repetition, and doubled time" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + annotation ( + experiment( + Tolerance=1e-6, + StopTime=15.0), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/TimeTable.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Sources.TimeTable. +

+", + revisions=" + +"), + Icon( + 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}})})); +end TimeTable; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/TimeTableNegativeStartTime.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/TimeTableNegativeStartTime.mo new file mode 100644 index 0000000000..5e362e6db1 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/TimeTableNegativeStartTime.mo @@ -0,0 +1,68 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources.Validation; +model TimeTableNegativeStartTime + "Validation model for TimeTable block with negative start time" + IBPSA.Controls.OBC.CDL.Logical.Sources.TimeTable booTimTab( + table=[ + 0,1,0; + 1.3,1,1; + 2.9,0,0; + 4,1,0], + period=5) + "Time table with boolean output" + annotation (Placement(transformation(extent={{-40,40},{-20,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.TimeTable booTimTabOneRow( + table=[ + 0,1,0], + period=1) + "Time table with boolean output for a single table row" + annotation (Placement(transformation(extent={{-40,-60},{-20,-40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.TimeTable booTimTabTwi( + table=[ + 0,1,0; + 1.3,1,1; + 2.9,0,0; + 4,1,0], + period=10, + timeScale=2) + "Time table with boolean output, periodic repetition, and doubled time" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + annotation ( + experiment( + Tolerance=1e-6, + StartTime=-5.0, + StopTime=10.0), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/TimeTableNegativeStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

+This model validates the block + +IBPSA.Controls.OBC.CDL.Logical.Sources.TimeTable. +The model is identical to + +IBPSA.Controls.OBC.CDL.Logical.Sources.Validation.TimeTable +except that the start time is negative. +", + revisions=" +

+"), + Icon( + 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}})})); +end TimeTableNegativeStartTime; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/package.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/package.mo new file mode 100644 index 0000000000..721ab696af --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL.Logical.Sources; +package Validation "Collection of models that validate the logical sources blocks of the CDL" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains models that validate the blocks in + +IBPSA.Controls.OBC.CDL.Logical.Sources. +

+

+The examples plot various outputs, which have been verified against +analytical solutions. These model outputs are stored as reference data to +allow continuous validation whenever models in the library change. +

+"), + 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={8.0,14.0}, + 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}})})); +end Validation; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/package.order b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/package.order new file mode 100644 index 0000000000..4b0b7724d3 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/Validation/package.order @@ -0,0 +1,9 @@ +Constant +Pulse +PulseNegativeStartTime +PulsePositiveStartTime +SampleTrigger +SampleTriggerNegativeStartTime +SampleTriggerPositiveStartTime +TimeTable +TimeTableNegativeStartTime diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/package.mo b/IBPSA/Controls/OBC/CDL/Logical/Sources/package.mo new file mode 100644 index 0000000000..d70bb57c3b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/package.mo @@ -0,0 +1,33 @@ +within IBPSA.Controls.OBC.CDL.Logical; +package Sources "Package with blocks that generate source signals" + annotation ( + Documentation( + info=" +

+Package with blocks that generate signals. +

+"), + 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={23.3333,0.0}, + fillColor={128,128,128}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-23.333,30.0},{46.667,0.0},{-23.333,-30.0}}), + Rectangle( + fillColor={128,128,128}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{-70,-4.5},{0,4.5}})})); +end Sources; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Sources/package.order b/IBPSA/Controls/OBC/CDL/Logical/Sources/package.order new file mode 100644 index 0000000000..67d8b8c91e --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Sources/package.order @@ -0,0 +1,5 @@ +Constant +Pulse +SampleTrigger +TimeTable +Validation diff --git a/IBPSA/Controls/OBC/CDL/Logical/Switch.mo b/IBPSA/Controls/OBC/CDL/Logical/Switch.mo new file mode 100644 index 0000000000..8da32a67eb --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Switch.mo @@ -0,0 +1,158 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Switch + "Switch between two boolean signals" + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u1 + "Input u1" + annotation (Placement(transformation(extent={{-140,60},{-100,100}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u2 + "Boolean switch input signal, if true, y=u1, else y=u3" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u3 + "Input u3" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with u1 if u2 is true, else u3" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=if u2 then u1 else u3; + annotation ( + defaultComponentName="logSwi", + Documentation( + info=" +

+Block that outputs one of two boolean input signals based on a boolean input signal. +

+

+If the input signal u2 is true, +the block outputs y = u1. +Otherwise, it outputs y = u3. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Line( + points={{12,0},{100,0}}, + color={255,0,255}), + Line( + points={{-100,0},{-40,0}}, + color={255,0,255}), + Line( + points={{-100,-80},{-40,-80},{-40,-80}}, + color={255,0,255}), + Line( + points={{-40,12},{-40,-10}}, + color={255,0,255}), + Line( + points={{-100,80},{-40,80}}, + color={255,0,255}), + Line( + points=DynamicSelect({{8,2},{-40,80}},{{8,2}, + if u2 then + {-40,80} + else + {-40,-80}}), + color={255,0,255}, + thickness=1), + Ellipse( + lineColor={0,0,127}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{2.0,-6.0},{18.0,8.0}}), + Ellipse( + extent={{-71,7},{-85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-71,74},{-85,88}}, + lineColor=DynamicSelect({235,235,235}, + if u1 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u1 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-71,-74},{-85,-88}}, + lineColor=DynamicSelect({235,235,235}, + if u3 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u3 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-90,76},{-46,50}}, + textColor=DynamicSelect({0,0,0}, + if u2 then + {0,0,0} + else + {235,235,235}), + textString="true"), + Text( + extent={{-90,-42},{-38,-72}}, + textColor=DynamicSelect({0,0,0}, + if u2 then + {235,235,235} + else + {0,0,0}), + textString="false"), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")})); +end Switch; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Timer.mo b/IBPSA/Controls/OBC/CDL/Logical/Timer.mo new file mode 100644 index 0000000000..a0b2f23226 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Timer.mo @@ -0,0 +1,190 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Timer + "Timer measuring the time from the time instant where the Boolean input became true" + parameter Real t( + final quantity="Time", + final unit="s")=0 + "Threshold time for comparison"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Input that switches timer on if true, and off if false" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y( + final quantity="Time", + final unit="s") + "Elapsed time" + annotation (Placement(transformation(extent={{100,-20},{140,20}}),iconTransformation(extent={{100,-20},{140,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput passed + "Output with true if the elapsed time is greater than threshold" + annotation (Placement(transformation(extent={{100,-100},{140,-60}}),iconTransformation(extent={{100,-100},{140,-60}}))); + +protected + discrete Real entryTime( + final quantity="Time", + final unit="s") + "Time instant when u became true"; + +initial equation + pre(entryTime)=time; + pre(passed)=t <= 0; + +equation + when u then + entryTime=time; + // When u becomes true, and t=0, we want passed to be true + // at the first step (in superdense time). + passed=t <= 0; + elsewhen + (u and time >= t+pre(entryTime)) then + passed=true; + entryTime=pre(entryTime); + elsewhen not u then + // Set passed to false. + // This is the behavior a timer would have if the threshold test is done with a greater block connected to the output of the timer + passed=false; + entryTime=pre(entryTime); + end when; + y=if u then + time-entryTime + else + 0.0; + annotation ( + defaultComponentName="tim", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Line( + points={{-66,-60},{82,-60}}, + color={192,192,192}), + Line( + points={{-58,68},{-58,-80}}, + color={192,192,192}), + Polygon( + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid, + points={{90,-60},{68,-52},{68,-68},{90,-60}}), + Polygon( + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid, + points={{-58,90},{-66,68},{-50,68},{-58,90}}), + Line( + points={{-56,-60},{-38,-60},{-38,-16},{40,-16},{40,-60},{68,-60}}, + color={255,0,255}), + Line( + points={{-58,0},{-40,0},{40,58},{40,0},{68,0}}, + color={0,0,127}), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name"), + Text( + extent={{-64,62},{62,92}}, + textColor={0,0,0}, + textString="t=%t"), + Ellipse( + extent={{-83,7},{-69,-7}}, + lineColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{71,-73},{85,-87}}, + lineColor=DynamicSelect({235,235,235}, + if passed then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if passed then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+If the Boolean input u is true, +the output y is the time that has elapsed since u became true. +Otherwise, y is 0. +If the output y becomes greater than the threshold time t, +the output passed is true. +Otherwise it is false. +

+

+In the limiting case where the timer value reaches the threshold t +and the input u becomes false simultaneously, +the output passed remains false. +

+", + revisions=" + +")); +end Timer; diff --git a/IBPSA/Controls/OBC/CDL/Logical/TimerAccumulating.mo b/IBPSA/Controls/OBC/CDL/Logical/TimerAccumulating.mo new file mode 100644 index 0000000000..426e6d9227 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/TimerAccumulating.mo @@ -0,0 +1,212 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block TimerAccumulating + "Accumulating timer that can be reset" + parameter Real t( + final quantity="Time", + final unit="s")=0 + "Threshold time for comparison"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Input that switches timer on if true, and off if false" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput reset + "Connector for signal that sets timer to zero if it switches to true" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}),iconTransformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y( + final quantity="Time", + final unit="s") + "Elapsed time" + annotation (Placement(transformation(extent={{100,-20},{140,20}}),iconTransformation(extent={{100,-20},{140,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput passed + "Output with true if the elapsed time is greater than threshold" + annotation (Placement(transformation(extent={{100,-100},{140,-60}}),iconTransformation(extent={{100,-100},{140,-60}}))); + +protected + discrete Real entryTime( + final quantity="Time", + final unit="s") + "Time instant when u became true"; + discrete Real yAcc( + final quantity="Time", + final unit="s") + "Accumulated time up to last change to true"; + +initial equation + pre(u)=false; + pre(reset)=false; + pre(entryTime)=time; + pre(passed)=t <= 0; + yAcc=0; + +equation + // The when constructs below are identical to the ones in IBPSA.Controls.OBC.CDL.Logical.Timer + when reset then + entryTime=time; + passed=t <= 0; + yAcc=0; + elsewhen u then + entryTime=time; + // When u becomes true, and t=0, we want passed to be true + // at the first step (in superdense time). + passed=t <= yAcc; + yAcc=pre(yAcc); + elsewhen u and time >= t+pre(entryTime)-pre(yAcc) then + passed=true; + entryTime=pre(entryTime); + yAcc=pre(yAcc); + elsewhen not u then + passed=pre(passed); + //time >= t_internal + pre(entryTime); + entryTime=pre(entryTime); + yAcc=pre(y); + end when; + y=if u then + yAcc+time-entryTime + else + yAcc; + annotation ( + defaultComponentName="accTim", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Line( + points={{-66,-60},{82,-60}}, + color={192,192,192}), + Line( + points={{-58,68},{-58,-80}}, + color={192,192,192}), + Polygon( + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid, + points={{90,-60},{68,-52},{68,-68},{90,-60}}), + Polygon( + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid, + points={{-58,90},{-66,68},{-50,68},{-58,90}}), + Line( + points={{-56,-60},{-38,-60},{-38,-16},{-4,-16},{-4,-60},{26,-60},{26,-16},{64,-16}}, + color={255,0,255}), + Line( + points={{-58,0},{-40,0},{-6,28},{24,28},{60,58}}, + color={0,0,127}), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name"), + Text( + extent={{-64,62},{62,92}}, + textColor={0,0,0}, + textString="t=%t"), + Ellipse( + extent={{-83,7},{-69,-7}}, + lineColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{71,-73},{85,-87}}, + lineColor=DynamicSelect({235,235,235}, + if passed then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if passed then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Timer that accumulates time until it is reset by an input signal. +

+

+If the Boolean input u is true, +the output y is the time that has elapsed while u has been true +since the last time reset became true. +If u is false, the output y holds its value. +If the output y becomes greater than the threshold time t, +the output passed is true. +Otherwise it is false. +

+

+When reset becomes true, the timer is reset to 0. +

+

+In the limiting case where the timer value reaches the threshold t +and the input u becomes false simultaneously, +the output passed remains false. +

+", + revisions=" + +")); +end TimerAccumulating; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Toggle.mo b/IBPSA/Controls/OBC/CDL/Logical/Toggle.mo new file mode 100644 index 0000000000..a9e196c8f1 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Toggle.mo @@ -0,0 +1,178 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Toggle + "Toggles output value whenever its input turns true" + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Toggle input" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput clr + "Clear input" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with toggled signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + pre(y)=false; + pre(u)=false; + pre(clr)=false; + +equation + when initial() then + //scenario = 1 + y=if clr then false else u; + elsewhen + (not clr) and change(u) and + (pre(u) == false) and + (pre(y) == false) + then + //scenario = 2 + y=true; + elsewhen + (not clr) and change(u) and + (pre(u) == false) and + (pre(y) == true) + then + //scenario = 3 + y=false; + elsewhen + (not clr) and change(u) and + (pre(u) == true) + then + //scenario = 4 + y=pre(y); + elsewhen clr then + //scenario = 5 + y=false; + end when; + annotation ( + defaultComponentName="tog", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{-73,9},{-87,-5}}, + lineColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-73,-53},{-87,-67}}, + lineColor=DynamicSelect({235,235,235}, + if clr then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if clr then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Line( + points={{-68,-62},{4,-62},{4,-22},{74,-22}}, + color={255,0,255}), + Line( + points={{-68,24},{-48,24},{-48,56},{-16,56},{-16,24},{24,24},{24,56},{54,56},{54,24},{74,24}}, + color={255,0,255}), + Text( + extent={{-22,72},{28,58}}, + textColor={0,0,0}, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + textString="Toggle input"), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-14,-10},{14,-20}}, + textColor={0,0,0}, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + textString="Clear")}), + Documentation( + info=" +

+Block that generates a true output when toggle input u +rises from false to true, provided that the clear input +clr is false or also became at the same time +false. The output remains true until +

+ +

+If the clear input clr is true, the output y +switches to false (if it was true) and it remains false, +regardless of the value of the toggle input u. +

+ +

+At initial time, if clr = false, then the output will be +y = u. Otherwise it will be y=false +(because the clear input clr is true). +

+ +

+\"Toggle.png\" +

+ +", + revisions=" + +")); +end Toggle; diff --git a/IBPSA/Controls/OBC/CDL/Logical/TrueDelay.mo b/IBPSA/Controls/OBC/CDL/Logical/TrueDelay.mo new file mode 100644 index 0000000000..4352ef86dd --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/TrueDelay.mo @@ -0,0 +1,140 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block TrueDelay + "Delay a rising edge of the input, but do not delay a falling edge" + parameter Real delayTime( + final quantity="Time", + final unit="s") + "Delay time"; + parameter Boolean delayOnInit=false + "Set to true to delay initial true input"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Input signal to be delayed when it switches to true" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with delayed input signal after it switched to true" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Real t_past( + final quantity="Time", + final unit="s", + fixed=false) + "Time before simulation started"; + Real t_next( + final quantity="Time", + final unit="s") + "Next event time"; + +initial equation + t_past=time-1000; + pre(u)=false; + pre(t_next)=time-1000; + +equation + when initial() then + t_next=if not delayOnInit then t_past else time+delayTime; + y=if not (delayOnInit and delayTime > 0) then u else false; + elsewhen u then + t_next=time+delayTime; + y=if delayTime > 0 then false else true; + elsewhen not u then + t_next=t_past; + y=false; + elsewhen time >= pre(t_next) then + t_next=t_past; + y=u; + end when; + annotation ( + defaultComponentName="truDel", + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-250,-120},{250,-150}}, + textColor={0,0,0}, + textString="%delayTime"), + Line( + points={{-80,-66},{-60,-66},{-60,-22},{38,-22},{38,-66},{66,-66}}), + Line( + points={{-80,32},{-4,32},{-4,76},{38,76},{38,32},{66,32}}, + color={255,0,255}), + Ellipse( + extent={{-71,7},{-85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")}), + Documentation( + info=" +

+Block that delays a signal when it becomes true. +

+

+A rising edge of the Boolean input u gives a delayed output. +A falling edge of the input is immediately given to the output. If +delayOnInit = true, then a true input signal +at the start time is also delayed, otherwise the input signal is +produced immediately at the output. +

+

+Simulation results of a typical example with a delay time of 0.1 second +is shown below. +

+

+\"OnDelay1.png\" +
+\"OnDelay2.png\" +

+ +", + revisions=" + +")); +end TrueDelay; diff --git a/IBPSA/Controls/OBC/CDL/Logical/TrueFalseHold.mo b/IBPSA/Controls/OBC/CDL/Logical/TrueFalseHold.mo new file mode 100644 index 0000000000..5365adb62d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/TrueFalseHold.mo @@ -0,0 +1,187 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block TrueFalseHold + "Block that holds an output signal for at least a specified duration" + parameter Real trueHoldDuration( + final quantity="Time", + final unit="s") + "Duration of true hold" + annotation (Evaluate=true); + parameter Real falseHoldDuration( + final quantity="Time", + final unit="s")=trueHoldDuration + "Duration of false hold" + annotation (Evaluate=true); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Input signal that is to be delayed" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}), + iconTransformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with delayed input signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}), + iconTransformation(extent={{100,-20},{140,20}}))); +protected + /* The following parameter is required solely as a warkaround for a bug in OCT [Modelon - 1263]. + Both Dymola and OMC can handle the initial equation pre(u)=u, which complies with MLS. */ + parameter Boolean pre_u_start=false + "Value of pre(u) at initial time" + annotation (Evaluate=true); + Boolean not_u = not u + "Opposite of u"; + Boolean not_y = not y + "Opposite of y"; + discrete Real entryTimeTrue( + final quantity="Time", + final unit="s") + "Time instant when true hold started"; + discrete Real entryTimeFalse( + final quantity="Time", + final unit="s") + "Time instant when false hold started"; +initial equation + pre(entryTimeTrue) = -Modelica.Constants.inf; + pre(entryTimeFalse) = -Modelica.Constants.inf; + pre(u) = pre_u_start; + pre(not_u) = not pre_u_start; + pre(y) = u; + pre(not_y) = not u; +equation + when initial() then + y = u; + entryTimeTrue = if y then time else pre(entryTimeTrue); + entryTimeFalse = if not y then time else pre(entryTimeFalse); + /* + The two elsewhen clauses below are kept separate to address an issue + with event handling in the CVODE solver. + */ + elsewhen {edge(u), edge(not_u)} then + y = if time >= pre(entryTimeFalse) + falseHoldDuration and + time >= pre(entryTimeTrue) + trueHoldDuration then u + else pre(y); + entryTimeTrue = if edge(y) then time else pre(entryTimeTrue); + entryTimeFalse = if edge(not_y) then time else pre(entryTimeFalse); + elsewhen time >= pre(entryTimeFalse) + falseHoldDuration and + time >= pre(entryTimeTrue) + trueHoldDuration then + y = u; + entryTimeTrue = if edge(y) then time else pre(entryTimeTrue); + entryTimeFalse = if edge(not_y) then time else pre(entryTimeFalse); + end when; + annotation ( + defaultComponentName="truFalHol", + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised, + lineColor={0,0,0}), + Line( + points={{-84,10},{-50,10},{-50,54},{-18,54},{-18,10},{-18,10}}, + color={255,0,255}), + Line( + points={{-78,-46},{-48,-46},{-48,-2},{-24,-2},{-24,-46},{-24,-46}}), + Line( + points={{-24,-46},{6,-46},{6,-2},{44,-2},{44,-46},{74,-46}}), + Line( + points={{-18,10},{14,10},{14,54},{46,54},{46,10},{66,10}}, + color={255,0,255}), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-88,-62},{92,-90}}, + textColor={0,0,255}, + textString="%falseHoldDuration"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235},if y then + {0,255,0} else + {235,235,235}), + fillColor=DynamicSelect({235,235,235},if y then + {0,255,0} else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-83,7},{-69,-7}}, + lineColor=DynamicSelect({235,235,235},if u then + {0,255,0} else + {235,235,235}), + fillColor=DynamicSelect({235,235,235},if u then + {0,255,0} else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-90,96},{96,68}}, + textColor={0,0,255}, + textString="%trueHoldDuration")}), + Diagram( + coordinateSystem( + preserveAspectRatio=false)), + Documentation( + info=" +

+Block that holds a true or false signal for at least a defined time period. +

+

+Whenever the input u switches to true (resp. false), +the output y switches and remains true for at least +the duration specified by the parameter trueHoldDuration +(resp. falseHoldDuration). +After this duration has elapsed, the output will be y = u. +

+

+This block could for example be used to disable an economizer, +and not re-enable it for 10 min, and vice versa. +

+

+Simulation results of a typical example with trueHoldDuration = falseHoldDuration = 1000 s. +

+

+ +

+", + revisions=" + +")); +end TrueFalseHold; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/And.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/And.mo new file mode 100644 index 0000000000..9372ecd075 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/And.mo @@ -0,0 +1,58 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model And + "Validation model for the And block" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + width=0.5, + period=1.5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,8},{-6,28}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul2( + width=0.5, + period=5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,-26},{-6,-6}}))); + IBPSA.Controls.OBC.CDL.Logical.And and1 + "Logical and" + annotation (Placement(transformation(extent={{26,-8},{46,12}}))); + +equation + connect(booPul2.y,and1.u2) + annotation (Line(points={{-4,-16},{8,-16},{8,-6},{24,-6}},color={255,0,255})); + connect(booPul1.y,and1.u1) + annotation (Line(points={{-4,18},{10,18},{10,2},{24,2}},color={255,0,255})); + annotation ( + experiment( + StopTime=10.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/And.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.And. +

+", + revisions=" + +"), + Icon( + 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}})})); +end And; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/Change.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/Change.mo new file mode 100644 index 0000000000..20b2857cd0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/Change.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model Change + "Validation model for the Change block." + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + width=0.5, + period=1.0) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Change change + "Outputs true if the input changes" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=5, + offset=0, + height=20) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{0,40},{20,60}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triggeredSampler + "Triggered sampler" + annotation (Placement(transformation(extent={{40,40},{60,60}}))); + +equation + connect(booPul.y,change.u) + annotation (Line(points={{-19,0},{-6,0},{-2,0}},color={255,0,255})); + connect(ramp2.y,triggeredSampler.u) + annotation (Line(points={{21,50},{29.5,50},{38,50}},color={0,0,127})); + connect(change.y,triggeredSampler.trigger) + annotation (Line(points={{21,0},{50,0},{50,38.2}},color={255,0,255})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Change.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Change. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Change; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/Edge.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/Edge.mo new file mode 100644 index 0000000000..e4e044987b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/Edge.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model Edge + "Validation model for the Edge block" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + width=0.5, + period=1.0) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Edge edge1 + "Outputs true if the input has a rising edge" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=5, + offset=0, + height=20) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{0,40},{20,60}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triggeredSampler + "Triggered sampler" + annotation (Placement(transformation(extent={{40,40},{60,60}}))); + +equation + connect(booPul.y,edge1.u) + annotation (Line(points={{-19,0},{-8,0},{-2,0}},color={255,0,255})); + connect(edge1.y,triggeredSampler.trigger) + annotation (Line(points={{21,0},{50,0},{50,38},{50,38.2}},color={255,0,255})); + connect(ramp2.y,triggeredSampler.u) + annotation (Line(points={{21,50},{29.5,50},{38,50}},color={0,0,127})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Edge.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Edge. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Edge; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/FallingEdge.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/FallingEdge.mo new file mode 100644 index 0000000000..6bcb9179e8 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/FallingEdge.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model FallingEdge + "Validation model for the falling edge block" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + width=0.5, + period=1.0) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Logical.FallingEdge falEdg + "Output true when input changes from true to false" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=5, + offset=0, + height=20) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{0,40},{20,60}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triggeredSampler + "Trigger sampling of continuous signal" + annotation (Placement(transformation(extent={{40,40},{60,60}}))); + +equation + connect(booPul.y,falEdg.u) + annotation (Line(points={{-18,0},{-18,0},{-2,0}},color={255,0,255})); + connect(ramp2.y,triggeredSampler.u) + annotation (Line(points={{22,50},{22,50},{38,50}},color={0,0,127})); + connect(falEdg.y,triggeredSampler.trigger) + annotation (Line(points={{22,0},{22,0},{50,0},{50,38.2}},color={255,0,255})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/FallingEdge.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.FallingEdge. +

+", + revisions=" + +"), + Icon( + 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}})})); +end FallingEdge; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/Latch.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/Latch.mo new file mode 100644 index 0000000000..ee64512332 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/Latch.mo @@ -0,0 +1,221 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model Latch + "Validation model for the Latch block" + IBPSA.Controls.OBC.CDL.Logical.Latch falCleTruIni + "Latch block with clear input being contantly false and true initial latch input" + annotation (Placement(transformation(extent={{-60,90},{-40,110}}))); + IBPSA.Controls.OBC.CDL.Logical.Latch truCleTruIni + "Latch block with clear input being contantly true and true initial latch input" + annotation (Placement(transformation(extent={{-60,-50},{-40,-30}}))); + IBPSA.Controls.OBC.CDL.Logical.Latch falCleFalIni + "Latch block with clear input being contantly false and false initial latch input" + annotation (Placement(transformation(extent={{-60,30},{-40,50}}))); + IBPSA.Controls.OBC.CDL.Logical.Latch truCleFalIni + "Latch block with clear input being contantly true and false initial latch input" + annotation (Placement(transformation(extent={{-60,-110},{-40,-90}}))); + IBPSA.Controls.OBC.CDL.Logical.Latch swiCleInp + "Initial false output, with clear input switch between false and true" + annotation (Placement(transformation(extent={{100,90},{120,110}}))); + IBPSA.Controls.OBC.CDL.Logical.Latch swiCleInp1 + "Initial false output, with clear input switch between false and true" + annotation (Placement(transformation(extent={{100,-70},{120,-50}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse cleInp( + final width=0.5, + final period=6) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{0,30},{20,50}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not1 + "Logcal not" + annotation (Placement(transformation(extent={{40,-70},{60,-50}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant fal( + final k=false) + "False clear input" + annotation (Placement(transformation(extent={{-120,70},{-100,90}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse latInp( + final width=0.5, + final period=2) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-160,150},{-140,170}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant tru( + final k=true) + "True clear input" + annotation (Placement(transformation(extent={{-120,-70},{-100,-50}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not2 + "Logical not" + annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); + +equation + connect(cleInp.y,swiCleInp.clr) + annotation (Line(points={{22,40},{70,40},{70,94},{98,94}},color={255,0,255})); + connect(not1.u,cleInp.y) + annotation (Line(points={{38,-60},{30,-60},{30,40},{22,40}},color={255,0,255})); + connect(not1.y,swiCleInp1.clr) + annotation (Line(points={{62,-60},{72,-60},{72,-66},{98,-66}},color={255,0,255})); + connect(fal.y,falCleTruIni.clr) + annotation (Line(points={{-98,80},{-70,80},{-70,94},{-62,94}},color={255,0,255})); + connect(latInp.y,falCleTruIni.u) + annotation (Line(points={{-138,160},{-80,160},{-80,100},{-62,100}},color={255,0,255})); + connect(tru.y,truCleTruIni.clr) + annotation (Line(points={{-98,-60},{-70,-60},{-70,-46},{-62,-46}},color={255,0,255})); + connect(latInp.y,truCleTruIni.u) + annotation (Line(points={{-138,160},{-80,160},{-80,-40},{-62,-40}},color={255,0,255})); + connect(latInp.y,swiCleInp.u) + annotation (Line(points={{-138,160},{80,160},{80,100},{98,100}},color={255,0,255})); + connect(latInp.y,swiCleInp1.u) + annotation (Line(points={{-138,160},{80,160},{80,-60},{98,-60}},color={255,0,255})); + connect(latInp.y,not2.u) + annotation (Line(points={{-138,160},{-130,160},{-130,0},{-122,0}},color={255,0,255})); + connect(not2.y,falCleFalIni.u) + annotation (Line(points={{-98,0},{-90,0},{-90,40},{-62,40}},color={255,0,255})); + connect(fal.y,falCleFalIni.clr) + annotation (Line(points={{-98,80},{-70,80},{-70,34},{-62,34}},color={255,0,255})); + connect(tru.y,truCleFalIni.clr) + annotation (Line(points={{-98,-60},{-70,-60},{-70,-106},{-62,-106}},color={255,0,255})); + connect(not2.y,truCleFalIni.u) + annotation (Line(points={{-98,0},{-90,0},{-90,-100},{-62,-100}},color={255,0,255})); + annotation ( + experiment( + StopTime=10.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Latch.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Latch. Following tests are implemented: +

+ +", + revisions=" + +"), + Icon( + coordinateSystem( + extent={{-100,-100},{100,100}}), + 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( + extent={{-180,-180},{180,180}}), + graphics={ + Text( + extent={{-68,140},{-2,130}}, + textColor={28,108,200}, + textString="Clear input keeps false"), + Text( + extent={{76,148},{136,140}}, + textColor={28,108,200}, + textString="At 3rd second:"), + Text( + extent={{92,128},{172,118}}, + textColor={28,108,200}, + textString="Clear input falls: true to false"), + Text( + extent={{92,138},{170,128}}, + textColor={28,108,200}, + textString="Latch input falls: true to false"), + Text( + extent={{92,64},{170,56}}, + textColor={28,108,200}, + textString="Clear input rises: false to true"), + Text( + extent={{92,76},{172,66}}, + textColor={28,108,200}, + textString="Latch input rise: false to true"), + Text( + extent={{76,86},{136,78}}, + textColor={28,108,200}, + textString="At 6th second:"), + Text( + extent={{92,-96},{172,-104}}, + textColor={28,108,200}, + textString="Clear input falls: true to false"), + Text( + extent={{92,-84},{172,-94}}, + textColor={28,108,200}, + textString="Latch input rise: false to true"), + Text( + extent={{76,-74},{136,-82}}, + textColor={28,108,200}, + textString="At 6th second:"), + Text( + extent={{76,-12},{136,-20}}, + textColor={28,108,200}, + textString="At 3rd second:"), + Text( + extent={{92,-32},{172,-42}}, + textColor={28,108,200}, + textString="Clear input rises: false to true"), + Text( + extent={{92,-22},{170,-32}}, + textColor={28,108,200}, + textString="Latch input falls: true to false"), + Text( + extent={{-68,130},{-24,122}}, + textColor={28,108,200}, + textString="True initial input"), + Text( + extent={{-68,66},{-24,58}}, + textColor={28,108,200}, + textString="False initial input"), + Text( + extent={{-68,76},{-2,66}}, + textColor={28,108,200}, + textString="Clear input keeps false"), + Text( + extent={{-68,-14},{-24,-22}}, + textColor={28,108,200}, + textString="True initial input"), + Text( + extent={{-68,-4},{-2,-14}}, + textColor={28,108,200}, + textString="Clear input keeps true"), + Text( + extent={{-66,-74},{-22,-82}}, + textColor={28,108,200}, + textString="False initial input"), + Text( + extent={{-66,-64},{0,-74}}, + textColor={28,108,200}, + textString="Clear input keeps false")})); +end Latch; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/MultiAnd.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/MultiAnd.mo new file mode 100644 index 0000000000..ba07bcbf9b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/MultiAnd.mo @@ -0,0 +1,112 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model MultiAnd + "Model to validate the application of MultiAnd block" + IBPSA.Controls.OBC.CDL.Logical.MultiAnd mulAnd0 + "Logical and with multiple inputs: 0 input" + annotation (Placement(transformation(extent={{40,60},{60,80}}))); + IBPSA.Controls.OBC.CDL.Logical.MultiAnd mulAnd1( + nin=1) + "Logical 'MultiAnd': 1 input connection y=u" + annotation (Placement(transformation(extent={{40,20},{60,40}}))); + IBPSA.Controls.OBC.CDL.Logical.MultiAnd mulAnd2( + nin=2) + "Logical 'MultiAnd': 2 input connections y=and(u1, u2)" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + IBPSA.Controls.OBC.CDL.Logical.MultiAnd mulAnd5( + nin=5) + "Logical 'MultiAnd': 5 input connections y=and(u1, u2, ..., u5)" + annotation (Placement(transformation(extent={{40,-40},{60,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + width=0.5, + period=1) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-60,50},{-40,70}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul2( + width=0.5, + period=2) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-60,20},{-40,40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul3( + width=0.5, + period=3) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul4( + width=0.5, + period=4) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-60,-40},{-40,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul5( + width=0.5, + period=5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-60,-70},{-40,-50}}))); + +equation + connect(booPul1.y,mulAnd5.u[1]) + annotation (Line(points={{-38,60},{-38,60},{20,60},{20,-24.4},{38,-24.4}},color={255,0,255})); + connect(booPul2.y,mulAnd5.u[2]) + annotation (Line(points={{-38,30},{14,30},{14,-27.2},{38,-27.2}},color={255,0,255})); + connect(booPul3.y,mulAnd5.u[3]) + annotation (Line(points={{-38,0},{0,0},{0,-30},{38,-30}},color={255,0,255})); + connect(booPul4.y,mulAnd5.u[4]) + annotation (Line(points={{-38,-30},{-38,-30},{-4,-30},{-4,-32},{-4,-32},{-4, + -32.8},{38,-32.8}}, color={255,0,255})); + connect(booPul5.y,mulAnd5.u[5]) + annotation (Line(points={{-38,-60},{-38,-60},{20,-60},{20,-35.6},{38,-35.6}},color={255,0,255})); + connect(booPul1.y,mulAnd2.u[1]) + annotation (Line(points={{-38,60},{-38,60},{20,60},{20,3.5},{38,3.5}},color={255,0,255})); + connect(booPul2.y,mulAnd2.u[2]) + annotation (Line(points={{-38,30},{-38,30},{14,30},{14,-3.5},{38,-3.5}},color={255,0,255})); + connect(booPul1.y,mulAnd1.u[1]) + annotation (Line(points={{-38,60},{20,60},{20,30},{38,30}},color={255,0,255})); + annotation ( + experiment( + StopTime=10.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/MultiAnd.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.MultiAnd. +

+

+The input signals are configured as follows:

+ +", + revisions=" + +"), + Icon( + 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}})})); +end MultiAnd; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/MultiOr.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/MultiOr.mo new file mode 100644 index 0000000000..ff93ab70e3 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/MultiOr.mo @@ -0,0 +1,112 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model MultiOr + "Model to validate the application of MultiOr block" + IBPSA.Controls.OBC.CDL.Logical.MultiOr mulOr0 + "Logical 'MultiOr': 1 input connection y=u" + annotation (Placement(transformation(extent={{40,60},{60,80}}))); + IBPSA.Controls.OBC.CDL.Logical.MultiOr mulOr1( + nin=1) + "Logical 'MultiOr': 1 input connection y=u" + annotation (Placement(transformation(extent={{40,20},{60,40}}))); + IBPSA.Controls.OBC.CDL.Logical.MultiOr mulOr2( + nin=2) + "Logical 'MultiOr': 2 input connections y=and(u1, u2)" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + IBPSA.Controls.OBC.CDL.Logical.MultiOr mulOr5( + nin=5) + "Logical 'MultiOr': 5 input connections y=and(u1, u2, ..., u5)" + annotation (Placement(transformation(extent={{40,-40},{60,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + width=0.5, + period=1) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-60,50},{-40,70}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul2( + width=0.5, + period=2) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-60,20},{-40,40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul3( + width=0.5, + period=3) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul4( + width=0.5, + period=4) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-60,-40},{-40,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul5( + width=0.5, + period=5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-60,-70},{-40,-50}}))); + +equation + connect(booPul1.y,mulOr5.u[1]) + annotation (Line(points={{-38,60},{-38,60},{20,60},{20,-24.4},{38,-24.4}},color={255,0,255})); + connect(booPul2.y,mulOr5.u[2]) + annotation (Line(points={{-38,30},{14,30},{14,-27.2},{38,-27.2}},color={255,0,255})); + connect(booPul3.y,mulOr5.u[3]) + annotation (Line(points={{-38,0},{0,0},{0,-30},{38,-30}},color={255,0,255})); + connect(booPul4.y,mulOr5.u[4]) + annotation (Line(points={{-38,-30},{-38,-30},{-4,-30},{-4,-32},{-4,-32},{-4, + -32.8},{38,-32.8}}, color={255,0,255})); + connect(booPul5.y,mulOr5.u[5]) + annotation (Line(points={{-38,-60},{-38,-60},{20,-60},{20,-35.6},{38,-35.6}},color={255,0,255})); + connect(booPul1.y,mulOr2.u[1]) + annotation (Line(points={{-38,60},{-38,60},{20,60},{20,3.5},{38,3.5}},color={255,0,255})); + connect(booPul2.y,mulOr2.u[2]) + annotation (Line(points={{-38,30},{-38,30},{14,30},{14,-3.5},{38,-3.5}},color={255,0,255})); + connect(booPul1.y,mulOr1.u[1]) + annotation (Line(points={{-38,60},{20,60},{20,30},{38,30}},color={255,0,255})); + annotation ( + experiment( + StopTime=10.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/MultiOr.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.MultiOr. +

+

+The input signals are configured as follows:

+ +", + revisions=" + +"), + Icon( + 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}})})); +end MultiOr; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/Nand.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/Nand.mo new file mode 100644 index 0000000000..b6207791e1 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/Nand.mo @@ -0,0 +1,58 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model Nand + "Validation model for the Nand block" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + width=0.5, + period=1.5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,8},{-6,28}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul2( + width=0.5, + period=5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,-26},{-6,-6}}))); + IBPSA.Controls.OBC.CDL.Logical.Nand nand1 + "Outputs true if at least one input is false" + annotation (Placement(transformation(extent={{26,-8},{46,12}}))); + +equation + connect(booPul2.y,nand1.u2) + annotation (Line(points={{-4,-16},{8,-16},{8,-6},{24,-6}},color={255,0,255})); + connect(booPul1.y,nand1.u1) + annotation (Line(points={{-4,18},{10,18},{10,2},{24,2}},color={255,0,255})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Nand.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Nand. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Nand; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/Nor.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/Nor.mo new file mode 100644 index 0000000000..da611d25ca --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/Nor.mo @@ -0,0 +1,58 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model Nor + "Validation model for the Nor block" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + width=0.5, + period=1.5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,8},{-6,28}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul2( + width=0.5, + period=5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,-26},{-6,-6}}))); + IBPSA.Controls.OBC.CDL.Logical.Nor nor1 + "Outputs true if none of the inputs is true, otherwise outputs false" + annotation (Placement(transformation(extent={{26,-8},{46,12}}))); + +equation + connect(booPul2.y,nor1.u2) + annotation (Line(points={{-4,-16},{8,-16},{8,-6},{24,-6}},color={255,0,255})); + connect(booPul1.y,nor1.u1) + annotation (Line(points={{-4,18},{10,18},{10,2},{24,2}},color={255,0,255})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Nor.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Nor. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Nor; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/Not.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/Not.mo new file mode 100644 index 0000000000..15fa4ed695 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/Not.mo @@ -0,0 +1,51 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model Not + "Validation model for the Not block" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + width=0.5, + period=1.5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,-10},{-6,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not1 + "Output true when input is false and output false when input is true" + annotation (Placement(transformation(extent={{26,-10},{46,10}}))); + +equation + connect(booPul.y,not1.u) + annotation (Line(points={{-4,0},{-4,0},{24,0}},color={255,0,255})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Not.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Not. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Not; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/Or.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/Or.mo new file mode 100644 index 0000000000..44899c9dad --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/Or.mo @@ -0,0 +1,58 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model Or + "Validation model for the Or block" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + width=0.5, + period=1.5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,8},{-6,28}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul2( + width=0.5, + period=3) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,-26},{-6,-6}}))); + IBPSA.Controls.OBC.CDL.Logical.Or or1 + "Output true if at least one input is true" + annotation (Placement(transformation(extent={{26,-8},{46,12}}))); + +equation + connect(booPul2.y,or1.u2) + annotation (Line(points={{-4,-16},{8,-16},{8,-6},{24,-6}},color={255,0,255})); + connect(booPul1.y,or1.u1) + annotation (Line(points={{-4,18},{10,18},{10,2},{24,2}},color={255,0,255})); + annotation ( + experiment( + StopTime=10.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Or.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Or. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Or; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/Proof.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/Proof.mo new file mode 100644 index 0000000000..b253d84408 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/Proof.mo @@ -0,0 +1,156 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model Proof "Validation model for the Proof block" + IBPSA.Controls.OBC.CDL.Logical.Proof pro( + debounce=0.5, + feedbackDelay=0.75) "Both inputs change at the same time" + annotation (Placement(transformation(extent={{-20,70},{0,90}}))); + IBPSA.Controls.OBC.CDL.Logical.Proof pro1( + debounce=0.5, + feedbackDelay=0.75) + "Commanded input changes from true to false earlier than measured input" + annotation (Placement(transformation(extent={{-20,30},{0,50}}))); + IBPSA.Controls.OBC.CDL.Logical.Proof pro2( + debounce=0.5, + feedbackDelay=0.75) + "Measured input changes from true to false earlier than commanded input" + annotation (Placement(transformation(extent={{-20,-10},{0,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Proof pro3( + debounce=0.5, + feedbackDelay=0.5) + "Shorter delay to valid input" + annotation (Placement(transformation(extent={{-20,-50},{0,-30}}))); + IBPSA.Controls.OBC.CDL.Logical.Proof pro4( + debounce=0.5, + feedbackDelay=0.5) + "Shorter delay to valid input" + annotation (Placement(transformation(extent={{-20,-90},{0,-70}}))); + IBPSA.Controls.OBC.CDL.Logical.Proof pro5( + debounce=2, + feedbackDelay=2) + "Both inputs change at the same time" + annotation (Placement(transformation(extent={{60,70},{80,90}}))); + + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse latInp( + width=0.2, + period=10, + shift=1) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-80,54},{-60,74}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse latInp1( + width=0.2, + period=10, + shift=1) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse latInp2( + width=0.1, + period=10, + shift=1) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-80,-60},{-60,-40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse latInp3( + width=0.5, + period=2, + shift=1) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{40,30},{60,50}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse latInp4( + width=0.9, + period=12, + shift=0.5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{20,70},{40,90}}))); +equation + connect(latInp1.y, pro.u_s) annotation (Line(points={{-58,20},{-30,20},{-30,80}, + {-22,80}},color={255,0,255})); + connect(latInp2.y, pro1.u_s) annotation (Line(points={{-58,-50},{-40,-50},{-40, + 40},{-22,40}}, color={255,0,255})); + connect(latInp1.y, pro2.u_s) annotation (Line(points={{-58,20},{-30,20},{-30,0}, + {-22,0}}, color={255,0,255})); + connect(latInp2.y, pro4.u_s) annotation (Line(points={{-58,-50},{-40,-50},{-40, + -80},{-22,-80}}, color={255,0,255})); + connect(latInp1.y, pro3.u_s) annotation (Line(points={{-58,20},{-30,20},{-30,-40}, + {-22,-40}},color={255,0,255})); + connect(latInp.y, pro.u_m) annotation (Line(points={{-58,64},{-10,64},{-10,68}}, + color={255,0,255})); + connect(latInp1.y, pro4.u_m) annotation (Line(points={{-58,20},{-30,20},{-30,-96}, + {-10,-96},{-10,-92}}, color={255,0,255})); + connect(latInp2.y, pro3.u_m) annotation (Line(points={{-58,-50},{-40,-50},{-40, + -56},{-10,-56},{-10,-52}}, color={255,0,255})); + connect(latInp2.y, pro2.u_m) annotation (Line(points={{-58,-50},{-40,-50},{-40, + -16},{-10,-16},{-10,-12}}, color={255,0,255})); + connect(latInp1.y, pro1.u_m) annotation (Line(points={{-58,20},{-30,20},{-30,24}, + {-10,24},{-10,28}}, color={255,0,255})); + connect(latInp3.y, pro5.u_m) + annotation (Line(points={{62,40},{70,40},{70,68}}, color={255,0,255})); + connect(latInp4.y, pro5.u_s) + annotation (Line(points={{42,80},{58,80}}, color={255,0,255})); +annotation ( + experiment( + StopTime=10, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Proof.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Proof. The following tests are implemented: +

+ +", +revisions=" + +"), + Icon( + coordinateSystem( + extent={{-100,-100},{100,100}}), + 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( + extent={{-100,-100},{100,100}}))); +end Proof; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/Switch.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/Switch.mo new file mode 100644 index 0000000000..2672ed2802 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/Switch.mo @@ -0,0 +1,70 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model Switch "Validation model for the Switch block" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + width=0.7, + period=1.5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,24},{-6,44}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul2( + width=0.5, + period=3) + "Block that outputs cyclic on and off: switch between u1 and u3" + annotation (Placement(transformation(extent={{-26,-10},{-6,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul3( + width=0.5, + period=5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,-46},{-6,-26}}))); + IBPSA.Controls.OBC.CDL.Logical.Switch logicalSwitch + "Switch between two boolean inputs" + annotation (Placement(transformation(extent={{26,-10},{46,10}}))); + +equation + connect(booPul2.y,logicalSwitch.u2) + annotation (Line(points={{-4,0},{-4,0},{24,0}},color={255,0,255})); + connect(booPul1.y,logicalSwitch.u1) + annotation (Line(points={{-4,34},{10,34},{10,8},{24,8}},color={255,0,255})); + connect(booPul3.y,logicalSwitch.u3) + annotation (Line(points={{-4,-36},{10,-36},{10,-8},{24,-8}},color={255,0,255})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Switch.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Switch. +

+

+The input u2 is the switch input: If u2 = true, +then output y = u1; +else output y = u3. +

+ +", + revisions=" + +"), + Icon( + 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}})})); +end Switch; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/Timer.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/Timer.mo new file mode 100644 index 0000000000..abffac14f9 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/Timer.mo @@ -0,0 +1,77 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model Timer + "Validation model for the Timer block" + IBPSA.Controls.OBC.CDL.Logical.Timer noThr + "Timer that do not compare threshold" + annotation (Placement(transformation(extent={{20,10},{40,30}}))); + IBPSA.Controls.OBC.CDL.Logical.Timer thrTim( + final t=0.3) + "Timer that compares threshold" + annotation (Placement(transformation(extent={{20,-30},{40,-10}}))); + IBPSA.Controls.OBC.CDL.Logical.Timer thrTim1( + final t=0.3) + "Timer that compares threshold" + annotation (Placement(transformation(extent={{20,-70},{40,-50}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + final width=0.7, + final period=2) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-40,10},{-20,30}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + final width=0.7, + final period=2, + final shift=-1) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-40,-70},{-20,-50}}))); + +equation + connect(booPul.y,noThr.u) + annotation (Line(points={{-18,20},{18,20}},color={255,0,255})); + connect(booPul.y,thrTim.u) + annotation (Line(points={{-18,20},{0,20},{0,-20},{18,-20}},color={255,0,255})); + connect(booPul1.y,thrTim1.u) + annotation (Line(points={{-18,-60},{18,-60}},color={255,0,255})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Timer.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Timer. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Timer; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/TimerAccumulating.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/TimerAccumulating.mo new file mode 100644 index 0000000000..c9c049ecad --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/TimerAccumulating.mo @@ -0,0 +1,93 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model TimerAccumulating + "Validation model for the timer that accumulates the time" + IBPSA.Controls.OBC.CDL.Logical.TimerAccumulating noThr + "Accumulating timer that do not compare threshold" + annotation (Placement(transformation(extent={{-20,10},{0,30}}))); + IBPSA.Controls.OBC.CDL.Logical.TimerAccumulating thrTim( + final t=1) + "Accumulating timer that compares threshold" + annotation (Placement(transformation(extent={{-20,-30},{0,-10}}))); + IBPSA.Controls.OBC.CDL.Logical.TimerAccumulating noThrWitRes + "Accumulating timer that could reset the output" + annotation (Placement(transformation(extent={{40,10},{60,30}}))); + IBPSA.Controls.OBC.CDL.Logical.TimerAccumulating thrTimWitRes( + final t=1) + "Accumulating timer that could reset the output and the output compares with threshold" + annotation (Placement(transformation(extent={{40,-30},{60,-10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + final width=0.5, + final period=2) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-80,30},{-60,50}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant con( + final k=false) + "Constant false" + annotation (Placement(transformation(extent={{-80,-70},{-60,-50}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse resTim( + final width=0.5, + final period=3.5) + "Block that outputs cyclic on and off, for resetting timer" + annotation (Placement(transformation(extent={{-20,-70},{0,-50}}))); + +equation + connect(booPul.y,noThr.u) + annotation (Line(points={{-58,40},{-40,40},{-40,20},{-22,20}},color={255,0,255})); + connect(booPul.y,thrTim.u) + annotation (Line(points={{-58,40},{-40,40},{-40,-20},{-22,-20}},color={255,0,255})); + connect(con.y,noThr.reset) + annotation (Line(points={{-58,-60},{-48,-60},{-48,12},{-22,12}},color={255,0,255})); + connect(con.y,thrTim.reset) + annotation (Line(points={{-58,-60},{-48,-60},{-48,-28},{-22,-28}},color={255,0,255})); + connect(booPul.y,noThrWitRes.u) + annotation (Line(points={{-58,40},{20,40},{20,20},{38,20}},color={255,0,255})); + connect(booPul.y,thrTimWitRes.u) + annotation (Line(points={{-58,40},{20,40},{20,-20},{38,-20}},color={255,0,255})); + connect(resTim.y,noThrWitRes.reset) + annotation (Line(points={{2,-60},{12,-60},{12,12},{38,12}},color={255,0,255})); + connect(resTim.y,thrTimWitRes.reset) + annotation (Line(points={{2,-60},{12,-60},{12,-28},{38,-28}},color={255,0,255})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TimerAccumulating.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.TimerAccumulating. +

+", + revisions=" + +"), + Icon( + 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}})})); +end TimerAccumulating; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/TimerAccumulatingNegativeStartTime.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/TimerAccumulatingNegativeStartTime.mo new file mode 100644 index 0000000000..96c3757ea3 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/TimerAccumulatingNegativeStartTime.mo @@ -0,0 +1,96 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model TimerAccumulatingNegativeStartTime + "Validation model for the timer that accumulates the time, with a negative start time" + IBPSA.Controls.OBC.CDL.Logical.TimerAccumulating noThr + "Accumulating timer that do not compare threshold" + annotation (Placement(transformation(extent={{-20,10},{0,30}}))); + IBPSA.Controls.OBC.CDL.Logical.TimerAccumulating thrTim( + final t=1) + "Accumulating timer that compares threshold" + annotation (Placement(transformation(extent={{-20,-30},{0,-10}}))); + IBPSA.Controls.OBC.CDL.Logical.TimerAccumulating noThrWitRes + "Accumulating timer that could reset the output" + annotation (Placement(transformation(extent={{40,10},{60,30}}))); + IBPSA.Controls.OBC.CDL.Logical.TimerAccumulating thrTimWitRes( + final t=1) + "Accumulating timer that could reset the output and the output compares with threshold" + annotation (Placement(transformation(extent={{40,-30},{60,-10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + final width=0.5, + final period=4, + shift=-11) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-80,30},{-60,50}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant con( + final k=false) + "Constant false" + annotation (Placement(transformation(extent={{-80,-70},{-60,-50}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse resTim( + final width=0.5, + final period=3.5, + shift=-5) + "Block that outputs cyclic on and off, for resetting timer" + annotation (Placement(transformation(extent={{-20,-70},{0,-50}}))); + +equation + connect(booPul.y,noThr.u) + annotation (Line(points={{-58,40},{-40,40},{-40,20},{-22,20}},color={255,0,255})); + connect(booPul.y,thrTim.u) + annotation (Line(points={{-58,40},{-40,40},{-40,-20},{-22,-20}},color={255,0,255})); + connect(con.y,noThr.reset) + annotation (Line(points={{-58,-60},{-48,-60},{-48,12},{-22,12}},color={255,0,255})); + connect(con.y,thrTim.reset) + annotation (Line(points={{-58,-60},{-48,-60},{-48,-28},{-22,-28}},color={255,0,255})); + connect(booPul.y,noThrWitRes.u) + annotation (Line(points={{-58,40},{20,40},{20,20},{38,20}},color={255,0,255})); + connect(booPul.y,thrTimWitRes.u) + annotation (Line(points={{-58,40},{20,40},{20,-20},{38,-20}},color={255,0,255})); + connect(resTim.y,noThrWitRes.reset) + annotation (Line(points={{2,-60},{12,-60},{12,12},{38,12}},color={255,0,255})); + connect(resTim.y,thrTimWitRes.reset) + annotation (Line(points={{2,-60},{12,-60},{12,-28},{38,-28}},color={255,0,255})); + annotation ( + experiment( + StartTime=-10, + StopTime=5, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TimerAccumulatingNegativeStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.TimerAccumulating. +

+", + revisions=" + +"), + Icon( + 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}})})); +end TimerAccumulatingNegativeStartTime; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/TimerNegativeStartTime.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/TimerNegativeStartTime.mo new file mode 100644 index 0000000000..eb79c153d3 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/TimerNegativeStartTime.mo @@ -0,0 +1,67 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model TimerNegativeStartTime + "Validation model for the Timer block with a negative start time" + IBPSA.Controls.OBC.CDL.Logical.Timer noThr + "Timer that do not compare threshold" + annotation (Placement(transformation(extent={{20,10},{40,30}}))); + IBPSA.Controls.OBC.CDL.Logical.Timer thrTim( + final t=0.3) + "Timer that compares threshold" + annotation (Placement(transformation(extent={{20,-30},{40,-10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + final width=0.7, + final period=2, + shift=-5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-40,10},{-20,30}}))); + +equation + connect(booPul.y,noThr.u) + annotation (Line(points={{-18,20},{18,20}},color={255,0,255})); + connect(booPul.y,thrTim.u) + annotation (Line(points={{-18,20},{0,20},{0,-20},{18,-20}},color={255,0,255})); + annotation ( + experiment( + StartTime=-10, + StopTime=5, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TimerNegativeStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Timer. +

+", + revisions=" + +"), + Icon( + 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}})})); +end TimerNegativeStartTime; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/Toggle.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/Toggle.mo new file mode 100644 index 0000000000..dad6475af6 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/Toggle.mo @@ -0,0 +1,221 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model Toggle + "Validation model for the Toggle block" + IBPSA.Controls.OBC.CDL.Logical.Toggle falCleTruIni + "Toggle block with clear input being contantly false and true initial toggle input" + annotation (Placement(transformation(extent={{-60,90},{-40,110}}))); + IBPSA.Controls.OBC.CDL.Logical.Toggle falCleFalIni + "Toggle block with clear input being contantly false and false initial toggle input" + annotation (Placement(transformation(extent={{-60,30},{-40,50}}))); + IBPSA.Controls.OBC.CDL.Logical.Toggle truCleTruIni + "Toggle block with clear input being contantly true and true initial toggle input" + annotation (Placement(transformation(extent={{-60,-50},{-40,-30}}))); + IBPSA.Controls.OBC.CDL.Logical.Toggle truCleFalIni + "Toggle block with clear input being contantly true and false initial toggle input" + annotation (Placement(transformation(extent={{-60,-110},{-40,-90}}))); + IBPSA.Controls.OBC.CDL.Logical.Toggle swiCleInp + "Initial false output, with clear input switch between false and true" + annotation (Placement(transformation(extent={{100,90},{120,110}}))); + IBPSA.Controls.OBC.CDL.Logical.Toggle swiCleInp1 + "Initial false output, with clear input switch between false and true" + annotation (Placement(transformation(extent={{100,-70},{120,-50}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse cleInp( + final width=0.5, + final period=6) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{0,70},{20,90}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not1 + "Logical not" + annotation (Placement(transformation(extent={{40,-70},{60,-50}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse togInp( + final width=0.5, + final period=2) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-160,150},{-140,170}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant tru( + final k=true) + "True clear input" + annotation (Placement(transformation(extent={{-120,-70},{-100,-50}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not2 + "Logical not" + annotation (Placement(transformation(extent={{-120,-10},{-100,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant fal( + final k=false) + "False clear input" + annotation (Placement(transformation(extent={{-120,70},{-100,90}}))); + +equation + connect(cleInp.y,swiCleInp.clr) + annotation (Line(points={{22,80},{70,80},{70,94},{98,94}},color={255,0,255})); + connect(not1.u,cleInp.y) + annotation (Line(points={{38,-60},{30,-60},{30,80},{22,80}},color={255,0,255})); + connect(not1.y,swiCleInp1.clr) + annotation (Line(points={{62,-60},{72,-60},{72,-66},{98,-66}},color={255,0,255})); + connect(togInp.y,swiCleInp.u) + annotation (Line(points={{-138,160},{80,160},{80,100},{98,100}},color={255,0,255})); + connect(togInp.y,swiCleInp1.u) + annotation (Line(points={{-138,160},{80,160},{80,-60},{98,-60}},color={255,0,255})); + connect(togInp.y,falCleTruIni.u) + annotation (Line(points={{-138,160},{-80,160},{-80,100},{-62,100}},color={255,0,255})); + connect(fal.y,falCleTruIni.clr) + annotation (Line(points={{-98,80},{-70,80},{-70,94},{-62,94}},color={255,0,255})); + connect(togInp.y,truCleTruIni.u) + annotation (Line(points={{-138,160},{-80,160},{-80,-40},{-62,-40}},color={255,0,255})); + connect(fal.y,falCleFalIni.clr) + annotation (Line(points={{-98,80},{-70,80},{-70,34},{-62,34}},color={255,0,255})); + connect(togInp.y,not2.u) + annotation (Line(points={{-138,160},{-130,160},{-130,0},{-122,0}},color={255,0,255})); + connect(not2.y,falCleFalIni.u) + annotation (Line(points={{-98,0},{-90,0},{-90,40},{-62,40}},color={255,0,255})); + connect(tru.y,truCleTruIni.clr) + annotation (Line(points={{-98,-60},{-70,-60},{-70,-46},{-62,-46}},color={255,0,255})); + connect(tru.y,truCleFalIni.clr) + annotation (Line(points={{-98,-60},{-70,-60},{-70,-106},{-62,-106}},color={255,0,255})); + connect(not2.y,truCleFalIni.u) + annotation (Line(points={{-98,0},{-90,0},{-90,-100},{-62,-100}},color={255,0,255})); + annotation ( + experiment( + StopTime=10.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Toggle.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Toggle. Following tests are implemented: +

+ +", + revisions=" + +"), + Icon( + coordinateSystem( + extent={{-100,-100},{100,100}}), + 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( + extent={{-180,-180},{180,180}}), + graphics={ + Text( + extent={{76,148},{136,140}}, + textColor={28,108,200}, + textString="At 3rd second:"), + Text( + extent={{92,128},{172,118}}, + textColor={28,108,200}, + textString="Clear input falls: true to false"), + Text( + extent={{92,138},{170,128}}, + textColor={28,108,200}, + textString="Toggle input falls: true to false"), + Text( + extent={{92,64},{170,56}}, + textColor={28,108,200}, + textString="Clear input rises: false to true"), + Text( + extent={{92,76},{172,66}}, + textColor={28,108,200}, + textString="Toggle input rise: false to true"), + Text( + extent={{76,86},{136,78}}, + textColor={28,108,200}, + textString="At 6th second:"), + Text( + extent={{92,-96},{172,-104}}, + textColor={28,108,200}, + textString="Clear input falls: true to false"), + Text( + extent={{92,-84},{172,-94}}, + textColor={28,108,200}, + textString="Toggle input rise: false to true"), + Text( + extent={{76,-74},{136,-82}}, + textColor={28,108,200}, + textString="At 6th second:"), + Text( + extent={{76,-12},{136,-20}}, + textColor={28,108,200}, + textString="At 3rd second:"), + Text( + extent={{92,-32},{172,-42}}, + textColor={28,108,200}, + textString="Clear input rises: false to true"), + Text( + extent={{92,-22},{170,-32}}, + textColor={28,108,200}, + textString="Toggle input falls: true to false"), + Text( + extent={{-68,130},{-24,122}}, + textColor={28,108,200}, + textString="True initial input"), + Text( + extent={{-68,140},{-2,130}}, + textColor={28,108,200}, + textString="Clear input keeps false"), + Text( + extent={{-68,76},{-2,66}}, + textColor={28,108,200}, + textString="Clear input keeps false"), + Text( + extent={{-68,66},{-24,58}}, + textColor={28,108,200}, + textString="False initial input"), + Text( + extent={{-68,-4},{-2,-14}}, + textColor={28,108,200}, + textString="Clear input keeps true"), + Text( + extent={{-68,-14},{-24,-22}}, + textColor={28,108,200}, + textString="True initial input"), + Text( + extent={{-66,-64},{0,-74}}, + textColor={28,108,200}, + textString="Clear input keeps false"), + Text( + extent={{-66,-74},{-22,-82}}, + textColor={28,108,200}, + textString="False initial input")})); +end Toggle; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/TrueDelay.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/TrueDelay.mo new file mode 100644 index 0000000000..41bba54e71 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/TrueDelay.mo @@ -0,0 +1,174 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model TrueDelay + "Validation model for the TrueDelay block" + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay0( + final delayTime=0) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{0,130},{20,150}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay1( + final delayTime=0.5) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{60,130},{80,150}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay2( + final delayTime=0.8) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{0,100},{20,120}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay4( + final delayTime=0) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{0,40},{20,60}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay5( + final delayTime=0.5) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{60,40},{80,60}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay6( + final delayTime=0.8) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{0,10},{20,30}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not1 + "Negation of input signal" + annotation (Placement(transformation(extent={{-60,60},{-40,80}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay3( + final delayTime=1.8) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{60,100},{80,120}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay7( + final delayTime=1.8) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{60,10},{80,30}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay00( + final delayTime=0, + final delayOnInit=true) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{0,-50},{20,-30}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay11( + final delayTime=0.5, + final delayOnInit=true) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{60,-50},{80,-30}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay22( + final delayTime=0.8, + final delayOnInit=true) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{0,-80},{20,-60}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay44( + final delayTime=0, + final delayOnInit=true) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{0,-140},{20,-120}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay55( + final delayTime=0.5, + final delayOnInit=true) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{60,-140},{80,-120}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay66( + final delayTime=0.8, + final delayOnInit=true) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{0,-170},{20,-150}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not2 + "Negation of input signal" + annotation (Placement(transformation(extent={{-60,-120},{-40,-100}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay33( + final delayTime=1.8, + final delayOnInit=true) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{60,-80},{80,-60}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueDelay onDelay77( + final delayTime=1.8, + final delayOnInit=true) + "Delay a rising edge of the input, but do not delay a falling edge." + annotation (Placement(transformation(extent={{60,-170},{80,-150}}))); + +protected + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + final width=0.5, + final period=1.5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-100,80},{-80,100}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + final width=0.5, + final period=1.5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-100,-100},{-80,-80}}))); + +equation + connect(booPul.y,not1.u) + annotation (Line(points={{-79,90},{-70,90},{-70,70},{-62,70}},color={255,0,255})); + connect(booPul.y,onDelay0.u) + annotation (Line(points={{-79,90},{-20,90},{-20,140},{-2,140}},color={255,0,255})); + connect(booPul.y,onDelay2.u) + annotation (Line(points={{-79,90},{-20,90},{-20,110},{-2,110}},color={255,0,255})); + connect(booPul.y,onDelay1.u) + annotation (Line(points={{-79,90},{40,90},{40,140},{58,140}},color={255,0,255})); + connect(booPul.y,onDelay3.u) + annotation (Line(points={{-79,90},{40,90},{40,110},{58,110}},color={255,0,255})); + connect(not1.y,onDelay4.u) + annotation (Line(points={{-39,70},{-20,70},{-20,50},{-2,50}},color={255,0,255})); + connect(not1.y,onDelay6.u) + annotation (Line(points={{-39,70},{-20,70},{-20,20},{-2,20}},color={255,0,255})); + connect(not1.y,onDelay5.u) + annotation (Line(points={{-39,70},{40,70},{40,50},{58,50}},color={255,0,255})); + connect(not1.y,onDelay7.u) + annotation (Line(points={{-39,70},{40,70},{40,20},{58,20}},color={255,0,255})); + connect(booPul1.y,not2.u) + annotation (Line(points={{-79,-90},{-70,-90},{-70,-110},{-62,-110}},color={255,0,255})); + connect(booPul1.y,onDelay00.u) + annotation (Line(points={{-79,-90},{-20,-90},{-20,-40},{-2,-40}},color={255,0,255})); + connect(booPul1.y,onDelay22.u) + annotation (Line(points={{-79,-90},{-20,-90},{-20,-70},{-2,-70}},color={255,0,255})); + connect(booPul1.y,onDelay11.u) + annotation (Line(points={{-79,-90},{40,-90},{40,-40},{58,-40}},color={255,0,255})); + connect(booPul1.y,onDelay33.u) + annotation (Line(points={{-79,-90},{40,-90},{40,-70},{58,-70}},color={255,0,255})); + connect(not2.y,onDelay44.u) + annotation (Line(points={{-39,-110},{-20,-110},{-20,-130},{-2,-130}},color={255,0,255})); + connect(not2.y,onDelay66.u) + annotation (Line(points={{-39,-110},{-20,-110},{-20,-160},{-2,-160}},color={255,0,255})); + connect(not2.y,onDelay55.u) + annotation (Line(points={{-39,-110},{40,-110},{40,-130},{58,-130}},color={255,0,255})); + connect(not2.y,onDelay77.u) + annotation (Line(points={{-39,-110},{40,-110},{40,-160},{58,-160}},color={255,0,255})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TrueDelay.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.TrueDelay. +

+", + revisions=" + +"), + Icon( + 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( + extent={{-100,-180},{100,180}}))); +end TrueDelay; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/TrueFalseHold.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/TrueFalseHold.mo new file mode 100644 index 0000000000..9f58dfd7fb --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/TrueFalseHold.mo @@ -0,0 +1,179 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model TrueFalseHold + "Validation model for the TrueFalseHold block" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + shift=0, + period=1500) + "Boolean pulse input signal" + annotation (Placement(transformation(extent={{-140,60},{-120,80}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol( + trueHoldDuration=1000) + "The block introduces a minimal offset between the input signal rising and falling edge" + annotation (Placement(transformation(extent={{-40,60},{-20,80}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + shift=0, + period=1000, + width=0.25) + "Boolean pulse input signal" + annotation (Placement(transformation(extent={{-140,20},{-120,40}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol1( + trueHoldDuration=1000) + "The block introduces a minimal offset between the input signal rising and falling edge" + annotation (Placement(transformation(extent={{-40,20},{-20,40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul2( + shift=0, + period=1500) + "Boolean pulse input signal" + annotation (Placement(transformation(extent={{-140,-20},{-120,0}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol2( + trueHoldDuration=1000) + "The block introduces a minimal offset between the input signal rising and falling edge" + annotation (Placement(transformation(extent={{-40,-20},{-20,0}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul3( + shift=0, + period=1000, + width=0.25) + "Boolean pulse input signal" + annotation (Placement(transformation(extent={{-140,-60},{-120,-40}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol3( + trueHoldDuration=1000) + "The block introduces a minimal offset between the input signal rising and falling edge" + annotation (Placement(transformation(extent={{-40,-60},{-20,-40}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not1 + "Negation of input signal" + annotation (Placement(transformation(extent={{-90,-20},{-70,0}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not3 + "Negation of input signal" + annotation (Placement(transformation(extent={{-90,-60},{-70,-40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul4( + shift=100, + period=1500) + "Boolean pulse input signal" + annotation (Placement(transformation(extent={{20,60},{40,80}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol4( + trueHoldDuration=1000) + "The block introduces a minimal offset between the input signal rising and falling edge" + annotation (Placement(transformation(extent={{120,60},{140,80}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul5( + shift=100, + period=1000, + width=0.25) + "Boolean pulse input signal" + annotation (Placement(transformation(extent={{20,20},{40,40}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol5( + trueHoldDuration=1000) + "The block introduces a minimal offset between the input signal rising and falling edge" + annotation (Placement(transformation(extent={{120,20},{140,40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul6( + shift=100, + period=1500) + "Boolean pulse input signal" + annotation (Placement(transformation(extent={{20,-20},{40,0}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol6( + trueHoldDuration=1000) + "The block introduces a minimal offset between the input signal rising and falling edge" + annotation (Placement(transformation(extent={{120,-20},{140,0}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul7( + shift=100, + period=1000, + width=0.25) + "Boolean pulse input signal" + annotation (Placement(transformation(extent={{20,-60},{40,-40}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol7( + trueHoldDuration=1000) + "The block introduces a minimal offset between the input signal rising and falling edge" + annotation (Placement(transformation(extent={{120,-60},{140,-40}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not2 "Negation of input signal" + annotation (Placement(transformation(extent={{70,-20},{90,0}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not4 + "Negation of input signal" + annotation (Placement(transformation(extent={{70,-60},{90,-40}}))); + + IBPSA.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol8(trueHoldDuration= + 0, falseHoldDuration=1000) + "Hold only false value of unit impulse signal" + annotation (Placement(transformation(extent={{120,-90},{140,-70}}))); + IBPSA.Controls.OBC.CDL.Logical.Edge edg "Generate unit impulse signal" + annotation (Placement(transformation(extent={{70,-90},{90,-70}}))); +equation + connect(booPul.y,truFalHol.u) + annotation (Line(points={{-118,70},{-118,70},{-42,70}},color={255,0,255})); + connect(booPul1.y,truFalHol1.u) + annotation (Line(points={{-118,30},{-42,30}},color={255,0,255})); + connect(booPul2.y,not1.u) + annotation (Line(points={{-118,-10},{-92,-10}},color={255,0,255})); + connect(not1.y,truFalHol2.u) + annotation (Line(points={{-68,-10},{-42,-10}},color={255,0,255})); + connect(booPul3.y,not3.u) + annotation (Line(points={{-118,-50},{-92,-50}},color={255,0,255})); + connect(not3.y,truFalHol3.u) + annotation (Line(points={{-68,-50},{-42,-50}},color={255,0,255})); + connect(booPul4.y,truFalHol4.u) + annotation (Line(points={{42,70},{118,70}},color={255,0,255})); + connect(booPul5.y,truFalHol5.u) + annotation (Line(points={{42,30},{118,30}},color={255,0,255})); + connect(booPul6.y,not2.u) + annotation (Line(points={{42,-10},{68,-10}},color={255,0,255})); + connect(not2.y,truFalHol6.u) + annotation (Line(points={{92,-10},{118,-10}},color={255,0,255})); + connect(booPul7.y,not4.u) + annotation (Line(points={{42,-50},{68,-50}},color={255,0,255})); + connect(not4.y,truFalHol7.u) + annotation (Line(points={{92,-50},{118,-50}},color={255,0,255})); + connect(edg.y, truFalHol8.u) + annotation (Line(points={{92,-80},{118,-80}}, color={255,0,255})); + connect(booPul6.y, edg.u) annotation (Line(points={{42,-10},{60,-10},{60,-80}, + {68,-80}}, color={255,0,255})); + annotation ( + experiment( + StopTime=7200.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TrueFalseHold.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.TrueFalseHold. +

+

+The validation uses different instances to validate different hold trueHoldDurations, different lengths +of the input pulse, and different initial values for the input signal. +

+", + revisions=" + +"), + Diagram( + coordinateSystem( + extent={{-160,-100},{160,100}})), + Icon( + 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}})})); +end TrueFalseHold; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/VariablePulse.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/VariablePulse.mo new file mode 100644 index 0000000000..2a515a11bb --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/VariablePulse.mo @@ -0,0 +1,156 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model VariablePulse + "Validation model for producing boolean pulse output" + + IBPSA.Controls.OBC.CDL.Logical.VariablePulse conTru( + period=900) "Variable pulse with constant pulse width" + annotation (Placement(transformation(extent={{-40,-30},{-20,-10}}))); + IBPSA.Controls.OBC.CDL.Logical.VariablePulse fal( + period=900) + "Variable pulse with the zero width input" + annotation (Placement(transformation(extent={{-40,50},{-20,70}}))); + IBPSA.Controls.OBC.CDL.Logical.VariablePulse truFal( + period=900) + "Variable pulse with width input changing from positive value to zero" + annotation (Placement(transformation(extent={{60,50},{80,70}}))); + IBPSA.Controls.OBC.CDL.Logical.VariablePulse falTru( + period=900) + "Variable pulse with width input changing from zero to positive value" + annotation (Placement(transformation(extent={{60,10},{80,30}}))); + IBPSA.Controls.OBC.CDL.Logical.VariablePulse tru( + period=900) + "Variable pulse with the constant width input" + annotation (Placement(transformation(extent={{-40,10},{-20,30}}))); + IBPSA.Controls.OBC.CDL.Logical.VariablePulse falTru1( + period=900) + "Variable pulse with width input changing between different positive values" + annotation (Placement(transformation(extent={{60,-30},{80,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse conPul( + amplitude=0.65, + width=0.8, + period=4000) + "Continuous pulse signal" + annotation (Placement(transformation(extent={{20,50},{40,70}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant con( + k=0.75) + "Constant" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant con1( + k=0) + "Constant value" + annotation (Placement(transformation(extent={{-80,50},{-60,70}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse conPul1( + amplitude=0.65, + width=0.85, + period=3600, + shift=360) + "Continuous pulse signal" + annotation (Placement(transformation(extent={{20,10},{40,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant con2( + k=1) + "Constant value" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse conPul2( + amplitude=0.5, + width=0.5, + period=3600, + shift=360, + offset=0.3) + "Continuous pulse signal" + annotation (Placement(transformation(extent={{20,-30},{40,-10}}))); + IBPSA.Controls.OBC.CDL.Logical.VariablePulse conChaWid( + period=900) + "Variable pulse with constantly changing pulse width " + annotation (Placement(transformation(extent={{-40,-70},{-20,-50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram( + height=0.8, + duration=900, + startTime=300) + "Ramp input" + annotation (Placement(transformation(extent={{-80,-70},{-60,-50}}))); +equation + connect(con.y, conTru.u) + annotation (Line(points={{-58,-20},{-42,-20}}, color={0,0,127})); + connect(con1.y, fal.u) + annotation (Line(points={{-58,60},{-42,60}}, color={0,0,127})); + connect(conPul.y, truFal.u) + annotation (Line(points={{42,60},{58,60}}, color={0,0,127})); + connect(conPul1.y, falTru.u) + annotation (Line(points={{42,20},{58,20}}, color={0,0,127})); + connect(con2.y, tru.u) + annotation (Line(points={{-58,20},{-42,20}}, color={0,0,127})); + connect(conPul2.y, falTru1.u) + annotation (Line(points={{42,-20},{58,-20}}, color={0,0,127})); + connect(ram.y, conChaWid.u) + annotation (Line(points={{-58,-60},{-42,-60}}, color={0,0,127})); +annotation (experiment( + StartTime=0, + StopTime=3600, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/VariablePulse.mos" "Simulate and plot"), + Documentation(info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.VariablePulse. +

+ +", +revisions=" + +"), + Icon( + 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}})})); +end VariablePulse; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/VariablePulseMinHold.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/VariablePulseMinHold.mo new file mode 100644 index 0000000000..5ff8854109 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/VariablePulseMinHold.mo @@ -0,0 +1,60 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model VariablePulseMinHold + "Validation model for producing boolean pulse output" + + IBPSA.Controls.OBC.CDL.Logical.VariablePulse conChaWid( + period=3, + minTruFalHol=1) + "Variable pulse with constantly changing pulse width " + annotation (Placement(transformation(extent={{10,-10},{30,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse conPul1( + amplitude=0.4, + width=0.4, + period=4, + shift=1.6, + offset=0.5) + "Continuous pulse signal" + annotation (Placement(transformation(extent={{-30,-10},{-10,10}}))); +equation + connect(conPul1.y, conChaWid.u) + annotation (Line(points={{-8,0},{8,0}}, color={0,0,127})); +annotation (experiment( + StopTime=5, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/VariablePulseMinHold.mos" "Simulate and plot"), + Documentation(info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.VariablePulse. +

+

+It tests the case that the input value changes at the moment when the output +is still in previous status in less than the minimum holding time. +In the case, the output holds the previous status for the minimum holding time +and then change to the new status. +

+", +revisions=" + +"), + Icon( + 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}})})); +end VariablePulseMinHold; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/Xor.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/Xor.mo new file mode 100644 index 0000000000..92c712daae --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/Xor.mo @@ -0,0 +1,58 @@ +within IBPSA.Controls.OBC.CDL.Logical.Validation; +model Xor + "Validation model for the Xor block" + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + width=0.5, + period=1.5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,8},{-6,28}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul2( + width=0.5, + period=5) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,-26},{-6,-6}}))); + IBPSA.Controls.OBC.CDL.Logical.Xor xor1 + "Outputs true if exactly one input is true" + annotation (Placement(transformation(extent={{26,-8},{46,12}}))); + +equation + connect(booPul2.y,xor1.u2) + annotation (Line(points={{-4,-16},{8,-16},{8,-6},{24,-6}},color={255,0,255})); + connect(booPul1.y,xor1.u1) + annotation (Line(points={{-4,18},{10,18},{10,2},{24,2}},color={255,0,255})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Xor.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Logical.Xor. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Xor; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/package.mo b/IBPSA/Controls/OBC/CDL/Logical/Validation/package.mo new file mode 100644 index 0000000000..b9fbad7243 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL.Logical; +package Validation "Collection of models that validate the logical blocks of the CDL" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains models that validate the blocks in + +IBPSA.Controls.OBC.CDL.Logical. +

+

+The examples plot various outputs, which have been verified against +analytical solutions. These model outputs are stored as reference data to +allow continuous validation whenever models in the library change. +

+"), + 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={8.0,14.0}, + 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}})})); +end Validation; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Validation/package.order b/IBPSA/Controls/OBC/CDL/Logical/Validation/package.order new file mode 100644 index 0000000000..5e5493538c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Validation/package.order @@ -0,0 +1,23 @@ +And +Change +Edge +FallingEdge +Latch +MultiAnd +MultiOr +Nand +Nor +Not +Or +Proof +Switch +Timer +TimerAccumulating +TimerAccumulatingNegativeStartTime +TimerNegativeStartTime +Toggle +TrueDelay +TrueFalseHold +VariablePulse +VariablePulseMinHold +Xor diff --git a/IBPSA/Controls/OBC/CDL/Logical/VariablePulse.mo b/IBPSA/Controls/OBC/CDL/Logical/VariablePulse.mo new file mode 100644 index 0000000000..b6e277d6ae --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/VariablePulse.mo @@ -0,0 +1,314 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block VariablePulse "Generate boolean pulse with the width specified by input" + + parameter Real period( + final quantity="Time", + final unit="s") + "Time for one pulse period"; + + parameter Real deltaU( + min = 0.001, + max = 0.5, + final unit="1") = 0.01 "Increment of u that triggers recomputation of output"; + + parameter Real minTruFalHol( + final quantity="Time", + final unit="s", + final min=Constants.small)=0.01*period + "Minimum time to hold true or false"; + + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u( + final min=0, + final max=1, + final unit="1") + "Ratio of the period that the output should be true" + annotation (Placement(transformation(extent={{-160,-20},{-120,20}}), + iconTransformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Boolean pulse when the input is greater than zero" + annotation (Placement(transformation(extent={{120,-20},{160,20}}), + iconTransformation(extent={{100,-20},{140,20}}))); + +protected + parameter Real adjustedPeriod( + final quantity="Time", + final unit="s") = max(period, minTruFalHol*2.02) + "Time for one pulse period"; + + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triSam + "Sample the input when there is value change" + annotation (Placement(transformation(extent={{-100,60},{-80,80}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract sub + "Output the difference before and after sampling" + annotation (Placement(transformation(extent={{-60,20},{-40,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Abs abs1 + "Output the absolute value change" + annotation (Placement(transformation(extent={{-20,20},{0,40}}))); + IBPSA.Controls.OBC.CDL.Reals.GreaterThreshold greThr( + final t=deltaU, + final h=0) + "Check if there is a sufficiently large change in input value" + annotation (Placement(transformation(extent={{20,20},{40,40}}))); + IBPSA.Controls.OBC.CDL.Logical.Edge edg2 + "Rising edge when there is a width change" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Pre preBre + "Break loop" + annotation (Placement(transformation(extent={{60,20},{80,40}}))); + Cycle cycOut( + final period=adjustedPeriod, + final minTruFalHol=minTruFalHol) + "Produce boolean pulse output" + annotation (Placement(transformation(extent={{40,-70},{60,-50}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol( + final trueHoldDuration=minTruFalHol, + final falseHoldDuration=minTruFalHol) + "Ensure the minimum holding time" + annotation (Placement(transformation(extent={{80,-70},{100,-50}}))); + + block Cycle + "Generate boolean pulse with the width specified by the input" + parameter Real period( + final quantity="Time", + final unit="s", + final min=Constants.small) + "Time for one pulse period"; + parameter Real minTruFalHol( + final quantity="Time", + final unit="s", + final min=Constants.small) + "Minimum time to hold true or false"; + + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput go + "True: cycle the output" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}), + iconTransformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Ratio of the period that the output should be true" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}), + iconTransformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Cycling boolean output" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + + discrete Real t0( + final quantity="Time", + final unit="s", + fixed=false) + "Time instant when output begins cycling"; + Real t_sta( + final quantity="Time", + final unit="s", + fixed=false) + "Begin time instant of one period"; + Real t_end( + final quantity="Time", + final unit="s", + fixed=false) + "End time instant of one period"; + + initial equation + pre(t0)=time; + + equation + when go then + t0 = time; + end when; + + t_sta = t0 + IBPSA.Utilities.Math.Functions.round( + x=integer((time-t0)/period)*period, + n=6); + t_end = t_sta + u*period; + + y = (time>=t_sta) and (time= minTruFalHol*2, + "In " + getInstanceName() + ": The pulse period must be greater than 2 times of the minimum true and false holding time. Increasing period to " + String(adjustedPeriod) + ".", + level = AssertionLevel.warning); + +equation + connect(u, triSam.u) annotation (Line(points={{-140,0},{-110,0},{-110,70},{-102, + 70}}, color={0,0,127})); + connect(triSam.y, sub.u1) annotation (Line(points={{-78,70},{-70,70},{-70,36}, + {-62,36}}, color={0,0,127})); + connect(u, sub.u2) annotation (Line(points={{-140,0},{-110,0},{-110,24},{-62,24}}, + color={0,0,127})); + connect(sub.y, abs1.u) + annotation (Line(points={{-38,30},{-22,30}}, color={0,0,127})); + connect(greThr.y, edg2.u) annotation (Line(points={{42,30},{50,30},{50,0},{58, + 0}}, color={255,0,255})); + connect(greThr.y, preBre.u) + annotation (Line(points={{42,30},{58,30}}, color={255,0,255})); + connect(preBre.y, triSam.trigger) annotation (Line(points={{82,30},{90,30},{90, + 50},{-90,50},{-90,58}}, color={255,0,255})); + connect(u, cycOut.u) annotation (Line(points={{-140,0},{-110,0},{-110,-60},{38, + -60}}, color={0,0,127})); + connect(cycOut.y, truFalHol.u) + annotation (Line(points={{62,-60},{78,-60}}, color={255,0,255})); + connect(truFalHol.y, y) + annotation (Line(points={{102,-60},{110,-60},{110,0},{140,0}}, + color={255,0,255})); + connect(abs1.y, greThr.u) annotation (Line(points={{2,30},{18,30}}, + color={0,0,127})); + connect(edg2.y, cycOut.go) annotation (Line(points={{82,0},{90,0},{90,-20},{30, + -20},{30,-68},{38,-68}}, color={255,0,255})); +annotation ( + defaultComponentName="varPul", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-150,-140},{150,-110}}, + textColor={0,0,0}, + textString="%period"), + Polygon( + points={{-80,0},{-88,-22},{-72,-22},{-80,0}}, + lineColor={255,0,255}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,-6},{-80,-92}}, + color={255,0,255}), + Line( + points={{-90,-80},{72,-80}}, + color={255,0,255}), + Polygon( + points={{90,-80},{68,-72},{68,-88},{90,-80}}, + lineColor={255,0,255}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-46,-12},{-14,-30}}, + textColor={135,135,135}, + textString="%period"), + Polygon( + points={{0,-30},{-8,-28},{-8,-32},{0,-30}}, + fillColor={135,135,135}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0}), + Line( + points={{-60,-30},{0,-30}}, + color={135,135,135}), + Polygon( + points={{-60,-30},{-52,-28},{-52,-32},{-60,-30}}, + fillColor={135,135,135}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0}), + Line(points={{-80,20},{-60,20},{-60,60},{60,60}}, color={0,0,127}), + Line(points={{-80,-80},{-60,-80}}, color={0,0,0}), + Line(points={{-60,-40},{-30,-40},{-30,-80}}, color={0,0,0}), + Line(points={{0,-40},{30,-40},{30,-80}}, color={0,0,0}), + Line(points={{0,-40},{0,-80}}, color={0,0,0}), + Text( + extent={{-54,76},{-30,62}}, + textColor={135,135,135}, + textString="%width"), + Line( + points={{-90,20},{72,20}}, + color={0,0,127}), + Polygon( + points={{90,20},{68,28},{68,12},{90,20}}, + lineColor={0,0,127}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,94},{-80,16}}, + color={0,0,127}), + Polygon( + points={{-80,94},{-88,72},{-72,72},{-80,94}}, + lineColor={0,0,127}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid), + Text( + extent={{-100,140},{100,100}}, + textColor={0,0,255}, + textString="%name"), + Line(points={{-60,-40},{-60,-80}}, color={0,0,0}), + Line(points={{-30,-80},{0,-80}}, color={0,0,0}), + Line(points={{30,-80},{60,-80}}, color={0,0,0})}), + Documentation( + info=" +

+Block that outputs a boolean pulse. +

+

+The output of this block is a pulse with a constant period +and a width as obtained from the input 0 ≤ u ≤ 1, +which is the width relative to the period. +

+

+The block produces the following ouputs: +

+ +

+When the input u changes by more than deltaU and the output +has been holding constant for more than minimum holding time +minTruFalHol, the output will change to a new pulse with +width equal to u*period. +

+

+\"VariablePulse.png\" +

+", +revisions=" + +"), + Diagram(coordinateSystem(extent={{-120,-120},{120,120}}))); +end VariablePulse; diff --git a/IBPSA/Controls/OBC/CDL/Logical/Xor.mo b/IBPSA/Controls/OBC/CDL/Logical/Xor.mo new file mode 100644 index 0000000000..b8e7c2ed73 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/Xor.mo @@ -0,0 +1,92 @@ +within IBPSA.Controls.OBC.CDL.Logical; +block Xor + "Logical 'xor': y = u1 xor u2" + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u1 + "Input for logical 'xor'" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u2 + "Input for logical 'xor'" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output with u1 xor u2" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=not ((u1 and u2) or (not u1 and not u2)); + annotation ( + defaultComponentName="xor", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-90,40},{90,-40}}, + textColor={0,0,0}, + textString="xor"), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-75,-6},{-89,8}}, + lineColor=DynamicSelect({235,235,235}, + if u1 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u1 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-75,-73},{-89,-87}}, + lineColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")}), + Documentation( + info=" +

+Block that outputs true if exactly one input is true. +Otherwise the output is false. +

+", + revisions=" + +")); +end Xor; diff --git a/IBPSA/Controls/OBC/CDL/Logical/package.mo b/IBPSA/Controls/OBC/CDL/Logical/package.mo new file mode 100644 index 0000000000..366dfc3c75 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/package.mo @@ -0,0 +1,34 @@ +within IBPSA.Controls.OBC.CDL; +package Logical "Package with logical blocks" + annotation ( + Documentation( + info=" +

+Package with blocks for elementary mathematical functions +for boolean variables. +

+", + 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), + Line( + points={{-86,-22},{-50,-22},{-50,22},{48,22},{48,-22},{88,-24}}, + color={255,0,255})})); +end Logical; diff --git a/IBPSA/Controls/OBC/CDL/Logical/package.order b/IBPSA/Controls/OBC/CDL/Logical/package.order new file mode 100644 index 0000000000..d41c7de574 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Logical/package.order @@ -0,0 +1,23 @@ +And +Change +Edge +FallingEdge +Latch +MultiAnd +MultiOr +Nand +Nor +Not +Or +Pre +Proof +Switch +Timer +TimerAccumulating +Toggle +TrueDelay +TrueFalseHold +VariablePulse +Xor +Sources +Validation diff --git a/IBPSA/Controls/OBC/CDL/Psychrometrics/DewPoint_TDryBulPhi.mo b/IBPSA/Controls/OBC/CDL/Psychrometrics/DewPoint_TDryBulPhi.mo new file mode 100644 index 0000000000..10d553a6ab --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Psychrometrics/DewPoint_TDryBulPhi.mo @@ -0,0 +1,155 @@ +within IBPSA.Controls.OBC.CDL.Psychrometrics; +block DewPoint_TDryBulPhi + "Block to compute the dew point temperature based on relative humidity" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput TDryBul( + final quantity="ThermodynamicTemperature", + final unit="K", + final min=100) + "Dry bulb temperature" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput phi( + final min=0, + final max=1, + unit="1") + "Relative air humidity" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput TDewPoi( + final quantity="ThermodynamicTemperature", + final unit="K", + final min=100) + "Dew point temperature" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + Real p_w( + final quantity="Pressure", + final unit="Pa", + displayUnit="Pa") + "Water vapor pressure"; + constant Real C14=6.54 + "Constant used in the equation"; + constant Real C15=14.526 + "Constant used in the equation"; + constant Real C16=0.7389 + "Constant used in the equation"; + constant Real C17=0.09486 + "Constant used in the equation"; + constant Real C18=0.4569 + "Constant used in the equation"; + Real alpha + "Variable used in the equation"; + +equation + p_w=phi*IBPSA.Utilities.Psychrometrics.Functions.saturationPressure(TDryBul); + alpha=Modelica.Math.log( + p_w/1000.0); + TDewPoi=(C14+C15*alpha+C16*alpha^2+C17*alpha^3+C18*(p_w/1000.0)^0.1984)+273.15; + annotation ( + defaultComponentName="dewPoi", + Documentation( + info=" +

+Dew point temperature calculation for moist air above freezing temperature. +

+

+The correlation used in this model is valid for dew point temperatures between +0°C and 93°C. It is the correlation from 2009 +ASHRAE Handbook Fundamentals, p. 1.9, equation 39. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-44,82},{-22,64}}, + textColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid, + textString="X"), + Polygon( + points={{-48,88},{-46,74},{-50,74},{-48,88}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Text( + extent={{-90,-46},{-70,-72}}, + textColor={0,0,127}, + textString="phi"), + Text( + extent={{-92,82},{-62,38}}, + textColor={0,0,127}, + textString="TDryBul"), + Polygon( + points={{86,-74},{76,-72},{76,-76},{86,-74}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Text( + extent={{76,-78},{86,-94}}, + textColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid, + textString="T"), + Line( + points={{-48,84},{-48,-74}}), + Text( + extent={{60,14},{98,-12}}, + textColor={0,0,127}, + textString="TDewPoi"), + Line( + points={{82,-72},{-66,-72}}), + Line( + points={{-48,-40},{-38,-36},{-24,-30},{8,-2},{20,22},{28,54},{32,74}}), + Line( + points={{68,-12},{-2,-12}}, + color={255,0,0}, + thickness=0.5), + Polygon( + points={{-2,-12},{12,-10},{12,-14},{-2,-12}}, + lineColor={255,0,0}, + fillColor={255,0,0}, + fillPattern=FillPattern.Solid), + Line( + points={{66,-44},{-48,-44}}, + color={175,175,175}), + Line( + points={{68,-18},{-10,-18}}, + color={175,175,175}), + Line( + points={{70,6},{12,6}}, + color={175,175,175}), + Line( + points={{68,32},{22,32}}, + color={175,175,175})})); +end DewPoint_TDryBulPhi; diff --git a/IBPSA/Controls/OBC/CDL/Psychrometrics/SpecificEnthalpy_TDryBulPhi.mo b/IBPSA/Controls/OBC/CDL/Psychrometrics/SpecificEnthalpy_TDryBulPhi.mo new file mode 100644 index 0000000000..4f30ad503a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Psychrometrics/SpecificEnthalpy_TDryBulPhi.mo @@ -0,0 +1,139 @@ +within IBPSA.Controls.OBC.CDL.Psychrometrics; +block SpecificEnthalpy_TDryBulPhi + "Block to compute the specific enthalpy based on relative humidity" + parameter Real pAtm( + final quantity="Pressure", + final unit="Pa")=101325 + "Atmospheric pressure"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput TDryBul( + final quantity="ThermodynamicTemperature", + final unit="K", + final min=100) + "Dry bulb temperature" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}),iconTransformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput phi( + final min=0, + final max=1) + "Relative air humidity" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}),iconTransformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput h( + final quantity="SpecificEnergy", + final unit="J/kg") + "Specific enthalpy" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + Real TDryBul_degC( + final unit="degC", + displayUnit="degC") + "Dry bulb temperature in degree Celsius"; + Real p_w( + final quantity="Pressure", + final unit="Pa", + displayUnit="Pa") + "Water vapor pressure"; + Real w( + final unit="1", + nominal=0.01) + "Water vapor mass fraction in kg per kg dry air"; + +equation + TDryBul_degC=TDryBul-273.15; + p_w=phi*IBPSA.Utilities.Psychrometrics.Functions.saturationPressure(TDryBul); + w=0.6219647130774989*p_w/(pAtm-p_w); + h=1006*TDryBul_degC+w*(2501014.5+1860*TDryBul_degC); + annotation ( + defaultComponentName="ent", + Documentation( + info=" +

+This block computes the specific enthalpy for a given dry bulb temperature, relative air humidity +and atmospheric pressure. +The specific enthalpy is zero if the temperature is 0°C and if there +is no moisture. +

+

+The correlation used in this model is from the 2009 ASHRAE Handbook Fundamentals, p. 1.9, equation 32. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-44,-52},{-30,-48},{0,-36},{32,-8},{44,16},{52,48},{56,68}}, + color={215,215,215}, + smooth=Smooth.Bezier), + Line( + points={{66,-58},{10,-28}}, + color={255,0,0}, + thickness=0.5), + Text( + extent={{-44,82},{-22,64}}, + textColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid, + textString="X"), + Polygon( + points={{-48,88},{-46,74},{-50,74},{-48,88}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Text( + extent={{-88,-44},{-68,-70}}, + textColor={0,0,127}, + textString="phi"), + Text( + extent={{-92,82},{-62,38}}, + textColor={0,0,127}, + textString="TDryBul"), + Line( + points={{78,-74},{-48,-74}}), + Polygon( + points={{86,-74},{76,-72},{76,-76},{86,-74}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Text( + extent={{76,-78},{86,-94}}, + textColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid, + textString="T"), + Line( + points={{-48,84},{-48,-74}}), + Text( + extent={{74,14},{94,-12}}, + textColor={0,0,127}, + textString="h")})); +end SpecificEnthalpy_TDryBulPhi; diff --git a/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/DewPoint_TDryBulPhi.mo b/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/DewPoint_TDryBulPhi.mo new file mode 100644 index 0000000000..fc0b79822e --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/DewPoint_TDryBulPhi.mo @@ -0,0 +1,87 @@ +within IBPSA.Controls.OBC.CDL.Psychrometrics.Validation; +model DewPoint_TDryBulPhi + "Model to test the dew point temperature computation" + IBPSA.Controls.OBC.CDL.Psychrometrics.DewPoint_TDryBulPhi dewBulPhi + "Model for dew point temperature" + annotation (Placement(transformation(extent={{20,30},{40,50}}))); + IBPSA.Controls.OBC.CDL.Psychrometrics.DewPoint_TDryBulPhi dewBulPhi1 + "Model for dew point temperature" + annotation (Placement(transformation(extent={{20,-50},{40,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp phi( + duration=1, + height=1, + offset=0.001) + "Relative humidity" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant TDryBul( + k=273.15+29.4) + "Dry bulb temperature" + annotation (Placement(transformation(extent={{-60,60},{-40,80}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp TDryBul2( + duration=1, + height=35, + offset=273.15+2.0) + "Dry bulb temperature" + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant phi2( + k=0.4) + "Relative humidity" + annotation (Placement(transformation(extent={{-60,-80},{-40,-60}}))); + +equation + connect(TDryBul.y,dewBulPhi.TDryBul) + annotation (Line(points={{-38,70},{0,70},{0,46},{18,46}}, color={0,0,127})); + connect(phi.y,dewBulPhi.phi) + annotation (Line(points={{-38,20},{0,20},{0,34},{18,34}}, color={0,0,127})); + connect(TDryBul2.y,dewBulPhi1.TDryBul) + annotation (Line(points={{-38,-20},{0,-20},{0,-34},{18,-34}}, color={0,0,127})); + connect(phi2.y,dewBulPhi1.phi) + annotation (Line(points={{-38,-70},{0,-70},{0,-46},{18,-46}}, color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Psychrometrics/Validation/DewPoint_TDryBulPhi.mos" "Simulate and plot"), + Documentation( + info=" +

+This examples is a unit test for the dew point temperature computation +IBPSA.Controls.OBC.CDL.Psychrometrics.DewPoint_TDryBulPhi. +

+", + revisions=" + +"), + Icon( + 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}})})); +end DewPoint_TDryBulPhi; diff --git a/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/SpecificEnthalpy_TDryBulPhi.mo b/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/SpecificEnthalpy_TDryBulPhi.mo new file mode 100644 index 0000000000..9d7a580289 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/SpecificEnthalpy_TDryBulPhi.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Psychrometrics.Validation; +model SpecificEnthalpy_TDryBulPhi + "Model to test the specific enthalpy computation" + IBPSA.Controls.OBC.CDL.Psychrometrics.SpecificEnthalpy_TDryBulPhi hBulPhi + "Model for specific enthalpy computation" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp phi( + duration=1, + height=1, + offset=0.001) + "Relative humidity" + annotation (Placement(transformation(extent={{-60,-40},{-40,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant TDryBul( + k=273.15+29.4) + "Dry bulb temperature" + annotation (Placement(transformation(extent={{-64,24},{-44,44}}))); + +equation + connect(TDryBul.y,hBulPhi.TDryBul) + annotation (Line(points={{-42,34},{-30,34},{-30,6},{-12,6}},color={0,0,127})); + connect(phi.y,hBulPhi.phi) + annotation (Line(points={{-38,-30},{-30,-30},{-30,-6},{-12,-6}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Psychrometrics/Validation/SpecificEnthalpy_TDryBulPhi.mos" "Simulate and plot"), + Documentation( + info=" +

+This examples is a unit test for the specific enthalpy computation +IBPSA.Controls.OBC.CDL.Psychrometrics.SpecificEnthalpy_TDryBulPhi. +

+", + revisions=" + +"), + Icon( + 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}})})); +end SpecificEnthalpy_TDryBulPhi; diff --git a/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/WetBulb_TDryBulPhi.mo b/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/WetBulb_TDryBulPhi.mo new file mode 100644 index 0000000000..2248183fae --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/WetBulb_TDryBulPhi.mo @@ -0,0 +1,99 @@ +within IBPSA.Controls.OBC.CDL.Psychrometrics.Validation; +model WetBulb_TDryBulPhi + "Model to test the wet bulb temperature computation" + + IBPSA.Controls.OBC.CDL.Psychrometrics.WetBulb_TDryBulPhi wetBulPhi + "Model for wet bulb temperature" + annotation (Placement(transformation(extent={{20,30},{40,50}}))); + IBPSA.Controls.OBC.CDL.Psychrometrics.WetBulb_TDryBulPhi wetBulPhi1 + "Model for wet bulb temperature" + annotation (Placement(transformation(extent={{20,-50},{40,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp phi( + duration=1, + height=0.95, + offset=0.05) "Relative humidity" + annotation (Placement(transformation(extent={{-40,10},{-20,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant TDryBul( + k=273.15+29.4) "Dry bulb temperature" + annotation (Placement(transformation(extent={{-40,60},{-20,80}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp TDryBul1( + duration=1, + height=40, + offset=273.15) "Dry bulb temperature" + annotation (Placement(transformation(extent={{-40,-30},{-20,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant phi2(k=0.6) + "Relative humidity" + annotation (Placement(transformation(extent={{-40,-80},{-20,-60}}))); + +equation + connect(TDryBul.y,wetBulPhi.TDryBul) + annotation (Line(points={{-18,70},{0,70},{0,46},{18,46}}, color={0,0,127})); + connect(phi.y,wetBulPhi.phi) + annotation (Line(points={{-18,20},{0,20},{0,34},{18,34}}, color={0,0,127})); + connect(TDryBul1.y, wetBulPhi1.TDryBul) annotation (Line(points={{-18,-20},{0, + -20},{0,-34},{18,-34}}, color={0,0,127})); + connect(phi2.y, wetBulPhi1.phi) annotation (Line(points={{-18,-70},{0,-70},{0, + -46},{18,-46}}, color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Psychrometrics/Validation/WetBulb_TDryBulPhi.mos" "Simulate and plot"), + Documentation( + info=" +

+This examples is a unit test for the dew point temperature computation + +IBPSA.Controls.OBC.CDL.Psychrometrics.WetBulb_TDryBulPhi. +

+", + revisions=" + +"), + Icon( + 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}})})); +end WetBulb_TDryBulPhi; diff --git a/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/package.mo b/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/package.mo new file mode 100644 index 0000000000..555f981b89 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL.Psychrometrics; +package Validation "Collection of models that validate the psychrometrics blocks of the CDL" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains models that validate the blocks in + +IBPSA.Controls.OBC.CDL.Psychrometrics. +

+

+The examples plot various outputs, which have been verified against +analytical solutions. These model outputs are stored as reference data to +allow continuous validation whenever models in the library change. +

+"), + 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={8.0,14.0}, + 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}})})); +end Validation; diff --git a/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/package.order b/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/package.order new file mode 100644 index 0000000000..fc0e58cc8c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Psychrometrics/Validation/package.order @@ -0,0 +1,3 @@ +DewPoint_TDryBulPhi +SpecificEnthalpy_TDryBulPhi +WetBulb_TDryBulPhi diff --git a/IBPSA/Controls/OBC/CDL/Psychrometrics/WetBulb_TDryBulPhi.mo b/IBPSA/Controls/OBC/CDL/Psychrometrics/WetBulb_TDryBulPhi.mo new file mode 100644 index 0000000000..46b2abd21d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Psychrometrics/WetBulb_TDryBulPhi.mo @@ -0,0 +1,194 @@ +within IBPSA.Controls.OBC.CDL.Psychrometrics; +block WetBulb_TDryBulPhi + "Block to compute the wet bulb temperature based on relative humidity" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput TDryBul( + final quantity="ThermodynamicTemperature", + final unit="K", + final min=100) + "Dry bulb temperature" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}),iconTransformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput phi( + final min=0, + final max=1) + "Relative air humidity" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}),iconTransformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput TWetBul( + final quantity="ThermodynamicTemperature", + final unit="K", + final min=100) + "Wet bulb temperature" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + constant Real uniCon(final unit="1/rad") = 1 + "Unit conversion to satisfy unit check"; + Real TDryBul_degC( + final unit="degC", + displayUnit="degC") + "Dry bulb temperature in degree Celsius"; + Real rh_per( + min=0) + "Relative humidity in percentage"; + +equation + TDryBul_degC=TDryBul-273.15; + rh_per=100*phi; + TWetBul=273.15 + + TDryBul_degC * uniCon * Modelica.Math.atan(0.151977*sqrt(rh_per+8.313659)) + + uniCon * ( + Modelica.Math.atan(TDryBul_degC+rh_per) + - Modelica.Math.atan(rh_per-1.676331) + + 0.00391838*rh_per^(1.5)*Modelica.Math.atan(0.023101*rh_per)) + -4.686035; + annotation ( + defaultComponentName="wetBul", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-92,82},{-62,38}}, + textColor={0,0,127}, + textString="TDryBul"), + Text( + extent={{-90,-44},{-70,-70}}, + textColor={0,0,127}, + textString="phi"), + Text( + extent={{62,22},{92,-22}}, + textColor={0,0,127}, + textString="TWetBul"), + Line( + points={{78,-74},{-48,-74}}), + Text( + extent={{76,-78},{86,-94}}, + textColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid, + textString="T"), + Line( + points={{76,-46},{26,-4}}, + color={255,0,0}, + thickness=0.5), + Line( + points={{-48,-48},{-2,-30},{28,-4},{48,32},{52,72}}, + color={0,0,0}, + smooth=Smooth.Bezier), + Line( + points={{-48,84},{-48,-74}}), + Text( + extent={{-44,82},{-22,64}}, + textColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid, + textString="X"), + Polygon( + points={{86,-74},{76,-72},{76,-76},{86,-74}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-48,88},{-46,74},{-50,74},{-48,88}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Polygon( + points={{26,-4},{36,-10},{34,-12},{26,-4}}, + lineColor={255,0,0}, + fillColor={255,0,0}, + fillPattern=FillPattern.Solid)}), + Documentation( + info=" +

+This block computes the wet bulb temperature for a given dry bulb temperature, relative air humidity +and atmospheric pressure. +

+

+The block uses the approximation of Stull (2011) to compute +the wet bulb temperature without requiring a nonlinear equation. +The approximation by Stull is valid for a relative humidity of 5% to 99%, +a temperature range from -20°C to 50°C +and standard sea level pressure. +For this range of data, the approximation error is -1 Kelvin to +0.65 Kelvin, +with a mean error of less than 0.3 Kelvin. +

+

+The model is validated in + +IBPSA.Controls.OBC.CDL.Psychrometrics.Validation.WetBulb_TDryBulPhi. +

+

References

+

+Stull, Roland. + +Wet-Bulb Temperature from Relative Humidity and Air Temperature +Roland Stull. +Journal of Applied Meteorology and Climatology. +Volume 50, Issue 11, pp. 2267-2269. November 2011 +DOI: 10.1175/JAMC-D-11-0143.1 +

+", + revisions=" + +")); +end WetBulb_TDryBulPhi; diff --git a/IBPSA/Controls/OBC/CDL/Psychrometrics/package.mo b/IBPSA/Controls/OBC/CDL/Psychrometrics/package.mo new file mode 100644 index 0000000000..967a8a9e24 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Psychrometrics/package.mo @@ -0,0 +1,60 @@ +within IBPSA.Controls.OBC.CDL; +package Psychrometrics "Package with psychrometric blocks" + annotation ( + Documentation( + info=" +

+This package contains blocks for psychrometric calculations. +

+", + 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), + Line( + points={{-78,86},{-78,-72}}), + Polygon( + points={{-78,88},{-76,74},{-80,74},{-78,88}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Text( + extent={{-74,84},{-52,66}}, + textColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid, + textString="X"), + Line( + points={{-78,-46},{-64,-42},{-40,-32},{-16,-18},{10,6},{30,40},{38,72}}, + color={0,0,0}, + smooth=Smooth.Bezier), + Line( + points={{72,-72},{-76,-72}}), + Polygon( + points={{74,-72},{64,-70},{64,-74},{74,-72}}, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Text( + extent={{72,-80},{82,-96}}, + textColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid, + textString="T")})); +end Psychrometrics; diff --git a/IBPSA/Controls/OBC/CDL/Psychrometrics/package.order b/IBPSA/Controls/OBC/CDL/Psychrometrics/package.order new file mode 100644 index 0000000000..b5717e1bfc --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Psychrometrics/package.order @@ -0,0 +1,4 @@ +DewPoint_TDryBulPhi +SpecificEnthalpy_TDryBulPhi +WetBulb_TDryBulPhi +Validation diff --git a/IBPSA/Controls/OBC/CDL/Reals/Abs.mo b/IBPSA/Controls/OBC/CDL/Reals/Abs.mo new file mode 100644 index 0000000000..2df97213e1 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Abs.mo @@ -0,0 +1,78 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Abs + "Output the absolute value of the input" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input for absolute function" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Absolute value of the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=abs(u); + annotation ( + defaultComponentName="abs", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{92,0},{70,8},{70,-8},{92,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,80},{0,0},{80,80}}), + Line( + points={{0,-14},{0,68}}, + color={192,192,192}), + Polygon( + points={{0,90},{-8,68},{8,68},{0,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-34,-28},{38,-76}}, + textColor={192,192,192}, + textString="abs"), + Line( + points={{-88,0},{76,0}}, + color={192,192,192}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs y = abs(u), +where +u is an input. +

+", + revisions=" + +")); +end Abs; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Acos.mo b/IBPSA/Controls/OBC/CDL/Reals/Acos.mo new file mode 100644 index 0000000000..1bae7066fa --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Acos.mo @@ -0,0 +1,81 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Acos "Output the arc cosine of the input" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input for arc cosine function" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y( + final unit="rad", + displayUnit="deg") + "Arc cosine of the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); +equation + y = Modelica.Math.acos(u); + +annotation (defaultComponentName="arcCos", + Icon(coordinateSystem(preserveAspectRatio=false), + graphics={Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Polygon( + points={{0,90},{-8,68},{8,68},{0,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,80},{-79.2,72.8},{-77.6,67.5},{-73.6,59.4},{-66.3,49.8},{ + -53.5,37.3},{-30.2,19.7},{37.4,-24.8},{57.5,-40.8},{68.7,-52.7},{75.2, + -62.2},{77.6,-67.5},{80,-80}}, + smooth=Smooth.Bezier), + Line(points={{0,-88},{0,68}}, color={192,192,192}), + Line(points={{-90,-80},{68,-80}}, color={192,192,192}), + Polygon( + points={{90,-80},{68,-72},{68,-88},{90,-80}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-86,-14},{-14,-62}}, + textColor={192,192,192}, + textString="acos"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Diagram(coordinateSystem(preserveAspectRatio=false)), +Documentation(info=" +

+Block that outputs y = acos(u), where u is an input. +

+

+\"acos.png\" +

+", +revisions=" + +")); +end Acos; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Add.mo b/IBPSA/Controls/OBC/CDL/Reals/Add.mo new file mode 100644 index 0000000000..9028f670bc --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Add.mo @@ -0,0 +1,83 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Add + "Output the sum of the two inputs" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input to be added" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Input to be added" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Sum of the inputs" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1+u2; + annotation ( + defaultComponentName="add2", + Documentation( + info=" +

+Block that outputs y as the sum of the +two input signals u1 and u2, +

+
+    y = u1 + u2.
+
+", +revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Ellipse( + lineColor={0,0,127}, + extent={{-50,-50},{50,50}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-100,60},{-74,24},{-44,24}}, + color={0,0,127}), + Line( + points={{-100,-60},{-74,-28},{-42,-28}}, + color={0,0,127}), + Line( + points={{50,0},{100,0}}, + color={0,0,127}), + Text( + extent={{-36,-26},{40,42}}, + textString="+"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end Add; diff --git a/IBPSA/Controls/OBC/CDL/Reals/AddParameter.mo b/IBPSA/Controls/OBC/CDL/Reals/AddParameter.mo new file mode 100644 index 0000000000..bf9a1a7652 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/AddParameter.mo @@ -0,0 +1,79 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block AddParameter "Output the sum of an input plus a parameter" + parameter Real p + "Parameter to be added to the input"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input to be added to the parameter" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Sum of the parameter and the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u+p; + annotation ( + defaultComponentName="addPar", + Documentation( + info=" +

+Block that outputs y = u + p, +where p is parameter and u is an input. +

+", +revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Line( + points={{-54,66},{-28,30},{2,30}}, + color={0,0,127}), + Line( + points={{-100,0},{100,0}}, + color={0,0,127}), + Text( + extent={{-122,58},{-17,98}}, + textString="%p", + textColor={0,0,0}), + Ellipse( + lineColor={0,0,127}, + extent={{-12,-52},{88,48}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{0,-26},{76,42}}, + textString="+"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end AddParameter; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Asin.mo b/IBPSA/Controls/OBC/CDL/Reals/Asin.mo new file mode 100644 index 0000000000..08d11987ff --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Asin.mo @@ -0,0 +1,81 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Asin "Output the arc sine of the input" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input for the arc sine function" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y( + final unit="rad", + displayUnit="deg") + "Arc sin of the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); +equation + y = Modelica.Math.asin(u); + +annotation (defaultComponentName="arcSin", + Icon(coordinateSystem(preserveAspectRatio=false), + graphics={Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-100,140},{100,100}}, + textString="%name", + textColor={0,0,255}), + Polygon( + points={{0,90},{-8,68},{8,68},{0,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line(points={{0,-80},{0,68}}, color={192,192,192}), + Line(points={{-80,-80},{-79.2,-72.8},{-77.6,-67.5},{-73.6,-59.4},{-66.3,-49.8}, + {-53.5,-37.3},{-30.2,-19.7},{37.4,24.8},{57.5,40.8},{68.7,52.7},{75.2, + 62.2},{77.6,67.5},{80,80}}, + smooth=Smooth.Bezier), + Line(points={{-90,0},{68,0}}, color={192,192,192}), + Polygon( + points={{90,0},{68,8},{68,-8},{90,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-88,78},{-16,30}}, + textColor={192,192,192}, + textString="asin"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Diagram(coordinateSystem(preserveAspectRatio=false)), +Documentation(info=" +

+Block that outputs y = asin(u), where u is an input. +

+

+\"asin.png\" +

+", +revisions=" + +")); +end Asin; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Atan.mo b/IBPSA/Controls/OBC/CDL/Reals/Atan.mo new file mode 100644 index 0000000000..c8ba07d986 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Atan.mo @@ -0,0 +1,93 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Atan "Output the arc tangent of the input" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input for the arc tangent function" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y( + final unit="rad", + displayUnit="deg") + "Arc tangent of the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=Modelica.Math.atan(u); + annotation ( + defaultComponentName="atan", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Text( + extent={{-86,68},{-14,20}}, + textColor={192,192,192}, + textString="atan"), + Polygon( + points={{0,90},{-8,68},{8,68},{0,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{0,-80},{0,68}}, + color={192,192,192}), + Line( + points={{-80,-80},{-52.7,-75.2},{-37.4,-69.7},{-26.9,-63},{-19.7,-55.2},{-14.1,-45.8},{-10.1,-36.4},{-6.03,-23.9},{-1.21,-5.06},{5.23,21},{9.25,34.1},{13.3,44.2},{18.1,52.9},{24.5,60.8},{33.4,67.6},{47,73.6},{69.5,78.6},{80,80}}, + smooth=Smooth.Bezier), + Line( + points={{-90,0},{68,0}}, + color={192,192,192}), + Polygon( + points={{90,0},{68,8},{68,-8},{90,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs y = atan(u), where u is an input. +

+

+\"atan.png\" +

+", +revisions=" + +")); +end Atan; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Atan2.mo b/IBPSA/Controls/OBC/CDL/Reals/Atan2.mo new file mode 100644 index 0000000000..cc4a4b0244 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Atan2.mo @@ -0,0 +1,117 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Atan2 + "Output atan(u1/u2) of the inputs u1 and u2" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input u1 for the atan2(u1/u2) function" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Input u2 for the atan2(u1/u2) function" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y( + final unit="rad", + displayUnit="deg") + "Output with atan2(u1/u2)" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=Modelica.Math.atan2(u1, u2); + annotation ( + defaultComponentName="atan2", + Documentation( + info=" +

+Block that outputs the tangent-inverse y = atan2(u1, u2) +of the input u1 divided by the input u2. +

+

+u1 and u2 shall not be zero at the same time instant. +Atan2 uses the sign of u1 and u2 +in order to construct the solution in the range +-π ≤ y ≤ π, whereas + +IBPSA.Controls.OBC.CDL.Reals.Atan +gives a solution in the range +-π/2 ≤ y ≤ π/2. +

+ +

+\"atan2.png\" +

+ +", + revisions=" + +"), + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{0,-80},{0,68}}, + color={192,192,192}), + Line( + points={{-90,0},{68,0}}, + color={192,192,192}), + Polygon( + points={{90,0},{68,8},{68,-8},{90,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,-34.9},{-46.1,-31.4},{-29.4,-27.1},{-18.3,-21.5},{-10.3,-14.5},{-2.03,-3.17},{7.97,11.6},{15.5,19.4},{24.3,25},{39,30},{62.1,33.5},{80,34.9}}, + smooth=Smooth.Bezier), + Line( + points={{-80,45.1},{-45.9,48.7},{-29.1,52.9},{-18.1,58.6},{-10.2,65.8},{-1.82,77.2},{0,80}}, + smooth=Smooth.Bezier), + Line( + points={{0,-80},{8.93,-67.2},{17.1,-59.3},{27.3,-53.6},{42.1,-49.4},{69.9,-45.8},{80,-45.1}}, + smooth=Smooth.Bezier), + Text( + extent={{-90,-46},{-18,-94}}, + textColor={192,192,192}, + textString="atan2"), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Polygon( + points={{0,90},{-8,68},{8,68},{0,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end Atan2; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Average.mo b/IBPSA/Controls/OBC/CDL/Reals/Average.mo new file mode 100644 index 0000000000..b698bdf9f8 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Average.mo @@ -0,0 +1,69 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Average "Output the average of its two inputs" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input for average function" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}),iconTransformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Input for average function" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}),iconTransformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Output with the average of the two inputs" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=0.5*(u1+u2); + annotation ( + defaultComponentName="ave", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-50,34},{52,-26}}, + textColor={192,192,192}, + textString="avg()"), + Line( + points={{-8,16}}, + color={0,0,0}), + Line( + points={{-100,60}}, + color={0,0,0}, + thickness=1), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs y = (u1 + u2) / 2, +where +u1 and u2 are inputs. +

+", + revisions=" + +")); +end Average; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Cos.mo b/IBPSA/Controls/OBC/CDL/Reals/Cos.mo new file mode 100644 index 0000000000..81431bc0c7 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Cos.mo @@ -0,0 +1,97 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Cos "Output the cosine of the input" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u( + final unit="rad", + displayUnit="deg") + "Input for the cosine function" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Cosine of the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=Modelica.Math.cos(u); + annotation ( + defaultComponentName="cos", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,80},{-74.4,78.1},{-68.7,72.3},{-63.1,63},{-56.7,48.7},{-48.6,26.6},{-29.3,-32.5},{-22.1,-51.7},{-15.7,-65.3},{-10.1,-73.8},{-4.42,-78.8},{1.21,-79.9},{6.83,-77.1},{12.5,-70.6},{18.1,-60.6},{24.5,-45.7},{32.6,-23},{50.3,31.3},{57.5,50.7},{63.9,64.6},{69.5,73.4},{75.2,78.6},{80,80}}, + smooth=Smooth.Bezier), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,-80},{-80,68}}, + color={192,192,192}), + Line( + points={{-90,0},{68,0}}, + color={192,192,192}), + Polygon( + points={{90,0},{68,8},{68,-8},{90,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-36,80},{36,32}}, + textColor={192,192,192}, + textString="cos"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs y = cos(u), +where +u is an input. +

+ +

+\"cos.png\" +

+ +", + revisions=" + +")); +end Cos; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Derivative.mo b/IBPSA/Controls/OBC/CDL/Reals/Derivative.mo new file mode 100644 index 0000000000..50794e3517 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Derivative.mo @@ -0,0 +1,121 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Derivative + "Block that approximates the derivative of the input" + parameter Real y_start=0 + "Initial value of output (= state)" + annotation (Dialog(group="Initialization")); + + IBPSA.Controls.OBC.CDL.Interfaces.RealInput k + "Input for the gain" + annotation (Placement(transformation(extent={{-140,60},{-100,100}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput T( + final quantity="Time", + final unit="s", + min=100*IBPSA.Controls.OBC.CDL.Constants.eps) + "Input for the time constant (T>0 required; T=0 is ideal derivative block)" + annotation (Placement(transformation(extent={{-140,20},{-100,60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input to be differentiated" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Approximation of derivative du/dt" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); +protected + Real T_nonZero(final unit="s") "Non-zero value for T"; + + output Real x + "State of block"; + +initial equation + x= if abs(k) < IBPSA.Controls.OBC.CDL.Constants.eps then u else u - T*y_start/k; + +equation + T_nonZero = max(T, 100*IBPSA.Controls.OBC.CDL.Constants.eps); + der(x) = (u-x)/T_nonZero; + y = (k/T_nonZero)*(u-x); + + annotation ( + defaultComponentName="der", + Documentation( + info=" +

+This blocks defines the transfer function between the +input u and the output y +as approximated derivative: +

+
+                s
+  y = k * ------------ * u
+            T * s + 1
+
+

+If k=0, the block reduces to y=0. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-56,78},{-56,-90}}, + color={192,192,192}), + Polygon( + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid, + points={{-56,90},{-64,68},{-48,68},{-56,90}}), + Line( + points={{-64,-80},{82,-80}}, + color={192,192,192}), + Polygon( + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid, + points={{90.0,-80.0},{68.0,-72.0},{68.0,-88.0},{90.0,-80.0}}), + Line( + origin={-24.667,-27.333}, + points={{-31.333,89.333},{-19.333,-40.667},{86.667,-52.667}}, + color={0,0,127}, + smooth=Smooth.Bezier), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3))), + Text( + extent={{-106,14},{-62,-12}}, + textColor={0,0,0}, + textString="u"), + Text( + extent={{46,14},{90,-12}}, + textColor={0,0,0}, + textString="y=du/dt"), + Text( + extent={{-108,94},{-64,68}}, + textColor={0,0,0}, + textString="k"), + Text( + extent={{-108,54},{-64,28}}, + textColor={0,0,0}, + textString="T")})); +end Derivative; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Divide.mo b/IBPSA/Controls/OBC/CDL/Reals/Divide.mo new file mode 100644 index 0000000000..11ebd63d4e --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Divide.mo @@ -0,0 +1,91 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Divide "Output first input divided by second input" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input for dividend" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Input for divisor" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Output with the quotient" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1/u2; + annotation ( + defaultComponentName="div", + Documentation( + info=" +

+Block that outputs y = u1 / u2, +where +u1 and u2 are inputs. +

+", +revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Ellipse( + lineColor={0,0,127}, + extent={{-50,-50},{50,50}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{50,0},{100,0}}, + color={0,0,127}), + Line( + points={{-30,0},{30,0}}), + Ellipse( + fillPattern=FillPattern.Solid, + extent={{-5,20},{5,30}}), + Ellipse( + fillPattern=FillPattern.Solid, + extent={{-5,-30},{5,-20}}), + Line( + points={{-100,60},{-66,60},{-40,30}}, + color={0,0,127}), + Line( + points={{-100,-60},{0,-60},{0,-50}}, + color={0,0,127}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end Divide; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Exp.mo b/IBPSA/Controls/OBC/CDL/Reals/Exp.mo new file mode 100644 index 0000000000..c2deedac3a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Exp.mo @@ -0,0 +1,74 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Exp "Output the exponential (base e) of the input" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input for the base e exponential function" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Base e exponential value of the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=Modelica.Math.exp(u); + annotation ( + defaultComponentName="exp", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Line( + points={{-90,-80.3976},{68,-80.3976}}, + color={192,192,192}), + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,-80},{-31,-77.9},{-6.03,-74},{10.9,-68.4},{23.7,-61},{34.2,-51.6},{43,-40.3},{50.3,-27.8},{56.7,-13.5},{62.3,2.23},{67.1,18.6},{72,38.2},{76,57.6},{80,80}}), + Line( + points={{0,-80},{0,68}}, + color={192,192,192}), + Text( + extent={{-86,50},{-14,2}}, + textColor={192,192,192}, + textString="exp"), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs y = exp(u), +where +u is an input and exp() is the +base-e exponential function. +

+ +

+\"exp.png\" +

+ +", + revisions=" + +")); +end Exp; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Greater.mo b/IBPSA/Controls/OBC/CDL/Reals/Greater.mo new file mode 100644 index 0000000000..9ee1c2eae9 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Greater.mo @@ -0,0 +1,261 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Greater + "Output y is true, if input u1 is greater than input u2 with hysteresis" + parameter Real h( + final min=0)=0 + "Hysteresis" + annotation (Evaluate=true); + parameter Boolean pre_y_start=false + "Value of pre(y) at initial time" + annotation (Dialog(tab="Advanced")); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "First input u1" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Second input u2" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output true if u1 is greater than u2 with hysteresis" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + final parameter Boolean have_hysteresis=h >= 1E-10 + "True if the block has no hysteresis" + annotation (Evaluate=true); + GreaterWithHysteresis greHys( + final h=h, + final pre_y_start=pre_y_start) if have_hysteresis + "Block with hysteresis" + annotation (Placement(transformation(extent={{-10,20},{10,40}}))); + GreaterNoHysteresis greNoHys if not have_hysteresis + "Block without hysteresis" + annotation (Placement(transformation(extent={{-10,-40},{10,-20}}))); + block GreaterNoHysteresis + "Greater block without hysteresis" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input u1" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Input u2" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output y" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + + equation + y=u1 > u2; + annotation ( + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})})); + end GreaterNoHysteresis; + + block GreaterWithHysteresis + "Greater block without hysteresis" + parameter Real h( + final min=0)=0 + "Hysteresis" + annotation (Evaluate=true); + parameter Boolean pre_y_start=false + "Value of pre(y) at initial time" + annotation (Dialog(tab="Advanced")); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input u1" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Input u2" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output y" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + + initial equation + assert( + h >= 0, + "Hysteresis must not be negative"); + pre(y)=pre_y_start; + + equation + y=(not pre(y) and u1 > u2 or pre(y) and u1 > u2-h); + annotation ( + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-64,62},{62,92}}, + textColor={0,0,0}, + textString="h=%h")})); + end GreaterWithHysteresis; + +equation + connect(u1,greHys.u1) + annotation (Line(points={{-120,0},{-66,0},{-66,30},{-12,30}},color={0,0,127})); + connect(u2,greHys.u2) + annotation (Line(points={{-120,-80},{-60,-80},{-60,22},{-12,22}},color={0,0,127})); + connect(greHys.y,y) + annotation (Line(points={{12,30},{60,30},{60,0},{120,0}},color={255,0,255})); + connect(u1,greNoHys.u1) + annotation (Line(points={{-120,0},{-66,0},{-66,-30},{-12,-30}},color={0,0,127})); + connect(u2,greNoHys.u2) + annotation (Line(points={{-120,-80},{-60,-80},{-60,-38},{-12,-38}},color={0,0,127})); + connect(greNoHys.y,y) + annotation (Line(points={{12,-30},{60,-30},{60,0},{120,0}},color={255,0,255})); + annotation ( + defaultComponentName="gre", + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{73,7},{87,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Line( + points={{-100,-80},{42,-80},{42,-62}}, + color={0,0,127}), + Line( + points={{-12,14},{18,2},{-12,-8}}, + thickness=0.5), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-64,62},{62,92}}, + textColor={0,0,0}, + textString="h=%h"), + Text( + extent={{-88,-18},{-21,24}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(u1, + leftJustified=false, + significantDigits=3))), + Text( + extent={{-86,-76},{-19,-34}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(u2, + leftJustified=false, + significantDigits=3))), + Text( + extent={{22,20},{89,62}}, + textColor=DynamicSelect({235,235,235}, + if y then + {135,135,135} + else + {0,0,0}), + textString=DynamicSelect("",String(u2, + leftJustified=false, + significantDigits=3)), + visible=h >= 1E-10), + Text( + extent={{22,20},{89,62}}, + textColor=DynamicSelect({235,235,235}, + if y then + {135,135,135} + else + {0,0,0}), + textString=DynamicSelect("",String(u2, + leftJustified=false, + significantDigits=3)), + visible=h >= 1E-10), + Text( + extent={{20,-56},{87,-14}}, + textColor=DynamicSelect({235,235,235}, + if not y then + {135,135,135} + else + {0,0,0}), + textString=DynamicSelect("",String(u2-h, + leftJustified=false, + significantDigits=3)), + visible=h >= 1E-10)}), + Documentation( + info=" +

+Block that outputs true if the Real input u1 +is greater than the Real input u2, optionally within a hysteresis h. +

+

+The parameter h ≥ 0 is used to specify a hysteresis. +For any h ≥ 0, the output switches to true if u1 > u2, +and it switches to false if u1 ≤ u2 - h. +Note that in the special case of h = 0, this produces the output y=u1 > u2. +

+

+To disable hysteresis, set h=0. +

+

Usage

+

+Enabling hysteresis can avoid frequent switching.
+In simulation, adding hysteresis is recommended to guard against numerical noise. +Otherwise, numerical noise from a nonlinear solver or from an +implicit time integration algorithm may cause the simulation to stall. +Numerical noise can be present if an input depends +on a state variable or a quantity that requires an iterative solution, +such as a temperature or a mass flow rate of an HVAC system.
+In real controllers, adding hysteresis is recommended to guard against measurement noise. +Otherwise, measurement noise may cause the output to change frequently. +

+", +revisions=" + +")); +end Greater; diff --git a/IBPSA/Controls/OBC/CDL/Reals/GreaterThreshold.mo b/IBPSA/Controls/OBC/CDL/Reals/GreaterThreshold.mo new file mode 100644 index 0000000000..a5861c6e55 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/GreaterThreshold.mo @@ -0,0 +1,242 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block GreaterThreshold + "Output y is true, if input u is greater than threshold with hysteresis" + parameter Real t=0 + "Threshold for comparison"; + parameter Real h( + final min=0)=0 + "Hysteresis" + annotation (Evaluate=true); + parameter Boolean pre_y_start=false + "Value of pre(y) at initial time" + annotation (Dialog(tab="Advanced")); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input to be compared against the threshold" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true if u is greater than the threshold with hysteresis" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + final parameter Boolean have_hysteresis=h >= 1E-10 + "True if the block has no hysteresis" + annotation (Evaluate=true); + GreaterWithHysteresis greHys( + final h=h, + final t=t, + final pre_y_start=pre_y_start) if have_hysteresis + "Block with hysteresis" + annotation (Placement(transformation(extent={{-10,20},{10,40}}))); + GreaterNoHysteresis greNoHys( + final t=t) if not have_hysteresis + "Block without hysteresis" + annotation (Placement(transformation(extent={{-10,-40},{10,-20}}))); + block GreaterNoHysteresis + "Greater block without hysteresis" + parameter Real t=0 + "Threshold for comparison"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input u" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output y" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + + equation + y=u > t; + annotation ( + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})})); + end GreaterNoHysteresis; + + block GreaterWithHysteresis + "Greater block without hysteresis" + parameter Real t=0 + "Threshold for comparison"; + parameter Real h( + final min=0)=0 + "Hysteresis" + annotation (Evaluate=true); + parameter Boolean pre_y_start=false + "Value of pre(y) at initial time" + annotation (Dialog(tab="Advanced")); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input u" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output y" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + + initial equation + assert( + h >= 0, + "Hysteresis must not be negative"); + pre(y)=pre_y_start; + + equation + y=(not pre(y) and u > t or pre(y) and u > t-h); + annotation ( + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-64,62},{62,92}}, + textColor={0,0,0}, + textString="h=%h")})); + end GreaterWithHysteresis; + +equation + connect(u,greHys.u) + annotation (Line(points={{-120,0},{-66,0},{-66,30},{-12,30}},color={0,0,127})); + connect(greHys.y,y) + annotation (Line(points={{12,30},{60,30},{60,0},{120,0}},color={255,0,255})); + connect(u,greNoHys.u) + annotation (Line(points={{-120,0},{-66,0},{-66,-30},{-12,-30}},color={0,0,127})); + connect(greNoHys.y,y) + annotation (Line(points={{12,-30},{60,-30},{60,0},{120,0}},color={255,0,255})); + annotation ( + defaultComponentName="greThr", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{73,7},{87,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Line( + points={{-16,10},{2,2},{-16,-8}}, + thickness=0.5), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-64,62},{62,92}}, + textColor={0,0,0}, + textString="h=%h"), + Text( + extent={{-88,-18},{-21,24}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(u, + leftJustified=false, + significantDigits=3))), + Text( + extent={{4,-18},{71,24}}, + textColor={0,0,0}, + textString="%t", + visible=h < 1E-10), + Text( + extent={{22,20},{89,62}}, + textColor=DynamicSelect({0,0,0}, + if y then + {135,135,135} + else + {0,0,0}), + textString=DynamicSelect("",String(t, + leftJustified=false, + significantDigits=3)), + visible=h >= 1E-10), + Text( + extent={{20,-56},{87,-14}}, + textColor=DynamicSelect({0,0,0}, + if not y then + {135,135,135} + else + {0,0,0}), + textString=DynamicSelect("",String(t-h, + leftJustified=false, + significantDigits=3)), + visible=h >= 1E-10)}), + Documentation( + info=" +

+Block that outputs true if the Real input u +is greater than a threshold t, optionally within a hysteresis h. +

+

+The parameter h ≥ 0 is used to specify a hysteresis. +For any h ≥ 0, the output switches to true if u > t, +where t is the threshold, +and it switches to false if u ≤ t - h. +Note that in the special case of h = 0, this produces the output y=u > t. +

+

+To disable hysteresis, set h=0. +

+

Usage

+

+Enabling hysteresis can avoid frequent switching.
+In simulation, adding hysteresis is recommended to guard against numerical noise. +Otherwise, numerical noise from a nonlinear solver or from an +implicit time integration algorithm may cause the simulation to stall. +Numerical noise can be present if an input depends +on a state variable or a quantity that requires an iterative solution, +such as a temperature or a mass flow rate of an HVAC system.
+In real controllers, adding hysteresis is recommended to guard against measurement noise. +Otherwise, measurement noise may cause the output to change frequently. +

+", +revisions=" + +")); +end GreaterThreshold; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Hysteresis.mo b/IBPSA/Controls/OBC/CDL/Reals/Hysteresis.mo new file mode 100644 index 0000000000..0dc756bb12 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Hysteresis.mo @@ -0,0 +1,146 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Hysteresis + "Transform Real to Boolean signal with Hysteresis" + parameter Real uLow + "if y=true and uuHigh, switch to y=true"; + parameter Boolean pre_y_start=false + "Value of pre(y) at initial time"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input to be compared against hysteresis values" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output value of comparison" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + assert(uHigh > uLow, + "Hysteresis limits wrong. uHigh must be larger than uLow"); + pre(y)=pre_y_start; + +equation + y=not pre(y) and u > uHigh or pre(y) and u >= uLow; + annotation ( + defaultComponentName="hys", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{71,7},{85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,68},{-80,-29}}, + color={192,192,192}), + Polygon( + points={{92,-29},{70,-21},{70,-37},{92,-29}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-79,-29},{84,-29}}, + color={192,192,192}), + Line( + points={{-79,-29},{41,-29}}), + Line( + points={{-15,-21},{1,-29},{-15,-36}}), + Line( + points={{41,51},{41,-29}}), + Line( + points={{33,3},{41,22},{50,3}}), + Line( + points={{-49,51},{81,51}}), + Line( + points={{-4,59},{-19,51},{-4,43}}), + Line( + points={{-59,29},{-49,11},{-39,29}}), + Line( + points={{-49,51},{-49,-29}}), + Text( + extent={{-92,-49},{-9,-92}}, + textColor={192,192,192}, + textString="%uLow"), + Text( + extent={{2,-49},{91,-92}}, + textColor={192,192,192}, + textString="%uHigh"), + Rectangle( + extent={{-91,-49},{-8,-92}}, + lineColor={192,192,192}), + Line( + points={{-49,-29},{-49,-49}}, + color={192,192,192}), + Rectangle( + extent={{2,-49},{91,-92}}, + lineColor={192,192,192}), + Line( + points={{41,-29},{41,-49}}, + color={192,192,192}), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")}), + Documentation( + info=" +

+Block that transforms a Real input signal into a Boolean +output signal: +

+ +

+The start value of the output is defined via parameter +pre_y_start (= value of pre(y) at initial time). +The default value of this parameter is false. +

+

+\"Hysteresis.png\" +

+", + revisions=" + +")); +end Hysteresis; diff --git a/IBPSA/Controls/OBC/CDL/Reals/IntegratorWithReset.mo b/IBPSA/Controls/OBC/CDL/Reals/IntegratorWithReset.mo new file mode 100644 index 0000000000..e2432a1282 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/IntegratorWithReset.mo @@ -0,0 +1,136 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block IntegratorWithReset + "Output the integral of the input signal" + parameter Real k=1 + "Integrator gain"; + parameter Real y_start=0 + "Initial or guess value of output (= state)" + annotation (Dialog(group="Initialization")); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input to be integrated" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput y_reset_in + "Input signal for state to which integrator is reset" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput trigger + "Input that resets the integrator output when it becomes true" + annotation (Placement(transformation(extent={{-20,-20},{20,20}},rotation=90,origin={0,-120}),iconTransformation(extent={{-20,-20},{20,20}},rotation=90,origin={0,-120}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Value of the integrator" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + y=y_start; + +equation + der(y)=k*u; + when trigger then + reinit(y, y_reset_in); + end when; + annotation ( + defaultComponentName="intWitRes", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-88,-94},{212,-54}}, + textColor={0,0,0}, + textString="y_reset_in", + horizontalAlignment=TextAlignment.Left), + Bitmap( + extent={{-54,-50},{60,50}}, + fileName="modelica://IBPSA/Resources/Images/Controls/OBC/CDL/Reals/int.png"), + Text( + extent={{-88,56},{206,92}}, + textColor={0,0,0}, + textString="k=%k", + horizontalAlignment=TextAlignment.Left), + Text( + extent={{-92,-12},{208,28}}, + textColor={0,0,0}, + horizontalAlignment=TextAlignment.Left, + textString="u"), + Text( + extent={{70,-14},{370,26}}, + textColor={0,0,0}, + horizontalAlignment=TextAlignment.Left, + textString="y"), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs +

+

+y(t) = ystart + ∫t0t u(s) ds. +

+

+Whenever the input signal trigger changes from false +to true, +the integrator is reset by setting ystart +to the value of the input signal y_reset_in. +

+", + revisions=" + +")); +end IntegratorWithReset; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Less.mo b/IBPSA/Controls/OBC/CDL/Reals/Less.mo new file mode 100644 index 0000000000..eb1ec495e0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Less.mo @@ -0,0 +1,258 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Less + "Output y is true, if input u1 is less than input u2" + parameter Real h(final min=0)=0 + "Hysteresis" + annotation (Evaluate=true); + parameter Boolean pre_y_start=false + "Value of pre(y) at initial time" + annotation (Dialog(tab="Advanced")); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "First input u1" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Second input u2" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true if u1 is less than u2" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + final parameter Boolean have_hysteresis=h >= 1E-10 + "True if the block has no hysteresis" + annotation (Evaluate=true); + LessWithHysteresis lesHys( + final h=h, + final pre_y_start=pre_y_start) if have_hysteresis + "Block with hysteresis" + annotation (Placement(transformation(extent={{-10,20},{10,40}}))); + LessNoHysteresis lesNoHys if not have_hysteresis + "Block without hysteresis" + annotation (Placement(transformation(extent={{-10,-40},{10,-20}}))); + block LessNoHysteresis + "Less block without hysteresis" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input u1" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Input u2" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output y" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + + equation + y=u1 < u2; + annotation ( + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})})); + end LessNoHysteresis; + + block LessWithHysteresis + "Less block without hysteresis" + parameter Real h(final min=0)=0 + "Hysteresis" + annotation (Evaluate=true); + parameter Boolean pre_y_start=false + "Value of pre(y) at initial time" + annotation (Dialog(tab="Advanced")); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input u1" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Input u2" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output y" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + + initial equation + assert(h >= 0, + "Hysteresis must not be negative"); + pre(y)=pre_y_start; + + equation + y=(not pre(y) and u1 < u2 or pre(y) and u1 < u2+h); + annotation ( + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-64,62},{62,92}}, + textColor={0,0,0}, + textString="h=%h")})); + end LessWithHysteresis; + +equation + connect(u1,lesHys.u1) + annotation (Line(points={{-120,0},{-66,0},{-66,30},{-12,30}},color={0,0,127})); + connect(u2,lesHys.u2) + annotation (Line(points={{-120,-80},{-60,-80},{-60,22},{-12,22}},color={0,0,127})); + connect(lesHys.y,y) + annotation (Line(points={{12,30},{60,30},{60,0},{120,0}},color={255,0,255})); + connect(u1,lesNoHys.u1) + annotation (Line(points={{-120,0},{-66,0},{-66,-30},{-12,-30}},color={0,0,127})); + connect(u2,lesNoHys.u2) + annotation (Line(points={{-120,-80},{-60,-80},{-60,-38},{-12,-38}},color={0,0,127})); + connect(lesNoHys.y,y) + annotation (Line(points={{12,-30},{60,-30},{60,0},{120,0}},color={255,0,255})); + annotation ( + defaultComponentName="les", + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{73,7},{87,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Line( + points={{-100,-80},{42,-80},{42,-62}}, + color={0,0,127}), + Line( + points={{18,14},{-12,2},{18,-8}}, + thickness=0.5), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-64,62},{62,92}}, + textColor={0,0,0}, + textString="h=%h"), + Text( + extent={{-88,-18},{-21,24}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(u1, + leftJustified=false, + significantDigits=3))), + Text( + extent={{-86,-76},{-19,-34}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(u2, + leftJustified=false, + significantDigits=3))), + Text( + extent={{22,20},{89,62}}, + textColor=DynamicSelect({235,235,235}, + if y then + {135,135,135} + else + {0,0,0}), + textString=DynamicSelect("",String(u2, + leftJustified=false, + significantDigits=3)), + visible=h >= 1E-10), + Text( + extent={{22,20},{89,62}}, + textColor=DynamicSelect({235,235,235}, + if y then + {135,135,135} + else + {0,0,0}), + textString=DynamicSelect("",String(u2, + leftJustified=false, + significantDigits=3)), + visible=h >= 1E-10), + Text( + extent={{20,-56},{87,-14}}, + textColor=DynamicSelect({235,235,235}, + if not y then + {135,135,135} + else + {0,0,0}), + textString=DynamicSelect("",String(u2+h, + leftJustified=false, + significantDigits=3)), + visible=h >= 1E-10)}), + Documentation( + info=" +

+Block that outputs true if the Real input u1 +is less than the Real input u2, optionally within a hysteresis h. +

+

+The parameter h ≥ 0 is used to specify a hysteresis. +For any h ≥ 0, the output switches to true if u1 < u2, +and it switches to false if u1 ≥ u2 + h. +Note that in the special case of h = 0, this produces the output y=u1 < u2. +

+

+To disable hysteresis, set h=0. +

+

Usage

+

+Enabling hysteresis can avoid frequent switching.
+In simulation, adding hysteresis is recommended to guard against numerical noise. +Otherwise, numerical noise from a nonlinear solver or from an +implicit time integration algorithm may cause the simulation to stall. +Numerical noise can be present if an input depends +on a state variable or a quantity that requires an iterative solution, +such as a temperature or a mass flow rate of an HVAC system.
+In real controllers, adding hysteresis is recommended to guard against measurement noise. +Otherwise, measurement noise may cause the output to change frequently. +

+", +revisions=" + +")); +end Less; diff --git a/IBPSA/Controls/OBC/CDL/Reals/LessThreshold.mo b/IBPSA/Controls/OBC/CDL/Reals/LessThreshold.mo new file mode 100644 index 0000000000..826d2301fd --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/LessThreshold.mo @@ -0,0 +1,234 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block LessThreshold + "Output y is true, if input u is less than threshold with hysteresis" + parameter Real t=0 + "Threshold for comparison"; + parameter Real h(final min=0)=0 + "Hysteresis" + annotation (Evaluate=true); + parameter Boolean pre_y_start=false + "Value of pre(y) at initial time" + annotation (Dialog(tab="Advanced")); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input to be compared against the threshold" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Outputs true if u is less than the threshold with hysteresis" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + final parameter Boolean have_hysteresis=h >= 1E-10 + "True if the block has no hysteresis" + annotation (Evaluate=true); + LessWithHysteresis lesHys( + final h=h, + final t=t, + final pre_y_start=pre_y_start) if have_hysteresis + "Block with hysteresis" + annotation (Placement(transformation(extent={{-10,20},{10,40}}))); + LessNoHysteresis lesNoHys( + final t=t) if not have_hysteresis + "Block without hysteresis" + annotation (Placement(transformation(extent={{-10,-40},{10,-20}}))); + block LessNoHysteresis + "Less block without hysteresis" + parameter Real t=0 + "Threshold for comparison"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input u" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output y" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + + equation + y=u < t; + annotation ( + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})})); + end LessNoHysteresis; + + block LessWithHysteresis + "Less block without hysteresis" + parameter Real t=0 + "Threshold for comparison"; + parameter Real h( + final min=0)=0 + "Hysteresis" + annotation (Evaluate=true); + parameter Boolean pre_y_start=false + "Value of pre(y) at initial time" + annotation (Dialog(tab="Advanced")); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input u" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Output y" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + + initial equation + assert(h >= 0, + "Hysteresis must not be negative"); + pre(y)=pre_y_start; + + equation + y=(not pre(y) and u < t or pre(y) and u < t+h); + annotation ( + Icon( + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-64,62},{62,92}}, + textColor={0,0,0}, + textString="h=%h")})); + end LessWithHysteresis; + +equation + connect(u,lesHys.u) + annotation (Line(points={{-120,0},{-66,0},{-66,30},{-12,30}},color={0,0,127})); + connect(lesHys.y,y) + annotation (Line(points={{12,30},{60,30},{60,0},{120,0}},color={255,0,255})); + connect(u,lesNoHys.u) + annotation (Line(points={{-120,0},{-66,0},{-66,-30},{-12,-30}},color={0,0,127})); + connect(lesNoHys.y,y) + annotation (Line(points={{12,-30},{60,-30},{60,0},{120,0}},color={255,0,255})); + annotation ( + defaultComponentName="lesThr", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + lineThickness=5.0, + fillColor={210,210,210}, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Ellipse( + extent={{73,7},{87,-7}}, + lineColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if y then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Line( + points={{2,10},{-16,2},{2,-8}}, + thickness=0.5), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-64,62},{62,92}}, + textColor={0,0,0}, + textString="h=%h"), + Text( + extent={{-88,-18},{-21,24}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(u, + leftJustified=false, + significantDigits=3))), + Text( + extent={{4,-18},{71,24}}, + textColor={0,0,0}, + textString="%t", + visible=h < 1E-10), + Text( + extent={{22,20},{89,62}}, + textColor=DynamicSelect({0,0,0}, + if y then + {135,135,135} + else + {0,0,0}), + textString=DynamicSelect("",String(t, + leftJustified=false, + significantDigits=3)), + visible=h >= 1E-10), + Text( + extent={{20,-56},{87,-14}}, + textColor=DynamicSelect({0,0,0}, + if not y then + {135,135,135} + else + {0,0,0}), + textString=DynamicSelect("",String(t+h, + leftJustified=false, + significantDigits=3)), + visible=h >= 1E-10)}), + Documentation( + info=" +

+Block that outputs true if the Real input u +is less than a threshold t, optionally within a hysteresis h. +

+

+The parameter h ≥ 0 is used to specify a hysteresis. +For any h ≥ 0, the output switches to true if u < t, +where t is the threshold, +and it switches to false if u ≥ t + h. +Note that in the special case of h = 0, this produces the output y=u < t. +

+

Usage

+

+Enabling hysteresis can avoid frequent switching. +Adding hysteresis is recommended in real controllers to guard against sensor noise, and +in simulation to guard against numerical noise. Numerical noise can be present if +an input depends on a state variable or a quantity that requires an iterative solution, such as +a temperature or a mass flow rate of an HVAC system. +To disable hysteresis, set h=0. +

+", +revisions=" + +")); +end LessThreshold; diff --git a/IBPSA/Controls/OBC/CDL/Reals/LimitSlewRate.mo b/IBPSA/Controls/OBC/CDL/Reals/LimitSlewRate.mo new file mode 100644 index 0000000000..1e845bea7e --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/LimitSlewRate.mo @@ -0,0 +1,152 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block LimitSlewRate "Limit the increase or decrease rate of input" + parameter Real raisingSlewRate( + min=Constants.small, + unit="1/s") + "Speed with which to increase the output"; + parameter Real fallingSlewRate( + max=-Constants.small, + unit="1/s")=-raisingSlewRate + "Speed with which to decrease the output"; + parameter Real Td( + final quantity="Time", + final unit="s", + min=Constants.eps)=raisingSlewRate*10 + "Derivative time constant"; + parameter Boolean enable=true + "Set to false to disable rate limiter"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input signal to be rate of change limited" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Rate of change limited output signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + Real thr=(u-y)/Td + "Approximation to derivative between input and output"; + +initial equation + assert(raisingSlewRate > 0, + "raisingSlewRate must be larger than zero."); + assert(fallingSlewRate < 0, + "fallingSlewRate must be less than zero."); + + y=u; + +equation + if enable then + der(y)=smooth( + 1, + noEvent( + if thr < fallingSlewRate then + fallingSlewRate + else + if thr > raisingSlewRate then + raisingSlewRate + else + thr)); + else + y=u; + end if; + annotation ( + defaultComponentName="ramLim", + Documentation( + info=" +

+The block limits the rate of change of the input by a ramp. +

+

+This block computes a threshold for the rate of change of the output y as +thr = (u-y)/Td, where Td > 0 is parameter. +The output y is computed as follows: +

+

Implementation

+

+For the block to work with arbitrary inputs and in order to produce a differentiable output, +the input is numerically differentiated with derivative time constant Td. +Smaller time constant Td means nearer ideal derivative. +

+", +revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{0,-90},{0,68}}, + color={192,192,192}), + Polygon( + points={{0,90},{-8,68},{8,68},{0,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-90,0},{68,0}}, + color={192,192,192}), + Polygon( + points={{90,0},{68,-8},{68,8},{90,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-50,-70},{50,70}}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end LimitSlewRate; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Limiter.mo b/IBPSA/Controls/OBC/CDL/Reals/Limiter.mo new file mode 100644 index 0000000000..4cd82d1347 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Limiter.mo @@ -0,0 +1,117 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Limiter + "Limit the range of a signal" + parameter Real uMax + "Upper limit of input signal"; + parameter Real uMin + "Lower limit of input signal"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input to be limited" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Limited value of input signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + assert(uMin < uMax, + "uMin must be smaller than uMax. Check parameters."); + +equation + y=homotopy( + actual=smooth(0,noEvent( + if u > uMax then + uMax + else + if u < uMin then + uMin + else + u)), + simplified=u); + annotation ( + defaultComponentName="lim", + Documentation( + info=" +

+Block that outputs y = min(uMax, max(uMin, u)), +where +u is an input +and +uMax and uMin are parameters. +

+

+If uMax < uMin, an error occurs. +

+", + revisions=" + +"), + Icon( + graphics={ + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{0,-90},{0,68}}, + color={192,192,192}), + Polygon( + points={{0,90},{-8,68},{8,68},{0,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-90,0},{68,0}}, + color={192,192,192}), + Polygon( + points={{90,0},{68,-8},{68,8},{90,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,-70},{-50,-70},{50,70},{80,70}}), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{50,70},{80,70}}), + Line( + points={{-80,-70},{-50,-70}}), + Text( + extent={{12,72},{94,98}}, + textColor={0,0,0}, + textString="%uMax"), + Text( + extent={{-100,-98},{-18,-72}}, + textColor={0,0,0}, + textString="%uMin"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end Limiter; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Line.mo b/IBPSA/Controls/OBC/CDL/Reals/Line.mo new file mode 100644 index 0000000000..c28c5543a8 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Line.mo @@ -0,0 +1,234 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Line + "Output the value of the input x along a line specified by two points" + parameter Boolean limitBelow=true + "If true, limit input u to be no smaller than x1" + annotation (Evaluate=true); + parameter Boolean limitAbove=true + "If true, limit input u to be no larger than x2" + annotation (Evaluate=true); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput x1 + "Input for support point x1, with x1 < x2" + annotation (Placement(transformation(extent={{-140,60},{-100,100}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput f1 + "Input for support point f(x1)" + annotation (Placement(transformation(extent={{-140,20},{-100,60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput x2 + "Input for support point x2, with x2 > x1" + annotation (Placement(transformation(extent={{-140,-60},{-100,-20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput f2 + "Input for support point f(x2)" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input for independent variable" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Output with f(x) along the line specified by (x1, f1) and (x2, f2)" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + Real a "Intercept"; + Real b "Slope"; + Real xLim "Input value after applying the limits"; + +equation + if limitBelow or limitAbove then + assert(x2 > x1, + "x2 must be bigger than x1 in " + getInstanceName(), + AssertionLevel.warning); + end if; + + b=(f2-f1)/(x2-x1); + a=f2-b*x2; + + if limitBelow and limitAbove then + xLim=min(x2, max(x1, u)); + elseif limitBelow then + xLim=max(x1, u); + elseif limitAbove then + xLim=min(x2, u); + else + xLim=u; + end if; + + y = a + b * xLim; + + annotation ( + defaultComponentName="lin", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Polygon( + points={{92,-78},{70,-70},{70,-86},{92,-78}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-46,40},{50,-44}}, + color={0,0,0}, + thickness=0.5), + Line( + points={{-80,-80},{-80,72}}, + color={192,192,192}), + Polygon( + points={{-80,92},{-88,70},{-72,70},{-80,92}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-88,-78},{76,-78}}, + color={192,192,192}), + Line( + points={{-100,80},{-64,80}}, + color={28,108,200}, + smooth=Smooth.Bezier, + pattern=LinePattern.Dot), + Line( + points={{-64,80},{-62,-78}}, + color={28,108,200}, + smooth=Smooth.Bezier, + pattern=LinePattern.Dot), + Line( + points={{-100,40},{-88,40}}, + color={28,108,200}, + smooth=Smooth.Bezier, + pattern=LinePattern.Dot), + Line( + points={{-88,40},{-48,40}}, + color={28,108,200}, + smooth=Smooth.Bezier, + pattern=LinePattern.Dot), + Line( + points={{-100,-40},{48,-36}}, + color={28,108,200}, + smooth=Smooth.Bezier, + pattern=LinePattern.Dot), + Line( + points={{48,-36},{50,-78}}, + color={28,108,200}, + smooth=Smooth.Bezier, + pattern=LinePattern.Dot), + Line( + points={{-100,-80},{-38,-56}}, + color={28,108,200}, + smooth=Smooth.Bezier, + pattern=LinePattern.Dot), + Line( + points={{-38,-56},{48,-44}}, + color={28,108,200}, + smooth=Smooth.Bezier, + pattern=LinePattern.Dot), + Line( + points={{-100,0},{-62,0}}, + color={28,108,200}, + smooth=Smooth.Bezier, + pattern=LinePattern.Dot), + Line( + points={{-62,0},{8,-8}}, + color={28,108,200}, + smooth=Smooth.Bezier, + pattern=LinePattern.Dot), + Line( + points={{10,-8},{52,-8}}, + color={28,108,200}, + smooth=Smooth.Bezier, + pattern=LinePattern.Dot), + Line( + points={{52,-8},{100,0}}, + color={28,108,200}, + smooth=Smooth.Bezier, + pattern=LinePattern.Dot), + Ellipse( + extent={{44,-38},{56,-50}}, + pattern=LinePattern.None, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{2,-2},{14,-14}}, + pattern=LinePattern.None, + lineColor={0,0,0}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid), + Line( + points={{50,-44},{80,-70}}, + color={0,0,0}, + thickness=0.5, + visible=not limitAbove), + Line( + points={{52,-44},{86,-44}}, + color={238,46,47}, + thickness=0.5, + visible=limitAbove), + Line( + points={{-80,68},{-46,40}}, + color={0,0,0}, + thickness=0.5, + visible=not limitBelow), + Line( + points={{-80,40},{-46,40}}, + color={238,46,47}, + thickness=0.5, + visible=limitBelow), + Ellipse( + extent={{-52,46},{-40,34}}, + pattern=LinePattern.None, + lineColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs y = a + b u, +where +u is an input +and the coefficients a and b +are determined so that the line intercepts the two input points +specified by the two points x1 and f1, +and x2 and f2. +

+

+The parameters limitBelow and limitAbove +determine whether x1 and x2 are also used +to limit the input u. +

+

+If the limits are used, then this block requires x1 < x2. +

+", + revisions=" + +")); +end Line; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Log.mo b/IBPSA/Controls/OBC/CDL/Reals/Log.mo new file mode 100644 index 0000000000..44b5ca479a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Log.mo @@ -0,0 +1,85 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Log + "Output the natural (base e) logarithm of the input (input > 0 required)" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input for base e logarithm" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Base e logarithm of the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=Modelica.Math.log(u); + annotation ( + defaultComponentName="log", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,-80},{-80,68}}, + color={192,192,192}), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-90,0},{68,0}}, + color={192,192,192}), + Line( + points={{-80,-80},{-79.2,-50.6},{-78.4,-37},{-77.6,-28},{-76.8,-21.3},{-75.2,-11.4},{-72.8,-1.31},{-69.5,8.08},{-64.7,17.9},{-57.5,28},{-47,38.1},{-31.8,48.1},{-10.1,58},{22.1,68},{68.7,78.1},{80,80}}), + Text( + extent={{-6,-24},{66,-72}}, + textColor={192,192,192}, + textString="log"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs y = log(u), +where +u is an input and log() is the +natural logarithm (base-e) function. +

+ +

+An error occurs if the input u is +zero or negative. +

+ +

+\"log.png\" +

+ +", + revisions=" + +")); +end Log; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Log10.mo b/IBPSA/Controls/OBC/CDL/Reals/Log10.mo new file mode 100644 index 0000000000..021676ee8c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Log10.mo @@ -0,0 +1,85 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Log10 + "Output the base 10 logarithm of the input (input > 0 required)" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input for base 10 logarithm" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Base 10 logarithm of the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=Modelica.Math.log10(u); + annotation ( + defaultComponentName="log10", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,-80},{-80,68}}, + color={192,192,192}), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-90,0},{68,0}}, + color={192,192,192}), + Line( + points={{-80,-80},{-79.2,-50.6},{-78.4,-37},{-77.6,-28},{-76.8,-21.3},{-75.2,-11.4},{-72.8,-1.31},{-69.5,8.08},{-64.7,17.9},{-57.5,28},{-47,38.1},{-31.8,48.1},{-10.1,58},{22.1,68},{68.7,78.1},{80,80}}), + Text( + extent={{-6,-24},{66,-72}}, + textColor={192,192,192}, + textString="log10"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs y = log10(u), +where +u is an input and log10() is the +logarithm (base-10) function. +

+ +

+An error occurs if the input u is +zero or negative. +

+ +

+\"log10.png\" +

+ +", + revisions=" + +")); +end Log10; diff --git a/IBPSA/Controls/OBC/CDL/Reals/MatrixGain.mo b/IBPSA/Controls/OBC/CDL/Reals/MatrixGain.mo new file mode 100644 index 0000000000..c6dee033a3 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/MatrixGain.mo @@ -0,0 +1,97 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block MatrixGain + "Output the product of a gain matrix with the input signal vector" + parameter Real K[:,:]=[1, 0; 0, 1] + "Gain matrix which is multiplied with the input"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u[nin] + "Input to be multiplied with the gain matrix" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y[nout] + "Product of gain matrix times the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Integer nin=size(K, 2) + "Number of inputs"; + parameter Integer nout=size(K, 1) + "Number of outputs"; + +equation + y=K*u; + annotation ( + defaultComponentName="matGai", + Documentation( + info=" +

+This blocks computes output vector y as the product of the +gain matrix K with the input signal vector u as +y = K u. +For example, +

+
+   parameter Real K[:,:] = [0.12, 2; 3, 1.5];
+
+

+results in +

+
+     | y[1] |     | 0.12,  2.00 |   | u[1] |
+     |      |  =  |            | * |      |
+     | y[2] |     | 3.00,  1.50 |   | u[2] |
+
+ +", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-50,-30},{20,38}}, + textColor={0,0,0}, + textString="[ ]"), + Text( + extent={{8,-30},{80,10}}, + textColor={0,0,0}, + textString="*")}), + Diagram( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-50,-30},{20,38}}, + textColor={0,0,0}, + textString="[ ]"), + Text( + extent={{8,-30},{80,10}}, + textColor={0,0,0}, + textString="*")})); +end MatrixGain; diff --git a/IBPSA/Controls/OBC/CDL/Reals/MatrixMax.mo b/IBPSA/Controls/OBC/CDL/Reals/MatrixMax.mo new file mode 100644 index 0000000000..973470016f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/MatrixMax.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block MatrixMax + "Output vector of row- or column-wise maximum of the input matrix" + parameter Boolean rowMax=true + "If true, outputs row-wise maximum, otherwise column-wise"; + parameter Integer nRow(final min=1) + "Number of rows in input matrix"; + parameter Integer nCol(final min=1) + "Number of columns in input matrix"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u[nRow, nCol] + "Input for the matrix max function" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y[ + if rowMax then size(u, 1) else size(u, 2)] + "Output with vector of row- or colum-wise maximum of the input matrix" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + if rowMax then + y={max(u[i,:]) for i in 1:size(u,1)}; + else + y={max(u[:,i]) for i in 1:size(u,2)}; + end if; + annotation ( + defaultComponentName="matMax", + Documentation( + info=" +

+If rowMax = true, this block outputs the row-wise maximum +of the input matrix u, +otherwise it outputs the column-wise maximum of the input matrix u. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-78,-62},{86,68}}, + textColor={0,0,0}, + textString="[ ] max()")}), + Diagram( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}))); +end MatrixMax; diff --git a/IBPSA/Controls/OBC/CDL/Reals/MatrixMin.mo b/IBPSA/Controls/OBC/CDL/Reals/MatrixMin.mo new file mode 100644 index 0000000000..d7872ec15e --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/MatrixMin.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block MatrixMin + "Output vector of row- or column-wise minimum values" + parameter Boolean rowMin=true + "If true, outputs row-wise minimum, otherwise column-wise"; + parameter Integer nRow(final min=1) + "Number of rows in input matrix"; + parameter Integer nCol(final min=1) + "Number of columns in input matrix"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u[nRow, nCol] + "Input for the matrix min function" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y[ + if rowMin then size(u, 1) else size(u, 2)] + "Output with vector of row- or colum-wise minimum of the input matrix" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + if rowMin then + y={min(u[i,:]) for i in 1:size(u,1)}; + else + y={min(u[:,i]) for i in 1:size(u,2)}; + end if; + annotation ( + defaultComponentName="matMin", + Documentation( + info=" +

+If rowMin = true, this block outputs the row-wise minimum +of the input matrix u, +otherwise it outputs the column-wise minimum of the input matrix u. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-78,-62},{86,68}}, + textColor={0,0,0}, + textString="[ ] min()")}), + Diagram( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}))); +end MatrixMin; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Max.mo b/IBPSA/Controls/OBC/CDL/Reals/Max.mo new file mode 100644 index 0000000000..f44cdb5d2e --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Max.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Max + "Pass through the largest signal" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input to the max function" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Input to the max function" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Maximum of the inputs" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=max(u1, u2); + annotation ( + defaultComponentName="max", + Documentation( + info=" +

+Block that outputs y = max(u1, u2), +where +u1 and u2 are inputs. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-90,36},{90,-36}}, + textColor={160,160,164}, + textString="max()"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end Max; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Min.mo b/IBPSA/Controls/OBC/CDL/Reals/Min.mo new file mode 100644 index 0000000000..f31e9164d2 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Min.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Min + "Pass through the smallest signal" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input to the min function" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Input to the min function" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Minimum of the inputs" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=min(u1, u2); + annotation ( + defaultComponentName="min", + Documentation( + info=" +

+Block that outputs y = min(u1, u2), +where +u1 and u2 are inputs. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-90,36},{90,-36}}, + textColor={160,160,164}, + textString="min()"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end Min; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Modulo.mo b/IBPSA/Controls/OBC/CDL/Reals/Modulo.mo new file mode 100644 index 0000000000..b2d3e0a139 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Modulo.mo @@ -0,0 +1,92 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Modulo + "Output the remainder of first input divided by second input (~=0)" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Dividend of the modulus function" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Divisor of the modulus function" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Modulus u1 mod u2" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=mod(u1, u2); + annotation ( + defaultComponentName="mod", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Ellipse( + lineColor={0,0,127}, + extent={{-50,-48},{50,52}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Text( + extent={{-32,-52},{40,-100}}, + textColor={192,192,192}, + textString="mod"), + Line( + points={{-8,16}}, + color={0,0,0}), + Line( + points={{-100,60}}, + color={0,0,0}, + thickness=1), + Line( + points={{-100,60},{-28,60},{-12,50}}, + color={0,0,127}), + Line( + points={{-100,-60},{-26,-60},{-2,-48}}, + color={0,0,127}), + Line( + points={{50,2},{102,2},{100,2}}, + color={0,0,127}), + Ellipse( + fillPattern=FillPattern.Solid, + extent={{11,-18},{21,-8}}), + Line( + points={{-24,-20},{26,24}}), + Ellipse( + fillPattern=FillPattern.Solid, + extent={{-21,12},{-11,22}}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs y = mod(u1/u2), +where +u1 and u2 are inputs. +

+", + revisions=" + +")); +end Modulo; diff --git a/IBPSA/Controls/OBC/CDL/Reals/MovingAverage.mo b/IBPSA/Controls/OBC/CDL/Reals/MovingAverage.mo new file mode 100644 index 0000000000..47662dc4e7 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/MovingAverage.mo @@ -0,0 +1,185 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block MovingAverage "Block to output moving average" + parameter Real delta( + final quantity="Time", + final unit="s", + min=1E-5) + "Time horizon over which the input is averaged"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input to be averaged" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Moving average of the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Real tStart( + final quantity="Time", + final unit="s", + fixed=false) + "Start time"; + Real mu + "Internal integrator variable"; + Real muDel + "Internal integrator variable with delay"; + Boolean mode( + start=false, + fixed=true) + "Calculation mode"; + +initial equation + tStart=time; + mu=0; + +equation + u=der(mu); + muDel=delay(mu, delta); + // Compute the mode so that Dymola generates + // time and not state events as it would with + // an if-then construct + when time >= tStart+delta then + mode=true; + end when; + if mode then + y=(mu-muDel)/delta; + else + y=(mu-muDel)/(time-tStart+1E-3); + end if; + annotation ( + defaultComponentName="movAve", + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-78,90},{-86,68},{-70,68},{-78,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-78,68},{-78,-80}}, + color={192,192,192}), + Line( + points={{-88,0},{70,0}}, + color={192,192,192}), + Polygon( + points={{92,0},{70,8},{70,-8},{92,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-78,-31},{-64,-31},{-64,-15},{-56,-15},{-56,-63},{-48,-63}, + {-48,-41},{-40,-41},{-40,43},{-32,43},{-32,11},{-32,11},{-32,-49}, + {-22,-49},{-22,-31},{-12,-31},{-12,-59},{-2,-59},{-2,23},{4,23}, + {4,37},{10,37},{10,-19},{20,-19},{20,-7},{26,-7},{26,-37}, + {36,-37},{36,35},{46,35},{46,1},{54,1},{54,-65},{64,-65}}, + color={215,215,215}), + Line( + points={{-78,-24},{68,-24}}), + Text( + extent={{-140,152},{160,112}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-42,-63},{41,-106}}, + textColor={192,192,192}, + textString="%delta s"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+This block outputs the mean value of its input signal as +

+
+      1  t
+y =   -  ∫   u(s) ds
+      δ  t-δ
+
+

+where δ is a parameter that determines the time window over +which the input is averaged. +For + t < δ seconds, it outputs +

+
+           1      t
+y =   --------    ∫   u(s) ds
+      t-t0+10-10   t0
+
+

+where t0 is the initial time. +

+

+This block can for example be used to output the moving +average of a noisy measurement signal. +

+

+See + +IBPSA.Controls.OBC.CDL.Reals.Validation.MovingAverage +and + +IBPSA.Controls.OBC.CDL.Reals.Validation.MovingAverage_nonZeroStart +for example. +

+", +revisions=" + +")); +end MovingAverage; diff --git a/IBPSA/Controls/OBC/CDL/Reals/MultiMax.mo b/IBPSA/Controls/OBC/CDL/Reals/MultiMax.mo new file mode 100644 index 0000000000..de4556fafe --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/MultiMax.mo @@ -0,0 +1,61 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block MultiMax + "Output the maximum element of the input vector" + parameter Integer nin(min=0)=0 + "Number of input signals" + annotation (Dialog(connectorSizing=true),HideResult=true); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u[nin] + "Input to max function" + annotation (Placement(transformation(extent={{-140,20},{-100,-20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Largest element of the input vector" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=max(u); + annotation ( + defaultComponentName="mulMax", + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-90,36},{90,-36}}, + textColor={160,160,164}, + textString="max()"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Outputs the maximum element of the input vector. +

+", + revisions=" + +")); +end MultiMax; diff --git a/IBPSA/Controls/OBC/CDL/Reals/MultiMin.mo b/IBPSA/Controls/OBC/CDL/Reals/MultiMin.mo new file mode 100644 index 0000000000..dbbdf5b1d6 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/MultiMin.mo @@ -0,0 +1,61 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block MultiMin + "Output the minimum element of the input vector" + parameter Integer nin(min=0)=0 + "Number of input signals" + annotation (Dialog(connectorSizing=true),HideResult=true); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u[nin] + "Input to the min function" + annotation (Placement(transformation(extent={{-140,20},{-100,-20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Smallest element of the input vector" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=min(u); + annotation ( + defaultComponentName="mulMin", + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-90,36},{90,-36}}, + textColor={160,160,164}, + textString="min()"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Outputs the minimum element of the input vector. +

+", + revisions=" + +")); +end MultiMin; diff --git a/IBPSA/Controls/OBC/CDL/Reals/MultiSum.mo b/IBPSA/Controls/OBC/CDL/Reals/MultiSum.mo new file mode 100644 index 0000000000..2dc8e08807 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/MultiSum.mo @@ -0,0 +1,94 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block MultiSum + "Sum of Reals, y = k[1]*u[1] + k[2]*u[2] + ... + k[n]*u[n]" + parameter Integer nin(min=0)=0 + "Number of input signals" + annotation (Dialog(connectorSizing=true),HideResult=true); + parameter Real k[nin]=fill(1, nin) + "Input gains"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u[nin] + "Input to multiplied by gain and then added" + annotation (Placement(transformation(extent={{-140,20},{-100,-20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Sum of inputs times gains" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + if size(u, 1) > 0 then + y=k*u; + else + y=0; + end if; + annotation ( + defaultComponentName="mulSum", + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-200,-110},{200,-140}}, + textColor={0,0,0}, + fillColor={255,213,170}, + fillPattern=FillPattern.Solid, + textString="%k"), + Text( + extent={{-82,90},{82,-46}}, + textColor={0,0,0}, + fillColor={255,213,170}, + fillPattern=FillPattern.Solid, + textString="+"), + Text( + extent={{-144,150},{156,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs +

+

+y = ∑i=1n ki   ui, +

+

+where k is a parameter with n elements and u is +an input of the same length. +The dimension of u can be enlarged by +drawing an additional connection line. The connection is automatically connected +to this new free index. +

+ +

+If no connection to the input connector u is present, +the output is y=0. +

+

+See + +IBPSA.Controls.OBC.CDL.Reals.Validation.MultiSum +for an example. +

+", + revisions=" + +")); +end MultiSum; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Multiply.mo b/IBPSA/Controls/OBC/CDL/Reals/Multiply.mo new file mode 100644 index 0000000000..b7e5cfd13c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Multiply.mo @@ -0,0 +1,83 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Multiply "Output product of the two inputs" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input to be multiplied" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Input to be multiplied" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Product of the inputs" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1*u2; + annotation ( + defaultComponentName="mul", + Documentation( + info=" +

+Block that outputs y = u1 * u2, +where +u1 and u2 are inputs. +

+", +revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Ellipse( + lineColor={0,0,127}, + extent={{-50,-50},{50,50}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,60},{-40,60},{-30,40}}, + color={0,0,127}), + Line( + points={{-100,-60},{-40,-60},{-30,-40}}, + color={0,0,127}), + Line( + points={{50,0},{100,0}}, + color={0,0,127}), + Line( + points={{-30,0},{30,0}}), + Line( + points={{-15,25.99},{15,-25.99}}), + Line( + points={{-15,-25.99},{15,25.99}}), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end Multiply; diff --git a/IBPSA/Controls/OBC/CDL/Reals/MultiplyByParameter.mo b/IBPSA/Controls/OBC/CDL/Reals/MultiplyByParameter.mo new file mode 100644 index 0000000000..3fadfa265d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/MultiplyByParameter.mo @@ -0,0 +1,68 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block MultiplyByParameter + "Output the product of a gain value with the input signal" + parameter Real k + "Factor to be multiplied with input signal"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input to be multiplied with gain" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Product of the parameter times the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=k*u; + annotation ( + defaultComponentName="gai", + Documentation( + info=" +

+Block that outputs y = k * u, +where +k is a parameter and +u is an input. +

+", +revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Polygon( + points={{-100,-100},{-100,100},{100,0},{-100,-100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,-140},{150,-100}}, + textColor={0,0,0}, + textString="k=%k"), + Text( + extent={{-150,144},{150,104}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end MultiplyByParameter; diff --git a/IBPSA/Controls/OBC/CDL/Reals/PID.mo b/IBPSA/Controls/OBC/CDL/Reals/PID.mo new file mode 100644 index 0000000000..b223a243f3 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/PID.mo @@ -0,0 +1,604 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block PID + "P, PI, PD, and PID controller" + parameter IBPSA.Controls.OBC.CDL.Types.SimpleController controllerType = + IBPSA.Controls.OBC.CDL.Types.SimpleController.PI + "Type of controller"; + parameter Real k( + min=100*Constants.eps)=1 + "Gain of controller" + annotation (Dialog(group="Control gains")); + parameter Real Ti( + final quantity="Time", + final unit="s", + min=100*Constants.eps)=0.5 + "Time constant of integrator block" + annotation (Dialog(group="Control gains",enable=controllerType == CDL.Types.SimpleController.PI or controllerType == CDL.Types.SimpleController.PID)); + parameter Real Td( + final quantity="Time", + final unit="s", + min=100*Constants.eps)=0.1 + "Time constant of derivative block" + annotation (Dialog(group="Control gains",enable=controllerType == CDL.Types.SimpleController.PD or controllerType == CDL.Types.SimpleController.PID)); + parameter Real r( + min=100*Constants.eps)=1 + "Typical range of control error, used for scaling the control error"; + parameter Real yMax=1 + "Upper limit of output" + annotation (Dialog(group="Limits")); + parameter Real yMin=0 + "Lower limit of output" + annotation (Dialog(group="Limits")); + parameter Real Ni( + min=100*Constants.eps)=0.9 + "Ni*Ti is time constant of anti-windup compensation" + annotation (Dialog(tab="Advanced",group="Integrator anti-windup",enable=controllerType == CDL.Types.SimpleController.PI or controllerType == CDL.Types.SimpleController.PID)); + parameter Real Nd( + min=100*Constants.eps)=10 + "The higher Nd, the more ideal the derivative block" + annotation (Dialog(tab="Advanced",group="Derivative block",enable=controllerType == CDL.Types.SimpleController.PD or controllerType == CDL.Types.SimpleController.PID)); + parameter Real xi_start=0 + "Initial value of integrator state" + annotation (Dialog(tab="Advanced",group="Initialization",enable=controllerType == CDL.Types.SimpleController.PI or controllerType == CDL.Types.SimpleController.PID)); + parameter Real yd_start=0 + "Initial value of derivative output" + annotation (Dialog(tab="Advanced",group="Initialization",enable=controllerType == CDL.Types.SimpleController.PD or controllerType == CDL.Types.SimpleController.PID)); + parameter Boolean reverseActing=true + "Set to true for reverse acting, or false for direct acting control action"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u_s + "Setpoint input signal" + annotation (Placement(transformation(extent={{-260,-20},{-220,20}}),iconTransformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u_m + "Measurement input signal" + annotation (Placement(transformation(origin={0,-220},extent={{20,-20},{-20,20}},rotation=270),iconTransformation(extent={{20,-20},{-20,20}},rotation=270,origin={0,-120}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Actuator output signal" + annotation (Placement(transformation(extent={{220,-20},{260,20}}),iconTransformation(extent={{100,-20},{140,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract controlError "Control error (set point - measurement)" + annotation (Placement(transformation(extent={{-200,-16},{-180,4}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter P(final k=k) + "Gain for proportional control action" + annotation (Placement(transformation(extent={{-50,130},{-30,150}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset I( + final k=k/Ti, + final y_start=xi_start) if with_I + "Integral term" + annotation (Placement(transformation(extent={{-50,-10},{-30,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Derivative D( + final y_start=yd_start) if with_D + "Derivative term" + annotation (Placement(transformation(extent={{-50,60},{-30,80}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract errP + "P error" + annotation (Placement(transformation(extent={{-140,130},{-120,150}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract errD if with_D + "D error" + annotation (Placement(transformation(extent={{-140,60},{-120,80}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract errI1 if with_I + "I error (before anti-windup compensation)" + annotation (Placement(transformation(extent={{-140,-4},{-120,16}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract errI2 if with_I + "I error (after anti-windup compensation)" + annotation (Placement(transformation(extent={{-100,-10},{-80,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Limiter lim( + final uMax=yMax, + final uMin=yMin) + "Limiter" + annotation (Placement(transformation(extent={{120,80},{140,100}}))); + +protected + final parameter Real revAct= if reverseActing then 1 else -1 + "Switch for sign for reverse or direct acting controller"; + final parameter Boolean with_I = + controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PI or + controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PID + "Boolean flag to enable integral action" + annotation (Evaluate=true,HideResult=true); + final parameter Boolean with_D = + controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PD or + controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PID + "Boolean flag to enable derivative action" + annotation (Evaluate=true,HideResult=true); + Sources.Constant kDer(k=k*Td) if with_D + "Gain for derivative block" + annotation (Placement(transformation(extent={{-100,110},{-80,130}}))); + Sources.Constant TDer(k=Td/Nd) if with_D + "Time constant for approximation in derivative block" + annotation (Placement(transformation(extent={{-100,80},{-80,100}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant Dzero(final k=0) + if not with_D + "Zero input signal" + annotation (Evaluate=true,HideResult=true,Placement(transformation(extent={{-50,90}, + {-30,110}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter uS_revAct( + final k=revAct/r) "Set point multiplied by reverse action sign" + annotation (Placement(transformation(extent={{-200,30},{-180,50}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter uMea_revAct( + final k=revAct/r) "Set point multiplied by reverse action sign" + annotation (Placement(transformation(extent={{-200,-50},{-180,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Add addPD + "Outputs P and D gains added" + annotation (Placement(transformation(extent={{20,124},{40,144}}))); + IBPSA.Controls.OBC.CDL.Reals.Add addPID + "Outputs P, I and D gains added" + annotation (Placement(transformation(extent={{80,80},{100,100}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract antWinErr if with_I + "Error for anti-windup compensation" + annotation (Placement(transformation(extent={{160,50},{180,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter antWinGai(k=1/(k*Ni)) + if with_I "Gain for anti-windup compensation" + annotation (Placement(transformation(extent={{180,-30},{160,-10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant cheYMinMax( + final k=yMin < yMax) + "Check for values of yMin and yMax" + annotation (Placement(transformation(extent={{120,-160},{140,-140}}))); + IBPSA.Controls.OBC.CDL.Utilities.Assert assMesYMinMax( + message="LimPID: Limits must be yMin < yMax") + "Assertion on yMin and yMax" + annotation (Placement(transformation(extent={{160,-160},{180,-140}}))); + + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant Izero(final k=0) + if not with_I + "Zero input signal" + annotation (Placement(transformation(extent={{-50,20},{-30,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant con(final k=0) + if with_I + "Constant zero" + annotation (Placement(transformation(extent={{-100,-50},{-80,-30}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant con1(final k=false) + if with_I + "Constant false" + annotation (Placement(transformation(extent={{-100,-90},{-80,-70}}))); + +equation + connect(u_s,uS_revAct.u) + annotation (Line(points={{-240,0},{-210,0},{-210,40},{-202,40}},color={0,0,127})); + connect(u_m,uMea_revAct.u) + annotation (Line(points={{0,-220},{0,-160},{-210,-160},{-210,-40},{-202,-40}},color={0,0,127})); + connect(D.u,errD.y) + annotation (Line(points={{-52,70},{-118,70}}, + color={0,0,127})); + connect(errI1.u1,uS_revAct.y) + annotation (Line(points={{-142,12},{-170,12},{-170,40},{-178,40}}, + color={0,0,127})); + connect(addPID.u1,addPD.y) + annotation (Line(points={{78,96},{50,96},{50,134},{42,134}},color={0,0,127})); + connect(lim.y,y) + annotation (Line(points={{142,90},{200,90},{200,0},{240,0}},color={0,0,127})); + connect(antWinErr.y,antWinGai.u) + annotation (Line(points={{182,60},{190,60},{190,-20},{182,-20}},color={0,0,127})); + connect(addPD.u2,Dzero.y) + annotation (Line(points={{18,128},{-10,128},{-10,100},{-28,100}},color={0,0,127})); + connect(D.y,addPD.u2) + annotation (Line(points={{-28,70},{-10,70},{-10,128},{18,128}},color={0,0,127})); + connect(addPID.u2,I.y) + annotation (Line(points={{78,84},{60,84},{60,0},{-28,0}},color={0,0,127})); + connect(antWinErr.u2,lim.y) + annotation (Line(points={{158,54},{150,54},{150,90},{142,90}}, color={0,0,127})); + connect(I.u,errI2.y) + annotation (Line(points={{-52,0},{-78,0}},color={0,0,127})); + connect(errI1.y,errI2.u1) + annotation (Line(points={{-118,6},{-102,6}}, + color={0,0,127})); + connect(cheYMinMax.y,assMesYMinMax.u) + annotation (Line(points={{142,-150},{158,-150}},color={255,0,255})); + connect(Izero.y,addPID.u2) + annotation (Line(points={{-28,30},{60,30},{60,84},{78,84}}, + color={0,0,127})); + connect(con.y,I.y_reset_in) + annotation (Line(points={{-78,-40},{-60,-40},{-60,-8},{-52,-8}},color={0,0,127})); + connect(con1.y,I.trigger) + annotation (Line(points={{-78,-80},{-40,-80},{-40,-12}},color={255,0,255})); + connect(uS_revAct.y,errP.u1) + annotation (Line(points={{-178,40},{-170,40},{-170,146},{-142,146}},color={0,0,127})); + connect(errD.u1,uS_revAct.y) + annotation (Line(points={{-142,76},{-170,76},{-170,40},{-178,40}},color={0,0,127})); + connect(addPD.u1, P.y) + annotation (Line(points={{18,140},{-28,140}}, color={0,0,127})); + connect(P.u, errP.y) + annotation (Line(points={{-52,140},{-118,140}},color={0,0,127})); + connect(addPID.y, lim.u) + annotation (Line(points={{102,90},{118,90}},color={0,0,127})); + connect(addPID.y, antWinErr.u1) annotation (Line(points={{102,90},{114,90},{ + 114,66},{158,66}}, + color={0,0,127})); + connect(u_s, controlError.u1) annotation (Line(points={{-240,0},{-202,0}}, + color={0,0,127})); + connect(u_m, controlError.u2) annotation (Line(points={{0,-220},{0,-160},{ + -210,-160},{-210,-12},{-202,-12}}, + color={0,0,127})); + connect(uMea_revAct.y, errP.u2) annotation (Line(points={{-178,-40},{-150,-40}, + {-150,134},{-142,134}}, color={0,0,127})); + connect(uMea_revAct.y, errD.u2) annotation (Line(points={{-178,-40},{-150,-40}, + {-150,64},{-142,64}}, color={0,0,127})); + connect(uMea_revAct.y, errI1.u2) annotation (Line(points={{-178,-40},{-150, + -40},{-150,0},{-142,0}}, color={0,0,127})); + connect(antWinGai.y, errI2.u2) annotation (Line(points={{158,-20},{-110,-20}, + {-110,-6},{-102,-6}},color={0,0,127})); + connect(kDer.y, D.k) annotation (Line(points={{-78,120},{-58,120},{-58,78},{ + -52,78}}, color={0,0,127})); + connect(TDer.y, D.T) annotation (Line(points={{-78,90},{-60,90},{-60,74},{-52, + 74}}, color={0,0,127})); + annotation ( + defaultComponentName="conPID", + Icon( + coordinateSystem( + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-6,-20},{66,-66}}, + lineColor={255,255,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + visible=(controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.P), + extent={{-32,-22},{68,-62}}, + textColor={0,0,0}, + textString="P", + fillPattern=FillPattern.Solid, + fillColor={175,175,175}), + Text( + visible=(controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PI), + extent={{-26,-22},{74,-62}}, + textColor={0,0,0}, + textString="PI", + fillPattern=FillPattern.Solid, + fillColor={175,175,175}), + Text( + visible=(controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PD), + extent={{-16,-22},{88,-62}}, + textColor={0,0,0}, + fillPattern=FillPattern.Solid, + fillColor={175,175,175}, + textString="P D"), + Text( + visible=(controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PID), + extent={{-14,-22},{86,-62}}, + textColor={0,0,0}, + textString="PID", + fillPattern=FillPattern.Solid, + fillColor={175,175,175}), + Polygon( + points={{-80,82},{-88,60},{-72,60},{-80,82}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,68},{-80,-100}}, + color={192,192,192}), + Line( + points={{-90,-80},{70,-80}}, + color={192,192,192}), + Polygon( + points={{74,-80},{52,-72},{52,-88},{74,-80}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-80,-80},{-80,-22}}, + color={0,0,0}), + Line( + points={{-80,-22},{6,56}}, + color={0,0,0}), + Line( + points={{6,56},{68,56}}, + color={0,0,0}), + Rectangle( + extent=DynamicSelect({{100,-100},{84,-100}},{{100,-100},{84,-100+(y-yMin)/(yMax-yMin)*200}}), + fillColor={175,175,175}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0})}), + Diagram( + coordinateSystem( + extent={{-220,-200},{220,200}}), graphics={Rectangle( + extent={{-56,180},{-24,-16}}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), Text( + extent={{-52,184},{-28,156}}, + pattern=LinePattern.None, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + textColor={0,0,0}, + textString="PID")}), + Documentation( + info=" +

+PID controller in the standard form +

+

+yu = k/r   (e(t) + 1 ⁄ Ti   ∫ e(τ) dτ + Td d⁄dt e(t)), +

+

+where +yu is the control signal before output limitation, +e(t) = us(t) - um(t) is the control error, +with us being the set point and um being +the measured quantity, +k is the gain, +Ti is the time constant of the integral term, +Td is the time constant of the derivative term, +and +r is a scaling factor, with default r=1. +The scaling factor should be set to the typical order of magnitude of the range of the error e. +For example, you may set r=100 to r=1000 +if the control input is a pressure of a heating water circulation pump in units of Pascal, or +leave r=1 if the control input is a room temperature. +

+

+Note that the units of k are the inverse of the units of the control error, +while the units of Ti and Td are seconds. +

+

+The actual control output is +

+

+y = min( ymax, max( ymin, y)), +

+

+where ymin and ymax are limits for the control signal. +

+

P, PI, PD, or PID action

+

+Through the parameter controllerType, the controller can be configured +as P, PI, PD or PID controller. The default configuration is PI. +

+

Reverse or direct action

+

+Through the parameter reverseActing, the controller can be configured to +be reverse or direct acting. +The above standard form is reverse acting, which is the default configuration. +For a reverse acting controller, for a constant set point, +an increase in measurement signal u_m decreases the control output signal y +(Montgomery and McDowall, 2008). +Thus, +

+ +

+If reverseAction=false, then the error e above is multiplied by -1. +

+

Anti-windup compensation

+

+The controller anti-windup compensation is as follows: +Instead of the above basic control law, the implementation is +

+

+yu = k   (e(t) ⁄ r + 1 ⁄ Ti   ∫ (-Δy + e(τ) ⁄ r) dτ + Td ⁄ r d⁄dt e(t)), +

+

+where the anti-windup compensation Δy is +

+

+Δy = (yu - y) ⁄ (k Ni), +

+

+where +Ni > 0 is the time constant for the anti-windup compensation. +To accelerate the anti-windup, decrease Ni. +

+

+Note that the anti-windup term (-Δy + e(τ) ⁄ r) shows that the range of +the typical control error r should be set to a reasonable value so that +

+

+e(τ) ⁄ r = (us(τ) - um(τ)) ⁄ r +

+

+has order of magnitude one, and hence the anti-windup compensation should work well. +

+

Reset of the controller output

+

+Note that this controller implements an integrator anti-windup. Therefore, +for most applications, the controller output does not need to be reset. +However, if the controller is used in conjuction with equipment that is being +switched on, better control performance may be achieved by resetting the controller +output when the equipment is switched on. This is in particular the case in situations +where the equipment control input should continuously increase as the equipment is +switched on, such as a light dimmer that may slowly increase the luminance, or +a variable speed drive of a motor that should continuously increase the speed. In +this case, the controller + +IBPSA.Controls.OBC.CDL.Reals.PIDWithReset +that can reset the output should be used. +

+

Approximation of the derivative term

+

+The derivative of the control error d ⁄ dt e(t) is approximated using +

+

+d⁄dt x(t) = (e(t)-x(t)) Nd ⁄ Td, +

+

+and +

+

+d⁄dt e(t) ≈ Nd (e(t)-x(t)), +

+

+where x(t) is an internal state. +

+

Guidance for tuning the control gains

+

+The parameters of the controller can be manually adjusted by performing +closed loop tests (= controller + plant connected +together) and using the following strategy: +

+
    +
  1. Set very large limits, e.g., set ymax = 1000. +
  2. +
  3. +Select a P-controller and manually enlarge the parameter k +(the total gain of the controller) until the closed-loop response +cannot be improved any more. +
  4. +
  5. +Select a PI-controller and manually adjust the parameters +k and Ti (the time constant of the integrator). +The first value of Ti can be selected such that it is in the +order of the time constant of the oscillations occurring with +the P-controller. If, e.g., oscillations in the order of 100 seconds +occur in the previous step, start with Ti=1/100 seconds. +
  6. +
  7. +If you want to make the reaction of the control loop faster +(but probably less robust against disturbances and measurement noise) +select a PID-controller and manually adjust parameters +k, Ti, Td (time constant of derivative block). +
  8. +
  9. +Set the limits yMax and yMin according to your specification. +
  10. +
  11. +Perform simulations such that the output of the PID controller +goes in its limits. Tune Ni (Ni Ti is the time constant of +the anti-windup compensation) such that the input to the limiter +block (= lim.u) goes quickly enough back to its limits. +If Ni is decreased, this happens faster. If Ni is very large, the +anti-windup compensation is not effective and the controller works bad. +
  12. +
+

References

+

+R. Montgomery and R. McDowall (2008). +\"Fundamentals of HVAC Control Systems.\" +American Society of Heating Refrigerating and Air-Conditioning Engineers Inc. Atlanta, GA. +

+", + revisions=" + +")); +end PID; diff --git a/IBPSA/Controls/OBC/CDL/Reals/PIDWithReset.mo b/IBPSA/Controls/OBC/CDL/Reals/PIDWithReset.mo new file mode 100644 index 0000000000..9c2f75b7c0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/PIDWithReset.mo @@ -0,0 +1,616 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block PIDWithReset + "P, PI, PD, and PID controller with output reset" + parameter IBPSA.Controls.OBC.CDL.Types.SimpleController controllerType = + IBPSA.Controls.OBC.CDL.Types.SimpleController.PI + "Type of controller"; + parameter Real k(min=100*Constants.eps)=1 + "Gain of controller" + annotation (Dialog(group="Control gains")); + parameter Real Ti( + final quantity="Time", + final unit="s", + min=100*Constants.eps)=0.5 + "Time constant of integrator block" + annotation (Dialog(group="Control gains",enable=controllerType == CDL.Types.SimpleController.PI or controllerType == CDL.Types.SimpleController.PID)); + parameter Real Td( + final quantity="Time", + final unit="s", + min=100*Constants.eps)=0.1 + "Time constant of derivative block" + annotation (Dialog(group="Control gains",enable=controllerType == CDL.Types.SimpleController.PD or controllerType == CDL.Types.SimpleController.PID)); + parameter Real r(min=100*Constants.eps)=1 + "Typical range of control error, used for scaling the control error"; + parameter Real yMax=1 + "Upper limit of output" + annotation (Dialog(group="Limits")); + parameter Real yMin=0 + "Lower limit of output" + annotation (Dialog(group="Limits")); + parameter Real Ni( + min=100*Constants.eps)=0.9 + "Ni*Ti is time constant of anti-windup compensation" + annotation (Dialog(tab="Advanced",group="Integrator anti-windup",enable=controllerType == CDL.Types.SimpleController.PI or controllerType == CDL.Types.SimpleController.PID)); + parameter Real Nd( + min=100*Constants.eps)=10 + "The higher Nd, the more ideal the derivative block" + annotation (Dialog(tab="Advanced",group="Derivative block",enable=controllerType == CDL.Types.SimpleController.PD or controllerType == CDL.Types.SimpleController.PID)); + parameter Real xi_start=0 + "Initial value of integrator state" + annotation (Dialog(tab="Advanced",group="Initialization",enable=controllerType == CDL.Types.SimpleController.PI or controllerType == CDL.Types.SimpleController.PID)); + parameter Real yd_start=0 + "Initial value of derivative output" + annotation (Dialog(tab="Advanced",group="Initialization",enable=controllerType == CDL.Types.SimpleController.PD or controllerType == CDL.Types.SimpleController.PID)); + parameter Boolean reverseActing=true + "Set to true for reverse acting, or false for direct acting control action"; + parameter Real y_reset=xi_start + "Value to which the controller output is reset if the boolean trigger has a rising edge" + annotation (Dialog(enable=controllerType == CDL.Types.SimpleController.PI or controllerType == CDL.Types.SimpleController.PID,group="Integrator reset")); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u_s + "Connector of setpoint input signal" + annotation (Placement(transformation(extent={{-260,-20},{-220,20}}),iconTransformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u_m + "Connector of measurement input signal" + annotation (Placement(transformation(origin={0,-220},extent={{20,-20},{-20,20}},rotation=270),iconTransformation(extent={{20,-20},{-20,20}},rotation=270,origin={0,-120}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Connector of actuator output signal" + annotation (Placement(transformation(extent={{220,-20},{260,20}}),iconTransformation(extent={{100,-20},{140,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput trigger + "Resets the controller output when trigger becomes true" + annotation (Placement(transformation(extent={{-20,-20},{20,20}},rotation=90,origin={-160,-220}),iconTransformation(extent={{-20,-20},{20,20}},rotation=90,origin={-60,-120}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract controlError + "Control error (set point - measurement)" + annotation (Placement(transformation(extent={{-200,-16},{-180,4}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter P(final k=k) + "Proportional action" + annotation (Placement(transformation(extent={{-50,130},{-30,150}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset I( + final k=k/Ti, + final y_start=xi_start) if with_I + "Integral term" + annotation (Placement(transformation(extent={{-50,-10},{-30,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Derivative D( + final y_start=yd_start) if with_D + "Derivative term" + annotation (Placement(transformation(extent={{-50,60},{-30,80}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract errP + "P error" + annotation (Placement(transformation(extent={{-140,130},{-120,150}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract errD if with_D + "D error" + annotation (Placement(transformation(extent={{-140,60},{-120,80}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract errI1 if with_I + "I error (before anti-windup compensation)" + annotation (Placement(transformation(extent={{-140,-4},{-120,16}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract errI2 if with_I + "I error (after anti-windup compensation)" + annotation (Placement(transformation(extent={{-100,-10},{-80,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Limiter lim( + final uMax=yMax, + final uMin=yMin) + "Limiter" + annotation (Placement(transformation(extent={{120,80},{140,100}}))); +protected + final parameter Real revAct= if reverseActing then 1 else -1 + "Switch for sign for reverse or direct acting controller"; + final parameter Boolean with_I = + controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PI or + controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PID + "Boolean flag to enable integral action" + annotation (Evaluate=true,HideResult=true); + final parameter Boolean with_D = + controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PD or + controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PID + "Boolean flag to enable derivative action" + annotation (Evaluate=true,HideResult=true); + Sources.Constant kDer(k=k*Td) if with_D + "Gain for derivative block" + annotation (Placement(transformation(extent={{-100,110},{-80,130}}))); + Sources.Constant TDer(k=Td/Nd) if with_D + "Time constant for approximation in derivative block" + annotation (Placement(transformation(extent={{-100,80},{-80,100}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant Dzero( + final k=0) if not with_D + "Zero input signal" + annotation (Evaluate=true,HideResult=true,Placement(transformation(extent={{-50,90}, + {-30,110}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant Izero( + final k=0) if not with_I + "Zero input signal" + annotation (Placement(transformation(extent={{-50,20},{-30,40}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter uS_revAct( + final k=revAct/r) + "Set point multiplied by reverse action sign" + annotation (Placement(transformation(extent={{-200,30},{-180,50}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter uMea_revAct( + final k=revAct/r) + "Set point multiplied by reverse action sign" + annotation (Placement(transformation(extent={{-200,-50},{-180,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Add addPD + "Outputs P and D gains added" + annotation (Placement(transformation(extent={{20,124},{40,144}}))); + IBPSA.Controls.OBC.CDL.Reals.Add addPID + "Outputs P, I and D gains added" + annotation (Placement(transformation(extent={{80,80},{100,100}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract antWinErr if with_I + "Error for anti-windup compensation" + annotation (Placement(transformation(extent={{160,50},{180,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter antWinGai( + k=1/(k*Ni)) if with_I + "Gain for anti-windup compensation" + annotation (Placement(transformation(extent={{180,-30},{160,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant yResSig( + final k=y_reset) if with_I + "Signal for y_reset" + annotation (Placement(transformation(extent={{-140,-84},{-120,-64}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract addRes if with_I + "Adder for integrator reset" + annotation (Placement(transformation(extent={{-100,-90},{-80,-70}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant cheYMinMax( + final k=yMin < yMax) + "Check for values of yMin and yMax" + annotation (Placement(transformation(extent={{120,-160},{140,-140}}))); + IBPSA.Controls.OBC.CDL.Utilities.Assert assMesYMinMax( + message="LimPID: Limits must be yMin < yMax") + "Assertion on yMin and yMax" + annotation (Placement(transformation(extent={{160,-160},{180,-140}}))); + +equation + connect(trigger,I.trigger) + annotation (Line(points={{-160,-220},{-160,-140},{-40,-140},{-40,-12}},color={255,0,255})); + connect(u_s,uS_revAct.u) + annotation (Line(points={{-240,0},{-210,0},{-210,40},{-202,40}},color={0,0,127})); + connect(u_m,uMea_revAct.u) + annotation (Line(points={{0,-220},{0,-160},{-210,-160},{-210,-40},{-202,-40}},color={0,0,127})); + connect(errD.u2,uMea_revAct.y) + annotation (Line(points={{-142,64},{-150,64},{-150,-40},{-178,-40}}, color={0,0,127})); + connect(D.u,errD.y) + annotation (Line(points={{-52,70},{-118,70}}, color={0,0,127})); + connect(errI1.u1,uS_revAct.y) + annotation (Line(points={{-142,12},{-170,12},{-170,40},{-178,40}}, + color={0,0,127})); + connect(addPID.u1,addPD.y) + annotation (Line(points={{78,96},{50,96},{50,134},{42,134}},color={0,0,127})); + connect(lim.y,y) + annotation (Line(points={{142,90},{200,90},{200,0},{240,0}},color={0,0,127})); + connect(antWinErr.y,antWinGai.u) + annotation (Line(points={{182,60},{190,60},{190,-20},{182,-20}},color={0,0,127})); + connect(addPD.u2,Dzero.y) + annotation (Line(points={{18,128},{-10,128},{-10,100},{-28,100}}, + color={0,0,127})); + connect(D.y,addPD.u2) + annotation (Line(points={{-28,70},{-10,70},{-10,128},{18,128}},color={0,0,127})); + connect(addPID.u2,I.y) + annotation (Line(points={{78,84},{60,84},{60,0},{-28,0}},color={0,0,127})); + connect(addRes.y,I.y_reset_in) + annotation (Line(points={{-78,-80},{-60,-80},{-60,-8},{-52,-8}},color={0,0,127})); + connect(antWinErr.u2,lim.y) + annotation (Line(points={{158,54},{150,54},{150,90},{142,90}}, color={0,0,127})); + connect(I.u,errI2.y) + annotation (Line(points={{-52,0},{-78,0}},color={0,0,127})); + connect(errI1.y,errI2.u1) + annotation (Line(points={{-118,6},{-102,6}}, color={0,0,127})); + connect(controlError.u1,u_s) + annotation (Line(points={{-202,0},{-240,0}}, color={0,0,127})); + connect(cheYMinMax.y,assMesYMinMax.u) + annotation (Line(points={{142,-150},{158,-150}},color={255,0,255})); + connect(Izero.y,addPID.u2) + annotation (Line(points={{-28,30},{60,30},{60,84},{78,84}}, + color={0,0,127})); + connect(errP.u1,uS_revAct.y) + annotation (Line(points={{-142,146},{-170,146},{-170,40},{-178,40}},color={0,0,127})); + connect(errD.u1,uS_revAct.y) + annotation (Line(points={{-142,76},{-170,76},{-170,40},{-178,40}},color={0,0,127})); + connect(addPD.u1, P.y) + annotation (Line(points={{18,140},{-28,140}}, color={0,0,127})); + connect(P.u, errP.y) + annotation (Line(points={{-52,140},{-118,140}},color={0,0,127})); + connect(addPID.y, lim.u) + annotation (Line(points={{102,90},{118,90}},color={0,0,127})); + connect(addPID.y, antWinErr.u1) annotation (Line(points={{102,90},{114,90},{ + 114,66},{158,66}}, color={0,0,127})); + connect(addRes.u1, yResSig.y) + annotation (Line(points={{-102,-74},{-118,-74}}, color={0,0,127})); + connect(u_m, controlError.u2) annotation (Line(points={{0,-220},{0,-160},{ + -210,-160},{-210,-12},{-202,-12}}, + color={0,0,127})); + connect(uMea_revAct.y, errP.u2) annotation (Line(points={{-178,-40},{-150,-40}, + {-150,134},{-142,134}}, color={0,0,127})); + connect(uMea_revAct.y, errI1.u2) annotation (Line(points={{-178,-40},{-150, + -40},{-150,0},{-142,0}}, + color={0,0,127})); + connect(antWinGai.y, errI2.u2) annotation (Line(points={{158,-20},{-110,-20}, + {-110,-6},{-102,-6}}, + color={0,0,127})); + connect(addPD.y, addRes.u2) annotation (Line(points={{42,134},{50,134},{50, + -100},{-110,-100},{-110,-86},{-102,-86}}, + color={0,0,127})); + connect(kDer.y, D.k) annotation (Line(points={{-78,120},{-58,120},{-58,78},{ + -52,78}}, color={0,0,127})); + connect(TDer.y, D.T) annotation (Line(points={{-78,90},{-60,90},{-60,74},{-52, + 74}}, color={0,0,127})); + + annotation ( + defaultComponentName="conPID", + Icon( + coordinateSystem( + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-6,-20},{66,-66}}, + lineColor={255,255,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + visible=(controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.P), + extent={{-32,-22},{68,-62}}, + textColor={0,0,0}, + textString="P", + fillPattern=FillPattern.Solid, + fillColor={175,175,175}), + Text( + visible=(controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PI), + extent={{-26,-22},{74,-62}}, + textColor={0,0,0}, + textString="PI", + fillPattern=FillPattern.Solid, + fillColor={175,175,175}), + Text( + visible=(controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PD), + extent={{-16,-22},{88,-62}}, + textColor={0,0,0}, + fillPattern=FillPattern.Solid, + fillColor={175,175,175}, + textString="P D"), + Text( + visible=(controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PID), + extent={{-14,-22},{86,-62}}, + textColor={0,0,0}, + textString="PID", + fillPattern=FillPattern.Solid, + fillColor={175,175,175}), + Polygon( + points={{-80,82},{-88,60},{-72,60},{-80,82}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,68},{-80,-100}}, + color={192,192,192}), + Line( + points={{-90,-80},{70,-80}}, + color={192,192,192}), + Polygon( + points={{74,-80},{52,-72},{52,-88},{74,-80}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-80,-80},{-80,-22}}, + color={0,0,0}), + Line( + points={{-80,-22},{6,56}}, + color={0,0,0}), + Line( + points={{6,56},{68,56}}, + color={0,0,0}), + Rectangle( + extent=DynamicSelect({{100,-100},{84,-100}},{{100,-100},{84,-100+(y-yMin)/(yMax-yMin)*200}}), + fillColor={175,175,175}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0})}), + Diagram( + coordinateSystem( + extent={{-220,-200},{220,200}}), graphics={Rectangle( + extent={{-56,180},{-24,-16}}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), Text( + extent={{-52,184},{-28,156}}, + pattern=LinePattern.None, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + textColor={0,0,0}, + textString="PID")}), + Documentation( + info=" +

+PID controller in the standard form +

+

+yu = k/r   (e(t) + 1 ⁄ Ti   ∫ e(τ) dτ + Td d⁄dt e(t)), +

+

+with output reset, +where +yu is the control signal before output limitation, +e(t) = us(t) - um(t) is the control error, +with us being the set point and um being +the measured quantity, +k is the gain, +Ti is the time constant of the integral term, +Td is the time constant of the derivative term, +and +r is a scaling factor, with default r=1. +The scaling factor should be set to the typical order of magnitude of the range of the error e. +For example, you may set r=100 to r=1000 +if the control input is a pressure of a heating water circulation pump in units of Pascal, or +leave r=1 if the control input is a room temperature. +

+

+Note that the units of k are the inverse of the units of the control error, +while the units of Ti and Td are seconds. +

+

+The actual control output is +

+

+y = min( ymax, max( ymin, y)), +

+

+where ymin and ymax are limits for the control signal. +

+

P, PI, PD, or PID action

+

+Through the parameter controllerType, the controller can be configured +as P, PI, PD or PID controller. The default configuration is PI. +

+

Reverse or direct action

+

+Through the parameter reverseActing, the controller can be configured to +be reverse or direct acting. +The above standard form is reverse acting, which is the default configuration. +For a reverse acting controller, for a constant set point, +an increase in measurement signal u_m decreases the control output signal y +(Montgomery and McDowall, 2008). +Thus, +

+ +

+If reverseAction=false, then the error e above is multiplied by -1. +

+

Anti-windup compensation

+

+The controller anti-windup compensation is as follows: +Instead of the above basic control law, the implementation is +

+

+yu = k   (e(t) ⁄ r + 1 ⁄ Ti   ∫ (-Δy + e(τ) ⁄ r) dτ + Td ⁄ r d⁄dt e(t)), +

+

+where the anti-windup compensation Δy is +

+

+Δy = (yu - y) ⁄ (k Ni), +

+

+where +Ni > 0 is the time constant for the anti-windup compensation. +To accelerate the anti-windup, decrease Ni. +

+

+Note that the anti-windup term (-Δy + e(τ) ⁄ r) shows that the range of +the typical control error r should be set to a reasonable value so that +

+

+e(τ) ⁄ r = (us(τ) - um(τ)) ⁄ r +

+

+has order of magnitude one, and hence the anti-windup compensation should work well. +

+

Reset of the controller output

+

+Whenever the value of boolean input signal trigger changes from +false to true, the controller output is reset by setting +y to the value of the parameter y_reset. +

+

Approximation of the derivative term

+

+The derivative of the control error d ⁄ dt e(t) is approximated using +

+

+d⁄dt x(t) = (e(t)-x(t)) Nd ⁄ Td, +

+

+and +

+

+d⁄dt e(t) ≈ Nd (e(t)-x(t)), +

+

+where x(t) is an internal state. +

+

Guidance for tuning the control gains

+

+The parameters of the controller can be manually adjusted by performing +closed loop tests (= controller + plant connected +together) and using the following strategy: +

+
    +
  1. Set very large limits, e.g., set ymax = 1000. +
  2. +
  3. +Select a P-controller and manually enlarge the parameter k +(the total gain of the controller) until the closed-loop response +cannot be improved any more. +
  4. +
  5. +Select a PI-controller and manually adjust the parameters +k and Ti (the time constant of the integrator). +The first value of Ti can be selected such that it is in the +order of the time constant of the oscillations occurring with +the P-controller. If, e.g., oscillations in the order of 100 seconds +occur in the previous step, start with Ti=1/100 seconds. +
  6. +
  7. +If you want to make the reaction of the control loop faster +(but probably less robust against disturbances and measurement noise) +select a PID-controller and manually adjust parameters +k, Ti, Td (time constant of derivative block). +
  8. +
  9. +Set the limits yMax and yMin according to your specification. +
  10. +
  11. +Perform simulations such that the output of the PID controller +goes in its limits. Tune Ni (Ni Ti is the time constant of +the anti-windup compensation) such that the input to the limiter +block (= lim.u) goes quickly enough back to its limits. +If Ni is decreased, this happens faster. If Ni is very large, the +anti-windup compensation is not effective and the controller works bad. +
  12. +
+

References

+

+R. Montgomery and R. McDowall (2008). +\"Fundamentals of HVAC Control Systems.\" +American Society of Heating Refrigerating and Air-Conditioning Engineers Inc. Atlanta, GA. +

+", + revisions=" + +")); +end PIDWithReset; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Ramp.mo b/IBPSA/Controls/OBC/CDL/Reals/Ramp.mo new file mode 100644 index 0000000000..4476f73cb5 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Ramp.mo @@ -0,0 +1,142 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Ramp "Limit the changing rate of the input" + + parameter Real raisingSlewRate( + min=Constants.small, + unit="1/s") + "Maximum speed with which to increase the output"; + parameter Real fallingSlewRate( + max=-Constants.small, + unit="1/s")=-raisingSlewRate + "Maximum speed with which to decrease the output"; + parameter Real Td( + final quantity="Time", + final unit="s", + min=Constants.eps)=raisingSlewRate*0.001 + "Derivative time constant"; + + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input that is being rate limited" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput active + "Set to true to enable rate limiter" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}), + iconTransformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Rate limited output if active is true, else output is equal to input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + Real thr=(u-y)/Td + "Approximation to derivative between input and output"; + Real y_internal + "Internal variable to track the slew limited value"; + +initial equation + assert(raisingSlewRate > 0, + "raisingSlewRate must be larger than zero."); + assert(fallingSlewRate < 0, + "fallingSlewRate must be less than zero."); + y_internal = u; + +equation + when active then + reinit(y_internal, u); + end when; + der(y_internal)=smooth(1, + noEvent( + if thr < fallingSlewRate then + fallingSlewRate + else + if thr > raisingSlewRate then raisingSlewRate else thr)); + y = if active then y_internal else u; + +annotation (defaultComponentName="ram", + Icon(coordinateSystem(preserveAspectRatio=false), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-100,100},{100,140}}, + textString="%name"), + Line( + points={{-90,-80},{82,-80}}, + color={192,192,192}), + Polygon( + points={{90,-80},{68,-72},{68,-88},{90,-80}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,58},{-80,-90}}, + color={192,192,192}), + Polygon( + points={{-80,80},{-88,58},{-72,58},{-80,80}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line(points={{-80,-44},{-60,20},{-44,26},{40,8},{40,-4}}, + color={0,0,127}), + Line(points={{-80,-80},{-60,-80},{-60,-50},{40,-50},{40,-80},{58,-80}}, + color={254,0,254}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3))), + Line(points={{40,-4},{58,-28},{76,28}}, + color={0,0,127})}), + Diagram(coordinateSystem(preserveAspectRatio=false)), + Documentation(info=" +

+Block that limits the rate of change of the input u by a ramp +if the boolean input active is true, +otherwise the block outputs y = u. +

+

+This block computes a threshold for the rate of change between +input u and output y as +thr = (u-y)/Td, where Td > 0 is a parameter. +The output y is computed as follows: +

+

+A smaller time constant Td > 0 means a higher accuracy for the derivative approximation. +

+

+Note that when the input activate switches to false, +the output y can have a discontinuity. +

+

Implementation

+

+For the block to work with arbitrary inputs and in order to produce a differentiable output, +the input is numerically differentiated with derivative time constant Td. +

+", +revisions=" + +")); +end Ramp; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Round.mo b/IBPSA/Controls/OBC/CDL/Reals/Round.mo new file mode 100644 index 0000000000..740af8d4b8 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Round.mo @@ -0,0 +1,92 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Round + "Round real number to given digits" + parameter Integer n + "Number of digits to be round to"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input to be rounded" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Output with rounded input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Real fac=10^n + "Factor used for rounding"; + +equation + y=if (u > 0) then + floor( u*fac+0.5)/fac + else + ceil(u*fac-0.5)/fac; + annotation ( + defaultComponentName="rou", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,127}, + extent={{-56,4},{72,106}}, + textString="round( )"), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + textColor={0,0,127}, + extent={{-60,-88},{54,-34}}, + textString="%n"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs the input after rounding it to n digits. +

+

+For example, +

+ +

+Hence, the block outputs +

+
+    y = floor(u*(10^n) + 0.5)/(10^n)  for  u > 0,
+    y = ceil(u*(10^n) - 0.5)/(10^n)   for  u < 0.
+
+", + revisions=" + +")); +end Round; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sin.mo b/IBPSA/Controls/OBC/CDL/Reals/Sin.mo new file mode 100644 index 0000000000..0433e205be --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sin.mo @@ -0,0 +1,97 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Sin "Output the sine of the input" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u( + final unit="rad", + displayUnit="deg") + "Input for the sine function" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Sine of input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=Modelica.Math.sin(u); + annotation ( + defaultComponentName="sin", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,-80},{-80,68}}, + color={192,192,192}), + Line( + points={{-90,0},{68,0}}, + color={192,192,192}), + Line( + points={{-80,0},{-68.7,34.2},{-61.5,53.1},{-55.1,66.4},{-49.4,74.6},{-43.8,79.1},{-38.2,79.8},{-32.6,76.6},{-26.9,69.7},{-21.3,59.4},{-14.9,44.1},{-6.83,21.2},{10.1,-30.8},{17.3,-50.2},{23.7,-64.2},{29.3,-73.1},{35,-78.4},{40.6,-80},{46.2,-77.6},{51.9,-71.5},{57.5,-61.9},{63.9,-47.2},{72,-24.8},{80,0}}, + smooth=Smooth.Bezier), + Polygon( + points={{90,0},{68,8},{68,-8},{90,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{12,84},{84,36}}, + textColor={192,192,192}, + textString="sin"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs y = sin(u), +where +u is an input. +

+ +

+\"sin.png\" +

+ +", + revisions=" + +")); +end Sin; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sort.mo b/IBPSA/Controls/OBC/CDL/Reals/Sort.mo new file mode 100644 index 0000000000..2eb5357cb2 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sort.mo @@ -0,0 +1,102 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Sort + "Sort elements of input vector in ascending or descending order" + parameter Integer nin( + final min=0)=0 + "Number of input signals" + annotation (Dialog(connectorSizing=true),HideResult=true); + parameter Boolean ascending=true + "Set to true if ascending order, otherwise order is descending"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u[nin] + "Input to be sorted" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y[nin] + "Output with sorted input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput yIdx[nin] + "Indices of the sorted vector with respect to the original vector" + annotation (Placement(transformation(extent={{100,-80},{140,-40}}), + iconTransformation(extent={{100,-80},{140,-40}}))); +equation + (y, yIdx)=Modelica.Math.Vectors.sort(u, ascending=ascending); + + annotation ( + defaultComponentName="sort", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{-58,70},{54,-60}}, + textColor={0,0,89}, + textString="sort")}), + Documentation( + info=" +

+Block that sorts the elements of the input signal u. +If the parameter ascending = true, then the output signal y satisfies +yi <= yi+1 for all i ∈ {1, ..., n-1}. +Otherwise, it satisfies +yi >= yi+1 for all i ∈ {1, ..., n-1}. +The output signal yIdx contains the indices of the sorted elements, +with respect to the input vector u. +

+

Usage

+

+Note that this block shall only be used for input signals u that are +time sampled.
+Otherwise, in simulation, numerical noise from a nonlinear solver or from an +implicit time integration algorithm may cause the simulation to stall. +Numerical noise can be present if an input depends +on a state variable or a quantity that requires an iterative solution, +such as a temperature or a mass flow rate of an HVAC system.
+In real controllers, measurement noise may cause the output to change frequently. +

+

+This block may for example be used in a variable air volume flow +controller to access the position of the dampers that are most open. +

+", revisions=" + +")); +end Sort; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/CalendarTime.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/CalendarTime.mo new file mode 100644 index 0000000000..3916da50c9 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/CalendarTime.mo @@ -0,0 +1,183 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources; +model CalendarTime + "Computes the unix time stamp and calendar time from the simulation time" + parameter IBPSA.Controls.OBC.CDL.Types.ZeroTime zerTim + "Enumeration for choosing how reference time (time = 0) should be defined"; + parameter Integer yearRef( + min=firstYear, + max=lastYear)=2016 + "Year when time = 0, used if zerTim=Custom" + annotation (Dialog(enable=zerTim == IBPSA.Controls.OBC.CDL.Types.ZeroTime.Custom)); + parameter Real offset( + final quantity="Time", + final unit="s")=0 + "Offset that is added to 'time', may be used for computing time in different time zone" + annotation (Dialog(tab="Advanced")); + discrete IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput year + "Year" + annotation (Placement(transformation(extent={{100,-40},{120,-20}}),iconTransformation(extent={{100,-40},{120,-20}}))); + discrete IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput month + "Month of the year" + annotation (Placement(transformation(extent={{100,-10},{120,10}}),iconTransformation(extent={{100,-10},{120,10}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput day( + fixed=false) + "Day of the month" + annotation (Placement(transformation(extent={{100,20},{120,40}}),iconTransformation(extent={{100,20},{120,40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput hour( + fixed=false) + "Hour of the day" + annotation (Placement(transformation(extent={{100,50},{120,70}}),iconTransformation(extent={{100,50},{120,70}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput minute + "Minute of the hour" + annotation (Placement(transformation(extent={{100,80},{120,100}}),iconTransformation(extent={{100,80},{120,100}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput weekDay( + fixed=false) + "Integer output representing week day (monday = 1, sunday = 7)" + annotation (Placement(transformation(extent={{100,-70},{120,-50}}),iconTransformation(extent={{100,-70},{120,-50}}))); + +protected + final constant Integer firstYear=2010 + "First year that is supported, i.e. the first year in timeStampsNewYear[:]"; + final constant Integer lastYear=firstYear+21 + "Last year that is supported (actual building automation system need to support a larger range)"; + IBPSA.Utilities.Time.CalendarTime calTim( + final zerTim=zerTim, + final yearRef=yearRef, + final offset=offset) + "Calendar time" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + +equation + connect(calTim.minute,minute) + annotation (Line(points={{11,9},{55.5,9},{55.5,90},{110,90}},color={0,0,127})); + connect(calTim.hour,hour) + annotation (Line(points={{11,6.4},{60,6.4},{60,60},{110,60}},color={255,127,0})); + connect(calTim.day,day) + annotation (Line(points={{11,3.8},{64,3.8},{64,30},{110,30}},color={255,127,0})); + connect(calTim.month,month) + annotation (Line(points={{11,1.2},{80,1.2},{80,0},{110,0}},color={255,127,0})); + connect(calTim.year,year) + annotation (Line(points={{11,-1.4},{64,-1.4},{64,-30},{110,-30}},color={255,127,0})); + connect(calTim.weekDay,weekDay) + annotation (Line(points={{11,-4},{60,-4},{60,-60},{110,-60}},color={255,127,0})); + annotation ( + defaultComponentName="calTim", + Documentation( + info=" +

+Block that outputs minute, hour, day of the month, month, year and weekday. +

+

Assumption and limitations

+

+The implementation only supports date computations from year 2010 up to and including 2020. +Daylight saving and time zones are not supported. +

+

Typical use and important parameters

+

+The user must define which time and date correspond to time = 0 +using the model parameters zerTim, and, if +zerTim == CDL.Types.ZeroTime.Custom, +the parameter yearRef. +The user can choose from new year, midnight for a number of years: +2010 to 2020 and also 1970. +The latter corresponds to a unix stamp of 0. +Note that when choosing the reference time equal to 0 at 1970, +the actual simulation time must be within the 2010-2020 range. +For example, startTime = 1262304000 corresponds +to the simulation starting on the 1st of January 2010 local time +when setting zerTim = CDL.Types.ZeroTime.UnixTimeStamp. +This is within the 2010-2020 range and is therefore allowed. +

+", + revisions=" + +"), + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={223,211,169}, + lineThickness=5.0, + borderPattern=BorderPattern.Raised, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Ellipse( + extent={{-94,94},{16,-16}}, + lineColor={160,160,164}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Text( + extent={{-34,92},{96,82}}, + textColor={28,108,200}, + horizontalAlignment=TextAlignment.Right, + textString="Minute"), + Text( + extent={{-28,64},{96,54}}, + textColor={28,108,200}, + horizontalAlignment=TextAlignment.Right, + textString="Hour"), + Text( + extent={{-38,36},{96,24}}, + textColor={28,108,200}, + horizontalAlignment=TextAlignment.Right, + textString="Day"), + Text( + extent={{-50,4},{96,-6}}, + textColor={28,108,200}, + horizontalAlignment=TextAlignment.Right, + textString="Month"), + Text( + extent={{-70,-24},{96,-34}}, + textColor={28,108,200}, + horizontalAlignment=TextAlignment.Right, + textString="Year"), + Text( + extent={{-68,-54},{96,-66}}, + textColor={28,108,200}, + horizontalAlignment=TextAlignment.Right, + textString="Weekday"), + Line( + points={{-40,38},{-64,62}}, + thickness=0.5), + Line( + points={{-40,38},{-14,38}}, + thickness=0.5)})); +end CalendarTime; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/CivilTime.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/CivilTime.mo new file mode 100644 index 0000000000..f442b718e0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/CivilTime.mo @@ -0,0 +1,137 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources; +block CivilTime "Civil time" + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y(final unit="s") + "Civil time" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=time; + annotation ( + defaultComponentName="civTim", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}, + grid={1,1}), + graphics={ + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Ellipse( + extent={{-80,80},{80,-80}}, + lineColor={160,160,164}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid), + Line( + points={{0,80},{0,60}}, + color={160,160,164}), + Line( + points={{80,0},{60,0}}, + color={160,160,164}), + Line( + points={{0,-80},{0,-60}}, + color={160,160,164}), + Line( + points={{-80,0},{-60,0}}, + color={160,160,164}), + Line( + points={{37,70},{26,50}}, + color={160,160,164}), + Line( + points={{70,38},{49,26}}, + color={160,160,164}), + Line( + points={{71,-37},{52,-27}}, + color={160,160,164}), + Line( + points={{39,-70},{29,-51}}, + color={160,160,164}), + Line( + points={{-39,-70},{-29,-52}}, + color={160,160,164}), + Line( + points={{-71,-37},{-50,-26}}, + color={160,160,164}), + Line( + points={{-71,37},{-54,28}}, + color={160,160,164}), + Line( + points={{-38,70},{-28,51}}, + color={160,160,164}), + Line( + points={{0,0},{-50,50}}, + thickness=0.5), + Line( + points={{0,0},{40,0}}, + thickness=0.5), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

Block that outputs the civil time. +

+

Implementation

+

+This block outputs the time of the model. +In the case of a building automation system, the +building automation system synchronizes time, and hence +need to assign a value for the output of this block. +Daylight saving time shall not be taken into account, +e.g, the block always outputs civil time rather than +daylight savings time. +

+

+If a simulation starts +at t=-1, then this block outputs first t=-1, +and its output is advanced at the same rate as the simulation time. +

+ +

+Note that the block has not been included in the ASHRAE Standard 231p. +However, in the future versions of the ASHRAE 231 Standard, the block should be added. +

+", + revisions=" + +")); +end CivilTime; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Constant.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Constant.mo new file mode 100644 index 0000000000..1d7ff89569 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Constant.mo @@ -0,0 +1,80 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources; +block Constant + "Output constant signal of type Real" + parameter Real k + "Constant output value"; + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Constant output signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=k; + annotation ( + defaultComponentName="con", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Line( + points={{-80,68},{-80,-80}}, + color={192,192,192}), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-90,-70},{82,-70}}, + color={192,192,192}), + Polygon( + points={{90,-70},{68,-62},{68,-78},{90,-70}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,0},{80,0}}), + Text( + extent={{-150,-150},{150,-110}}, + textColor={0,0,0}, + textString="k=%k"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs a constant signal y = k, +where k is a real-valued parameter. +

+

+\"Constant.png\" +

+", + revisions=" + +")); +end Constant; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Pulse.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Pulse.mo new file mode 100644 index 0000000000..b6243f85be --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Pulse.mo @@ -0,0 +1,164 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources; +block Pulse + "Generate pulse signal of type Real" + parameter Real amplitude=1.0 + "Amplitude of pulse"; + parameter Real width( + final min=Constants.small, + final max=1, + final unit="1")=0.5 + "Width of pulse in fraction of period"; + parameter Real period( + final quantity="Time", + final unit="s", + final min=Constants.small) + "Time for one period"; + parameter Real shift( + final quantity="Time", + final unit="s")=0 + "Shift time for output"; + parameter Real offset=0.0 + "Offset of output signals"; + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Pulse output signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + Logical.Sources.Pulse booPul( + final width=width, + final period=period, + final shift=shift) + "Boolean pulse" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + Conversions.BooleanToReal booToRea( + final realTrue=offset+amplitude, + final realFalse=offset) + "Boolean to real conversion" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + +equation + connect(booPul.y,booToRea.u) + annotation (Line(points={{-18,0},{18,0}},color={255,0,255})); + connect(y,booToRea.y) + annotation (Line(points={{120,0},{42,0}},color={0,0,127})); + annotation ( + defaultComponentName="pul", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,68},{-80,-80}}, + color={192,192,192}), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-90,-70},{82,-70}}, + color={192,192,192}), + Text( + extent={{-147,-152},{153,-112}}, + textColor={0,0,0}, + textString="period=%period"), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3))), + Polygon( + points={{-80,52},{-68,56},{-68,48},{-80,52}}, + fillColor={135,135,135}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0}), + Line( + points={{-80,52},{-4,52}}, + color={135,135,135}), + Text( + extent={{-66,80},{-8,56}}, + textColor={135,135,135}, + textString="%period"), + Polygon( + points={{-2,52},{-14,56},{-14,48},{-2,52}}, + fillColor={135,135,135}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0}), + Line( + points={{40,34},{72,34}}, + color={135,135,135}), + Polygon( + points={{74,34},{62,38},{62,30},{74,34}}, + fillColor={135,135,135}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0}), + Text( + extent={{38,64},{96,40}}, + textColor={135,135,135}, + textString="%shift"), + Line( + points={{79,-70},{40,-70},{40,44},{-1,44},{-1,-70},{-41,-70},{-41,44},{-80,44}}), + Polygon( + points={{90,-70},{68,-62},{68,-78},{90,-70}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid)}), + Documentation( + info=" +

+Block that outputs a pulse signal as shown below. +

+

+\"Pulse.png\" +

+

+The pulse signal is generated an infinite number of times, and aligned with time=shift. +

+", + revisions=" + +")); +end Pulse; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Ramp.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Ramp.mo new file mode 100644 index 0000000000..d112e1c718 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Ramp.mo @@ -0,0 +1,106 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources; +block Ramp + "Generate ramp signal" + parameter Real height=1 + "Height of ramps"; + parameter Real duration( + final quantity="Time", + final unit="s", + min=Constants.small) + "Duration of ramp (= 0.0 gives a Step)"; + parameter Real offset=0 + "Offset of output signal"; + parameter Real startTime( + final quantity="Time", + final unit="s")=0 + "Output = offset for time < startTime"; + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Ramp output signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=offset+( + if time < startTime then + 0 + else + if time < (startTime+duration) then + (time-startTime)*height/duration + else + height); + annotation ( + defaultComponentName="ram", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,68},{-80,-80}}, + color={192,192,192}), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-90,-70},{82,-70}}, + color={192,192,192}), + Polygon( + points={{90,-70},{68,-62},{68,-78},{90,-70}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,-70},{-40,-70},{31,38}}), + Text( + extent={{-150,-150},{150,-110}}, + textColor={0,0,0}, + textString="duration=%duration"), + Line( + points={{31,38},{86,38}}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+The Real output y is a ramp signal: +

+ +

+\"Ramp.png\" +

+", + revisions=" + +")); +end Ramp; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Sin.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Sin.mo new file mode 100644 index 0000000000..e1bd26397d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Sin.mo @@ -0,0 +1,120 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources; +block Sin + "Generate sine signal" + parameter Real amplitude=1 + "Amplitude of sine wave"; + parameter Real freqHz( + final quantity="Frequency", + final unit="Hz", + start=1) + "Frequency of sine wave"; + parameter Real phase( + final quantity="Angle", + final unit="rad", + displayUnit="deg")=0 + "Phase of sine wave"; + parameter Real offset=0 + "Offset of output signal"; + parameter Real startTime( + final quantity="Time", + final unit="s")=0 + "Output = offset for time < startTime"; + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Sine output signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=offset+( + if time < startTime then + 0 + else + amplitude*Modelica.Math.sin( + 2*IBPSA.Controls.OBC.CDL.Constants.pi*freqHz*(time-startTime)+phase)); + annotation ( + defaultComponentName="sin", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Text( + textColor={0,0,255}, + extent={{-148,104},{152,144}}, + textString="%name"), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,68},{-80,-80}}, + color={192,192,192}), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-90,0},{68,0}}, + color={192,192,192}), + Polygon( + points={{90,0},{68,8},{68,-8},{90,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,0},{-68.7,34.2},{-61.5,53.1},{-55.1,66.4},{-49.4,74.6},{-43.8,79.1},{-38.2,79.8},{-32.6,76.6},{-26.9,69.7},{-21.3,59.4},{-14.9,44.1},{-6.83,21.2},{10.1,-30.8},{17.3,-50.2},{23.7,-64.2},{29.3,-73.1},{35,-78.4},{40.6,-80},{46.2,-77.6},{51.9,-71.5},{57.5,-61.9},{63.9,-47.2},{72,-24.8},{80,0}}, + smooth=Smooth.Bezier), + Text( + extent={{-147,-152},{153,-112}}, + textColor={0,0,0}, + textString="freqHz=%freqHz"), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs a sine. +

+

+\"Sin.png\"/ +

+", + revisions=" + +")); +end Sin; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/TimeTable.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/TimeTable.mo new file mode 100644 index 0000000000..a508f401e7 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/TimeTable.mo @@ -0,0 +1,328 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources; +block TimeTable + "Table look-up with respect to time and linear or periodic extrapolation" + parameter Real table[:,:] + "Table matrix (time = first column is time in seconds, unless timeScale <> 1)"; + parameter CDL.Types.Smoothness smoothness=CDL.Types.Smoothness.LinearSegments + "Smoothness of table interpolation"; + parameter CDL.Types.Extrapolation extrapolation=CDL.Types.Extrapolation.Periodic + "Extrapolation of data outside the definition range"; + parameter Real offset[:]=fill(0, nout) + "Offsets of output signals as a vector with length equal to number of table matrix columns less one"; + parameter Real timeScale( + final unit="1")=1 + "Time scale of first table column. Set to 3600 if time in table is in hours"; + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y[nout] + "Output with tabulated values" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + final parameter Integer nout=size(table,2)-1 + "Dimension of output vector"; + parameter Real t0( + final quantity="Time", + final unit="s", + fixed=false) + "First sample time instant"; + parameter Real timeRange( + final quantity="Time", + final unit="s")=timeScale*(table[end,1]-table[1,1]) + "Range of time in table"; + final parameter Integer nT=size( + table, + 1) + "Number of time stamps"; + // CDL uses different enumerations for smoothness and for extrapolation + // than the Modelica Standard Library. Hence, we cast the CDL + // enumeration to the MSL enumaration. + Modelica.Blocks.Sources.CombiTimeTable tab( + final tableOnFile=false, + final table=table, + final columns=2:size( + tab.table, + 2), + final smoothness= + if smoothness == CDL.Types.Smoothness.LinearSegments then + Modelica.Blocks.Types.Smoothness.LinearSegments + else + Modelica.Blocks.Types.Smoothness.ConstantSegments, + final extrapolation= + if extrapolation == CDL.Types.Extrapolation.HoldLastPoint then + Modelica.Blocks.Types.Extrapolation.HoldLastPoint + elseif extrapolation == CDL.Types.Extrapolation.LastTwoPoints then + Modelica.Blocks.Types.Extrapolation.LastTwoPoints + else + Modelica.Blocks.Types.Extrapolation.Periodic, + final offset=offset, + final startTime= + if (extrapolation == Types.Extrapolation.Periodic) then t0 else 0, + final timeScale=timeScale) + "Time table" + annotation (Placement(transformation(extent={{-12,-10},{8,10}}))); + +initial equation + // If the table has only one time stamp, then timeRange is zero. + // We can then set t0 to be equal to the start of the simulation. + t0= + if nT == 1 then + time + else + IBPSA.Utilities.Math.Functions.round( + x=integer(time/timeRange)*timeRange, + n=6); + +equation + connect(tab.y,y) + annotation (Line(points={{9,0},{120,0}},color={0,0,127})); + annotation ( + defaultComponentName="timTab", + Documentation( + info=" +

+Block that outputs values of a time table. +

+

+The block takes as a parameter a time table of a format: +

+
+table = [ 0*3600, 0;
+          6*3600, 0;
+          6*3600, 1;
+         18*3600, 1;
+         18*3600, 0;
+         24*3600, 0];
+
+

+where the first column is time in seconds, and the remaining +column(s) are the table values. +Any number of columns can be specified. +The parameter smoothness determines how the table values +are interpolated. The following settings are allowed: +

+ + + + + + + + + + + +
smoothnessDescription
CDL.Types.LinearSegmentsTable points are linearly interpolated.
CDL.Types.ConstantSegmentsTable points are not interpolated, + but the previous tabulated value is returned.
+ +

+The parameter extrapolation determines how the table +values are extrapolated. The following settings are allowed: +

+ + + + + + + + + + + + + + + +
extrapolationDescription
CDL.Types.HoldLastPointHold the first or last table point outside of the table scope.
CDL.Types.LastTwoPointsExtrapolate by using the derivative at the first or last table points + outside of the table scope.
CDL.Types.PeriodicRepeat the table scope periodically with periodicity + (max(table[:, 1]-min(table[:, 1]))*timeScale).
+ +

+If extrapolation === CDL.Types.Periodic, then the above example +would give a schedule with periodicity of one day. The simulation can start at any time, +whether it is a multiple of a day or not, and positive or negative. +

+ +

+The value of the parameter offset is added to the tabulated +values. +The parameters timeScale is used to scale the first column +of the table. For example, set timeScale = 3600 if the first +column is in hour (because in CDL, the time unit is seconds). +

+

+If the table has only one row, no interpolation is performed and +the table values of this row are just returned. +

+

+An interval boundary is defined by two identical time values +following each other. For example +

+
+   table = [0, 0;
+            1, 0;
+            1, 1;
+            2, 3;
+            3, 5;
+            3, 2;
+            4, 4;
+            5, 5];
+
+

+defines three intervalls: 0..1, 1..3, 3..5. Within an interval the defined +interpolation method is applied (so the table outputs within an interval are +continuous if smoothness = CDL.Types.LinearSegments). +

+

+Example: +

+
+  table = [0, 0;
+           1, 0;
+           1, 1;
+           2, 4;
+           3, 9;
+           4, 16];
+  smoothness = CDL.Types.LinearSegments;
+
+If, e.g., time = 1.0, the output y =  0.0 (before event), 1.0 (after event)
+    e.g., time = 1.5, the output y =  2.5,
+    e.g., time = 2.0, the output y =  4.0,
+    e.g., time = 5.0, the output y = 23.0 (i.e., extrapolation via last 2 points).
+
+

Implementation

+

+For simulation, +no time events are generated within an interval +in order that also intervals with many points do not reduce the simulation efficiency. +If the table points are largely changing, it is adviseable to force +time events by duplicating every time point (especially, if the model in which +the table is present allows the variable step integrator to make large +integrator steps). For example, if a sawtooth signal is defined with the table, +it is more reliable to define the table as: +

+
+   table = [0, 0;
+            1, 2;
+            1, 2;
+            2, 0;
+            2, 0;
+            3, 2;
+            3, 2];
+
+

+instead of +

+
+   table = [0, 0;
+            1, 2;
+            2, 0;
+            3, 2];
+
+

+because time events are then generated at every time point. +

+

+Building automation systems typically have discrete time semantics +with fixed sampling times, and no notion of superdense time (in which +a tabulated value can change without advancing time). +Therefore, to implement a table with two equal time stamps, +a CDL translator may parameterize +a table in the building automation in such a way that the step change happens +at the time indicated in the first column, whereas previous sampling times +output the tabulated value at the last transition. For example, +

+
+table = [0, 0;
+         1, 0;
+         1, 1];
+smoothness = CDL.Types.ConstantSegments;
+
+

+may be converted such that a building automation system with a sampling time +of 0.5 seconds outputs +

+
+  t = 0, 0.5, 1, ...
+  y = 0, 0  , 1, ...
+
+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100.0,-100.0},{100.0,100.0}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Polygon( + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid, + points={{-80.0,90.0},{-88.0,68.0},{-72.0,68.0},{-80.0,90.0}}), + Line( + points={{-80.0,68.0},{-80.0,-80.0}}, + color={192,192,192}), + Line( + points={{-90.0,-70.0},{82.0,-70.0}}, + color={192,192,192}), + Polygon( + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid, + points={{90.0,-70.0},{68.0,-62.0},{68.0,-78.0},{90.0,-70.0}}), + Rectangle( + lineColor={255,255,255}, + fillColor={255,215,136}, + fillPattern=FillPattern.Solid, + extent={{-48.0,-50.0},{2.0,70.0}}), + Line( + points={{-48.0,-50.0},{-48.0,70.0},{52.0,70.0},{52.0,-50.0},{-48.0,-50.0},{-48.0,-20.0},{52.0,-20.0},{52.0,10.0},{-48.0,10.0},{-48.0,40.0},{52.0,40.0},{52.0,70.0},{2.0,70.0},{2.0,-51.0}})})); +end TimeTable; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonths.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonths.mo new file mode 100644 index 0000000000..cfb80c267a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonths.mo @@ -0,0 +1,48 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources.Validation; +model CalendarTimeMonths + "Validation model for the calendar time model" + IBPSA.Controls.OBC.CDL.Reals.Sources.CalendarTime calTim( + zerTim=IBPSA.Controls.OBC.CDL.Types.ZeroTime.NY2017) + "Computes date and time assuming time=0 corresponds to new year 2017" + annotation (Placement(transformation(extent={{-20,-10},{0,10}}))); + annotation ( + experiment( + StartTime=172800, + Tolerance=1e-6, + StopTime=345600), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonths.mos" "Simulate and plot"), + Documentation( + info=" +

+This model validates the use of the + +IBPSA.Controls.OBC.CDL.Reals.Sources.CalendarTime +block for a period of a couple of months. +This shorter simulation time has been selected to +store the reference results that are used in the regression tests +at a resulation that makes sense for the minute and hour outputs. +

+", + revisions=" + +"), + Icon( + 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}})})); +end CalendarTimeMonths; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsMinus.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsMinus.mo new file mode 100644 index 0000000000..29b563f55f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsMinus.mo @@ -0,0 +1,32 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources.Validation; +model CalendarTimeMonthsMinus + "Validation model for the calendar time model with start time slightly below the full hour" + extends IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.CalendarTimeMonths; + annotation ( + experiment( + StartTime=172799, + Tolerance=1e-6, + StopTime=345599), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsMinus.mos" "Simulate and plot"), + Documentation( + info=" +

+This model validates the use of the + +IBPSA.Controls.OBC.CDL.Reals.Sources.CalendarTime. +It is identical to + +IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.CalendarTimeMonths +except that the start and end time are different. +

+", + revisions=" + +")); +end CalendarTimeMonthsMinus; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsPlus.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsPlus.mo new file mode 100644 index 0000000000..e3501a96af --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsPlus.mo @@ -0,0 +1,32 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources.Validation; +model CalendarTimeMonthsPlus + "Validation model for the calendar time model with start time slightly higher than the full hour" + extends IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.CalendarTimeMonths; + annotation ( + experiment( + StartTime=172801, + Tolerance=1e-6, + StopTime=345601), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsPlus.mos" "Simulate and plot"), + Documentation( + info=" +

+This model validates the use of the + +IBPSA.Controls.OBC.CDL.Reals.Sources.CalendarTime. +It is identical to + +IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.CalendarTimeMonths +except that the start and end time are different. +

+", + revisions=" + +")); +end CalendarTimeMonthsPlus; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/CivilTime.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/CivilTime.mo new file mode 100644 index 0000000000..a37495396b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/CivilTime.mo @@ -0,0 +1,41 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources.Validation; +model CivilTime "Test model for the CivilTime block" + IBPSA.Controls.OBC.CDL.Reals.Sources.CivilTime civTim + "Civil time" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + annotation ( + experiment( + StartTime=-1, + Tolerance=1e-6, + StopTime=1), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CivilTime.mos" "Simulate and plot"), + Documentation( + info=" +

+This model tests the implementation of the block that outputs the +civil time. +

+", + revisions=" + +"), + Icon( + 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}})})); +end CivilTime; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/Constant.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/Constant.mo new file mode 100644 index 0000000000..ab692e8100 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/Constant.mo @@ -0,0 +1,44 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources.Validation; +model Constant + "Validate the Constant block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant con( + k=2.5) + "Block output real constant value" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Constant.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Sources.Constant. +

+ +", + revisions=" + +"), + Icon( + 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}})})); +end Constant; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/Pulse.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/Pulse.mo new file mode 100644 index 0000000000..45e165d61f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/Pulse.mo @@ -0,0 +1,47 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources.Validation; +model Pulse + "Validation model for the Pulse block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pulse( + amplitude=2.0, + width=0.5, + offset=0.2, + period=1) + "Block that generates pulse signal of type Real" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Pulse.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse. +

+ +", + revisions=" + +"), + Icon( + 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}})})); +end Pulse; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/Ramp.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/Ramp.mo new file mode 100644 index 0000000000..440bd89ff0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/Ramp.mo @@ -0,0 +1,46 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources.Validation; +model Ramp + "Validation model for the Ramp" + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram( + height=2, + duration=3, + offset=0.5, + startTime=1.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Ramp.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Ramp; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/Sin.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/Sin.mo new file mode 100644 index 0000000000..310b6032cb --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/Sin.mo @@ -0,0 +1,47 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources.Validation; +model Sin + "Validation model for Sin" + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin sin( + amplitude=5, + freqHz=1/60, + phase=0, + offset=10, + startTime=10) + "Sine source block" + annotation (Placement(transformation(extent={{-12,-10},{8,10}}))); + annotation ( + experiment( + StopTime=130.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Sin.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Sin; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/TimeTable.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/TimeTable.mo new file mode 100644 index 0000000000..a1a2e1e337 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/TimeTable.mo @@ -0,0 +1,123 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources.Validation; +model TimeTable + "Validation model for TimeTable block" + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLin( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.LinearSegments, + table=[ + 0,0; + 6*3600,1; + 18*3600,0.5; + 24*3600,0]) + "Time table with smoothness method of linear segments" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLinHol( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.LinearSegments, + extrapolation=IBPSA.Controls.OBC.CDL.Types.Extrapolation.HoldLastPoint, + table=[ + 0,0; + 6*3600,1; + 18*3600,0.5; + 24*3600,0]) + "Time table with smoothness method of linear segments, hold first and last value" + annotation (Placement(transformation(extent={{-10,10},{10,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLinDer( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.LinearSegments, + extrapolation=IBPSA.Controls.OBC.CDL.Types.Extrapolation.LastTwoPoints, + table=[ + 0,0; + 6*3600,1; + 18*3600,0.5; + 24*3600,0]) + "Time table with smoothness method of linear segments, extrapolate with der" + annotation (Placement(transformation(extent={{50,10},{70,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabCon( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.ConstantSegments, + table=[ + 0,0; + 6*3600,1; + 18*3600,0.5; + 24*3600,0]) + "Time table with smoothness method of constant segments" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLinCon( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.LinearSegments, + table=[ + 0,0; + 6*3600,0; + 6*3600,1; + 18*3600,0.5; + 24*3600,0]) + "Time table with smoothness method of linear segments" + annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + annotation ( + experiment( + Tolerance=1e-6, + StopTime=172800), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/TimeTable.mos" "Simulate and plot"), + Documentation( + info=" +

+This model validates the TimeTable block. It takes as a parameter a time table of +the format +

+
+table = [ 0*3600, 0;
+          6*3600, 1;
+         18*3600, 0.5;
+         24*3600, 0];
+
+

+The block timTabLin applies smoothness method of linear segments +between table points, periodically repeat the table scope. +

+

+The block timTabLinHol applies smoothness method of linear segments +between table points, hold the last table points when it becomes outside of +table scope. +

+

+The block timTabLinDer applies smoothness method of linear segments +between table points, extrapolate by using the derivative at the last table +points to find points outside the table scope. +

+

+The block timTabCon applies smoothness method of constant segments +between table points, periodically repeat the table scope. +

+

+The block timTabLinCon applies smoothness method of linear segments +between table points, periodically repeat the table scope. Table points is +different so to ensure constant zero during time range of +(0*3600, 6*36000). +

+
+table = [ 0*3600, 0;
+          6*3600, 0;
+          6*3600, 1;
+         18*3600, 0.5;
+         24*3600, 0];
+
+", + revisions=" + +"), + Icon( + 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}})})); +end TimeTable; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/TimeTableNegativeStartTime.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/TimeTableNegativeStartTime.mo new file mode 100644 index 0000000000..fa0c2d642f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/TimeTableNegativeStartTime.mo @@ -0,0 +1,91 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources.Validation; +model TimeTableNegativeStartTime + "Validation model for TimeTable block with negative start time" + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLin( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.LinearSegments, + table=[ + 0,0; + 6*3600,1; + 18*3600,0.5; + 24*3600,0]) + "Time table with smoothness method of linear segments" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLinHol( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.LinearSegments, + extrapolation=IBPSA.Controls.OBC.CDL.Types.Extrapolation.HoldLastPoint, + table=[ + 0,0; + 6*3600,1; + 18*3600,0.5; + 24*3600,0]) + "Time table with smoothness method of linear segments, hold first and last value" + annotation (Placement(transformation(extent={{-10,10},{10,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLinDer( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.LinearSegments, + extrapolation=IBPSA.Controls.OBC.CDL.Types.Extrapolation.LastTwoPoints, + table=[ + 0,0; + 6*3600,1; + 18*3600,0.5; + 24*3600,0]) + "Time table with smoothness method of linear segments, extrapolate with der" + annotation (Placement(transformation(extent={{50,10},{70,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabCon( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.ConstantSegments, + table=[ + 0,0; + 6*3600,1; + 18*3600,0.5; + 24*3600,0]) + "Time table with smoothness method of constant segments" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable timTabLinCon( + smoothness=IBPSA.Controls.OBC.CDL.Types.Smoothness.LinearSegments, + table=[ + 0,0; + 6*3600,0; + 6*3600,1; + 18*3600,0.5; + 24*3600,0]) + "Time table with smoothness method of linear segments" + annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + annotation ( + experiment( + Tolerance=1e-6, + StartTime=-129600.0, + StopTime=172800), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/TimeTableNegativeStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

+This model validates the block + +IBPSA.Controls.OBC.CDL.Reals.Sources.TimeTable. +The model is identical to + +IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.TimeTable +except that the start time is negative, and not a multiple of a full day. +", + revisions=" +

+"), + Icon( + 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}})})); +end TimeTableNegativeStartTime; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/package.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/package.mo new file mode 100644 index 0000000000..13e6b5a2f7 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL.Reals.Sources; +package Validation "Collection of models that validate the continuous sources blocks of the CDL" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains models that validate the blocks in + +IBPSA.Controls.OBC.CDL.Reals.Sources. +

+

+The examples plot various outputs, which have been verified against +analytical solutions. These model outputs are stored as reference data to +allow continuous validation whenever models in the library change. +

+"), + 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), + Polygon( + origin={8.0,14.0}, + 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}}), + Rectangle( + lineColor={128,128,128}, + extent={{-100.0,-100.0},{100.0,100.0}}, + radius=25.0)})); +end Validation; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/package.order b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/package.order new file mode 100644 index 0000000000..44b8c845d0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/Validation/package.order @@ -0,0 +1,10 @@ +CalendarTimeMonths +CalendarTimeMonthsMinus +CalendarTimeMonthsPlus +CivilTime +Constant +Pulse +Ramp +Sin +TimeTable +TimeTableNegativeStartTime diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/package.mo b/IBPSA/Controls/OBC/CDL/Reals/Sources/package.mo new file mode 100644 index 0000000000..0b4acd7fcd --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/package.mo @@ -0,0 +1,33 @@ +within IBPSA.Controls.OBC.CDL.Reals; +package Sources "Package with blocks that generate source signals" + annotation ( + Documentation( + info=" +

+Package with blocks that generate signals. +

+"), + 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( + fillColor={128,128,128}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{-70,-4.5},{0,4.5}}), + Polygon( + origin={23.3333,0.0}, + fillColor={128,128,128}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-23.333,30.0},{46.667,0.0},{-23.333,-30.0}}), + Rectangle( + lineColor={128,128,128}, + extent={{-100.0,-100.0},{100.0,100.0}}, + radius=25.0)})); +end Sources; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sources/package.order b/IBPSA/Controls/OBC/CDL/Reals/Sources/package.order new file mode 100644 index 0000000000..95a5483879 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sources/package.order @@ -0,0 +1,8 @@ +CalendarTime +CivilTime +Constant +Pulse +Ramp +Sin +TimeTable +Validation diff --git a/IBPSA/Controls/OBC/CDL/Reals/Sqrt.mo b/IBPSA/Controls/OBC/CDL/Reals/Sqrt.mo new file mode 100644 index 0000000000..bf9bb433e1 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Sqrt.mo @@ -0,0 +1,83 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Sqrt + "Output the square root of the input (input >= 0 required)" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input to square root function" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Output with square root of the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=sqrt(u); + + annotation ( + defaultComponentName="sqr", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-90,-80},{68,-80}}, + color={192,192,192}), + Polygon( + points={{90,-80},{68,-72},{68,-88},{90,-80}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,-80},{-79.2,-68.7},{-78.4,-64},{-76.8,-57.3},{-73.6,-47.9},{-67.9,-36.1},{-59.1,-22.2},{-46.2,-6.49},{-28.5,10.7},{-4.42,30},{27.7,51.3},{69.5,74.7},{80,80}}, + smooth=Smooth.Bezier), + Polygon( + points={{-80,90},{-88,68},{-72,68},{-80,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,-88},{-80,68}}, + color={192,192,192}), + Text( + extent={{-8,-4},{64,-52}}, + textColor={192,192,192}, + textString="sqrt"), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs square root of the input y = sqrt(u), +where u is an input. The input u must be non-negative. +

+", + revisions=" + +")); +end Sqrt; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Subtract.mo b/IBPSA/Controls/OBC/CDL/Reals/Subtract.mo new file mode 100644 index 0000000000..a5e7e1c190 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Subtract.mo @@ -0,0 +1,73 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Subtract "Output the difference of the two inputs" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input with minuend" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u2 + "Input with subtrahend" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Output with difference" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=u1-u2; + annotation ( + defaultComponentName="sub", + Documentation( + info=" +

+Block that outputs y as the difference of the +two input signals u1 and u2, +

+
+    y = u1 - u2
+
+", +revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Ellipse( + lineColor={0,0,127}, + extent={{-50,-50},{50,50}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-100,60},{-74,24},{-44,24}}, + color={0,0,127}), + Line( + points={{-100,-60},{-74,-28},{-42,-28}}, + color={0,0,127}), + Line( + points={{50,0},{100,0}}, + color={0,0,127}), + Text( + extent={{-38,-28},{38,40}}, + textString="-", + textColor={0,0,0}), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))})); +end Subtract; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Switch.mo b/IBPSA/Controls/OBC/CDL/Reals/Switch.mo new file mode 100644 index 0000000000..dfaf50be50 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Switch.mo @@ -0,0 +1,124 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Switch + "Switch between two Real signals" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u1 + "Input u1" + annotation (Placement(transformation(extent={{-140,60},{-100,100}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u2 + "Boolean switch input signal, if true, y=u1, else y=u3" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u3 + "Input u3" + annotation (Placement(transformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Output with u1 if u2 is true, else u3" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=smooth(0, if u2 then u1 else u3); + annotation ( + defaultComponentName="swi", + Documentation( + info=" +

+Block that outputs one of two real input signals based on a boolean input signal. +

+

+If the input signal u2 is true, +the block outputs y = u1. +Otherwise, it outputs y = u3. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,100},{100,-100}}, + fillColor={210,210,210}, + lineThickness=5.0, + fillPattern=FillPattern.Solid, + borderPattern=BorderPattern.Raised), + Line( + points={{12.0,0.0},{100.0,0.0}}, + color={0,0,127}), + Line( + points={{-100.0,0.0},{-40.0,0.0}}, + color={255,0,255}), + Line( + points={{-100.0,-80.0},{-40.0,-80.0},{-40.0,-80.0}}, + color={0,0,127}), + Line( + points={{-40.0,12.0},{-40.0,-12.0}}, + color={255,0,255}), + Line( + points={{-100.0,80.0},{-40.0,80.0}}, + color={0,0,127}), + Line( + points=DynamicSelect({{10,0},{-40,80}},{{10,0}, + if u2 then + {-40,80} + else + {-40,-80}}), + color={0,0,127}, + thickness=1.0), + Ellipse( + lineColor={0,0,255}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{2.0,-8.0},{18.0,8.0}}), + Ellipse( + extent={{-71,7},{-85,-7}}, + lineColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if u2 then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{-90,80},{-46,54}}, + textColor=DynamicSelect({0,0,0}, + if u2 then + {0,0,0} + else + {235,235,235}), + textString="true"), + Text( + extent={{-90,-46},{-38,-76}}, + textColor=DynamicSelect({0,0,0}, + if u2 then + {235,235,235} + else + {0,0,0}), + textString="false"), + Text( + extent={{-150,150},{150,110}}, + textColor={0,0,255}, + textString="%name")})); +end Switch; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Tan.mo b/IBPSA/Controls/OBC/CDL/Reals/Tan.mo new file mode 100644 index 0000000000..bce583559a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Tan.mo @@ -0,0 +1,97 @@ +within IBPSA.Controls.OBC.CDL.Reals; +block Tan "Output the tangent of the input" + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u( + final unit="rad", + displayUnit="deg") + "Input for the tangent function" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Tangent of the input" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=Modelica.Math.tan(u); + annotation ( + defaultComponentName="tan", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Text( + extent={{-90,72},{-18,24}}, + textColor={192,192,192}, + textString="tan"), + Line( + points={{0,-80},{0,68}}, + color={192,192,192}), + Polygon( + points={{0,90},{-8,68},{8,68},{0,90}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Polygon( + points={{90,0},{68,8},{68,-8},{90,0}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-90,0},{68,0}}, + color={192,192,192}), + Line( + points={{-80,-80},{-78.4,-68.4},{-76.8,-59.7},{-74.4,-50},{-71.2,-40.9},{-67.1,-33},{-60.7,-24.8},{-51.1,-17.2},{-35.8,-9.98},{-4.42,-1.07},{33.4,9.12},{49.4,16.2},{59.1,23.2},{65.5,30.6},{70.4,39.1},{73.6,47.4},{76,56.1},{77.6,63.8},{80,80}}, + smooth=Smooth.Bezier), + Text( + extent={{226,60},{106,10}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(y, + leftJustified=false, + significantDigits=3)))}), + Documentation( + info=" +

+Block that outputs y = tan(u), +where +u is an input. +

+ +

+\"tan.png\" +

+ +", + revisions=" + +")); +end Tan; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Abs.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Abs.mo new file mode 100644 index 0000000000..ed7bda692b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Abs.mo @@ -0,0 +1,60 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Abs + "Validation model for the absolute block" + IBPSA.Controls.OBC.CDL.Reals.Abs abs1 + "Block that outputs the absolute value of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp( + height=2, + duration=1, + offset=-1) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp.y,abs1.u) + annotation (Line(points={{-38,0},{-38,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Abs.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Abs. +The input varies from -1 to +1. +

+", + revisions=" + + +"), + Icon( + 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}})})); +end Abs; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Acos.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Acos.mo new file mode 100644 index 0000000000..20690cd640 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Acos.mo @@ -0,0 +1,52 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Acos "Validation model for the Acos block" + IBPSA.Controls.OBC.CDL.Reals.Acos arcCos + "Block that outputs the arc tangent of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-1, + height=2) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y, arcCos.u) + annotation (Line(points={{-38,0},{-12,0},{-12,0}}, color={0,0,127})); + +annotation ( + experiment(StopTime=1.0, Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Acos.mos" "Simulate and plot"), +Documentation(info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Acos. +

+

+The input u varies from -1 to +1. +

+", +revisions=" + +"), + Icon( + 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}})})); +end Acos; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Add.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Add.mo new file mode 100644 index 0000000000..822bbcadeb --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Add.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Add + "Validation model for the add block" + IBPSA.Controls.OBC.CDL.Reals.Add add1 + "Block that outputs the sum of the two inputs" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + height=2, + duration=1, + offset=-1) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + +equation + connect(ramp1.y,add1.u1) + annotation (Line(points={{-38,20},{-26,20},{-26,6},{-12,6}},color={0,0,127})); + connect(ramp2.y,add1.u2) + annotation (Line(points={{-38,-20},{-26,-20},{-26,-6},{-12,-6}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Add.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Add. +

+

+The input u1 varies from -2 to +2, input u2 varies from -1 to +1. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Add; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/AddParameter.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/AddParameter.mo new file mode 100644 index 0000000000..ae436a8d60 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/AddParameter.mo @@ -0,0 +1,56 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model AddParameter + "Validation model for the AddParameter block" + IBPSA.Controls.OBC.CDL.Reals.AddParameter addPar( + p=0.5) + "Block that outputs the sum of an input plus a parameter" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y,addPar.u) + annotation (Line(points={{-38,0},{-38,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/AddParameter.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.AddParameter. +

+

+The input u varies from -2 to +2. +

+", + revisions=" + +"), + Icon( + 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}})})); +end AddParameter; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Asin.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Asin.mo new file mode 100644 index 0000000000..2f02e6a55f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Asin.mo @@ -0,0 +1,52 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Asin "Validation model for the Asin block" + IBPSA.Controls.OBC.CDL.Reals.Asin arcSin + "Block that outputs the arc tangent of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-1, + height=2) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y, arcSin.u) + annotation (Line(points={{-38,0},{-12,0},{-12,0}}, color={0,0,127})); + +annotation ( + experiment(StopTime=1.0, Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Asin.mos" "Simulate and plot"), +Documentation(info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Asin. +

+

+The input u varies from -1 to +1. +

+", +revisions=" + +"), + Icon( + 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}})})); +end Asin; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Atan.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Atan.mo new file mode 100644 index 0000000000..2eb745c746 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Atan.mo @@ -0,0 +1,55 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Atan + "Validation model for the Atan block" + IBPSA.Controls.OBC.CDL.Reals.Atan atan1 + "Block that outputs the arc tangent of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y,atan1.u) + annotation (Line(points={{-38,0},{-12,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Atan.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Atan. +

+

+The input u varies from -2 to +2. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Atan; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Atan2.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Atan2.mo new file mode 100644 index 0000000000..be7cf20a00 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Atan2.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Atan2 + "Validation model for the Atan2 block" + IBPSA.Controls.OBC.CDL.Reals.Atan2 atan2_1 + "Block that outputs atan(u1/u2) of the inputs u1 and u2" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=1, + height=2) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + +equation + connect(ramp1.y,atan2_1.u1) + annotation (Line(points={{-38,20},{-26,20},{-26,6},{-12,6}},color={0,0,127})); + connect(ramp2.y,atan2_1.u2) + annotation (Line(points={{-38,-20},{-26,-20},{-26,-6},{-12,-6}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Atan2.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Atan2. +

+

+The input u1 varies from -2 to +2, +The input u2 varies from +1 to +3. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Atan2; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Average.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Average.mo new file mode 100644 index 0000000000..3aa70eaf76 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Average.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Average + "Validation model for the Average block" + IBPSA.Controls.OBC.CDL.Reals.Average avg1 + "Block that outputs the average of its two inputs" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=6) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=1.5, + height=3.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + +equation + connect(ramp1.y,avg1.u1) + annotation (Line(points={{-39,20},{-26,20},{-26,6},{-12,6}},color={0,0,127})); + connect(ramp2.y,avg1.u2) + annotation (Line(points={{-39,-20},{-26,-20},{-26,-6},{-12,-6}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Average.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Average. +

+

+The input u1 varies from -2.0 to +6.0, input u2 varies from +1.5 to +4.5 +

+", + revisions=" + +"), + Icon( + 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}})})); +end Average; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Cos.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Cos.mo new file mode 100644 index 0000000000..50d1253aec --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Cos.mo @@ -0,0 +1,55 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Cos + "Validation model for the Cos block" + IBPSA.Controls.OBC.CDL.Reals.Cos cos1 + "Block that outputs the cosine of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=6.283) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y,cos1.u) + annotation (Line(points={{-39,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Cos.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Cos. +

+

+The input u varies from 0.0 to +6.283. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Cos; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Derivative.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Derivative.mo new file mode 100644 index 0000000000..3401139851 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Derivative.mo @@ -0,0 +1,130 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Derivative + "Test model for the derivative block" + IBPSA.Controls.OBC.CDL.Reals.Derivative der1(y_start=1) + "Derivative block with input gains" + annotation (Placement(transformation(extent={{40,40},{60,60}}))); + Reals.Sources.Constant con(k=1) "Outputs 1" + annotation (Placement(transformation(extent={{-80,70},{-60,90}}))); + Reals.Sources.Ramp ram( + height=0.09, + duration=10, + offset=0.01, + startTime=5) "Ramp for time constant used in approximating derivative" + annotation (Placement(transformation(extent={{-80,40},{-60,60}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.CivilTime modTim + "Civil time" + annotation (Placement(transformation(extent={{-110,0},{-90,20}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset intWitRes(y_start=1) + "Integration of input" + annotation (Placement(transformation(extent={{0,0},{20,20}}))); + Logical.Sources.Constant booSig(k=false) "Contant boolean signal" + annotation (Placement(transformation(extent={{-40,-30},{-20,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Cos cos "Cosine of model time" + annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Derivative der2(y_start=0) + "Derivative block with input gains" + annotation (Placement(transformation(extent={{40,-80},{60,-60}}))); + Reals.Sources.Constant con2(k=2) "Outputs 2" + annotation (Placement(transformation(extent={{-40,-72},{-20,-52}}))); + Reals.Sources.Constant T(k=0.1) "Time constant for derivative approximation" + annotation (Placement(transformation(extent={{0,-90},{20,-70}}))); + Utilities.Assert assMes(message="Differentiated value differs more than threshold") + "Issue an error if results differ more than a threshold" + annotation (Placement(transformation(extent={{170,26},{190,46}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract sub + "Difference between original signal, and differentiated integral of that signal" + annotation (Placement(transformation(extent={{80,26},{100,46}}))); + IBPSA.Controls.OBC.CDL.Reals.Abs abs "Absolute difference" + annotation (Placement(transformation(extent={{110,26},{130,46}}))); + IBPSA.Controls.OBC.CDL.Reals.LessThreshold lesThr(t=0.1, h=0.01) + "Output true if difference is within expected accuracy" + annotation (Placement(transformation(extent={{140,26},{160,46}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter gai(final k=1) + "Dummy gain to avoid unit difference error" + annotation (Placement(transformation(extent={{-80,0},{-60,20}}))); +equation + connect(con.y, der1.k) annotation (Line(points={{-58,80},{-10,80},{-10,58},{38, + 58}}, color={0,0,127})); + connect(ram.y, der1.T) annotation (Line(points={{-58,50},{-20,50},{-20,54},{38, + 54}}, color={0,0,127})); + connect(intWitRes.y, der1.u) annotation (Line(points={{22,10},{30,10},{30,50}, + {38,50}}, color={0,0,127})); + connect(booSig.y, intWitRes.trigger) + annotation (Line(points={{-18,-20},{10,-20},{10,-2}}, color={255,0,255})); + connect(intWitRes.u, cos.y) + annotation (Line(points={{-2,10},{-18,10}}, color={0,0,127})); + connect(intWitRes.y_reset_in, cos.y) annotation (Line(points={{-2,2},{-10,2},{ + -10,10},{-18,10}}, color={0,0,127})); + connect(intWitRes.y, der2.u) annotation (Line(points={{22,10},{30,10},{30,-70}, + {38,-70}}, color={0,0,127})); + connect(con2.y, der2.k) annotation (Line(points={{-18,-62},{38,-62}}, + color={0,0,127})); + connect(T.y, der2.T) annotation (Line(points={{22,-80},{34,-80},{34,-66},{38,-66}}, + color={0,0,127})); + connect(der1.y, sub.u1) annotation (Line(points={{62,50},{70,50},{70,42},{78,42}}, + color={0,0,127})); + connect(cos.y, sub.u2) annotation (Line(points={{-18,10},{-10,10},{-10,30},{78, + 30}}, color={0,0,127})); + connect(sub.y, abs.u) + annotation (Line(points={{102,36},{108,36}}, color={0,0,127})); + connect(abs.y, lesThr.u) + annotation (Line(points={{132,36},{138,36}}, color={0,0,127})); + connect(lesThr.y, assMes.u) + annotation (Line(points={{162,36},{168,36}}, color={255,0,255})); + connect(modTim.y, gai.u) + annotation (Line(points={{-88,10},{-82,10}}, color={0,0,127})); + connect(gai.y, cos.u) + annotation (Line(points={{-58,10},{-42,10}}, color={0,0,127})); + annotation ( + experiment( + StopTime=10.0, + Tolerance=1e-07), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Derivative.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Derivative. +The model integrates a time varying signal, and the differentiates this integrated signal. +Hence, the output der1.y matches the non-integrated signal intWitRes.u, +within a small approximation tolerance. +

+

+The instance der1 uses a varying input for T which controls the accuracy of +the derivative approximation. At the start of the simulation, T is small and hence +the output der1.y matches the signal intWitRes.u well. +As expected, the approximation error increases with increasing der1.T. +

+

+The instance der2 uses a gain of 2, and it initializes the output to 0. +Hence, there is a fast transient at the beginning, and afterwards the output matches der1.y = der2.y / 2. +

+", + revisions=" + +"), + Icon(coordinateSystem(extent={{-100,-100},{100,100}}), + 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(extent={{-120,-100},{200,100}}))); +end Derivative; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Divide.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Divide.mo new file mode 100644 index 0000000000..39e79ca46b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Divide.mo @@ -0,0 +1,67 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Divide "Validation model for the Divide block" + IBPSA.Controls.OBC.CDL.Reals.Divide div1 + "Block that outputs first input divided by second input: u1/u2" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + height=2, + duration=1, + offset=1) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + +equation + connect(ramp1.y,div1.u1) + annotation (Line(points={{-38,20},{-26,20},{-26,6},{-12,6}},color={0,0,127})); + connect(ramp2.y,div1.u2) + annotation (Line(points={{-38,-20},{-26,-20},{-26,-6},{-12,-6}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Divide.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Divide. +

+

+The input u1 varies from -2 to +2, input u2 varies from +1 to +3. +

+", +revisions=" + +"), + Icon( + 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}})})); +end Divide; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Exp.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Exp.mo new file mode 100644 index 0000000000..d2d001865f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Exp.mo @@ -0,0 +1,55 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Exp + "Validation model for the Exp block" + IBPSA.Controls.OBC.CDL.Reals.Exp Exp1 + "Block that outputs the exponential (base e) of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=2) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y,Exp1.u) + annotation (Line(points={{-39,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Exp.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Exp. +

+

+The input u varies from 0.0 to +2. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Exp; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Greater.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Greater.mo new file mode 100644 index 0000000000..07a5550c46 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Greater.mo @@ -0,0 +1,79 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Greater + "Validation model for the Greater block" + IBPSA.Controls.OBC.CDL.Reals.Greater gre + "Greater block, without hysteresis" + annotation (Placement(transformation(extent={{40,20},{60,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Greater greHys(h=1) + "Greater block, with hysteresis" + annotation (Placement(transformation(extent={{40,-40},{60,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram1( + height=5, + duration=10, + offset=-1.5) "Ramp source" + annotation (Placement(transformation(extent={{-40,-40},{-20,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin sin( + amplitude=3, + freqHz=1/10, + offset=-2, + startTime=1) + "Sine source" + annotation (Placement(transformation(extent={{-40,20},{-20,40}}))); +equation + connect(ram1.y, gre.u2) annotation (Line(points={{-18,-30},{20,-30},{20,22},{38, + 22}}, color={0,0,127})); + connect(ram1.y, greHys.u2) annotation (Line(points={{-18,-30},{20,-30},{20,-38}, + {38,-38}}, color={0,0,127})); + connect(sin.y, gre.u1) + annotation (Line(points={{-18,30},{38,30}}, color={0,0,127})); + connect(sin.y, greHys.u1) annotation (Line(points={{-18,30},{30,30},{30,-30},{ + 38,-30}}, color={0,0,127})); + annotation ( + experiment( + StopTime=10.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Greater.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Greater. +The instance gre has no hysteresis, and the +instance greHys has a hysteresis. +

+", +revisions=" + +"), + Icon( + 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}})})); +end Greater; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/GreaterThreshold.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/GreaterThreshold.mo new file mode 100644 index 0000000000..2d013ed070 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/GreaterThreshold.mo @@ -0,0 +1,70 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model GreaterThreshold + "Validation model for the GreaterThreshold block" + IBPSA.Controls.OBC.CDL.Reals.GreaterThreshold gre(t=2) + "Greater block, without hysteresis" + annotation (Placement(transformation(extent={{40,20},{60,40}}))); + IBPSA.Controls.OBC.CDL.Reals.GreaterThreshold greHys(t=2, h=1) + "Greater block, with hysteresis" + annotation (Placement(transformation(extent={{40,-30},{60,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin sin( + amplitude=8, + freqHz=1/10, + offset=-2, + startTime=1) + "Sine source" + annotation (Placement(transformation(extent={{-40,20},{-20,40}}))); +equation + connect(sin.y, gre.u) + annotation (Line(points={{-18,30},{38,30}}, color={0,0,127})); + connect(sin.y, greHys.u) annotation (Line(points={{-18,30},{20,30},{20,-20},{38, + -20}}, color={0,0,127})); + annotation ( + experiment( + StopTime=10.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/GreaterThreshold.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.GreaterThreshold. +The instance gre has no hysteresis, and the +instance greHys has a hysteresis. +

+", + revisions=" + +"), + Icon( + 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}})})); +end GreaterThreshold; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Hysteresis.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Hysteresis.mo new file mode 100644 index 0000000000..8dce075b65 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Hysteresis.mo @@ -0,0 +1,99 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Hysteresis + "Validation model for the Hysteresis block" + IBPSA.Controls.OBC.CDL.Reals.Hysteresis hysteresis( + final uLow=0, + final uHigh=1) + "Transform Real to Boolean signal with Hysteresis" + annotation (Placement(transformation(extent={{50,30},{70,50}}))); + IBPSA.Controls.OBC.CDL.Reals.Hysteresis hysteresis1( + final uLow=0, + final uHigh=1, + final pre_y_start=true) + "Transform Real to Boolean signal with Hysteresis" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Hysteresis hysteresis2( + final uLow=0+0.01, + final uHigh=1-0.01) + "Transform Real to Boolean signal with Hysteresis" + annotation (Placement(transformation(extent={{20,-50},{40,-30}}))); + +protected + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + final duration=1, + final offset=0, + final height=6.2831852) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-74,30},{-54,50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sin sin1 + "Block that outputs the sine of the input" + annotation (Placement(transformation(extent={{-30,30},{-10,50}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter gain1( + final k=2.5) + "Block that outputs the product of a gain value with the input signal" + annotation (Placement(transformation(extent={{10,30},{30,50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin sin( + final amplitude=1, + final freqHz=10) + "Sine signal" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin sin2( + final amplitude=1, + final freqHz=5) + "Sine signal" + annotation (Placement(transformation(extent={{-40,-50},{-20,-30}}))); + +equation + connect(ramp1.y,sin1.u) + annotation (Line(points={{-52,40},{-32,40}},color={0,0,127})); + connect(sin1.y,gain1.u) + annotation (Line(points={{-8,40},{8,40}},color={0,0,127})); + connect(gain1.y,hysteresis.u) + annotation (Line(points={{32,40},{48,40}},color={0,0,127})); + connect(hysteresis2.u,sin2.y) + annotation (Line(points={{18,-40},{-18,-40}},color={0,0,127})); + connect(sin.y,hysteresis1.u) + annotation (Line(points={{-18,0},{18,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Hysteresis.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Hysteresis. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Hysteresis; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/IntegratorWithReset.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/IntegratorWithReset.mo new file mode 100644 index 0000000000..335df90b42 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/IntegratorWithReset.mo @@ -0,0 +1,101 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model IntegratorWithReset + "Test model for integrator with reset" + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset intDef(final + y_start=-2) + "Integrator with default values" + annotation (Placement(transformation(extent={{0,60},{20,80}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset intWitRes1(final + y_start=-2, + final k=0.5) + "Integrator with reset" + annotation (Placement(transformation(extent={{0,20},{20,40}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset intWitRes2( + final y_start=-5, + final k=0.5) + "Integrator with reset and y_reset = 2" + annotation (Placement(transformation(extent={{0,-20},{20,0}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant cons( + final k=10) + "Constant as source term" + annotation (Placement(transformation(extent={{-60,60},{-40,80}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booleanPulse( + final width=0.5, + final period=0.2) + "Boolean pulse" + annotation (Placement(transformation(extent={{-60,-80},{-40,-60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.SampleTrigger sampleTrigger( + final period=0.2) + "Sample trigger" + annotation (Placement(transformation(extent={{-60,0},{-40,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp( + final height=-1, + final duration=1, + final offset=-2) + "Ramp as a source term" + annotation (Placement(transformation(extent={{-60,-40},{-40,-20}}))); + +equation + connect(cons.y,intWitRes1.u) + annotation (Line(points={{-38,70},{-20,70},{-20,30},{-2,30}},color={0,0,127})); + connect(cons.y,intWitRes2.u) + annotation (Line(points={{-38,70},{-20,70},{-20,-10},{-2,-10}},color={0,0,127})); + connect(sampleTrigger.y,intWitRes1.trigger) + annotation (Line(points={{-38,10},{10,10},{10,18}},color={255,0,255})); + connect(booleanPulse.y,intWitRes2.trigger) + annotation (Line(points={{-38,-70},{10,-70},{10,-22}},color={255,0,255})); + connect(ramp.y,intWitRes2.y_reset_in) + annotation (Line(points={{-38,-30},{-14,-30},{-14,-18},{-2,-18}},color={0,0,127})); + connect(cons.y,intDef.u) + annotation (Line(points={{-38,70},{-2,70}},color={0,0,127})); + connect(ramp.y,intWitRes1.y_reset_in) + annotation (Line(points={{-38,-30},{-14,-30},{-14,22},{-2,22}},color={0,0,127})); + connect(ramp.y,intDef.y_reset_in) + annotation (Line(points={{-38,-30},{-14,-30},{-14,62},{-2,62}},color={0,0,127})); + connect(sampleTrigger.y,intDef.trigger) + annotation (Line(points={{-38,10},{-26,10},{-26,52},{10,52},{10,58}},color={255,0,255})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/IntegratorWithReset.mos" "Simulate and plot"), + Documentation( + info=" +

+This model tests the implementation of + +IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset +with and without reset, and with different start values +and reset values. +

+

+The integrator intWitRes1 is triggered by a sample trigger +which becomes true at t=0, while intWitRes2 is triggered +by a boolean pulse with is true at t=0. +Hence, intWitRes1 starts with y(0)=y_reset while +intWitRes2 starts with y(0)=y_start. +

+", + revisions=" + +"), + Icon( + 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}})})); +end IntegratorWithReset; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Less.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Less.mo new file mode 100644 index 0000000000..6736c4b131 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Less.mo @@ -0,0 +1,81 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Less + "Validation model for the Less block" + IBPSA.Controls.OBC.CDL.Reals.Less les + "Less block, without hysteresis" + annotation (Placement(transformation(extent={{20,30},{40,50}}))); + IBPSA.Controls.OBC.CDL.Reals.Less lesHys( + h=1) + "Less block, with hysteresis" + annotation (Placement(transformation(extent={{20,-30},{40,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin sin( + amplitude=3, + freqHz=1/10, + offset=-2, + startTime=1) + "Sine source" + annotation (Placement(transformation(extent={{-40,30},{-20,50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram1( + height=5, + duration=10, + offset=-2) + "Ramp source" + annotation (Placement(transformation(extent={{-40,-30},{-20,-10}}))); +equation + connect(sin.y, les.u1) + annotation (Line(points={{-18,40},{18,40}}, color={0,0,127})); + connect(sin.y, lesHys.u1) annotation (Line(points={{-18,40},{0,40},{0,-20},{18, + -20}}, color={0,0,127})); + connect(ram1.y, les.u2) annotation (Line(points={{-18,-20},{-10,-20},{-10,32}, + {18,32}}, color={0,0,127})); + connect(ram1.y, lesHys.u2) annotation (Line(points={{-18,-20},{-10,-20},{-10,-28}, + {18,-28}}, color={0,0,127})); + annotation ( + experiment( + StopTime=10.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Less.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Less. +The instance les has no hysteresis, and the +instance lesHys has a hysteresis. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Less; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/LessThreshold.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/LessThreshold.mo new file mode 100644 index 0000000000..6637c59322 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/LessThreshold.mo @@ -0,0 +1,70 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model LessThreshold + "Validation model for the LessThreshold block" + IBPSA.Controls.OBC.CDL.Reals.LessThreshold les(t=2) + "Less block, without hysteresis" + annotation (Placement(transformation(extent={{20,20},{40,40}}))); + IBPSA.Controls.OBC.CDL.Reals.LessThreshold lesHys(t=2, h=1) + "Less block, with hysteresis" + annotation (Placement(transformation(extent={{20,-30},{40,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin sin( + amplitude=8, + freqHz=1/10, + offset=-2, + startTime=1) + "Sine source" + annotation (Placement(transformation(extent={{-40,20},{-20,40}}))); +equation + connect(sin.y, les.u) + annotation (Line(points={{-18,30},{18,30}}, color={0,0,127})); + connect(sin.y, lesHys.u) annotation (Line(points={{-18,30},{0,30},{0,-20},{18, + -20}}, color={0,0,127})); + annotation ( + experiment( + StopTime=10.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/LessThreshold.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.LessThreshold. +The instance les has no hysteresis, and the +instance lesHys has a hysteresis. +

+", + revisions=" + +"), + Icon( + 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}})})); +end LessThreshold; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/LimitSlewRate.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/LimitSlewRate.mo new file mode 100644 index 0000000000..f3e253f17d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/LimitSlewRate.mo @@ -0,0 +1,166 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model LimitSlewRate "Validation model for the LimitSlewRate block" + IBPSA.Controls.OBC.CDL.Reals.LimitSlewRate sleRatLim( + raisingSlewRate=1/30) + "Block that limit the increase or decrease rate of input" + annotation (Placement(transformation(extent={{70,-10},{90,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + offset=0, + height=1.5, + duration=20, + startTime=10) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,100},{-60,120}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + offset=0, + height=-1.5, + startTime=60, + duration=20) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,70},{-60,90}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add + "Signal adder" + annotation (Placement(transformation(extent={{-40,80},{-20,100}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp3( + offset=0, + height=-1.5, + duration=30, + startTime=120+60) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp4( + offset=0, + height=1.5, + duration=30, + startTime=120) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,40},{-60,60}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp5( + offset=0, + height=-1.5, + startTime=240+60, + duration=40) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-60},{-60,-40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp6( + offset=0, + height=1.5, + startTime=240, + duration=40) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add1 + "Signal adder" + annotation (Placement(transformation(extent={{-40,20},{-20,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add2 + "Signal adder" + annotation (Placement(transformation(extent={{-40,-48},{-20,-28}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp7( + offset=0, + height=-1.5, + duration=50, + startTime=360+60) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-130},{-60,-110}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp8( + offset=0, + height=1.5, + duration=50, + startTime=360) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-80,-100},{-60,-80}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add3 + "Signal adder" + annotation (Placement(transformation(extent={{-40,-120},{-20,-100}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add4 + "Signal adder" + annotation (Placement(transformation(extent={{0,50},{20,70}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add5 + "Signal adder" + annotation (Placement(transformation(extent={{0,-80},{20,-60}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add6 + "Signal adder" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + +equation + connect(ramp1.y,add.u1) + annotation (Line(points={{-58,110},{-46,110},{-46,96},{-42,96}},color={0,0,127})); + connect(ramp2.y,add.u2) + annotation (Line(points={{-58,80},{-52,80},{-52,84},{-42,84}},color={0,0,127})); + connect(ramp4.y,add1.u1) + annotation (Line(points={{-58,50},{-50,50},{-50,36},{-42,36}},color={0,0,127})); + connect(ramp3.y,add1.u2) + annotation (Line(points={{-58,20},{-50,20},{-50,24},{-42,24}},color={0,0,127})); + connect(ramp6.y,add2.u1) + annotation (Line(points={{-58,-20},{-50,-20},{-50,-32},{-42,-32}},color={0,0,127})); + connect(ramp5.y,add2.u2) + annotation (Line(points={{-58,-50},{-50,-50},{-50,-44},{-42,-44}},color={0,0,127})); + connect(ramp8.y,add3.u1) + annotation (Line(points={{-58,-90},{-50,-90},{-50,-104},{-42,-104}},color={0,0,127})); + connect(ramp7.y,add3.u2) + annotation (Line(points={{-58,-120},{-50,-120},{-50,-116},{-42,-116}},color={0,0,127})); + connect(add.y,add4.u1) + annotation (Line(points={{-18,90},{-12,90},{-12,66},{-2,66}},color={0,0,127})); + connect(add1.y,add4.u2) + annotation (Line(points={{-18,30},{-10,30},{-10,54},{-2,54}},color={0,0,127})); + connect(add2.y,add5.u1) + annotation (Line(points={{-18,-38},{-10,-38},{-10,-64},{-2,-64}},color={0,0,127})); + connect(add3.y,add5.u2) + annotation (Line(points={{-18,-110},{-12,-110},{-12,-76},{-2,-76}},color={0,0,127})); + connect(add4.y,add6.u1) + annotation (Line(points={{22,60},{24,60},{24,6},{38,6}},color={0,0,127})); + connect(add5.y,add6.u2) + annotation (Line(points={{22,-70},{24,-70},{24,-6},{38,-6}},color={0,0,127})); + connect(sleRatLim.u,add6.y) + annotation (Line(points={{68,0},{68,0},{62,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=480, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/LimitSlewRate.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.LimitSlewRate. +

+

+The input ramp1.u varies from 0 to +1.5, +in 1 s. +

+

+The increase and decrease rate limits are [increase/incDt, -decrease/decDt] , which is [1, -1] here. +

+", +revisions=" + +"), + Diagram( + coordinateSystem( + extent={{-100,-140},{100,140}})), + Icon( + 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}})})); +end LimitSlewRate; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Limiter.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Limiter.mo new file mode 100644 index 0000000000..a4ce6c979a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Limiter.mo @@ -0,0 +1,57 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Limiter + "Validation model for the Limiter block" + IBPSA.Controls.OBC.CDL.Reals.Limiter limiter1( + uMax=2.5, + uMin=1.2) + "Block that limit the range of a signal" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y,limiter1.u) + annotation (Line(points={{-39,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Limiter.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Limiter. +

+

+The input u varies from 0.0 to +2. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Limiter; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Line.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Line.mo new file mode 100644 index 0000000000..57be9565b4 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Line.mo @@ -0,0 +1,128 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Line + "Validation model for the Line block" + IBPSA.Controls.OBC.CDL.Reals.Line line1 + "Block that out the value of the input x along a line specified by two points" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant x1( + k=1.0) + "Block that generate x1" + annotation (Placement(transformation(extent={{-60,52},{-40,72}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant f1( + k=0.5) + "Block that generate f(x1)" + annotation (Placement(transformation(extent={{-60,20},{-40,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant x2( + k=2.0) + "Block that generate x2" + annotation (Placement(transformation(extent={{-60,-40},{-40,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant f2( + k=1.5) + "Block that generate f(x2)" + annotation (Placement(transformation(extent={{-60,-70},{-40,-50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + offset=0, + duration=0.5, + startTime=0.25, + height=3) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Line line2( + limitAbove=true, + limitBelow=false) + "Block that out the value of the input x along a line specified by two points" + annotation (Placement(transformation(extent={{-10,-40},{10,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.Line line3( + limitBelow=true, + limitAbove=false) + "Block that out the value of the input x along a line specified by two points" + annotation (Placement(transformation(extent={{-10,-70},{10,-50}}))); + +equation + connect(ramp1.y,line1.u) + annotation (Line(points={{-39,0},{-12,0}},color={0,0,127})); + connect(f1.y,line1.f1) + annotation (Line(points={{-39,30},{-24,30},{-24,4},{-12,4}},color={0,0,127})); + connect(x1.y,line1.x1) + annotation (Line(points={{-39,62},{-26,62},{-26,8},{-12,8}},color={0,0,127})); + connect(x2.y,line1.x2) + annotation (Line(points={{-39,-30},{-24,-30},{-24,-4},{-12,-4}},color={0,0,127})); + connect(f2.y,line1.f2) + annotation (Line(points={{-39,-60},{-26,-60},{-26,-8},{-12,-8}},color={0,0,127})); + connect(ramp1.y,line2.u) + annotation (Line(points={{-39,0},{-36,0},{-36,-30},{-12,-30}},color={0,0,127})); + connect(f1.y,line2.f1) + annotation (Line(points={{-39,30},{-24,30},{-24,-26},{-12,-26}},color={0,0,127})); + connect(x1.y,line2.x1) + annotation (Line(points={{-39,62},{-26,62},{-26,-22},{-12,-22}},color={0,0,127})); + connect(x2.y,line2.x2) + annotation (Line(points={{-39,-30},{-24,-30},{-24,-34},{-12,-34}},color={0,0,127})); + connect(f2.y,line2.f2) + annotation (Line(points={{-39,-60},{-26,-60},{-26,-38},{-12,-38}},color={0,0,127})); + connect(ramp1.y,line3.u) + annotation (Line(points={{-39,0},{-36,0},{-36,-60},{-12,-60}},color={0,0,127})); + connect(f1.y,line3.f1) + annotation (Line(points={{-39,30},{-24,30},{-24,-56},{-12,-56}},color={0,0,127})); + connect(x1.y,line3.x1) + annotation (Line(points={{-39,62},{-26,62},{-26,-52},{-12,-52}},color={0,0,127})); + connect(x2.y,line3.x2) + annotation (Line(points={{-39,-30},{-24,-30},{-24,-64},{-12,-64}},color={0,0,127})); + connect(f2.y,line3.f2) + annotation (Line(points={{-39,-60},{-26,-60},{-26,-68},{-12,-68}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Line.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Line. +

+

+The input u varies from 0.0 to +2. +

+

+The block outputs y = a + b u, +where +u is an input +and the coefficients a and b +are determined so that the line intercepts the two input points +specified by the two points x1 and f1, +and x2 and f2. +

+

+The parameters limitBelow and limitAbove +determine whether x1 and x2 are also used +to limit the input u. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Line; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Log.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Log.mo new file mode 100644 index 0000000000..52b138963a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Log.mo @@ -0,0 +1,55 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Log + "Validation model for the Log block" + IBPSA.Controls.OBC.CDL.Reals.Log log1 + "Block that outputs the natural (base e) logarithm of the input (input > 0 required)" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=1, + height=5) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y,log1.u) + annotation (Line(points={{-39,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Log.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Log. +

+

+The input u varies from +1 to +6. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Log; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Log10.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Log10.mo new file mode 100644 index 0000000000..9a844dc8a0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Log10.mo @@ -0,0 +1,55 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Log10 + "Validation model for the Log10 block" + IBPSA.Controls.OBC.CDL.Reals.Log10 log10_1 + "Block that outputs the base 10 logarithm of the input (input > 0 required)" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=1, + height=9) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y,log10_1.u) + annotation (Line(points={{-39,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Log10.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Log10. +

+

+The input u varies from +1 to +10. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Log10; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/MatrixGain.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/MatrixGain.mo new file mode 100644 index 0000000000..322ffab0a3 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/MatrixGain.mo @@ -0,0 +1,84 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model MatrixGain + "Validation model for the MatrixGain block" + IBPSA.Controls.OBC.CDL.Reals.MatrixGain matGai( + K=[ + 1,0; + 1,1; + 1,2]) + "Block that outputs the product of a matrix gain value with the input signal" + annotation (Placement(transformation(extent={{20,30},{40,50}}))); + IBPSA.Controls.OBC.CDL.Reals.MatrixGain matGai1( + K=[ + 1,2; + 3,4]) + "Block that outputs the product of a matrix gain value with the input signal" + annotation (Placement(transformation(extent={{20,-50},{40,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp( + duration=1, + offset=0, + height=2) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-40,30},{-20,50}}))); + Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=1) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-40,-30},{-20,-10}}))); + Reals.Sources.Ramp ramp2( + duration=1, + offset=0, + height=2) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-40,-70},{-20,-50}}))); + +equation + connect(ramp2.y,matGai1.u[2]) + annotation (Line(points={{-19,-60},{0,-60},{0,-40},{18,-40}},color={0,0,127})); + connect(ramp1.y,matGai1.u[1]) + annotation (Line(points={{-19,-20},{0,-20},{0,-40},{18,-40}},color={0,0,127})); + connect(ramp.y,matGai.u[1]) + annotation (Line(points={{-19,40},{18,40}},color={0,0,127})); + connect(ramp.y,matGai.u[2]) + annotation (Line(points={{-19,40},{18,40}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MatrixGain.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.MatrixGain. +

+

+The input vector output two identical values u[1] and +u[2] that vary from 0.0 to +2. +

+", + revisions=" + +"), + Icon( + 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}})})); +end MatrixGain; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/MatrixMax.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/MatrixMax.mo new file mode 100644 index 0000000000..43d5ad8d6f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/MatrixMax.mo @@ -0,0 +1,75 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model MatrixMax + "Validation model for the MatrixMax block" + Reals.Sources.Constant con[3,3]( + k={{1,2,3},{6,4,2},{3,9,6}}) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-40,50},{-20,70}}))); + Reals.Sources.Constant con1[2,3]( + k={{1,4,3},{2,2,6}}) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + Reals.Sources.Constant con2[2,3]( + k={{1,2,3},{6,4,2}}) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-40,-70},{-20,-50}}))); + IBPSA.Controls.OBC.CDL.Reals.MatrixMax matMax( + rowMax=false, + nRow=3, + nCol=3) + "Matrix maximum" + annotation (Placement(transformation(extent={{0,50},{20,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MatrixMax matMax1( + nCol=3, + nRow=2) + "Matrix maximum" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + IBPSA.Controls.OBC.CDL.Reals.MatrixMax matMax2( + nCol=3, + nRow=2) + "Matrix maximum" + annotation (Placement(transformation(extent={{0,-70},{20,-50}}))); + +equation + connect(con.y,matMax.u) + annotation (Line(points={{-19,60},{-2,60}},color={0,0,127})); + connect(con1.y,matMax1.u) + annotation (Line(points={{-19,0},{-2,0}},color={0,0,127})); + connect(con2.y,matMax2.u) + annotation (Line(points={{-19,-60},{-2,-60}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MatrixMax.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.MatrixMax. +

+", + revisions=" + +"), + Icon( + 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}})})); +end MatrixMax; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/MatrixMin.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/MatrixMin.mo new file mode 100644 index 0000000000..66a71fe46e --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/MatrixMin.mo @@ -0,0 +1,77 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model MatrixMin + "Validation model for the MatrixMin block" + Reals.Sources.Constant con[3,3]( + k={{-1,-2,-3},{-6,-4,-2},{-3,-9,-6}}) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-40,50},{-20,70}}))); + Reals.Sources.Constant con1[2,3]( + k={{-1,-4,-3},{-2,-2,-6}}) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + Reals.Sources.Constant con2[2,3]( + k={{-1,-2,-3},{-6,-4,-2}}) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-40,-70},{-20,-50}}))); + IBPSA.Controls.OBC.CDL.Reals.MatrixMin matMin( + nRow=3, + nCol=3, + rowMin=false) + "Matrix minimum" + annotation (Placement(transformation(extent={{0,50},{20,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MatrixMin matMin1( + nCol=3, + rowMin=false, + nRow=2) + "Matrix minimum" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + IBPSA.Controls.OBC.CDL.Reals.MatrixMin matMin2( + nCol=3, + rowMin=true, + nRow=2) + "Matrix minimum" + annotation (Placement(transformation(extent={{0,-70},{20,-50}}))); + +equation + connect(con.y,matMin.u) + annotation (Line(points={{-19,60},{-2,60}},color={0,0,127})); + connect(con1.y,matMin1.u) + annotation (Line(points={{-19,0},{-2,0}},color={0,0,127})); + connect(con2.y,matMin2.u) + annotation (Line(points={{-19,-60},{-2,-60}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MatrixMin.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.MatrixMin. +

+", + revisions=" + +"), + Icon( + 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}})})); +end MatrixMin; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Max.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Max.mo new file mode 100644 index 0000000000..82660df86d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Max.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Max + "Validation model for the Max block" + IBPSA.Controls.OBC.CDL.Reals.Max max1 + "Block that pass through the largest signal" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=-1, + height=2) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + +equation + connect(ramp1.y,max1.u1) + annotation (Line(points={{-39,20},{-26,20},{-26,6},{-12,6}},color={0,0,127})); + connect(ramp2.y,max1.u2) + annotation (Line(points={{-39,-20},{-26,-20},{-26,-6},{-12,-6}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Max.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Max. +

+

+The input u1 varies from -2 to +2, input u2 varies from -1 to +1. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Max; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Min.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Min.mo new file mode 100644 index 0000000000..7ff7169fc0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Min.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Min + "Validation model for the Min block" + IBPSA.Controls.OBC.CDL.Reals.Min min1 + "Block that pass through the smallest signal" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=-1, + height=2) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + +equation + connect(ramp1.y,min1.u1) + annotation (Line(points={{-39,20},{-26,20},{-26,6},{-12,6}},color={0,0,127})); + connect(ramp2.y,min1.u2) + annotation (Line(points={{-39,-20},{-26,-20},{-26,-6},{-12,-6}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Min.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Min. +

+

+The input u1 varies from -2 to +2, input u2 varies from -1 to +1. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Min; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Modulo.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Modulo.mo new file mode 100644 index 0000000000..23a527bc88 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Modulo.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Modulo + "Validation model for the Modulo block" + IBPSA.Controls.OBC.CDL.Reals.Modulo mod1 + "Block that outputs the remainder of first input divided by second input (~=0)" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=6) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=1.5, + height=3.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + +equation + connect(ramp1.y,mod1.u1) + annotation (Line(points={{-39,20},{-26,20},{-26,6},{-12,6}},color={0,0,127})); + connect(ramp2.y,mod1.u2) + annotation (Line(points={{-39,-20},{-26,-20},{-26,-6},{-12,-6}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Modulo.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Modulo. +

+

+The input u1 varies from -2.0 to +6.0, input u2 varies from +1.5 to +4.5 +

+", + revisions=" + +"), + Icon( + 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}})})); +end Modulo; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/MovingAverage.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/MovingAverage.mo new file mode 100644 index 0000000000..1f7d2a7f8a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/MovingAverage.mo @@ -0,0 +1,113 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model MovingAverage "Validation model for the MovingAverage block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin sinInpNoDel( + freqHz=1/80) "Start from zero second" + annotation (Placement(transformation(extent={{-90,50},{-70,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve1(delta=100) + "Moving average with 100 s sliding window" + annotation (Placement(transformation(extent={{-40,50},{-20,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve2(delta=200) + "Moving average with 200 s sliding window" + annotation (Placement(transformation(extent={{-40,20},{-20,40}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve3(delta=300) + "Moving average with 300 s sliding window" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve4(delta=400) + "Moving average with 400 s sliding window" + annotation (Placement(transformation(extent={{-40,-40},{-20,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve5(delta=500) + "Moving average with 500 s sliding window" + annotation (Placement(transformation(extent={{-40,-70},{-20,-50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin sinInp50sDel( + freqHz=1/80, + startTime=50) + "Start from 50 seconds" + annotation (Placement(transformation(extent={{0,50},{20,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve6(delta=100) + "Moving average with 100 s sliding window" + annotation (Placement(transformation(extent={{60,50},{80,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve7(delta=200) + "Moving average with 200 s sliding window" + annotation (Placement(transformation(extent={{60,20},{80,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin sinInp100sDel( + freqHz=1/80, + startTime=100) + "Start from 100 seconds" + annotation (Placement(transformation(extent={{0,-30},{20,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve8(delta=100) + "Moving average with 100 s sliding window" + annotation (Placement(transformation(extent={{60,-30},{80,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve9(delta=200) + "Moving average with 200 s sliding window" + annotation (Placement(transformation(extent={{60,-60},{80,-40}}))); + +equation + connect(sinInpNoDel.y,movAve3.u) + annotation (Line(points={{-69,60},{-60,60},{-60,0},{-42,0}},color={0,0,127})); + connect(sinInpNoDel.y,movAve1.u) + annotation (Line(points={{-69,60},{-42,60}},color={0,0,127})); + connect(sinInpNoDel.y,movAve2.u) + annotation (Line(points={{-69,60},{-60,60},{-60,30},{-42,30}},color={0,0,127})); + connect(sinInpNoDel.y,movAve5.u) + annotation (Line(points={{-69,60},{-60,60},{-60,-60},{-42,-60}},color={0,0,127})); + connect(sinInpNoDel.y,movAve4.u) + annotation (Line(points={{-69,60},{-60,60},{-60,-30},{-42,-30}},color={0,0,127})); + connect(sinInp50sDel.y,movAve6.u) + annotation (Line(points={{21,60},{21,60},{58,60}},color={0,0,127})); + connect(sinInp50sDel.y,movAve7.u) + annotation (Line(points={{21,60},{21,60},{40,60},{40,30},{58,30}},color={0,0,127})); + connect(sinInp100sDel.y,movAve9.u) + annotation (Line(points={{21,-20},{21,-20},{40,-20},{40,-50},{58,-50}},color={0,0,127})); + connect(sinInp100sDel.y,movAve8.u) + annotation (Line(points={{21,-20},{58,-20}},color={0,0,127})); + annotation ( + experiment( + StopTime=900.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MovingAverage.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.MovingAverage. +

+

+The input sinInpNoDel, sinInp50sDel, +sinInp100sDel, generate sine outputs with same frequency of +1/80 Hz, but different start times of 0 second, +50 second, 100 second. +

+", +revisions=" + +"), + Icon( + 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}})})); +end MovingAverage; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/MovingAverage_nonZeroStart.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/MovingAverage_nonZeroStart.mo new file mode 100644 index 0000000000..245206c99b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/MovingAverage_nonZeroStart.mo @@ -0,0 +1,106 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model MovingAverage_nonZeroStart + "Validation model for the MovingAverage block" + Modelica.Blocks.Sources.Sine sinInpNoDel(f=1/80) "Start from zero second" + annotation (Placement(transformation(extent={{-90,50},{-70,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve1(delta=100) + "Moving average with 100 s sliding window" + annotation (Placement(transformation(extent={{-40,50},{-20,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve2(delta=200) + "Moving average with 200 s sliding window" + annotation (Placement(transformation(extent={{-40,20},{-20,40}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve3(delta=300) + "Moving average with 300 s sliding window" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve4(delta=400) + "Moving average with 400 s sliding window" + annotation (Placement(transformation(extent={{-40,-40},{-20,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve5(delta=500) + "Moving average with 500 s sliding window" + annotation (Placement(transformation(extent={{-40,-70},{-20,-50}}))); + Modelica.Blocks.Sources.Sine sinInp50sDel(f=1/80, startTime=50) + "Start from 50 seconds" + annotation (Placement(transformation(extent={{0,50},{20,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve6(delta=100) + "Moving average with 100 s sliding window" + annotation (Placement(transformation(extent={{60,50},{80,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve7(delta=200) + "Moving average with 200 s sliding window" + annotation (Placement(transformation(extent={{60,20},{80,40}}))); + Modelica.Blocks.Sources.Sine sinInp100sDel(f=1/80, startTime=100) + "Start from 100 seconds" + annotation (Placement(transformation(extent={{0,-30},{20,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve8(delta=100) + "Moving average with 100 s sliding window" + annotation (Placement(transformation(extent={{60,-30},{80,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.MovingAverage movAve9(delta=200) + "Moving average with 200 s sliding window" + annotation (Placement(transformation(extent={{60,-60},{80,-40}}))); + +equation + connect(sinInpNoDel.y,movAve3.u) + annotation (Line(points={{-69,60},{-60,60},{-60,0},{-42,0}},color={0,0,127})); + connect(sinInpNoDel.y,movAve1.u) + annotation (Line(points={{-69,60},{-42,60}},color={0,0,127})); + connect(sinInpNoDel.y,movAve2.u) + annotation (Line(points={{-69,60},{-60,60},{-60,30},{-42,30}},color={0,0,127})); + connect(sinInpNoDel.y,movAve5.u) + annotation (Line(points={{-69,60},{-60,60},{-60,-60},{-42,-60}},color={0,0,127})); + connect(sinInpNoDel.y,movAve4.u) + annotation (Line(points={{-69,60},{-60,60},{-60,-30},{-42,-30}},color={0,0,127})); + connect(sinInp50sDel.y,movAve6.u) + annotation (Line(points={{21,60},{21,60},{58,60}},color={0,0,127})); + connect(sinInp50sDel.y,movAve7.u) + annotation (Line(points={{21,60},{21,60},{40,60},{40,30},{58,30}},color={0,0,127})); + connect(sinInp100sDel.y,movAve9.u) + annotation (Line(points={{21,-20},{21,-20},{40,-20},{40,-50},{58,-50}},color={0,0,127})); + connect(sinInp100sDel.y,movAve8.u) + annotation (Line(points={{21,-20},{58,-20}},color={0,0,127})); + annotation ( + experiment( + StartTime=100, + StopTime=900.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MovingAverage_nonZeroStart.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.MovingAverage. +

+

+The inputs sinInpNoDel, sinInp50sDel and +sinInp100sDel generate sine outputs with the same frequency of +1/80 Hertz, but different start times of 0 seconds, +50 seconds and 100 seconds. +

+", +revisions=" + +"), + Icon( + 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}})})); +end MovingAverage_nonZeroStart; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/MultiMax.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/MultiMax.mo new file mode 100644 index 0000000000..14327a02f7 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/MultiMax.mo @@ -0,0 +1,56 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model MultiMax + "Validation model for the MultiMax block" + parameter Integer sizOfVec=5 + "Size of the input vector"; + IBPSA.Controls.OBC.CDL.Reals.MultiMax maxVal( + nin=sizOfVec) + "Block that outputs the maximum element of the input vector" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant con[sizOfVec]( + k={1,2,3,4,5}) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-58,-10},{-38,10}}))); + +equation + connect(con.y,maxVal.u) + annotation (Line(points={{-37,0},{-24.5,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiMax.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.MultiMax. +

+

+The input vectorcon has size 5 and its element values are {1,2,3,4,5}. +

+", + revisions=" + +"), + Icon( + 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}})})); +end MultiMax; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/MultiMin.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/MultiMin.mo new file mode 100644 index 0000000000..a03a49f5bd --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/MultiMin.mo @@ -0,0 +1,58 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model MultiMin + "Validation model for the MultiMin block" + parameter Integer sizOfVec=5 + "Size of the input vector"; + IBPSA.Controls.OBC.CDL.Reals.MultiMin minVal( + nin=sizOfVec) + "Block that outputs the minimum element of the input vector" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant con[sizOfVec]( + k={1,2,3,4,5}) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-58,-10},{-38,10}}))); + +equation + for i in 1:sizOfVec loop + connect(con[i].y,minVal.u[i]) + annotation (Line(points={{-37,0},{-24.5,0},{-12,0}},color={0,0,127})); + end for; + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiMin.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.MultiMin. +

+

+The input vectorcon has size 5 and its element values are {1,2,3,4,5}. +

+", + revisions=" + +"), + Icon( + 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}})})); +end MultiMin; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/MultiSum.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/MultiSum.mo new file mode 100644 index 0000000000..eebdba0895 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/MultiSum.mo @@ -0,0 +1,137 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model MultiSum + "Model to validate the application of MultiSum block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,50},{-40,70}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + height=2, + duration=1, + offset=-1) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,20},{-40,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp3( + height=3, + duration=1, + offset=-1) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp4( + height=3, + duration=1, + offset=-2) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-40},{-40,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp5( + height=3, + duration=1, + offset=-3) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-70},{-40,-50}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiSum mulSum_5( + nin=5, + k={1,0.5,0.1,1,2}) + "Sum of Reals, y = k[1]*u[1] + k[2]*u[2] + ... + k[5]*u[5]" + annotation (Placement(transformation(extent={{40,-40},{60,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiSum mulSum_2( + nin=2, + k={1,0.5}) + "Sum of Reals, y = k[1]*u[1] + k[2]*u[2]" + annotation (Placement(transformation(extent={{40,0},{60,20}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiSum mulSum_1( + nin=1, + k={1}) + "Sum of Reals, y = k[1]*u[1]" + annotation (Placement(transformation(extent={{40,40},{60,60}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiSum mulSum_3( + nin=3) + "Sum of Reals, y = k[1]*u[1] + k[2]*u[2]" + annotation (Placement(transformation(extent={{40,-92},{60,-72}}))); + +equation + connect(ramp1.y,mulSum_5.u[1]) + annotation (Line(points={{-39,60},{-39,60},{20,60},{20,-28.4},{38,-28.4}},color={0,0,127})); + connect(ramp2.y,mulSum_5.u[2]) + annotation (Line(points={{-39,30},{-39,30},{10,30},{10,-29.2},{38,-29.2}},color={0,0,127})); + connect(ramp3.y,mulSum_5.u[3]) + annotation (Line(points={{-39,0},{0,0},{0,-30},{38,-30}},color={0,0,127})); + connect(ramp4.y,mulSum_5.u[4]) + annotation (Line(points={{-39,-30},{-20,-30},{-20,-32},{10,-32},{10,-30.8},{38,-30.8}},color={0,0,127})); + connect(ramp5.y,mulSum_5.u[5]) + annotation (Line(points={{-39,-60},{20,-60},{20,-31.6},{38,-31.6}},color={0,0,127})); + connect(ramp1.y,mulSum_1.u[1]) + annotation (Line(points={{-39,60},{20,60},{20,50},{38,50}},color={0,0,127})); + connect(ramp1.y,mulSum_2.u[1]) + annotation (Line(points={{-39,60},{20,60},{20,11},{38,11}},color={0,0,127})); + connect(ramp2.y,mulSum_2.u[2]) + annotation (Line(points={{-39,30},{10,30},{10,9},{38,9}},color={0,0,127})); + connect(ramp4.y,mulSum_3.u[1]) + annotation (Line(points={{-39,-30},{-0.5,-30},{-0.5,-80.6667},{38,-80.6667}},color={0,0,127})); + connect(ramp5.y,mulSum_3.u[2]) + annotation (Line(points={{-39,-60},{0,-60},{0,-82},{38,-82}},color={0,0,127})); + connect(ramp5.y,mulSum_3.u[3]) + annotation (Line(points={{-39,-60},{0,-60},{0,-83.3333},{38,-83.3333}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiSum.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.MultiSum. +

+

+The inputs and gains are configured as follows: +

+ +", + revisions=" + +"), + Icon( + 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}})})); +end MultiSum; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Multiply.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Multiply.mo new file mode 100644 index 0000000000..2616dd9f62 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Multiply.mo @@ -0,0 +1,67 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Multiply "Validation model for the Multiply block" + IBPSA.Controls.OBC.CDL.Reals.Multiply product1 + "Block that outputs product of the two inputs" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=-1, + height=3) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + +equation + connect(ramp1.y,product1.u1) + annotation (Line(points={{-38,20},{-26,20},{-26,6},{-12,6}},color={0,0,127})); + connect(ramp2.y,product1.u2) + annotation (Line(points={{-38,-20},{-26,-20},{-26,-6},{-12,-6}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Multiply.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Multiply. +

+

+The input u1 varies from -2 to +2, input u2 varies from -1 to +2. +

+", +revisions=" + +"), + Icon( + 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}})})); +end Multiply; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/MultiplyByParameter.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/MultiplyByParameter.mo new file mode 100644 index 0000000000..692e9f4d0a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/MultiplyByParameter.mo @@ -0,0 +1,59 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model MultiplyByParameter "Validation model for the Gain block" + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter gain1(k=2.5) + "Block that outputs the product of a gain value with the input signal" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=2) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y,gain1.u) + annotation (Line(points={{-38,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiplyByParameter.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter. +

+

+The input u varies from 0.0 to +2. +

+", +revisions=" + +"), + Icon( + 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}})})); +end MultiplyByParameter; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/PID.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/PID.mo new file mode 100644 index 0000000000..6cdfe5ccca --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/PID.mo @@ -0,0 +1,122 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model PID + "Test model for PID controller" + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pulse( + period=0.25) + "Setpoint" + annotation (Placement(transformation(extent={{-90,14},{-70,34}}))); + IBPSA.Controls.OBC.CDL.Reals.PID limPID( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PID, + Ti=1, + Td=1, + yMin=-1) + "PID controller" + annotation (Placement(transformation(extent={{-30,40},{-10,60}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant const( + k=0.5) + "Measurement data" + annotation (Placement(transformation(extent={{-90,-22},{-70,-2}}))); + IBPSA.Controls.OBC.CDL.Reals.PID limPI( + Ti=1, + Td=1, + yMin=-1, + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PI) + "PI controller" + annotation (Placement(transformation(extent={{-30,2},{-10,22}}))); + IBPSA.Controls.OBC.CDL.Reals.PID limPD( + Ti=1, + Td=1, + yMin=-1, + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PD) + "PD controller" + annotation (Placement(transformation(extent={{-30,-30},{-10,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.PID limP( + Ti=1, + Td=1, + yMin=-1, + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.P) + "P controller" + annotation (Placement(transformation(extent={{-30,-60},{-10,-40}}))); + IBPSA.Controls.OBC.CDL.Reals.PID noLimPID( + Ti=1, + Td=1, + yMax=1e15, + yMin=-1e15, + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PID) + "PID controller with no output limit" + annotation (Placement(transformation(extent={{-30,-90},{-10,-70}}))); + +equation + connect(pulse.y,limPID.u_s) + annotation (Line(points={{-68,24},{-54,24},{-54,50},{-32,50}},color={0,0,127})); + connect(const.y,limPID.u_m) + annotation (Line(points={{-68,-12},{-62,-12},{-62,30},{-20,30},{-20,38}},color={0,0,127})); + connect(const.y,limPI.u_m) + annotation (Line(points={{-68,-12},{-62,-12},{-62,-2},{-20,-2},{-20,0}},color={0,0,127})); + connect(const.y,limPD.u_m) + annotation (Line(points={{-68,-12},{-62,-12},{-62,-34},{-20,-34},{-20,-32}},color={0,0,127})); + connect(pulse.y,limPI.u_s) + annotation (Line(points={{-68,24},{-54,24},{-54,12},{-32,12}},color={0,0,127})); + connect(pulse.y,limPD.u_s) + annotation (Line(points={{-68,24},{-54,24},{-54,-20},{-32,-20}},color={0,0,127})); + connect(pulse.y,limP.u_s) + annotation (Line(points={{-68,24},{-54,24},{-54,-50},{-32,-50}},color={0,0,127})); + connect(pulse.y,noLimPID.u_s) + annotation (Line(points={{-68,24},{-54,24},{-54,-80},{-32,-80}},color={0,0,127})); + connect(const.y,limP.u_m) + annotation (Line(points={{-68,-12},{-62,-12},{-62,-64},{-20,-64},{-20,-62}},color={0,0,127})); + connect(const.y,noLimPID.u_m) + annotation (Line(points={{-68,-12},{-62,-12},{-62,-96},{-20,-96},{-20,-92}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PID.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.PID. +This tests the different settings for the controller types. +

+", + revisions=" + +"), + Icon( + 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}})})); +end PID; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDInitialDerivativeOutput.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDInitialDerivativeOutput.mo new file mode 100644 index 0000000000..a2c17ea4cf --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDInitialDerivativeOutput.mo @@ -0,0 +1,81 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model PIDInitialDerivativeOutput + "Test model for LimPID controller with initial output of the derivative term specified" + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant ySet( + k=0.75) + "Set point" + annotation (Placement(transformation(extent={{-40,30},{-20,50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant yMea( + k=0.75) + "Measured value" + annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); + IBPSA.Controls.OBC.CDL.Reals.PID limPID( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PID, + k=3, + yd_start=0.2) + "PID controller" + annotation (Placement(transformation(extent={{20,20},{40,40}}))); + IBPSA.Controls.OBC.CDL.Reals.PID limPD( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PD, + k=3, + yd_start=0.2) + "PD controller" + annotation (Placement(transformation(extent={{20,-40},{40,-20}}))); + +equation + connect(ySet.y,limPID.u_s) + annotation (Line(points={{-18,40},{0,40},{0,30},{18,30}},color={0,0,127})); + connect(ySet.y,limPD.u_s) + annotation (Line(points={{-18,40},{0,40},{0,-30},{18,-30}},color={0,0,127})); + connect(yMea.y,limPID.u_m) + annotation (Line(points={{-18,10},{30,10},{30,18}},color={0,0,127})); + connect(yMea.y,limPD.u_m) + annotation (Line(points={{-18,10},{-4,10},{-4,-50},{30,-50},{30,-42}},color={0,0,127})); + annotation ( + experiment( + StopTime=0.2, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDInitialDerivativeOutput.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.PID. +

+

+This model validates setting the initial output of the controller to a specified value. +Note that the control error must be zero for the initial output to be at the specified value. +See the description of + +IBPSA.Controls.OBC.CDL.Reals.PID. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + extent={{-100,-100},{100,100}}), + 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( + extent={{-100,-100},{100,100}}))); +end PIDInitialDerivativeOutput; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDInitialState.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDInitialState.mo new file mode 100644 index 0000000000..b2c1ea38e4 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDInitialState.mo @@ -0,0 +1,88 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model PIDInitialState + "Test model for LimPID controller with initial state specified" + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant ySet( + k=0.75) + "Set point" + annotation (Placement(transformation(extent={{-40,30},{-20,50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant yMea( + k=0.5) + "Measured value" + annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); + IBPSA.Controls.OBC.CDL.Reals.PID limPID( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PID, + k=3, + xi_start=0.25) + "PID controller" + annotation (Placement(transformation(extent={{20,20},{40,40}}))); + IBPSA.Controls.OBC.CDL.Reals.PID limPI( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PI, + k=3, + xi_start=0.25) + "PI controller" + annotation (Placement(transformation(extent={{20,-40},{40,-20}}))); + +equation + connect(ySet.y,limPID.u_s) + annotation (Line(points={{-18,40},{0,40},{0,30},{18,30}},color={0,0,127})); + connect(ySet.y,limPI.u_s) + annotation (Line(points={{-18,40},{0,40},{0,-30},{18,-30}},color={0,0,127})); + connect(yMea.y,limPID.u_m) + annotation (Line(points={{-18,10},{30,10},{30,18}},color={0,0,127})); + connect(yMea.y,limPI.u_m) + annotation (Line(points={{-18,10},{-4,10},{-4,-50},{30,-50},{30,-42}},color={0,0,127})); + annotation ( + experiment( + StopTime=1, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDInitialState.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.PID. +

+

+This model validates setting the initial state of the controller to a specified value. +

+

+The model sets the initial values xi_start=0.25 +of the integrator for both instances of the controller. +For the instance limPID, it also sets the initial value of the state of the +derivative block xd_start=-0.5. +The derivative block obtains as an input signal the value +u=-0.5 because the set point weight for the derivative action is wd=0. +Therefore, an initial state of x(t0)=-0.5 causes the state of the derivative +block to be at steady-state, because +dx(t)/dt = (u - x)/T. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + extent={{-100,-100},{100,100}}), + 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( + extent={{-100,-100},{100,100}}))); +end PIDInitialState; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDScale.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDScale.mo new file mode 100644 index 0000000000..781841e085 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDScale.mo @@ -0,0 +1,120 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model PIDScale + "Test model for PID controller with scaling of the control error" + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pulse( + amplitude=1000, + period=50) + "Setpoint" + annotation (Placement(transformation(extent={{-80,40},{-60,60}}))); + IBPSA.Controls.OBC.CDL.Reals.PID pidSca( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PID, + k=2, + Ti=1, + Td=2, + r=1000, + yMin=-1) + "PID controller with scaling of control input" + annotation (Placement(transformation(extent={{0,40},{20,60}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset pla1( + k=1000) + "Plant model" + annotation (Placement(transformation(extent={{40,40},{60,60}}))); + Reals.Sources.Constant resVal( + k=0) + "Reset value" + annotation (Placement(transformation(extent={{-80,0},{-60,20}}))); + Logical.Sources.Constant resSig( + k=false) + "Reset signal" + annotation (Placement(transformation(extent={{-80,-40},{-60,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.PID pidNoSca( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PID, + k=2, + Ti=1, + Td=2, + yMin=-1) + "PID controller without scaling of control input" + annotation (Placement(transformation(extent={{0,-60},{20,-40}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter gai(k=1/1000) + "Gain to scale setpoint" + annotation (Placement(transformation(extent={{-40,-60},{-20,-40}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter gai1(k=1/1000) + "Gain to scale measured value" + annotation (Placement(transformation(extent={{52,-90},{32,-70}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset pla2( + k=1000) + "Plant model" + annotation (Placement(transformation(extent={{40,-60},{60,-40}}))); + +equation + connect(pulse.y,pidSca.u_s) + annotation (Line(points={{-58,50},{-2,50}},color={0,0,127})); + connect(pla1.u,pidSca.y) + annotation (Line(points={{38,50},{22,50}},color={0,0,127})); + connect(pla1.y,pidSca.u_m) + annotation (Line(points={{62,50},{82,50},{82,0},{10,0},{10,38}},color={0,0,127})); + connect(resVal.y,pla1.y_reset_in) + annotation (Line(points={{-58,10},{30,10},{30,42},{38,42}},color={0,0,127})); + connect(resSig.y,pla1.trigger) + annotation (Line(points={{-58,-30},{50,-30},{50,38}},color={255,0,255})); + connect(gai.y,pidNoSca.u_s) + annotation (Line(points={{-18,-50},{-2,-50}},color={0,0,127})); + connect(gai.u,pulse.y) + annotation (Line(points={{-42,-50},{-50,-50},{-50,50},{-60,50}},color={0,0,127})); + connect(pidNoSca.y,pla2.u) + annotation (Line(points={{22,-50},{38,-50}},color={0,0,127})); + connect(pla2.y,gai1.u) + annotation (Line(points={{62,-50},{70,-50},{70,-80},{54,-80}},color={0,0,127})); + connect(gai1.y,pidNoSca.u_m) + annotation (Line(points={{30,-80},{10,-80},{10,-60}},color={0,0,127})); + connect(pla2.y_reset_in,resVal.y) + annotation (Line(points={{38,-58},{30,-58},{30,10},{-60,10}},color={0,0,127})); + connect(resSig.y,pla2.trigger) + annotation (Line(points={{-58,-30},{26,-30},{26,-64},{50,-64},{50,-62}},color={255,0,255})); + annotation ( + experiment( + StopTime=100.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDScale.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.PID +with and without setting of the parameter that scales the control error. +

+

+The test has two combinations of a PID controller and a plant. +In PIDSca, the control error is scaled inside the controller, whereas +in the configuration that has PIDNoSca, the setpoint signal and the +measurement signal is scaled outside of the controller. +Both controllers and plants have the same trajectory, thereby validating that +the scaling is implemented correctly. +

+", + revisions=" + +"), + Icon( + 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}})})); +end PIDScale; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDWithReset.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDWithReset.mo new file mode 100644 index 0000000000..12186226f9 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDWithReset.mo @@ -0,0 +1,167 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model PIDWithReset + "Test model for LimPID controller with reset trigger" + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal setPoi + "Set point" + annotation (Placement(transformation(extent={{-20,-40},{0,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.CivilTime modTim + "Civil time" + annotation (Placement(transformation(extent={{-80,-70},{-60,-50}}))); + IBPSA.Controls.OBC.CDL.Reals.GreaterThreshold greEquThr( + t=1) + "Outputs true after t=1" + annotation (Placement(transformation(extent={{-52,-70},{-32,-50}}))); + IBPSA.Controls.OBC.CDL.Reals.PIDWithReset limPIDPar( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PID, + k=1, + Ti=1, + Td=1, + yMin=-1, + y_reset=0.5) + "Controller, reset to parameter value" + annotation (Placement(transformation(extent={{20,60},{40,80}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset intWitRes1 + "Integrator whose output should be brought to the set point" + annotation (Placement(transformation(extent={{60,60},{80,80}}))); + IBPSA.Controls.OBC.CDL.Reals.PIDWithReset limPIDInp( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PID, + k=1, + Ti=1, + Td=1, + yMin=-1, + y_reset=0.75) + "Controller, reset to input value" + annotation (Placement(transformation(extent={{20,20},{40,40}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset intWitRes2 + "Integrator whose output should be brought to the set point" + annotation (Placement(transformation(extent={{60,20},{80,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant resVal( + k=0) + "Reset value" + annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.PIDWithReset limPIPar( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PI, + k=1, + Ti=1, + Td=1, + yMin=-1, + y_reset=0.5) + "Controller, reset to parameter value" + annotation (Placement(transformation(extent={{20,-40},{40,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset intWitRes3 + "Integrator whose output should be brought to the set point" + annotation (Placement(transformation(extent={{60,-40},{80,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.PIDWithReset limPIInp( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PI, + k=1, + Ti=1, + Td=1, + yMin=-1, + y_reset=0.75) + "Controller, reset to input value" + annotation (Placement(transformation(extent={{20,-80},{40,-60}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset intWitRes4 + "Integrator whose output should be brought to the set point" + annotation (Placement(transformation(extent={{60,-80},{80,-60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant con( + final k=false) + "Constant false" + annotation (Placement(transformation(extent={{-80,30},{-60,50}}))); + +equation + connect(limPIDPar.u_s,setPoi.y) + annotation (Line(points={{18,70},{6,70},{6,-30},{2,-30}},color={0,0,127})); + connect(intWitRes1.u,limPIDPar.y) + annotation (Line(points={{58,70},{42,70}},color={0,0,127})); + connect(intWitRes1.y,limPIDPar.u_m) + annotation (Line(points={{82,70},{90,70},{90,50},{30,50},{30,58}},color={0,0,127})); + connect(modTim.y,greEquThr.u) + annotation (Line(points={{-58,-60},{-54,-60}},color={0,0,127})); + connect(greEquThr.y,setPoi.u) + annotation (Line(points={{-30,-60},{-26,-60},{-26,-30},{-22,-30}},color={255,0,255})); + connect(greEquThr.y,limPIDPar.trigger) + annotation (Line(points={{-30,-60},{12,-60},{12,50},{24,50},{24,58}},color={255,0,255})); + connect(intWitRes2.u,limPIDInp.y) + annotation (Line(points={{58,30},{42,30}},color={0,0,127})); + connect(intWitRes2.y,limPIDInp.u_m) + annotation (Line(points={{82,30},{90,30},{90,10},{30,10},{30,18}},color={0,0,127})); + connect(limPIDInp.u_s,setPoi.y) + annotation (Line(points={{18,30},{6,30},{6,-30},{2,-30}},color={0,0,127})); + connect(limPIPar.u_s,setPoi.y) + annotation (Line(points={{18,-30},{2,-30}},color={0,0,127})); + connect(intWitRes3.u,limPIPar.y) + annotation (Line(points={{58,-30},{42,-30}},color={0,0,127})); + connect(intWitRes3.y,limPIPar.u_m) + annotation (Line(points={{82,-30},{90,-30},{90,-50},{30,-50},{30,-42}},color={0,0,127})); + connect(greEquThr.y,limPIPar.trigger) + annotation (Line(points={{-30,-60},{12,-60},{12,-50},{24,-50},{24,-42}},color={255,0,255})); + connect(intWitRes4.u,limPIInp.y) + annotation (Line(points={{58,-70},{42,-70}},color={0,0,127})); + connect(intWitRes4.y,limPIInp.u_m) + annotation (Line(points={{82,-70},{90,-70},{90,-90},{30,-90},{30,-82}},color={0,0,127})); + connect(limPIInp.u_s,setPoi.y) + annotation (Line(points={{18,-70},{6,-70},{6,-30},{2,-30}},color={0,0,127})); + connect(greEquThr.y,limPIInp.trigger) + annotation (Line(points={{-30,-60},{12,-60},{12,-90},{24,-90},{24,-82}},color={255,0,255})); + connect(limPIDInp.trigger,greEquThr.y) + annotation (Line(points={{24,18},{24,10},{12,10},{12,-60},{-30,-60}},color={255,0,255})); + connect(resVal.y,intWitRes1.y_reset_in) + annotation (Line(points={{-58,0},{48,0},{48,62},{58,62}},color={0,0,127})); + connect(resVal.y,intWitRes2.y_reset_in) + annotation (Line(points={{-58,0},{48,0},{48,22},{58,22}},color={0,0,127})); + connect(resVal.y,intWitRes3.y_reset_in) + annotation (Line(points={{-58,0},{48,0},{48,-38},{58,-38}},color={0,0,127})); + connect(resVal.y,intWitRes4.y_reset_in) + annotation (Line(points={{-58,0},{48,0},{48,-78},{58,-78}},color={0,0,127})); + connect(con.y,intWitRes1.trigger) + annotation (Line(points={{-58,40},{-20,40},{-20,-6},{54,-6},{54,54},{70,54},{70,58}},color={255,0,255})); + connect(con.y,intWitRes2.trigger) + annotation (Line(points={{-58,40},{-20,40},{-20,-6},{70,-6},{70,18}},color={255,0,255})); + connect(con.y,intWitRes3.trigger) + annotation (Line(points={{-58,40},{-20,40},{-20,-6},{54,-6},{54,-46},{70,-46},{70,-42}},color={255,0,255})); + connect(con.y,intWitRes4.trigger) + annotation (Line(points={{-58,40},{-20,40},{-20,-6},{54,-6},{54,-86},{70,-86},{70,-82}},color={255,0,255})); + annotation ( + experiment( + StopTime=10, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDWithReset.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.PID. +

+

+This model validates the controller for different settings of the control output reset. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + extent={{-100,-100},{100,100}}), + 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( + extent={{-100,-100},{100,100}}))); +end PIDWithReset; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDWithResetScale.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDWithResetScale.mo new file mode 100644 index 0000000000..06eac2deb7 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/PIDWithResetScale.mo @@ -0,0 +1,130 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model PIDWithResetScale + "Test model for PID controller with reset and scaling of the control error" + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pulse( + amplitude=1000, + period=50) + "Setpoint" + annotation (Placement(transformation(extent={{-80,60},{-60,80}}))); + IBPSA.Controls.OBC.CDL.Reals.PIDWithReset pidSca( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PID, + k=2, + Ti=1, + Td=2, + r=1000, + yMin=-1, + y_reset=0) + "PID controller with scaling of control input" + annotation (Placement(transformation(extent={{0,40},{20,60}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset pla1( + k=1000) + "Plant model" + annotation (Placement(transformation(extent={{40,40},{60,60}}))); + Reals.Sources.Constant resVal( + k=0) + "Reset value" + annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); + Logical.Sources.Constant resSig( + k=false) + "Reset signal" + annotation (Placement(transformation(extent={{-80,-40},{-60,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.PIDWithReset pidNoSca( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PID, + k=2, + Ti=1, + Td=2, + yMin=-1, + y_reset=0) + "PID controller without scaling of control input" + annotation (Placement(transformation(extent={{0,-60},{20,-40}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter gai(k=1/1000) + "Gain to scale setpoint" + annotation (Placement(transformation(extent={{-40,-60},{-20,-40}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter gai1(k=1/1000) + "Gain to scale measured value" + annotation (Placement(transformation(extent={{52,-90},{32,-70}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset pla2( + k=1000) + "Plant model" + annotation (Placement(transformation(extent={{40,-60},{60,-40}}))); + Logical.Sources.Pulse booPul( + period=30) + "Pulse for controller reset" + annotation (Placement(transformation(extent={{-80,20},{-60,40}}))); + +equation + connect(pulse.y,pidSca.u_s) + annotation (Line(points={{-58,70},{-30,70},{-30,50},{-2,50}},color={0,0,127})); + connect(pla1.u,pidSca.y) + annotation (Line(points={{38,50},{22,50}},color={0,0,127})); + connect(pla1.y,pidSca.u_m) + annotation (Line(points={{62,50},{82,50},{82,0},{10,0},{10,38}},color={0,0,127})); + connect(resVal.y,pla1.y_reset_in) + annotation (Line(points={{-58,0},{30,0},{30,42},{38,42}},color={0,0,127})); + connect(resSig.y,pla1.trigger) + annotation (Line(points={{-58,-30},{50,-30},{50,38}},color={255,0,255})); + connect(gai.y,pidNoSca.u_s) + annotation (Line(points={{-18,-50},{-2,-50}},color={0,0,127})); + connect(gai.u,pulse.y) + annotation (Line(points={{-42,-50},{-50,-50},{-50,70},{-58,70}},color={0,0,127})); + connect(pidNoSca.y,pla2.u) + annotation (Line(points={{22,-50},{38,-50}},color={0,0,127})); + connect(pla2.y,gai1.u) + annotation (Line(points={{62,-50},{70,-50},{70,-80},{54,-80}},color={0,0,127})); + connect(gai1.y,pidNoSca.u_m) + annotation (Line(points={{30,-80},{10,-80},{10,-60}},color={0,0,127})); + connect(pla2.y_reset_in,resVal.y) + annotation (Line(points={{38,-58},{30,-58},{30,0},{-58,0}},color={0,0,127})); + connect(resSig.y,pla2.trigger) + annotation (Line(points={{-58,-30},{26,-30},{26,-64},{50,-64},{50,-62}},color={255,0,255})); + connect(booPul.y,pidSca.trigger) + annotation (Line(points={{-58,30},{4,30},{4,38}},color={255,0,255})); + connect(booPul.y,pidNoSca.trigger) + annotation (Line(points={{-58,30},{-10,30},{-10,-72},{4,-72},{4,-62}},color={255,0,255})); + annotation ( + experiment( + StopTime=100.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDWithResetScale.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.PIDWithReset +with and without setting of the parameter that scales the control error. +

+

+The test has two combinations of a PID controller and a plant. +In PIDSca, the control error is scaled inside the controller, whereas +in the configuration that has PIDNoSca, the setpoint signal and the +measurement signal is scaled outside of the controller. +Both controllers and plants have the same trajectory, thereby validating that +the scaling is implemented correctly. +

+", + revisions=" + +"), + Icon( + 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}})})); +end PIDWithResetScale; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Ramp.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Ramp.mo new file mode 100644 index 0000000000..e51c1e8ea6 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Ramp.mo @@ -0,0 +1,127 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Ramp "Validation model for the Ramp block" + + IBPSA.Controls.OBC.CDL.Reals.Ramp ramUp( + final raisingSlewRate=1/20) + "Ramp the input increasing" + annotation (Placement(transformation(extent={{-40,70},{-20,90}}))); + IBPSA.Controls.OBC.CDL.Reals.Ramp ramUp1( + final raisingSlewRate=1/10) + "Ramp the input increasing in different speed" + annotation (Placement(transformation(extent={{-40,10},{-20,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Ramp ramUpDow( + final raisingSlewRate=1/5) + "Limit the increase and decrease of the input if the active is true" + annotation (Placement(transformation(extent={{-40,-70},{-20,-50}}))); + IBPSA.Controls.OBC.CDL.Reals.Ramp ramUpDow1( + final raisingSlewRate=1/5, + final fallingSlewRate=-1/2) + "Different increase and decrease slew rate limits" + annotation (Placement(transformation(extent={{80,-10},{100,10}}))); + + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + final width=0.9, + final period=12, + final shift=1) + "Boolean pulse" + annotation (Placement(transformation(extent={{-100,20},{-80,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pul( + final width=0.8, + final period=12.0, + final shift=2.0) + "Boolean pulse" + annotation (Placement(transformation(extent={{-100,70},{-80,90}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul2( + final width=0.9, + final period=12, + final shift=2) + "Boolean pulse" + annotation (Placement(transformation(extent={{-100,-100},{-80,-80}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pul1( + final width=0.2, + final period=12.0, + final shift=1.5) + "Boolean pulse" + annotation (Placement(transformation(extent={{-100,-40},{-80,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pul2( + final width=0.3, + final period=12.0, + final shift=3.0) + "Boolean pulse" + annotation (Placement(transformation(extent={{20,20},{40,40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul5( + final width=0.9, + final period=12, + final shift=1) + "Boolean pulse" + annotation (Placement(transformation(extent={{20,-40},{40,-20}}))); +equation + connect(booPul2.y, ramUpDow.active) annotation (Line(points={{-78,-90},{-60,-90}, + {-60,-68},{-42,-68}}, color={255,0,255})); + connect(booPul5.y, ramUpDow1.active) annotation (Line(points={{42,-30},{70, + -30},{70,-8},{78,-8}}, + color={255,0,255})); + connect(pul.y, ramUp.u) annotation (Line(points={{-78,80},{-60,80},{-60,80},{-42, + 80}}, color={0,0,127})); + connect(pul.y, ramUp1.u) annotation (Line(points={{-78,80},{-60,80},{-60,20},{ + -42,20}}, color={0,0,127})); + connect(booPul1.y, ramUp.active) annotation (Line(points={{-78,30},{-70,30},{-70, + 72},{-42,72}}, color={255,0,255})); + connect(booPul1.y, ramUp1.active) annotation (Line(points={{-78,30},{-70,30},{ + -70,12},{-42,12}}, color={255,0,255})); + connect(pul1.y, ramUpDow.u) annotation (Line(points={{-78,-30},{-60,-30},{-60, + -60},{-42,-60}}, color={0,0,127})); + connect(pul2.y, ramUpDow1.u) + annotation (Line(points={{42,30},{70,30},{70,0},{78,0}}, color={0,0,127})); + annotation ( + experiment( + StopTime=10.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Ramp.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Ramp. +

+ +", +revisions=" + +"), + Icon(coordinateSystem(extent={{-100,-100},{100,100}}), + 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(extent={{-120,-140},{120,140}}))); +end Ramp; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Round.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Round.mo new file mode 100644 index 0000000000..12a6ff7f1d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Round.mo @@ -0,0 +1,76 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Round + "Validation model for the Round block" + IBPSA.Controls.OBC.CDL.Reals.Round round1( + n=0) + "Round real number to given digits" + annotation (Placement(transformation(extent={{40,40},{60,60}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-3.5, + height=7.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round2( + n=1) + "Round real number to given digits" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Round round3( + n=-1) + "Round real number to given digits" + annotation (Placement(transformation(extent={{40,-60},{60,-40}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter gai(k=0.1) "Gain" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter gai1(k=10) "Gain" + annotation (Placement(transformation(extent={{0,-60},{20,-40}}))); + +equation + connect(ramp1.y,round1.u) + annotation (Line(points={{-39,0},{-20,0},{-20,50},{38,50}},color={0,0,127})); + connect(ramp1.y,gai.u) + annotation (Line(points={{-39,0},{-20,0},{-2,0}},color={0,0,127})); + connect(round2.u,gai.y) + annotation (Line(points={{38,0},{21,0}},color={0,0,127})); + connect(ramp1.y,gai1.u) + annotation (Line(points={{-39,0},{-20,0},{-20,-50},{-2,-50}},color={0,0,127})); + connect(round3.u,gai1.y) + annotation (Line(points={{38,-50},{30,-50},{21,-50}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Round.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Round. +

+

+The input u varies from -3.5 to +3.5. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Round; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Sin.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Sin.mo new file mode 100644 index 0000000000..e6a3d40070 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Sin.mo @@ -0,0 +1,55 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Sin + "Validation model for the Sin block" + IBPSA.Controls.OBC.CDL.Reals.Sin sin1 + "Block that outputs the sine of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=6.2831852) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y,sin1.u) + annotation (Line(points={{-39,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Sin.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Sin. +

+

+The input u varies from 0.0 to +2π. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Sin; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Sort.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Sort.mo new file mode 100644 index 0000000000..b405676561 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Sort.mo @@ -0,0 +1,109 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Sort + "Validation model for the Sort block" + IBPSA.Controls.OBC.CDL.Reals.Sort sorAsc( + nin=5) + "Block that sorts signals in ascending order" + annotation (Placement(transformation(extent={{0,20},{20,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,56},{-40,76}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=1, + offset=-1, + height=3) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,22},{-40,42}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp3( + duration=1, + offset=2, + height=-4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp4( + duration=1, + offset=3, + height=-1) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-42},{-40,-22}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp5( + duration=1, + offset=0, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-74},{-40,-54}}))); + IBPSA.Controls.OBC.CDL.Reals.Sort sorDes( + nin=5, + ascending=false) + "Block that sorts signals in ascending order" + annotation (Placement(transformation(extent={{0,-40},{20,-20}}))); + +equation + connect(ramp1.y,sorAsc.u[1]) + annotation (Line(points={{-39,66},{-22,66},{-22,28.4},{-2,28.4}},color={0,0,127})); + connect(ramp2.y,sorAsc.u[2]) + annotation (Line(points={{-39,32},{-20,32},{-20,29.2},{-2,29.2}},color={0,0,127})); + connect(ramp3.y,sorAsc.u[3]) + annotation (Line(points={{-39,0},{-22,0},{-22,30},{-2,30}},color={0,0,127})); + connect(ramp4.y,sorAsc.u[4]) + annotation (Line(points={{-39,-32},{-22,-32},{-22,30.8},{-2,30.8}},color={0,0,127})); + connect(ramp5.y,sorAsc.u[5]) + annotation (Line(points={{-39,-64},{-20,-64},{-20,31.6},{-2,31.6}},color={0,0,127})); + connect(ramp1.y,sorDes.u[1]) + annotation (Line(points={{-39,66},{-22,66},{-22,-31.6},{-2,-31.6}},color={0,0,127})); + connect(ramp2.y,sorDes.u[2]) + annotation (Line(points={{-39,32},{-20,32},{-20,-30.8},{-2,-30.8}},color={0,0,127})); + connect(ramp3.y,sorDes.u[3]) + annotation (Line(points={{-39,0},{-22,0},{-22,-30},{-2,-30}},color={0,0,127})); + connect(ramp4.y,sorDes.u[4]) + annotation (Line(points={{-39,-32},{-22,-32},{-22,-29.2},{-2,-29.2}},color={0,0,127})); + connect(ramp5.y,sorDes.u[5]) + annotation (Line(points={{-39,-64},{-20,-64},{-20,-28.4},{-2,-28.4}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Sort.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Sort. +

+

+The input u1 varies from -2 to +2, input u2 varies from -1 to +2, +input u3 varies from +2 to -2, input u4 varies from +3 to +2, +input u5 varies from 0 to +4, +

+", + revisions=" + +"), + Icon( + 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}})})); +end Sort; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Sqrt.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Sqrt.mo new file mode 100644 index 0000000000..0b476f6938 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Sqrt.mo @@ -0,0 +1,55 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Sqrt + "Validation model for the Sqrt block" + IBPSA.Controls.OBC.CDL.Reals.Sqrt sqrt1 + "Block that outputs the square root of the input (input >= 0 required)" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=0, + height=9) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y,sqrt1.u) + annotation (Line(points={{-39,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Sqrt.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Sqrt. +

+

+The input u varies from 0.0 to +9.0. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Sqrt; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Subtract.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Subtract.mo new file mode 100644 index 0000000000..8fc615897e --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Subtract.mo @@ -0,0 +1,62 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Subtract "Validation model for the Subtract block" + IBPSA.Controls.OBC.CDL.Reals.Subtract sub + "Block that outputs the difference of the two inputs" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-2, + height=4) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + height=2, + duration=1, + offset=-0.5) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + +equation + connect(ramp1.y, sub.u1) annotation (Line(points={{-38,20},{-26,20},{-26,6},{-12, + 6}}, color={0,0,127})); + connect(ramp2.y, sub.u2) annotation (Line(points={{-38,-20},{-26,-20},{-26,-6}, + {-12,-6}}, color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Subtract.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Subtract. +

+

+The input u1 varies from -2 to +2, input u2 varies from -1 to +1. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Subtract; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Switch.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Switch.mo new file mode 100644 index 0000000000..ca772c6b80 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Switch.mo @@ -0,0 +1,66 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Switch "Validation model for the Switch block" + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=5, + offset=-1, + height=6) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-26,22},{-6,42}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp2( + duration=5, + offset=-1, + height=2) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-26,-42},{-6,-22}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + width=0.5, + period=2) + "Block that outputs cyclic on and off" + annotation (Placement(transformation(extent={{-26,-10},{-6,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Switch switch1 + "Switch between two real inputs" + annotation (Placement(transformation(extent={{26,-10},{46,10}}))); + +equation + connect(booPul.y,switch1.u2) + annotation (Line(points={{-4,0},{-4,0},{24,0}},color={255,0,255})); + connect(ramp2.y,switch1.u3) + annotation (Line(points={{-4,-32},{8,-32},{8,-8},{24,-8}},color={0,0,127})); + connect(ramp1.y,switch1.u1) + annotation (Line(points={{-4,32},{8,32},{8,8},{24,8}},color={0,0,127})); + annotation ( + experiment( + StopTime=5.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Switch.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Switch. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Switch; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/Tan.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/Tan.mo new file mode 100644 index 0000000000..8b5f1c40eb --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/Tan.mo @@ -0,0 +1,55 @@ +within IBPSA.Controls.OBC.CDL.Reals.Validation; +model Tan + "Validation model for the Tan block" + IBPSA.Controls.OBC.CDL.Reals.Tan tan1 + "Block that outputs the sine of the input" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ramp1( + duration=1, + offset=-1.5, + height=3.0) + "Block that generates ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ramp1.y,tan1.u) + annotation (Line(points={{-39,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Tan.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Reals.Tan. +

+

+The input u varies from -1.5 to +1.5. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Tan; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/package.mo b/IBPSA/Controls/OBC/CDL/Reals/Validation/package.mo new file mode 100644 index 0000000000..34615e147b --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL.Reals; +package Validation "Collection of models that validate the continuous blocks of the CDL" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains models that validate the blocks in + +IBPSA.Controls.OBC.CDL.Reals. +

+

+The examples plot various outputs, which have been verified against +analytical solutions. These model outputs are stored as reference data to +allow continuous validation whenever models in the library change. +

+"), + 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), + Polygon( + origin={8.0,14.0}, + 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}}), + Rectangle( + lineColor={128,128,128}, + extent={{-100.0,-100.0},{100.0,100.0}}, + radius=25.0)})); +end Validation; diff --git a/IBPSA/Controls/OBC/CDL/Reals/Validation/package.order b/IBPSA/Controls/OBC/CDL/Reals/Validation/package.order new file mode 100644 index 0000000000..a3a46092e0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/Validation/package.order @@ -0,0 +1,50 @@ +Abs +Acos +Add +AddParameter +Asin +Atan +Atan2 +Average +Cos +Derivative +Divide +Exp +Greater +GreaterThreshold +Hysteresis +IntegratorWithReset +Less +LessThreshold +LimitSlewRate +Limiter +Line +Log +Log10 +MatrixGain +MatrixMax +MatrixMin +Max +Min +Modulo +MovingAverage +MovingAverage_nonZeroStart +MultiMax +MultiMin +MultiSum +Multiply +MultiplyByParameter +PID +PIDInitialDerivativeOutput +PIDInitialState +PIDScale +PIDWithReset +PIDWithResetScale +Ramp +Round +Sin +Sort +Sqrt +Subtract +Switch +Tan diff --git a/IBPSA/Controls/OBC/CDL/Reals/package.mo b/IBPSA/Controls/OBC/CDL/Reals/package.mo new file mode 100644 index 0000000000..2666a2b1b2 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL; +package Reals "Package with blocks for continuous variables" + annotation ( + Documentation( + info=" +

+Package with blocks for elementary mathematical functions +for continuous variables. +

+", + 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), + Text( + extent={{-52,86},{52,-92}}, + textColor={0,0,0}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid, + textString="R"), + Rectangle( + lineColor={128,128,128}, + extent={{-100.0,-100.0},{100.0,100.0}}, + radius=25.0)})); +end Reals; diff --git a/IBPSA/Controls/OBC/CDL/Reals/package.order b/IBPSA/Controls/OBC/CDL/Reals/package.order new file mode 100644 index 0000000000..29bdf47966 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Reals/package.order @@ -0,0 +1,47 @@ +Abs +Acos +Add +AddParameter +Asin +Atan +Atan2 +Average +Cos +Derivative +Divide +Exp +Greater +GreaterThreshold +Hysteresis +IntegratorWithReset +Less +LessThreshold +LimitSlewRate +Limiter +Line +Log +Log10 +MatrixGain +MatrixMax +MatrixMin +Max +Min +Modulo +MovingAverage +MultiMax +MultiMin +MultiSum +Multiply +MultiplyByParameter +PID +PIDWithReset +Ramp +Round +Sin +Sort +Sqrt +Subtract +Switch +Tan +Sources +Validation diff --git a/IBPSA/Controls/OBC/CDL/Routing/BooleanExtractSignal.mo b/IBPSA/Controls/OBC/CDL/Routing/BooleanExtractSignal.mo new file mode 100644 index 0000000000..13bc1e3149 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/BooleanExtractSignal.mo @@ -0,0 +1,178 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block BooleanExtractSignal + "Extract signals from a boolean input signal vector" + parameter Integer nin=1 + "Number of inputs"; + parameter Integer nout=1 + "Number of outputs"; + parameter Integer extract[nout]=1:nout + "Extracting vector"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u[nin] + "Boolean input signals" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y[nout] + "Boolean signals extracted from the input vector with the extraction scheme specified by the integer vector" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + assert( + Modelica.Math.BooleanVectors.andTrue({(extract[i] > 0 and extract[i] <= nin) for i in 1:nout}), + "In " + getInstanceName() + ": The element of the extracting vector has out of range value.", + AssertionLevel.error); + +equation + for i in 1:nout loop + y[i]=u[extract[i]]; + end for; + annotation ( + defaultComponentName="extBooSig", + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-90,51},{-50,-49}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={255,0,255}), + Rectangle( + extent={{50,50},{90,-50}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={255,0,255}), + Polygon( + points={{-94.4104,1.90792},{-94.4104,-2.09208},{-90.4104,-0.0920762},{-94.4104,1.90792}}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid, + lineColor={255,0,255}), + Line( + points={{-72,2},{-60.1395,12.907},{-49.1395,12.907}}, + color={255,0,255}), + Line( + points={{-73,4},{-59,40},{-49,40}}, + color={255,0,255}), + Line( + points={{-113,0},{-76.0373,-0.0180176}}, + color={255,0,255}), + Ellipse( + extent={{-81.0437,4.59255},{-71.0437,-4.90745}}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid, + lineColor={255,0,255}), + Line( + points={{-73,-5},{-60,-40},{-49,-40}}, + color={255,0,255}), + Line( + points={{-72,-2},{-60.0698,-12.907},{-49.0698,-12.907}}, + color={255,0,255}), + Polygon( + points={{-48.8808,-11},{-48.8808,-15},{-44.8808,-13},{-48.8808,-11}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={255,0,255}), + Line( + points={{-46,13},{-35,13},{35,-30},{45,-30}}, + color={255,0,255}), + Line( + points={{-45,40},{-35,40},{35,0},{44,0}}, + color={255,0,255}), + Line( + points={{-45,-40},{-34,-40},{35,30},{44,30}}, + color={255,0,255}), + Polygon( + points={{-49,42},{-49,38},{-45,40},{-49,42}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={255,0,255}), + Polygon( + points={{-48.8728,-38.0295},{-48.8728,-42.0295},{-44.8728,-40.0295},{-48.8728,-38.0295}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={255,0,255}), + Polygon( + points={{-48.9983,14.8801},{-48.9983,10.8801},{-44.9983,12.8801},{-48.9983,14.8801}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={255,0,255}), + Ellipse( + extent={{69.3052,4.12743},{79.3052,-5.37257}}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid, + lineColor={255,0,255}), + Line( + points={{80,0},{100,0}}, + color={255,0,255}), + Polygon( + points={{43.1618,32.3085},{43.1618,28.3085},{47.1618,30.3085},{43.1618,32.3085}}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid, + lineColor={255,0,255}), + Polygon( + points={{43.2575,1.80443},{43.2575,-2.19557},{47.2575,-0.195573},{43.2575,1.80443}}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid, + lineColor={255,0,255}), + Polygon( + points={{43.8805,-28.1745},{43.8805,-32.1745},{47.8805,-30.1745},{43.8805,-28.1745}}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid, + lineColor={255,0,255}), + Line( + points={{48,0},{70,0}}, + color={255,0,255}), + Line( + points={{47,30},{60,30},{73,3}}, + color={255,0,255}), + Line( + points={{49,-30},{60,-30},{74,-4}}, + color={255,0,255}), + Text( + extent={{-150,-150},{150,-110}}, + textColor={0,0,0}, + textString="extract=%extract"), + Text( + textColor={0,0,255}, + extent={{-100,100},{100,140}}, + textString="%name")}), + Documentation( + info=" +

+Extract signals from the vector-valued boolean input signal and transfer them +to the vector-valued boolean output signal. +

+

+The extraction scheme is specified by the integer vector extract. +This vector specifies which input signals are taken and in which +order they are transferred to the output vector. Note that the +dimension of extract has to match the number of outputs and the elements +of extract has to be in the range of [1, nin]. +Additionally, the dimensions of the input connector signals and +the output connector signals have to be explicitly defined via the +parameters nin and nout. +

+

Example

+

+The specification +

+
     nin = 7 \"Number of inputs\";
+     nout = 4 \"Number of outputs\";
+     extract[nout] = {6,3,3,2} \"Extracting vector\";
+
+

extracts four output signals (nout=4) +from the seven elements of the +input vector (nin=7):

+
   y[1, 2, 3, 4] = u[6, 3, 3, 2];
+
+", +revisions=" + +")); +end BooleanExtractSignal; diff --git a/IBPSA/Controls/OBC/CDL/Routing/BooleanExtractor.mo b/IBPSA/Controls/OBC/CDL/Routing/BooleanExtractor.mo new file mode 100644 index 0000000000..c12f2aaadb --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/BooleanExtractor.mo @@ -0,0 +1,148 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block BooleanExtractor + "Extract scalar signal out of boolean signal vector dependent on integer input index" + parameter Integer nin=1 + "Number of inputs"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput index + "Index of input vector element to be extracted out" + annotation (Placement(transformation(origin={0,-120},extent={{-20,-20},{20,20}},rotation=90))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u[nin] + "Boolean input signals" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y + "Boolean signal extracted from input vector, u[index]" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + assert( + index > 0 and index <= nin, + "In " + getInstanceName() + ": The extract index is out of the range.", + AssertionLevel.warning); + y = u[min(nin, max(1, index))]; + +annotation (defaultComponentName="extIndBoo", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-80,50},{-40,-50}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-84.4104,1.9079},{-84.4104,-2.09208},{-80.4104,-0.09208},{-84.4104,1.9079}}, + lineColor={255,0,255}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-62,2},{-50.1395,12.907},{-39.1395,12.907}}, + color={255,0,255}), + Line( + points={{-63,4},{-49,40},{-39,40}}, + color={255,0,255}), + Line( + points={{-102,0},{-65.0373,-0.01802}}, + color={255,0,255}), + Ellipse( + extent={{-70.0437,4.5925},{-60.0437,-4.90745}}, + lineColor={0,0,127}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-63,-5},{-50,-40},{-39,-40}}, + color={255,0,255}), + Line( + points={{-62,-2},{-50.0698,-12.907},{-39.0698,-12.907}}, + color={255,0,255}), + Polygon( + points={{-38.8808,-11},{-38.8808,-15},{-34.8808,-13},{-38.8808,-11}}, + lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-39,42},{-39,38},{-35,40},{-39,42}}, + lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-38.8728,-38.0295},{-38.8728,-42.0295},{-34.8728,-40.0295},{-38.8728,-38.0295}}, + lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-38.9983,14.8801},{-38.9983,10.8801},{-34.9983,12.8801},{-38.9983,14.8801}}, + lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-30,50},{30,-50}}, + fillColor={235,235,235}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Line( + points={{100,0},{0,0}}, + color={255,0,255}), + Line( + points={{0,2},{0,-104}}, + color={255,128,0}), + Line( + points={{-35,40},{-20,40}}, + color={255,0,255}), + Line( + points={{-35,13},{-20,13}}, + color={255,0,255}), + Line( + points={{-35,-13},{-20,-13}}, + color={255,0,255}), + Line( + points={{-35,-40},{-20,-40}}, + color={255,0,255}), + Polygon( + points={{0,0},{-20,13},{-20,13},{0,0},{0,0}}, + lineColor={255,0,255}), + Ellipse( + extent={{-6,6},{6,-6}}, + lineColor={255,128,0}, + fillColor={255,128,0}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-100,100},{100,140}}, + textString="%name")}), + Documentation( + info=" +

+Block that returns +

+
    y = u[index];
+
+

+where u is a vector-valued Boolean input signal and +index is an Integer input signal. When the index +is out of range, +

+ +", +revisions=" + +")); +end BooleanExtractor; diff --git a/IBPSA/Controls/OBC/CDL/Routing/BooleanScalarReplicator.mo b/IBPSA/Controls/OBC/CDL/Routing/BooleanScalarReplicator.mo new file mode 100644 index 0000000000..ada7fb5678 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/BooleanScalarReplicator.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block BooleanScalarReplicator "Boolean signal replicator" + parameter Integer nout=1 + "Number of outputs"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Input signal to be replicated" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y[nout] + "Output with replicated input signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=fill(u, nout); + annotation ( + defaultComponentName="booScaRep", + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,0},{-6,0}}, + color={255,0,255}), + Line( + points={{100,0},{10,0}}, + color={255,0,255}), + Line( + points={{0,0},{100,10}}, + color={255,0,255}), + Line( + points={{0,0},{100,-10}}, + color={255,0,255}), + Ellipse( + extent={{-14,16},{16,-14}}, + lineColor={0,0,0}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name")}), + Documentation( + info=" +

+This block replicates the Boolean input signal to an array of nout +identical Boolean output signals. +

+", + revisions=" + +")); +end BooleanScalarReplicator; diff --git a/IBPSA/Controls/OBC/CDL/Routing/BooleanVectorFilter.mo b/IBPSA/Controls/OBC/CDL/Routing/BooleanVectorFilter.mo new file mode 100644 index 0000000000..cde256c18d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/BooleanVectorFilter.mo @@ -0,0 +1,69 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block BooleanVectorFilter "Filter a boolean vector based on a boolean mask" + + parameter Integer nin "Size of input vector"; + parameter Integer nout "Size of output vector"; + parameter Boolean msk[nin]=fill(true,nin) "Array mask"; + + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u[nin] + "Input signals from which values are extracted" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y[nout] + "Output with extracted input signals" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Integer mskId[nout] = Modelica.Math.BooleanVectors.index(msk) + "Indices of included element in input vector"; + +initial equation + assert(nout==sum({if msk[i] then 1 else 0 for i in 1:nin}), + "In " + getInstanceName() + ": The size of the output vector does not + match the size of included elements in the mask."); +equation + y = u[mskId]; + annotation ( + defaultComponentName="booVecFil", + Icon(coordinateSystem(preserveAspectRatio=false), graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line(points={{-102,0},{-60,0}}, color={255,0,255}), + Line(points={{70,0},{100,0}}, color={255,0,255}), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Polygon( + points={{-60,80},{-60,-80},{20,-10},{60,-10},{80,10},{20,10},{-60,80}}, + lineColor={0,0,0}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid, + lineThickness=0.5)}), Diagram( + coordinateSystem(preserveAspectRatio=false)), + Documentation(revisions=" + +", info=" +

+This block filters a Boolean vector of size nin to +a vector of size nout given a Boolean mask +msk. +

+

+If an entry in msk is true, then the value +of this input will be sent to the output y, otherwise it +will be discarded. +

+

+The parameter msk must have exactly nout entries +set to true, otherwise an error message is issued. +

+")); +end BooleanVectorFilter; diff --git a/IBPSA/Controls/OBC/CDL/Routing/BooleanVectorReplicator.mo b/IBPSA/Controls/OBC/CDL/Routing/BooleanVectorReplicator.mo new file mode 100644 index 0000000000..fe9da2cfb7 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/BooleanVectorReplicator.mo @@ -0,0 +1,67 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block BooleanVectorReplicator "Boolean vector signal replicator" + + parameter Integer nin=1 "Size of input vector"; + parameter Integer nout=1 "Number of row in output"; + + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u[nin] + "Input signal to be replicated" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput y[nout, nin] + "Output with replicated input signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=fill(u, nout); + annotation ( + defaultComponentName="booVecRep", + Documentation( + info=" +

+This block replicates a Boolean vector input signal of size nin, +to a matrix with nout rows and nin columns, +where each row is duplicating the input vector. +

+", + revisions=" + +"), + Icon(graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,0},{-6,0}}, + color={255,0,255}), + Line( + points={{100,0},{10,0}}, + color={255,0,255}), + Line( + points={{0,0},{100,10}}, + color={255,0,255}), + Line( + points={{0,0},{100,-10}}, + color={255,0,255}), + Ellipse( + extent={{-14,16},{16,-14}}, + lineColor={0,0,0}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Line( + points={{-100,-10},{0,0}}, + color={255,0,255}), + Line( + points={{-100,10},{0,0}}, + color={255,0,255})})); +end BooleanVectorReplicator; diff --git a/IBPSA/Controls/OBC/CDL/Routing/IntegerExtractSignal.mo b/IBPSA/Controls/OBC/CDL/Routing/IntegerExtractSignal.mo new file mode 100644 index 0000000000..3d9c57188e --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/IntegerExtractSignal.mo @@ -0,0 +1,178 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block IntegerExtractSignal + "Extract signals from an integer input signal vector" + parameter Integer nin=1 + "Number of inputs"; + parameter Integer nout=1 + "Number of outputs"; + parameter Integer extract[nout]=1:nout + "Extracting vector"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u[nin] + "Integer input signals" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y[nout] + "Integer signals extracted from the input vector with the extraction scheme specified by the integer vector" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + assert( + Modelica.Math.BooleanVectors.andTrue({(extract[i] > 0 and extract[i] <= nin) for i in 1:nout}), + "In " + getInstanceName() + ": The element of the extracting vector has out of range value.", + AssertionLevel.error); + +equation + for i in 1:nout loop + y[i]=u[extract[i]]; + end for; + annotation ( + defaultComponentName="extIntSig", + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-90,51},{-50,-49}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Rectangle( + extent={{50,50},{90,-50}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Polygon( + points={{-94.4104,1.90792},{-94.4104,-2.09208},{-90.4104,-0.0920762},{-94.4104,1.90792}}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Line( + points={{-72,2},{-60.1395,12.907},{-49.1395,12.907}}, + color={255,127,0}), + Line( + points={{-73,4},{-59,40},{-49,40}}, + color={255,127,0}), + Line( + points={{-113,0},{-76.0373,-0.0180176}}, + color={255,127,0}), + Ellipse( + extent={{-81.0437,4.59255},{-71.0437,-4.90745}}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Line( + points={{-73,-5},{-60,-40},{-49,-40}}, + color={255,127,0}), + Line( + points={{-72,-2},{-60.0698,-12.907},{-49.0698,-12.907}}, + color={255,127,0}), + Polygon( + points={{-48.8808,-11},{-48.8808,-15},{-44.8808,-13},{-48.8808,-11}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Line( + points={{-46,13},{-35,13},{35,-30},{45,-30}}, + color={255,127,0}), + Line( + points={{-45,40},{-35,40},{35,0},{44,0}}, + color={255,127,0}), + Line( + points={{-45,-40},{-34,-40},{35,30},{44,30}}, + color={255,127,0}), + Polygon( + points={{-49,42},{-49,38},{-45,40},{-49,42}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Polygon( + points={{-48.8728,-38.0295},{-48.8728,-42.0295},{-44.8728,-40.0295},{-48.8728,-38.0295}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Polygon( + points={{-48.9983,14.8801},{-48.9983,10.8801},{-44.9983,12.8801},{-48.9983,14.8801}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Ellipse( + extent={{69.3052,4.12743},{79.3052,-5.37257}}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Line( + points={{80,0},{100,0}}, + color={255,127,0}), + Polygon( + points={{43.1618,32.3085},{43.1618,28.3085},{47.1618,30.3085},{43.1618,32.3085}}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Polygon( + points={{43.2575,1.80443},{43.2575,-2.19557},{47.2575,-0.195573},{43.2575,1.80443}}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Polygon( + points={{43.8805,-28.1745},{43.8805,-32.1745},{47.8805,-30.1745},{43.8805,-28.1745}}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Line( + points={{48,0},{70,0}}, + color={255,127,0}), + Line( + points={{47,30},{60,30},{73,3}}, + color={255,127,0}), + Line( + points={{49,-30},{60,-30},{74,-4}}, + color={255,127,0}), + Text( + extent={{-150,-150},{150,-110}}, + textColor={0,0,0}, + textString="extract=%extract"), + Text( + textColor={0,0,255}, + extent={{-100,100},{100,140}}, + textString="%name")}), + Documentation( + info=" +

+Extract signals from the vector-valued integer input signal and transfer them +to the vector-valued integer output signal. +

+

+The extraction scheme is specified by the integer vector extract. +This vector specifies which input signals are taken and in which +order they are transferred to the output vector. Note that the +dimension of extract has to match the number of outputs and +the elements of extract has to be in the range of [1, nin]. +Additionally, the dimensions of the input connector signals and +the output connector signals have to be explicitly defined via the +parameters nin and nout. +

+

Example

+

+The specification +

+
     nin = 7 \"Number of inputs\";
+     nout = 4 \"Number of outputs\";
+     extract[nout] = {6,3,3,2} \"Extracting vector\";
+
+

extracts four output signals (nout=4) +from the seven elements of the +input vector (nin=7):

+
   y[1, 2, 3, 4] = u[6, 3, 3, 2];
+
+", +revisions=" + +")); +end IntegerExtractSignal; diff --git a/IBPSA/Controls/OBC/CDL/Routing/IntegerExtractor.mo b/IBPSA/Controls/OBC/CDL/Routing/IntegerExtractor.mo new file mode 100644 index 0000000000..4a957ddf10 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/IntegerExtractor.mo @@ -0,0 +1,148 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block IntegerExtractor + "Extract scalar signal out of integer signal vector dependent on integer input index" + parameter Integer nin=1 + "Number of inputs"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput index + "Index of input vector element to be extracted out" + annotation (Placement(transformation(origin={0,-120},extent={{-20,-20},{20,20}},rotation=90))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u[nin] + "Integer input signals" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y + "Integer signal extracted from input vector, u[index]" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + assert( + index > 0 and index <= nin, + "In " + getInstanceName() + ": The extract index is out of the range.", + AssertionLevel.warning); + y = u[min(nin, max(1, index))]; + +annotation (defaultComponentName="extIndInt", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-80,50},{-40,-50}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-84.4104,1.9079},{-84.4104,-2.09208},{-80.4104,-0.09208},{-84.4104,1.9079}}, + lineColor={255,127,0}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid), + Line( + points={{-62,2},{-50.1395,12.907},{-39.1395,12.907}}, + color={255,127,0}), + Line( + points={{-63,4},{-49,40},{-39,40}}, + color={255,127,0}), + Line( + points={{-102,0},{-65.0373,-0.01802}}, + color={255,127,0}), + Ellipse( + extent={{-70.0437,4.5925},{-60.0437,-4.90745}}, + lineColor={255,127,0}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid), + Line( + points={{-63,-5},{-50,-40},{-39,-40}}, + color={255,127,0}), + Line( + points={{-62,-2},{-50.0698,-12.907},{-39.0698,-12.907}}, + color={255,127,0}), + Polygon( + points={{-38.8808,-11},{-38.8808,-15},{-34.8808,-13},{-38.8808,-11}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-39,42},{-39,38},{-35,40},{-39,42}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-38.8728,-38.0295},{-38.8728,-42.0295},{-34.8728,-40.0295},{-38.8728,-38.0295}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-38.9983,14.8801},{-38.9983,10.8801},{-34.9983,12.8801},{-38.9983,14.8801}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-30,50},{30,-50}}, + fillColor={235,235,235}, + fillPattern=FillPattern.Solid, + lineColor={255,127,0}), + Line( + points={{100,0},{0,0}}, + color={255,127,0}), + Line( + points={{0,2},{0,-104}}, + color={255,127,0}), + Line( + points={{-35,40},{-20,40}}, + color={255,127,0}), + Line( + points={{-35,13},{-20,13}}, + color={255,127,0}), + Line( + points={{-35,-13},{-20,-13}}, + color={255,127,0}), + Line( + points={{-35,-40},{-20,-40}}, + color={255,127,0}), + Polygon( + points={{0,0},{-20,13},{-20,13},{0,0},{0,0}}, + lineColor={255,127,0}), + Ellipse( + extent={{-6,6},{6,-6}}, + lineColor={255,127,0}, + fillColor={255,128,0}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-100,100},{100,140}}, + textString="%name")}), + Documentation( + info=" +

+Block that returns +

+
    y = u[index];
+
+

+where u is a vector-valued Integer input signal and +index is an Integer input signal. When the index +is out of range, +

+ +", +revisions=" + +")); +end IntegerExtractor; diff --git a/IBPSA/Controls/OBC/CDL/Routing/IntegerScalarReplicator.mo b/IBPSA/Controls/OBC/CDL/Routing/IntegerScalarReplicator.mo new file mode 100644 index 0000000000..e4864ac5b0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/IntegerScalarReplicator.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block IntegerScalarReplicator "Integer signal replicator" + parameter Integer nout=1 + "Number of outputs"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u + "Input signal to be replicated" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y[nout] + "Output with replicated input signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=fill(u, nout); + annotation ( + defaultComponentName="intScaRep", + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,0},{-6,0}}, + color={255,127,0}), + Line( + points={{100,0},{10,0}}, + color={255,127,0}), + Line( + points={{0,0},{100,10}}, + color={255,127,0}), + Line( + points={{0,0},{100,-10}}, + color={255,127,0}), + Ellipse( + extent={{-14,16},{16,-14}}, + lineColor={0,0,0}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name")}), + Documentation( + info=" +

+This block replicates the Integer input signal to an array of nout +identical Integer output signals. +

+", + revisions=" + +")); +end IntegerScalarReplicator; diff --git a/IBPSA/Controls/OBC/CDL/Routing/IntegerVectorFilter.mo b/IBPSA/Controls/OBC/CDL/Routing/IntegerVectorFilter.mo new file mode 100644 index 0000000000..29ff14c6a6 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/IntegerVectorFilter.mo @@ -0,0 +1,69 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block IntegerVectorFilter "Filter an integer vector based on a boolean mask" + + parameter Integer nin "Size of input vector"; + parameter Integer nout "Size of output vector"; + parameter Boolean msk[nin]=fill(true,nin) "Array mask"; + + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u[nin] + "Input signals from which values are extracted" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y[nout] + "Output with extracted input signals" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Integer mskId[nout] = Modelica.Math.BooleanVectors.index(msk) + "Indices of included element in input vector"; + +initial equation + assert(nout==sum({if msk[i] then 1 else 0 for i in 1:nin}), + "In " + getInstanceName() + ": The size of the output vector does not + match the size of included elements in the mask."); +equation + y = u[mskId]; + annotation ( + defaultComponentName="intVecFil", + Icon(coordinateSystem(preserveAspectRatio=false), graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Polygon( + points={{-60,80},{-60,-80},{20,-10},{60,-10},{80,10},{20,10},{-60,80}}, + lineColor={0,0,0}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid, + lineThickness=0.5), + Line(points={{-100,0},{-60,0}}, color={255,127,0}), + Line(points={{70,0},{100,0}}, color={255,127,0})}), Diagram( + coordinateSystem(preserveAspectRatio=false)), + Documentation(revisions=" + +", info=" +

+This block filters a Integer vector of size nin to +a vector of size nout given a Boolean mask +msk. +

+

+If an entry in msk is true, then the value +of this input will be sent to the output y, otherwise it +will be discarded. +

+

+The parameter msk must have exactly nout entries +set to true, otherwise an error message is issued. +

+")); +end IntegerVectorFilter; diff --git a/IBPSA/Controls/OBC/CDL/Routing/IntegerVectorReplicator.mo b/IBPSA/Controls/OBC/CDL/Routing/IntegerVectorReplicator.mo new file mode 100644 index 0000000000..e0a73dd33d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/IntegerVectorReplicator.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block IntegerVectorReplicator "Integer vector signal replicator" + + parameter Integer nin=1 "Size of input vector"; + parameter Integer nout=1 "Number of row in output"; + + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput u[nin] + "Input signal to be replicated" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.IntegerOutput y[nout, nin] + "Output with replicated input signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=fill(u, nout); + annotation ( + defaultComponentName="intVecRep", + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,0},{-6,0}}, + color={255,127,0}), + Line( + points={{100,0},{10,0}}, + color={255,127,0}), + Line( + points={{0,0},{100,10}}, + color={255,127,0}), + Line( + points={{0,0},{100,-10}}, + color={255,127,0}), + Ellipse( + extent={{-14,16},{16,-14}}, + lineColor={0,0,0}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Line(points={{-100,-10},{0,0}}, color={255,127,0}), + Line(points={{-100,10},{0,0}}, color={255,127,0})}), + Documentation( + info=" +

+This block replicates an Integer vector input signal of size nin, +to a matrix with nout rows and nin columns, +where each row is duplicating the input vector. +

+", + revisions=" + +")); +end IntegerVectorReplicator; diff --git a/IBPSA/Controls/OBC/CDL/Routing/RealExtractSignal.mo b/IBPSA/Controls/OBC/CDL/Routing/RealExtractSignal.mo new file mode 100644 index 0000000000..da171e5e1a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/RealExtractSignal.mo @@ -0,0 +1,187 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block RealExtractSignal + "Extract signals from a real input signal vector" + parameter Integer nin=1 + "Number of inputs"; + parameter Integer nout=1 + "Number of outputs"; + parameter Integer extract[nout]=1:nout + "Extracting vector"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u[nin] + "Real input signals" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y[nout] + "Real signals extracted from the input vector with the extraction scheme specified by the integer vector" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +initial equation + assert( + Modelica.Math.BooleanVectors.andTrue({(extract[i] > 0 and extract[i] <= nin) for i in 1:nout}), + "In " + getInstanceName() + ": The element of the extracting vector has out of range value.", + AssertionLevel.error); + +equation + for i in 1:nout loop + y[i]=u[extract[i]]; + end for; + annotation ( + defaultComponentName="extReaSig", + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-90,51},{-50,-49}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Rectangle( + extent={{50,50},{90,-50}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Polygon( + points={{-94.4104,1.90792},{-94.4104,-2.09208},{-90.4104,-0.0920762},{-94.4104,1.90792}}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Line( + points={{-72,2},{-60.1395,12.907},{-49.1395,12.907}}, + color={0,0,127}), + Line( + points={{-73,4},{-59,40},{-49,40}}, + color={0,0,127}), + Line( + points={{-113,0},{-76.0373,-0.0180176}}, + color={0,0,127}), + Ellipse( + extent={{-81.0437,4.59255},{-71.0437,-4.90745}}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Line( + points={{-73,-5},{-60,-40},{-49,-40}}, + color={0,0,127}), + Line( + points={{-72,-2},{-60.0698,-12.907},{-49.0698,-12.907}}, + color={0,0,127}), + Polygon( + points={{-48.8808,-11},{-48.8808,-15},{-44.8808,-13},{-48.8808,-11}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Line( + points={{-46,13},{-35,13},{35,-30},{45,-30}}, + color={0,0,127}), + Line( + points={{-45,40},{-35,40},{35,0},{44,0}}, + color={0,0,127}), + Line( + points={{-45,-40},{-34,-40},{35,30},{44,30}}, + color={0,0,127}), + Polygon( + points={{-49,42},{-49,38},{-45,40},{-49,42}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Polygon( + points={{-48.8728,-38.0295},{-48.8728,-42.0295},{-44.8728,-40.0295},{-48.8728,-38.0295}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Polygon( + points={{-48.9983,14.8801},{-48.9983,10.8801},{-44.9983,12.8801},{-48.9983,14.8801}}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Ellipse( + extent={{69.3052,4.12743},{79.3052,-5.37257}}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Line( + points={{80,0},{100,0}}, + color={0,0,127}), + Polygon( + points={{43.1618,32.3085},{43.1618,28.3085},{47.1618,30.3085},{43.1618,32.3085}}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Polygon( + points={{43.2575,1.80443},{43.2575,-2.19557},{47.2575,-0.195573},{43.2575,1.80443}}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Polygon( + points={{43.8805,-28.1745},{43.8805,-32.1745},{47.8805,-30.1745},{43.8805,-28.1745}}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Line( + points={{48,0},{70,0}}, + color={0,0,127}), + Line( + points={{47,30},{60,30},{73,3}}, + color={0,0,127}), + Line( + points={{49,-30},{60,-30},{74,-4}}, + color={0,0,127}), + Text( + extent={{-150,-150},{150,-110}}, + textColor={0,0,0}, + textString="extract=%extract"), + Text( + textColor={0,0,255}, + extent={{-100,100},{100,140}}, + textString="%name")}), + Documentation( + info=" +

+Extract signals from the vector-valued real input signal and transfer them +to the vector-valued real output signal. +

+

+The extraction scheme is specified by the integer vector extract. +This vector specifies which input signals are taken and in which +order they are transferred to the output vector. Note that the +dimension of extract has to match the number of outputs and the elements +of extract has to be in the range of [1, nin]. +Additionally, the dimensions of the input connector signals and +the output connector signals have to be explicitly defined via the +parameters nin and nout. +

+

Example

+

+The specification +

+
     nin = 7 \"Number of inputs\";
+     nout = 4 \"Number of outputs\";
+     extract[nout] = {6,3,3,2} \"Extracting vector\";
+
+

extracts four output signals (nout=4) +from the seven elements of the +input vector (nin=7):

+
   y[1, 2, 3, 4] = u[6, 3, 3, 2];
+
+", +revisions=" + +")); +end RealExtractSignal; diff --git a/IBPSA/Controls/OBC/CDL/Routing/RealExtractor.mo b/IBPSA/Controls/OBC/CDL/Routing/RealExtractor.mo new file mode 100644 index 0000000000..c0b723c1c6 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/RealExtractor.mo @@ -0,0 +1,159 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block RealExtractor + "Extract scalar signal out of real signal vector dependent on integer input index" + parameter Integer nin=1 + "Number of inputs"; + IBPSA.Controls.OBC.CDL.Interfaces.IntegerInput index + "Index of input vector element to be extracted out" + annotation (Placement(transformation(origin={0,-120},extent={{-20,-20},{20,20}},rotation=90))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u[nin] + "Real input signals" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Real signal extracted from input vector, u[index]" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +algorithm + assert( + index > 0 and index <= nin, + "In " + getInstanceName() + ": The extract index is out of the range.", + AssertionLevel.warning); + y := u[min(nin, max(1, index))]; + +annotation (defaultComponentName="extIndRea", + Icon( + coordinateSystem( + preserveAspectRatio=true, + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-80,50},{-40,-50}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-84.4104,1.9079},{-84.4104,-2.09208},{-80.4104,-0.09208},{-84.4104,1.9079}}, + lineColor={0,0,127}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Line( + points={{-62,2},{-50.1395,12.907},{-39.1395,12.907}}, + color={0,0,127}), + Line( + points={{-63,4},{-49,40},{-39,40}}, + color={0,0,127}), + Line( + points={{-102,0},{-65.0373,-0.01802}}, + color={0,0,127}), + Ellipse( + extent={{-70.0437,4.5925},{-60.0437,-4.90745}}, + lineColor={0,0,127}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid), + Line( + points={{-63,-5},{-50,-40},{-39,-40}}, + color={0,0,127}), + Line( + points={{-62,-2},{-50.0698,-12.907},{-39.0698,-12.907}}, + color={0,0,127}), + Polygon( + points={{-38.8808,-11},{-38.8808,-15},{-34.8808,-13},{-38.8808,-11}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-39,42},{-39,38},{-35,40},{-39,42}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-38.8728,-38.0295},{-38.8728,-42.0295},{-34.8728,-40.0295},{-38.8728,-38.0295}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{-38.9983,14.8801},{-38.9983,10.8801},{-34.9983,12.8801},{-38.9983,14.8801}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-30,50},{30,-50}}, + fillColor={235,235,235}, + fillPattern=FillPattern.Solid, + lineColor={0,0,127}), + Line( + points={{100,0},{0,0}}, + color={0,0,127}), + Line( + points={{0,2},{0,-104}}, + color={255,128,0}), + Line( + points={{-35,40},{-20,40}}, + color={0,0,127}), + Line( + points={{-35,13},{-20,13}}, + color={0,0,127}), + Line( + points={{-35,-13},{-20,-13}}, + color={0,0,127}), + Line( + points={{-35,-40},{-20,-40}}, + color={0,0,127}), + Polygon( + points={{0,0},{-20,13},{-20,13},{0,0},{0,0}}, + lineColor={0,0,127}), + Ellipse( + extent={{-6,6},{6,-6}}, + lineColor={255,128,0}, + fillColor={255,128,0}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-100,100},{100,140}}, + textString="%name")}), + Documentation( + info=" +

+Block that returns +

+
    y = u[index];
+
+

+where u is a vector-valued Real input signal and +index is an Integer input signal. When the index +is out of range, +

+ +", +revisions=" + +")); +end RealExtractor; diff --git a/IBPSA/Controls/OBC/CDL/Routing/RealScalarReplicator.mo b/IBPSA/Controls/OBC/CDL/Routing/RealScalarReplicator.mo new file mode 100644 index 0000000000..76375e611a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/RealScalarReplicator.mo @@ -0,0 +1,65 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block RealScalarReplicator + "Real signal replicator" + parameter Integer nout=1 + "Number of outputs"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u + "Input signal to be replicated" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y[nout] + "Output with replicated input signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=fill(u, nout); + annotation ( + defaultComponentName="reaScaRep", + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,0},{-6,0}}, + color={0,0,127}), + Line( + points={{100,0},{10,0}}, + color={0,0,127}), + Line( + points={{0,0},{100,10}}, + color={0,0,127}), + Line( + points={{0,0},{100,-10}}, + color={0,0,127}), + Ellipse( + extent={{-14,16},{16,-14}}, + lineColor={0,0,0}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name")}), + Documentation( + info=" +

+This block replicates the Real input signal to an array of nout +identical Real output signals. +

+", + revisions=" + +")); +end RealScalarReplicator; diff --git a/IBPSA/Controls/OBC/CDL/Routing/RealVectorFilter.mo b/IBPSA/Controls/OBC/CDL/Routing/RealVectorFilter.mo new file mode 100644 index 0000000000..e1f32071af --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/RealVectorFilter.mo @@ -0,0 +1,70 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block RealVectorFilter "Filter a real vector of based on a boolean mask" + + parameter Integer nin "Size of input vector"; + parameter Integer nout "Size of output vector"; + parameter Boolean msk[nin]=fill(true,nin) "Array mask"; + + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u[nin] + "Input signals from which values are extracted" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y[nout] + "Output with extracted input signals" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Integer mskId[nout] = Modelica.Math.BooleanVectors.index(msk) + "Indices of included element in input vector"; + +initial equation + assert(nout==sum({if msk[i] then 1 else 0 for i in 1:nin}), + "In " + getInstanceName() + ": The size of the output vector does not + match the size of included elements in the mask."); +equation + y = u[mskId]; + annotation ( + defaultComponentName="reaVecFil", + Icon(coordinateSystem(preserveAspectRatio=false), graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Polygon( + points={{-60,80},{-60,-80},{20,-10},{60,-10},{80,10},{20,10},{-60,80}}, + lineColor={0,0,0}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid, + lineThickness=0.5), + Line(points={{-100,0},{-60,0}}, color={0,0,127}), + Line(points={{70,0},{100,0}}, color={0,0,127})}), + Diagram( + coordinateSystem(preserveAspectRatio=false)), + Documentation(revisions=" + +", info=" +

+This block filters a Real vector of size nin to +a vector of size nout given a boolean mask +msk. +

+

+If an entry in msk is true, then the value +of this input will be sent to the output y, otherwise it +will be discarded. +

+

+The parameter msk must have exactly nout entries +set to true, otherwise an error message is issued. +

+")); +end RealVectorFilter; diff --git a/IBPSA/Controls/OBC/CDL/Routing/RealVectorReplicator.mo b/IBPSA/Controls/OBC/CDL/Routing/RealVectorReplicator.mo new file mode 100644 index 0000000000..1ed80049dc --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/RealVectorReplicator.mo @@ -0,0 +1,63 @@ +within IBPSA.Controls.OBC.CDL.Routing; +block RealVectorReplicator "Real vector signal replicator" + + parameter Integer nin=1 "Size of input vector"; + parameter Integer nout=1 "Number of row in output"; + + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u[nin] + "Input signal to be replicated" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y[nout, nin] + "Output with replicated input signal" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=fill(u, nout); + annotation ( + defaultComponentName="reaVecRep", + Documentation( + info=" +

+This block replicates an Real vector input signal of size nin, +to a matrix with nout rows and nin columns, +where each row is duplicating the input vector. +

+", + revisions=" + +"), + Icon(graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,0},{-6,0}}, + color={0,0,127}), + Line( + points={{100,0},{10,0}}, + color={0,0,127}), + Line( + points={{0,0},{100,10}}, + color={0,0,127}), + Line( + points={{0,0},{100,-10}}, + color={0,0,127}), + Ellipse( + extent={{-14,16},{16,-14}}, + lineColor={0,0,0}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Line(points={{-100,-10},{0,0}}, color={0,0,127}), + Line(points={{-100,10},{0,0}}, color={0,0,127})})); +end RealVectorReplicator; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanExtractSignal.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanExtractSignal.mo new file mode 100644 index 0000000000..87d38a5c92 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanExtractSignal.mo @@ -0,0 +1,94 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model BooleanExtractSignal + "Validation model for extracting boolean signals" + IBPSA.Controls.OBC.CDL.Routing.BooleanExtractSignal extBooSig( + final nin=4, + final nout=3, + final extract={3,2,4}) + "Block that extracts signal from a boolean input signal vector" + annotation (Placement(transformation(extent={{40,20},{60,40}}))); + IBPSA.Controls.OBC.CDL.Routing.BooleanExtractSignal extBooSig1( + final nin=4, + final nout=5, + final extract={3,2,4,1,1}) + "Block that extracts signal from a boolean input signal vector" + annotation (Placement(transformation(extent={{40,-40},{60,-20}}))); + + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant con1( + final k=true) + "Block that outputs true signal" + annotation (Placement(transformation(extent={{-80,50},{-60,70}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant con( + final k=false) + "Block that outputs false signal" + annotation (Placement(transformation(extent={{-80,-78},{-60,-58}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + final period=0.2) "Generate pulse signal of type boolean" + annotation (Placement(transformation(extent={{-80,20},{-60,40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + final period=0.3) + "Generate pulse signal of type boolean" + annotation (Placement(transformation(extent={{-80,-40},{-60,-20}}))); + +equation + connect(con1.y, extBooSig.u[1]) annotation (Line(points={{-58,60},{-10,60},{-10, + 29.25},{38,29.25}}, color={255,0,255})); + connect(booPul.y, extBooSig.u[2]) annotation (Line(points={{-58,30},{-20,30},{ + -20,29.75},{38,29.75}}, color={255,0,255})); + connect(booPul1.y, extBooSig.u[3]) annotation (Line(points={{-58,-30},{10,-30}, + {10,30.25},{38,30.25}}, color={255,0,255})); + connect(con.y, extBooSig.u[4]) annotation (Line(points={{-58,-68},{20,-68},{20, + 30.75},{38,30.75}}, color={255,0,255})); + connect(con1.y, extBooSig1.u[1]) annotation (Line(points={{-58,60},{-10,60},{-10, + -30.75},{38,-30.75}}, color={255,0,255})); + connect(booPul.y, extBooSig1.u[2]) annotation (Line(points={{-58,30},{-20,30}, + {-20,-30.25},{38,-30.25}}, color={255,0,255})); + connect(booPul1.y, extBooSig1.u[3]) annotation (Line(points={{-58,-30},{10,-30}, + {10,-29.75},{38,-29.75}}, color={255,0,255})); + connect(con.y, extBooSig1.u[4]) annotation (Line(points={{-58,-68},{20,-68},{20, + -29.25},{38,-29.25}}, color={255,0,255})); +annotation ( + experiment(StopTime=1.0,Tolerance=1e-06), + __Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanExtractSignal.mos" "Simulate and plot"), + Documentation(info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.BooleanExtractSignal. +

+

+The instance extBooSig has the input vector with dimension of 4 and +the extracting vector is [3, 2, 4]. Thus the output vectors is [u[3], u[2], u[4]]. +

+

+The instance extBooSig1 has the input vector with dimension of 4 and +the extracting vector is [3, 2, 4, 1, 1]. Thus the output vectors is [u[3], u[2], u[4], u[1], u[1]]. +

+

+Note that when the extracting vector extract has any element with the value that +is out of range [1, nin], e.g. [1, 4] for instance in extBooSig. +It will issue error and the model will not translate. +

+", +revisions=" + +"), + Icon( + 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}})})); +end BooleanExtractSignal; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanExtractor.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanExtractor.mo new file mode 100644 index 0000000000..66dc1022fc --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanExtractor.mo @@ -0,0 +1,177 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model BooleanExtractor + "Validation model for the boolean extractor block" + IBPSA.Controls.OBC.CDL.Routing.BooleanExtractor extIndBoo( + final nin=4) "Extracts signal from an input signal vector" + annotation (Placement(transformation(extent={{40,80},{60,100}}))); + IBPSA.Controls.OBC.CDL.Routing.BooleanExtractor extIndBoo1( + final nin=4) + "Extracts signal from an input signal vector when the extract index is out of the upper range" + annotation (Placement(transformation(extent={{40,40},{60,60}}))); + IBPSA.Controls.OBC.CDL.Routing.BooleanExtractor extIndBoo2( + final nin=4) + "Extracts signal from an input signal vector when the extract index is out of the lower range" + annotation (Placement(transformation(extent={{40,0},{60,20}}))); + IBPSA.Controls.OBC.CDL.Routing.BooleanExtractor extIndBoo3( + final nin=4) + "Extracts signal from an input signal vector when the extract index changes from within range to out of range" + annotation (Placement(transformation(extent={{40,-40},{60,-20}}))); + IBPSA.Controls.OBC.CDL.Routing.BooleanExtractor extIndBoo4( + final nin=4) + "Extracts signal from an input signal vector when the extract index changes from out of range to within range" + annotation (Placement(transformation(extent={{40,-80},{60,-60}}))); + + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant con1( + final k=true) + "Block that outputs true signal" + annotation (Placement(transformation(extent={{-80,70},{-60,90}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant con( + final k=false) + "Block that outputs false signal" + annotation (Placement(transformation(extent={{-80,-80},{-60,-60}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + final period=0.2) "Generate pulse signal of type boolean" + annotation (Placement(transformation(extent={{-80,20},{-60,40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( + final period=0.3) + "Generate pulse signal of type boolean" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt( + final k=2) + "Index to extract input signal" + annotation (Placement(transformation(extent={{0,60},{20,80}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt1( + k=6) + "Index to extract input signal" + annotation (Placement(transformation(extent={{0,20},{20,40}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt2( + k=0) + "Index to extract input signal" + annotation (Placement(transformation(extent={{0,-20},{20,0}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse intPul( + final amplitude=3, + final period=1, + final offset=-1) + "Generate pulse signal of type Integer" + annotation (Placement(transformation(extent={{0,-60},{20,-40}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse intPul1( + final amplitude=-3, + final period=1, + final offset=3) + "Generate pulse signal of type Integer" + annotation (Placement(transformation(extent={{0,-100},{20,-80}}))); + +equation + connect(conInt.y, extIndBoo.index) + annotation (Line(points={{22,70},{50,70},{50,78}}, color={255,127,0})); + connect(conInt1.y, extIndBoo1.index) + annotation (Line(points={{22,30},{50,30},{50,38}}, color={255,127,0})); + connect(con1.y, extIndBoo.u[1]) annotation (Line(points={{-58,80},{-40,80},{-40, + 89.25},{38,89.25}}, color={255,0,255})); + connect(booPul.y, extIndBoo.u[2]) annotation (Line(points={{-58,30},{-30,30},{ + -30,89.75},{38,89.75}}, color={255,0,255})); + connect(booPul1.y, extIndBoo.u[3]) annotation (Line(points={{-58,-20},{-20,-20}, + {-20,90.25},{38,90.25}}, color={255,0,255})); + connect(con.y, extIndBoo.u[4]) annotation (Line(points={{-58,-70},{-10,-70},{-10, + 90.75},{38,90.75}}, color={255,0,255})); + connect(con1.y, extIndBoo1.u[1]) annotation (Line(points={{-58,80},{-40,80},{-40, + 49.25},{38,49.25}}, color={255,0,255})); + connect(booPul.y, extIndBoo1.u[2]) annotation (Line(points={{-58,30},{-30,30}, + {-30,49.75},{38,49.75}}, color={255,0,255})); + connect(booPul1.y, extIndBoo1.u[3]) annotation (Line(points={{-58,-20},{-20,-20}, + {-20,50.25},{38,50.25}}, color={255,0,255})); + connect(con.y, extIndBoo1.u[4]) annotation (Line(points={{-58,-70},{-10,-70},{ + -10,50.75},{38,50.75}}, color={255,0,255})); + connect(con1.y, extIndBoo2.u[1]) annotation (Line(points={{-58,80},{-40,80},{-40, + 9.25},{38,9.25}}, color={255,0,255})); + connect(booPul.y, extIndBoo2.u[2]) annotation (Line(points={{-58,30},{-30,30}, + {-30,9.75},{38,9.75}}, color={255,0,255})); + connect(booPul1.y, extIndBoo2.u[3]) annotation (Line(points={{-58,-20},{-10,-20}, + {-10,10.25},{38,10.25}}, color={255,0,255})); + connect(con.y, extIndBoo2.u[4]) annotation (Line(points={{-58,-70},{-10,-70},{ + -10,10.75},{38,10.75}}, color={255,0,255})); + connect(conInt2.y, extIndBoo2.index) + annotation (Line(points={{22,-10},{50,-10},{50,-2}}, color={255,127,0})); + connect(con1.y, extIndBoo3.u[1]) annotation (Line(points={{-58,80},{-40,80},{-40, + -30.75},{38,-30.75}}, color={255,0,255})); + connect(booPul.y, extIndBoo3.u[2]) annotation (Line(points={{-58,30},{-30,30}, + {-30,-30.25},{38,-30.25}}, color={255,0,255})); + connect(booPul1.y, extIndBoo3.u[3]) annotation (Line(points={{-58,-20},{-20,-20}, + {-20,-29.75},{38,-29.75}}, color={255,0,255})); + connect(con.y, extIndBoo3.u[4]) annotation (Line(points={{-58,-70},{-10,-70},{ + -10,-29.25},{38,-29.25}}, color={255,0,255})); + connect(intPul.y, extIndBoo3.index) annotation (Line(points={{22,-50},{50,-50}, + {50,-42}}, color={255,127,0})); + connect(intPul1.y, extIndBoo4.index) + annotation (Line(points={{22,-90},{50,-90},{50,-82}}, color={255,127,0})); + connect(con1.y, extIndBoo4.u[1]) annotation (Line(points={{-58,80},{-40,80},{-40, + -70.75},{38,-70.75}}, color={255,0,255})); + connect(booPul.y, extIndBoo4.u[2]) annotation (Line(points={{-58,30},{-30,30}, + {-30,-70.25},{38,-70.25}}, color={255,0,255})); + connect(booPul1.y, extIndBoo4.u[3]) annotation (Line(points={{-58,-20},{-20,-20}, + {-20,-69.75},{38,-69.75}}, color={255,0,255})); + connect(con.y, extIndBoo4.u[4]) annotation (Line(points={{-58,-70},{-10,-70},{ + -10,-69.25},{38,-69.25}}, color={255,0,255})); +annotation ( + experiment(StopTime=1.0,Tolerance=1e-06), + __Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanExtractor.mos" "Simulate and plot"), + Documentation(info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.BooleanExtractor. +

+

+The instances extIndBoo, extIndBoo1, extIndBoo2, +extIndBoo3, and extIndBoo4 have the same input vector with +dimension of 4. However, they have different extract index and thus different output. +

+ +", +revisions=" + +"), + Icon(coordinateSystem(extent={{-100,-100},{100,100}}), + 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(extent={{-100,-120},{100,120}}))); +end BooleanExtractor; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanScalarReplicator.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanScalarReplicator.mo new file mode 100644 index 0000000000..039b9e5040 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanScalarReplicator.mo @@ -0,0 +1,55 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model BooleanScalarReplicator + "Validation model for the BooleanScalarReplicator block" + IBPSA.Controls.OBC.CDL.Routing.BooleanScalarReplicator booRep( + nout=3) + "Block that outputs the array replicating input value" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + period=0.2) + "Block that outputs boolean pulse" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + +equation + connect(booPul.y,booRep.u) + annotation (Line(points={{-19,0},{18,0}},color={255,0,255})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanScalarReplicator.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.BooleanScalarReplicator. +

+", + revisions=" + +"), + Icon( + 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}})})); +end BooleanScalarReplicator; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mo new file mode 100644 index 0000000000..7335948539 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mo @@ -0,0 +1,49 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model BooleanVectorFilter + "Validation model for the BooleanVectorFilter block" + IBPSA.Controls.OBC.CDL.Routing.BooleanVectorFilter + booFil(nin=3, nout=2, msk={true,false,true}) + "Block that filter the input vector" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + + Logical.Sources.Constant booInp[3](k={true,true,false}) "Boolean inputs" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); +equation + connect(booInp.y, booFil.u) + annotation (Line(points={{-18,0},{18,0}}, color={255,0,255})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.BooleanVectorFilter. +

+", + revisions=" + +"), + Icon( + 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}})})); +end BooleanVectorFilter; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mo new file mode 100644 index 0000000000..10e973702a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mo @@ -0,0 +1,49 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model BooleanVectorReplicator + "Validation model for the BooleanVectorReplicator block" + IBPSA.Controls.OBC.CDL.Routing.BooleanVectorReplicator booRep(nin=2, nout=3) + "Block that outputs the vector replicating input value" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul[2](period=fill(0.2,2)) + "Block that outputs boolean pulse" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + +equation + connect(booPul.y, booRep.u) + annotation (Line(points={{-18,0},{18,0}}, color={255,0,255})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.BooleanVectorReplicator. +

+", + revisions=" + +"), + Icon( + 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}})})); +end BooleanVectorReplicator; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerExtractSignal.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerExtractSignal.mo new file mode 100644 index 0000000000..24ed9ed0f2 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerExtractSignal.mo @@ -0,0 +1,99 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model IntegerExtractSignal + "Validation model for extracting integer signals" + IBPSA.Controls.OBC.CDL.Routing.IntegerExtractSignal extIntSig( + final nin=4, + final nout=3, + final extract={3,2,4}) + "Block that extracts signal from an integer input signal vector" + annotation (Placement(transformation(extent={{40,20},{60,40}}))); + IBPSA.Controls.OBC.CDL.Routing.IntegerExtractSignal extIntSig1( + final nin=4, + final nout=5, + final extract={3,2,4,2,3}) + "Block that extracts signal from an integer input signal vector" + annotation (Placement(transformation(extent={{40,-40},{60,-20}}))); + + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt2( + final k=1) + "Block that outputs integer constant" + annotation (Placement(transformation(extent={{-80,50},{-60,70}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse intPul( + final amplitude=1, + final period=0.2) + "Generate pulse signal of type Integer" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse intPul1( + final period=0.3, + final amplitude=2, + final offset=-1) + "Generate pulse signal of type Integer" + annotation (Placement(transformation(extent={{-80,-30},{-60,-10}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt3( + final k=4) + "Block that outputs integer constant" + annotation (Placement(transformation(extent={{-80,-70},{-60,-50}}))); + +equation + connect(conInt2.y,extIntSig. u[1]) annotation (Line(points={{-58,60},{-20,60}, + {-20,29.25},{38,29.25}}, color={255,127,0})); + connect(intPul.y,extIntSig. u[2]) annotation (Line(points={{-58,20},{-10,20},{ + -10,29.75},{38,29.75}}, color={255,127,0})); + connect(intPul1.y,extIntSig. u[3]) annotation (Line(points={{-58,-20},{0,-20}, + {0,30.25},{38,30.25}}, color={255,127,0})); + connect(conInt3.y,extIntSig. u[4]) annotation (Line(points={{-58,-60},{10,-60}, + {10,30.75},{38,30.75}}, color={255,127,0})); + connect(conInt2.y, extIntSig1.u[1]) annotation (Line(points={{-58,60},{-20,60}, + {-20,-30.75},{38,-30.75}}, color={255,127,0})); + connect(intPul.y, extIntSig1.u[2]) annotation (Line(points={{-58,20},{-10,20}, + {-10,-30.25},{38,-30.25}}, color={255,127,0})); + connect(intPul1.y, extIntSig1.u[3]) annotation (Line(points={{-58,-20},{0,-20}, + {0,-29.75},{38,-29.75}}, color={255,127,0})); + connect(conInt3.y, extIntSig1.u[4]) annotation (Line(points={{-58,-60},{10,-60}, + {10,-29.25},{38,-29.25}}, color={255,127,0})); +annotation ( + experiment(StopTime=1.0,Tolerance=1e-06), + __Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerExtractSignal.mos" "Simulate and plot"), + Documentation(info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.IntegerExtractSignal. +

+

+The instance extIntSig has the input vector with dimension of 4 and +the extracting vector is [3, 2, 4]. Thus the output vectors is [u[3], u[2], u[4]]. +

+

+The instance extIntSig1 has the input vector with dimension of 4 and +the extracting vector is [3, 2, 4, 2, 3]. +Thus the output vectors is [u[3], u[2], u[4], u[2], u[3]]. +

+

+Note that when the extracting vector extract has any element with the value that +is out of range [1, nin], e.g. [1, 4] for instance in extIntSig. +It will issue error and the model will not translate. +

+", +revisions=" + +"), + Icon( + 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}})})); +end IntegerExtractSignal; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerExtractor.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerExtractor.mo new file mode 100644 index 0000000000..3685a4c29f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerExtractor.mo @@ -0,0 +1,177 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model IntegerExtractor + "Validation model for the integer extractor block" + IBPSA.Controls.OBC.CDL.Routing.IntegerExtractor extIndInt( + final nin=4) "Extracts signal from an input signal vector" + annotation (Placement(transformation(extent={{40,80},{60,100}}))); + IBPSA.Controls.OBC.CDL.Routing.IntegerExtractor extIndInt1( + final nin=4) + "Extracts signal from an input signal vector when the extract index is out of the upper range" + annotation (Placement(transformation(extent={{40,40},{60,60}}))); + IBPSA.Controls.OBC.CDL.Routing.IntegerExtractor extIndInt2( + final nin=4) + "Extracts signal from an input signal vector when the extract index is out of the lower range" + annotation (Placement(transformation(extent={{40,0},{60,20}}))); + IBPSA.Controls.OBC.CDL.Routing.IntegerExtractor extIndInt3( + final nin=4) + "Extracts signal from an input signal vector when the extract index changes from within range to out of range" + annotation (Placement(transformation(extent={{40,-40},{60,-20}}))); + IBPSA.Controls.OBC.CDL.Routing.IntegerExtractor extIndInt4( + final nin=4) + "Extracts signal from an input signal vector when the extract index changes from out of range to within range" + annotation (Placement(transformation(extent={{40,-80},{60,-60}}))); + + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt2( + final k=0) + "Block that outputs integer constant" + annotation (Placement(transformation(extent={{-80,70},{-60,90}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt3( + final k=4) + "Block that outputs integer constant" + annotation (Placement(transformation(extent={{-80,-90},{-60,-70}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse intPul( + final amplitude=1, + final period=0.2) "Generate pulse signal of type Integer" + annotation (Placement(transformation(extent={{-80,20},{-60,40}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse intPul1( + final period=0.3, + final amplitude=2, + final offset=-1) "Generate pulse signal of type Integer" + annotation (Placement(transformation(extent={{-80,-40},{-60,-20}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt( + final k=2) + "Index to extract input signal" + annotation (Placement(transformation(extent={{0,60},{20,80}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt1(k=6) + "Index to extract input signal" + annotation (Placement(transformation(extent={{0,20},{20,40}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt4(k=0) + "Index to extract input signal" + annotation (Placement(transformation(extent={{0,-20},{20,0}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse intPul2( + final period=1, + final amplitude=3, + final offset=-1) + "Generate pulse signal of type Integer" + annotation (Placement(transformation(extent={{0,-60},{20,-40}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse intPul3( + final period=1, + final amplitude=-3, + final offset=3) + "Generate pulse signal of type Integer" + annotation (Placement(transformation(extent={{0,-100},{20,-80}}))); + +equation + connect(conInt1.y, extIndInt1.index) + annotation (Line(points={{22,30},{50,30},{50,38}}, color={255,127,0})); + connect(conInt2.y, extIndInt.u[1]) annotation (Line(points={{-58,80},{-40,80}, + {-40,89.25},{38,89.25}}, color={255,127,0})); + connect(intPul.y, extIndInt.u[2]) annotation (Line(points={{-58,30},{-30,30},{ + -30,89.75},{38,89.75}}, color={255,127,0})); + connect(intPul1.y, extIndInt.u[3]) annotation (Line(points={{-58,-30},{-20,-30}, + {-20,90.25},{38,90.25}}, color={255,127,0})); + connect(conInt3.y, extIndInt.u[4]) annotation (Line(points={{-58,-80},{-10,-80}, + {-10,90.75},{38,90.75}}, color={255,127,0})); + connect(conInt2.y, extIndInt1.u[1]) annotation (Line(points={{-58,80},{-40,80}, + {-40,49.25},{38,49.25}}, color={255,127,0})); + connect(intPul.y, extIndInt1.u[2]) annotation (Line(points={{-58,30},{-30,30}, + {-30,49.75},{38,49.75}}, color={255,127,0})); + connect(intPul1.y, extIndInt1.u[3]) annotation (Line(points={{-58,-30},{-20,-30}, + {-20,50.25},{38,50.25}}, color={255,127,0})); + connect(conInt3.y, extIndInt1.u[4]) annotation (Line(points={{-58,-80},{-10,-80}, + {-10,50.75},{38,50.75}}, color={255,127,0})); + connect(conInt.y, extIndInt.index) + annotation (Line(points={{22,70},{50,70},{50,78}}, color={255,127,0})); + connect(conInt4.y, extIndInt2.index) + annotation (Line(points={{22,-10},{50,-10},{50,-2}}, color={255,127,0})); + connect(conInt2.y, extIndInt2.u[1]) annotation (Line(points={{-58,80},{-40,80}, + {-40,9.25},{38,9.25}}, color={255,127,0})); + connect(intPul.y, extIndInt2.u[2]) annotation (Line(points={{-58,30},{-30,30}, + {-30,9.75},{38,9.75}}, color={255,127,0})); + connect(intPul1.y, extIndInt2.u[3]) annotation (Line(points={{-58,-30},{-20,-30}, + {-20,10.25},{38,10.25}}, color={255,127,0})); + connect(conInt3.y, extIndInt2.u[4]) annotation (Line(points={{-58,-80},{-10,-80}, + {-10,10.75},{38,10.75}}, color={255,127,0})); + connect(conInt2.y, extIndInt3.u[1]) annotation (Line(points={{-58,80},{-40,80}, + {-40,-30.75},{38,-30.75}}, color={255,127,0})); + connect(intPul.y, extIndInt3.u[2]) annotation (Line(points={{-58,30},{-30,30}, + {-30,-30.25},{38,-30.25}}, color={255,127,0})); + connect(intPul1.y, extIndInt3.u[3]) annotation (Line(points={{-58,-30},{-20,-30}, + {-20,-29.75},{38,-29.75}}, color={255,127,0})); + connect(conInt3.y, extIndInt3.u[4]) annotation (Line(points={{-58,-80},{-10,-80}, + {-10,-29.25},{38,-29.25}}, color={255,127,0})); + connect(intPul2.y, extIndInt3.index) annotation (Line(points={{22,-50},{50,-50}, + {50,-42}}, color={255,127,0})); + connect(intPul3.y, extIndInt4.index) + annotation (Line(points={{22,-90},{50,-90},{50,-82}}, color={255,127,0})); + connect(conInt2.y, extIndInt4.u[1]) annotation (Line(points={{-58,80},{-40,80}, + {-40,-70.75},{38,-70.75}}, color={255,127,0})); + connect(intPul.y, extIndInt4.u[2]) annotation (Line(points={{-58,30},{-30,30}, + {-30,-70.25},{38,-70.25}}, color={255,127,0})); + connect(intPul1.y, extIndInt4.u[3]) annotation (Line(points={{-58,-30},{-20,-30}, + {-20,-69.75},{38,-69.75}}, color={255,127,0})); + connect(conInt3.y, extIndInt4.u[4]) annotation (Line(points={{-58,-80},{-10,-80}, + {-10,-69.25},{38,-69.25}}, color={255,127,0})); +annotation ( + experiment(StopTime=1.0, Tolerance=1e-06), + __Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerExtractor.mos" "Simulate and plot"), + Documentation(info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.IntegerExtractor. +

+

+The instances extIndInt, extIndInt1, extIndInt2, +extIndInt3, and extIndInt4 have the same input vector with +dimension of 4. However, they have different extract index and thus different output. +

+ +", +revisions=" + +"), + Icon(coordinateSystem(extent={{-100,-100},{100,100}}), + 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(extent={{-100,-120},{100,120}}))); +end IntegerExtractor; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerScalarReplicator.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerScalarReplicator.mo new file mode 100644 index 0000000000..1c500c9671 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerScalarReplicator.mo @@ -0,0 +1,62 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model IntegerScalarReplicator + "Validation model for the IntegerScalarReplicator block" + IBPSA.Controls.OBC.CDL.Routing.IntegerScalarReplicator intRep( + nout=3) + "Block that outputs the array replicating input value" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram( + height=5, + duration=1, + offset=-2) + "Block that outputs ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt + "Convert Real input to Integer output" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + +equation + connect(ram.y,reaToInt.u) + annotation (Line(points={{-39,0},{-12,0}},color={0,0,127})); + connect(reaToInt.y,intRep.u) + annotation (Line(points={{11,0},{38,0}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerScalarReplicator.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.IntegerScalarReplicator. +

+", + revisions=" + +"), + Icon( + 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}})})); +end IntegerScalarReplicator; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mo new file mode 100644 index 0000000000..28f221403c --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mo @@ -0,0 +1,49 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model IntegerVectorFilter + "Validation model for the IntegerVectorFilter block" + IBPSA.Controls.OBC.CDL.Routing.IntegerVectorFilter + intFil(nin=3, nout=2, msk={true,false,true}) + "Block that filter the input vector" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + + Integers.Sources.Constant IntInp[3](k={1,2,3}) "Integer inputs" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); +equation + connect(IntInp.y, intFil.u) + annotation (Line(points={{-18,0},{18,0}}, color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.IntegerVectorFilter. +

+", + revisions=" + +"), + Icon( + 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}})})); +end IntegerVectorFilter; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mo new file mode 100644 index 0000000000..95c3b9336e --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mo @@ -0,0 +1,57 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model IntegerVectorReplicator + "Validation model for the IntegerVectorReplicator block" + IBPSA.Controls.OBC.CDL.Routing.IntegerVectorReplicator + intRep(nin=2, nout=3) + "Block that outputs the vector replicating input value" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram[2]( + height=fill(5,2), + duration=fill(1,2), + offset=fill(-2,2)) "Block that outputs ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + IBPSA.Controls.OBC.CDL.Conversions.RealToInteger reaToInt[2] + "Convert Real input to Integer output" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + +equation + connect(ram.y,reaToInt.u) + annotation (Line(points={{-38,0},{-12,0}},color={0,0,127})); + connect(reaToInt.y,intRep.u) + annotation (Line(points={{12,0},{38,0}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.IntegerVectorReplicator. +

+", + revisions=" + +"), + Icon( + 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}})})); +end IntegerVectorReplicator; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/RealExtractSignal.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/RealExtractSignal.mo new file mode 100644 index 0000000000..6626dd3443 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/RealExtractSignal.mo @@ -0,0 +1,120 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model RealExtractSignal + "Validation model for the extract signal block" + IBPSA.Controls.OBC.CDL.Routing.RealExtractSignal extSig( + final nin=5, + final nout=3, + final extract={1,2,5}) + "Block that extracts signals from an input signal vector" + annotation (Placement(transformation(extent={{20,30},{40,50}}))); + IBPSA.Controls.OBC.CDL.Routing.RealExtractSignal extSig1( + final nin=5, + final nout=6, + final extract={1,2,5,3,4,2}) + "Block that extracts signals from an input signal vector" + annotation (Placement(transformation(extent={{20,-50},{40,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram( + final height=5, + final duration=1, + final offset=-2) + "Block that outputs ramp signal" + annotation (Placement(transformation(extent={{-60,50},{-40,70}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram1( + final duration=1, + final height=4, + final offset=-1) + "Block that outputs ramp signal" + annotation (Placement(transformation(extent={{-60,-40},{-40,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram2( + final duration=1, + final height=3, + final offset=-2) + "Block that outputs ramp signal" + annotation (Placement(transformation(extent={{-60,-70},{-40,-50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pul( + final amplitude=0.5, + final period=0.2) + "Generate pulse signal of type Real" + annotation (Placement(transformation(extent={{-60,20},{-40,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pul1( + final period=0.2, + final amplitude=1.5, + final offset=-0.2) + "Generate pulse signal of type Real" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ram.y,extSig.u[1]) + annotation (Line(points={{-38,60},{-20,60},{-20,39.2},{18,39.2}}, color={0,0,127})); + connect(pul.y,extSig.u[2]) + annotation (Line(points={{-38,30},{-16,30},{-16,39.6},{18,39.6}}, color={0,0,127})); + connect(pul1.y,extSig.u[3]) + annotation (Line(points={{-38,0},{-12,0},{-12,40},{18,40}}, color={0,0,127})); + connect(ram1.y,extSig.u[4]) + annotation (Line(points={{-38,-30},{-8,-30},{-8,40.4},{18,40.4}}, color={0,0,127})); + connect(ram2.y,extSig.u[5]) + annotation (Line(points={{-38,-60},{-4,-60},{-4,40.8},{18,40.8}},color={0,0,127})); + connect(ram.y, extSig1.u[1]) annotation (Line(points={{-38,60},{-20,60},{-20,-40.8}, + {18,-40.8}}, color={0,0,127})); + connect(pul.y, extSig1.u[2]) annotation (Line(points={{-38,30},{-16,30},{-16,-40.4}, + {18,-40.4}}, color={0,0,127})); + connect(pul1.y, extSig1.u[3]) annotation (Line(points={{-38,0},{-12,0},{-12,-40}, + {18,-40}}, color={0,0,127})); + connect(ram1.y, extSig1.u[4]) annotation (Line(points={{-38,-30},{-8,-30},{-8, + -39.6},{18,-39.6}}, color={0,0,127})); + connect(ram2.y, extSig1.u[5]) annotation (Line(points={{-38,-60},{-4,-60},{-4, + -39.2},{18,-39.2}}, color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealExtractSignal.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.RealExtractSignal. +

+

+The instance extSig has the input vector with dimension of 4 and +the extracting vector is [1, 2, 5]. +Thus the output vectors is [u[1], u[2], u[5]]. +

+

+The instance extSig1 has the input vector with dimension of 4 and +the extracting vector is [1, 2, 5, 3, 4, 2]. Thus the output vectors is [u[1], u[2], u[5], u[3], u[4], u[2]]. +

+

+Note that when the extracting vector extract has any element with the value that +is out of range [1, nin], e.g. [1, 4] for instance in extSig. +It will issue error and the model will not translate. +

+", +revisions=" + +"), + Icon( + 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}})})); +end RealExtractSignal; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/RealExtractor.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/RealExtractor.mo new file mode 100644 index 0000000000..b720fd33f0 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/RealExtractor.mo @@ -0,0 +1,206 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model RealExtractor + "Validation model for the extractor block" + IBPSA.Controls.OBC.CDL.Routing.RealExtractor extIndSig( + final nin=5) "Extracts signal from an input signal vector" + annotation (Placement(transformation(extent={{40,80},{60,100}}))); + IBPSA.Controls.OBC.CDL.Routing.RealExtractor extIndSig1( + final nin=5) + "Extracts signal from an input signal vector when the extract index is out of the upper range" + annotation (Placement(transformation(extent={{40,40},{60,60}}))); + IBPSA.Controls.OBC.CDL.Routing.RealExtractor extIndSig2( + final nin=5) + "Extracts signal from an input signal vector when the extract index is out of the lower range" + annotation (Placement(transformation(extent={{40,0},{60,20}}))); + IBPSA.Controls.OBC.CDL.Routing.RealExtractor extIndSig3( + final nin=5) + "Extracts signal from an input signal vector when the extract index changes from within range to out of range" + annotation (Placement(transformation(extent={{40,-40},{60,-20}}))); + IBPSA.Controls.OBC.CDL.Routing.RealExtractor extIndSig4( + final nin=5) + "Extracts signal from an input signal vector when the extract index changes from out of range to within range" + annotation (Placement(transformation(extent={{40,-80},{60,-60}}))); + + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram( + final height=5, + final duration=1, + final offset=-2) + "Block that outputs ramp signal" + annotation (Placement(transformation(extent={{-80,70},{-60,90}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram1( + final duration=1, + final height=4, + final offset=-1) + "Block that outputs ramp signal" + annotation (Placement(transformation(extent={{-80,-20},{-60,0}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram2( + final duration=1, + final height=3, + final offset=-2) + "Block that outputs ramp signal" + annotation (Placement(transformation(extent={{-80,-50},{-60,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pul( + final amplitude=0.5, + final period=0.2) + "Generate pulse signal of type Real" + annotation (Placement(transformation(extent={{-80,40},{-60,60}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pul1( + final period=0.2, + final amplitude=1.5, + final offset=-0.2) + "Generate pulse signal of type Real" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt( + final k=2) + "Index to extract input signal" + annotation (Placement(transformation(extent={{0,60},{20,80}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt1(k=6) + "Index to extract input signal" + annotation (Placement(transformation(extent={{0,20},{20,40}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Constant conInt2(k=0) + "Index to extract input signal" + annotation (Placement(transformation(extent={{0,-20},{20,0}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse intPul( + final amplitude=3, + final period=1, + final offset=-1) + "Generate pulse signal of type Integer" + annotation (Placement(transformation(extent={{0,-60},{20,-40}}))); + IBPSA.Controls.OBC.CDL.Integers.Sources.Pulse intPul1( + final amplitude=-3, + final period=1, + final offset=3) + "Generate pulse signal of type Integer" + annotation (Placement(transformation(extent={{0,-100},{20,-80}}))); +equation + connect(ram.y,extIndSig.u[1]) + annotation (Line(points={{-58,80},{-40,80},{-40,89.2},{38,89.2}}, color={0,0,127})); + connect(pul.y,extIndSig.u[2]) + annotation (Line(points={{-58,50},{-34,50},{-34,89.6},{38,89.6}}, color={0,0,127})); + connect(pul1.y,extIndSig.u[3]) + annotation (Line(points={{-58,20},{-28,20},{-28,90},{38,90}},color={0,0,127})); + connect(ram1.y,extIndSig.u[4]) + annotation (Line(points={{-58,-10},{-22,-10},{-22,90.4},{38,90.4}}, color={0,0,127})); + connect(ram2.y,extIndSig.u[5]) + annotation (Line(points={{-58,-40},{-16,-40},{-16,90.8},{38,90.8}}, color={0,0,127})); + connect(conInt.y,extIndSig.index) + annotation (Line(points={{22,70},{50,70},{50,78}},color={255,127,0})); + connect(conInt1.y,extIndSig1.index) + annotation (Line(points={{22,30},{50,30},{50,38}}, color={255,127,0})); + connect(ram.y,extIndSig1.u[1]) + annotation (Line(points={{-58,80},{-40,80},{-40,49.2},{38,49.2}}, color={0,0,127})); + connect(pul.y,extIndSig1.u[2]) + annotation (Line(points={{-58,50},{-34,50},{-34,49.6},{38,49.6}}, color={0,0,127})); + connect(pul1.y,extIndSig1.u[3]) + annotation (Line(points={{-58,20},{-28,20},{-28,50},{38,50}}, color={0,0,127})); + connect(ram1.y,extIndSig1.u[4]) + annotation (Line(points={{-58,-10},{-22,-10},{-22,50.4},{38,50.4}}, color={0,0,127})); + connect(ram2.y,extIndSig1.u[5]) + annotation (Line(points={{-58,-40},{-16,-40},{-16,50.8},{38,50.8}},color={0,0,127})); + connect(conInt2.y, extIndSig2.index) + annotation (Line(points={{22,-10},{50,-10},{50,-2}}, color={255,127,0})); + connect(ram.y, extIndSig2.u[1]) annotation (Line(points={{-58,80},{-40,80},{-40, + 9.2},{38,9.2}}, color={0,0,127})); + connect(pul.y, extIndSig2.u[2]) annotation (Line(points={{-58,50},{-34,50},{-34, + 9.6},{38,9.6}}, color={0,0,127})); + connect(pul1.y, extIndSig2.u[3]) annotation (Line(points={{-58,20},{-28,20},{-28, + 10},{38,10}}, color={0,0,127})); + connect(ram1.y, extIndSig2.u[4]) annotation (Line(points={{-58,-10},{-22,-10}, + {-22,10.4},{38,10.4}}, color={0,0,127})); + connect(ram2.y, extIndSig2.u[5]) annotation (Line(points={{-58,-40},{-16,-40}, + {-16,10.8},{38,10.8}}, color={0,0,127})); + connect(ram.y, extIndSig3.u[1]) annotation (Line(points={{-58,80},{-40,80},{-40, + -30.8},{38,-30.8}}, color={0,0,127})); + connect(pul.y, extIndSig3.u[2]) annotation (Line(points={{-58,50},{-34,50},{-34, + -30.4},{38,-30.4}}, color={0,0,127})); + connect(pul1.y, extIndSig3.u[3]) annotation (Line(points={{-58,20},{-28,20},{-28, + -30},{38,-30}}, color={0,0,127})); + connect(ram1.y, extIndSig3.u[4]) annotation (Line(points={{-58,-10},{-22,-10}, + {-22,-29.6},{38,-29.6}}, color={0,0,127})); + connect(ram2.y, extIndSig3.u[5]) annotation (Line(points={{-58,-40},{-16,-40}, + {-16,-29.2},{38,-29.2}}, color={0,0,127})); + connect(ram.y, extIndSig4.u[1]) annotation (Line(points={{-58,80},{-40,80},{-40, + -70.8},{38,-70.8}}, color={0,0,127})); + connect(pul.y, extIndSig4.u[2]) annotation (Line(points={{-58,50},{-34,50},{-34, + -70.4},{38,-70.4}}, color={0,0,127})); + connect(pul1.y, extIndSig4.u[3]) annotation (Line(points={{-58,20},{-28,20},{-28, + -70},{38,-70}}, color={0,0,127})); + connect(ram1.y, extIndSig4.u[4]) annotation (Line(points={{-58,-10},{-22,-10}, + {-22,-69.6},{38,-69.6}}, color={0,0,127})); + connect(ram2.y, extIndSig4.u[5]) annotation (Line(points={{-58,-40},{-16,-40}, + {-16,-69.2},{38,-69.2}}, color={0,0,127})); + connect(intPul.y, extIndSig3.index) + annotation (Line(points={{22,-50},{50,-50},{50,-42}}, color={255,127,0})); + connect(intPul1.y, extIndSig4.index) + annotation (Line(points={{22,-90},{50,-90},{50,-82}}, color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealExtractor.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.RealExtractor. +

+

+The instances extIndSig, extIndSig1, extIndSig2, +extIndSig3, and extIndSig4 have the same input vector with +dimension of 5. However, they have different extract index and thus different output. +

+ +", +revisions=" + +"), + Icon(coordinateSystem(extent={{-100,-100},{100,100}}), + 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(extent={{-100,-120},{100,120}}))); +end RealExtractor; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/RealScalarReplicator.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/RealScalarReplicator.mo new file mode 100644 index 0000000000..33b2b18eac --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/RealScalarReplicator.mo @@ -0,0 +1,57 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model RealScalarReplicator + "Validation model for the RealScalarReplicator block" + IBPSA.Controls.OBC.CDL.Routing.RealScalarReplicator reaRep( + nout=3) + "Block that outputs the array replicating input value" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram( + height=5, + duration=1, + offset=-2) + "Block that outputs ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ram.y,reaRep.u) + annotation (Line(points={{-39,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealScalarReplicator.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.RealScalarReplicator. +

+", + revisions=" + +"), + Icon( + 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}})})); +end RealScalarReplicator; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mo new file mode 100644 index 0000000000..7c29b49995 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mo @@ -0,0 +1,49 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model RealVectorFilter + "Validation model for the RealVectorFilter block" + IBPSA.Controls.OBC.CDL.Routing.RealVectorFilter + reaFil(nin=3, nout=2, msk={true,false,true}) + "Block that filter the input vector" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + + Reals.Sources.Constant ReaInp[3](k={1,2,3}) "Real inputs" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); +equation + connect(ReaInp.y, reaFil.u) + annotation (Line(points={{-18,0},{18,0}}, color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.RealVectorFilter. +

+", + revisions=" + +"), + Icon( + 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}})})); +end RealVectorFilter; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mo new file mode 100644 index 0000000000..0247bf813d --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mo @@ -0,0 +1,52 @@ +within IBPSA.Controls.OBC.CDL.Routing.Validation; +model RealVectorReplicator + "Validation model for the RealVectorReplicator block" + IBPSA.Controls.OBC.CDL.Routing.RealVectorReplicator + reaRep(nin=2, nout=3) + "Block that outputs the vector replicating input value" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp ram[2]( + height=fill(5,2), + duration=fill(1,2), + offset=fill(-2,2)) "Block that outputs ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ram.y,reaRep.u) + annotation (Line(points={{-38,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Routing.RealVectorReplicator. +

+", + revisions=" + +"), + Icon( + 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}})})); +end RealVectorReplicator; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/package.mo b/IBPSA/Controls/OBC/CDL/Routing/Validation/package.mo new file mode 100644 index 0000000000..982dccc2aa --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL.Routing; +package Validation "Collection of models that validate the routing blocks of the CDL" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains models that validate the blocks in + +IBPSA.Controls.OBC.CDL.Routing. +

+

+The examples plot various outputs, which have been verified against +analytical solutions. These model outputs are stored as reference data to +allow continuous validation whenever models in the library change. +

+"), + 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={8.0,14.0}, + 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}})})); +end Validation; diff --git a/IBPSA/Controls/OBC/CDL/Routing/Validation/package.order b/IBPSA/Controls/OBC/CDL/Routing/Validation/package.order new file mode 100644 index 0000000000..c5606d9843 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/Validation/package.order @@ -0,0 +1,15 @@ +BooleanExtractSignal +BooleanExtractor +BooleanScalarReplicator +BooleanVectorFilter +BooleanVectorReplicator +IntegerExtractSignal +IntegerExtractor +IntegerScalarReplicator +IntegerVectorFilter +IntegerVectorReplicator +RealExtractSignal +RealExtractor +RealScalarReplicator +RealVectorFilter +RealVectorReplicator diff --git a/IBPSA/Controls/OBC/CDL/Routing/package.mo b/IBPSA/Controls/OBC/CDL/Routing/package.mo new file mode 100644 index 0000000000..e2ac3a28cc --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/package.mo @@ -0,0 +1,34 @@ +within IBPSA.Controls.OBC.CDL; +package Routing "Package with blocks that combine and extract signals" + annotation ( + Documentation( + info=" +

+This package contains blocks to combine and extract signals. +

+"), + 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), + Line( + points={{-90,0},{4,0}}, + color={95,95,95}), + Line( + points={{88,65},{48,65},{-8,0}}, + color={95,95,95}), + Line( + points={{-8,0},{93,0}}, + color={95,95,95}), + Line( + points={{87,-65},{48,-65},{-8,0}}, + color={95,95,95})})); +end Routing; diff --git a/IBPSA/Controls/OBC/CDL/Routing/package.order b/IBPSA/Controls/OBC/CDL/Routing/package.order new file mode 100644 index 0000000000..99919894d5 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Routing/package.order @@ -0,0 +1,16 @@ +BooleanExtractSignal +BooleanExtractor +BooleanScalarReplicator +BooleanVectorFilter +BooleanVectorReplicator +IntegerExtractSignal +IntegerExtractor +IntegerScalarReplicator +IntegerVectorFilter +IntegerVectorReplicator +RealExtractSignal +RealExtractor +RealScalarReplicator +RealVectorFilter +RealVectorReplicator +Validation diff --git a/IBPSA/Controls/OBC/CDL/Types/Extrapolation.mo b/IBPSA/Controls/OBC/CDL/Types/Extrapolation.mo new file mode 100644 index 0000000000..556ac9fb3a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Types/Extrapolation.mo @@ -0,0 +1,33 @@ +within IBPSA.Controls.OBC.CDL.Types; +type Extrapolation = enumeration( + HoldLastPoint + "Hold the first/last table point outside of the table scope", + LastTwoPoints + "Extrapolate by using the derivative at the first/last table points outside of the table scope", + Periodic + "Repeat the table scope periodically") + "Enumeration defining the extrapolation of time table interpolation" + annotation (Documentation(info=" +

+Enumeration for the type of extrapolation that is used when reading data from a table. +The possible values are: +

+ + + + + + + + + + + +
EnumerationDescription
HoldLastPoint +Hold the first or last point outside of the table scope. +
LastTwoPoints +Extrapolate by using the derivative at the first or last table points outside of the table scope. +
Periodic +Repeat the table scope periodically. +
+")); diff --git a/IBPSA/Controls/OBC/CDL/Types/SimpleController.mo b/IBPSA/Controls/OBC/CDL/Types/SimpleController.mo new file mode 100644 index 0000000000..bf712562b2 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Types/SimpleController.mo @@ -0,0 +1,41 @@ +within IBPSA.Controls.OBC.CDL.Types; +type SimpleController = enumeration( + P "P controller", + PI "PI controller", + PD "PD controller", + PID "PID controller") + "Enumeration defining P, PI, PD, or PID simple controller type" + annotation (Evaluate=true,Documentation(info=" +

+Enumeration to define the type of the controller. +Possible values are: +

+ + + + + + + + + + + + +
EnumerationDescription
P +Controller with proportional term. +
PI +Controller with proportional and integral terms. +
PD +Controller with proportional and derivative term. +
PID +Controller with proportional, integral and derivative terms. +
+",revisions=" + +")); diff --git a/IBPSA/Controls/OBC/CDL/Types/Smoothness.mo b/IBPSA/Controls/OBC/CDL/Types/Smoothness.mo new file mode 100644 index 0000000000..54eb898037 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Types/Smoothness.mo @@ -0,0 +1,25 @@ +within IBPSA.Controls.OBC.CDL.Types; +type Smoothness = enumeration( + LinearSegments "Table points are linearly interpolated", + ConstantSegments "Table points are not interpolated, but the previous tabulated value is returned") + "Enumeration defining the smoothness of table interpolation" + annotation (Documentation(info=" +

+Enumeration for the type of smoothness that is used when interpolating data from a table. +The possible values are: +

+ + + + + + + + + +
EnumerationDescription
LinearSegments +Linearly interpolate table points. +
ConstantSegments +Do not interpolate, but rather use the previously tabulated value. +
+")); diff --git a/IBPSA/Controls/OBC/CDL/Types/ZeroTime.mo b/IBPSA/Controls/OBC/CDL/Types/ZeroTime.mo new file mode 100644 index 0000000000..6ce41ba621 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Types/ZeroTime.mo @@ -0,0 +1,86 @@ +within IBPSA.Controls.OBC.CDL.Types; +type ZeroTime = enumeration( + UnixTimeStamp "Thu, 01 Jan 1970 00:00:00 local time", + UnixTimeStampGMT "Thu, 01 Jan 1970 00:00:00 GMT", + Custom "User specified local time", + NY2010 "New year 2010, 00:00:00 local time", + NY2011 "New year 2011, 00:00:00 local time", + NY2012 "New year 2012, 00:00:00 local time", + NY2013 "New year 2013, 00:00:00 local time", + NY2014 "New year 2014, 00:00:00 local time", + NY2015 "New year 2015, 00:00:00 local time", + NY2016 "New year 2016, 00:00:00 local time", + NY2017 "New year 2017, 00:00:00 local time", + NY2018 "New year 2018, 00:00:00 local time", + NY2019 "New year 2019, 00:00:00 local time", + NY2020 "New year 2020, 00:00:00 local time", + NY2021 "New year 2021, 00:00:00 local time", + NY2022 "New year 2022, 00:00:00 local time", + NY2023 "New year 2023, 00:00:00 local time", + NY2024 "New year 2024, 00:00:00 local time", + NY2025 "New year 2025, 00:00:00 local time", + NY2026 "New year 2026, 00:00:00 local time", + NY2027 "New year 2027, 00:00:00 local time", + NY2028 "New year 2028, 00:00:00 local time", + NY2029 "New year 2029, 00:00:00 local time", + NY2030 "New year 2030, 00:00:00 local time", + NY2031 "New year 2031, 00:00:00 local time", + NY2032 "New year 2032, 00:00:00 local time", + NY2033 "New year 2033, 00:00:00 local time", + NY2034 "New year 2034, 00:00:00 local time", + NY2035 "New year 2035, 00:00:00 local time", + NY2036 "New year 2036, 00:00:00 local time", + NY2037 "New year 2037, 00:00:00 local time", + NY2038 "New year 2038, 00:00:00 local time", + NY2039 "New year 2039, 00:00:00 local time", + NY2040 "New year 2040, 00:00:00 local time", + NY2041 "New year 2041, 00:00:00 local time", + NY2042 "New year 2042, 00:00:00 local time", + NY2043 "New year 2043, 00:00:00 local time", + NY2044 "New year 2044, 00:00:00 local time", + NY2045 "New year 2045, 00:00:00 local time", + NY2046 "New year 2046, 00:00:00 local time", + NY2047 "New year 2047, 00:00:00 local time", + NY2048 "New year 2048, 00:00:00 local time", + NY2049 "New year 2049, 00:00:00 local time", + NY2050 "New year 2050, 00:00:00 local time") + "Use this to set the date corresponding to time = 0" + annotation (Documentation(info=" +

+Type for choosing how to set the reference time in + +IBPSA.Controls.OBC.CDL.Reals.Sources.CalendarTime. +

+

+For example, CDL.Types.TimeReference.NY2016 +means that if model time is 0, it is +January 1, 2016, 0:00:00 local time. +

+",revisions=" + +")); diff --git a/IBPSA/Controls/OBC/CDL/Types/package.mo b/IBPSA/Controls/OBC/CDL/Types/package.mo new file mode 100644 index 0000000000..98d27ea8ce --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Types/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL; +package Types "Package with type definitions" + annotation ( + Documentation( + info=" +

+This package contains type definitions. +

+"), + 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/IBPSA/Controls/OBC/CDL/Types/package.order b/IBPSA/Controls/OBC/CDL/Types/package.order new file mode 100644 index 0000000000..5b39c19665 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Types/package.order @@ -0,0 +1,4 @@ +Extrapolation +SimpleController +Smoothness +ZeroTime diff --git a/IBPSA/Controls/OBC/CDL/Utilities/Assert.mo b/IBPSA/Controls/OBC/CDL/Utilities/Assert.mo new file mode 100644 index 0000000000..6c361a89c5 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Utilities/Assert.mo @@ -0,0 +1,68 @@ +within IBPSA.Controls.OBC.CDL.Utilities; +block Assert + "Print a warning message when input becomes false" + parameter String message + "Message written when u becomes false"; + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput u + "Boolean input that triggers assert when it becomes false" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + +equation + assert(u, message, AssertionLevel.warning); + annotation ( + defaultComponentName="assMes", + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{0,80},{-80,-60},{80,-60},{0,80}}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0}), + Text( + extent={{-100,160},{100,106}}, + textColor={0,0,255}, + textString="%name"), + Polygon( + points={{0,72},{-72,-56},{72,-56},{0,72}}, + lineColor={0,0,0}, + fillColor={255,255,170}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-4,38},{2,-24}}, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), + Ellipse( + extent={{-6,-32},{4,-42}}, + pattern=LinePattern.None, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid)}), + Documentation( + info=" +

+Block that writes a warning if the input becomes false. +

+

+Tools or control systems are expected to write message together +with a time stamp to an output device and/or a log file. +

+", + revisions=" + +")); +end Assert; diff --git a/IBPSA/Controls/OBC/CDL/Utilities/SunRiseSet.mo b/IBPSA/Controls/OBC/CDL/Utilities/SunRiseSet.mo new file mode 100644 index 0000000000..8d162683ae --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Utilities/SunRiseSet.mo @@ -0,0 +1,391 @@ +within IBPSA.Controls.OBC.CDL.Utilities; +block SunRiseSet + "Next sunrise and sunset time" + parameter Real lat( + final quantity="Angle", + final unit="rad", + displayUnit="deg") + "Latitude"; + parameter Real lon( + final quantity="Angle", + final unit="rad", + displayUnit="deg") + "Longitude"; + parameter Real timZon( + final quantity="Time", + final unit="s", + displayUnit="h") + "Time zone"; + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput nextSunRise( + final quantity="Time", + final unit="s", + displayUnit="h") + "Time of next sunrise" + annotation (Placement(transformation(extent={{100,40},{140,80}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput nextSunSet( + final quantity="Time", + final unit="s", + displayUnit="h") + "Time of next sunset" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput sunUp + "Output with true if the sun is up" + annotation (Placement(transformation(extent={{100,-80},{140,-40}}))); + +protected + constant Real k1=sin( + 23.45*2*Modelica.Constants.pi/360) + "Intermediate constant"; + constant Real k2=2*Modelica.Constants.pi/365.25 + "Intermediate constant"; + parameter Real staTim( + final quantity="Time", + final unit="s", + fixed=false) + "Simulation start time"; + parameter Real timDifLocCiv( + final quantity="Time", + final unit="s", + fixed=false) + "Time difference between local and civil time"; + + Real eqnTim( + final quantity="Time", + final unit="s") + "Equation of time"; + Real timCor( + final quantity="Time", + final unit="s") + "Time correction"; + Real decAng( + final quantity="Angle", + final unit="rad", + displayUnit="deg") + "Declination angle"; + Real Bt + "Intermediate variable to calculate equation of time"; + Real cosHou + "Cosine of hour angle"; + + + function nextHourAngle + "Calculate the hour angle when the sun rises or sets next time" + input Real t( + final quantity="Time", + final unit="s") + "Current simulation time"; + input Real timDifLocCiv( + final quantity="Time", + final unit="s") + "Time difference between local and civil time"; + input Real lat( + final quantity="Angle", + final unit="rad", + displayUnit="deg") + "Latitude"; + output Real houAng( + final quantity="Angle", + final unit="rad", + displayUnit="deg") + "Solar hour angle"; + output Real tNext( + final quantity="Time", + final unit="s") + "Timesnap when sun rises or sets next time"; + output Real timCor( + final quantity="Time", + final unit="s") + "Time correction"; + + protected + Integer iDay; + Boolean compute + "Flag, set to false when the sun rise or sets "; + Real Bt + "Intermediate variable to calculate equation of time"; + Real eqnTim( + final quantity="Time", + final unit="s") + "Equation of time"; + Real decAng( + final quantity="Angle", + final unit="rad", + displayUnit="deg") + "Declination angle"; + Real cosHou + "Cosine of hour angle"; + + algorithm + iDay := 1; + compute := true; + while compute loop + tNext := t+iDay*86400; + Bt := Modelica.Constants.pi*((tNext+86400)/86400-81)/182; + eqnTim := 60*(9.87*Modelica.Math.sin( + 2*Bt)-7.53*Modelica.Math.cos(Bt)-1.5*Modelica.Math.sin(Bt)); + timCor := eqnTim+timDifLocCiv; + decAng := Modelica.Math.asin( + -k1*Modelica.Math.cos( + (tNext/86400+10)*k2)); + cosHou :=-Modelica.Math.tan(lat)*Modelica.Math.tan(decAng); + compute := abs(cosHou) > 1; + iDay := iDay+1; + end while; + houAng := Modelica.Math.acos(cosHou); + end nextHourAngle; + + function computeSunRise + "Output the next sunrise time" + input Real t( + final quantity="Time", + final unit="s") + "Current simulation time"; + input Real staTim( + final quantity="Time", + final unit="s") + "Simulation start time"; + input Real timDifLocCiv( + final quantity="Time", + final unit="s") + "Time difference between local and civil time"; + input Real lat( + final quantity="Angle", + final unit="rad", + displayUnit="deg") + "Latitude"; + output Real nextSunRise( + final quantity="Time", + final unit="s"); + + protected + Real houAng( + final quantity="Angle", + final unit="rad", + displayUnit="deg") + "Solar hour angle"; + Real tNext( + final quantity="Time", + final unit="s") + "Timesnap when sun rises next time"; + Real timCor( + final quantity="Time", + final unit="s") + "Time correction"; + Real sunRis( + final quantity="Time", + final unit="s") + "Sunrise of the same day as input time"; + Real cosHou( + final quantity="Time", + final unit="s") + "Cosine of hour angle"; + + algorithm + (houAng,tNext,timCor) := nextHourAngle( + t=t, + timDifLocCiv=timDifLocCiv, + lat=lat); + sunRis :=(12-houAng*24/(2*Modelica.Constants.pi)-timCor/3600)*3600+floor( + tNext/86400)*86400; + //If simulation start time has passed the sunrise of the initial day, output + //the sunrise of the next day. + if staTim > sunRis then + nextSunRise := sunRis+86400; + else + nextSunRise := sunRis; + end if; + end computeSunRise; + + function computeSunSet + "Output the next sunset time" + input Real t( + final quantity="Time", + final unit="s") + "Current simulation time"; + input Real staTim( + final quantity="Time", + final unit="s") + "Simulation start time"; + input Real timDifLocCiv( + final quantity="Time", + final unit="s") + "Time difference between local and civil time"; + input Real lat( + final quantity="Angle", + final unit="rad", + displayUnit="deg") + "Latitude"; + output Real nextSunSet( + final quantity="Time", + final unit="s"); + + protected + Real houAng( + final quantity="Angle", + final unit="rad", + displayUnit="deg") + "Solar hour angle"; + Real tNext( + final quantity="Time", + final unit="s") + "Timesnap when sun sets next time"; + Real timCor( + final quantity="Time", + final unit="s") + "Time correction"; + Real sunSet( + final quantity="Time", + final unit="s") + "Sunset of the same day as input time"; + Real cosHou( + final quantity="Time", + final unit="s") + "Cosine of hour angle"; + + algorithm + (houAng,tNext,timCor) := nextHourAngle( + t=t, + timDifLocCiv=timDifLocCiv, + lat=lat); + sunSet :=(12+houAng*24/(2*Modelica.Constants.pi)-timCor/3600)*3600+floor( + tNext/86400)*86400; + //If simulation start time has passed the sunset of the initial day, output + //the sunset of the next day. + if staTim > sunSet then + nextSunSet := sunSet+86400; + else + nextSunSet := sunSet; + end if; + end computeSunSet; + +initial equation + staTim=time; + timDifLocCiv=lon*43200/Modelica.Constants.pi-timZon; + nextSunRise=computeSunRise( + t=time-86400, + staTim=staTim, + timDifLocCiv=timDifLocCiv, + lat=lat); + + //In the polar cases where the sun is up during initialization, the next sunset + //actually occurs before the next sunrise + if cosHou <-1 then + nextSunSet=computeSunSet( + t=time-86400, + staTim=staTim, + timDifLocCiv=timDifLocCiv, + lat=lat)-86400; + else + nextSunSet=computeSunSet( + t=time-86400, + staTim=staTim, + timDifLocCiv=timDifLocCiv, + lat=lat); + end if; + +equation + Bt=Modelica.Constants.pi*((time+86400)/86400-81)/182; + eqnTim=60*(9.87*Modelica.Math.sin( + 2*Bt)-7.53*Modelica.Math.cos(Bt)-1.5*Modelica.Math.sin(Bt)); + timCor=eqnTim+timDifLocCiv; + decAng=Modelica.Math.asin( + -k1*Modelica.Math.cos( + (time/86400+10)*k2)); + cosHou=-Modelica.Math.tan(lat)*Modelica.Math.tan(decAng); + //When time passes the current sunrise/sunset, output the next sunrise/sunset + when time >= pre(nextSunRise) then + nextSunRise=computeSunRise( + t=time, + staTim=staTim, + timDifLocCiv=timDifLocCiv, + lat=lat); + end when; + when time >= pre(nextSunSet) then + nextSunSet=computeSunSet( + t=time, + staTim=staTim, + timDifLocCiv=timDifLocCiv, + lat=lat); + end when; + sunUp=nextSunSet < nextSunRise; + annotation ( + defaultComponentName="sunRiseSet", + Documentation( + info=" +

+This block outputs the next sunrise and sunset time. +The sunrise time keeps constant until the model time reaches the next sunrise, +at which time the output gets updated. +Similarly, the output for the next sunset is updated at each sunset. +

+

+The time zone parameter is based on UTC time; for instance, Eastern Standard Time is -5h. +Note that daylight savings time is not considered in this component. +

+

Validation

+

+A validation can be found at + +IBPSA.Controls.OBC.CDL.Utilities.Validation.SunRiseSet. +

+", + revisions=" + +"), + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-100,160},{100,106}}, + textColor={0,0,255}, + textString="%name"), + Ellipse( + extent={{70,-100},{-70,20}}, + lineColor={238,46,47}, + startAngle=0, + endAngle=180), + Line( + points={{-94,-40},{92,-40},{92,-40}}, + color={28,108,200}, + thickness=0.5), + Line( + points={{0,60},{0,32}}, + color={238,46,47}), + Line( + points={{60,40},{40,20}}, + color={238,46,47}), + Line( + points={{94,-6},{70,-6}}, + color={238,46,47}), + Line( + points={{10,10},{-10,-10}}, + color={238,46,47}, + origin={-50,30}, + rotation=90), + Line( + points={{-70,-6},{-94,-6}}, + color={238,46,47})})); +end SunRiseSet; diff --git a/IBPSA/Controls/OBC/CDL/Utilities/Validation/Assert.mo b/IBPSA/Controls/OBC/CDL/Utilities/Validation/Assert.mo new file mode 100644 index 0000000000..c3b9e8705e --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Utilities/Validation/Assert.mo @@ -0,0 +1,51 @@ +within IBPSA.Controls.OBC.CDL.Utilities.Validation; +model Assert + "Validate the Assert block" + IBPSA.Controls.OBC.CDL.Utilities.Assert assert( + message="input became false") + "Trigger warning and print warning message" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse booPul( + period=0.5) + "Output boolean pulse" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + +equation + connect(booPul.y,assert.u) + annotation (Line(points={{-19,0},{18,0}},color={255,0,255})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/Assert.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.CDL.Utilities.Assert. +

+", + revisions=" + +"), + Icon( + 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}})})); +end Assert; diff --git a/IBPSA/Controls/OBC/CDL/Utilities/Validation/SunRiseSet.mo b/IBPSA/Controls/OBC/CDL/Utilities/Validation/SunRiseSet.mo new file mode 100644 index 0000000000..7b4b05ad2a --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Utilities/Validation/SunRiseSet.mo @@ -0,0 +1,77 @@ +within IBPSA.Controls.OBC.CDL.Utilities.Validation; +model SunRiseSet + "Test model for the block SunRiseSet" + + IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet sunRiseSetArctic( + lat=1.2566370614359, + lon=-1.2566370614359, + timZon=-18000) + "Arctic circle case" + annotation (Placement(transformation(extent={{-10,50},{10,70}}))); + IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet sunRiseSetSf( + lat=0.6457718232379, + lon=-2.1293016874331, + timZon=-28800) + "San Francisco as an example in the northen hemisphere" + annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet sunRiseSetAntarctic( + lat=-1.3089969389957, + lon=0.99483767363677, + timZon=14400) + "Antarctic circle case" + annotation (Placement(transformation(extent={{-10,10},{10,30}}))); + IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet sunRiseSetSyd( + lat=-0.59341194567807, + lon=2.6354471705114, + timZon=36000) + "Sydney as an example in the southern hemisphere" + annotation (Placement(transformation(extent={{-10,-70},{10,-50}}))); + annotation ( + experiment( + StopTime=31536000, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/SunRiseSet.mos" "Simulate and plot"), + Documentation( + info=" +

+This example includes four instances of the + +IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet block: +Two normal cases, an arctic and antarctic case. +The normal cases are represented by San Francisco and Sydney, +where there is a sunrise and sunset every day. +

+

+Above the arctic circle and below the antarctic circle, +in winter and summer there is a period in which there is no sunset and sunrise +for a few days. +Hence, the output signals of the block remain constant. +

+", + revisions=" + +"), + Icon( + 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}})})); +end SunRiseSet; diff --git a/IBPSA/Controls/OBC/CDL/Utilities/Validation/SunRiseSetNegativeStartTime.mo b/IBPSA/Controls/OBC/CDL/Utilities/Validation/SunRiseSetNegativeStartTime.mo new file mode 100644 index 0000000000..d17a95c0ed --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Utilities/Validation/SunRiseSetNegativeStartTime.mo @@ -0,0 +1,68 @@ +within IBPSA.Controls.OBC.CDL.Utilities.Validation; +model SunRiseSetNegativeStartTime + "Test model for the block SunRiseSet with negative start time" + + IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet sunRiseSetArctic( + lat=1.2566370614359, + lon=-1.2566370614359, + timZon=-18000) + "Arctic circle case" + annotation (Placement(transformation(extent={{-10,50},{10,70}}))); + IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet sunRiseSetSf( + lat=0.6457718232379, + lon=-2.1293016874331, + timZon=-28800) + "San Francisco as a test example in the northen hemisphere" + annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet sunRiseSetAntarctic( + lat=-1.3089969389957, + lon=0.99483767363677, + timZon=14400) + "Antarctic circle case" + annotation (Placement(transformation(extent={{-10,10},{10,30}}))); + IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet sunRiseSetSyd( + lat=-0.59341194567807, + lon=2.6354471705114, + timZon=36000) + "Sydney as a test example in the southern hemisphere" + annotation (Placement(transformation(extent={{-10,-70},{10,-50}}))); + annotation ( + experiment( + StartTime=-43200, + StopTime=259200, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/SunRiseSetNegativeStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

This example includes 4 tests for the +IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet block: 2 normal cases, an arctic and antarctic case. +The normal cases are represented by San Francisco and Sydney, where there is a sunrise and sunset every day.

+

This model starts the simulation from -12 hour instead of 0.

+", + revisions=" + +"), + Icon( + 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}})})); +end SunRiseSetNegativeStartTime; diff --git a/IBPSA/Controls/OBC/CDL/Utilities/Validation/SunRiseSetPositiveStartTime.mo b/IBPSA/Controls/OBC/CDL/Utilities/Validation/SunRiseSetPositiveStartTime.mo new file mode 100644 index 0000000000..21fcd54b80 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Utilities/Validation/SunRiseSetPositiveStartTime.mo @@ -0,0 +1,68 @@ +within IBPSA.Controls.OBC.CDL.Utilities.Validation; +model SunRiseSetPositiveStartTime + "Test model for the block SunRiseSet with positive start time" + + IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet sunRiseSetArctic( + lat=1.2566370614359, + lon=-1.2566370614359, + timZon=-18000) + "Arctic circle case" + annotation (Placement(transformation(extent={{-10,50},{10,70}}))); + IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet sunRiseSetSf( + lat=0.6457718232379, + lon=-2.1293016874331, + timZon=-28800) + "San Francisco as a test example in the northen hemisphere" + annotation (Placement(transformation(extent={{-10,-30},{10,-10}}))); + IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet sunRiseSetAntarctic( + lat=-1.3089969389957, + lon=0.99483767363677, + timZon=14400) + "Antarctic circle case" + annotation (Placement(transformation(extent={{-10,10},{10,30}}))); + IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet sunRiseSetSyd( + lat=-0.59341194567807, + lon=2.6354471705114, + timZon=36000) + "Sydney as a test example in the southern hemisphere" + annotation (Placement(transformation(extent={{-10,-70},{10,-50}}))); + annotation ( + experiment( + StartTime=43200, + StopTime=345600, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/SunRiseSetPositiveStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

This example includes 4 tests for the +IBPSA.Controls.OBC.CDL.Utilities.SunRiseSet block: 2 normal cases, an arctic and antarctic case. +The normal cases are represented by San Francisco and Sydney, where there is a sunrise and sunset every day.

+

This model starts the simulation from 12 hour instead of 0.

+", + revisions=" + +"), + Icon( + 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}})})); +end SunRiseSetPositiveStartTime; diff --git a/IBPSA/Controls/OBC/CDL/Utilities/Validation/package.mo b/IBPSA/Controls/OBC/CDL/Utilities/Validation/package.mo new file mode 100644 index 0000000000..fe00591499 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Utilities/Validation/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.CDL.Utilities; +package Validation "Collection of models that validate the utilities blocks of the CDL" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains models that validate the blocks in + +IBPSA.Controls.OBC.CDL.Utilities. +

+

+The examples plot various outputs, which have been verified against +analytical solutions. These model outputs are stored as reference data to +allow continuous validation whenever models in the library change. +

+"), + 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={8.0,14.0}, + 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}})})); +end Validation; diff --git a/IBPSA/Controls/OBC/CDL/Utilities/Validation/package.order b/IBPSA/Controls/OBC/CDL/Utilities/Validation/package.order new file mode 100644 index 0000000000..1b5a39d88f --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Utilities/Validation/package.order @@ -0,0 +1,4 @@ +Assert +SunRiseSet +SunRiseSetNegativeStartTime +SunRiseSetPositiveStartTime diff --git a/IBPSA/Controls/OBC/CDL/Utilities/package.mo b/IBPSA/Controls/OBC/CDL/Utilities/package.mo new file mode 100644 index 0000000000..b0f113f019 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Utilities/package.mo @@ -0,0 +1,39 @@ +within IBPSA.Controls.OBC.CDL; +package Utilities "Package with utility functions" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains utility models +that are used throughout the library. +

+"), + Icon( + coordinateSystem( + extent={{-100.0,-100.0},{100.0,100.0}}), + 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={1.3835,-4.1418}, + rotation=45.0, + fillColor={64,64,64}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-15.0,93.333},{-15.0,68.333},{0.0,58.333},{15.0,68.333},{15.0,93.333},{20.0,93.333},{25.0,83.333},{25.0,58.333},{10.0,43.333},{10.0,-41.667},{25.0,-56.667},{25.0,-76.667},{10.0,-91.667},{0.0,-91.667},{0.0,-81.667},{5.0,-81.667},{15.0,-71.667},{15.0,-61.667},{5.0,-51.667},{-5.0,-51.667},{-15.0,-61.667},{-15.0,-71.667},{-5.0,-81.667},{0.0,-81.667},{0.0,-91.667},{-10.0,-91.667},{-25.0,-76.667},{-25.0,-56.667},{-10.0,-41.667},{-10.0,43.333},{-25.0,58.333},{-25.0,83.333},{-20.0,93.333}}), + Polygon( + origin={10.1018,5.218}, + rotation=-45.0, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + points={{-15.0,87.273},{15.0,87.273},{20.0,82.273},{20.0,27.273},{10.0,17.273},{10.0,7.273},{20.0,2.273},{20.0,-2.727},{5.0,-2.727},{5.0,-77.727},{10.0,-87.727},{5.0,-112.727},{-5.0,-112.727},{-10.0,-87.727},{-5.0,-77.727},{-5.0,-2.727},{-20.0,-2.727},{-20.0,2.273},{-10.0,7.273},{-10.0,17.273},{-20.0,27.273},{-20.0,82.273}})})); +end Utilities; diff --git a/IBPSA/Controls/OBC/CDL/Utilities/package.order b/IBPSA/Controls/OBC/CDL/Utilities/package.order new file mode 100644 index 0000000000..e7322e50f3 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/Utilities/package.order @@ -0,0 +1,3 @@ +Assert +SunRiseSet +Validation diff --git a/IBPSA/Controls/OBC/CDL/package.mo b/IBPSA/Controls/OBC/CDL/package.mo new file mode 100644 index 0000000000..54ae177284 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/package.mo @@ -0,0 +1,64 @@ +within IBPSA.Controls.OBC; +package CDL "Package with blocks, examples and validation tests for control description language" + annotation ( + Documentation( + info=" +

+Package that has Elementary Blocks +that form the Control Description Language (CDL). +

+

+The implementation is structured into sub-packages. +The packages Validation +contain validation models. +These are not part of the CDL specification, but rather +implemented to provide reference responses computed by the CDL blocks. +For a specification of CDL, see + +https://obc.lbl.gov/specification/cdl.html. +

+", + 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), + Ellipse( + origin={10.0,10.0}, + fillColor={76,76,76}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{-80.0,-80.0},{-20.0,-20.0}}), + Ellipse( + origin={10.0,10.0}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{0.0,-80.0},{60.0,-20.0}}), + Ellipse( + origin={10.0,10.0}, + fillColor={128,128,128}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{0.0,0.0},{60.0,60.0}}), + Ellipse( + origin={10.0,10.0}, + lineColor={128,128,128}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-80.0,0.0},{-20.0,60.0}})})); +end CDL; diff --git a/IBPSA/Controls/OBC/CDL/package.order b/IBPSA/Controls/OBC/CDL/package.order new file mode 100644 index 0000000000..2a8aa44364 --- /dev/null +++ b/IBPSA/Controls/OBC/CDL/package.order @@ -0,0 +1,11 @@ +Constants +Conversions +Discrete +Integers +Logical +Psychrometrics +Reals +Routing +Utilities +Types +Interfaces diff --git a/IBPSA/Controls/OBC/UsersGuide.mo b/IBPSA/Controls/OBC/UsersGuide.mo new file mode 100644 index 0000000000..b3c786cbc0 --- /dev/null +++ b/IBPSA/Controls/OBC/UsersGuide.mo @@ -0,0 +1,260 @@ +within IBPSA.Controls.OBC; +package UsersGuide "User's Guide" + extends Modelica.Icons.Information; + + class Conventions "Naming conventions in OBC package" + extends Modelica.Icons.Information; + + annotation (preferredView="info", + defaultComponentName="useGui", + Documentation(info=" +

+The IBPSA.Controls.OBC package follows the naming conventions of +the IBPSA Library, +see IBPSA.UsersGuide.Conventions. +The table below shows some examples of commonly used names. +Note that the names are generally composed as follows: +

+ +

+Generally, we strive for short names, and therefore often prefix or postfix are omitted if +the type of the variable is clear from the context. +For example, a room temperature thermostat may simply use T as an input +as it is clear that this will be the room temperature. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instance names
NameComments
TOut (hOut)Outdoor air temperature (enthalpy)
TZonHeaSet (TZonCooSet)Zone heating (cooling) set point temperature
VDis_flowMeasured discharge airflow rate
dpBuiBuilding static pressure difference, relative to ambient
uOpeModZone group operating mode
uResReqNumber of reset requests
uSupFanCurrent supply fan enabling status, true: fan is enabled
uSupFanSpeCurrent supply fan speed
uDamMeasured damper position
uHea (uCoo)Heating (cooling) loop signal
yPosMin (yPosMax)Minimum (maximum) position
yHeaCoi (yCooCoi)Heating (cooling) coil control signal
uChiIsoValChiller condenser water isolation valve status
dpChiWat_remoteChilled water differntial statis pressure from remote sensor
TChiWatRetChilled water return temperature
VChiWat_flowMeasured chilled water volume flow rate
uHeaPreConChiller head pressure control loop signal from chiller controller
yChiPumSpeChilled water pump speed setpoint
yChiChiller status setpoint
yMinValPosMinimum valve position setpoint
Parameter names
Name Comments
use_TMixSet to true if mixed air temperature measurement is used
have_occSen (have_winSen)Set to true if the zone has occupancy (window) sensor
AFloArea of the zone
VDisHeaSetMax_flow (VDisCooSetMax_flow)Zone maximum heating (cooling) airflow set point
VOutPerAre_flow (VOutPerPer_flow)Outdoor airflow rate per unit area (person)
V_flow_nominalNominal volume flow rate
VOutMin_flowCalculated minimum outdoor airflow rate at design stage
pMinSet (pMaxSet)Minimum (maximum) pressure set point for fan speed control
TSupSetMin (TSupSetMax)Lowest (Highest) cooling supply air temperature
TOccHeaSet (TUnoHeaSet)Zone occupied (unoccupied) heating set point
TZonCooMax (TZonCooMin)Maximum (minimum) zone cooling set point when cooling is on
retDamPhyPosMax (outDamPhyPosMax)Physically fixed maximum position of the return (outdoor) air damper
samplePeriodSample period
zonDisEffHea (zonDisEffCoo)Zone air distribution effectiveness during heating (cooling)
kCooGain for cooling control loop signal
TiCooTime constant of integrator block for cooling control loop signal
TdCooTime constant of derivative block for cooling control loop signal
nChiTotal number of chillers
have_parChiTrue: the plant has parallel chillers
have_heaChiWatPumTrue: the plant has headed chilled water pumps
have_fixSpeConWatPumTrue: the plant has fixed speed condenser water pumps
need_reduceChillerDemandTrue: the plant needs to limit chiller demand when chiller staging
minChiLifMinimum allowable lift at minimum load for chiller
TChiWatSupMinMinimum chilled water supply temperature
dpChiWatPumMinMinimum chilled water pump differential static pressure
lift_minChiller minimum lift
+
+"), + Icon(graphics={ + Ellipse( + lineColor={75,138,73}, + fillColor={75,138,73}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{-100,-100},{100,100}}), + Polygon(origin={-4.167,-15}, + fillColor={255,255,255}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-15.833,20.0},{-15.833,30.0},{14.167,40.0},{24.167,20.0},{4.167,-30.0},{14.167,-30.0},{24.167,-30.0},{24.167,-40.0},{-5.833,-50.0},{-15.833,-30.0},{4.167,20.0},{-5.833,20.0}}, + smooth=Smooth.Bezier), + Ellipse(origin={7.5,56.5}, + fillColor={255,255,255}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{-12.5,-12.5},{12.5,12.5}})})); + end Conventions; + annotation (preferredView="info", + defaultComponentName="useGui", + Documentation(info=" +\"OBC +

+The package IBPSA.Controls.OBC +contains the Control Description Language (CDL) and models for building control that +are implemented using CDL. +The Control Description Language is a language that is being standardized through +ASHRAE Standard 231P. +It has been developed to digitalize the design, implementation and commissioning +of building control sequences in format that is independent of any particular +control product line (Wetter et al., 2018). +For a description of the process for digitalizing control delivery, +see Wetter et al. (2022). +

+ +

+The package also contains models for unit conversions, +IBPSA.Controls.OBC.UnitConversions, +and utilities models, such as +IBPSA.Controls.OBC.Utilities.OptimalStart, +which output the optimal start time for an HVAC system. +

+

+The Control Description Language (CDL) can be found in +IBPSA.Controls.OBC.CDL +and its specification is at obc.lbl.gov. +Note that the implementation in +IBPSA.Controls.OBC.CDL +replicates some classes from the Modelica Standard Library. +This was done to have a self-contained implementation of CDL that can be +standardized through ASHRAE and that has minimum dependencies +on other software to ease support by building automation systems. +The replication of the implementation of the blocks also avoids +that CDL inadvertently changes +if the Modelica Standard Library is updated, +which is undesirable as changes to CDL will need to go through the +ASHRAE standardization process. +

+

References

+ +"), + Icon(graphics={ + Ellipse( + lineColor={75,138,73}, + fillColor={75,138,73}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{-100,-100},{100,100}}), + Polygon(origin={-4.167,-15}, + fillColor={255,255,255}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-15.833,20.0},{-15.833,30.0},{14.167,40.0},{24.167,20.0},{4.167,-30.0},{14.167,-30.0},{24.167,-30.0},{24.167,-40.0},{-5.833,-50.0},{-15.833,-30.0},{4.167,20.0},{-5.833,20.0}}, + smooth=Smooth.Bezier), + Ellipse(origin={7.5,56.5}, + fillColor={255,255,255}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{-12.5,-12.5},{12.5,12.5}})})); +end UsersGuide; diff --git a/IBPSA/Controls/OBC/Utilities/BaseClasses/OptimalStartCalculation.mo b/IBPSA/Controls/OBC/Utilities/BaseClasses/OptimalStartCalculation.mo new file mode 100644 index 0000000000..21200ac458 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/BaseClasses/OptimalStartCalculation.mo @@ -0,0 +1,316 @@ +within IBPSA.Controls.OBC.Utilities.BaseClasses; +block OptimalStartCalculation + "Base class for the block OptimalStart" + parameter Real tOptMax( + final quantity="Time", + final unit="s") + "Maximum optimal start time"; + parameter Real thrOptOn( + final quantity="Time", + final unit="s") + "Threshold time for the output optOn to become true"; + parameter Integer nDay + "Number of previous days for averaging the temperature slope"; + parameter Real uLow( + final quantity="TemperatureDifference", + final unit="K") + "Threshold to determine if the zone temperature reaches the occupied setpoint, + should be a non-negative number"; + parameter Real uHigh( + final quantity="TemperatureDifference", + final unit="K") + "Threshold to determine the need to start the HVAC system before occupancy, + should be greater than uLow"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput TDif( + final quantity="TemperatureDifference", + final unit="K") + "Difference between zone setpoint and measured temperature, must be bigger than zero for heating and cooling if setpoint is not yet reached" + annotation (Placement(transformation(extent={{-320,100},{-280,140}}), + iconTransformation(extent={{-140,60},{-100,100}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput staCal + "Start calculation" + annotation (Placement(transformation(extent={{-320,20},{-280,60}}), + iconTransformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput tNexOcc( + final quantity="Time", + final unit="s", + displayUnit="h") + "Time until next occupancy" + annotation (Placement(transformation(extent={{-320,-160},{-280,-120}}), + iconTransformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput tOpt( + final quantity="Time", + final unit="s", + displayUnit="h") + "Optimal start time of HVAC system" + annotation (Placement(transformation(extent={{440,40},{480,80}}), + iconTransformation(extent={{100,20},{140,60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput optOn + "Optimal start boolean output" + annotation (Placement(transformation(extent={{440,-80},{480,-40}}), + iconTransformation(extent={{100,-60},{140,-20}}))); + +protected + constant Real tReaMin( + final quantity="Time", + final unit="s", + displayUnit="h")=120 + "Minimum value for optimal start time if the system reached the set point almost immediately (used to avoid division by zero)"; + constant Real temSloDef( + final quantity="TemperatureSlope", + final unit="K/s")=1/3600 + "Minimum value for temperature slope (used to avoid division by zero)"; + IBPSA.Controls.OBC.CDL.Logical.Sources.SampleTrigger samTri( + final period=86400, + final shift=0) + "Trigger that triggers each midnight" + annotation (Placement(transformation(extent={{0,-50},{20,-30}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredMovingMean samTemSloAve( + final n=nDay) + "Calculate the averaged temperature slope over the past n days" + annotation (Placement(transformation(extent={{60,-10},{80,10}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler dTCalOn + "Get the sampled temperature difference at the same time each day" + annotation (Placement(transformation(extent={{-40,70},{-20,90}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler dTHVACOn + "Get the temperature difference when the HVAC system starts" + annotation (Placement(transformation(extent={{-40,110},{-20,130}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant con( + final k=0) + "Deadband case" + annotation (Placement(transformation(extent={{40,50},{60,70}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant timReaMin( + final k=tReaMin) + "Minimum time to reach set point (used to avoid division by zero)" + annotation (Placement(transformation(extent={{-80,-42},{-60,-22}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant defTemSlo( + final k=temSloDef) + "Default temperature slope in case of zero division" + annotation (Placement(transformation(extent={{88,-40},{108,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.Edge edg + "HVAC start time" + annotation (Placement(transformation(extent={{-148,-90},{-128,-70}}))); + IBPSA.Controls.OBC.CDL.Logical.FallingEdge falEdg + "The instant when the zone temperature reaches setpoint" + annotation (Placement(transformation(extent={{-148,-30},{-128,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Hysteresis hys( + final uLow=uLow, + final uHigh=uHigh) + "Comparing zone temperature with zone setpoint" + annotation (Placement(transformation(extent={{-260,64},{-240,84}}))); + IBPSA.Controls.OBC.CDL.Reals.Hysteresis hysOpt( + final pre_y_start=false, + final uHigh=0, + final uLow=-60) + "Hysteresis to activate the optimal start" + annotation (Placement(transformation(extent={{320,-90},{340,-70}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant maxStaTim( + final k=tOptMax) + "Maximum optimal start time" + annotation (Placement(transformation(extent={{210,-40},{230,-20}}))); + IBPSA.Controls.OBC.CDL.Logical.TrueFalseHold truHol( + final falseHoldDuration=0, + final trueHoldDuration=tOptMax + 11*3600) + "Hold the start time for timer" + annotation (Placement(transformation(extent={{-240,0},{-220,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Divide temSlo + "Calculate temperature slope" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Pre pre + "Break algebraic loops" + annotation (Placement(transformation(extent={{390,-16},{410,4}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract sub1 + "Calculate the time duration to reach the setpoint" + annotation (Placement(transformation(extent={{-88,-10},{-68,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract sub2 + "Calculate differential between time-to-next-occupancy and the cool-down time" + annotation (Placement(transformation(extent={{280,-90},{300,-70}}))); + IBPSA.Controls.OBC.CDL.Reals.Min min + "Get the final optimal start time" + annotation (Placement(transformation(extent={{240,-16},{260,4}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triSam + "The instant when the zone temperature reaches setpoint with maximum time cutoff" + annotation (Placement(transformation(extent={{-130,0},{-110,20}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler triSam1 + "Record the start time when the HVAC system is turned on" + annotation (Placement(transformation(extent={{-130,-60},{-110,-40}}))); + IBPSA.Controls.OBC.CDL.Logical.Latch lat + "Stop calculation when the zone temperature reaches setpoint" + annotation (Placement(transformation(extent={{-188,70},{-168,90}}))); + IBPSA.Controls.OBC.CDL.Logical.Timer tim + "Record time duration for the zone temperature to reach setpoint" + annotation (Placement(transformation(extent={{-210,0},{-190,20}}))); + IBPSA.Controls.OBC.CDL.Logical.Not not1 + "Becomes true when the setpoint is reached" + annotation (Placement(transformation(extent={{-220,64},{-200,84}}))); + IBPSA.Controls.OBC.CDL.Reals.Divide tOptCal + "Calculate optimal start time using the averaged previous temperature slope" + annotation (Placement(transformation(extent={{160,-10},{180,10}}))); + IBPSA.Controls.OBC.CDL.Discrete.TriggeredSampler samTimOpt + "Get the sampled optimal start time at the same time each day" + annotation (Placement(transformation(extent={{190,-10},{210,10}}))); + IBPSA.Controls.OBC.CDL.Reals.GreaterThreshold greThr( + final t=thrOptOn) + "The threshold for optOn signal becomes true" + annotation (Placement(transformation(extent={{320,-16},{340,4}}))); + IBPSA.Controls.OBC.CDL.Logical.And and2 + "Logical and" + annotation (Placement(transformation(extent={{360,-16},{380,4}}))); + IBPSA.Controls.OBC.CDL.Reals.Max timRea + "Time required to reach the set point" + annotation (Placement(transformation(extent={{-40,-16},{-20,4}}))); + IBPSA.Controls.OBC.CDL.Reals.Max temSloAve + "Temperature slope during heat up or cool down over the past sampled days" + annotation (Placement(transformation(extent={{120,-16},{140,4}}))); + IBPSA.Controls.OBC.CDL.Reals.Switch dTUse + "dT used in the calculations (to avoid negative dT)" + annotation (Placement(transformation(extent={{80,70},{100,90}}))); + IBPSA.Controls.OBC.CDL.Reals.GreaterThreshold reqStaUp( + final t=0, + final h=0) + "Output true if optimal startup is needed" + annotation (Placement(transformation(extent={{10,70},{30,90}}))); + IBPSA.Controls.OBC.CDL.Logical.And triAve + "Trigger sampling but only if optimal start up is needed" + annotation (Placement(transformation(extent={{40,-42},{60,-22}}))); + +equation + connect(tim.y,triSam.u) + annotation (Line(points={{-188,10},{-132,10}},color={0,0,127})); + connect(falEdg.y,triSam.trigger) + annotation (Line(points={{-126,-20},{-120,-20},{-120,-1.8}},color={255,0,255})); + connect(not1.y,lat.clr) + annotation (Line(points={{-198,74},{-190,74}},color={255,0,255})); + connect(temSlo.y,samTemSloAve.u) + annotation (Line(points={{22,0},{58,0}},color={0,0,127})); + connect(TDif,hys.u) + annotation (Line(points={{-300,120},{-272,120},{-272,74},{-262,74}},color={0,0,127})); + connect(staCal,dTCalOn.trigger) + annotation (Line(points={{-300,40},{-30,40},{-30,68.2}},color={255,0,255})); + connect(TDif,dTHVACOn.u) + annotation (Line(points={{-300,120},{-42,120}},color={0,0,127})); + connect(pre.y,dTHVACOn.trigger) + annotation (Line(points={{412,-6},{420,-6},{420,104},{-30,104},{-30,108.2}},color={255,0,255})); + connect(pre.y,lat.u) + annotation (Line(points={{412,-6},{420,-6},{420,150},{-190,150},{-190,80}},color={255,0,255})); + connect(edg.y,triSam1.trigger) + annotation (Line(points={{-126,-80},{-120,-80},{-120,-61.8}},color={255,0,255})); + connect(triSam1.y,sub1.u2) + annotation (Line(points={{-108,-50},{-100,-50},{-100,-6},{-90,-6}},color={0,0,127})); + connect(triSam.y,sub1.u1) + annotation (Line(points={{-108,10},{-100,10},{-100,6},{-90,6}},color={0,0,127})); + connect(TDif,dTCalOn.u) + annotation (Line(points={{-300,120},{-140,120},{-140,80},{-42,80}},color={0,0,127})); + connect(tNexOcc,sub2.u2) + annotation (Line(points={{-300,-140},{272,-140},{272,-86},{278,-86}},color={0,0,127})); + connect(sub2.y,hysOpt.u) + annotation (Line(points={{302,-80},{318,-80}},color={0,0,127})); + connect(min.y,sub2.u1) + annotation (Line(points={{262,-6},{270,-6},{270,-74},{278,-74}},color={0,0,127})); + connect(staCal,truHol.u) + annotation (Line(points={{-300,40},{-260,40},{-260,10},{-242,10}},color={255,0,255})); + connect(truHol.y,tim.u) + annotation (Line(points={{-218,10},{-212,10}},color={255,0,255})); + connect(tim.y,triSam1.u) + annotation (Line(points={{-188,10},{-168,10},{-168,-50},{-132,-50}},color={0,0,127})); + connect(min.y,tOpt) + annotation (Line(points={{262,-6},{270,-6},{270,60},{460,60}},color={0,0,127})); + connect(not1.u,hys.y) + annotation (Line(points={{-222,74},{-238,74}},color={255,0,255})); + connect(lat.y,edg.u) + annotation (Line(points={{-166,80},{-162,80},{-162,-80},{-150,-80}},color={255,0,255})); + connect(lat.y,falEdg.u) + annotation (Line(points={{-166,80},{-162,80},{-162,-20},{-150,-20}},color={255,0,255})); + connect(tOptCal.y,samTimOpt.u) + annotation (Line(points={{182,0},{188,0}},color={0,0,127})); + connect(staCal,samTimOpt.trigger) + annotation (Line(points={{-300,40},{146,40},{146,-20},{200,-20},{200,-11.8}},color={255,0,255})); + connect(dTHVACOn.y,temSlo.u1) + annotation (Line(points={{-18,120},{-10,120},{-10,6},{-2,6}},color={0,0,127})); + connect(min.y,greThr.u) + annotation (Line(points={{262,-6},{318,-6}},color={0,0,127})); + connect(hysOpt.y,and2.u2) + annotation (Line(points={{342,-80},{350,-80},{350,-14},{358,-14}},color={255,0,255})); + connect(greThr.y,and2.u1) + annotation (Line(points={{342,-6},{358,-6}},color={255,0,255})); + connect(and2.y,pre.u) + annotation (Line(points={{382,-6},{388,-6}},color={255,0,255})); + connect(pre.y,optOn) + annotation (Line(points={{412,-6},{420,-6},{420,-60},{460,-60}},color={255,0,255})); + connect(timRea.y,temSlo.u2) + annotation (Line(points={{-18,-6},{-2,-6}},color={0,0,127})); + connect(timRea.u1,sub1.y) + annotation (Line(points={{-42,0},{-66,0}},color={0,0,127})); + connect(temSloAve.y,tOptCal.u2) + annotation (Line(points={{142,-6},{158,-6}},color={0,0,127})); + connect(temSloAve.u1,samTemSloAve.y) + annotation (Line(points={{118,0},{82,0}},color={0,0,127})); + connect(defTemSlo.y,temSloAve.u2) + annotation (Line(points={{110,-30},{112,-30},{112,-12},{118,-12}},color={0,0,127})); + connect(min.u1,samTimOpt.y) + annotation (Line(points={{238,0},{212,0}},color={0,0,127})); + connect(maxStaTim.y,min.u2) + annotation (Line(points={{232,-30},{234,-30},{234,-12},{238,-12}},color={0,0,127})); + connect(reqStaUp.u,dTCalOn.y) + annotation (Line(points={{8,80},{-18,80}},color={0,0,127})); + connect(dTUse.u2,reqStaUp.y) + annotation (Line(points={{78,80},{32,80}},color={255,0,255})); + connect(dTCalOn.y,dTUse.u1) + annotation (Line(points={{-18,80},{2,80},{2,100},{52,100},{52,88},{78,88}},color={0,0,127})); + connect(con.y,dTUse.u3) + annotation (Line(points={{62,60},{72,60},{72,72},{78,72}},color={0,0,127})); + connect(dTUse.y,tOptCal.u1) + annotation (Line(points={{102,80},{150,80},{150,6},{158,6}},color={0,0,127})); + connect(triAve.u2,samTri.y) + annotation (Line(points={{38,-40},{22,-40}},color={255,0,255})); + connect(reqStaUp.y,triAve.u1) + annotation (Line(points={{32,80},{36,80},{36,-32},{38,-32}},color={255,0,255})); + connect(triAve.y,samTemSloAve.trigger) + annotation (Line(points={{62,-32},{70,-32},{70,-12}},color={255,0,255})); + connect(timReaMin.y, timRea.u2) annotation (Line(points={{-58,-32},{-50,-32}, + {-50,-12},{-42,-12}}, color={0,0,127})); + annotation ( + defaultComponentName="optStaCal", + Documentation( + info=" +

+This base class contains the algorithm for the optimal start calculation. For the +description of the algorithm, please refer to the documentation for the block + +IBPSA.Controls.OBC.Utilities.OptimalStart. +

+", + revisions=" + +"), + Diagram( + coordinateSystem( + extent={{-280,-160},{440,160}})), + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name")})); +end OptimalStartCalculation; diff --git a/IBPSA/Controls/OBC/Utilities/BaseClasses/package.mo b/IBPSA/Controls/OBC/Utilities/BaseClasses/package.mo new file mode 100644 index 0000000000..876a6f3908 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/BaseClasses/package.mo @@ -0,0 +1,29 @@ +within IBPSA.Controls.OBC.Utilities; +package BaseClasses "Package with base classes" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains base classes to construct blocks in +IBPSA.Controls.OBC.Utilities. +

+"), + 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( + extent={{-30,-30},{30,30}}, + lineColor={128,128,128}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid)})); +end BaseClasses; diff --git a/IBPSA/Controls/OBC/Utilities/BaseClasses/package.order b/IBPSA/Controls/OBC/Utilities/BaseClasses/package.order new file mode 100644 index 0000000000..8b68ab4181 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/BaseClasses/package.order @@ -0,0 +1 @@ +OptimalStartCalculation diff --git a/IBPSA/Controls/OBC/Utilities/OptimalStart.mo b/IBPSA/Controls/OBC/Utilities/OptimalStart.mo new file mode 100644 index 0000000000..738cb9b694 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/OptimalStart.mo @@ -0,0 +1,383 @@ +within IBPSA.Controls.OBC.Utilities; +block OptimalStart + "Block that outputs the optimal start time for an HVAC system before occupancy" + parameter Real tOptMax( + final quantity="Time", + final unit="s", + displayUnit="h", + final min=0, + max=21600)=10800 + "Maximum optimal start time"; + parameter Integer nDay( + min=1)=3 + "Number of previous days used to compute the optimal start up time"; + parameter Boolean computeHeating=false + "Set to true to compute optimal start for heating"; + parameter Boolean computeCooling=false + "Set to true to compute optimal start for cooling"; + parameter Real uLow( + final quantity="TemperatureDifference", + final unit="K", + final min=0)=0 + "Threshold to determine if the zone temperature reaches the occupied setpoint, + must be a non-negative number"; + parameter Real uHigh( + final quantity="TemperatureDifference", + final unit="K", + final min=0)=0.5 + "Threshold to determine the need to start the HVAC system before occupancy, + must be greater than uLow"; + parameter Real thrOptOn( + final quantity="Time", + final unit="s", + displayUnit="h", + final min=0, + max=10800)=60 + "Threshold time, optimal start on signal becomes true when tOpt larger than thrOptOn"; + IBPSA.Controls.OBC.CDL.Interfaces.RealInput TSetZonHea( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC", + min=200) if computeHeating + "Zone heating setpoint temperature during occupancy" + annotation (Placement(transformation(extent={{-180,60},{-140,100}}), + iconTransformation(extent={{-140,60},{-100,100}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput TZon( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC", + min=200) + "Zone temperature" + annotation (Placement(transformation(extent={{-180,-60},{-140,-20}}), + iconTransformation(extent={{-140,-60},{-100,-20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput TSetZonCoo( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC", + min=200) if computeCooling + "Zone cooling setpoint temperature during occupancy" + annotation (Placement(transformation(extent={{-180,20},{-140,60}}), + iconTransformation(extent={{-140,20},{-100,60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput tNexOcc( + final quantity="Time", + final unit="s", + displayUnit="h") + "Time until next occupancy" + annotation (Placement(transformation(extent={{-180,-100},{-140,-60}}), + iconTransformation(extent={{-140,-100},{-100,-60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput tOpt( + final quantity="Time", + final unit="s", + displayUnit="h") + "Optimal start time duration of HVAC system" + annotation (Placement(transformation(extent={{140,20},{180,60}}), + iconTransformation(extent={{100,20},{140,60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanOutput optOn + "Outputs true if the HVAC system remains in the optimal start period" + annotation (Placement(transformation(extent={{140,-60},{180,-20}}), + iconTransformation(extent={{100,-60},{140,-20}}))); + IBPSA.Controls.OBC.Utilities.BaseClasses.OptimalStartCalculation optHea( + final tOptMax=tOptMax, + final thrOptOn=thrOptOn, + final nDay=nDay, + final uLow=uLow, + final uHigh=uHigh) if computeHeating + "Optimal start time for heating system" + annotation (Placement(transformation(extent={{20,60},{40,80}}))); + IBPSA.Controls.OBC.Utilities.BaseClasses.OptimalStartCalculation optCoo( + final tOptMax=tOptMax, + final thrOptOn=thrOptOn, + final nDay=nDay, + final uLow=uLow, + final uHigh=uHigh) if computeCooling + "Optimal start time for cooling system" + annotation (Placement(transformation(extent={{20,-80},{40,-60}}))); + IBPSA.Controls.OBC.CDL.Reals.GreaterThreshold hysSta( + t=60, + h=60) + "Hysteresis to activate the optimal start boolean output" + annotation (Placement(transformation(extent={{-70,-10},{-50,10}}))); + +protected + IBPSA.Controls.OBC.CDL.Reals.Max max + "Get the maximum optimal start time " + annotation (Placement(transformation(extent={{100,30},{120,50}}))); + IBPSA.Controls.OBC.CDL.Reals.AddParameter addPar( + p=-tOptMax) + "Maximum optimal start time" + annotation (Placement(transformation(extent={{-100,-10},{-80,10}}))); + IBPSA.Controls.OBC.CDL.Logical.Or or2 + "Get the optimal start boolean output" + annotation (Placement(transformation(extent={{100,-50},{120,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract dTHea if computeHeating + "Temperature difference between heating setpoint and zone temperature" + annotation (Placement(transformation(extent={{-80,70},{-60,90}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract dTCoo if computeCooling + "Temperature difference between zone temperature and cooling setpoint" + annotation (Placement(transformation(extent={{-80,-60},{-60,-40}}))); + IBPSA.Controls.OBC.CDL.Logical.FallingEdge falEdg + "Stop calculation" + annotation (Placement(transformation(extent={{-30,-10},{-10,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant con2( + final k=0) if not computeHeating + "Becomes effective when optimal start is only for heating" + annotation (Placement(transformation(extent={{60,40},{80,60}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant con1( + final k=0) if not computeCooling + "Becomes effective when optimal start is only for cooling" + annotation (Placement(transformation(extent={{60,10},{80,30}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant con( + final k=false) if not computeHeating + "Becomes effective when optimal start is only for heating" + annotation (Placement(transformation(extent={{60,-30},{80,-10}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant con3( + final k=false) if not computeCooling + "Becomes effective when optimal start is only for cooling" + annotation (Placement(transformation(extent={{60,-94},{80,-74}}))); + +equation + connect(TSetZonCoo,dTCoo.u2) + annotation (Line(points={{-160,40},{-132,40},{-132,-56},{-82,-56}},color={0,0,127})); + connect(TZon,dTCoo.u1) + annotation (Line(points={{-160,-40},{-90,-40},{-90,-44},{-82,-44}}, color={0,0,127})); + connect(TZon,dTHea.u2) + annotation (Line(points={{-160,-40},{-122,-40},{-122,74},{-82,74}},color={0,0,127})); + connect(TSetZonHea,dTHea.u1) + annotation (Line(points={{-160,80},{-126,80},{-126,86},{-82,86}},color={0,0,127})); + connect(max.y,tOpt) + annotation (Line(points={{122,40},{160,40}},color={0,0,127})); + connect(con2.y,max.u1) + annotation (Line(points={{82,50},{88,50},{88,46},{98,46}},color={0,0,127})); + connect(con1.y,max.u2) + annotation (Line(points={{82,20},{88,20},{88,34},{98,34}},color={0,0,127})); + connect(dTCoo.y,optCoo.TDif) + annotation (Line(points={{-58,-50},{-22,-50},{-22,-62},{18,-62}},color={0,0,127})); + connect(dTHea.y,optHea.TDif) + annotation (Line(points={{-58,80},{-8,80},{-8,78},{18,78}},color={0,0,127})); + connect(tNexOcc,addPar.u) + annotation (Line(points={{-160,-80},{-120,-80},{-120,0},{-102,0}},color={0,0,127})); + connect(tNexOcc,optHea.tNexOcc) + annotation (Line(points={{-160,-80},{-120,-80},{-120,62},{18,62}},color={0,0,127})); + connect(optCoo.tOpt,max.u2) + annotation (Line(points={{42,-66},{88,-66},{88,34},{98,34}},color={0,0,127})); + connect(optHea.tOpt,max.u1) + annotation (Line(points={{42,74},{88,74},{88,46},{98,46}},color={0,0,127})); + connect(tNexOcc,optCoo.tNexOcc) + annotation (Line(points={{-160,-80},{-68,-80},{-68,-78},{18,-78}},color={0,0,127})); + connect(falEdg.y,optHea.staCal) + annotation (Line(points={{-8,0},{0,0},{0,70},{18,70}},color={255,0,255})); + connect(falEdg.y,optCoo.staCal) + annotation (Line(points={{-8,0},{0,0},{0,-70},{18,-70}},color={255,0,255})); + connect(or2.y,optOn) + annotation (Line(points={{122,-40},{160,-40}},color={255,0,255})); + connect(con.y,or2.u1) + annotation (Line(points={{82,-20},{92,-20},{92,-40},{98,-40}},color={255,0,255})); + connect(con3.y,or2.u2) + annotation (Line(points={{82,-84},{92,-84},{92,-48},{98,-48}},color={255,0,255})); + connect(optCoo.optOn,or2.u2) + annotation (Line(points={{42,-74},{50,-74},{50,-48},{98,-48}},color={255,0,255})); + connect(optHea.optOn,or2.u1) + annotation (Line(points={{42,66},{92,66},{92,-40},{98,-40}},color={255,0,255})); + connect(falEdg.u,hysSta.y) + annotation (Line(points={{-32,0},{-48,0}},color={255,0,255})); + connect(addPar.y,hysSta.u) + annotation (Line(points={{-78,0},{-72,0}},color={0,0,127})); + annotation ( + defaultComponentName="optSta", + Documentation( + info=" +

+This block predicts the shortest time for an HVAC system to meet the occupied setpoint +prior to the scheduled occupancy. The block requires inputs of zone temperature, +occupied zone setpoint(s) and next occupancy. The two outputs are the optimal start +duration tOpt and the optimal start on signal optOn for +the HVAC system. +

+

+The block estimates the thermal mass of a zone using its measured air temperature gradient +with respect to time. Once the temperature slope of a zone is known, the optimal start +time can be calculated by the difference between the zone temperature +and the occupied setpoint divided by the temperature slope, assuming the zone responds +as if all thermal mass were concentrated in the room air. +

+

+The temperature slope is self-tuned based on past data. The moving +average of the temperature slope of the past nDay days +is calculated and used for +the prediction of the optimal start time in the current day. +

+

Parameters

+

+The parameter nDay is used to compute the moving average of the temperature +slope; the first n days of simulation is therefore used to +initialize the block. +

+

+The parameter +tOptMax is the maximum allowed optimal start time. +

+

+The block includes two hysteresis parameters uLow and uHigh. +The parameter +uLow is used to determine if the zone temperature reaches +the setpoint. The algorithm assumes that the zone temperature has reached the setpoint if +TSetZonHea-TZon ≤ uLow for a heating system, or +TZon-TSetZonCoo ≤ uLow for a cooling system, where +TSetZonHea +denotes the zone heating setpoint during occupancy, TSetZonCoo +denotes the zone cooling setpoint during occupancy, and TZon denotes the +zone temperature. +The parameter +uHigh is used by the algorithm to determine if there is a need to +start the HVAC system prior to occupancy. If +TSetZonHea-TZon ≤ uHigh for heating case or +TZon-TSetZonCoo ≤ uHigh for cooling case, +then there is no need for the system to start before the occupancy. +

+

+The optimal start is only active (i.e., the optimal start on signal optOn +becomes true) if the optimal start time is larger than the parameter +thrOptOn. +

+

Configuration for HVAC systems

+

+The block can be used for heating system only or cooling system only or for both +heating and cooling system. +The two parameters computeHeating and computeCooling are +used to configure the block for these three scenarios. +

+

+The block calculates the optimal start time separately for heating and cooling systems. +The base class + +IBPSA.Controls.OBC.Utilities.BaseClasses.OptimalStartCalculation is used +for the calculation. +

+

Algorithm

+

+The algorithm is as follows: +

+
Step 1: Calculate temperature slope TSlo
+

+Once the HVAC system is started, a timer records the time duration +Δt for the zone temperature to reach the +setpoint. At the time when the timer starts, the zone temperature TSam1 is sampled. +The temperature slope is +approximated using the equation TSlo = |TSetZonOcc-TSam1|/Δt, +where TSetZonOcc is the occupied zone setpoint. Note that if +Δt is greater than the maximum optimal start time tOptMax, +then tOptMax is used instead of Δt. +This is to avoid corner cases where the setpoint is never reached, e.g., the HVAC +system is undersized, or there is a steady-state error associated with the HVAC control. +

+
Step 2: Calculate temperature slope moving average TSloMa
+

+After computing the temperature slope of each day, the moving average of the +temperature slope TSloMa during the previous nDay days +is calculated. Please refer to + +IBPSA.Controls.OBC.CDL.Discrete.TriggeredMovingMean for details about +the moving average algorithm. +

+
Step 3: Calculate optimal start time tOpt
+

+Each day at a certain time before the occupancy, the algorithm takes another +sample of the zone temperature, denoted as TSam2. The sample +takes place tOptMax prior to occupancy start time. +

+

+The optimal start time is then calculated as tOpt = |TSetZonOcc-TSam2|/TSloMa. +

+

Validation

+

+Validation models can be found in the package + +IBPSA.Controls.OBC.Utilities.Validation. +

+", + revisions=" + +"), + Diagram( + coordinateSystem( + extent={{-140,-100},{140,100}})), + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-70,40},{10,40},{10,-28},{70,-28}}, + color={28,108,200}), + Line( + points={{-34,40},{-20,32},{-12,22},{-6,2},{0,-16},{10,-28}}, + smooth=Smooth.Bezier, + color={238,46,47}), + Text( + extent={{-68,56},{-44,40}}, + textColor={28,108,200}, + textString="TSet"), + Polygon( + points={{-70,92},{-78,70},{-62,70},{-70,92}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-70,70},{-70,-78}}, + color={192,192,192}), + Line( + points={{-88,-60},{70,-60}}, + color={192,192,192}), + Polygon( + points={{92,-60},{70,-52},{70,-68},{92,-60}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{10,40},{24,32},{32,22},{38,2},{44,-16},{54,-28}}, + smooth=Smooth.Bezier, + color={28,108,200}, + pattern=LinePattern.Dot), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Ellipse( + extent={{79,-33},{93,-47}}, + lineColor=DynamicSelect({235,235,235}, + if optOn then + {0,255,0} + else + {235,235,235}), + fillColor=DynamicSelect({235,235,235}, + if optOn then + {0,255,0} + else + {235,235,235}), + fillPattern=FillPattern.Solid), + Text( + extent={{226,106},{106,56}}, + textColor={0,0,0}, + textString=DynamicSelect("",String(tOpt, + leftJustified=false, + significantDigits=3)))})); +end OptimalStart; diff --git a/IBPSA/Controls/OBC/Utilities/PIDWithInputGains.mo b/IBPSA/Controls/OBC/Utilities/PIDWithInputGains.mo new file mode 100644 index 0000000000..ae25b3a5eb --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/PIDWithInputGains.mo @@ -0,0 +1,565 @@ +within IBPSA.Controls.OBC.Utilities; +block PIDWithInputGains + "P, PI, PD, and PID controller with output reset and input gains" + parameter IBPSA.Controls.OBC.CDL.Types.SimpleController controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PI + "Type of controller"; + parameter Real r( + min=100*CDL.Constants.eps)=1 + "Typical range of control error, used for scaling the control error"; + parameter Real yMax=1 + "Upper limit of output" + annotation (Dialog(group="Limits")); + parameter Real yMin=0 + "Lower limit of output" + annotation (Dialog(group="Limits")); + parameter Real Ni( + min=100*CDL.Constants.eps)=0.9 + "Ni*Ti is time constant of anti-windup compensation" + annotation (Dialog(tab="Advanced",group="Integrator anti-windup",enable=controllerType == CDL.Types.SimpleController.PI or controllerType ==CDL.Types.SimpleController.PID)); + parameter Real Nd( + min=100*CDL.Constants.eps)=10 + "The higher Nd, the more ideal the derivative block" + annotation (Dialog(tab="Advanced",group="Derivative block",enable=controllerType == CDL.Types.SimpleController.PD or controllerType ==CDL.Types.SimpleController.PID)); + parameter Real xi_start=0 + "Initial value of integrator state" + annotation (Dialog(tab="Advanced",group="Initialization",enable=controllerType == CDL.Types.SimpleController.PI or controllerType == CDL.Types.SimpleController.PID)); + parameter Real yd_start=0 + "Initial value of derivative output" + annotation (Dialog(tab="Advanced",group="Initialization",enable=controllerType == CDL.Types.SimpleController.PD or controllerType == CDL.Types.SimpleController.PID)); + parameter Boolean reverseActing=true + "Set to true for reverse acting, or false for direct acting control action"; + parameter Real y_reset=xi_start + "Value to which the controller output is reset if the boolean trigger has a rising edge" + annotation (Dialog(enable=controllerType == CDL.Types.SimpleController.PI or controllerType == CDL.Types.SimpleController.PID,group="Integrator reset")); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u_s + "Connector for setpoint input signal" + annotation (Placement(transformation(extent={{-260,-20},{-220,20}}),iconTransformation(extent={{-140,-20},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput u_m + "Connector for measurement input signal" + annotation (Placement(transformation(origin={0,-220},extent={{20,-20},{-20,20}},rotation=270),iconTransformation(extent={{20,-20},{-20,20}},rotation=270,origin={0,-120}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput k( + min=100*IBPSA.Controls.OBC.CDL.Constants.eps) + "Connector for control gain signal" + annotation (Placement(transformation(extent={{-260,160},{-220,200}}),iconTransformation(extent={{-140,60},{-100,100}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput Ti( + quantity="Time", + unit="s", + min=100*IBPSA.Controls.OBC.CDL.Constants.eps) + if with_I + "Connector for time constant signal for the integral term" + annotation (Placement(transformation(extent={{-260,100},{-220,140}}), + iconTransformation(extent={{-140,20},{-100,60}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealInput Td( + quantity="Time", + unit="s", + min=100*IBPSA.Controls.OBC.CDL.Constants.eps) + if with_D + "Connector for time constant signal for the derivative term" + annotation (Placement(transformation(extent={{-260,40},{-220,80}}), iconTransformation(extent={{-140,-60},{-100,-20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.RealOutput y + "Connector for actuator output signal" + annotation (Placement(transformation(extent={{220,-20},{260,20}}),iconTransformation(extent={{100,-20},{140,20}}))); + IBPSA.Controls.OBC.CDL.Interfaces.BooleanInput trigger + "Resets the controller output when trigger becomes true" + annotation (Placement(transformation(extent={{-20,-20},{20,20}},rotation=90,origin={-160,-220}),iconTransformation(extent={{-20,-20},{20,20}},rotation=90,origin={-60,-120}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract controlError + "Control error (set point - measurement)" + annotation (Placement(transformation(extent={{-200,-16},{-180,4}}))); + IBPSA.Controls.OBC.CDL.Reals.Multiply P + "Proportional action" + annotation (Placement(transformation(extent={{-50,130},{-30,150}}))); + IBPSA.Controls.OBC.CDL.Reals.IntegratorWithReset I( + final k=1, + final y_start=xi_start) if with_I + "Integral term" + annotation (Placement(transformation(extent={{-50,-10},{-30,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Derivative D( + final y_start=yd_start) if with_D + "Derivative term" + annotation (Placement(transformation(extent={{-50,60},{-30,80}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract errP + "P error" + annotation (Placement(transformation(extent={{-140,130},{-120,150}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract errD if with_D + "D error" + annotation (Placement(transformation(extent={{-140,60},{-120,80}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract errI1 if with_I + "I error (before anti-windup compensation)" + annotation (Placement(transformation(extent={{-140,-4},{-120,16}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract errI2 if with_I + "I error (after anti-windup compensation)" + annotation (Placement(transformation(extent={{-100,-10},{-80,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Limiter lim( + final uMax=yMax, + final uMin=yMin) + "Limiter" + annotation (Placement(transformation(extent={{120,80},{140,100}}))); + IBPSA.Controls.OBC.CDL.Reals.Divide antWinGai2 if with_I + "Outputs of anti-windup compensation" + annotation (Placement(transformation(extent={{100,-30},{80,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Divide gaiI if with_I "Gain of the integral term" + annotation (Placement(transformation(extent={{-200,116},{-180,136}}))); + IBPSA.Controls.OBC.CDL.Reals.Multiply errIWithGai if with_I + "I error (after multiplying with the gain of the integral term)" + annotation (Placement(transformation(extent={{-84,28},{-64,48}}))); + IBPSA.Controls.OBC.CDL.Reals.Multiply mulkTd if with_D + "Product of k and Td" + annotation (Placement(transformation(extent={{-200,150},{-180,170}}))); + IBPSA.Controls.OBC.CDL.Reals.GreaterThreshold greThrkTd( + t=1E-6, + h=1E-6/2) + if with_D + "Check if k*Td is larger than 0" + annotation (Placement(transformation(extent={{140,160},{160,180}}))); + +protected + final parameter Real revAct= + if reverseActing then + 1 + else + -1 + "Switch for sign for reverse or direct acting controller"; + final parameter Boolean with_I=controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PI or controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PID + "Boolean flag to enable integral action" + annotation (Evaluate=true,HideResult=true); + final parameter Boolean with_D=controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PD or controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PID + "Boolean flag to enable derivative action" + annotation (Evaluate=true,HideResult=true); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant Dzero( + final k=0) if not with_D + "Zero input signal" + annotation (Evaluate=true,HideResult=true,Placement(transformation(extent={{-50,90}, + {-30,110}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant Izero( + final k=0) if not with_I + "Zero input signal" + annotation (Placement(transformation(extent={{-50,20},{-30,40}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter uS_revAct( + final k=revAct/r) "Set point multiplied by reverse action sign" + annotation (Placement(transformation(extent={{-200,30},{-180,50}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter uMea_revAct( + final k=revAct/r) + "Set point multiplied by reverse action sign" + annotation (Placement(transformation(extent={{-200,-50},{-180,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Add addPD + "Outputs P and D gains added" + annotation (Placement(transformation(extent={{20,124},{40,144}}))); + IBPSA.Controls.OBC.CDL.Reals.Add addPID + "Outputs P, I and D gains added" + annotation (Placement(transformation(extent={{80,80},{100,100}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract antWinErr if with_I + "Error for anti-windup compensation" + annotation (Placement(transformation(extent={{160,50},{180,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter antWinGai1(k=1/Ni) + if with_I "Gain for anti-windup compensation without the proportional gain" + annotation (Placement(transformation(extent={{180,-30},{160,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant yResSig( + final k=y_reset) if with_I + "Signal for y_reset" + annotation (Placement(transformation(extent={{-140,-84},{-120,-64}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract addRes if with_I + "Adder for integrator reset" + annotation (Placement(transformation(extent={{-100,-90},{-80,-70}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Constant cheYMinMax( + final k=yMin < yMax) "Check for values of yMin and yMax" + annotation (Placement(transformation(extent={{140,120},{160,140}}))); + IBPSA.Controls.OBC.CDL.Utilities.Assert assMesYMinMax( + message="LimPID: Limits must be yMin < yMax") "Assertion on yMin and yMax" + annotation (Placement(transformation(extent={{180,120},{200,140}}))); + IBPSA.Controls.OBC.CDL.Utilities.Assert assMeskTd( + message="LimPIDWithInputGains: Limits must be k*Td > 0") + if with_D + "Assertion on k and Td" + annotation (Placement(transformation(extent={{180,160},{200,180}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter gaiT(final k=1/Nd) if with_D + "Gain to compute time constant for derivative action" + annotation (Placement(transformation(extent={{-140,100},{-120,120}}))); + +equation + connect(trigger,I.trigger) + annotation (Line(points={{-160,-220},{-160,-140},{-40,-140},{-40,-12}},color={255,0,255})); + connect(u_s,uS_revAct.u) + annotation (Line(points={{-240,0},{-210,0},{-210,40},{-202,40}},color={0,0,127})); + connect(u_m,uMea_revAct.u) + annotation (Line(points={{0,-220},{0,-160},{-210,-160},{-210,-40},{-202,-40}},color={0,0,127})); + connect(errD.u2,uMea_revAct.y) + annotation (Line(points={{-142,64},{-150,64},{-150,-40},{-178,-40}}, color={0,0,127})); + connect(D.u,errD.y) + annotation (Line(points={{-52,70},{-118,70}}, color={0,0,127})); + connect(errI1.u1,uS_revAct.y) + annotation (Line(points={{-142,12},{-170,12},{-170,40},{-178,40}}, + color={0,0,127})); + connect(addPID.u1,addPD.y) + annotation (Line(points={{78,96},{50,96},{50,134},{42,134}},color={0,0,127})); + connect(lim.y,y) + annotation (Line(points={{142,90},{200,90},{200,0},{240,0}},color={0,0,127})); + connect(antWinErr.y, antWinGai1.u) + annotation (Line(points={{182,60},{190,60},{190,-20},{182,-20}}, color={0,0,127})); + connect(addPD.u2,Dzero.y) + annotation (Line(points={{18,128},{-10,128},{-10,100},{-28,100}}, + color={0,0,127})); + connect(D.y,addPD.u2) + annotation (Line(points={{-28,70},{-10,70},{-10,128},{18,128}},color={0,0,127})); + connect(addPID.u2,I.y) + annotation (Line(points={{78,84},{68,84},{68,0},{-28,0}},color={0,0,127})); + connect(addRes.y,I.y_reset_in) + annotation (Line(points={{-78,-80},{-60,-80},{-60,-8},{-52,-8}},color={0,0,127})); + connect(antWinErr.u2,lim.y) + annotation (Line(points={{158,54},{150,54},{150,90},{142,90}}, color={0,0,127})); + connect(errI1.y,errI2.u1) + annotation (Line(points={{-118,6},{-102,6}}, color={0,0,127})); + connect(controlError.u1,u_s) + annotation (Line(points={{-202,0},{-240,0}}, color={0,0,127})); + connect(cheYMinMax.y,assMesYMinMax.u) + annotation (Line(points={{162,130},{178,130}}, color={255,0,255})); + connect(Izero.y,addPID.u2) + annotation (Line(points={{-28,30},{58,30},{58,84},{78,84}}, + color={0,0,127})); + connect(errP.u1,uS_revAct.y) + annotation (Line(points={{-142,146},{-170,146},{-170,40},{-178,40}},color={0,0,127})); + connect(errD.u1,uS_revAct.y) + annotation (Line(points={{-142,76},{-170,76},{-170,40},{-178,40}},color={0,0,127})); + connect(addPD.u1, P.y) + annotation (Line(points={{18,140},{-28,140}}, color={0,0,127})); + connect(addPID.y, lim.u) + annotation (Line(points={{102,90},{118,90}},color={0,0,127})); + connect(addPID.y, antWinErr.u1) + annotation (Line(points={{102,90},{114,90},{114,66},{158,66}},color={0,0,127})); + connect(addRes.u1, yResSig.y) + annotation (Line(points={{-102,-74},{-118,-74}}, color={0,0,127})); + connect(u_m, controlError.u2) + annotation (Line(points={{0,-220},{0,-160},{-210,-160},{-210,-12},{-202,-12}}, + color={0,0,127})); + connect(uMea_revAct.y, errP.u2) + annotation (Line(points={{-178,-40},{-150,-40},{-150,134},{-142,134}}, color={0,0,127})); + connect(uMea_revAct.y, errI1.u2) + annotation (Line(points={{-178,-40},{-150,-40},{-150,0},{-142,0}}, color={0,0,127})); + connect(addPD.y, addRes.u2) + annotation (Line(points={{42,134},{50,134},{50,-100},{-110,-100},{-110,-86}, + {-102,-86}}, color={0,0,127})); + connect(errP.y, P.u2) + annotation (Line(points={{-118,140},{-74,140},{-74,134},{-52,134}}, color={0,0,127})); + connect(P.u1, k) + annotation (Line(points={{-52,146},{-70,146},{-70,188},{-212,188},{-212,180}, + {-240,180}}, color={0,0,127})); + connect(antWinGai1.y, antWinGai2.u1) + annotation (Line(points={{158,-20},{140,-20},{140,-14},{102,-14}}, + color={0,0,127})); + connect(antWinGai2.u2, k) + annotation (Line(points={{102,-26},{108,-26},{108,188},{-212,188},{-212,180}, + {-240,180}}, color={0,0,127})); + connect(antWinGai2.y, errI2.u2) + annotation (Line(points={{78,-20},{-110,-20},{-110,-6},{-102,-6}}, + color={0,0,127})); + connect(gaiI.u1, k) + annotation (Line(points={{-202,132},{-212,132},{-212,180},{-240,180}}, color={0,0,127})); + connect(gaiI.u2, Ti) + annotation (Line(points={{-202,120},{-240,120}}, color={0,0,127})); + connect(gaiI.y, errIWithGai.u1) + annotation (Line(points={{-178,126},{-100,126},{-100,44},{-86,44}},color={0,0,127})); + connect(errI2.y, errIWithGai.u2) + annotation (Line(points={{-78,0},{-70,0},{-70,20},{-100,20},{-100,32},{-86, + 32}}, color={0,0,127})); + connect(errIWithGai.y, I.u) + annotation (Line(points={{-62,38},{-60,38},{-60,0},{-52,0}}, color={0,0,127})); + connect(mulkTd.u1, k) + annotation (Line(points={{-202,166},{-212,166},{-212,180},{-240,180}},color={0,0,127})); + connect(greThrkTd.y, assMeskTd.u) + annotation (Line(points={{162,170},{178,170}}, color={255,0,255})); + connect(mulkTd.y, greThrkTd.u) + annotation (Line(points={{-178,160},{-168,160},{-168,184},{132,184},{132, + 170},{138,170}}, color={0,0,127})); + connect(mulkTd.u2, Td) + annotation (Line(points={{-202,154},{-206,154},{-206,60},{-240,60}},color={0,0,127})); + connect(Td, gaiT.u) + annotation (Line(points={{-240,60},{-180,60},{-180,110},{-142,110}}, color={0,0,127})); + connect(gaiT.y, D.T) + annotation (Line(points={{-118,110},{-84,110},{-84,74},{-52,74}}, color={0,0,127})); + connect(mulkTd.y, D.k) annotation (Line(points={{-178,160},{-168,160},{-168, + 184},{-80,184},{-80,78},{-52,78}}, color={0,0,127})); + annotation ( + defaultComponentName="conPID", + Icon( + coordinateSystem( + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-6,-20},{66,-66}}, + lineColor={255,255,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + visible=(controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.P), + extent={{-32,-22},{68,-62}}, + textColor={0,0,0}, + textString="P", + fillPattern=FillPattern.Solid, + fillColor={175,175,175}), + Text( + visible=(controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PI), + extent={{-26,-22},{74,-62}}, + textColor={0,0,0}, + textString="PI", + fillPattern=FillPattern.Solid, + fillColor={175,175,175}), + Text( + visible=(controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PD), + extent={{-16,-22},{88,-62}}, + textColor={0,0,0}, + fillPattern=FillPattern.Solid, + fillColor={175,175,175}, + textString="P D"), + Text( + visible=(controllerType == IBPSA.Controls.OBC.CDL.Types.SimpleController.PID), + extent={{-14,-22},{86,-62}}, + textColor={0,0,0}, + textString="PID", + fillPattern=FillPattern.Solid, + fillColor={175,175,175}), + Polygon( + points={{-80,82},{-88,60},{-72,60},{-80,82}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,68},{-80,-100}}, + color={192,192,192}), + Line( + points={{-90,-80},{70,-80}}, + color={192,192,192}), + Polygon( + points={{74,-80},{52,-72},{52,-88},{74,-80}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255}), + Line( + points={{-80,-80},{-80,-22}}, + color={0,0,0}), + Line( + points={{-80,-22},{6,56}}, + color={0,0,0}), + Line( + points={{6,56},{68,56}}, + color={0,0,0}), + Rectangle( + extent=DynamicSelect({{100,-100},{84,-100}},{{100,-100},{84,-100+(y-yMin)/(yMax-yMin)*200}}), + fillColor={175,175,175}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None, + lineColor={0,0,0})}), + Diagram( + coordinateSystem( + extent={{-220,-200},{220,200}}), graphics={Rectangle( + extent={{-56,180},{-24,-16}}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), Text( + extent={{-52,184},{-28,156}}, + pattern=LinePattern.None, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + textColor={0,0,0}, + textString="PID")}), + Documentation( + info=" +

+PID controller in the standard form +

+

+yu = k/r   (e(t) + 1 ⁄ Ti   ∫ e(τ) dτ + Td d⁄dt e(t)), +

+

+with output reset, +where +yu is the control signal before output limitation, +e(t) = us(t) - um(t) is the control error, +with us being the set point and um being +the measured quantity, +k is the gain, +Ti is the time constant of the integral term, +Td is the time constant of the derivative term, +r is a scaling factor, with default r=1. +The scaling factor should be set to the typical order of magnitude of the range of the error e. +For example, you may set r=100 to r=1000 +if the control input is a pressure of a heating water circulation pump in units of Pascal, or +leave r=1 if the control input is a room temperature. +

+

+Note that the units of k are the inverse of the units of the control error, +while the units of Ti and Td are seconds. +

+

+The actual control output is +

+

+y = min( ymax, max( ymin, y)), +

+

+where ymin and ymax are limits for the control signal. +

+

+This block is identical to + +IBPSA.Controls.OBC.CDL.Reals.PIDWithReset, +except that the controller gains +k, Ti and Td are inputs rather than parameters. +

+

P, PI, PD, or PID action

+

+Through the parameter controllerType, the controller can be configured +as P, PI, PD or PID controller. The default configuration is PI. +

+

Reverse or direct action

+

+Through the parameter reverseActing, the controller can be configured to +be reverse or direct acting. +The above standard form is reverse acting, which is the default configuration. +For a reverse acting controller, for a constant set point, +an increase in measurement signal u_m decreases the control output signal y +(Montgomery and McDowall, 2008). +Thus, +

+ +

+If reverseAction=false, then the error e above is multiplied by -1. +

+

Anti-windup compensation

+

+The controller anti-windup compensation is as follows: +Instead of the above basic control law, the implementation is +

+

+yu = k   (e(t) ⁄ r + 1 ⁄ Ti   ∫ (-Δy + e(τ) ⁄ r) dτ + Td ⁄ r d⁄dt e(t)), +

+

+where the anti-windup compensation Δy is +

+

+Δy = (yu - y) ⁄ (k Ni), +

+

+where +Ni > 0 is the time constant for the anti-windup compensation. +To accelerate the anti-windup, decrease Ni. +

+

+Note that the anti-windup term (-Δy + e(τ) ⁄ r) shows that the range of +the typical control error r should be set to a reasonable value so that +

+

+e(τ) ⁄ r = (us(τ) - um(τ)) ⁄ r +

+

+has order of magnitude one, and hence the anti-windup compensation should work well. +

+

Reset of the controller output

+

+Whenever the value of boolean input signal trigger changes from +false to true, the controller output is reset by setting +y to the value of the parameter y_reset. +

+

Approximation of the derivative term

+

+The derivative of the control error d ⁄ dt e(t) is approximated using +

+

+d⁄dt x(t) = (e(t)-x(t)) Nd ⁄ Td, +

+

+and +

+

+d⁄dt e(t) ≈ Nd (e(t)-x(t)), +

+

+where x(t) is an internal state. +

+

Guidance for tuning the control gains

+

+The parameters of the controller can be manually adjusted by performing +closed loop tests (= controller + plant connected +together) and using the following strategy: +

+
    +
  1. Set very large limits, e.g., set ymax = 1000. +
  2. +
  3. +Select a P-controller and manually enlarge the parameter k +(the total gain of the controller) until the closed-loop response +cannot be improved any more. +
  4. +
  5. +Select a PI-controller and manually adjust the parameters +k and Ti (the time constant of the integrator). +The first value of Ti can be selected such that it is in the +order of the time constant of the oscillations occurring with +the P-controller. If, e.g., oscillations in the order of 100 seconds +occur in the previous step, start with Ti=1/100 seconds. +
  6. +
  7. +If you want to make the reaction of the control loop faster +(but probably less robust against disturbances and measurement noise) +select a PID-controller and manually adjust parameters +k, Ti, Td (time constant of derivative block). +
  8. +
  9. +Set the limits yMax and yMin according to your specification. +
  10. +
  11. +Perform simulations such that the output of the PID controller +goes in its limits. Tune Ni (Ni Ti is the time constant of +the anti-windup compensation) such that the input to the limiter +block (= lim.u) goes quickly enough back to its limits. +If Ni is decreased, this happens faster. If Ni is very large, the +anti-windup compensation is not effective and the controller works bad. +
  12. +
+

References

+

+R. Montgomery and R. McDowall (2008). +\"Fundamentals of HVAC Control Systems.\" +American Society of Heating Refrigerating and Air-Conditioning Engineers Inc. Atlanta, GA. +

+", +revisions=" + +")); +end PIDWithInputGains; diff --git a/IBPSA/Controls/OBC/Utilities/SetPoints/SupplyReturnTemperatureReset.mo b/IBPSA/Controls/OBC/Utilities/SetPoints/SupplyReturnTemperatureReset.mo new file mode 100644 index 0000000000..f0178cee30 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/SetPoints/SupplyReturnTemperatureReset.mo @@ -0,0 +1,486 @@ +within IBPSA.Controls.OBC.Utilities.SetPoints; +block SupplyReturnTemperatureReset + "Block to compute the supply and return set point" + parameter Real m=1.3 + "Exponent for heat transfer"; + parameter Real TSup_nominal( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC") + "Supply temperature" + annotation (Dialog(group="Nominal conditions")); + parameter Real TRet_nominal( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC") + "Return temperature" + annotation (Dialog(group="Nominal conditions")); + parameter Real TZon_nominal( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")=293.15 + "Zone temperature" + annotation (Dialog(group="Nominal conditions")); + parameter Real TOut_nominal( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC") + "Outside temperature" + annotation (Dialog(group="Nominal conditions")); + parameter Real dTOutHeaBal( + final quantity="TemperatureDifference", + final unit="K", + displayUnit="K")=8 + "Offset for heating curve"; + CDL.Interfaces.RealInput TSetZon( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC", + min=200) + "Zone setpoint temperature" + annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}))); + CDL.Interfaces.RealInput TOut( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC", + min=200) + "Outside temperature" + annotation (Placement(transformation(extent={{-140,40},{-100,80}}))); + CDL.Interfaces.RealOutput TSup( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC", + min=200) + "Setpoint for supply temperature" + annotation (Placement(transformation(extent={{100,40},{140,80}}))); + CDL.Interfaces.RealOutput TRet( + final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC", + min=200) + "Setpoint for return temperature" + annotation (Placement(transformation(extent={{100,-80},{140,-40}}))); + +protected + CDL.Reals.Sources.Constant dTOutHeaBal_nominal( + final k=dTOutHeaBal, + y(final quantity="TemperatureDifference", + final unit="K")) + "Offset of outdoor temperature to take into account heat gain" + annotation (Placement(transformation(extent={{-80,-10},{-60,10}}))); + CDL.Reals.Sources.Constant TSup_nom( + final k=TSup_nominal, + y(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")) + "Heating supply water temperature at nominal condition" + annotation (Placement(transformation(extent={{-80,160},{-60,180}}))); + CDL.Reals.Sources.Constant TZon_nom( + final k=TZon_nominal, + y(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")) + "Zone temperature at design condition" + annotation (Placement(transformation(extent={{-80,80},{-60,100}}))); + CDL.Reals.Sources.Constant zer( + final k=1E-100) + "Small positive constant to avoid log(0)" + annotation (Placement(transformation(extent={{0,60},{20,80}}))); + CDL.Reals.Sources.Constant TRet_nom( + final k=TRet_nominal, + y(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")) + "Heating return water temperature at nominal condition" + annotation (Placement(transformation(extent={{-80,120},{-60,140}}))); + CDL.Reals.Sources.Constant TOut_nom( + final k=TOut_nominal, + y(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")) + "Outside temperature at design condition" + annotation (Placement(transformation(extent={{-80,38},{-60,58}}))); + CDL.Reals.Sources.Constant expM( + final k=m) + "Exponent of heat transfer" + annotation (Placement(transformation(extent={{-80,-180},{-60,-160}}))); + CDL.Reals.Sources.Constant one( + final k=1) + "Outputs 1" + annotation (Placement(transformation(extent={{-80,-140},{-60,-120}}))); + CDL.Reals.Add TOutOffSet( + y(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")) + "Effective outside temperature for heat transfer (takes into account zone heat gains)" + annotation (Placement(transformation(extent={{-80,-58},{-60,-38}}))); + CDL.Reals.Subtract qRelDen( + y(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")) + "Denominator for relative heating load calculation" + annotation (Placement(transformation(extent={{-40,74},{-20,94}}))); + CDL.Reals.Subtract qRelNum( + y(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")) + "Numerator for relative heating load calculation" + annotation (Placement(transformation(extent={{-40,-52},{-20,-32}}))); + CDL.Reals.Divide qRel "Relative heating load = Q_flow/Q_flow_nominal" + annotation (Placement(transformation(extent={{0,24},{20,44}}))); + CDL.Reals.Subtract dTFlu2_nom + "Heating supply minus return water temperature at nominal condition" + annotation (Placement(transformation(extent={{-40,150},{-20,170}}))); + CDL.Reals.Average TFluAve_nominal( + y(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")) + "Average heating water temperature at nominal condition" + annotation (Placement(transformation(extent={{-40,120},{-20,140}}))); + CDL.Reals.Subtract dTFluAve_nominal( + y(final quantity="TemperatureDifference", + final unit="K")) + "Average heating water temperature minus room temperature at nominal condition" + annotation (Placement(transformation(extent={{36,110},{56,130}}))); + CDL.Reals.Divide mInv "Inverse of heat transfer exponent, y = 1/m" + annotation (Placement(transformation(extent={{-40,-160},{-20,-140}}))); + CDL.Reals.Add TAve( + y(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")) + "Average of supply and return temperature" + annotation (Placement(transformation(extent={{-40,276},{-20,296}}))); + CDL.Reals.Add TSupCur( + y(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")) + "Current supply water temperature" + annotation (Placement(transformation(extent={{42,270},{62,290}}))); + CDL.Reals.Subtract TRetCur( + y(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")) + "Current return water temperature" + annotation (Placement(transformation(extent={{40,238},{60,258}}))); + CDL.Reals.Max qRel0 + "Relative heating load, but always non-zero value" + annotation (Placement(transformation(extent={{32,30},{52,50}}))); + CDL.Reals.Multiply pro "Product used to compute q^(1/m)" + annotation (Placement(transformation(extent={{-40,-110},{-20,-90}}))); + CDL.Reals.Exp qRaiInvM + "Outputs qRel^(1/m)" + annotation (Placement(transformation(extent={{0,-110},{20,-90}}))); + CDL.Reals.Log log1 + "Logarithm used for evaluation of qRel^(1/m)" + annotation (Placement(transformation(extent={{-80,-110},{-60,-90}}))); + CDL.Reals.Multiply dTQ(y( + final quantity="TemperatureDifference", + final unit="K")) "Temperature contribution due to qRel^(1/m)" + annotation (Placement(transformation(extent={{-80,220},{-60,240}}))); + CDL.Reals.Multiply dTFlu(y( + final quantity="TemperatureDifference", + final unit="K")) "Supply minus return water temperature" + annotation (Placement(transformation(extent={{0,220},{20,240}}))); + CDL.Reals.Add TOutOffSet_nominal( + y(final quantity="ThermodynamicTemperature", + final unit="K", + displayUnit="degC")) + "Effective outside temperature for heat transfer at nominal condition (takes into account zone heat gains)" + annotation (Placement(transformation(extent={{-44,32},{-24,52}}))); + CDL.Reals.MultiplyByParameter gai( + final k=0.5, + y(final quantity="TemperatureDifference", + final unit="K")) "Gain factor" + annotation (Placement(transformation(extent={{0,150},{20,170}}))); + +equation + connect(dTOutHeaBal_nominal.y,TOutOffSet.u1) + annotation (Line(points={{-58,0},{-52,0},{-52,-28},{-86,-28},{-86,-42},{-82,-42}},color={0,0,127})); + connect(TOut,TOutOffSet.u2) + annotation (Line(points={{-120,60},{-90,60},{-90,-54},{-82,-54}},color={0,0,127})); + connect(TZon_nom.y,qRelDen.u1) + annotation (Line(points={{-58,90},{-42,90}},color={0,0,127})); + connect(qRel.y,qRel0.u2) + annotation (Line(points={{22,34},{30,34}},color={0,0,127})); + connect(zer.y,qRel0.u1) + annotation (Line(points={{22,70},{26,70},{26,46},{30,46}},color={0,0,127})); + connect(dTFlu2_nom.u1,TSup_nom.y) + annotation (Line(points={{-42,166},{-48,166},{-48,170},{-58,170}},color={0,0,127})); + connect(dTFlu2_nom.u2,TRet_nom.y) + annotation (Line(points={{-42,154},{-52,154},{-52,130},{-58,130}},color={0,0,127})); + connect(TFluAve_nominal.u1,TSup_nom.y) + annotation (Line(points={{-42,136},{-48,136},{-48,170},{-58,170}},color={0,0,127})); + connect(TRet_nom.y,TFluAve_nominal.u2) + annotation (Line(points={{-58,130},{-52,130},{-52,124},{-42,124}},color={0,0,127})); + connect(dTFluAve_nominal.u2,TZon_nom.y) + annotation (Line(points={{34,114},{-50,114},{-50,90},{-58,90}},color={0,0,127})); + connect(qRel0.y,log1.u) + annotation (Line(points={{54,40},{64,40},{64,-80},{-90,-80},{-90,-100},{-82,-100}},color={0,0,127})); + connect(one.y,mInv.u1) + annotation (Line(points={{-58,-130},{-50,-130},{-50,-144},{-42,-144}},color={0,0,127})); + connect(expM.y,mInv.u2) + annotation (Line(points={{-58,-170},{-50,-170},{-50,-156},{-42,-156}},color={0,0,127})); + connect(log1.y,pro.u1) + annotation (Line(points={{-58,-100},{-50,-100},{-50,-94},{-42,-94}},color={0,0,127})); + connect(pro.u2,mInv.y) + annotation (Line(points={{-42,-106},{-48,-106},{-48,-120},{-10,-120},{-10,-150},{-18,-150}},color={0,0,127})); + connect(qRaiInvM.u,pro.y) + annotation (Line(points={{-2,-100},{-18,-100}},color={0,0,127})); + connect(dTQ.u1,dTFluAve_nominal.y) + annotation (Line(points={{-82,236},{-92,236},{-92,204},{60,204},{60,120},{58, + 120}}, color={0,0,127})); + connect(qRaiInvM.y,dTQ.u2) + annotation (Line(points={{22,-100},{46,-100},{46,-98},{70,-98},{70,206},{-90,206},{-90,224},{-82,224}},color={0,0,127})); + connect(TSetZon,TAve.u1) + annotation (Line(points={{-120,-60},{-94,-60},{-94,292},{-42,292}},color={0,0,127})); + connect(TAve.u2,dTQ.y) + annotation (Line(points={{-42,280},{-52,280},{-52,230},{-58,230}},color={0,0,127})); + connect(qRel0.y,dTFlu.u2) + annotation (Line(points={{54,40},{64,40},{64,216},{-6,216},{-6,224},{-2,224}},color={0,0,127})); + connect(TSupCur.u1,TAve.y) + annotation (Line(points={{40,286},{-18,286}},color={0,0,127})); + connect(dTFlu.y,TSupCur.u2) + annotation (Line(points={{22,230},{32,230},{32,274},{40,274}},color={0,0,127})); + connect(TSupCur.y,TSup) + annotation (Line(points={{64,280},{88,280},{88,60},{120,60}},color={0,0,127})); + connect(TRetCur.u1,TAve.y) + annotation (Line(points={{38,254},{12,254},{12,286},{-18,286}},color={0,0,127})); + connect(TRetCur.u2,dTFlu.y) + annotation (Line(points={{38,242},{32,242},{32,230},{22,230}},color={0,0,127})); + connect(TRetCur.y,TRet) + annotation (Line(points={{62,248},{80,248},{80,-60},{120,-60}},color={0,0,127})); + connect(qRel.u1,qRelNum.y) + annotation (Line(points={{-2,40},{-12,40},{-12,-42},{-18,-42}},color={0,0,127})); + connect(qRel.u2,qRelDen.y) + annotation (Line(points={{-2,28},{-6,28},{-6,84},{-18,84}},color={0,0,127})); + connect(TOutOffSet_nominal.u1,TOut_nom.y) + annotation (Line(points={{-46,48},{-58,48}},color={0,0,127})); + connect(dTOutHeaBal_nominal.y,TOutOffSet_nominal.u2) + annotation (Line(points={{-58,0},{-52,0},{-52,36},{-46,36}},color={0,0,127})); + connect(TOutOffSet_nominal.y,qRelDen.u2) + annotation (Line(points={{-22,42},{-20,42},{-20,66},{-50,66},{-50,78},{-42,78}},color={0,0,127})); + connect(TSetZon, qRelNum.u1) annotation (Line(points={{-120,-60},{-48,-60},{-48, + -36},{-42,-36}}, color={0,0,127})); + connect(TOutOffSet.y, qRelNum.u2) + annotation (Line(points={{-58,-48},{-42,-48}}, color={0,0,127})); + connect(dTFlu2_nom.y, gai.u) + annotation (Line(points={{-18,160},{-2,160}}, color={0,0,127})); + connect(gai.y, dTFlu.u1) annotation (Line(points={{22,160},{28,160},{28,180},{ + -10,180},{-10,236},{-2,236}}, color={0,0,127})); + connect(TFluAve_nominal.y, dTFluAve_nominal.u1) annotation (Line(points={{-18, + 130},{10,130},{10,126},{34,126}}, color={0,0,127})); + annotation ( + defaultComponentName="watRes", + Documentation( + info=" +

+This block computes the set point temperatures for the +supply and return water temperature. +The set point for the zone air temperature can be an input to the model. +It allows to use this model with systems that have night set back. +

+

+If used to reset the temperature in a heating system, +the parameter dTOutHeaBal can be used to shift the heating curve +to take into account that heat gains from solar, equipment and people +make up for some of the transmission losses. +For example, in energy efficient houses, the heating may not be switched on if +the outside air temperature is greater than +12°C, even if a zone temperature of 20°C is required. +In such a situation, set dTOutHeaBal=20-12=8 Kelvin to +shift the heating curve. +

+

Typical usage

+

+The figure below shows a typical usage for a hot water temperature reset +for a heating system. +The parameters of the block heaCur +are for a heating system with +60°C supply water temperature and +40°C return water temperature at +an outside temperature of +-10°C and a room temperature of +20°C. The offset for the temperature reset is +8 Kelvin, i.e., above +12°C outside temperature, there is no heating load. +The figure shows the computed supply and return water temperatures. +

+

+ +

+", + revisions=" + +"), + Icon( + coordinateSystem( + extent={{-100,-100},{100,100}}), + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{90,-82},{68,-74},{68,-90},{90,-82}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-90,-82},{82,-82}}, + color={192,192,192}), + Line( + points={{-80,76},{-80,-92}}, + color={192,192,192}), + Polygon( + points={{-80,88},{-88,66},{-72,66},{-80,86},{-80,88}}, + lineColor={192,192,192}, + fillColor={192,192,192}, + fillPattern=FillPattern.Solid), + Line( + points={{-80,-82},{60,32}}), + Line( + points={{-80,-82},{-42,-38},{4,2},{60,32}}, + smooth=Smooth.Bezier), + Line( + points={{-80,-82},{-58,-42},{-4,8},{60,32}}, + smooth=Smooth.Bezier), + Text( + extent={{-152,120},{-102,70}}, + textColor={0,0,127}, + textString="TOut"), + Text( + extent={{-152,-4},{-102,-54}}, + textColor={0,0,127}, + textString="TSetZon"), + Text( + extent={{40,86},{90,36}}, + textColor={0,0,127}, + textString="TSup"), + Text( + extent={{42,-30},{92,-80}}, + textColor={0,0,127}, + textString="TRet"), + Text( + extent={{-150,150},{150,110}}, + textString="%name", + textColor={0,0,255})}), + Diagram( + coordinateSystem( + extent={{-100,-200},{100,340}}), + graphics={ + Rectangle( + extent={{-84,320},{76,212}}, + lineColor={0,0,0}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), + Text( + extent={{-34,318},{66,306}}, + textColor={0,0,255}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + horizontalAlignment=TextAlignment.Left, + textString="Current fluid setpoint temperatures"), + Rectangle( + extent={{-84,-84},{76,-192}}, + lineColor={0,0,0}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), + Text( + extent={{-26,-178},{74,-190}}, + textColor={0,0,255}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + horizontalAlignment=TextAlignment.Left, + textString="Computation of qRel^(1/m)"), + Rectangle( + extent={{-86,200},{-16,-22}}, + lineColor={0,0,0}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), + Text( + extent={{-84,198},{-36,190}}, + textColor={0,0,255}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + horizontalAlignment=TextAlignment.Left, + textString="Nominal values"), + Rectangle( + extent={{-10,102},{58,-22}}, + lineColor={0,0,0}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), + Text( + extent={{-4,98},{56,90}}, + textColor={0,0,255}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + horizontalAlignment=TextAlignment.Left, + textString="Guard against 0^(1/m)"), + Rectangle( + extent={{-84,-28},{58,-76}}, + lineColor={0,0,0}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), + Text( + extent={{-6,-68},{60,-76}}, + textColor={0,0,255}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + horizontalAlignment=TextAlignment.Left, + textString="Numerator for qRel")})); +end SupplyReturnTemperatureReset; diff --git a/IBPSA/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureReset.mo b/IBPSA/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureReset.mo new file mode 100644 index 0000000000..9fb1d42a71 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureReset.mo @@ -0,0 +1,103 @@ +within IBPSA.Controls.OBC.Utilities.SetPoints.Validation; +model SupplyReturnTemperatureReset + "Test model for the heating curve" + IBPSA.Controls.OBC.Utilities.SetPoints.SupplyReturnTemperatureReset heaCur( + m=1, + TSup_nominal=333.15, + TRet_nominal=313.15, + TOut_nominal=263.15) + "Compute the supply and return set point of heating systems with varying outdoor temperature" + annotation (Placement(transformation(extent={{20,30},{40,50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp TOut( + height=40, + duration=1, + offset=263.15, + y(unit="K")) + "Outdoor temperature varying from -10 degC to 30 degC" + annotation (Placement(transformation(extent={{-60,50},{-40,70}}))); + IBPSA.Controls.OBC.Utilities.SetPoints.SupplyReturnTemperatureReset heaCur1( + m=1, + dTOutHeaBal=15, + TSup_nominal=333.15, + TRet_nominal=313.15, + TOut_nominal=263.15) + "Compute the supply and return set point of heating systems with changing room setpoint temperature" + annotation (Placement(transformation(extent={{20,-50},{40,-30}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse TRoo1( + offset=273.15+20, + shift=0.5, + amplitude=-5, + period=1, + y(unit="K")) + "Night set back from 20 degC to 15 degC" + annotation (Placement(transformation(extent={{-60,-70},{-40,-50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant TOut1( + k=273.15-10, + y(unit="K")) + "Constant outdoor air temperature" + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant TRoo( + k=273.15+20, + y(unit="K")) + "Room temperature 20 degC" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + +equation + connect(TOut1.y,heaCur1.TOut) + annotation (Line(points={{-38,-20},{-38,-20},{0,-20},{0,-34},{18,-34}},color={0,0,127})); + connect(TOut.y,heaCur.TOut) + annotation (Line(points={{-38,60},{-38,60},{0,60},{0,46},{18,46}},color={0,0,127})); + connect(TRoo.y,heaCur.TSetZon) + annotation (Line(points={{-38,20},{0,20},{0,34},{18,34}},color={0,0,127})); + connect(TRoo1.y,heaCur1.TSetZon) + annotation (Line(points={{-38,-60},{0,-60},{0,-46},{18,-46}},color={0,0,127})); + annotation ( + experiment( + Tolerance=1e-6, + StopTime=1.0), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureReset.mos" "Simulate and plot"), + Documentation( + info=" +

+Example that demonstrates the use of the hot water temperature reset +for a heating system. +The parameters of the block heaCur +are for a heating system with +60°C supply water temperature and +40°C return water temperature at +an outside temperature of +-10°C and a room temperature of +20°C. The offset for the temperature reset is +8 Kelvin, i.e., above +12°C outside temperature, there is no heating load. +The figure below shows the computed supply and return water temperatures. +

+

+ +

+", + revisions=" + +"), + Icon( + 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}})})); +end SupplyReturnTemperatureReset; diff --git a/IBPSA/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureResetExponent.mo b/IBPSA/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureResetExponent.mo new file mode 100644 index 0000000000..b536e9207b --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureResetExponent.mo @@ -0,0 +1,75 @@ +within IBPSA.Controls.OBC.Utilities.SetPoints.Validation; +model SupplyReturnTemperatureResetExponent + "Test model for the heating curve with different exponent" + IBPSA.Controls.OBC.Utilities.SetPoints.SupplyReturnTemperatureReset heaCur( + m=1, + TSup_nominal=313.15, + TRet_nominal=308.15, + TOut_nominal=263.15) + "Compute the supply and return set point of heating systems with varying outdoor temperature and m=1" + annotation (Placement(transformation(extent={{20,30},{40,50}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Ramp TOut( + height=30, + duration=1, + offset=258.15, + y(unit="K")) + "Outdoor temperature varying from -10 degC to 30 degC" + annotation (Placement(transformation(extent={{-60,50},{-40,70}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant TRoo( + k=273.15+20, + y(unit="K")) + "Room temperature 20 degC" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + IBPSA.Controls.OBC.Utilities.SetPoints.SupplyReturnTemperatureReset heaCurM( + m=1.3, + TSup_nominal=313.15, + TRet_nominal=308.15, + TOut_nominal=263.15) + "Compute the supply and return set point of heating systems with varying outdoor temperature and m=1.3" + annotation (Placement(transformation(extent={{20,-20},{40,0}}))); + +equation + connect(TOut.y,heaCur.TOut) + annotation (Line(points={{-38,60},{-38,60},{0,60},{0,46},{18,46}},color={0,0,127})); + connect(TRoo.y,heaCur.TSetZon) + annotation (Line(points={{-38,20},{-10,20},{-10,34},{18,34}},color={0,0,127})); + connect(heaCurM.TOut,TOut.y) + annotation (Line(points={{18,-4},{0,-4},{0,60},{-38,60}},color={0,0,127})); + connect(TRoo.y,heaCurM.TSetZon) + annotation (Line(points={{-38,20},{-10,20},{-10,-16},{18,-16}},color={0,0,127})); + annotation ( + experiment( + Tolerance=1e-6, + StopTime=1.0), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureResetExponent.mos" "Simulate and plot"), + Documentation( + info=" +

+Example that demonstrates the use of the hot water temperature reset +for a heating system. +Both instances are identical except that heaCurM sets m=1.3. +

+", + revisions=" + +"), + Icon( + 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}})})); +end SupplyReturnTemperatureResetExponent; diff --git a/IBPSA/Controls/OBC/Utilities/SetPoints/Validation/package.mo b/IBPSA/Controls/OBC/Utilities/SetPoints/Validation/package.mo new file mode 100644 index 0000000000..be8825a472 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/SetPoints/Validation/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC.Utilities.SetPoints; +package Validation "Collection of models that validate the SetPoints blocks of the CDL" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains models that validate the blocks in + +IBPSA.Controls.OBC.Utilities.SetPoints. +

+

+The examples plot various outputs, which have been verified against +analytical solutions. These model outputs are stored as reference data to +allow continuous validation whenever models in the library change. +

+"), + 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={8.0,14.0}, + 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}})})); +end Validation; diff --git a/IBPSA/Controls/OBC/Utilities/SetPoints/Validation/package.order b/IBPSA/Controls/OBC/Utilities/SetPoints/Validation/package.order new file mode 100644 index 0000000000..cf5551e9de --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/SetPoints/Validation/package.order @@ -0,0 +1,2 @@ +SupplyReturnTemperatureReset +SupplyReturnTemperatureResetExponent diff --git a/IBPSA/Controls/OBC/Utilities/SetPoints/package.mo b/IBPSA/Controls/OBC/Utilities/SetPoints/package.mo new file mode 100644 index 0000000000..1a7c371b65 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/SetPoints/package.mo @@ -0,0 +1,46 @@ +within IBPSA.Controls.OBC.Utilities; +package SetPoints "Package with blocks for setpoint resets" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains components models to compute set points for control systems. +

+"), + 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), + Ellipse( + origin={10.0,10.0}, + fillColor={76,76,76}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{-80.0,-80.0},{-20.0,-20.0}}), + Ellipse( + origin={10.0,10.0}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{0.0,-80.0},{60.0,-20.0}}), + Ellipse( + origin={10.0,10.0}, + fillColor={128,128,128}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + extent={{0.0,0.0},{60.0,60.0}}), + Ellipse( + origin={10.0,10.0}, + lineColor={128,128,128}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-80.0,0.0},{-20.0,60.0}})})); +end SetPoints; diff --git a/IBPSA/Controls/OBC/Utilities/SetPoints/package.order b/IBPSA/Controls/OBC/Utilities/SetPoints/package.order new file mode 100644 index 0000000000..b51882f1ee --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/SetPoints/package.order @@ -0,0 +1,2 @@ +SupplyReturnTemperatureReset +Validation diff --git a/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartCoolingNegativeStartTime.mo b/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartCoolingNegativeStartTime.mo new file mode 100644 index 0000000000..dc4e71e72c --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartCoolingNegativeStartTime.mo @@ -0,0 +1,153 @@ +within IBPSA.Controls.OBC.Utilities.Validation; +model OptimalStartCoolingNegativeStartTime + "Validation model for the block OptimalStart for cooling system with a negative start time" + IBPSA.Controls.OBC.Utilities.OptimalStart optStaCoo( + computeHeating=false, + computeCooling=true) + "Optimal start for cooling system" + annotation (Placement(transformation(extent={{20,0},{40,20}}))); + Modelica.Blocks.Continuous.Integrator TRoo( + k=0.0000005, + y_start=24+273.15) + "Room air temperature" + annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant TSetCooOcc( + k=24+273.15) + "Zone cooling setpoint during occupancy" + annotation (Placement(transformation(extent={{-40,70},{-20,90}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin TOut( + amplitude=5, + freqHz=1/86400, + offset=28+273.15, + startTime( + displayUnit="s")=-691200) + "Outdoor dry bulb temperature to test cooling system" + annotation (Placement(transformation(extent={{-194,50},{-174,70}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter UA(k=100) + "Overall heat loss coefficient" + annotation (Placement(transformation(extent={{-120,0},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract dT + "Temperature difference between zone and outdoor" + annotation (Placement(transformation(extent={{-160,0},{-140,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Add dTdt + "Temperature derivative" + annotation (Placement(transformation(extent={{-80,0},{-60,20}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter QCoo(k=-2000) + "Heat extraction in the zone" + annotation (Placement(transformation(extent={{-120,-60},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal booToRea( + realTrue=-6) + "Convert Boolean to Real signal" + annotation (Placement(transformation(extent={{60,0},{80,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add + "Reset setpoint from unoccupied to occupied during optimal start period" + annotation (Placement(transformation(extent={{120,0},{140,20}}))); + IBPSA.Controls.OBC.CDL.Reals.PID conPID( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PI, + Ti=1, + reverseActing=false) + "PI control signal for the cooling power" + annotation (Placement(transformation(extent={{160,0},{180,20}}))); + IBPSA.Controls.SetPoints.OccupancySchedule occSch( + occupancy=3600*{7,19}, + period=24*3600) + "Daily schedule" + annotation (Placement(transformation(extent={{-40,-60},{-20,-40}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal TSetCoo( + realTrue=273.15+24, + realFalse=273.15+30, + y(final unit="K", + displayUnit="degC")) + "Room temperature set point for cooling" + annotation (Placement(transformation(extent={{60,-60},{80,-40}}))); + +equation + connect(dT.y,UA.u) + annotation (Line(points={{-138,10},{-122,10}},color={0,0,127})); + connect(dTdt.y,TRoo.u) + annotation (Line(points={{-58,10},{-42,10}},color={0,0,127})); + connect(QCoo.y,dTdt.u2) + annotation (Line(points={{-98,-50},{-88,-50},{-88,4},{-82,4}},color={0,0,127})); + connect(TRoo.y,optStaCoo.TZon) + annotation (Line(points={{-19,10},{-8,10},{-8,6},{18,6}},color={0,0,127})); + connect(TSetCooOcc.y,optStaCoo.TSetZonCoo) + annotation (Line(points={{-18,80},{0,80},{0,14},{18,14}},color={0,0,127})); + connect(UA.y,dTdt.u1) + annotation (Line(points={{-98,10},{-90,10},{-90,16},{-82,16}},color={0,0,127})); + connect(optStaCoo.optOn,booToRea.u) + annotation (Line(points={{42,6},{50,6},{50,10},{58,10}},color={255,0,255})); + connect(add.y,conPID.u_s) + annotation (Line(points={{142,10},{158,10}},color={0,0,127})); + connect(TRoo.y,conPID.u_m) + annotation (Line(points={{-19,10},{-14,10},{-14,-20},{170,-20},{170,-2}},color={0,0,127})); + connect(occSch.tNexOcc,optStaCoo.tNexOcc) + annotation (Line(points={{-19,-44},{0,-44},{0,2},{18,2}},color={0,0,127})); + connect(conPID.y,QCoo.u) + annotation (Line(points={{182,10},{188,10},{188,-80},{-130,-80},{-130,-50},{-122,-50}},color={0,0,127})); + connect(occSch.occupied,TSetCoo.u) + annotation (Line(points={{-19,-56},{10,-56},{10,-50},{58,-50}},color={255,0,255})); + connect(TSetCoo.y,add.u2) + annotation (Line(points={{82,-50},{110,-50},{110,4},{118,4}},color={0,0,127})); + connect(booToRea.y,add.u1) + annotation (Line(points={{82,10},{86,10},{86,16},{118,16}},color={0,0,127})); + connect(TRoo.y, dT.u2) + annotation (Line(points={{-19,10},{-14,10},{-14,-20},{-166,-20},{-166,4},{-162,4}}, + color={0,0,127})); + connect(TOut.y, dT.u1) + annotation (Line(points={{-172,60},{-166,60},{-166,16},{-162,16}}, color={0,0,127})); + + annotation ( + experiment( + StartTime=-660000, + StopTime=0, + Tolerance=1e-07), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartCoolingNegativeStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

+This model is to validate the block + +IBPSA.Controls.OBC.Utilities.OptimalStart for space cooling system with +a negative simulation start time. +

+

+The room is modeled as a simple differential equation with a time constant of +around 5.6 hours. The cooling power is relatively large compared to the heat gain from +the outdoor temperature. The outdoor temperature is repetitive each day; +the optimal start time converges to a small amount of time tOpt after a few days. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + 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, + extent={{-200,-160},{200,160}}))); +end OptimalStartCoolingNegativeStartTime; diff --git a/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartCoolingPositiveStartTime.mo b/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartCoolingPositiveStartTime.mo new file mode 100644 index 0000000000..0b9a9ed6f1 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartCoolingPositiveStartTime.mo @@ -0,0 +1,152 @@ +within IBPSA.Controls.OBC.Utilities.Validation; +model OptimalStartCoolingPositiveStartTime + "Validation model for the block OptimalStart for cooling system with a positive start time" + IBPSA.Controls.OBC.Utilities.OptimalStart optStaCoo( + computeHeating=false, + computeCooling=true) + "Optimal start for cooling system" + annotation (Placement(transformation(extent={{20,0},{40,20}}))); + Modelica.Blocks.Continuous.Integrator TRoo( + k=0.0000005, + y_start=24+273.15) + "Room air temperature" + annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant TSetCooOcc( + k=24+273.15) + "Zone cooling setpoint during occupancy" + annotation (Placement(transformation(extent={{-40,70},{-20,90}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin TOut( + amplitude=5, + freqHz=1/86400, + offset=28+273.15, + startTime( + displayUnit="s")=0) + "Outdoor dry bulb temperature to test cooling system" + annotation (Placement(transformation(extent={{-194,40},{-174,60}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter UA(k=100) + "Overall heat loss coefficient" + annotation (Placement(transformation(extent={{-120,0},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract dT + "Temperature difference between zone and outdoor" + annotation (Placement(transformation(extent={{-160,0},{-140,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Add dTdt + "Temperature derivative" + annotation (Placement(transformation(extent={{-80,0},{-60,20}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter QCoo(k=-2000) + "Heat extraction in the zone" + annotation (Placement(transformation(extent={{-120,-60},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal booToRea( + realTrue=-6) + "Convert Boolean to Real signal" + annotation (Placement(transformation(extent={{60,0},{80,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add + "Reset setpoint from unoccupied to occupied during optimal start period" + annotation (Placement(transformation(extent={{120,0},{140,20}}))); + IBPSA.Controls.OBC.CDL.Reals.PID conPID( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PI, + Ti=1, + reverseActing=false) + "PI control signal for the cooling power" + annotation (Placement(transformation(extent={{160,0},{180,20}}))); + IBPSA.Controls.SetPoints.OccupancySchedule occSch( + occupancy=3600*{7,19}, + period=24*3600) + "Daily schedule" + annotation (Placement(transformation(extent={{-40,-60},{-20,-40}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal TSetCoo( + realTrue=273.15+24, + realFalse=273.15+30, + y(final unit="K", + displayUnit="degC")) + "Room temperature set point for cooling" + annotation (Placement(transformation(extent={{60,-60},{80,-40}}))); + +equation + connect(dT.y,UA.u) + annotation (Line(points={{-138,10},{-122,10}},color={0,0,127})); + connect(dTdt.y,TRoo.u) + annotation (Line(points={{-58,10},{-42,10}},color={0,0,127})); + connect(QCoo.y,dTdt.u2) + annotation (Line(points={{-98,-50},{-88,-50},{-88,4},{-82,4}},color={0,0,127})); + connect(TRoo.y,optStaCoo.TZon) + annotation (Line(points={{-19,10},{-8,10},{-8,6},{18,6}},color={0,0,127})); + connect(TSetCooOcc.y,optStaCoo.TSetZonCoo) + annotation (Line(points={{-18,80},{0,80},{0,14},{18,14}},color={0,0,127})); + connect(UA.y,dTdt.u1) + annotation (Line(points={{-98,10},{-90,10},{-90,16},{-82,16}},color={0,0,127})); + connect(optStaCoo.optOn,booToRea.u) + annotation (Line(points={{42,6},{50,6},{50,10},{58,10}},color={255,0,255})); + connect(add.y,conPID.u_s) + annotation (Line(points={{142,10},{158,10}},color={0,0,127})); + connect(TRoo.y,conPID.u_m) + annotation (Line(points={{-19,10},{-14,10},{-14,-20},{170,-20},{170,-2}},color={0,0,127})); + connect(occSch.tNexOcc,optStaCoo.tNexOcc) + annotation (Line(points={{-19,-44},{0,-44},{0,2},{18,2}},color={0,0,127})); + connect(conPID.y,QCoo.u) + annotation (Line(points={{182,10},{188,10},{188,-80},{-130,-80},{-130,-50},{-122,-50}},color={0,0,127})); + connect(occSch.occupied,TSetCoo.u) + annotation (Line(points={{-19,-56},{10,-56},{10,-50},{58,-50}},color={255,0,255})); + connect(TSetCoo.y,add.u2) + annotation (Line(points={{82,-50},{100,-50},{100,4},{118,4}},color={0,0,127})); + connect(booToRea.y,add.u1) + annotation (Line(points={{82,10},{100,10},{100,16},{118,16}},color={0,0,127})); + connect(TRoo.y, dT.u2) annotation (Line(points={{-19,10},{-14,10},{-14,-20},{-166, + -20},{-166,4},{-162,4}}, color={0,0,127})); + connect(TOut.y, dT.u1) annotation (Line(points={{-172,50},{-166,50},{-166,16}, + {-162,16}}, color={0,0,127})); + + annotation ( + experiment( + StartTime=34000, + StopTime=864000, + Tolerance=1e-07), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartCoolingPositiveStartTime.mos" "Simulate and plot"), + Documentation( + info=" +

+This model is to validate the block + +IBPSA.Controls.OBC.Utilities.OptimalStart for space cooling system +with a positive simulation start time. +

+

+The room is modeled as a simple differential equation with a time constant of +around 5.6 hours. The cooling power is relatively large compared to the heat gain from +the outdoor temperature. The outdoor temperature is repetitive each day; +the optimal start time converges to a small amount of time tOpt after a few days. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + 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, + extent={{-200,-160},{200,160}}))); +end OptimalStartCoolingPositiveStartTime; diff --git a/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartHeating.mo b/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartHeating.mo new file mode 100644 index 0000000000..25a9e4ac57 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartHeating.mo @@ -0,0 +1,150 @@ +within IBPSA.Controls.OBC.Utilities.Validation; +model OptimalStartHeating + "Validation model for the block OptimalStart for heating system" + IBPSA.Controls.OBC.Utilities.OptimalStart optStaHea( + computeHeating=true, + computeCooling=false) + "Optimal start for heating system" + annotation (Placement(transformation(extent={{20,0},{40,20}}))); + Modelica.Blocks.Continuous.Integrator TRoo( + k=0.000005, + y_start=21+273.15) + "Room air temperature" + annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant TSetHeaOcc( + k=21+273.15) + "Zone heating setpoint during occupancy" + annotation (Placement(transformation(extent={{-40,70},{-20,90}}))); + IBPSA.Controls.SetPoints.OccupancySchedule occSch( + occupancy=3600*{7,19}, + period=24*3600) + "Daily schedule" + annotation (Placement(transformation(extent={{-40,-60},{-20,-40}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter UA(k=10) + "Overall heat loss coefficient" + annotation (Placement(transformation(extent={{-120,0},{-100,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract dT + "Temperature difference between zone and outdoor" + annotation (Placement(transformation(extent={{-160,0},{-140,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Add dTdt + "Temperature derivative" + annotation (Placement(transformation(extent={{-80,0},{-60,20}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter QHea(k=500) + "Heat injection in the zone" + annotation (Placement(transformation(extent={{-120,-60},{-100,-40}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal booToRea( + realTrue=6) + "Convert Boolean to Real signal" + annotation (Placement(transformation(extent={{60,0},{80,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin TOut( + amplitude=10, + freqHz=1/86400, + phase=3.1415926535898, + offset=10+273.15, + startTime( + displayUnit="d")=-172800) + "Outdoor dry bulb temperature to test heating system" + annotation (Placement(transformation(extent={{-194,40},{-174,60}}))); + IBPSA.Controls.OBC.CDL.Reals.PID conPID( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PI, + Ti=1.5) + "PI control for space heating" + annotation (Placement(transformation(extent={{160,0},{180,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add + "Reset temperature from unoccupied to occupied for optimal start period" + annotation (Placement(transformation(extent={{120,0},{140,20}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal TSetHea( + realTrue=273.15+21, + realFalse=273.15+15, + y(final unit="K", + displayUnit="degC")) + "Room temperature set point for heating" + annotation (Placement(transformation(extent={{60,-60},{80,-40}}))); + +equation + connect(dT.y,UA.u) + annotation (Line(points={{-138,10},{-122,10}},color={0,0,127})); + connect(dTdt.y,TRoo.u) + annotation (Line(points={{-58,10},{-42,10}},color={0,0,127})); + connect(QHea.y,dTdt.u2) + annotation (Line(points={{-98,-50},{-88,-50},{-88,4},{-82,4}},color={0,0,127})); + connect(TRoo.y,optStaHea.TZon) + annotation (Line(points={{-19,10},{-12,10},{-12,6},{18,6}},color={0,0,127})); + connect(occSch.tNexOcc,optStaHea.tNexOcc) + annotation (Line(points={{-19,-44},{0,-44},{0,2},{18,2}},color={0,0,127})); + connect(TSetHeaOcc.y,optStaHea.TSetZonHea) + annotation (Line(points={{-18,80},{0,80},{0,18},{18,18}},color={0,0,127})); + connect(UA.y,dTdt.u1) + annotation (Line(points={{-98,10},{-90,10},{-90,16},{-82,16}},color={0,0,127})); + connect(add.y,conPID.u_s) + annotation (Line(points={{142,10},{158,10}},color={0,0,127})); + connect(conPID.y,QHea.u) + annotation (Line(points={{182,10},{184,10},{184,-70},{-126,-70},{-126,-50},{-122,-50}},color={0,0,127})); + connect(TRoo.y,conPID.u_m) + annotation (Line(points={{-19,10},{-12,10},{-12,-16},{170,-16},{170,-2}},color={0,0,127})); + connect(optStaHea.optOn,booToRea.u) + annotation (Line(points={{42,6},{50,6},{50,10},{58,10}},color={255,0,255})); + connect(TSetHea.u,occSch.occupied) + annotation (Line(points={{58,-50},{10,-50},{10,-56},{-19,-56}},color={255,0,255})); + connect(TSetHea.y,add.u2) + annotation (Line(points={{82,-50},{104,-50},{104,4},{118,4}},color={0,0,127})); + connect(booToRea.y,add.u1) + annotation (Line(points={{82,10},{104,10},{104,16},{118,16}},color={0,0,127})); + connect(TOut.y, dT.u1) annotation (Line(points={{-172,50},{-166,50},{-166,16}, + {-162,16}}, color={0,0,127})); + connect(TRoo.y, dT.u2) annotation (Line(points={{-19,10},{-12,10},{-12,-16},{-166, + -16},{-166,4},{-162,4}}, color={0,0,127})); + annotation ( + experiment( + StartTime=-172800, + StopTime=604800, + Tolerance=1e-07), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartHeating.mos" "Simulate and plot"), + Documentation( + info=" +

+This model is to validate the block + +IBPSA.Controls.OBC.Utilities.OptimalStart for space heating system. +

+

+The room is modeled as a simple differential equation with a time constant of +around 5.6 hours. +The outdoor temperature is also repetitive each day; +the optimal start time converges to a small amount of time tOpt after a few days. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + 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, + extent={{-200,-160},{200,160}}))); +end OptimalStartHeating; diff --git a/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartHeatingCooling.mo b/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartHeatingCooling.mo new file mode 100644 index 0000000000..8cb555570f --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartHeatingCooling.mo @@ -0,0 +1,211 @@ +within IBPSA.Controls.OBC.Utilities.Validation; +model OptimalStartHeatingCooling + "Validation model for the block OptimalStart for both heating and cooling system" + IBPSA.Controls.OBC.Utilities.OptimalStart optSta( + computeHeating=true, + computeCooling=true) + "Optimal start for both heating and cooling system" + annotation (Placement(transformation(extent={{40,0},{60,20}}))); + Modelica.Blocks.Continuous.Integrator TRoo( + k=0.0000004, + y_start=19+273.15) + "Room air temperature" + annotation (Placement(transformation(extent={{-20,0},{0,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant TSetCooOcc( + k=24+273.15) + "Zone cooling setpoint during occupancy" + annotation (Placement(transformation(extent={{-20,60},{0,80}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin TOutBase( + amplitude=5, + freqHz=1/86400, + offset=15+273.15, + startTime( + displayUnit="h")=0) + "Outdoor dry bulb temperature, base component" + annotation (Placement(transformation(extent={{-212,70},{-192,90}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter UA(k=25) + "Overall heat loss coefficient" + annotation (Placement(transformation(extent={{-100,0},{-80,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract dT + "Temperature difference between zone and outdoor" + annotation (Placement(transformation(extent={{-140,0},{-120,20}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter QCoo(k=-4000) + "Heat extraction in the zone" + annotation (Placement(transformation(extent={{-100,-40},{-80,-20}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal booToRea1( + realTrue=-6) + "Convert Boolean to Real signal" + annotation (Placement(transformation(extent={{80,0},{100,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add1 + "Reset temperature from unoccupied to occupied for optimal start period" + annotation (Placement(transformation(extent={{140,0},{160,20}}))); + IBPSA.Controls.OBC.CDL.Reals.PID conPID1( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PI, + Ti=3, + reverseActing=false) + "PI control for space cooling" + annotation (Placement(transformation(extent={{180,0},{200,20}}))); + IBPSA.Controls.SetPoints.OccupancySchedule occSch( + occupancy=3600*{7,19}, + period=24*3600) + "Daily schedule" + annotation (Placement(transformation(extent={{-20,-60},{0,-40}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiSum mulSum( + nin=3) + "Sum heat gains" + annotation (Placement(transformation(extent={{-60,0},{-40,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant TSetHeaOcc( + k=21+273.15) + "Zone heating setpoint during occupancy" + annotation (Placement(transformation(extent={{-20,100},{0,120}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal booToRea2( + realTrue=6) + "Convert Boolean to Real signal" + annotation (Placement(transformation(extent={{80,40},{100,60}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add2 + "Reset temperature from unoccupied to occupied for optimal start period" + annotation (Placement(transformation(extent={{140,40},{160,60}}))); + IBPSA.Controls.OBC.CDL.Reals.PID conPID( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PI, + Ti=3) + "PI control for space heating" + annotation (Placement(transformation(extent={{180,40},{200,60}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter QHea(k=2000) + "Heat injection in the zone" + annotation (Placement(transformation(extent={{-100,-110},{-80,-90}}))); + IBPSA.Controls.OBC.CDL.Reals.Add TOut + "Outdoor dry bulb temperature" + annotation (Placement(transformation(extent={{-174,50},{-154,70}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pul( + shift( + displayUnit="d")=604800, + amplitude=15, + period( + displayUnit="d")=1209600) + "Range of outdoor dry bulb temperature" + annotation (Placement(transformation(extent={{-214,30},{-194,50}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal TSetHea( + realTrue=273.15+21, + realFalse=273.15+15, + y(final unit="K", + displayUnit="degC")) + "Room temperature set point for heating" + annotation (Placement(transformation(extent={{80,-70},{100,-50}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal TSetCoo( + realTrue=273.15+24, + realFalse=273.15+30, + y(final unit="K", + displayUnit="degC")) + "Room temperature set point for cooling" + annotation (Placement(transformation(extent={{80,-40},{100,-20}}))); + +equation + connect(dT.y,UA.u) + annotation (Line(points={{-118,10},{-102,10}},color={0,0,127})); + connect(TRoo.y,optSta.TZon) + annotation (Line(points={{1,10},{10,10},{10,6},{38,6}},color={0,0,127})); + connect(TSetCooOcc.y,optSta.TSetZonCoo) + annotation (Line(points={{2,70},{10,70},{10,14},{38,14}},color={0,0,127})); + connect(optSta.optOn,booToRea1.u) + annotation (Line(points={{62,6},{70,6},{70,10},{78,10}},color={255,0,255})); + connect(add1.y,conPID1.u_s) + annotation (Line(points={{162,10},{178,10}},color={0,0,127})); + connect(TRoo.y,conPID1.u_m) + annotation (Line(points={{1,10},{6,10},{6,-6},{190,-6},{190,-2}},color={0,0,127})); + connect(occSch.tNexOcc,optSta.tNexOcc) + annotation (Line(points={{1,-44},{10,-44},{10,2},{38,2}},color={0,0,127})); + connect(UA.y,mulSum.u[1]) + annotation (Line(points={{-78,10},{-70,10},{-70,11.3333},{-62,11.3333}},color={0,0,127})); + connect(TRoo.u,mulSum.y) + annotation (Line(points={{-22,10},{-38,10}},color={0,0,127})); + connect(TSetHeaOcc.y,optSta.TSetZonHea) + annotation (Line(points={{2,110},{14,110},{14,18},{38,18}},color={0,0,127})); + connect(optSta.optOn,booToRea2.u) + annotation (Line(points={{62,6},{70,6},{70,50},{78,50}},color={255,0,255})); + connect(add2.y,conPID.u_s) + annotation (Line(points={{162,50},{178,50}},color={0,0,127})); + connect(conPID1.y,QCoo.u) + annotation (Line(points={{202,10},{210,10},{210,-80},{-110,-80},{-110,-30},{-102,-30}},color={0,0,127})); + connect(conPID.y,QHea.u) + annotation (Line(points={{202,50},{212,50},{212,-130},{-108,-130},{-108,-100},{-102,-100}},color={0,0,127})); + connect(QCoo.y,mulSum.u[2]) + annotation (Line(points={{-78,-30},{-70,-30},{-70,10},{-62,10}},color={0,0,127})); + connect(QHea.y,mulSum.u[3]) + annotation (Line(points={{-78,-100},{-68,-100},{-68,8.66667},{-62,8.66667}},color={0,0,127})); + connect(TOutBase.y,TOut.u1) + annotation (Line(points={{-190,80},{-182,80},{-182,66},{-176,66}}, color={0,0,127})); + connect(pul.y,TOut.u2) + annotation (Line(points={{-192,40},{-180,40},{-180,54},{-176,54}}, color={0,0,127})); + connect(TSetCoo.y,add1.u2) + annotation (Line(points={{102,-30},{130,-30},{130,4},{138,4}},color={0,0,127})); + connect(occSch.occupied,TSetCoo.u) + annotation (Line(points={{1,-56},{60,-56},{60,-30},{78,-30}},color={255,0,255})); + connect(TSetHea.u,occSch.occupied) + annotation (Line(points={{78,-60},{60,-60},{60,-56},{1,-56}},color={255,0,255})); + connect(booToRea1.y,add1.u1) + annotation (Line(points={{102,10},{120,10},{120,16},{138,16}},color={0,0,127})); + connect(booToRea2.y,add2.u1) + annotation (Line(points={{102,50},{120,50},{120,56},{138,56}},color={0,0,127})); + connect(TSetHea.y,add2.u2) + annotation (Line(points={{102,-60},{126,-60},{126,44},{138,44}},color={0,0,127})); + connect(TRoo.y, conPID.u_m) annotation (Line(points={{1,10},{6,10},{6,34},{190, + 34},{190,38}}, color={0,0,127})); + connect(TOut.y, dT.u1) annotation (Line(points={{-152,60},{-146,60},{-146,16}, + {-142,16}}, color={0,0,127})); + connect(TRoo.y, dT.u2) annotation (Line(points={{1,10},{6,10},{6,-6},{-146,-6}, + {-146,4},{-142,4}}, color={0,0,127})); + annotation ( + experiment( + StopTime=2419200, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartHeatingCooling.mos" "Simulate and plot"), + Documentation( + info=" +

+This models validates both space heating and cooling for the block + +IBPSA.Controls.OBC.Utilities.OptimalStart. +

+

+The first ten days is to test the heating case with a lower outdoor temperature. +The next ten days has a higher outdoor temprature, which is to test the cooling case. +The zone model has a time constant of 27.8 hours. The optimal start block converges separately +to an optimal start time for heating and cooling. Note that during the three transition +days, the zone temperature is in the deadband, so there is no need to optimally start +the heating or cooling system in advance. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + 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, + extent={{-220,-160},{220,160}}))); +end OptimalStartHeatingCooling; diff --git a/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartNoHeatingNoCooling.mo b/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartNoHeatingNoCooling.mo new file mode 100644 index 0000000000..bde745e1b6 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/Validation/OptimalStartNoHeatingNoCooling.mo @@ -0,0 +1,196 @@ +within IBPSA.Controls.OBC.Utilities.Validation; +model OptimalStartNoHeatingNoCooling + "Validation model for the block OptimalStart for the case with no preheating nor precooling" + IBPSA.Controls.OBC.Utilities.OptimalStart optSta( + computeHeating=false, + computeCooling=false) + "Optimal start for both heating and cooling system" + annotation (Placement(transformation(extent={{40,0},{60,20}}))); + Modelica.Blocks.Continuous.Integrator TRoo( + k=0.0000004, + y_start=19+273.15) + "Room air temperature" + annotation (Placement(transformation(extent={{-20,0},{0,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Sin TOutBase( + amplitude=5, + freqHz=1/86400, + offset=15+273.15, + startTime( + displayUnit="h")=0) + "Outdoor dry bulb temperature, base component" + annotation (Placement(transformation(extent={{-212,70},{-192,90}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter UA(k=25) + "Overall heat loss coefficient" + annotation (Placement(transformation(extent={{-100,0},{-80,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract dT + "Temperature difference between zone and outdoor" + annotation (Placement(transformation(extent={{-140,0},{-120,20}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter QCoo(k=-4000) + "Heat extraction in the zone" + annotation (Placement(transformation(extent={{-100,-40},{-80,-20}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal booToRea1( + realTrue=-6) + "Convert Boolean to Real signal" + annotation (Placement(transformation(extent={{80,0},{100,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add1 + "Reset temperature from unoccupied to occupied for optimal start period" + annotation (Placement(transformation(extent={{140,0},{160,20}}))); + IBPSA.Controls.OBC.CDL.Reals.PID conPID1( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PI, + Ti=3, + reverseActing=false) + "PI control for space cooling" + annotation (Placement(transformation(extent={{180,0},{200,20}}))); + IBPSA.Controls.SetPoints.OccupancySchedule occSch( + occupancy=3600*{7,19}, + period=24*3600) + "Daily schedule" + annotation (Placement(transformation(extent={{-20,-60},{0,-40}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiSum mulSum( + nin=3) + "Sum heat gains" + annotation (Placement(transformation(extent={{-60,0},{-40,20}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal booToRea2( + realTrue=6) + "Convert Boolean to Real signal" + annotation (Placement(transformation(extent={{80,40},{100,60}}))); + IBPSA.Controls.OBC.CDL.Reals.Add add2 + "Reset temperature from unoccupied to occupied for optimal start period" + annotation (Placement(transformation(extent={{140,40},{160,60}}))); + IBPSA.Controls.OBC.CDL.Reals.PID conPID( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PI, + Ti=3) + "PI control for space heating" + annotation (Placement(transformation(extent={{180,40},{200,60}}))); + IBPSA.Controls.OBC.CDL.Reals.MultiplyByParameter QHea(k=2000) + "Heat injection in the zone" + annotation (Placement(transformation(extent={{-100,-110},{-80,-90}}))); + IBPSA.Controls.OBC.CDL.Reals.Add TOut + "Outdoor dry bulb temperature" + annotation (Placement(transformation(extent={{-174,50},{-154,70}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pul( + shift( + displayUnit="d")=604800, + amplitude=15, + period( + displayUnit="d")=1209600) + "Range of outdoor dry bulb temperature" + annotation (Placement(transformation(extent={{-214,30},{-194,50}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal TSetHea( + realTrue=273.15+21, + realFalse=273.15+15, + y(final unit="K", + displayUnit="degC")) + "Room temperature set point for heating" + annotation (Placement(transformation(extent={{80,-70},{100,-50}}))); + IBPSA.Controls.OBC.CDL.Conversions.BooleanToReal TSetCoo( + realTrue=273.15+24, + realFalse=273.15+30, + y(final unit="K", + displayUnit="degC")) + "Room temperature set point for cooling" + annotation (Placement(transformation(extent={{80,-40},{100,-20}}))); + +equation + connect(dT.y,UA.u) + annotation (Line(points={{-118,10},{-102,10}},color={0,0,127})); + connect(TRoo.y,optSta.TZon) + annotation (Line(points={{1,10},{10,10},{10,6},{38,6}},color={0,0,127})); + connect(optSta.optOn,booToRea1.u) + annotation (Line(points={{62,6},{70,6},{70,10},{78,10}},color={255,0,255})); + connect(add1.y,conPID1.u_s) + annotation (Line(points={{162,10},{178,10}},color={0,0,127})); + connect(TRoo.y,conPID1.u_m) + annotation (Line(points={{1,10},{6,10},{6,-12},{190,-12},{190,-2}},color={0,0,127})); + connect(occSch.tNexOcc,optSta.tNexOcc) + annotation (Line(points={{1,-44},{10,-44},{10,2},{38,2}},color={0,0,127})); + connect(UA.y,mulSum.u[1]) + annotation (Line(points={{-78,10},{-70,10},{-70,11.3333},{-62,11.3333}},color={0,0,127})); + connect(TRoo.u,mulSum.y) + annotation (Line(points={{-22,10},{-38,10}},color={0,0,127})); + connect(optSta.optOn,booToRea2.u) + annotation (Line(points={{62,6},{70,6},{70,50},{78,50}},color={255,0,255})); + connect(add2.y,conPID.u_s) + annotation (Line(points={{162,50},{178,50}},color={0,0,127})); + connect(conPID1.y,QCoo.u) + annotation (Line(points={{202,10},{210,10},{210,-80},{-110,-80},{-110,-30},{-102,-30}},color={0,0,127})); + connect(conPID.y,QHea.u) + annotation (Line(points={{202,50},{212,50},{212,-120},{-108,-120},{-108,-100},{-102,-100}},color={0,0,127})); + connect(QCoo.y,mulSum.u[2]) + annotation (Line(points={{-78,-30},{-70,-30},{-70,10},{-62,10}},color={0,0,127})); + connect(QHea.y,mulSum.u[3]) + annotation (Line(points={{-78,-100},{-68,-100},{-68,8.66667},{-62,8.66667}},color={0,0,127})); + connect(TOutBase.y,TOut.u1) + annotation (Line(points={{-190,80},{-182,80},{-182,66},{-176,66}}, color={0,0,127})); + connect(pul.y,TOut.u2) + annotation (Line(points={{-192,40},{-180,40},{-180,54},{-176,54}}, color={0,0,127})); + connect(TSetCoo.y,add1.u2) + annotation (Line(points={{102,-30},{130,-30},{130,4},{138,4}},color={0,0,127})); + connect(occSch.occupied,TSetCoo.u) + annotation (Line(points={{1,-56},{60,-56},{60,-30},{78,-30}},color={255,0,255})); + connect(TSetHea.u,occSch.occupied) + annotation (Line(points={{78,-60},{60,-60},{60,-56},{1,-56}},color={255,0,255})); + connect(TSetHea.y,add2.u2) + annotation (Line(points={{102,-60},{126,-60},{126,44},{138,44}},color={0,0,127})); + connect(booToRea2.y,add2.u1) + annotation (Line(points={{102,50},{126,50},{126,56},{138,56}},color={0,0,127})); + connect(booToRea1.y,add1.u1) + annotation (Line(points={{102,10},{120,10},{120,16},{138,16}},color={0,0,127})); + connect(TRoo.y, conPID.u_m) annotation (Line(points={{1,10},{10,10},{10,34},{190, + 34},{190,38}}, color={0,0,127})); + connect(TOut.y, dT.u1) annotation (Line(points={{-152,60},{-146,60},{-146,16}, + {-142,16}}, color={0,0,127})); + connect(TRoo.y, dT.u2) annotation (Line(points={{1,10},{6,10},{6,-12},{-146,-12}, + {-146,4},{-142,4}}, color={0,0,127})); + annotation ( + experiment( + StopTime=2419200, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartNoHeatingNoCooling.mos" "Simulate and plot"), + Documentation( + info=" +

+This models validates the block + +IBPSA.Controls.OBC.Utilities.OptimalStart for the case when the optimal start +is not turned on for preheating or precooling before the scheduled occupancy. +

+

+The results shows that the optimal start time tOpt remains zero and +the optimal start on signal optOn remains false during the simulation. +

+", + revisions=" + +"), + Icon( + coordinateSystem( + preserveAspectRatio=false, + extent={{-100,-100},{100,100}}), + 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, + extent={{-220,-160},{220,160}}))); +end OptimalStartNoHeatingNoCooling; diff --git a/IBPSA/Controls/OBC/Utilities/Validation/PIDWithInputGains.mo b/IBPSA/Controls/OBC/Utilities/Validation/PIDWithInputGains.mo new file mode 100644 index 0000000000..ad0f5dd93a --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/Validation/PIDWithInputGains.mo @@ -0,0 +1,158 @@ +within IBPSA.Controls.OBC.Utilities.Validation; +model PIDWithInputGains + "Test model for PIDWithInputGains" + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse pulse( + period=0.25) + "Setpoint" + annotation (Placement(transformation(extent={{-30,14},{-10,34}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Constant const( + k=0.5) + "Measured value" + annotation (Placement(transformation(extent={{-30,-22},{-10,-2}}))); + IBPSA.Controls.OBC.Utilities.PIDWithInputGains PIDWitInpGai( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PID) + "PID controller with input gains" + annotation (Placement(transformation(extent={{20,-30},{40,-10}}))); + IBPSA.Controls.OBC.CDL.Reals.PIDWithReset PID( + controllerType=IBPSA.Controls.OBC.CDL.Types.SimpleController.PID, + k=1, + Ti=0.5, + Td=0.1) + "PID controller with constant gains" + annotation (Placement(transformation(extent={{20,20},{40,40}}))); + IBPSA.Controls.OBC.CDL.Logical.Sources.Pulse resSig(period=1) + "Reset signal" + annotation (Placement(transformation(extent={{-80,40},{-60,60}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse k( + amplitude=0.2, + width=0.4, + period=1, + shift=0.6, + offset=1) + "Control gain signal" + annotation (Placement(transformation(extent={{-80,0},{-60,20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse Ti( + amplitude=0.2, + width=0.4, + period=1, + shift=0.6, + offset=0.5) + "Time constant signal for the integral term" + annotation (Placement(transformation(extent={{-80,-40},{-60,-20}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.Pulse Td( + amplitude=0.1, + width=0.4, + period=1, + shift=0.6, + offset=0.1) + "Time constant signal for the derivative term" + annotation (Placement(transformation(extent={{-80,-80},{-60,-60}}))); + IBPSA.Controls.OBC.CDL.Reals.Abs abs1 + "Absolute value of controller output" + annotation (Placement(transformation(extent={{110,-10},{130,10}}))); + IBPSA.Controls.OBC.CDL.Reals.Subtract sub + "Difference in controller output" + annotation (Placement(transformation(extent={{80,-10},{100,10}}))); + IBPSA.Controls.OBC.CDL.Reals.LessThreshold lesThr(t=1E-5, h=1E-4) + "Output true if outputs are bigger than threshold" + annotation (Placement(transformation(extent={{140,-10},{160,10}}))); + IBPSA.Controls.OBC.CDL.Utilities.Assert assMes( + message="Control outputs differ more than expected") + "Make sure outputs are within expected tolerance" + annotation (Placement(transformation(extent={{200,20},{220,40}}))); + IBPSA.Controls.OBC.CDL.Reals.Sources.CivilTime modTim + "Civil time" + annotation (Placement(transformation(extent={{80,40},{100,60}}))); + IBPSA.Controls.OBC.CDL.Reals.GreaterThreshold greThr(t=0.59) + "Output true if model time is below 0.6" + annotation (Placement(transformation(extent={{140,40},{160,60}}))); + IBPSA.Controls.OBC.CDL.Logical.Or or2 + "Output true either if time is bigger than 0.59, or if tolerance is maintained" + annotation (Placement(transformation(extent={{170,20},{190,40}}))); +equation + connect(resSig.y, PID.trigger) annotation (Line(points={{-58,50},{0,50},{0,10}, + {24,10},{24,18}}, color={255,0,255})); + connect(PIDWitInpGai.trigger, PID.trigger) annotation (Line(points={{24, + -32},{24,-60},{0,-60},{0,10},{24,10},{24,18}}, color={255,0,255})); + connect(pulse.y, PID.u_s) annotation (Line(points={{-8,24},{14,24},{14,30},{ + 18,30}}, color={0,0,127})); + connect(PIDWitInpGai.u_s, PID.u_s) annotation (Line(points={{18,-20},{14, + -20},{14,30},{18,30}}, color={0,0,127})); + connect(const.y, PID.u_m) annotation (Line(points={{-8,-12},{8,-12},{8,0},{30, + 0},{30,18}}, color={0,0,127})); + connect(PIDWitInpGai.u_m, PID.u_m) annotation (Line(points={{30,-32},{30, + -40},{8,-40},{8,0},{30,0},{30,18}}, color={0,0,127})); + connect(k.y, PIDWitInpGai.k) annotation (Line(points={{-58,10},{-40,10},{ + -40,4},{12,4},{12,-12},{18,-12}}, color={0,0,127})); + connect(PIDWitInpGai.Ti, Ti.y) annotation (Line(points={{18,-16},{2,-16}, + {2,-30},{-58,-30}}, color={0,0,127})); + connect(PIDWitInpGai.Td, Td.y) annotation (Line(points={{18,-24},{14,-24}, + {14,-70},{-58,-70}}, color={0,0,127})); + connect(PID.y, sub.u1) + annotation (Line(points={{42,30},{50,30},{50,6},{78,6}}, color={0,0,127})); + connect(PIDWitInpGai.y, sub.u2) annotation (Line(points={{42,-20},{50,-20},{50, + -6},{78,-6}}, color={0,0,127})); + connect(sub.y, abs1.u) + annotation (Line(points={{102,0},{108,0}}, color={0,0,127})); + connect(abs1.y, lesThr.u) + annotation (Line(points={{132,0},{138,0}}, color={0,0,127})); + connect(modTim.y, greThr.u) + annotation (Line(points={{102,50},{138,50}}, color={0,0,127})); + connect(greThr.y, or2.u1) annotation (Line(points={{162,50},{166,50},{166,30}, + {168,30}}, color={255,0,255})); + connect(lesThr.y, or2.u2) annotation (Line(points={{162,0},{166,0},{166,22},{168, + 22}}, color={255,0,255})); + connect(or2.y, assMes.u) + annotation (Line(points={{192,30},{198,30}}, color={255,0,255})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/PIDWithInputGains.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +IBPSA.Controls.OBC.Utilities.PIDWithInputGains. +

+

+For t ∈ [0, 0.6] both PID controllers have the same gains. +During this time, they generate the same output. +Afterwards, the gains, and hence also their outputs, differ. + +IBPSA.Controls.OBC.CDL.Reals.PIDWithReset. +

+", + revisions=" + +"), + Icon(coordinateSystem(extent={{-100,-100},{100,100}}), + 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(extent={{-100,-100},{240,100}}), graphics={ + Rectangle( + extent={{72,80},{228,-20}}, + fillColor={215,215,215}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), Text( + extent={{78,78},{168,68}}, + textColor={0,0,0}, + textString="Trigger an assertion if outputs differ more than threshold")})); +end PIDWithInputGains; diff --git a/IBPSA/Controls/OBC/Utilities/Validation/package.mo b/IBPSA/Controls/OBC/Utilities/Validation/package.mo new file mode 100644 index 0000000000..ba55bfe58d --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/Validation/package.mo @@ -0,0 +1,31 @@ +within IBPSA.Controls.OBC.Utilities; +package Validation "Collection of validation models" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains validation models for blocks in +IBPSA.Controls.OBC.Utilities. +

+"), + 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}})})); +end Validation; diff --git a/IBPSA/Controls/OBC/Utilities/Validation/package.order b/IBPSA/Controls/OBC/Utilities/Validation/package.order new file mode 100644 index 0000000000..8aae0d17d7 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/Validation/package.order @@ -0,0 +1,6 @@ +OptimalStartCoolingNegativeStartTime +OptimalStartCoolingPositiveStartTime +OptimalStartHeating +OptimalStartHeatingCooling +OptimalStartNoHeatingNoCooling +PIDWithInputGains diff --git a/IBPSA/Controls/OBC/Utilities/package.mo b/IBPSA/Controls/OBC/Utilities/package.mo new file mode 100644 index 0000000000..04e39c63be --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/package.mo @@ -0,0 +1,37 @@ +within IBPSA.Controls.OBC; +package Utilities "Package with utility functions" + annotation ( + preferredView="info", + Documentation( + info=" +

+This package contains utility blocks, base classes and validation models for +the OpenBuildingControl (OBC) library. +

+"), + 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={1.3835,-4.1418}, + rotation=45.0, + fillColor={64,64,64}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-15.0,93.333},{-15.0,68.333},{0.0,58.333},{15.0,68.333},{15.0,93.333},{20.0,93.333},{25.0,83.333},{25.0,58.333},{10.0,43.333},{10.0,-41.667},{25.0,-56.667},{25.0,-76.667},{10.0,-91.667},{0.0,-91.667},{0.0,-81.667},{5.0,-81.667},{15.0,-71.667},{15.0,-61.667},{5.0,-51.667},{-5.0,-51.667},{-15.0,-61.667},{-15.0,-71.667},{-5.0,-81.667},{0.0,-81.667},{0.0,-91.667},{-10.0,-91.667},{-25.0,-76.667},{-25.0,-56.667},{-10.0,-41.667},{-10.0,43.333},{-25.0,58.333},{-25.0,83.333},{-20.0,93.333}}), + Polygon( + origin={10.1018,5.218}, + rotation=-45.0, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + points={{-15.0,87.273},{15.0,87.273},{20.0,82.273},{20.0,27.273},{10.0,17.273},{10.0,7.273},{20.0,2.273},{20.0,-2.727},{5.0,-2.727},{5.0,-77.727},{10.0,-87.727},{5.0,-112.727},{-5.0,-112.727},{-10.0,-87.727},{-5.0,-77.727},{-5.0,-2.727},{-20.0,-2.727},{-20.0,2.273},{-10.0,7.273},{-10.0,17.273},{-20.0,27.273},{-20.0,82.273}})})); +end Utilities; diff --git a/IBPSA/Controls/OBC/Utilities/package.order b/IBPSA/Controls/OBC/Utilities/package.order new file mode 100644 index 0000000000..b77eda1478 --- /dev/null +++ b/IBPSA/Controls/OBC/Utilities/package.order @@ -0,0 +1,5 @@ +OptimalStart +PIDWithInputGains +SetPoints +Validation +BaseClasses diff --git a/IBPSA/Controls/OBC/package.mo b/IBPSA/Controls/OBC/package.mo new file mode 100644 index 0000000000..1cd951554e --- /dev/null +++ b/IBPSA/Controls/OBC/package.mo @@ -0,0 +1,28 @@ +within IBPSA.Controls; +package OBC "Blocks and preconfigured control sequences" + extends Modelica.Icons.Package; + +annotation ( +Documentation(info=" +

+Package that contains a library of elementary control blocks +based on ASHRAE Standard 231P, +and libraries for building control sequences. +

+

+These implementations have been developed +through the OpenBuildingControl (obc.lbl.gov) project +that develops a process and tools for the +performance evaluation, specification and verification +of building control sequences. +

+

+For a tutorial for how to implement control sequences using the +Control Description Language (CDL), see + +IBPSA.Examples.Tutorial.CDL. +

+"), +Icon(graphics={Bitmap(extent={{-92,-98},{104,96}}, +fileName="modelica://IBPSA/Resources/Images/Controls/OBC/OBC_logo-only_150dpi.png")})); +end OBC; diff --git a/IBPSA/Controls/OBC/package.order b/IBPSA/Controls/OBC/package.order new file mode 100644 index 0000000000..9274f7c5a3 --- /dev/null +++ b/IBPSA/Controls/OBC/package.order @@ -0,0 +1,3 @@ +UsersGuide +CDL +Utilities diff --git a/IBPSA/Controls/package.order b/IBPSA/Controls/package.order index 39c754ac6a..8b5fdf3505 100644 --- a/IBPSA/Controls/package.order +++ b/IBPSA/Controls/package.order @@ -1,3 +1,4 @@ Continuous Discrete +OBC SetPoints diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Integers/Sources/Constant.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Integers/Sources/Constant.png new file mode 100644 index 0000000000..309e8ad4e4 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Integers/Sources/Constant.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Integers/Sources/Pulse.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Integers/Sources/Pulse.png new file mode 100644 index 0000000000..84526dbdde Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Integers/Sources/Pulse.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Integers/Sources/Pulse.svg b/IBPSA/Resources/Images/Controls/OBC/CDL/Integers/Sources/Pulse.svg new file mode 100644 index 0000000000..bd62064c51 --- /dev/null +++ b/IBPSA/Resources/Images/Controls/OBC/CDL/Integers/Sources/Pulse.svg @@ -0,0 +1,429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + offset + 0 + time + amplitude + width + period + y + + + + shift + + diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Constant.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Constant.png new file mode 100644 index 0000000000..ec036582ad Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Constant.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Latch.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Latch.png new file mode 100644 index 0000000000..dac872a78f Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Latch.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Latch.svg b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Latch.svg new file mode 100644 index 0000000000..12c81e8c61 --- /dev/null +++ b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Latch.svg @@ -0,0 +1,2678 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + At same moments, latch input rises (falls), clear input rises (falls) + At same moments, latch input falls (rises), clear input rises (falls) + + + + + + + + + + + + + + + + + + + + + 0 + + 4 + + 8 + + false + + true + + false + + true + + false + + true + + + + falCleTruIni.u + falCleTruIni.clr + falCleTruIni.y + + + + + + + + + + + + + + + + + + + + + 0 + + 4 + + 8 + + false + + true + + false + + true + + false + + true + + + + falCleFalIni.u + falCleFalIni.clr + falCleFalIni.y + + + + + + + + + + + + + + + + + + + + + 0 + + 4 + + 8 + + false + + true + + false + + true + + false + + true + + + + truCleTruIni.u + truCleTruIni.clr + truCleTruIni.y + + + + + + + + + + + + + + + + + + + + + 0 + + 4 + + 8 + + false + + true + + false + + true + + false + + true + + + + truCleFalIni.u + truCleFalIni.clr + truCleFalIni.y + + + + + + + + + + + + + + + + + + + + + 0 + + 4 + + 8 + + false + + true + + false + + true + + false + + true + + + + swiCleInp.u + swiCleInp.clr + swiCleInp.y + + + + + + + + + + + + + + + + + + + + + 0 + + 4 + + 8 + + false + + true + + false + + true + + false + + true + + + + swiCleInp1.u + swiCleInp1.clr + swiCleInp1.y + clear input: false +initial latch input: true + clear input: false +initial latch input: false + clear input: true +initial latch input: true + clear input: true +initial latch input: false + + + + + diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Sources/Pulse.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Sources/Pulse.png new file mode 100644 index 0000000000..2530f61c4b Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Sources/Pulse.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Sources/Pulse.svg b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Sources/Pulse.svg new file mode 100644 index 0000000000..8d115bbbd9 --- /dev/null +++ b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Sources/Pulse.svg @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + 0 + time + width + period + y + true + + + + shift + + diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Sources/SampleTrigger.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Sources/SampleTrigger.png new file mode 100644 index 0000000000..339a13706d Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Sources/SampleTrigger.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Sources/SampleTrigger.svg b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Sources/SampleTrigger.svg new file mode 100644 index 0000000000..306f78695d --- /dev/null +++ b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Sources/SampleTrigger.svg @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + true + false + 0 + time + period + y + + shift + + diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Toggle.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Toggle.png new file mode 100644 index 0000000000..4393734965 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Toggle.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Toggle.svg b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Toggle.svg new file mode 100644 index 0000000000..a06875da33 --- /dev/null +++ b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/Toggle.svg @@ -0,0 +1,2840 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + At same moments, latch input rises (falls), clear input rises (falls) + At same moments, latch input falls (rises), clear input rises (falls) + clear input: false +initial latch input: true + clear input: false +initial latch input: false + clear input: true +initial latch input: true + clear input: true +initial latch input: false + + + + + + + + + + + + + + + + + + + + + 0 + + 4 + + 8 + + false + + true + + false + + true + + false + + true + + + + falCleTruIni.u + falCleTruIni.clr + falCleTruIni.y + + + + + + + + + + + + + + + + + + + + + 0 + + 4 + + 8 + + false + + true + + false + + true + + false + + true + + + + falCleFalIni.u + falCleFalIni.clr + falCleFalIni.y + + + + + + + + + + + + + + + + + + + + + 0 + + 4 + + 8 + + false + + true + + false + + true + + false + + true + + + + truCleTruIni.u + truCleTruIni.clr + truCleTruIni.y + + + + + + + + + + + + + + + + + + + + + 0 + + 4 + + 8 + + false + + true + + false + + true + + false + + true + + + + truCleFalIni.u + truCleFalIni.clr + truCleFalIni.y + + + + + + + + + + + + + + + + + + + + + 0 + + 4 + + 8 + + false + + true + + false + + true + + false + + true + + + + swiCleInp.u + swiCleInp.clr + swiCleInp.y + + + + + + + + + + + + + + + + + + + + + 0 + + 4 + + 8 + + false + + true + + false + + true + + false + + true + + + + swiCleInp1.u + swiCleInp1.clr + swiCleInp1.y + + + + + diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/TrueDelay1.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/TrueDelay1.png new file mode 100644 index 0000000000..217bfedf46 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/TrueDelay1.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/TrueDelay2.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/TrueDelay2.png new file mode 100644 index 0000000000..114951adb2 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/TrueDelay2.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/TrueFalseHold.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/TrueFalseHold.png new file mode 100644 index 0000000000..10084130c6 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/TrueFalseHold.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/VariablePulse.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/VariablePulse.png new file mode 100644 index 0000000000..905efe7235 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/VariablePulse.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/VariablePulse.svg b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/VariablePulse.svg new file mode 100644 index 0000000000..8f35a08214 --- /dev/null +++ b/IBPSA/Resources/Images/Controls/OBC/CDL/Logical/VariablePulse.svg @@ -0,0 +1,517 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + time + period + y + true + + + + + + + + + y + + + + + + + + + + + 0 + 0.75 + + u + 0 + time + + + + u + + diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Psychrometrics/Media/Water/plotCp.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Psychrometrics/Media/Water/plotCp.png new file mode 100644 index 0000000000..da4b698395 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Psychrometrics/Media/Water/plotCp.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Acos.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Acos.png new file mode 100644 index 0000000000..5690321400 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Acos.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Asin.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Asin.png new file mode 100644 index 0000000000..a10340dfa5 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Asin.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Atan.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Atan.png new file mode 100644 index 0000000000..61fbea59bb Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Atan.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Atan2.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Atan2.png new file mode 100644 index 0000000000..b2f8f29e0e Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Atan2.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Constant.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Constant.png new file mode 100644 index 0000000000..37d29d3d1b Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Constant.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Cos.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Cos.png new file mode 100644 index 0000000000..4e1fb26b95 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Cos.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Exp.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Exp.png new file mode 100644 index 0000000000..c1123f4ffb Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Exp.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Hysteresis.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Hysteresis.png new file mode 100644 index 0000000000..efc8cd7b28 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Hysteresis.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Hysteresis.svg b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Hysteresis.svg new file mode 100644 index 0000000000..4541cfc8fe --- /dev/null +++ b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Hysteresis.svg @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + uLow + uHigh + + true + false + u + y + + diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/HysteresisWithHold.svg b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/HysteresisWithHold.svg new file mode 100644 index 0000000000..8d70b69e60 --- /dev/null +++ b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/HysteresisWithHold.svg @@ -0,0 +1,1290 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + 200 + + 400 + + 600 + + 800 + + 1000 + + 1200 + + 1400 + + 1600 + + 1800 + + + + + + + + + + + + -0.4 + + -0.2 + + 0.0 + + 0.2 + + 0.4 + + 0.6 + + 0.8 + + 1.0 + + 1.2 + + + offHold_300s.u + + offHold_300s.y + + offHold_300s.uLow + + offHold_300s.uHigh + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + 200 + + 400 + + 600 + + 800 + + 1000 + + 1200 + + 1400 + + 1600 + + 1800 + + + + + + + + + + + + -0.4 + + -0.2 + + 0.0 + + 0.2 + + 0.4 + + 0.6 + + 0.8 + + 1.0 + + 1.2 + + + onHold_150s.u + + onHold_150s.y + + onHold_150s.uLow + + onHold_150s.uHigh + + + + + + + + Instants when y should be true, but is kept false due to the offHold. + + + + + + + + + Instants when y should be false, but is kept true due to the onHold. + diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Log.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Log.png new file mode 100644 index 0000000000..2595d274d5 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Log.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Log10.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Log10.png new file mode 100644 index 0000000000..3d2e6fffb3 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Log10.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sin.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sin.png new file mode 100644 index 0000000000..fd4e405885 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sin.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Pulse.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Pulse.png new file mode 100644 index 0000000000..84526dbdde Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Pulse.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Pulse.svg b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Pulse.svg new file mode 100644 index 0000000000..bd62064c51 --- /dev/null +++ b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Pulse.svg @@ -0,0 +1,429 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + offset + 0 + time + amplitude + width + period + y + + + + shift + + diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Ramp.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Ramp.png new file mode 100644 index 0000000000..9cdfd8e495 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Ramp.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Ramp.svg b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Ramp.svg new file mode 100644 index 0000000000..3534d09ee0 --- /dev/null +++ b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Ramp.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + height + duration + offset + startTime + time + y + + diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Sin.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Sin.png new file mode 100644 index 0000000000..5f5d35c987 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Sources/Sin.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Tan.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Tan.png new file mode 100644 index 0000000000..85f7a3a678 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/Tan.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/int.pdf b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/int.pdf new file mode 100644 index 0000000000..478045c764 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/int.pdf differ diff --git a/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/int.png b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/int.png new file mode 100644 index 0000000000..ba1510708c Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/CDL/Reals/int.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/OBC_logo-only_150dpi.png b/IBPSA/Resources/Images/Controls/OBC/OBC_logo-only_150dpi.png new file mode 100644 index 0000000000..b1dc7d8956 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/OBC_logo-only_150dpi.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/OBC_stacked_150dpi_small.png b/IBPSA/Resources/Images/Controls/OBC/OBC_stacked_150dpi_small.png new file mode 100644 index 0000000000..cee6183b47 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/OBC_stacked_150dpi_small.png differ diff --git a/IBPSA/Resources/Images/Controls/OBC/Utilities/SetPoints/SupplyReturnTemperatureReset.png b/IBPSA/Resources/Images/Controls/OBC/Utilities/SetPoints/SupplyReturnTemperatureReset.png new file mode 100644 index 0000000000..102f675b80 Binary files /dev/null and b/IBPSA/Resources/Images/Controls/OBC/Utilities/SetPoints/SupplyReturnTemperatureReset.png differ diff --git a/IBPSA/Resources/Images/OBC/OBC_logo-only_150dpi.png b/IBPSA/Resources/Images/OBC/OBC_logo-only_150dpi.png new file mode 100644 index 0000000000..b1dc7d8956 Binary files /dev/null and b/IBPSA/Resources/Images/OBC/OBC_logo-only_150dpi.png differ diff --git a/IBPSA/Resources/Images/OBC/OBC_stacked_150dpi_small.png b/IBPSA/Resources/Images/OBC/OBC_stacked_150dpi_small.png new file mode 100644 index 0000000000..cee6183b47 Binary files /dev/null and b/IBPSA/Resources/Images/OBC/OBC_stacked_150dpi_small.png differ diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Conversions_Validation_BooleanToInteger.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Conversions_Validation_BooleanToInteger.txt new file mode 100644 index 0000000000..fc2e202fb1 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Conversions_Validation_BooleanToInteger.txt @@ -0,0 +1,10 @@ +last-generated=2018-06-26 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +booToInt.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +time=[0e+00, 4e+00] +booToInt.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Conversions_Validation_BooleanToReal.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Conversions_Validation_BooleanToReal.txt new file mode 100644 index 0000000000..2d2c1d84b7 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Conversions_Validation_BooleanToReal.txt @@ -0,0 +1,10 @@ +last-generated=2018-06-26 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +booToRea.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +time=[0e+00, 4e+00] +booToRea.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Conversions_Validation_IntegerToReal.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Conversions_Validation_IntegerToReal.txt new file mode 100644 index 0000000000..0b44b99cc5 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Conversions_Validation_IntegerToReal.txt @@ -0,0 +1,10 @@ +last-generated=2017-09-14 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +intToRea.u=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -5.006780019356505e-06, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +time=[0e+00, 1e+00] +intToRea.y=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -5.006780019356505e-06, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Conversions_Validation_RealToInteger.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Conversions_Validation_RealToInteger.txt new file mode 100644 index 0000000000..f84307855e --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Conversions_Validation_RealToInteger.txt @@ -0,0 +1,10 @@ +last-generated=2017-04-06 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +reaToInt.u=[-3.5e+00, -3.430000065192561e+00, -3.359999891966595e+00, -3.289999957159187e+00, -3.22000002235177e+00, -3.150000100582814e+00, -3.079999914318365e+00, -3.009999992549414e+00, -2.940000044703563e+00, -2.869999910593299e+00, -2.79999996274703e+00, -2.730000014901188e+00, -2.660000067055026e+00, -2.589999880790923e+00, -2.519999985098812e+00, -2.450000089406701e+00, -2.380000089406701e+00, -2.309999955296437e+00, -2.240000059604325e+00, -2.170000059604467e+00, -2.099999925494416e+00, -2.029999925494487e+00, -1.960000029802305e+00, -1.890000014901223e+00, -1.820000014901081e+00, -1.75e+00, -1.679999880791137e+00, -1.610000089406487e+00, -1.539999970197695e+00, -1.469999970197553e+00, -1.400000059604823e+00, -1.330000059604538e+00, -1.259999940395675e+00, -1.190000149011026e+00, -1.120000029802162e+00, -1.049999910593299e+00, -9.800001192090765e-01, -9.100000596045738e-01, -8.399999403954262e-01, -7.699998807909235e-01, -7.000000298022334e-01, -6.29999970197731e-01, -5.599999105932283e-01, -4.900000596044956e-01, -4.199999701977131e-01, -3.499999105932104e-01, -2.800000596045203e-01, -2.099999850988568e-01, -1.39999925494354e-01, -7.000006705508333e-02, 0e+00, 7.000006705408858e-02, 1.400001341081772e-01, 2.100001937118983e-01, 2.799998509909462e-01, 3.499999105944542e-01, 4.199999701974648e-01, 4.900000596034507e-01, 5.600001192072998e-01, 6.300001788108077e-01, 6.999998211889077e-01, 7.699998807924157e-01, 8.399999403959236e-01, 9.100000596040764e-01, 9.800001192075843e-01, 1.050000119207158e+00, 1.119999821188411e+00, 1.189999940396848e+00, 1.259999940396421e+00, 1.330000059604787e+00, 1.400000059603579e+00, 1.470000178810737e+00, 1.539999761585684e+00, 1.609999880792416e+00, 1.679999880792131e+00, 1.75e+00, 1.820000119207869e+00, 1.890000119207584e+00, 1.960000238414316e+00, 2.029999821189263e+00, 2.099999821187842e+00, 2.170000059604219e+00, 2.240000059603579e+00, 2.310000059602157e+00, 2.380000298019316e+00, 2.449999880794263e+00, 2.519999880792842e+00, 2.589999880791421e+00, 2.660000119208579e+00, 2.730000119207158e+00, 2.800000119205737e+00, 2.869999701980684e+00, 2.939999940397843e+00, 3.009999940396421e+00, 3.079999940395781e+00, 3.150000178812158e+00, 3.220000178810737e+00, 3.289999761585684e+00, 3.359999761584263e+00, 3.430000000000284e+00, 3.5e+00] +reaToInt.y=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -5.006780019356505e-06, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_FirstOrderHold.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_FirstOrderHold.txt new file mode 100644 index 0000000000..84d6736277 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_FirstOrderHold.txt @@ -0,0 +1,10 @@ +last-generated=2017-09-14 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +firOrdHol.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.654508006550342e-01, 9.309017021001379e-01, 8.963525439407923e-01, 8.61803393903822e-01, 8.272542357444763e-01, 7.927050857075059e-01, 7.581559790304299e-01, 7.236068289934239e-01, 6.890576193518444e-01, 6.545085722790579e-01, 6.199593626377979e-01, 5.854102126008275e-01, 5.508611059237515e-01, 5.163118962821363e-01, 4.81762746245166e-01, 4.472136693701992e-01, 4.126644895310485e-01, 3.781153096918267e-01, 3.435661000504246e-01, 3.090170231754578e-01, 2.531153061741589e-01, 1.972135466435526e-01, 1.413119537126491e-01, 8.541020163260561e-02, 2.950845141520063e-02, -2.639313406513727e-02, -8.229488800783058e-02, -1.381966326373023e-01, -1.940982255682059e-01, -2.499999701976776e-01, -3.059017297275162e-01, -3.618034892573547e-01, -4.17705248786767e-01, -4.736066453202155e-01, -5.295084048500541e-01, -5.854101643794954e-01, -6.413119239097306e-01, -6.972136834395691e-01, -7.531154429694077e-01, -8.090168097001076e-01, -8.090169429779053e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -7.53115369296652e-01, -6.972136097664169e-01, -6.413118502365783e-01, -5.854100907067398e-01, -5.295086643713951e-01, -4.736069346438789e-01, -4.177051751140404e-01, -3.618034155842018e-01, -3.059016858566856e-01, -2.499999263268471e-01, -1.940985148924682e-01, -1.381967553628251e-01, -8.229501073412107e-02, -2.639325679185135e-02, 2.950849342434539e-02, 8.541024550362555e-02, 1.413116643883896e-01, 1.97213409017067e-01, 2.531151536458154e-01, 3.090169131755829e-01] +firOrdHol.u=[1e+00, 9.980267285330768e-01, 9.92114722359185e-01, 9.822872272920056e-01, 9.685831651680721e-01, 9.51056541430958e-01, 9.297764865835308e-01, 9.048270591019025e-01, 8.76306707153081e-01, 8.443279385564225e-01, 8.090170080380417e-01, 7.705132341174212e-01, 7.289686086868863e-01, 6.845471043246666e-01, 6.374239950275337e-01, 5.877852741471401e-01, 5.358267832061716e-01, 4.817536869409707e-01, 4.257793533913588e-01, 3.681245604602735e-01, 3.090170203545645e-01, 2.486898648442655e-01, 1.873813346873295e-01, 1.253332904574954e-01, 6.279050918949433e-02, 2.679489696788551e-08, -6.279055046444852e-02, -1.253331379345707e-01, -1.873812750826938e-01, -2.486899108059576e-01, -3.090169014013807e-01, -3.681245008556288e-01, -4.25779293786714e-01, -4.8175357487978e-01, -5.358267236016335e-01, -5.877852741471399e-01, -6.3742386293947e-01, -6.845470447200218e-01, -7.289686406717961e-01, -7.70513293378626e-01, -8.090169207752662e-01, -8.443279385564224e-01, -8.763066922604196e-01, -9.048270389253867e-01, -9.297764951615509e-01, -9.51056503105246e-01, -9.685831532414171e-01, -9.822872294646928e-01, -9.921147307568511e-01, -9.980267244918735e-01, -1e+00, -9.980267244919351e-01, -9.921147069617686e-01, -9.822872529193979e-01, -9.685831993066364e-01, -9.510565627095525e-01, -9.297764951617027e-01, -9.04827038925889e-01, -8.763066615344267e-01, -8.443278970741832e-01, -8.090170898698266e-01, -7.705133529824235e-01, -7.289687002762795e-01, -6.845471043249939e-01, -6.374239821493705e-01, -5.877851818517713e-01, -5.358270004284823e-01, -4.817538283042127e-01, -4.257793831930767e-01, -3.68124620064675e-01, -3.090169908094118e-01, -2.486898336217616e-01, -1.873815631169426e-01, -1.253334279713343e-01, -6.279065477168613e-02, -8.038468735094284e-08, 6.27904983094936e-02, 1.253332640585611e-01, 1.873814141051175e-01, 2.486896697091483e-01, 3.090168417977998e-01, 3.681244710530631e-01, 4.257792639837872e-01, 4.817536792926008e-01, 5.358268812191928e-01, 5.877850626424818e-01, 6.374238629400809e-01, 6.84547044720207e-01, 7.289685810669899e-01, 7.70513233773134e-01, 8.090170302644712e-01, 8.443277778656753e-01, 8.763066019297819e-01, 9.048269793210311e-01, 9.297764355570579e-01, 9.510565031049077e-01, 9.685831397019916e-01, 9.822871933156057e-01, 9.921146473576923e-01, 9.980267244919351e-01, 1e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_Sampler.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_Sampler.txt new file mode 100644 index 0000000000..70da889665 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_Sampler.txt @@ -0,0 +1,10 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +sampler1.u=[0e+00, 6.279052189025491e-02, 1.25333237452147e-01, 1.87381316384595e-01, 2.486898953400241e-01, 3.090169981213527e-01, 3.681245524355013e-01, 4.257792813474344e-01, 4.817536869409441e-01, 5.358267832061716e-01, 5.877852363791168e-01, 6.37423995027516e-01, 6.845471385054688e-01, 7.289686406719382e-01, 7.705132341174212e-01, 8.090169803797332e-01, 8.443279385564225e-01, 8.763066475484895e-01, 9.048270389253867e-01, 9.297764951615509e-01, 9.510564745096004e-01, 9.685831765931435e-01, 9.822872294646928e-01, 9.921147192796552e-01, 9.980267305350982e-01, 1e+00, 9.980267244918735e-01, 9.921147307571708e-01, 9.822872294647284e-01, 9.685831532414171e-01, 9.510565627098908e-01, 9.29776495161622e-01, 9.048270389253867e-01, 8.763067518650643e-01, 8.44327938556529e-01, 8.09016980379911e-01, 7.705133529832707e-01, 7.289687002764409e-01, 6.845471043246666e-01, 6.374239225441147e-01, 5.877853337517847e-01, 5.358268428108165e-01, 4.817536344844248e-01, 4.257793831936812e-01, 3.681245902625959e-01, 3.090169610060254e-01, 2.486899853117014e-01, 1.873813495884997e-01, 1.253332124403766e-01, 6.279063242083509e-02, 5.358979038305733e-08, -6.279052811178046e-02, -1.253332938608835e-01, -1.873814290064919e-01, -2.486896995113108e-01, -3.090168716001222e-01, -3.681244710530986e-01, -4.257792639837872e-01, -4.817537090949232e-01, -5.358268812191928e-01, -5.877850626424818e-01, -6.374238629405072e-01, -6.845470447203491e-01, -7.289685810669899e-01, -7.70513233773134e-01, -8.090170302644712e-01, -8.443277778656753e-01, -8.763066019297819e-01, -9.048269793212442e-01, -9.297764355570579e-01, -9.510565031049077e-01, -9.685831993059969e-01, -9.822871933156057e-01, -9.921146473576923e-01, -9.980267244919351e-01, -1e+00, -9.980267244919351e-01, -9.921147069617686e-01, -9.822872529193979e-01, -9.685831993066364e-01, -9.510565627095525e-01, -9.297764951617027e-01, -9.048270985303206e-01, -8.763066615349241e-01, -8.443278970749648e-01, -8.090171494737608e-01, -7.705133529824235e-01, -7.289687002762795e-01, -6.845471639296387e-01, -6.374239821497968e-01, -5.877851818517713e-01, -5.358270004284823e-01, -4.817538581065351e-01, -4.257794129953991e-01, -3.681246200647105e-01, -3.090170206117341e-01, -2.486898634240839e-01, -1.87381592919265e-01, -1.253334577736566e-01, -6.279068457400852e-02, -1.07179587871542e-07] +sampler1.y=[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, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_TriggeredMax.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_TriggeredMax.txt new file mode 100644 index 0000000000..68e098daf7 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_TriggeredMax.txt @@ -0,0 +1,11 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +triggeredMax.y=[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, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01, 9.510565400123596e-01] +triggeredMax.u=[0e+00, 6.279052189025491e-02, 1.25333237452147e-01, 1.87381316384595e-01, 2.486898953400241e-01, 3.090169981213527e-01, 3.681245524355013e-01, 4.257792813474344e-01, 4.817536869409441e-01, 5.358267832061716e-01, 5.877852363791168e-01, 6.37423995027516e-01, 6.845471385054688e-01, 7.289686406719382e-01, 7.705132341174212e-01, 8.090169803797332e-01, 8.443279385564225e-01, 8.763066475484895e-01, 9.048270389253867e-01, 9.297764951615509e-01, 9.510564745096004e-01, 9.685831765931435e-01, 9.822872294646928e-01, 9.921147192796552e-01, 9.980267305350982e-01, 1e+00, 9.980267244918735e-01, 9.921147307571708e-01, 9.822872294647284e-01, 9.685831532414171e-01, 9.510565627098908e-01, 9.29776495161622e-01, 9.048270389253867e-01, 8.763067518650643e-01, 8.44327938556529e-01, 8.09016980379911e-01, 7.705133529832707e-01, 7.289687002764409e-01, 6.845471043246666e-01, 6.374239225441147e-01, 5.877853337517847e-01, 5.358268428108165e-01, 4.817536344844248e-01, 4.257793831936812e-01, 3.681245902625959e-01, 3.090169610060254e-01, 2.486899853117014e-01, 1.873813495884997e-01, 1.253332124403766e-01, 6.279063242083509e-02, 5.358979393577101e-08, -6.279052811178046e-02, -1.253332938608835e-01, -1.873814290064919e-01, -2.486896995113108e-01, -3.090168716001222e-01, -3.681244710530986e-01, -4.257792639837872e-01, -4.817537090949232e-01, -5.358268812191928e-01, -5.877850626424818e-01, -6.374238629405072e-01, -6.845470447203491e-01, -7.289685810669899e-01, -7.70513233773134e-01, -8.090170302644712e-01, -8.443277778656753e-01, -8.763066019297819e-01, -9.048269793212442e-01, -9.297764355570579e-01, -9.510565031049077e-01, -9.685831993059969e-01, -9.822871933156057e-01, -9.921146473576923e-01, -9.980267244919351e-01, -1e+00, -9.980267244919351e-01, -9.921147069617686e-01, -9.822872529193979e-01, -9.685831993066364e-01, -9.510565627095525e-01, -9.297764951617027e-01, -9.048270985303206e-01, -8.763066615349241e-01, -8.443278970749648e-01, -8.090171494737608e-01, -7.705133529824235e-01, -7.289687002762795e-01, -6.845471639296387e-01, -6.374239821497968e-01, -5.877851818517713e-01, -5.358270004284823e-01, -4.817538581065351e-01, -4.257794129953991e-01, -3.681246200647105e-01, -3.090170206117341e-01, -2.486898634240839e-01, -1.87381592919265e-01, -1.253334577736566e-01, -6.279068457400852e-02, -1.07179587871542e-07] +time=[0e+00, 1e+00] +triggeredMax.trigger=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_TriggeredMovingMean.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_TriggeredMovingMean.txt new file mode 100644 index 0000000000..9c91fe06e9 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_TriggeredMovingMean.txt @@ -0,0 +1,14 @@ +last-generated=2019-11-07 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +triMovMea1.y=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 9.659258127212524e-01, 9.659258127212524e-01, 9.659258127212524e-01, 9.659258127212524e-01, 9.659258127212524e-01, 9.659258127212524e-01, 8.660253882408142e-01, 8.660253882408142e-01, 8.660253882408142e-01, 8.660253882408142e-01, 8.660253882408142e-01, 8.660253882408142e-01, 8.660253882408142e-01, 2.58819043636322e-01, 2.58819043636322e-01, 2.58819043636322e-01, 2.58819043636322e-01, 2.58819043636322e-01, 2.58819043636322e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -9.659258127212524e-01, -9.659258127212524e-01, -9.659258127212524e-01, -9.659258127212524e-01, -9.659258127212524e-01, -9.659258127212524e-01, -8.660253882408142e-01, -8.660253882408142e-01, -8.660253882408142e-01, -8.660253882408142e-01, -8.660253882408142e-01, -8.660253882408142e-01, -8.660253882408142e-01, -2.58819043636322e-01, -2.58819043636322e-01, -2.58819043636322e-01, -2.58819043636322e-01, -2.58819043636322e-01, -2.58819043636322e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 9.659258127212524e-01, 9.659258127212524e-01, 9.659258127212524e-01, 9.659258127212524e-01, 9.659258127212524e-01, 9.659258127212524e-01, 8.660253882408142e-01, 8.660253882408142e-01, 8.660253882408142e-01, 8.660253882408142e-01, 8.660253882408142e-01, 8.660253882408142e-01, 2.588329411686482e-01, 2.58819043636322e-01, 2.58819043636322e-01, 2.58819043636322e-01, 2.58819043636322e-01, 2.58819043636322e-01, 2.58819043636322e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -9.659151487697784e-01, -9.659258127212524e-01, -9.659258127212524e-01, -9.659258127212524e-01, -9.659258127212524e-01, -9.659258127212524e-01, -9.659258127212524e-01, -8.660253882408142e-01, -8.660253882408142e-01, -8.660253882408142e-01, -8.660253882408142e-01, -8.660253882408142e-01, -8.660253882408142e-01, -2.58819043636322e-01, -2.58819043636322e-01, -2.58819043636322e-01, -2.58819043636322e-01] +triMovMea.u=[5e-01, 6.014664761625028e-01, 6.940303431224256e-01, 7.763215304147594e-01, 8.471218954572036e-01, 9.053836444491157e-01, 9.502442460986447e-01, 9.81039825166185e-01, 9.973144524855669e-01, 9.988273373113585e-01, 9.855560592452735e-01, 9.576970431879718e-01, 9.156625910792943e-01, 8.600749314947155e-01, 7.917568474510011e-01, 7.11719658129379e-01, 6.211477634337024e-01, 5.213820273864654e-01, 4.138989770374305e-01, 3.002895806922236e-01, 1.822354502526237e-01, 6.148414336605637e-02, -6.017741160777051e-02, -1.809482429551963e-01, -2.990407728508002e-01, -4.127070307731628e-01, -5.202645849902316e-01, -6.201214543432193e-01, -7.107995024713668e-01, -7.909566712565899e-01, -8.59406372571603e-01, -9.151357344746229e-01, -9.573194890543621e-01, -9.853335904124509e-01, -9.987631445789033e-01, -9.97409471884688e-01, -9.812926527540375e-01, -9.506512597456115e-01, -9.059385797843665e-01, -8.478167964622497e-01, -7.771458861072825e-01, -6.949721681218675e-01, -6.025119066129268e-01, -5.011331773993932e-01, -3.923372369748858e-01, -2.777337604438136e-01, -1.590197822870765e-01, -3.795167372273422e-02, 8.367779838870022e-02, 2.040690749453934e-01, 3.214394748210907e-01, 4.340520498189372e-01, 5.402403849040974e-01, 6.384319327476536e-01, 7.271740449482663e-01, 8.051528293793221e-01, 8.712136735627454e-01, 9.243796350130378e-01, 9.63863360403877e-01, 9.890801929538597e-01, 9.996573271530925e-01, 9.954379136508218e-01, 9.764844757927637e-01, 9.430777104161433e-01, 8.957118055813571e-01, 8.35087871074764e-01, 7.621033811027919e-01, 6.778390522139012e-01, 5.835411899253222e-01, 4.806059569398766e-01, 3.70557704302947e-01, 2.550239537545757e-01, 1.357154551069016e-01, 1.439813910256098e-02, -1.071315480732013e-01, -2.270762622356415e-01, -3.436598950159814e-01, -4.551561502577352e-01, -5.599160385472161e-01, -6.563883498595448e-01, -7.431450079442803e-01, -8.189015777244697e-01, -8.825375293645313e-01, -9.331105977372743e-01, -9.698719075143097e-01, -9.922778998577637e-01, -9.99996601962562e-01, -9.92913689373696e-01, -9.711343661248995e-01, -9.349805322352361e-01, -8.849875809445433e-01, -8.21895331384541e-01, -7.466382967631414e-01, -6.60329378754925e-01, -5.642465146045756e-01, -4.598126372729628e-01, -3.485721294190688e-01, -2.32172223260452e-01, -1.123357861520096e-01, 9.162640961086186e-03, 1.305261850357056e-01] +triMovMea.y=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 7.329629063606262e-01, 7.329629063606262e-01, 7.329629063606262e-01, 7.329629063606262e-01, 7.329629063606262e-01, 7.329629063606262e-01, 7.773170471191406e-01, 7.773170471191406e-01, 7.773170471191406e-01, 7.773170471191406e-01, 7.773170471191406e-01, 7.773170471191406e-01, 7.773170471191406e-01, 6.969234347343445e-01, 6.969234347343445e-01, 6.969234347343445e-01, 6.969234347343445e-01, 6.969234347343445e-01, 6.969234347343445e-01, 2.082814872264862e-01, 2.082814872264862e-01, 2.082814872264862e-01, 2.082814872264862e-01, 2.082814872264862e-01, 2.082814872264862e-01, 2.082814872264862e-01, -4.023689329624176e-01, -4.023689329624176e-01, -4.023689329624176e-01, -4.023689329624176e-01, -4.023689329624176e-01, -4.023689329624176e-01, -7.773170471191406e-01, -7.773170471191406e-01, -7.773170471191406e-01, -7.773170471191406e-01, -7.773170471191406e-01, -7.773170471191406e-01, -7.773170471191406e-01, -6.969234347343445e-01, -6.969234347343445e-01, -6.969234347343445e-01, -6.969234347343445e-01, -6.969234347343445e-01, -6.969234347343445e-01, -2.082814872264862e-01, -2.082814872264862e-01, -2.082814872264862e-01, -2.082814872264862e-01, -2.082814872264862e-01, -2.082814872264862e-01, -2.082814872264862e-01, 4.023689329624176e-01, 4.023689329624176e-01, 4.023689329624176e-01, 4.023689329624176e-01, 4.023689329624176e-01, 4.023689329624176e-01, 7.773170471191406e-01, 7.773170471191406e-01, 7.773170471191406e-01, 7.773170471191406e-01, 7.773170471191406e-01, 7.773170471191406e-01, 6.969252747560057e-01, 6.969234347343445e-01, 6.969234347343445e-01, 6.969234347343445e-01, 6.969234347343445e-01, 6.969234347343445e-01, 6.969234347343445e-01, 2.082814872264862e-01, 2.082814872264862e-01, 2.082814872264862e-01, 2.082814872264862e-01, 2.082814872264862e-01, 2.082814872264862e-01, -4.023549566033692e-01, -4.023689329624176e-01, -4.023689329624176e-01, -4.023689329624176e-01, -4.023689329624176e-01, -4.023689329624176e-01, -4.023689329624176e-01, -7.773170471191406e-01, -7.773170471191406e-01, -7.773170471191406e-01, -7.773170471191406e-01, -7.773170471191406e-01, -7.773170471191406e-01, -6.969234347343445e-01, -6.969234347343445e-01, -6.969234347343445e-01, -6.969234347343445e-01] +time=[-5e-01, 1.5e+01] +booPul.y=[1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 2.288765975810847e-05, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 9.999771123400644e-01, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 9.999771123402419e-01, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00] +triMovMea2.y=[5e-01, 5e-01, 5e-01, 5e-01, 6.466766595840454e-01, 6.466766595840454e-01, 6.466766595840454e-01, 6.466766595840454e-01, 6.466766595840454e-01, 6.466766595840454e-01, 7.615994215011597e-01, 7.615994215011597e-01, 7.615994215011597e-01, 7.615994215011597e-01, 7.615994215011597e-01, 7.615994215011597e-01, 7.615994215011597e-01, 7.978532314300537e-01, 7.978532314300537e-01, 7.978532314300537e-01, 7.978532314300537e-01, 7.978532314300537e-01, 7.978532314300537e-01, 4.8989337682724e-01, 4.8989337682724e-01, 4.8989337682724e-01, 4.8989337682724e-01, 4.8989337682724e-01, 4.8989337682724e-01, 4.8989337682724e-01, -1.050393655896187e-01, -1.050393655896187e-01, -1.050393655896187e-01, -1.050393655896187e-01, -1.050393655896187e-01, -1.050393655896187e-01, -6.384414434432983e-01, -6.384414434432983e-01, -6.384414434432983e-01, -6.384414434432983e-01, -6.384414434432983e-01, -6.384414434432983e-01, -7.978495828672888e-01, -7.978532314300537e-01, -7.978532314300537e-01, -7.978532314300537e-01, -7.978532314300537e-01, -7.978532314300537e-01, -7.978532314300537e-01, -4.8989337682724e-01, -4.8989337682724e-01, -4.8989337682724e-01, -4.8989337682724e-01, -4.8989337682724e-01, -4.8989337682724e-01, 1.050393655896187e-01, 1.050393655896187e-01, 1.050393655896187e-01, 1.050393655896187e-01, 1.050393655896187e-01, 1.050393655896187e-01, 1.050393655896187e-01, 6.384414434432983e-01, 6.384414434432983e-01, 6.384414434432983e-01, 6.384414434432983e-01, 6.384414434432983e-01, 6.384414434432983e-01, 7.978532314300537e-01, 7.978532314300537e-01, 7.978532314300537e-01, 7.978532314300537e-01, 7.978532314300537e-01, 7.978532314300537e-01, 7.978532314300537e-01, 4.8989337682724e-01, 4.8989337682724e-01, 4.8989337682724e-01, 4.8989337682724e-01, 4.8989337682724e-01, 4.8989337682724e-01, -1.050393655896187e-01, -1.050393655896187e-01, -1.050393655896187e-01, -1.050393655896187e-01, -1.050393655896187e-01, -1.050393655896187e-01, -1.050393655896187e-01, -6.384414434432983e-01, -6.384414434432983e-01, -6.384414434432983e-01, -6.384414434432983e-01, -6.384414434432983e-01, -6.384414434432983e-01, -7.978532314300537e-01, -7.978532314300537e-01, -7.978532314300537e-01, -7.978532314300537e-01, -7.978532314300537e-01, -7.978532314300537e-01, -7.978532314300537e-01] +booPul1.y=[0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 9.999771123402419e-01, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 2.288765993563313e-05, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 2.288765975810847e-05, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_TriggeredSampler.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_TriggeredSampler.txt new file mode 100644 index 0000000000..83be6c844d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_TriggeredSampler.txt @@ -0,0 +1,12 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +booPul.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +sin1.y=[0e+00, 6.279052189025491e-02, 1.25333237452147e-01, 1.87381316384595e-01, 2.486898953400241e-01, 3.090169981213527e-01, 3.681245524355013e-01, 4.257792813474344e-01, 4.817536869409441e-01, 5.358267832061716e-01, 5.877852363791168e-01, 6.37423995027516e-01, 6.845471385054688e-01, 7.289686406719382e-01, 7.705132341174212e-01, 8.090169803797332e-01, 8.443279385564225e-01, 8.763066475484895e-01, 9.048270389253867e-01, 9.297764951615509e-01, 9.510564745096004e-01, 9.685831765931435e-01, 9.822872294646928e-01, 9.921147192796552e-01, 9.980267305350982e-01, 1e+00, 9.980267244918735e-01, 9.921147307571708e-01, 9.822872294647284e-01, 9.685831532414171e-01, 9.510565627098908e-01, 9.29776495161622e-01, 9.048270389253867e-01, 8.763067518650643e-01, 8.44327938556529e-01, 8.09016980379911e-01, 7.705133529832707e-01, 7.289687002764409e-01, 6.845471043246666e-01, 6.374239225441147e-01, 5.877853337517847e-01, 5.358268428108165e-01, 4.817536344844248e-01, 4.257793831936812e-01, 3.681245902625959e-01, 3.090169610060254e-01, 2.486899853117014e-01, 1.873813495884997e-01, 1.253332124403766e-01, 6.279063242083509e-02, 5.358979393577101e-08, -6.279052811178046e-02, -1.253332938608835e-01, -1.873814290064919e-01, -2.486896995113108e-01, -3.090168716001222e-01, -3.681244710530986e-01, -4.257792639837872e-01, -4.817537090949232e-01, -5.358268812191928e-01, -5.877850626424818e-01, -6.374238629405072e-01, -6.845470447203491e-01, -7.289685810669899e-01, -7.70513233773134e-01, -8.090170302644712e-01, -8.443277778656753e-01, -8.763066019297819e-01, -9.048269793212442e-01, -9.297764355570579e-01, -9.510565031049077e-01, -9.685831993059969e-01, -9.822871933156057e-01, -9.921146473576923e-01, -9.980267244919351e-01, -1e+00, -9.980267244919351e-01, -9.921147069617686e-01, -9.822872529193979e-01, -9.685831993066364e-01, -9.510565627095525e-01, -9.297764951617027e-01, -9.048270985303206e-01, -8.763066615349241e-01, -8.443278970749648e-01, -8.090171494737608e-01, -7.705133529824235e-01, -7.289687002762795e-01, -6.845471639296387e-01, -6.374239821497968e-01, -5.877851818517713e-01, -5.358270004284823e-01, -4.817538581065351e-01, -4.257794129953991e-01, -3.681246200647105e-01, -3.090170206117341e-01, -2.486898634240839e-01, -1.87381592919265e-01, -1.253334577736566e-01, -6.279068457400852e-02, -1.07179587871542e-07] +triSam.y=[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, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01] +triSam1.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01, -9.510565400123596e-01] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_UnitDelay.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_UnitDelay.txt new file mode 100644 index 0000000000..aec709f133 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_UnitDelay.txt @@ -0,0 +1,10 @@ +last-generated=2024-08-08 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +unitDelay1.u=[0e+00, 6.279052189025491e-02, 1.25333237452147e-01, 1.87381316384595e-01, 2.486898953400241e-01, 3.090169981213527e-01, 3.681245524355013e-01, 4.257792813474344e-01, 4.817536869409441e-01, 5.358267832061716e-01, 5.877852363791168e-01, 6.37423995027516e-01, 6.845471385054688e-01, 7.289686406719382e-01, 7.705132341174212e-01, 8.090169803797332e-01, 8.443279385564225e-01, 8.763066475484895e-01, 9.048270389253867e-01, 9.297764951615509e-01, 9.510564745096004e-01, 9.685831765931435e-01, 9.822872294646928e-01, 9.921147192796552e-01, 9.980267305350982e-01, 1e+00, 9.980267244918735e-01, 9.921147307571708e-01, 9.822872294647284e-01, 9.685831532414171e-01, 9.510565627098908e-01, 9.29776495161622e-01, 9.048270389253867e-01, 8.763067518650643e-01, 8.44327938556529e-01, 8.09016980379911e-01, 7.705133529832707e-01, 7.289687002764409e-01, 6.845471043246666e-01, 6.374239225441147e-01, 5.877853337517847e-01, 5.358268428108165e-01, 4.817536344844248e-01, 4.257793831936812e-01, 3.681245902625959e-01, 3.090169610060254e-01, 2.486899853117014e-01, 1.873813495884997e-01, 1.253332124403766e-01, 6.279063242083509e-02, 5.358979393577101e-08, -6.279052811178046e-02, -1.253332938608835e-01, -1.873814290064919e-01, -2.486896995113108e-01, -3.090168716001222e-01, -3.681244710530986e-01, -4.257792639837872e-01, -4.817537090949232e-01, -5.358268812191928e-01, -5.877850626424818e-01, -6.374238629405072e-01, -6.845470447203491e-01, -7.289685810669899e-01, -7.70513233773134e-01, -8.090170302644712e-01, -8.443277778656753e-01, -8.763066019297819e-01, -9.048269793212442e-01, -9.297764355570579e-01, -9.510565031049077e-01, -9.685831993059969e-01, -9.822871933156057e-01, -9.921146473576923e-01, -9.980267244919351e-01, -1e+00, -9.980267244919351e-01, -9.921147069617686e-01, -9.822872529193979e-01, -9.685831993066364e-01, -9.510565627095525e-01, -9.297764951617027e-01, -9.048270985303206e-01, -8.763066615349241e-01, -8.443278970749648e-01, -8.090171494737608e-01, -7.705133529824235e-01, -7.289687002762795e-01, -6.845471639296387e-01, -6.374239821497968e-01, -5.877851818517713e-01, -5.358270004284823e-01, -4.817538581065351e-01, -4.257794129953991e-01, -3.681246200647105e-01, -3.090170206117341e-01, -2.486898634240839e-01, -1.87381592919265e-01, -1.253334577736566e-01, -6.279068457400852e-02, -1.07179587871542e-07] +unitDelay1.y=[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, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 9.510564804077148e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, 5.877853035926819e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01, -5.877851843833923e-01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_ZeroOrderHold.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_ZeroOrderHold.txt new file mode 100644 index 0000000000..495ac7086d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Discrete_Validation_ZeroOrderHold.txt @@ -0,0 +1,10 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +zerOrdHol.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, 3.0901700258255e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.090169429779053e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, -8.0901700258255e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01, 3.090169131755829e-01] +zerOrdHol.u=[1e+00, 9.980267285330768e-01, 9.92114722359185e-01, 9.822872272920056e-01, 9.685831651680721e-01, 9.51056541430958e-01, 9.297764865835308e-01, 9.048270591019025e-01, 8.76306707153081e-01, 8.443279385564225e-01, 8.090170080380417e-01, 7.705132341174212e-01, 7.289686086868863e-01, 6.845471043246666e-01, 6.374239950275337e-01, 5.877852741471401e-01, 5.358267832061716e-01, 4.817536869409707e-01, 4.257793533913588e-01, 3.681245604602735e-01, 3.090170203545645e-01, 2.486898648442655e-01, 1.873813346873295e-01, 1.253332904574954e-01, 6.279050918949433e-02, 2.679489519152867e-08, -6.279055046444852e-02, -1.253331379345707e-01, -1.873812750826938e-01, -2.486899108059576e-01, -3.090169014013807e-01, -3.681245008556288e-01, -4.25779293786714e-01, -4.8175357487978e-01, -5.358267236016335e-01, -5.877852741471399e-01, -6.3742386293947e-01, -6.845470447200218e-01, -7.289686406717961e-01, -7.70513293378626e-01, -8.090169207752662e-01, -8.443279385564224e-01, -8.763066922604196e-01, -9.048270389253867e-01, -9.297764951615509e-01, -9.51056503105246e-01, -9.685831532414171e-01, -9.822872294646928e-01, -9.921147307568511e-01, -9.980267244918735e-01, -1e+00, -9.980267244919351e-01, -9.921147069617686e-01, -9.822872529193979e-01, -9.685831993066364e-01, -9.510565627095525e-01, -9.297764951617027e-01, -9.04827038925889e-01, -8.763066615344267e-01, -8.443278970741832e-01, -8.090170898698266e-01, -7.705133529824235e-01, -7.289687002762795e-01, -6.845471043249939e-01, -6.374239821493705e-01, -5.877851818517713e-01, -5.358270004284823e-01, -4.817538283042127e-01, -4.257793831930767e-01, -3.68124620064675e-01, -3.090169908094118e-01, -2.486898336217616e-01, -1.873815631169426e-01, -1.253334279713343e-01, -6.279065477168613e-02, -8.038468735094284e-08, 6.27904983094936e-02, 1.253332640585611e-01, 1.873814141051175e-01, 2.486896697091483e-01, 3.090168417977998e-01, 3.681244710530631e-01, 4.257792639837872e-01, 4.817536792926008e-01, 5.358268812191928e-01, 5.877850626424818e-01, 6.374238629400809e-01, 6.84547044720207e-01, 7.289685810669899e-01, 7.70513233773134e-01, 8.090170302644712e-01, 8.443277778656753e-01, 8.763066019297819e-01, 9.048269793210311e-01, 9.297764355570579e-01, 9.510565031049077e-01, 9.685831397019916e-01, 9.822871933156057e-01, 9.921146473576923e-01, 9.980267244919351e-01, 1e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Sources_Validation_Constant.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Sources_Validation_Constant.txt new file mode 100644 index 0000000000..b7b9df4f2d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Sources_Validation_Constant.txt @@ -0,0 +1,9 @@ +last-generated=2017-07-17 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +con.y=[5e+00, 5e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Sources_Validation_Pulse.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Sources_Validation_Pulse.txt new file mode 100644 index 0000000000..0a4bdb3cc8 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Sources_Validation_Pulse.txt @@ -0,0 +1,12 @@ +last-generated=2020-10-20 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 5e+00] +pul.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +pul1.y=[3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +pul2.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +pul3.y=[4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Sources_Validation_TimeTable.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Sources_Validation_TimeTable.txt new file mode 100644 index 0000000000..8a4eae8219 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Sources_Validation_TimeTable.txt @@ -0,0 +1,13 @@ +last-generated=2020-10-08 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1.5e+01] +intTimTab.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 1.999974569266936e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +intTimTab.y[2]=[4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 1.999961853900403e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00] +intTimTab1.y[1]=[-1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00] +intTimTab1.y[2]=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00] +tabOneRow.y[1]=[-1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Sources_Validation_TimeTableNegativeStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Sources_Validation_TimeTableNegativeStartTime.txt new file mode 100644 index 0000000000..187aaf6ee7 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Sources_Validation_TimeTableNegativeStartTime.txt @@ -0,0 +1,13 @@ +last-generated=2020-10-08 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[-5e+00, 1e+01] +intTimTab.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.000001589452388e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +intTimTab.y[2]=[4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 3.999996821095224e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00] +intTimTab1.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +intTimTab1.y[2]=[4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00] +tabOneRow.y[1]=[-1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Abs.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Abs.txt new file mode 100644 index 0000000000..c8f69ac5ed --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Abs.txt @@ -0,0 +1,10 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +abs1.u=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -5.006780019356505e-06, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +abs1.y=[4e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 5.006780019356505e-06, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Add.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Add.txt new file mode 100644 index 0000000000..c534d2847c --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Add.txt @@ -0,0 +1,11 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +add1.u1=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -5.006780019356505e-06, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +add1.u2=[-1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.999994993219981e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +add1.y=[-5e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2.999989986439961e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 9e+00, 9e+00, 9e+00, 9e+00, 9e+00, 9e+00, 9e+00, 9e+00, 9e+00, 9e+00, 9e+00, 9e+00, 9e+00, 9e+00, 9e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_AddParameter.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_AddParameter.txt new file mode 100644 index 0000000000..c45957d4a3 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_AddParameter.txt @@ -0,0 +1,10 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +addPar.u=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -5.006780019356505e-06, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +addPar.y=[1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4.999994993219981e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Change.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Change.txt new file mode 100644 index 0000000000..e13770f24c --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Change.txt @@ -0,0 +1,19 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +reaToInt.y=[-1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 5.960363559974428e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +cha.u=[-1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 5.960363559974428e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +cha.up=[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, 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] +cha.y=[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, 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] +cha.down=[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, 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] +changeSampler.u=[0e+00, 2.000000074505789e-01, 4.000000149011579e-01, 6.000000372528755e-01, 8.000000298023024e-01, 9.999999850988333e-01, 1.200000074505776e+00, 1.399999970197673e+00, 1.600000059604538e+00, 1.799999880790923e+00, 1.999999970197766e+00, 2.200000059604609e+00, 2.400000149011452e+00, 2.600000000000284e+00, 2.799999940395391e+00, 2.999999880791066e+00, 3.200000119209077e+00, 3.400000059604539e+00, 3.599999761581847e+00, 3.799999999999858e+00, 3.999999940395533e+00, 4.199999940394965e+00, 4.400000119209219e+00, 4.599999821186315e+00, 4.800000298022904e+00, 5e+00, 5.199999999999432e+00, 5.39999988079135e+00, 5.599999880790782e+00, 5.800000357627371e+00, 5.999999761582131e+00, 6.199999761581563e+00, 6.400000238418153e+00, 6.599999642372913e+00, 6.800000119209503e+00, 7.000000119208934e+00, 7.199999523163694e+00, 7.400000000000285e+00, 7.599999999999716e+00, 7.800000476836306e+00, 7.999999880791066e+00, 8.199999880790497e+00, 8.399999880789929e+00, 8.600000238419005e+00, 8.800000238418438e+00, 9.000000238417869e+00, 9.19999964237263e+00, 9.399999642372061e+00, 9.600000596045808e+00, 9.800000000000569e+00, 1e+01, 1.019999999999659e+01, 1.039999999999318e+01, 1.060000095366409e+01, 1.07999997615891e+01, 1.099999976158568e+01, 1.119999976158085e+01, 1.139999976157886e+01, 1.160000071524977e+01, 1.180000071524636e+01, 1.199999952317137e+01, 1.219999952316796e+01, 1.239999952316455e+01, 1.260000047683545e+01, 1.280000047683204e+01, 1.300000047682863e+01, 1.319999928475364e+01, 1.339999928475023e+01, 1.360000023842114e+01, 1.380000023841915e+01, 1.400000023841432e+01, 1.42000002384109e+01, 1.439999904633591e+01, 1.460000000000682e+01, 1.480000000000341e+01, 1.5e+01, 1.519999999999659e+01, 1.539999999999318e+01, 1.560000095366409e+01, 1.57999997615891e+01, 1.599999976158568e+01, 1.620000071525403e+01, 1.639999976158227e+01, 1.660000071524181e+01, 1.679999976158455e+01, 1.699999952316e+01, 1.720000047683545e+01, 1.739999952316682e+01, 1.760000047683318e+01, 1.779999952316455e+01, 1.800000047684e+01, 1.820000023841545e+01, 1.839999928475819e+01, 1.860000023841773e+01, 1.879999928474597e+01, 1.900000023842e+01, 1.920000119207499e+01, 1.939999904634956e+01, 1.959999999999773e+01, 1.979999904633364e+01, 2e+01] +changeSampler.y=[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, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1.000002384145424e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01] +increaseSampler.u=[0e+00, 2.000000074505789e-01, 4.000000149011579e-01, 6.000000372528755e-01, 8.000000298023024e-01, 9.999999850988333e-01, 1.200000074505776e+00, 1.399999970197673e+00, 1.600000059604538e+00, 1.799999880790923e+00, 1.999999970197766e+00, 2.200000059604609e+00, 2.400000149011452e+00, 2.600000000000284e+00, 2.799999940395391e+00, 2.999999880791066e+00, 3.200000119209077e+00, 3.400000059604539e+00, 3.599999761581847e+00, 3.799999999999858e+00, 3.999999940395533e+00, 4.199999940394965e+00, 4.400000119209219e+00, 4.599999821186315e+00, 4.800000298022904e+00, 5e+00, 5.199999999999432e+00, 5.39999988079135e+00, 5.599999880790782e+00, 5.800000357627371e+00, 5.999999761582131e+00, 6.199999761581563e+00, 6.400000238418153e+00, 6.599999642372913e+00, 6.800000119209503e+00, 7.000000119208934e+00, 7.199999523163694e+00, 7.400000000000285e+00, 7.599999999999716e+00, 7.800000476836306e+00, 7.999999880791066e+00, 8.199999880790497e+00, 8.399999880789929e+00, 8.600000238419005e+00, 8.800000238418438e+00, 9.000000238417869e+00, 9.19999964237263e+00, 9.399999642372061e+00, 9.600000596045808e+00, 9.800000000000569e+00, 1e+01, 1.019999999999659e+01, 1.039999999999318e+01, 1.060000095366409e+01, 1.07999997615891e+01, 1.099999976158568e+01, 1.119999976158085e+01, 1.139999976157886e+01, 1.160000071524977e+01, 1.180000071524636e+01, 1.199999952317137e+01, 1.219999952316796e+01, 1.239999952316455e+01, 1.260000047683545e+01, 1.280000047683204e+01, 1.300000047682863e+01, 1.319999928475364e+01, 1.339999928475023e+01, 1.360000023842114e+01, 1.380000023841915e+01, 1.400000023841432e+01, 1.42000002384109e+01, 1.439999904633591e+01, 1.460000000000682e+01, 1.480000000000341e+01, 1.5e+01, 1.519999999999659e+01, 1.539999999999318e+01, 1.560000095366409e+01, 1.57999997615891e+01, 1.599999976158568e+01, 1.620000071525403e+01, 1.639999976158227e+01, 1.660000071524181e+01, 1.679999976158455e+01, 1.699999952316e+01, 1.720000047683545e+01, 1.739999952316682e+01, 1.760000047683318e+01, 1.779999952316455e+01, 1.800000047684e+01, 1.820000023841545e+01, 1.839999928475819e+01, 1.860000023841773e+01, 1.879999928474597e+01, 1.900000023842e+01, 1.920000119207499e+01, 1.939999904634956e+01, 1.959999999999773e+01, 1.979999904633364e+01, 2e+01] +increaseSampler.y=[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, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6.000047682908479e+00, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01] +decreaseSampler.u=[0e+00, 2.000000074505789e-01, 4.000000149011579e-01, 6.000000372528755e-01, 8.000000298023024e-01, 9.999999850988333e-01, 1.200000074505776e+00, 1.399999970197673e+00, 1.600000059604538e+00, 1.799999880790923e+00, 1.999999970197766e+00, 2.200000059604609e+00, 2.400000149011452e+00, 2.600000000000284e+00, 2.799999940395391e+00, 2.999999880791066e+00, 3.200000119209077e+00, 3.400000059604539e+00, 3.599999761581847e+00, 3.799999999999858e+00, 3.999999940395533e+00, 4.199999940394965e+00, 4.400000119209219e+00, 4.599999821186315e+00, 4.800000298022904e+00, 5e+00, 5.199999999999432e+00, 5.39999988079135e+00, 5.599999880790782e+00, 5.800000357627371e+00, 5.999999761582131e+00, 6.199999761581563e+00, 6.400000238418153e+00, 6.599999642372913e+00, 6.800000119209503e+00, 7.000000119208934e+00, 7.199999523163694e+00, 7.400000000000285e+00, 7.599999999999716e+00, 7.800000476836306e+00, 7.999999880791066e+00, 8.199999880790497e+00, 8.399999880789929e+00, 8.600000238419005e+00, 8.800000238418438e+00, 9.000000238417869e+00, 9.19999964237263e+00, 9.399999642372061e+00, 9.600000596045808e+00, 9.800000000000569e+00, 1e+01, 1.019999999999659e+01, 1.039999999999318e+01, 1.060000095366409e+01, 1.07999997615891e+01, 1.099999976158568e+01, 1.119999976158085e+01, 1.139999976157886e+01, 1.160000071524977e+01, 1.180000071524636e+01, 1.199999952317137e+01, 1.219999952316796e+01, 1.239999952316455e+01, 1.260000047683545e+01, 1.280000047683204e+01, 1.300000047682863e+01, 1.319999928475364e+01, 1.339999928475023e+01, 1.360000023842114e+01, 1.380000023841915e+01, 1.400000023841432e+01, 1.42000002384109e+01, 1.439999904633591e+01, 1.460000000000682e+01, 1.480000000000341e+01, 1.5e+01, 1.519999999999659e+01, 1.539999999999318e+01, 1.560000095366409e+01, 1.57999997615891e+01, 1.599999976158568e+01, 1.620000071525403e+01, 1.639999976158227e+01, 1.660000071524181e+01, 1.679999976158455e+01, 1.699999952316e+01, 1.720000047683545e+01, 1.739999952316682e+01, 1.760000047683318e+01, 1.779999952316455e+01, 1.800000047684e+01, 1.820000023841545e+01, 1.839999928475819e+01, 1.860000023841773e+01, 1.879999928474597e+01, 1.900000023842e+01, 1.920000119207499e+01, 1.939999904634956e+01, 1.959999999999773e+01, 1.979999904633364e+01, 2e+01] +decreaseSampler.y=[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, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Equal.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Equal.txt new file mode 100644 index 0000000000..07e79cfae6 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Equal.txt @@ -0,0 +1,11 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +intEqu.u1=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 5.960363559974428e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +intEqu.u2=[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, 2.980226188066309e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 5.960363559974428e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +intEqu.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 2.980226188066309e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Greater.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Greater.txt new file mode 100644 index 0000000000..1d5fb30cc6 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Greater.txt @@ -0,0 +1,11 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +intGre.u1=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3.00000596036356e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5.000011920727175e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +intGre.u2=[-2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +intGre.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_GreaterEqual.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_GreaterEqual.txt new file mode 100644 index 0000000000..16c87d980d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_GreaterEqual.txt @@ -0,0 +1,11 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +intGreEqu.u1=[-1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 5.960363559974428e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +intGreEqu.u2=[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, 2.980226188066309e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 5.960363559974428e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +intGreEqu.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_GreaterEqualThreshold.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_GreaterEqualThreshold.txt new file mode 100644 index 0000000000..b05c270c63 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_GreaterEqualThreshold.txt @@ -0,0 +1,11 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +intGreEquThr.t=[2e+00, 2e+00] +intGreEquThr.u=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3.00000596036356e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5.000011920727175e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +intGreEquThr.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_GreaterThreshold.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_GreaterThreshold.txt new file mode 100644 index 0000000000..4938df5950 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_GreaterThreshold.txt @@ -0,0 +1,11 @@ +last-generated=2017-09-14 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +intGreThr.u=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3.00000596036356e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5.000011920727175e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +intGreThr.t=[2e+00, 2e+00] +time=[0e+00, 1e+00] +intGreThr.y=[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, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Less.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Less.txt new file mode 100644 index 0000000000..5f52d8e2ad --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Less.txt @@ -0,0 +1,11 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +intLes.u1=[-1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 5.960363559974428e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +intLes.u2=[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, 2.980226188066309e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 5.960363559974428e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +intLes.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_LessEqual.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_LessEqual.txt new file mode 100644 index 0000000000..b9dcc0b270 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_LessEqual.txt @@ -0,0 +1,11 @@ +last-generated=2017-09-14 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +intLesEqu.u1=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3.00000596036356e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5.000011920727175e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +intLesEqu.u2=[-2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +time=[0e+00, 1e+00] +intLesEqu.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_LessEqualThreshold.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_LessEqualThreshold.txt new file mode 100644 index 0000000000..c4b4741f28 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_LessEqualThreshold.txt @@ -0,0 +1,11 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +intLesEquThr.t=[2e+00, 2e+00] +intLesEquThr.u=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3.00000596036356e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5.000011920727175e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +intLesEquThr.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_LessThreshold.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_LessThreshold.txt new file mode 100644 index 0000000000..a1400868b1 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_LessThreshold.txt @@ -0,0 +1,11 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +intLesThr.t=[2e+00, 2e+00] +intLesThr.u=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3.00000596036356e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5.000011920727175e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +intLesThr.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Max.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Max.txt new file mode 100644 index 0000000000..8832147591 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Max.txt @@ -0,0 +1,11 @@ +last-generated=2017-09-14 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +max1.u2=[-2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +max1.u1=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3.00000596036356e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5.000011920727175e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +max1.y=[-2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3.00000596036356e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5.000011920727175e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Min.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Min.txt new file mode 100644 index 0000000000..cb4ee9bbfc --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Min.txt @@ -0,0 +1,11 @@ +last-generated=2017-09-14 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +min1.y=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +min1.u2=[-2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +min1.u1=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3.00000596036356e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5.000011920727175e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_MultiSum.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_MultiSum.txt new file mode 100644 index 0000000000..e3abd1b3b3 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_MultiSum.txt @@ -0,0 +1,12 @@ +last-generated=2017-09-14 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +add1.u[3]=[-2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.999994993219981e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00] +add1.u[1]=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -5.006780019356505e-06, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +add1.y=[-7e+00, -4e+00, -4e+00, -4e+00, -4e+00, -4e+00, -4e+00, -4e+00, -4e+00, -4e+00, -4e+00, -4e+00, -4e+00, -4e+00, -4e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 4.999984979659942e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 1.1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01] +add1.u[2]=[-1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.999994993219981e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Multiply.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Multiply.txt new file mode 100644 index 0000000000..0ff41f82a1 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Multiply.txt @@ -0,0 +1,11 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +product.u1=[-1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 5.960363559974428e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +product.u2=[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, 2.980226188066309e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 5.960363559974428e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +product.y=[-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, 2.980226188066309e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 5.960363559974428e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_OnCounter.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_OnCounter.txt new file mode 100644 index 0000000000..44d8af0621 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_OnCounter.txt @@ -0,0 +1,11 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +onCounter.trigger=[1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 2.980226188066309e-06, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 5.960452403888138e-06, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 1.192072717545907e-05, 1e+00, 1e+00, 0e+00, 0e+00, 5.960363559974428e-06, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 1.192072717545907e-05, 1e+00, 1e+00, 0e+00, 0e+00, 5.960363559974428e-06, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00] +time=[0e+00, 2e+00] +onCounter.reset=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +onCounter.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000002980226188e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4.000005960452404e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3.000011920727176e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4.00000596036356e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Stage.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Stage.txt new file mode 100644 index 0000000000..4bba95643e --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Stage.txt @@ -0,0 +1,14 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+01] +sta.u=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 9.999997392295245e-03, 1.999999478461667e-02, 3.000000409780068e-02, 4.00000014901188e-02, 5.000000074505806e-02, 5.999999627470705e-02, 6.999999552968364e-02, 8.0000002980218e-02, 9.000000596046269e-02, 1.000000014901161e-01, 1.100000089407251e-01, 1.19999992549423e-01, 1.300000000000142e-01, 1.399999910592749e-01, 1.500000059604645e-01, 1.600000059604929e-01, 1.699999970197536e-01, 1.800000119209077e-01, 1.899999880790426e-01, 2.000000029802322e-01, 2.100000029802607e-01, 2.199999940395213e-01, 2.300000089406754e-01, 2.399999850988815e-01, 2.5e-01, 2.600000000000284e-01, 2.700000059604503e-01, 2.800000059604787e-01, 2.899999821185782e-01, 3.00000011920929e-01, 3.100000119209573e-01, 3.200000119209858e-01, 3.299999940394787e-01, 3.399999940395071e-01, 3.499999940395355e-01, 3.600000238417443e-01, 3.700000238419147e-01, 3.799999761580852e-01, 3.899999761582558e-01, 4.000000059604645e-01, 4.100000059604929e-01, 4.200000059605213e-01, 4.299999880790143e-01, 4.399999880790427e-01, 4.49999988079071e-01, 4.600000178814219e-01, 4.700000178814502e-01, 4.799999701976208e-01, 4.899999999999715e-01, 5e-01, 5.100000000001705e-01, 5.200000000003411e-01, 5.299999523165115e-01, 5.400000119207584e-01, 5.50000011920929e-01, 5.600000119208153e-01, 5.7000001192127e-01, 5.799999642374406e-01, 5.899999642373268e-01, 6.000000238418579e-01, 6.100000238417442e-01, 6.200000238416304e-01, 6.299999761583694e-01, 6.399999761582558e-01, 6.499999761581421e-01, 6.600000357626732e-01, 6.700000357625595e-01, 6.799999880787301e-01, 6.899999880791847e-01, 6.99999988079071e-01, 7.099999403967195e-01, 7.200000476830336e-01, 7.300000000001136e-01, 7.400000476823516e-01, 7.5e-01, 7.599999523187068e-01, 7.699999999998862e-01, 7.799999523169664e-01, 7.900000596032806e-01, 8.00000011920929e-01, 8.099999642385773e-01, 8.200000119208154e-01, 8.299999642378953e-01, 8.400000119207014e-01, 8.500000238418579e-01, 8.599999761575364e-01, 8.700000238411757e-01, 8.799999761588243e-01, 8.900000238416306e-01, 8.999999761581421e-01] +sta.y=[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, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00] +zerHolTim.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00] +sta1.u=[5e-01, 5.62666594051887e-01, 6.243449431345468e-01, 6.840622951144832e-01, 7.408768501618699e-01, 7.938926219940186e-01, 8.422735222964175e-01, 8.852566527649917e-01, 9.22163959225402e-01, 9.524135055626048e-01, 9.755282402038574e-01, 9.911436408643766e-01, 9.990133620582184e-01, 9.990133620582184e-01, 9.911436408643766e-01, 9.755282402038574e-01, 9.524135055626234e-01, 9.221639790519085e-01, 8.852566286780194e-01, 8.422735222963845e-01, 7.938926219940186e-01, 7.408768005993301e-01, 6.840623298276093e-01, 6.243449158439494e-01, 5.62666654330428e-01, 5e-01, 4.373333158675338e-01, 3.756550841559793e-01, 3.159376999745707e-01, 2.59123229202708e-01, 2.061073780059814e-01, 1.577264085938893e-01, 1.147434011243298e-01, 7.783602094799758e-02, 4.758650075945427e-02, 2.447174116969109e-02, 8.856364283090808e-03, 9.866380581584411e-04, 9.866380581584411e-04, 8.856364283090808e-03, 2.447174116969109e-02, 4.758650075945427e-02, 7.783610216161774e-02, 1.147433065166289e-01, 1.577264085938895e-01, 2.061073780059814e-01, 2.591232292027082e-01, 3.15937839658879e-01, 3.756549393554028e-01, 4.373333158675341e-01, 5e-01, 5.626666543304277e-01, 6.243450606445972e-01, 6.840621901428749e-01, 7.408768005993305e-01, 7.938926219940186e-01, 8.422735765049497e-01, 8.852567232851958e-01, 9.221638978381691e-01, 9.52413473163549e-01, 9.755282402038574e-01, 9.911436543433851e-01, 9.990133703364621e-01, 9.990133703364621e-01, 9.911436543433851e-01, 9.755282402038574e-01, 9.52413473163549e-01, 9.221638978381691e-01, 8.852567232851958e-01, 8.422735765049497e-01, 7.938926219940186e-01, 7.408768005993305e-01, 6.840621901428749e-01, 6.243450606445972e-01, 5.626666543304277e-01, 5e-01, 4.373333158675341e-01, 3.756549393554029e-01, 3.15937839658879e-01, 2.591232292027077e-01, 2.061073780059814e-01, 1.57726628516219e-01, 1.147433065184227e-01, 7.783610216005693e-02, 4.758637525310335e-02, 2.447174116969109e-02, 8.856420791578445e-03, 9.866297802864079e-04, 9.866297802864077e-04, 8.856422635427366e-03, 2.447174116969109e-02, 4.758637525310335e-02, 7.783610216005693e-02, 1.147433065184227e-01, 1.57726628516219e-01, 2.061073780059814e-01, 2.591229668516646e-01, 3.159378396562095e-01, 3.756549393581616e-01, 4.373336133572886e-01, 5e-01] +sta1.y=[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, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +lesHolTim.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 1.000050806554093e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.999949193445907e+00, 2e+00, 2e+00, 2e+00, 2e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Subtract.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Subtract.txt new file mode 100644 index 0000000000..ceae9185b2 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Subtract.txt @@ -0,0 +1,11 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +sub.u1=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -5.006780019356505e-06, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +sub.u2=[-1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.999994993219981e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +sub.y=[-3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Switch.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Switch.txt new file mode 100644 index 0000000000..28c5701312 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Integers_Validation_Switch.txt @@ -0,0 +1,12 @@ +last-generated=2023-03-02 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 5e+00] +integerSwitch.u1=[5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 4.99997615811933e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 4.999976158119441e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00] +integerSwitch.u2=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +integerSwitch.u3=[2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+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] +integerSwitch.y=[5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 4.99997615811933e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_Constant.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_Constant.txt new file mode 100644 index 0000000000..0ba92d31a9 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_Constant.txt @@ -0,0 +1,9 @@ +last-generated=2017-07-17 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +con.y=[1e+00, 1e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_Pulse.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_Pulse.txt new file mode 100644 index 0000000000..bd79ba9841 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_Pulse.txt @@ -0,0 +1,23 @@ +last-generated=2020-10-20 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+01] +booPul_a1.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 9.999809269502016e-01, 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] +booPul_a2.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 9.999809269502016e-01, 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] +booPul_a3.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 9.999809269502016e-01, 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] +booPul_a4.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 9.999809269502016e-01, 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] +booPul_a5.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 9.999809269502016e-01, 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] +booPul_b1.y=[0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376133949992e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.76837611174551e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.76837611174551e-06, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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] +booPul_b2.y=[0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376133949992e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.76837611174551e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.76837611174551e-06, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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] +booPul_b3.y=[0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376133949992e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.76837611174551e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.76837611174551e-06, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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] +booPul_b4.y=[0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376133949992e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.76837611174551e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.76837611174551e-06, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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] +booPul_b5.y=[0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376133949992e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.76837611174551e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.76837611174551e-06, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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] +booPul_c1.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376133949992e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376156154474e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376156154474e-06, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_c2.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376133949992e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376156154474e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376156154474e-06, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_c3.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376133949992e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376156154474e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376156154474e-06, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_c4.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376133949992e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376156154474e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376156154474e-06, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_c5.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376133949992e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376156154474e-06, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376156154474e-06, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_PulseNegativeStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_PulseNegativeStartTime.txt new file mode 100644 index 0000000000..78485dfaec --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_PulseNegativeStartTime.txt @@ -0,0 +1,23 @@ +last-generated=2020-10-20 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[-1e+01, 1e+00] +booPul_a1.y=[1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 3.814700907156521e-06, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_a2.y=[1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 3.814700907156521e-06, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_a3.y=[1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 3.814700907156521e-06, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_a4.y=[1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 3.814700907156521e-06, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_a5.y=[1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 3.814700907156521e-06, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_b1.y=[0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765975810847e-05, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_b2.y=[0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765975810847e-05, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_b3.y=[0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765975810847e-05, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_b4.y=[0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765975810847e-05, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_b5.y=[0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765975810847e-05, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_c1.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 4.33486858314694e-06, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00] +booPul_c2.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 4.33486858314694e-06, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00] +booPul_c3.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 4.33486858314694e-06, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00] +booPul_c4.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 4.33486858314694e-06, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00] +booPul_c5.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 4.33486858314694e-06, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_PulsePositiveStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_PulsePositiveStartTime.txt new file mode 100644 index 0000000000..e05c5ae316 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_PulsePositiveStartTime.txt @@ -0,0 +1,23 @@ +last-generated=2020-10-20 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[9e+00, 2e+01] +booPul_a1.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 9.999771123402419e-01, 1e+00, 1e+00, 1e+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] +booPul_a2.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 9.999771123402419e-01, 1e+00, 1e+00, 1e+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] +booPul_a3.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 9.999771123402419e-01, 1e+00, 1e+00, 1e+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] +booPul_a4.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 9.999771123402419e-01, 1e+00, 1e+00, 1e+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] +booPul_a5.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 9.999771123402419e-01, 1e+00, 1e+00, 1e+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] +booPul_b1.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765975810847e-05, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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] +booPul_b2.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765975810847e-05, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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] +booPul_b3.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765975810847e-05, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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] +booPul_b4.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765975810847e-05, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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] +booPul_b5.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765975810847e-05, 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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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] +booPul_c1.y=[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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765993563313e-05, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_c2.y=[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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765993563313e-05, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_c3.y=[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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765993563313e-05, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_c4.y=[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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765993563313e-05, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booPul_c5.y=[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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 2.288765993563313e-05, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_SampleTrigger.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_SampleTrigger.txt new file mode 100644 index 0000000000..8075017218 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_SampleTrigger.txt @@ -0,0 +1,14 @@ +last-generated=2020-12-03 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 5e+00] +samTri.y=[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, 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] +triggeredSampler.u=[0e+00, 2e-01, 4e-01, 6e-01, 8e-01, 1e+00, 1.2e+00, 1.4e+00, 1.6e+00, 1.8e+00, 2e+00, 2.2e+00, 2.4e+00, 2.6e+00, 2.8e+00, 3e+00, 3.2e+00, 3.4e+00, 3.6e+00, 3.8e+00, 4e+00, 4.2e+00, 4.4e+00, 4.600000000000001e+00, 4.8e+00, 5e+00, 5.2e+00, 5.4e+00, 5.600000000000001e+00, 5.8e+00, 6e+00, 6.2e+00, 6.4e+00, 6.600000000000001e+00, 6.800000000000001e+00, 7e+00, 7.199999999999999e+00, 7.4e+00, 7.6e+00, 7.800000000000001e+00, 8e+00, 8.199999999999999e+00, 8.4e+00, 8.6e+00, 8.800000000000001e+00, 9e+00, 9.200000000000001e+00, 9.399999999999999e+00, 9.6e+00, 9.800000000000001e+00, 1e+01, 1.02e+01, 1.04e+01, 1.06e+01, 1.08e+01, 1.1e+01, 1.12e+01, 1.14e+01, 1.16e+01, 1.18e+01, 1.2e+01, 1.22e+01, 1.24e+01, 1.26e+01, 1.28e+01, 1.3e+01, 1.32e+01, 1.34e+01, 1.36e+01, 1.38e+01, 1.4e+01, 1.42e+01, 1.44e+01, 1.46e+01, 1.48e+01, 1.5e+01, 1.52e+01, 1.54e+01, 1.56e+01, 1.58e+01, 1.6e+01, 1.62e+01, 1.64e+01, 1.66e+01, 1.68e+01, 1.7e+01, 1.72e+01, 1.74e+01, 1.76e+01, 1.78e+01, 1.8e+01, 1.82e+01, 1.84e+01, 1.86e+01, 1.88e+01, 1.9e+01, 1.92e+01, 1.94e+01, 1.96e+01, 1.98e+01, 2e+01] +triggeredSampler.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01] +samTri1.y=[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, 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] +triggeredSampler1.u=[0e+00, 2e-01, 4e-01, 6e-01, 8e-01, 1e+00, 1.2e+00, 1.4e+00, 1.6e+00, 1.8e+00, 2e+00, 2.2e+00, 2.4e+00, 2.6e+00, 2.8e+00, 3e+00, 3.2e+00, 3.4e+00, 3.6e+00, 3.8e+00, 4e+00, 4.2e+00, 4.4e+00, 4.600000000000001e+00, 4.8e+00, 5e+00, 5.2e+00, 5.4e+00, 5.600000000000001e+00, 5.8e+00, 6e+00, 6.2e+00, 6.4e+00, 6.600000000000001e+00, 6.800000000000001e+00, 7e+00, 7.199999999999999e+00, 7.4e+00, 7.6e+00, 7.800000000000001e+00, 8e+00, 8.199999999999999e+00, 8.4e+00, 8.6e+00, 8.800000000000001e+00, 9e+00, 9.200000000000001e+00, 9.399999999999999e+00, 9.6e+00, 9.800000000000001e+00, 1e+01, 1.02e+01, 1.04e+01, 1.06e+01, 1.08e+01, 1.1e+01, 1.12e+01, 1.14e+01, 1.16e+01, 1.18e+01, 1.2e+01, 1.22e+01, 1.24e+01, 1.26e+01, 1.28e+01, 1.3e+01, 1.32e+01, 1.34e+01, 1.36e+01, 1.38e+01, 1.4e+01, 1.42e+01, 1.44e+01, 1.46e+01, 1.48e+01, 1.5e+01, 1.52e+01, 1.54e+01, 1.56e+01, 1.58e+01, 1.6e+01, 1.62e+01, 1.64e+01, 1.66e+01, 1.68e+01, 1.7e+01, 1.72e+01, 1.74e+01, 1.76e+01, 1.78e+01, 1.8e+01, 1.82e+01, 1.84e+01, 1.86e+01, 1.88e+01, 1.9e+01, 1.92e+01, 1.94e+01, 1.96e+01, 1.98e+01, 2e+01] +triggeredSampler1.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200009584434847e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.20000934601736e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.200009346017449e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.200009346017449e+00, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.120000934601745e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.320000934601736e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.920000076293945e+01, 1.920000076293945e+01, 1.920000076293945e+01, 1.920000076293945e+01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_SampleTriggerNegativeStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_SampleTriggerNegativeStartTime.txt new file mode 100644 index 0000000000..d37c86846d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_SampleTriggerNegativeStartTime.txt @@ -0,0 +1,14 @@ +last-generated=2020-12-03 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[-2e+00, 3e+00] +samTri.y=[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, 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] +triggeredSampler.u=[0e+00, 2.000001937152378e-01, 3.999999105929621e-01, 6.000001192092892e-01, 7.999998211857813e-01, 1e+00, 1.200000238418579e+00, 1.399999880790711e+00, 1.600000119209289e+00, 1.799999761581421e+00, 2e+00, 2.200000238418579e+00, 2.399999999999432e+00, 2.600000000000568e+00, 2.799999761581422e+00, 3e+00, 3.200000238418579e+00, 3.399999999999432e+00, 3.600000000000568e+00, 3.799999761581421e+00, 4e+00, 4.199999761581421e+00, 4.400000000000569e+00, 4.599999999999432e+00, 4.800000238418579e+00, 5e+00, 5.199999761581421e+00, 5.400000000000569e+00, 5.599999999999432e+00, 5.800000238418579e+00, 6e+00, 6.199999761581563e+00, 6.400000119209219e+00, 6.599999880790782e+00, 6.800000238418438e+00, 7e+00, 7.199999821186047e+00, 7.400000119209254e+00, 7.599999910593028e+00, 7.800000193715093e+00, 8e+00, 8.199999806284907e+00, 8.399999612569815e+00, 8.600000357627904e+00, 8.800000178813953e+00, 9e+00, 9.199999761581564e+00, 9.399999642372059e+00, 9.600000357627939e+00, 9.800000238418438e+00, 1e+01, 1.019999976158142e+01, 1.039999952316341e+01, 1.060000047683659e+01, 1.080000023841858e+01, 1.1e+01, 1.119999976158142e+01, 1.139999952316341e+01, 1.160000047683659e+01, 1.180000023841858e+01, 1.2e+01, 1.22e+01, 1.239999952316284e+01, 1.260000047683716e+01, 1.28e+01, 1.3e+01, 1.32e+01, 1.339999952316284e+01, 1.360000047683716e+01, 1.38e+01, 1.4e+01, 1.42e+01, 1.439999952316284e+01, 1.460000047683716e+01, 1.48e+01, 1.5e+01, 1.52e+01, 1.539999952316284e+01, 1.560000047683716e+01, 1.58e+01, 1.6e+01, 1.620000095366977e+01, 1.640000000000909e+01, 1.65999999999909e+01, 1.679999904633023e+01, 1.7e+01, 1.720000095366977e+01, 1.740000000000909e+01, 1.759999999999091e+01, 1.779999904633023e+01, 1.8e+01, 1.820000095366977e+01, 1.84000000000091e+01, 1.859999999999091e+01, 1.879999904633023e+01, 1.9e+01, 1.920000095366977e+01, 1.940000000000909e+01, 1.959999999999091e+01, 1.979999904633023e+01, 2e+01] +triggeredSampler.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01] +samTri1.y=[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, 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] +triggeredSampler1.u=[0e+00, 2.000001937152378e-01, 3.999999105929621e-01, 6.000001192092892e-01, 7.999998211857813e-01, 1e+00, 1.200000238418579e+00, 1.399999880790711e+00, 1.600000119209289e+00, 1.799999761581421e+00, 2e+00, 2.200000238418579e+00, 2.399999999999432e+00, 2.600000000000568e+00, 2.799999761581422e+00, 3e+00, 3.200000238418579e+00, 3.399999999999432e+00, 3.600000000000568e+00, 3.799999761581421e+00, 4e+00, 4.199999761581421e+00, 4.400000000000569e+00, 4.599999999999432e+00, 4.800000238418579e+00, 5e+00, 5.199999761581421e+00, 5.400000000000569e+00, 5.599999999999432e+00, 5.800000238418579e+00, 6e+00, 6.199999761581563e+00, 6.400000119209219e+00, 6.599999880790782e+00, 6.800000238418438e+00, 7e+00, 7.199999821186047e+00, 7.400000119209254e+00, 7.599999910593028e+00, 7.800000193715093e+00, 8e+00, 8.199999806284907e+00, 8.399999612569815e+00, 8.600000357627904e+00, 8.800000178813953e+00, 9e+00, 9.199999761581564e+00, 9.399999642372059e+00, 9.600000357627939e+00, 9.800000238418438e+00, 1e+01, 1.019999976158142e+01, 1.039999952316341e+01, 1.060000047683659e+01, 1.080000023841858e+01, 1.1e+01, 1.119999976158142e+01, 1.139999952316341e+01, 1.160000047683659e+01, 1.180000023841858e+01, 1.2e+01, 1.22e+01, 1.239999952316284e+01, 1.260000047683716e+01, 1.28e+01, 1.3e+01, 1.32e+01, 1.339999952316284e+01, 1.360000047683716e+01, 1.38e+01, 1.4e+01, 1.42e+01, 1.439999952316284e+01, 1.460000047683716e+01, 1.48e+01, 1.5e+01, 1.52e+01, 1.539999952316284e+01, 1.560000047683716e+01, 1.58e+01, 1.6e+01, 1.620000095366977e+01, 1.640000000000909e+01, 1.65999999999909e+01, 1.679999904633023e+01, 1.7e+01, 1.720000095366977e+01, 1.740000000000909e+01, 1.759999999999091e+01, 1.779999904633023e+01, 1.8e+01, 1.820000095366977e+01, 1.84000000000091e+01, 1.859999999999091e+01, 1.879999904633023e+01, 1.9e+01, 1.920000095366977e+01, 1.940000000000909e+01, 1.959999999999091e+01, 1.979999904633023e+01, 2e+01] +triggeredSampler1.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 2.799999952316284e+00, 2.799999952316284e+00, 2.799999952316284e+00, 2.799999952316284e+00, 2.799999952316284e+00, 2.799999952316284e+00, 2.799999952316284e+00, 2.799999952316284e+00, 2.799999952316284e+00, 2.800002336504624e+00, 4.800000190734863e+00, 4.800000190734863e+00, 4.800000190734863e+00, 4.800000190734863e+00, 4.800000190734863e+00, 4.800000190734863e+00, 4.800000190734863e+00, 4.800000190734863e+00, 4.800000190734863e+00, 4.800002574915858e+00, 6.800000190734863e+00, 6.800000190734863e+00, 6.800000190734863e+00, 6.800000190734863e+00, 6.800000190734863e+00, 6.800000190734863e+00, 6.800000190734863e+00, 6.800000190734863e+00, 6.800000190734863e+00, 6.800000190734863e+00, 8.800000190734863e+00, 8.800000190734863e+00, 8.800000190734863e+00, 8.800000190734863e+00, 8.800000190734863e+00, 8.800000190734863e+00, 8.800000190734863e+00, 8.800000190734863e+00, 8.800000190734863e+00, 8.800002574922964e+00, 1.080000019073486e+01, 1.080000019073486e+01, 1.080000019073486e+01, 1.080000019073486e+01, 1.080000019073486e+01, 1.080000019073486e+01, 1.080000019073486e+01, 1.080000019073486e+01, 1.080000019073486e+01, 1.080000019073486e+01, 1.280000019073486e+01, 1.280000019073486e+01, 1.280000019073486e+01, 1.280000019073486e+01, 1.280000019073486e+01, 1.280000019073486e+01, 1.280000019073486e+01, 1.280000019073486e+01, 1.280000019073486e+01, 1.280000019073486e+01, 1.480000019073486e+01, 1.480000019073486e+01, 1.480000019073486e+01, 1.480000019073486e+01, 1.480000019073486e+01, 1.480000019073486e+01, 1.480000019073486e+01, 1.480000019073486e+01, 1.480000019073486e+01, 1.480000019073486e+01, 1.679999923706055e+01, 1.679999923706055e+01, 1.679999923706055e+01, 1.679999923706055e+01, 1.679999923706055e+01, 1.679999923706055e+01, 1.679999923706055e+01, 1.679999923706055e+01, 1.679999923706055e+01, 1.679999923706055e+01, 1.879999923706055e+01, 1.879999923706055e+01, 1.879999923706055e+01, 1.879999923706055e+01, 1.879999923706055e+01, 1.879999923706055e+01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_SampleTriggerPositiveStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_SampleTriggerPositiveStartTime.txt new file mode 100644 index 0000000000..35baf45aa9 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_SampleTriggerPositiveStartTime.txt @@ -0,0 +1,14 @@ +last-generated=2023-03-23 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[1e+00, 6e+00] +samTri.y=[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, 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] +triggeredSampler.u=[0e+00, 2.000001937152378e-01, 3.999999105929621e-01, 6.000001192092892e-01, 7.999998211857813e-01, 1e+00, 1.200000238418579e+00, 1.399999880790711e+00, 1.600000119209289e+00, 1.799999761581421e+00, 2e+00, 2.200000238418579e+00, 2.399999999999432e+00, 2.600000000000568e+00, 2.799999761581422e+00, 3e+00, 3.200000238418579e+00, 3.399999999999432e+00, 3.600000000000568e+00, 3.799999761581421e+00, 4e+00, 4.199999999999999e+00, 4.400000476837159e+00, 4.599999523162843e+00, 4.800000000000001e+00, 5e+00, 5.199999999999999e+00, 5.400000476837159e+00, 5.599999523162843e+00, 5.800000000000001e+00, 6e+00, 6.199999999999999e+00, 6.400000476837159e+00, 6.599999523162843e+00, 6.800000000000001e+00, 7e+00, 7.199999999999999e+00, 7.400000476837159e+00, 7.599999523162841e+00, 7.800000000000001e+00, 8e+00, 8.199999999999999e+00, 8.4e+00, 8.6e+00, 8.800000000000001e+00, 9e+00, 9.200000000000001e+00, 9.399999999999999e+00, 9.6e+00, 9.800000000000001e+00, 1e+01, 1.02e+01, 1.04e+01, 1.06e+01, 1.08e+01, 1.1e+01, 1.12e+01, 1.14e+01, 1.16e+01, 1.18e+01, 1.2e+01, 1.219999904634387e+01, 1.23999999999909e+01, 1.26000000000091e+01, 1.280000095365613e+01, 1.3e+01, 1.319999904634388e+01, 1.33999999999909e+01, 1.36000000000091e+01, 1.380000095365612e+01, 1.4e+01, 1.419999904634387e+01, 1.43999999999909e+01, 1.46000000000091e+01, 1.480000095365613e+01, 1.5e+01, 1.519999904634387e+01, 1.53999999999909e+01, 1.56000000000091e+01, 1.580000095365613e+01, 1.6e+01, 1.62e+01, 1.64e+01, 1.66e+01, 1.68e+01, 1.7e+01, 1.72e+01, 1.74e+01, 1.76e+01, 1.78e+01, 1.8e+01, 1.82e+01, 1.84e+01, 1.86e+01, 1.88e+01, 1.9e+01, 1.92e+01, 1.94e+01, 1.96e+01, 1.98e+01, 2e+01] +triggeredSampler.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01] +samTri1.y=[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, 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] +triggeredSampler1.u=[0e+00, 2.000001937152378e-01, 3.999999105929621e-01, 6.000001192092892e-01, 7.999998211857813e-01, 1e+00, 1.200000238418579e+00, 1.399999880790711e+00, 1.600000119209289e+00, 1.799999761581421e+00, 2e+00, 2.200000238418579e+00, 2.399999999999432e+00, 2.600000000000568e+00, 2.799999761581422e+00, 3e+00, 3.200000238418579e+00, 3.399999999999432e+00, 3.600000000000568e+00, 3.799999761581421e+00, 4e+00, 4.199999999999999e+00, 4.400000476837159e+00, 4.599999523162843e+00, 4.800000000000001e+00, 5e+00, 5.199999999999999e+00, 5.400000476837159e+00, 5.599999523162843e+00, 5.800000000000001e+00, 6e+00, 6.199999999999999e+00, 6.400000476837159e+00, 6.599999523162843e+00, 6.800000000000001e+00, 7e+00, 7.199999999999999e+00, 7.400000476837159e+00, 7.599999523162841e+00, 7.800000000000001e+00, 8e+00, 8.199999999999999e+00, 8.4e+00, 8.6e+00, 8.800000000000001e+00, 9e+00, 9.200000000000001e+00, 9.399999999999999e+00, 9.6e+00, 9.800000000000001e+00, 1e+01, 1.02e+01, 1.04e+01, 1.06e+01, 1.08e+01, 1.1e+01, 1.12e+01, 1.14e+01, 1.16e+01, 1.18e+01, 1.2e+01, 1.219999904634387e+01, 1.23999999999909e+01, 1.26000000000091e+01, 1.280000095365613e+01, 1.3e+01, 1.319999904634388e+01, 1.33999999999909e+01, 1.36000000000091e+01, 1.380000095365612e+01, 1.4e+01, 1.419999904634387e+01, 1.43999999999909e+01, 1.46000000000091e+01, 1.480000095365613e+01, 1.5e+01, 1.519999904634387e+01, 1.53999999999909e+01, 1.56000000000091e+01, 1.580000095365613e+01, 1.6e+01, 1.62e+01, 1.64e+01, 1.66e+01, 1.68e+01, 1.7e+01, 1.72e+01, 1.74e+01, 1.76e+01, 1.78e+01, 1.8e+01, 1.82e+01, 1.84e+01, 1.86e+01, 1.88e+01, 1.9e+01, 1.92e+01, 1.94e+01, 1.96e+01, 1.98e+01, 2e+01] +triggeredSampler1.y=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1.999984741196144e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200009584435984e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200000047683716e+00, 3.200009584434802e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.199999809265137e+00, 5.20000934601736e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.199999809265137e+00, 7.200009346017449e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.199999809265137e+00, 9.200009346017449e+00, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.119999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.319999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.519999980926514e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.720000076293945e+01, 1.920000076293945e+01, 1.920000076293945e+01, 1.920000076293945e+01, 1.920000076293945e+01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_TimeTable.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_TimeTable.txt new file mode 100644 index 0000000000..21d0723b5c --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_TimeTable.txt @@ -0,0 +1,14 @@ +last-generated=2020-10-01 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1.5e+01] +booTimTab.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.999872846334678e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +booTimTab.y[2]=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999872846334678e-01, 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] +booTimTabTwi.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +booTimTabTwi.y[2]=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +booTimTabOneRow.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +booTimTabOneRow.y[2]=[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, 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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_TimeTableNegativeStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_TimeTableNegativeStartTime.txt new file mode 100644 index 0000000000..4c6a48ba43 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Sources_Validation_TimeTableNegativeStartTime.txt @@ -0,0 +1,14 @@ +last-generated=2020-10-08 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[-5e+00, 1e+01] +booTimTab.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +booTimTab.y[2]=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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.589452387992815e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +booTimTabTwi.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +booTimTabTwi.y[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +booTimTabOneRow.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +booTimTabOneRow.y[2]=[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, 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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_And.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_And.txt new file mode 100644 index 0000000000..eb4baaa32e --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_And.txt @@ -0,0 +1,11 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +and1.u2=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +and1.u1=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00] +and1.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +time=[0e+00, 1e+01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Change.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Change.txt new file mode 100644 index 0000000000..613eb00aae --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Change.txt @@ -0,0 +1,12 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +change.y=[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, 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] +change.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +time=[0e+00, 5e+00] +triggeredSampler.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01] +triggeredSampler.u=[0e+00, 2e-01, 4e-01, 6e-01, 8e-01, 1e+00, 1.2e+00, 1.4e+00, 1.6e+00, 1.8e+00, 2e+00, 2.2e+00, 2.4e+00, 2.6e+00, 2.8e+00, 3e+00, 3.2e+00, 3.4e+00, 3.6e+00, 3.8e+00, 4e+00, 4.2e+00, 4.4e+00, 4.600000000000001e+00, 4.8e+00, 5e+00, 5.2e+00, 5.4e+00, 5.600000000000001e+00, 5.8e+00, 6e+00, 6.2e+00, 6.4e+00, 6.600000000000001e+00, 6.800000000000001e+00, 7e+00, 7.199999999999999e+00, 7.4e+00, 7.6e+00, 7.800000000000001e+00, 8e+00, 8.199999999999999e+00, 8.4e+00, 8.6e+00, 8.800000000000001e+00, 9e+00, 9.200000000000001e+00, 9.399999999999999e+00, 9.6e+00, 9.800000000000001e+00, 1e+01, 1.02e+01, 1.04e+01, 1.06e+01, 1.08e+01, 1.1e+01, 1.12e+01, 1.14e+01, 1.16e+01, 1.18e+01, 1.2e+01, 1.22e+01, 1.24e+01, 1.26e+01, 1.28e+01, 1.3e+01, 1.32e+01, 1.34e+01, 1.36e+01, 1.38e+01, 1.4e+01, 1.42e+01, 1.44e+01, 1.46e+01, 1.48e+01, 1.5e+01, 1.52e+01, 1.54e+01, 1.56e+01, 1.58e+01, 1.6e+01, 1.62e+01, 1.64e+01, 1.66e+01, 1.68e+01, 1.7e+01, 1.72e+01, 1.74e+01, 1.76e+01, 1.78e+01, 1.8e+01, 1.82e+01, 1.84e+01, 1.86e+01, 1.88e+01, 1.9e+01, 1.92e+01, 1.94e+01, 1.96e+01, 1.98e+01, 2e+01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Edge.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Edge.txt new file mode 100644 index 0000000000..4b07fc9c8b --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Edge.txt @@ -0,0 +1,12 @@ +last-generated=2019-05-21 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +edge1.y=[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, 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] +edge1.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +time=[0e+00, 5e+00] +triggeredSampler.y=[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, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 8e+00, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01, 1.6e+01] +triggeredSampler.u=[0e+00, 2e-01, 4e-01, 6e-01, 8e-01, 1e+00, 1.2e+00, 1.4e+00, 1.6e+00, 1.8e+00, 2e+00, 2.2e+00, 2.4e+00, 2.6e+00, 2.8e+00, 3e+00, 3.2e+00, 3.4e+00, 3.6e+00, 3.8e+00, 4e+00, 4.2e+00, 4.4e+00, 4.600000000000001e+00, 4.8e+00, 5e+00, 5.2e+00, 5.4e+00, 5.600000000000001e+00, 5.8e+00, 6e+00, 6.2e+00, 6.4e+00, 6.600000000000001e+00, 6.800000000000001e+00, 7e+00, 7.199999999999999e+00, 7.4e+00, 7.6e+00, 7.800000000000001e+00, 8e+00, 8.199999999999999e+00, 8.4e+00, 8.6e+00, 8.800000000000001e+00, 9e+00, 9.200000000000001e+00, 9.399999999999999e+00, 9.6e+00, 9.800000000000001e+00, 1e+01, 1.02e+01, 1.04e+01, 1.06e+01, 1.08e+01, 1.1e+01, 1.12e+01, 1.14e+01, 1.16e+01, 1.18e+01, 1.2e+01, 1.22e+01, 1.24e+01, 1.26e+01, 1.28e+01, 1.3e+01, 1.32e+01, 1.34e+01, 1.36e+01, 1.38e+01, 1.4e+01, 1.42e+01, 1.44e+01, 1.46e+01, 1.48e+01, 1.5e+01, 1.52e+01, 1.54e+01, 1.56e+01, 1.58e+01, 1.6e+01, 1.62e+01, 1.64e+01, 1.66e+01, 1.68e+01, 1.7e+01, 1.72e+01, 1.74e+01, 1.76e+01, 1.78e+01, 1.8e+01, 1.82e+01, 1.84e+01, 1.86e+01, 1.88e+01, 1.9e+01, 1.92e+01, 1.94e+01, 1.96e+01, 1.98e+01, 2e+01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_FallingEdge.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_FallingEdge.txt new file mode 100644 index 0000000000..b84460d58a --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_FallingEdge.txt @@ -0,0 +1,12 @@ +last-generated=2019-05-21 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +falEdg.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +falEdg.y=[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, 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] +time=[0e+00, 5e+00] +triggeredSampler.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.4e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01, 1.8e+01] +triggeredSampler.u=[0e+00, 2e-01, 4e-01, 6e-01, 8e-01, 1e+00, 1.2e+00, 1.4e+00, 1.6e+00, 1.8e+00, 2e+00, 2.2e+00, 2.4e+00, 2.6e+00, 2.8e+00, 3e+00, 3.2e+00, 3.4e+00, 3.6e+00, 3.8e+00, 4e+00, 4.2e+00, 4.4e+00, 4.600000000000001e+00, 4.8e+00, 5e+00, 5.2e+00, 5.4e+00, 5.600000000000001e+00, 5.8e+00, 6e+00, 6.2e+00, 6.4e+00, 6.600000000000001e+00, 6.800000000000001e+00, 7e+00, 7.199999999999999e+00, 7.4e+00, 7.6e+00, 7.800000000000001e+00, 8e+00, 8.199999999999999e+00, 8.4e+00, 8.6e+00, 8.800000000000001e+00, 9e+00, 9.200000000000001e+00, 9.399999999999999e+00, 9.6e+00, 9.800000000000001e+00, 1e+01, 1.02e+01, 1.04e+01, 1.06e+01, 1.08e+01, 1.1e+01, 1.12e+01, 1.14e+01, 1.16e+01, 1.18e+01, 1.2e+01, 1.22e+01, 1.24e+01, 1.26e+01, 1.28e+01, 1.3e+01, 1.32e+01, 1.34e+01, 1.36e+01, 1.38e+01, 1.4e+01, 1.42e+01, 1.44e+01, 1.46e+01, 1.48e+01, 1.5e+01, 1.52e+01, 1.54e+01, 1.56e+01, 1.58e+01, 1.6e+01, 1.62e+01, 1.64e+01, 1.66e+01, 1.68e+01, 1.7e+01, 1.72e+01, 1.74e+01, 1.76e+01, 1.78e+01, 1.8e+01, 1.82e+01, 1.84e+01, 1.86e+01, 1.88e+01, 1.9e+01, 1.92e+01, 1.94e+01, 1.96e+01, 1.98e+01, 2e+01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Latch.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Latch.txt new file mode 100644 index 0000000000..f680d3394d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Latch.txt @@ -0,0 +1,26 @@ +last-generated=2020-10-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+01] +falCleTruIni.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +falCleTruIni.clr=[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, 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] +falCleTruIni.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +falCleFalIni.u=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +falCleFalIni.clr=[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, 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] +falCleFalIni.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truCleTruIni.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +truCleTruIni.clr=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truCleTruIni.y=[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, 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] +truCleFalIni.u=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truCleFalIni.clr=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truCleFalIni.y=[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, 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] +swiCleInp.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +swiCleInp.clr=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +swiCleInp.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +swiCleInp1.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +swiCleInp1.clr=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +swiCleInp1.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_MultiAnd.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_MultiAnd.txt new file mode 100644 index 0000000000..36a6688acd --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_MultiAnd.txt @@ -0,0 +1,20 @@ +last-generated=2019-06-06 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +mulAnd0.y=[0e+00, 0e+00] +mulAnd1.u[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +mulAnd1.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +time=[0e+00, 1e+01] +mulAnd2.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +mulAnd2.u[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +mulAnd2.u[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +mulAnd5.u[4]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +mulAnd5.u[5]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +mulAnd5.u[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +mulAnd5.u[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +mulAnd5.u[3]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +mulAnd5.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_MultiOr.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_MultiOr.txt new file mode 100644 index 0000000000..ed638eae9d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_MultiOr.txt @@ -0,0 +1,20 @@ +last-generated=2019-06-06 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +mulOr1.u[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +mulOr1.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +mulOr0.y=[0e+00, 0e+00] +time=[0e+00, 1e+01] +mulOr2.u[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +mulOr2.u[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +mulOr2.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +mulOr5.u[5]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +mulOr5.u[4]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +mulOr5.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +mulOr5.u[3]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +mulOr5.u[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +mulOr5.u[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Nand.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Nand.txt new file mode 100644 index 0000000000..8b39e81f29 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Nand.txt @@ -0,0 +1,11 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +nand1.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +nand1.u2=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +nand1.u1=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +time=[0e+00, 5e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Nor.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Nor.txt new file mode 100644 index 0000000000..e8fb5d1406 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Nor.txt @@ -0,0 +1,11 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +nor1.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +nor1.u1=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +nor1.u2=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +time=[0e+00, 5e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Not.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Not.txt new file mode 100644 index 0000000000..4c8489f314 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Not.txt @@ -0,0 +1,10 @@ +last-generated=2019-05-21 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +not1.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +not1.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +time=[0e+00, 5e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Or.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Or.txt new file mode 100644 index 0000000000..c84b2a00a9 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Or.txt @@ -0,0 +1,11 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +or1.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +or1.u2=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +or1.u1=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00] +time=[0e+00, 1e+01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Proof.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Proof.txt new file mode 100644 index 0000000000..12d03b1595 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Proof.txt @@ -0,0 +1,32 @@ +last-generated=2023-04-12 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+01] +pro.u_m=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro.u_s=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro.yLocFal=[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, 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] +pro.yLocTru=[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, 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] +pro1.u_m=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro1.u_s=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro1.yLocFal=[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, 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] +pro1.yLocTru=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro2.u_m=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro2.u_s=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro2.yLocFal=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro2.yLocTru=[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, 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] +pro3.u_m=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro3.u_s=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro3.yLocFal=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro3.yLocTru=[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, 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] +pro4.u_m=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro4.u_s=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro4.yLocFal=[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, 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] +pro4.yLocTru=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +pro5.u_m=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +pro5.u_s=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +pro5.yLocFal=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +pro5.yLocTru=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Switch.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Switch.txt new file mode 100644 index 0000000000..59d9815fa1 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Switch.txt @@ -0,0 +1,12 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +logicalSwitch.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.999952316238661e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +logicalSwitch.u1=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.999952316238661e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.999952316238883e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +logicalSwitch.u2=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +logicalSwitch.u3=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +time=[0e+00, 5e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Timer.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Timer.txt new file mode 100644 index 0000000000..10e977f7b7 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Timer.txt @@ -0,0 +1,20 @@ +last-generated=2020-08-29 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 5e+00] +noThr.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.999976158119219e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +noThr.y=[0e+00, 5e-02, 1e-01, 1.5e-01, 2e-01, 2.5e-01, 3e-01, 3.5e-01, 4e-01, 4.5e-01, 5e-01, 5.5e-01, 6e-01, 6.5e-01, 7.000000000000001e-01, 7.5e-01, 8e-01, 8.500000000000001e-01, 8.999999999999999e-01, 9.5e-01, 1e+00, 1.05e+00, 1.1e+00, 1.15e+00, 1.2e+00, 1.25e+00, 1.3e+00, 1.35e+00, 1.39999663829489e+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, 5.000004842880923e-02, 1.000000968576189e-01, 1.499999105928906e-01, 1.999999552964455e-01, 2.5e-01, 3.00000059604645e-01, 3.50000089407251e-01, 3.999999105927485e-01, 4.499999403953554e-01, 5e-01, 5.500000596046446e-01, 6.000001192092896e-01, 6.499998807907108e-01, 6.999999403953554e-01, 7.5e-01, 8.00000059604645e-01, 8.500001192092892e-01, 8.999998807907104e-01, 9.49999940395355e-01, 1e+00, 1.05e+00, 1.10000011920929e+00, 1.14999988079071e+00, 1.2e+00, 1.25e+00, 1.3e+00, 1.35000011920929e+00, 1.399999880790711e+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, 4.99998100145297e-02, 1.000000968553448e-01, 1.499999105951639e-01, 2.000001937105483e-01, 2.5e-01, 2.999998211900444e-01, 3.500000894049773e-01, 3.999999105950227e-01, 4.500001788099556e-01, 5e-01, 5.499998211906129e-01, 6.000001192070163e-01, 6.499998807929845e-01, 7.000001788093863e-01, 7.5e-01, 7.999998211906129e-01, 8.500001192070155e-01, 8.999998807929845e-01, 9.500001788093871e-01, 1e+00] +noThr.t=[0e+00, 0e+00] +noThr.passed=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.999976158119219e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +thrTim.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.999976158119219e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +thrTim.y=[0e+00, 5e-02, 1e-01, 1.5e-01, 2e-01, 2.5e-01, 3e-01, 3.5e-01, 4e-01, 4.5e-01, 5e-01, 5.5e-01, 6e-01, 6.5e-01, 7.000000000000001e-01, 7.5e-01, 8e-01, 8.500000000000001e-01, 8.999999999999999e-01, 9.5e-01, 1e+00, 1.05e+00, 1.1e+00, 1.15e+00, 1.2e+00, 1.25e+00, 1.3e+00, 1.35e+00, 1.39999663829489e+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, 5.000004842880923e-02, 1.000000968576189e-01, 1.499999105928906e-01, 1.999999552964455e-01, 2.5e-01, 3.00000059604645e-01, 3.50000089407251e-01, 3.999999105927485e-01, 4.499999403953554e-01, 5e-01, 5.500000596046446e-01, 6.000001192092896e-01, 6.499998807907108e-01, 6.999999403953554e-01, 7.5e-01, 8.00000059604645e-01, 8.500001192092892e-01, 8.999998807907104e-01, 9.49999940395355e-01, 1e+00, 1.05e+00, 1.10000011920929e+00, 1.14999988079071e+00, 1.2e+00, 1.25e+00, 1.3e+00, 1.35000011920929e+00, 1.399999880790711e+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, 4.99998100145297e-02, 1.000000968553448e-01, 1.499999105951639e-01, 2.000001937105483e-01, 2.5e-01, 2.999998211900444e-01, 3.500000894049773e-01, 3.999999105950227e-01, 4.500001788099556e-01, 5e-01, 5.499998211906129e-01, 6.000001192070163e-01, 6.499998807929845e-01, 7.000001788093863e-01, 7.5e-01, 7.999998211906129e-01, 8.500001192070155e-01, 8.999998807929845e-01, 9.500001788093871e-01, 1e+00] +thrTim.t=[3.00000011920929e-01, 3.00000011920929e-01] +thrTim.passed=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.999976158119219e-01, 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, 4.768376156154474e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +thrTim1.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +thrTim1.y=[0e+00, 5e-02, 1e-01, 1.5e-01, 2e-01, 2.5e-01, 3e-01, 3.5e-01, 4e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5.000004842880945e-02, 9.999997764824053e-02, 1.500000298023225e-01, 1.999999552964453e-01, 2.5e-01, 3.000000596046448e-01, 3.499999701976777e-01, 4.000000298023225e-01, 4.499999403953552e-01, 5e-01, 5.500000596046448e-01, 5.99999999999858e-01, 6.500000000001422e-01, 6.999999403953554e-01, 7.5e-01, 8.000000596046446e-01, 8.49999999999858e-01, 9.00000000000142e-01, 9.499999403953554e-01, 1e+00, 1.05e+00, 1.10000011920929e+00, 1.14999988079071e+00, 1.2e+00, 1.25e+00, 1.3e+00, 1.350000119209289e+00, 1.39999988079071e+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, 5.000004842880923e-02, 1.000000968576189e-01, 1.499999105928906e-01, 1.999999552964455e-01, 2.5e-01, 3.00000059604645e-01, 3.500000894072515e-01, 3.99999910592749e-01, 4.49999940395355e-01, 5e-01, 5.500000596046446e-01, 6.000001192092892e-01, 6.499998807907104e-01, 6.999999403953554e-01, 7.5e-01, 8.000000596046446e-01, 8.500001192092896e-01, 8.999998807907108e-01, 9.499999403953554e-01, 1e+00, 1.049999761585969e+00, 1.100000119207015e+00, 1.149999880792984e+00, 1.200000238414032e+00, 1.25e+00, 1.299999761585968e+00, 1.350000119207015e+00, 1.399999880792985e+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] +thrTim1.t=[3.00000011920929e-01, 3.00000011920929e-01] +thrTim1.passed=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+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, 4.768376133949992e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 4.768376156154474e-06, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TimerAccumulating.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TimerAccumulating.txt new file mode 100644 index 0000000000..4f358e7cf9 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TimerAccumulating.txt @@ -0,0 +1,22 @@ +last-generated=2020-08-27 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 5e+00] +noThr.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +noThr.y=[0e+00, 5e-02, 1e-01, 1.5e-01, 2e-01, 2.5e-01, 3e-01, 3.5e-01, 4e-01, 4.5e-01, 5e-01, 5.5e-01, 6e-01, 6.5e-01, 7.000000000000001e-01, 7.5e-01, 8e-01, 8.500000000000001e-01, 8.999999999999999e-01, 9.5e-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, 1.05e+00, 1.10000011920929e+00, 1.14999988079071e+00, 1.2e+00, 1.25e+00, 1.3e+00, 1.350000119209289e+00, 1.39999988079071e+00, 1.45e+00, 1.5e+00, 1.55e+00, 1.60000011920929e+00, 1.649999880790711e+00, 1.7e+00, 1.75e+00, 1.8e+00, 1.850000119209289e+00, 1.89999988079071e+00, 1.95e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.049999761585969e+00, 2.099999999997726e+00, 2.150000000002273e+00, 2.200000238414032e+00, 2.25e+00, 2.299999761585968e+00, 2.349999999997726e+00, 2.400000000002274e+00, 2.450000238414032e+00, 2.5e+00, 2.549999761585968e+00, 2.599999999997727e+00, 2.650000000002274e+00, 2.700000238414031e+00, 2.75e+00, 2.799999761585968e+00, 2.849999999997726e+00, 2.900000000002274e+00, 2.950000238414032e+00, 3e+00] +thrTim.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +thrTim.passed=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +thrTim.y=[0e+00, 5e-02, 1e-01, 1.5e-01, 2e-01, 2.5e-01, 3e-01, 3.5e-01, 4e-01, 4.5e-01, 5e-01, 5.5e-01, 6e-01, 6.5e-01, 7.000000000000001e-01, 7.5e-01, 8e-01, 8.500000000000001e-01, 8.999999999999999e-01, 9.5e-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, 1.05e+00, 1.10000011920929e+00, 1.14999988079071e+00, 1.2e+00, 1.25e+00, 1.3e+00, 1.350000119209289e+00, 1.39999988079071e+00, 1.45e+00, 1.5e+00, 1.55e+00, 1.60000011920929e+00, 1.649999880790711e+00, 1.7e+00, 1.75e+00, 1.8e+00, 1.850000119209289e+00, 1.89999988079071e+00, 1.95e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.049999761585969e+00, 2.099999999997726e+00, 2.150000000002273e+00, 2.200000238414032e+00, 2.25e+00, 2.299999761585968e+00, 2.349999999997726e+00, 2.400000000002274e+00, 2.450000238414032e+00, 2.5e+00, 2.549999761585968e+00, 2.599999999997727e+00, 2.650000000002274e+00, 2.700000238414031e+00, 2.75e+00, 2.799999761585968e+00, 2.849999999997726e+00, 2.900000000002274e+00, 2.950000238414032e+00, 3e+00] +thrTim.t=[1e+00, 1e+00] +noThrWitRes.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +noThrWitRes.reset=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +noThrWitRes.y=[0e+00, 5e-02, 1e-01, 1.5e-01, 2e-01, 2.5e-01, 3e-01, 3.5e-01, 4e-01, 4.5e-01, 5e-01, 5.5e-01, 6e-01, 6.5e-01, 7.000000000000001e-01, 7.5e-01, 8e-01, 8.500000000000001e-01, 8.999999999999999e-01, 9.5e-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, 1.05e+00, 1.10000011920929e+00, 1.14999988079071e+00, 1.2e+00, 1.25e+00, 1.3e+00, 1.350000119209289e+00, 1.39999988079071e+00, 1.45e+00, 1.5e+00, 1.55e+00, 1.60000011920929e+00, 1.649999880790711e+00, 1.7e+00, 1.75e+00, 1.8e+00, 1.850000119209289e+00, 1.89999988079071e+00, 1.95e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 4.99998100145297e-02, 1.000000968553448e-01, 1.499999105951639e-01, 2.000001937105483e-01, 2.5e-01, 2.999998211900444e-01, 3.500000894049773e-01, 3.999999105950227e-01, 4.500001788099556e-01, 5e-01, 5.499998211906129e-01, 6.000001192070163e-01, 6.499998807929845e-01, 7.000001788093863e-01, 7.5e-01, 7.999998211906129e-01, 8.500001192070155e-01, 8.999998807929845e-01, 9.500001788093871e-01, 1e+00] +thrTimWitRes.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +thrTimWitRes.reset=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +thrTimWitRes.passed=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +thrTimWitRes.y=[0e+00, 5e-02, 1e-01, 1.5e-01, 2e-01, 2.5e-01, 3e-01, 3.5e-01, 4e-01, 4.5e-01, 5e-01, 5.5e-01, 6e-01, 6.5e-01, 7.000000000000001e-01, 7.5e-01, 8e-01, 8.500000000000001e-01, 8.999999999999999e-01, 9.5e-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, 1.05e+00, 1.10000011920929e+00, 1.14999988079071e+00, 1.2e+00, 1.25e+00, 1.3e+00, 1.350000119209289e+00, 1.39999988079071e+00, 1.45e+00, 1.5e+00, 1.55e+00, 1.60000011920929e+00, 1.649999880790711e+00, 1.7e+00, 1.75e+00, 1.8e+00, 1.850000119209289e+00, 1.89999988079071e+00, 1.95e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 4.99998100145297e-02, 1.000000968553448e-01, 1.499999105951639e-01, 2.000001937105483e-01, 2.5e-01, 2.999998211900444e-01, 3.500000894049773e-01, 3.999999105950227e-01, 4.500001788099556e-01, 5e-01, 5.499998211906129e-01, 6.000001192070163e-01, 6.499998807929845e-01, 7.000001788093863e-01, 7.5e-01, 7.999998211906129e-01, 8.500001192070155e-01, 8.999998807929845e-01, 9.500001788093871e-01, 1e+00] +thrTimWitRes.t=[1e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TimerAccumulatingNegativeStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TimerAccumulatingNegativeStartTime.txt new file mode 100644 index 0000000000..a6d1df0b9d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TimerAccumulatingNegativeStartTime.txt @@ -0,0 +1,24 @@ +last-generated=2020-10-20 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[-1e+01, 5e+00] +noThr.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +noThr.y=[0e+00, 1.500003874214756e-01, 2.999998211843611e-01, 4.500001788156389e-01, 5.999996423804679e-01, 7.5e-01, 9.000003576195321e-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, 1.149999880791469e+00, 1.299999761582937e+00, 1.450000238417063e+00, 1.600000119208531e+00, 1.75e+00, 1.899999880791469e+00, 2.049999761582937e+00, 2.200000238417064e+00, 2.35e+00, 2.5e+00, 2.65e+00, 2.799999761582936e+00, 2.950000238417064e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3.05e+00, 3.199999999999999e+00, 3.35e+00, 3.5e+00, 3.65e+00, 3.800000000000001e+00, 3.95e+00, 4.099999880790901e+00, 4.25e+00, 4.400000119209101e+00, 4.55000023841801e+00, 4.699999761581989e+00, 4.849999880790899e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5.099999880790899e+00, 5.25e+00, 5.400000119209101e+00, 5.550000238418011e+00, 5.69999976158199e+00, 5.849999880790901e+00, 6e+00, 6.15e+00, 6.300000238418199e+00, 6.449999761581799e+00, 6.6e+00, 6.75e+00, 6.9e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00] +noThr.t=[0e+00, 0e+00] +thrTim.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +thrTim.passed=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +thrTim.y=[0e+00, 1.500003874214756e-01, 2.999998211843611e-01, 4.500001788156389e-01, 5.999996423804679e-01, 7.5e-01, 9.000003576195321e-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, 1.149999880791469e+00, 1.299999761582937e+00, 1.450000238417063e+00, 1.600000119208531e+00, 1.75e+00, 1.899999880791469e+00, 2.049999761582937e+00, 2.200000238417064e+00, 2.35e+00, 2.5e+00, 2.65e+00, 2.799999761582936e+00, 2.950000238417064e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3.05e+00, 3.199999999999999e+00, 3.35e+00, 3.5e+00, 3.65e+00, 3.800000000000001e+00, 3.95e+00, 4.099999880790901e+00, 4.25e+00, 4.400000119209101e+00, 4.55000023841801e+00, 4.699999761581989e+00, 4.849999880790899e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5.099999880790899e+00, 5.25e+00, 5.400000119209101e+00, 5.550000238418011e+00, 5.69999976158199e+00, 5.849999880790901e+00, 6e+00, 6.15e+00, 6.300000238418199e+00, 6.449999761581799e+00, 6.6e+00, 6.75e+00, 6.9e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00, 7e+00] +thrTim.t=[1e+00, 1e+00] +noThrWitRes.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +noThrWitRes.reset=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +noThrWitRes.y=[0e+00, 1.500003874214756e-01, 2.999998211843611e-01, 4.500001788156389e-01, 5.999996423804679e-01, 7.5e-01, 9.000003576195321e-01, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.499999105936727e-01, 2.999998211873918e-01, 4.500001788126082e-01, 6.000001192085312e-01, 7.5e-01, 8.999998807914688e-01, 1.049999761582938e+00, 1.200000238417063e+00, 1.350000119208531e+00, 1.5e+00, 1.649999880791469e+00, 1.799999761582937e+00, 1.950000238417063e+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, 5.000004842881515e-02, 1.999999552964683e-01, 3.500000894063036e-01, 5e-01, 6.499998807914688e-01, 8.000000596046455e-01, 9.499999403953554e-01, 1.100000000000001e+00, 1.25e+00, 1.4e+00, 5.000004842862479e-02, 1.999999552966578e-01, 3.499999701976536e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5.999999999999522e-01, 7.5e-01, 9.000000000000478e-01, 1.050000000000001e+00, 1.200000000000001e+00, 1.350000000000001e+00, 1.5e+00, 1.499999105936727e-01, 3.000000596046911e-01, 4.499999403953072e-01, 6.000001192085312e-01, 7.5e-01, 8.999998807914688e-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] +noThrWitRes.t=[0e+00, 0e+00] +thrTimWitRes.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +thrTimWitRes.reset=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +thrTimWitRes.passed=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+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] +thrTimWitRes.y=[0e+00, 1.500003874214756e-01, 2.999998211843611e-01, 4.500001788156389e-01, 5.999996423804679e-01, 7.5e-01, 9.000003576195321e-01, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.499999105936727e-01, 2.999998211873918e-01, 4.500001788126082e-01, 6.000001192085312e-01, 7.5e-01, 8.999998807914688e-01, 1.049999761582938e+00, 1.200000238417063e+00, 1.350000119208531e+00, 1.5e+00, 1.649999880791469e+00, 1.799999761582937e+00, 1.950000238417063e+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, 5.000004842881515e-02, 1.999999552964683e-01, 3.500000894063036e-01, 5e-01, 6.499998807914688e-01, 8.000000596046455e-01, 9.499999403953554e-01, 1.100000000000001e+00, 1.25e+00, 1.4e+00, 5.000004842862479e-02, 1.999999552966578e-01, 3.499999701976536e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5.999999999999522e-01, 7.5e-01, 9.000000000000478e-01, 1.050000000000001e+00, 1.200000000000001e+00, 1.350000000000001e+00, 1.5e+00, 1.499999105936727e-01, 3.000000596046911e-01, 4.499999403953072e-01, 6.000001192085312e-01, 7.5e-01, 8.999998807914688e-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] +thrTimWitRes.t=[1e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TimerNegativeStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TimerNegativeStartTime.txt new file mode 100644 index 0000000000..ad4188a351 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TimerNegativeStartTime.txt @@ -0,0 +1,16 @@ +last-generated=2020-10-20 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[-1e+01, 5e+00] +noThr.u=[1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999992052706332e-01, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00] +noThr.y=[0e+00, 1.500003874214756e-01, 2.999998211843611e-01, 0e+00, 0e+00, 0e+00, 0e+00, 4.999981000849017e-02, 2.000001937168001e-01, 3.499996125785244e-01, 5e-01, 6.500003576195321e-01, 7.999998211841716e-01, 9.500001788158284e-01, 1.100000119208531e+00, 1.25e+00, 1.399999880791469e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.499999105936727e-01, 2.999998211873918e-01, 4.500001788126082e-01, 6.000001192085312e-01, 7.5e-01, 8.999998807914688e-01, 1.049999761582938e+00, 1.200000238417063e+00, 1.350000119208531e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.000000968568614e-01, 2.5e-01, 3.999999105936955e-01, 5.499998211872024e-01, 7.000001788127976e-01, 8.500001192085321e-01, 1e+00, 1.149999880791468e+00, 1.300000000000189e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5.000004842881515e-02, 1.999999552964683e-01, 3.500000894063036e-01, 5e-01, 6.499998807914688e-01, 8.000000596046455e-01, 9.499999403953554e-01, 1.100000000000001e+00, 1.25e+00, 1.399998863537047e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.500000298022991e-01, 3.000000000000125e-01, 4.499999999999875e-01, 6.000000298023161e-01, 7.5e-01, 8.9999997764826e-01, 1.049999951571227e+00, 1.200000044703476e+00, 1.350000029802316e+00, 0e+00, 0e+00, 0e+00, 0e+00, 9.999997764823416e-02, 2.5e-01, 4.000000298023464e-01, 5.50000059604456e-01, 6.999999403955458e-01, 8.49999999999954e-01, 1e+00, 1.149999880791469e+00, 1.300000000000188e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5.000004842881604e-02, 1.999999552964683e-01, 3.500000894063036e-01, 5e-01, 6.499998807914688e-01, 8.000000596046455e-01, 9.499999403953563e-01, 1.100000119208531e+00, 1.25e+00, 1.399999880791467e+00, 0e+00, 0e+00, 0e+00, 0e+00] +noThr.t=[0e+00, 0e+00] +noThr.passed=[1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999992052706332e-01, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00] +thrTim.u=[1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999992052706332e-01, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00] +thrTim.y=[0e+00, 1.500003874214756e-01, 2.999998211843611e-01, 0e+00, 0e+00, 0e+00, 0e+00, 4.999981000849017e-02, 2.000001937168001e-01, 3.499996125785244e-01, 5e-01, 6.500003576195321e-01, 7.999998211841716e-01, 9.500001788158284e-01, 1.100000119208531e+00, 1.25e+00, 1.399999880791469e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.499999105936727e-01, 2.999998211873918e-01, 4.500001788126082e-01, 6.000001192085312e-01, 7.5e-01, 8.999998807914688e-01, 1.049999761582938e+00, 1.200000238417063e+00, 1.350000119208531e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.000000968568614e-01, 2.5e-01, 3.999999105936955e-01, 5.499998211872024e-01, 7.000001788127976e-01, 8.500001192085321e-01, 1e+00, 1.149999880791468e+00, 1.300000000000189e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5.000004842881515e-02, 1.999999552964683e-01, 3.500000894063036e-01, 5e-01, 6.499998807914688e-01, 8.000000596046455e-01, 9.499999403953554e-01, 1.100000000000001e+00, 1.25e+00, 1.399998863537047e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.500000298022991e-01, 3.000000000000125e-01, 4.499999999999875e-01, 6.000000298023161e-01, 7.5e-01, 8.9999997764826e-01, 1.049999951571227e+00, 1.200000044703476e+00, 1.350000029802316e+00, 0e+00, 0e+00, 0e+00, 0e+00, 9.999997764823416e-02, 2.5e-01, 4.000000298023464e-01, 5.50000059604456e-01, 6.999999403955458e-01, 8.49999999999954e-01, 1e+00, 1.149999880791469e+00, 1.300000000000188e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5.000004842881604e-02, 1.999999552964683e-01, 3.500000894063036e-01, 5e-01, 6.499998807914688e-01, 8.000000596046455e-01, 9.499999403953563e-01, 1.100000119208531e+00, 1.25e+00, 1.399999880791467e+00, 0e+00, 0e+00, 0e+00, 0e+00] +thrTim.t=[3.00000011920929e-01, 3.00000011920929e-01] +thrTim.passed=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999992052706332e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Toggle.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Toggle.txt new file mode 100644 index 0000000000..d5edae9d48 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Toggle.txt @@ -0,0 +1,26 @@ +last-generated=2020-10-14 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+01] +falCleTruIni.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +falCleTruIni.clr=[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, 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] +falCleTruIni.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +falCleFalIni.u=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +falCleFalIni.clr=[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, 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] +falCleFalIni.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truCleTruIni.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +truCleTruIni.clr=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truCleTruIni.y=[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, 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] +truCleFalIni.u=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truCleFalIni.clr=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truCleFalIni.y=[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, 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] +swiCleInp.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +swiCleInp.clr=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +swiCleInp.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +swiCleInp1.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +swiCleInp1.clr=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +swiCleInp1.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TrueDelay.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TrueDelay.txt new file mode 100644 index 0000000000..2525ae76f4 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TrueDelay.txt @@ -0,0 +1,26 @@ +last-generated=2019-02-11 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +onDelay4.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +onDelay3.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +onDelay7.y=[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, 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] +onDelay2.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +onDelay0.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +onDelay6.y=[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, 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] +time=[0e+00, 5e+00] +onDelay1.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +onDelay5.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +onDelay0.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +onDelay66.y=[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, 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] +onDelay77.y=[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, 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] +onDelay11.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +onDelay55.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +onDelay22.y=[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, 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] +onDelay00.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +onDelay00.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +onDelay44.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +onDelay33.y=[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, 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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TrueFalseHold.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TrueFalseHold.txt new file mode 100644 index 0000000000..1e8c5f9d0e --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_TrueFalseHold.txt @@ -0,0 +1,26 @@ +last-generated=2024-08-26 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 7.2e+03] +truFalHol.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +truFalHol.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +truFalHol1.u=[1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00] +truFalHol1.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truFalHol2.u=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truFalHol2.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truFalHol3.u=[0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00] +truFalHol3.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +truFalHol4.u=[0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +truFalHol4.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truFalHol5.u=[0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00] +truFalHol5.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00] +truFalHol6.u=[1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +truFalHol6.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +truFalHol7.u=[1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00] +truFalHol7.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00] +truFalHol8.u=[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, 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] +truFalHol8.y=[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, 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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_VariablePulse.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_VariablePulse.txt new file mode 100644 index 0000000000..4247cb8392 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_VariablePulse.txt @@ -0,0 +1,22 @@ +last-generated=2023-03-29 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 3.6e+03] +fal.u=[0e+00, 0e+00] +fal.y=[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, 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] +tru.u=[1e+00, 1e+00] +tru.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +conTru.u=[7.5e-01, 7.5e-01] +conTru.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +truFal.u=[6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +truFal.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +falTru.u=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 6.499999761581421e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +falTru.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +falTru1.u=[3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01] +falTru1.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.999999999997726e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +conChaWid.u=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 2.133333310484886e-02, 5.33333346247673e-02, 8.533333241939545e-02, 1.173333302140236e-01, 1.493333280086517e-01, 1.813333332538605e-01, 2.133333384990692e-01, 2.453333288431168e-01, 2.773333191871643e-01, 3.09333324432373e-01, 3.413333296775818e-01, 3.733333349227905e-01, 4.053333401679993e-01, 4.37333345413208e-01, 4.693333208560944e-01, 5.013333559036255e-01, 5.333333611488342e-01, 5.653333067893982e-01, 5.97333312034607e-01, 6.293333172798158e-01, 6.613333225250244e-01, 6.933333277702332e-01, 7.253333330154419e-01, 7.573333382606506e-01, 7.893333435058594e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01, 8.00000011920929e-01] +conChaWid.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_VariablePulseMinHold.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_VariablePulseMinHold.txt new file mode 100644 index 0000000000..96463eafb3 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_VariablePulseMinHold.txt @@ -0,0 +1,10 @@ +last-generated=2023-04-07 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 5e+00] +conChaWid.u=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 8.999999761581421e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01] +conChaWid.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.999809269502904e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Xor.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Xor.txt new file mode 100644 index 0000000000..042df9cce9 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Logical_Validation_Xor.txt @@ -0,0 +1,11 @@ +last-generated=2018-06-19 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +xor1.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +xor1.u1=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +xor1.u2=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +time=[0e+00, 5e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Psychrometrics_Validation_DewPoint_TDryBulPhi.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Psychrometrics_Validation_DewPoint_TDryBulPhi.txt new file mode 100644 index 0000000000..cf74e4c50e --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Psychrometrics_Validation_DewPoint_TDryBulPhi.txt @@ -0,0 +1,14 @@ +last-generated=2023-03-17 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +dewBulPhi.TDryBul=[3.025499877929688e+02, 3.025499877929688e+02] +dewBulPhi.phi=[1.000000047497451e-03, 1.100000016391277e-02, 2.100000016391277e-02, 3.100000016391215e-02, 4.100000202655792e-02, 5.099999830126763e-02, 6.100000202655792e-02, 7.100000202655682e-02, 8.100000202655126e-02, 9.099999457599064e-02, 1.010000020265579e-01, 1.110000020265557e-01, 1.210000020265579e-01, 1.310000020265579e-01, 1.410000020265579e-01, 1.509999871254411e-01, 1.610000020265579e-01, 1.710000020265579e-01, 1.8099998712545e-01, 1.910000020265579e-01, 2.010000020265579e-01, 2.110000020265579e-01, 2.210000020265579e-01, 2.310000020265579e-01, 2.410000020265579e-01, 2.509999871253967e-01, 2.610000169277191e-01, 2.709999871253967e-01, 2.809999871254145e-01, 2.910000169277191e-01, 3.009999871253967e-01, 3.109999871253967e-01, 3.210000169277191e-01, 3.309999871253967e-01, 3.409999871253968e-01, 3.510000169276303e-01, 3.609999871253967e-01, 3.709999871253967e-01, 3.810000169276481e-01, 3.910000169277191e-01, 4.009999871253968e-01, 4.110000169276658e-01, 4.210000169277191e-01, 4.309999871253967e-01, 4.410000169276836e-01, 4.510000169277191e-01, 4.609999871253967e-01, 4.709999871253967e-01, 4.810000169277191e-01, 4.909999871253967e-01, 5.009999871253967e-01, 5.109999871253967e-01, 5.210000467294731e-01, 5.310000467291889e-01, 5.409999871253968e-01, 5.50999987125752e-01, 5.609999871253968e-01, 5.709999871253967e-01, 5.809999871253967e-01, 5.910000467292599e-01, 6.009999871253967e-01, 6.10999987125823e-01, 6.209999871255388e-01, 6.309999871253967e-01, 6.409999871253967e-01, 6.51000046729331e-01, 6.609999871253968e-01, 6.709999871258941e-01, 6.809999871256099e-01, 6.909999871254677e-01, 7.009999871253967e-01, 7.11000046729402e-01, 7.209999871253967e-01, 7.309999871253967e-01, 7.409999871256809e-01, 7.509999871253967e-01, 7.609999871253967e-01, 7.710000467294731e-01, 7.810000467291889e-01, 7.909999871253968e-01, 8.00999987125752e-01, 8.109999871253968e-01, 8.209999871253967e-01, 8.309999871253967e-01, 8.410000467292599e-01, 8.509999871253967e-01, 8.60999987125823e-01, 8.709999871255388e-01, 8.809999871253967e-01, 8.909999871253967e-01, 9.01000046729331e-01, 9.109999871253968e-01, 9.209999871258941e-01, 9.309999871256099e-01, 9.409999871254677e-01, 9.509999871253967e-01, 9.61000046729402e-01, 9.709999871253967e-01, 9.809999871253967e-01, 9.909999871256809e-01, 1.001000046730042e+00] +dewBulPhi.TDewPoi=[2.065773162841797e+02, 2.392031557548283e+02, 2.474015963270481e+02, 2.523485110096366e+02, 2.559273379205333e+02, 2.587463376973915e+02, 2.610800173733468e+02, 2.630761718188159e+02, 2.648235476538915e+02, 2.663796991741048e+02, 2.677841184510048e+02, 2.690651245842417e+02, 2.702437136804986e+02, 2.713358159284534e+02, 2.723539733296003e+02, 2.733081049140503e+02, 2.742061770680951e+02, 2.750548704569849e+02, 2.758595880592341e+02, 2.766249696597002e+02, 2.773549192200448e+02, 2.780527653382751e+02, 2.787213745894622e+02, 2.793632809864289e+02, 2.799806826967808e+02, 2.805754699707031e+02, 2.811493840810134e+02, 2.817039483875499e+02, 2.82240478452488e+02, 2.827601932968819e+02, 2.832642205978712e+02, 2.837535399237388e+02, 2.842290347582305e+02, 2.846914972028692e+02, 2.851417234734694e+02, 2.855803530405896e+02, 2.860080255173247e+02, 2.864252927717175e+02, 2.868327333458724e+02, 2.872308050049894e+02, 2.876199643696896e+02, 2.880006104859673e+02, 2.883731999451037e+02, 2.88738006333028e+02, 2.890954285510159e+02, 2.894457706765816e+02, 2.897893368737501e+02, 2.901264038483204e+02, 2.904572147064602e+02, 2.907820126319718e+02, 2.911010437011719e+02, 2.914145510770854e+02, 2.917226873493539e+02, 2.920256661414605e+02, 2.923236687984134e+02, 2.926168819769795e+02, 2.92905486992152e+02, 2.931895753966712e+02, 2.934693608142692e+02, 2.937449347983372e+02, 2.9401647884864e+02, 2.942840877540939e+02, 2.945478819550065e+02, 2.948079835213991e+02, 2.950645145240208e+02, 2.95317535998828e+02, 2.955672295731312e+02, 2.958135982238379e+02, 2.960568235573767e+02, 2.962969360919458e+02, 2.965340273800928e+02, 2.967681889752118e+02, 2.969994805424178e+02, 2.972279963925321e+02, 2.974537961725182e+02, 2.976769714355469e+02, 2.97897583216629e+02, 2.981156620340701e+02, 2.983312994406048e+02, 2.985445246910535e+02, 2.987554318786176e+02, 2.989640502434552e+02, 2.991704713380871e+02, 2.993746951629088e+02, 2.995767827535876e+02, 2.997768244760599e+02, 2.999747921984574e+02, 3.00170806791635e+02, 3.003648377385237e+02, 3.005570071092179e+02, 3.007472843866486e+02, 3.009357294882586e+02, 3.011224056956905e+02, 3.013073423974587e+02, 3.014905395942193e+02, 3.016720583206516e+02, 3.018519290949924e+02, 3.020301813766213e+02, 3.022068783262569e+02, 3.023819883589196e+02, 3.025555725097656e+02] +dewBulPhi1.TDryBul=[2.751499938964844e+02, 2.755000000078239e+02, 2.758500061191635e+02, 2.762000122304928e+02, 2.765499878242645e+02, 2.768999938704046e+02, 2.772500000469436e+02, 2.776000060930837e+02, 2.779500122695953e+02, 2.782999876678407e+02, 2.78649993844325e+02, 2.790000000208638e+02, 2.793500061974026e+02, 2.797000123738686e+02, 2.800499877721141e+02, 2.803999936878467e+02, 2.807500001251826e+02, 2.811000060409243e+02, 2.814500119566661e+02, 2.817999878764238e+02, 2.821499937921656e+02, 2.825000002295014e+02, 2.828500061452432e+02, 2.832000120609849e+02, 2.835499879807426e+02, 2.838999938964844e+02, 2.842500003338203e+02, 2.846000057279678e+02, 2.849500121653037e+02, 2.852999880850615e+02, 2.856499934792091e+02, 2.859999999165449e+02, 2.863500063538808e+02, 2.867000117480284e+02, 2.870499876678407e+02, 2.873999941051221e+02, 2.877499994992696e+02, 2.881000059366055e+02, 2.884500123738686e+02, 2.887999882936991e+02, 2.891499936878467e+02, 2.895000001251826e+02, 2.898500065625185e+02, 2.902000119566661e+02, 2.905499878764238e+02, 2.908999943137597e+02, 2.912499997079073e+02, 2.916000061452431e+02, 2.919500125824154e+02, 2.92299987459294e+02, 2.926499938964844e+02, 2.930000003338153e+02, 2.933500067711462e+02, 2.937000132080406e+02, 2.940499870422118e+02, 2.943999934792153e+02, 2.947499999165437e+02, 2.951000063538771e+02, 2.954500127909533e+02, 2.957999887109608e+02, 2.961499930619462e+02, 2.964999994992771e+02, 2.96850005936608e+02, 2.972000123738661e+02, 2.975499882936917e+02, 2.978999947310226e+02, 2.982499990820079e+02, 2.986000055193389e+02, 2.989500119566698e+02, 2.992999878764251e+02, 2.996499943137535e+02, 3.000000007510844e+02, 3.003500051020698e+02, 3.007000115394007e+02, 3.01049987459299e+02, 3.013999938964844e+02, 3.017500003338153e+02, 3.021000067711462e+02, 3.024500132080406e+02, 3.027999870422118e+02, 3.031499934792153e+02, 3.034999999165437e+02, 3.038500063538771e+02, 3.042000127909533e+02, 3.045499887109608e+02, 3.048999930619462e+02, 3.052499994992771e+02, 3.05600005936608e+02, 3.059500123738661e+02, 3.062999882936917e+02, 3.066499947310226e+02, 3.069999990820079e+02, 3.073500055193389e+02, 3.077000119566698e+02, 3.080499878764251e+02, 3.083999943137535e+02, 3.087500007510844e+02, 3.091000051020698e+02, 3.094500115394007e+02, 3.09799987459299e+02, 3.101499938964844e+02] +dewBulPhi1.phi=[4.000000059604645e-01, 4.000000059604645e-01] +dewBulPhi1.TDewPoi=[2.626684875488281e+02, 2.629984741284641e+02, 2.633280029444009e+02, 2.636570434790808e+02, 2.639856567676397e+02, 2.643138122314281e+02, 2.646415405712587e+02, 2.64968811025411e+02, 2.652956848728699e+02, 2.656221617485101e+02, 2.65948211621355e+02, 2.662738647654841e+02, 2.665991211809249e+02, 2.669239808677227e+02, 2.672485046193361e+02, 2.675726316427612e+02, 2.678963929380077e+02, 2.682198180574179e+02, 2.685428769663272e+02, 2.688656006628442e+02, 2.691880187027857e+02, 2.695100710118745e+02, 2.698318176652792e+02, 2.701532591432663e+02, 2.704743654065147e+02, 2.707951965332031e+02, 2.711157229616941e+02, 2.714359432600547e+02, 2.717558898544522e+02, 2.720755617900644e+02, 2.723949581153801e+02, 2.727140807344769e+02, 2.730329286947886e+02, 2.733515315648373e+02, 2.736698912435897e+02, 2.73987976263757e+02, 2.743058467132951e+02, 2.746234739696814e+02, 2.749408570848606e+02, 2.752580265766292e+02, 2.755749815005515e+02, 2.758916932284662e+02, 2.762081913329521e+02, 2.765245053889889e+02, 2.768405762472174e+02, 2.771564945169732e+02, 2.774721677054336e+02, 2.777876892465828e+02, 2.781029971643941e+02, 2.784181515549723e+02, 2.787330932617188e+02, 2.79047851862701e+02, 2.793624578755014e+02, 2.796769112996838e+02, 2.799911797457794e+02, 2.803052974770389e+02, 2.806192321029002e+02, 2.809330446578713e+02, 2.812466741072988e+02, 2.815601814860135e+02, 2.818735344090218e+02, 2.821867366126465e+02, 2.824998167452311e+02, 2.828127442897796e+02, 2.831255497636518e+02, 2.834382331669204e+02, 2.837507621199031e+02, 2.840632013830197e+02, 2.843755185754237e+02, 2.846876831799028e+02, 2.84999756231352e+02, 2.853117377297781e+02, 2.856235952990979e+02, 2.859353326573719e+02, 2.862469784624751e+02, 2.865585021972656e+02, 2.868699343790308e+02, 2.871812750077706e+02, 2.87492524083485e+02, 2.878036797523277e+02, 2.881147457228643e+02, 2.884257201407008e+02, 2.887366030055163e+02, 2.890473943173041e+02, 2.893581245940448e+02, 2.896687614663513e+02, 2.899793086378415e+02, 2.902897947738118e+02, 2.906001893569749e+02, 2.909105229049089e+02, 2.91220795417323e+02, 2.915309745286496e+02, 2.918411249705692e+02, 2.921511838602638e+02, 2.924611817145133e+02, 2.92771118533493e+02, 2.930809943169912e+02, 2.93390776701694e+02, 2.937005609326397e+02, 2.940102536108511e+02, 2.943198852539062e+02] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Psychrometrics_Validation_SpecificEnthalpy_TDryBulPhi.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Psychrometrics_Validation_SpecificEnthalpy_TDryBulPhi.txt new file mode 100644 index 0000000000..0892662108 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Psychrometrics_Validation_SpecificEnthalpy_TDryBulPhi.txt @@ -0,0 +1,10 @@ +last-generated=2017-04-09 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +hBulPhi.h=[2.9640759765625e+04, 3.028464845189919e+04, 3.092906057569652e+04, 3.157399418389194e+04, 3.221945122961146e+04, 3.286542963935572e+04, 3.351193368049744e+04, 3.415896482446053e+04, 3.480651964709815e+04, 3.545460133065703e+04, 3.610321084081727e+04, 3.675234769496034e+04, 3.740201189308799e+04, 3.805220343519498e+04, 3.870292964870118e+04, 3.935417929919748e+04, 4.000596507696201e+04, 4.065828113331716e+04, 4.131112843914145e+04, 4.196450796835186e+04, 4.261842168005712e+04, 4.327286761680973e+04, 4.392785164061685e+04, 4.458336691391174e+04, 4.523942222711256e+04, 4.589601171875e+04, 4.655314125200234e+04, 4.721080788791137e+04, 4.786901164026062e+04, 4.852775445622979e+04, 4.918703827632564e+04, 4.984686312388474e+04, 5.050723094130677e+04, 5.116813585183247e+04, 5.182958960711538e+04, 5.24915824260252e+04, 5.315412014567485e+04, 5.381720280871418e+04, 5.448083234784316e+04, 5.514500485683971e+04, 5.580972616616484e+04, 5.647499242553858e+04, 5.714080946727526e+04, 5.780717530447435e+04, 5.847409000283355e+04, 5.914155548356964e+04, 5.98095697548764e+04, 6.047813679848735e+04, 6.114725462449383e+04, 6.181692514238264e+04, 6.24871484375e+04, 6.315793032751267e+04, 6.382926299985565e+04, 6.450115426697307e+04, 6.517359621291071e+04, 6.584660075994636e+04, 6.65201639018541e+04, 6.71942817323983e+04, 6.786896206400871e+04, 6.854419708426464e+04, 6.921999057578044e+04, 6.989635059468597e+04, 7.057327311461593e+04, 7.125075813570071e+04, 7.192880565788444e+04, 7.260741568120437e+04, 7.328658415579832e+04, 7.396632699021196e+04, 7.464663232577112e+04, 7.532750797491542e+04, 7.600895393770488e+04, 7.669096240162606e+04, 7.737353710899083e+04, 7.805667838411749e+04, 7.874039778524997e+04, 7.94246875e+04, 8.010954752847936e+04, 8.07949856830018e+04, 8.148098633867904e+04, 8.216756883873492e+04, 8.28547179305897e+04, 8.354245296097336e+04, 8.423075830504023e+04, 8.491964177523841e+04, 8.560910337155416e+04, 8.629913897928773e+04, 8.698975682423447e+04, 8.768095279529877e+04, 8.837272689253651e+04, 8.906508692839181e+04, 8.975802509047645e+04, 9.045154505559902e+04, 9.11456550912215e+04, 9.184034325296155e+04, 9.253562516585205e+04, 9.323148520493406e+04, 9.392793118263858e+04, 9.462495894264081e+04, 9.53225846064763e+04, 9.602079620889212e+04, 9.671959375e+04] +time=[0e+00, 1e+00] +phi.y=[1.000000047497451e-03, 1.100000016391277e-02, 2.100000016391277e-02, 3.100000016391215e-02, 4.100000202655792e-02, 5.099999830126763e-02, 6.100000202655792e-02, 7.100000202655682e-02, 8.100000202655126e-02, 9.099999457599064e-02, 1.010000020265579e-01, 1.110000020265557e-01, 1.210000020265579e-01, 1.310000020265579e-01, 1.410000020265579e-01, 1.509999871254411e-01, 1.610000020265579e-01, 1.710000020265579e-01, 1.8099998712545e-01, 1.910000020265579e-01, 2.010000020265579e-01, 2.110000020265579e-01, 2.210000020265579e-01, 2.310000020265579e-01, 2.410000020265579e-01, 2.509999871253967e-01, 2.610000169277191e-01, 2.709999871253967e-01, 2.809999871254145e-01, 2.910000169277191e-01, 3.009999871253967e-01, 3.109999871253967e-01, 3.210000169277191e-01, 3.309999871253967e-01, 3.409999871253968e-01, 3.510000169276303e-01, 3.609999871253967e-01, 3.709999871253967e-01, 3.810000169276481e-01, 3.910000169277191e-01, 4.009999871253968e-01, 4.110000169276658e-01, 4.210000169277191e-01, 4.309999871253967e-01, 4.410000169276836e-01, 4.510000169277191e-01, 4.609999871253967e-01, 4.709999871253967e-01, 4.810000169277191e-01, 4.909999871253967e-01, 5.009999871253967e-01, 5.109999871253967e-01, 5.210000467294731e-01, 5.310000467291889e-01, 5.409999871253968e-01, 5.50999987125752e-01, 5.609999871253968e-01, 5.709999871253967e-01, 5.809999871253967e-01, 5.910000467292599e-01, 6.009999871253967e-01, 6.10999987125823e-01, 6.209999871255388e-01, 6.309999871253967e-01, 6.409999871253967e-01, 6.51000046729331e-01, 6.609999871253968e-01, 6.709999871258941e-01, 6.809999871256099e-01, 6.909999871254677e-01, 7.009999871253967e-01, 7.11000046729402e-01, 7.209999871253967e-01, 7.309999871253967e-01, 7.409999871256809e-01, 7.509999871253967e-01, 7.609999871253967e-01, 7.710000467294731e-01, 7.810000467291889e-01, 7.909999871253968e-01, 8.00999987125752e-01, 8.109999871253968e-01, 8.209999871253967e-01, 8.309999871253967e-01, 8.410000467292599e-01, 8.509999871253967e-01, 8.60999987125823e-01, 8.709999871255388e-01, 8.809999871253967e-01, 8.909999871253967e-01, 9.01000046729331e-01, 9.109999871253968e-01, 9.209999871258941e-01, 9.309999871256099e-01, 9.409999871254677e-01, 9.509999871253967e-01, 9.61000046729402e-01, 9.709999871253967e-01, 9.809999871253967e-01, 9.909999871256809e-01, 1.001000046730042e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Psychrometrics_Validation_WetBulb_TDryBulPhi.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Psychrometrics_Validation_WetBulb_TDryBulPhi.txt new file mode 100644 index 0000000000..fab40fa8bb --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Psychrometrics_Validation_WetBulb_TDryBulPhi.txt @@ -0,0 +1,14 @@ +last-generated=2023-03-17 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +wetBulPhi.TDryBul=[3.025499877929688e+02, 3.025499877929688e+02] +wetBulPhi.phi=[5.000000074505806e-02, 5.950000158324819e-02, 6.899999869614885e-02, 7.850000325962661e-02, 8.800000037252995e-02, 9.749999571591818e-02, 1.07000002048911e-01, 1.164999973922971e-01, 1.26000003725289e-01, 1.354999955296543e-01, 1.449999944120657e-01, 1.54499993294477e-01, 1.640000070780496e-01, 1.735000059604609e-01, 1.829999977648263e-01, 1.924999895691916e-01, 2.020000104307835e-01, 2.115000022351755e-01, 2.209999940395408e-01, 2.304999999999982e-01, 2.399999918043858e-01, 2.495000126659333e-01, 2.590000044703386e-01, 2.684999962747439e-01, 2.780000022352102e-01, 2.874999940395355e-01, 2.970000000000639e-01, 3.064999776483461e-01, 3.160000134110371e-01, 3.255000193714411e-01, 3.349999970196878e-01, 3.445000029802163e-01, 3.540000089406381e-01, 3.634999865890624e-01, 3.729999925494487e-01, 3.824999985099238e-01, 3.919999761582593e-01, 4.014999821186456e-01, 4.110000178813544e-01, 4.205000238417407e-01, 4.300000014900762e-01, 4.395000074505513e-01, 4.490000134109376e-01, 4.584999910593619e-01, 4.679999970197837e-01, 4.775000029803122e-01, 4.869999806285589e-01, 4.964999865889629e-01, 5.059999925494914e-01, 5.15499999999936e-01, 5.249999761581421e-01, 5.345000119208579e-01, 5.440000476830054e-01, 5.535000238416448e-01, 5.630000029803921e-01, 5.724999791384632e-01, 5.820000149011115e-01, 5.9149999105925e-01, 6.010000268219657e-01, 6.105000029800368e-01, 6.199999821187842e-01, 6.294999582772816e-01, 6.389999940395711e-01, 6.485000298021447e-01, 6.580000059603579e-01, 6.675000417223632e-01, 6.769999612579579e-01, 6.864999970198922e-01, 6.959999731781763e-01, 7.055000089407464e-01, 7.1499998509875e-01, 7.245000208614658e-01, 7.340000000002131e-01, 7.434999761582842e-01, 7.53000011921e-01, 7.62499988079071e-01, 7.720000238415027e-01, 7.814999999998579e-01, 7.910000357625737e-01, 8.004999552973158e-01, 8.099999910593921e-01, 8.195000268220405e-01, 8.29000002980179e-01, 8.385000387423973e-01, 8.480000149009658e-01, 8.574999940397131e-01, 8.669999701982105e-01, 8.765000059605e-01, 8.85999982118571e-01, 8.955000178812869e-01, 9.049999940393579e-01, 9.144999731781053e-01, 9.240000089408211e-01, 9.334999850988921e-01, 9.430000208616043e-01, 9.524999970196789e-01, 9.620000327823948e-01, 9.7149995231735e-01, 9.809999880792132e-01, 9.904999642375684e-01, 1e+00] +wetBulPhi.TWetBul=[2.836178894042969e+02, 2.839925842369466e+02, 2.843685913252648e+02, 2.847383423096001e+02, 2.850988769848027e+02, 2.854490966539033e+02, 2.857888184041085e+02, 2.861182556055392e+02, 2.864378052318788e+02, 2.867478941775337e+02, 2.870491027388199e+02, 2.873418579273184e+02, 2.876267395771363e+02, 2.879041444173487e+02, 2.881745605309134e+02, 2.884383543364823e+02, 2.886959839775225e+02, 2.889477233440613e+02, 2.89194000069518e+02, 2.894350586505387e+02, 2.896712340610558e+02, 2.899027711461601e+02, 2.901299133568536e+02, 2.903529356986384e+02, 2.905719910831119e+02, 2.90787353515625e+02, 2.909992067429117e+02, 2.912076718968242e+02, 2.914129638428495e+02, 2.916152040247322e+02, 2.918145749590262e+02, 2.920112304221112e+02, 2.922052308506242e+02, 2.923967587832927e+02, 2.92585906915083e+02, 2.927727662238756e+02, 2.929574582332867e+02, 2.931401061144426e+02, 2.933207398316588e+02, 2.934994814554661e+02, 2.936764220140942e+02, 2.938516235974201e+02, 2.94025146710675e+02, 2.94197082396968e+02, 2.94367462198621e+02, 2.945364076711554e+02, 2.947039183177333e+02, 2.948701172071996e+02, 2.950349733206818e+02, 2.951986082428779e+02, 2.953610534667969e+02, 2.955223085028384e+02, 2.956824954213174e+02, 2.958416142226702e+02, 2.959996944860016e+02, 2.961567991295992e+02, 2.963129577265277e+02, 2.964682007942592e+02, 2.966225893680196e+02, 2.967761234482464e+02, 2.969288631619627e+02, 2.970808103299096e+02, 2.972319945569482e+02, 2.973824768781621e+02, 2.975322572935511e+02, 2.9768136632113e+02, 2.97829803078231e+02, 2.979776608865619e+02, 2.981249083421662e+02, 2.98271575962623e+02, 2.984176942656893e+02, 2.98563293768728e+02, 2.987083736087149e+02, 2.988529660329851e+02, 2.989970701752778e+02, 2.991407165527344e+02, 2.992839356832241e+02, 2.994267275670381e+02, 2.995691227213178e+02, 2.997111203013025e+02, 2.998527525169294e+02, 2.999940490386139e+02, 3.001349488312027e+02, 3.002755739647506e+02, 3.004158328868882e+02, 3.005558163167936e+02, 3.006954954057471e+02, 3.008348998359154e+02, 3.009740296072985e+02, 3.011129152374745e+02, 3.012515567268073e+02, 3.013899532507264e+02, 3.015281369765692e+02, 3.01666107079074e+02, 3.018038635582056e+02, 3.019414369314663e+02, 3.020788271986407e+02, 3.022160335430884e+02, 3.023530576002712e+02, 3.024899595862684e+02, 3.026266784667969e+02] +wetBulPhi1.TDryBul=[2.731499938964844e+02, 2.735499878019114e+02, 2.739500122249096e+02, 2.743500061303332e+02, 2.747500000357568e+02, 2.751499938666871e+02, 2.755499878466244e+02, 2.759500121951078e+02, 2.76350006175029e+02, 2.767499998569731e+02, 2.771499938368898e+02, 2.775499878168156e+02, 2.779500123143014e+02, 2.783500062942181e+02, 2.787499999761622e+02, 2.791499936581063e+02, 2.795499879360502e+02, 2.799500121354906e+02, 2.803500058173528e+02, 2.807500000953513e+02, 2.811499937772953e+02, 2.815499880552847e+02, 2.819500122547068e+02, 2.823500059365873e+02, 2.827500002145403e+02, 2.831499938964844e+02, 2.835499881745192e+02, 2.83950011777787e+02, 2.843500060558218e+02, 2.847500003337293e+02, 2.851499934197282e+02, 2.855499876976175e+02, 2.85950012493085e+02, 2.863500055788838e+02, 2.867499998569731e+02, 2.871499941349534e+02, 2.875499872208613e+02, 2.87950012016256e+02, 2.883500062942181e+02, 2.887500005721074e+02, 2.891499936581063e+02, 2.895499879360502e+02, 2.89950012731463e+02, 2.903500058173528e+02, 2.907500000953513e+02, 2.911499943734224e+02, 2.915499874592394e+02, 2.919500122547068e+02, 2.923500065325962e+02, 2.927499996185951e+02, 2.931499938964844e+02, 2.935499881745135e+02, 2.939500129698297e+02, 2.943500072477133e+02, 2.947499991418517e+02, 2.951499934197353e+02, 2.955499876976161e+02, 2.959500124930807e+02, 2.963500067709643e+02, 2.967500010488479e+02, 2.971499929429863e+02, 2.975499872208699e+02, 2.979500120162589e+02, 2.983500062942152e+02, 2.987500005720989e+02, 2.991499948503463e+02, 2.995499867441208e+02, 2.999500115393279e+02, 3.00350005817357e+02, 3.007500000953527e+02, 3.011499943734153e+02, 3.015499886514444e+02, 3.01950011062397e+02, 3.023500053404261e+02, 3.027499996186008e+02, 3.031499938964844e+02, 3.035499881745135e+02, 3.039500129698297e+02, 3.043500072477133e+02, 3.047499991418517e+02, 3.051499934197353e+02, 3.055499876976161e+02, 3.059500124930807e+02, 3.063500067709643e+02, 3.067500010488479e+02, 3.071499929429863e+02, 3.075499872208699e+02, 3.079500120162589e+02, 3.083500062942152e+02, 3.087500005720989e+02, 3.091499948503463e+02, 3.095499867441208e+02, 3.099500115393279e+02, 3.10350005817357e+02, 3.107500000953527e+02, 3.111499943734153e+02, 3.115499886514444e+02, 3.11950011062397e+02, 3.123500053404261e+02, 3.127499996186008e+02, 3.131499938964844e+02] +wetBulPhi1.phi=[6.000000238418579e-01, 6.000000238418579e-01] +wetBulPhi1.TWetBul=[2.701868591308594e+02, 2.705463256916291e+02, 2.70905822769977e+02, 2.712652893307468e+02, 2.716247864090947e+02, 2.719842529029029e+02, 2.723437500482123e+02, 2.727032165420205e+02, 2.730626831697517e+02, 2.734221800472154e+02, 2.737816466749465e+02, 2.741411133026776e+02, 2.745005799304088e+02, 2.7486004655814e+02, 2.752195129180255e+02, 2.75578979277911e+02, 2.759384461734878e+02, 2.762979125333733e+02, 2.766573788932588e+02, 2.770168457888356e+02, 2.773763121487211e+02, 2.777357790441979e+02, 2.780952148866053e+02, 2.784546812464908e+02, 2.788141481420676e+02, 2.791736145019531e+02, 2.795330508799518e+02, 2.79892516704146e+02, 2.802519530821629e+02, 2.806114199777215e+02, 2.809708858019157e+02, 2.813303221799144e+02, 2.816897890753821e+02, 2.820492243821073e+02, 2.824086607601606e+02, 2.827681276556827e+02, 2.831275629625171e+02, 2.834870298578757e+02, 2.838464662358743e+02, 2.84205902613873e+02, 2.845653379205801e+02, 2.849248048160113e+02, 2.852842411940646e+02, 2.856436765007898e+02, 2.860031128786794e+02, 2.863625492566781e+02, 2.867220150808723e+02, 2.870814514588527e+02, 2.874408878367059e+02, 2.878003231434857e+02, 2.881597595214844e+02, 2.885191958994779e+02, 2.888786322774715e+02, 2.892380686554651e+02, 2.895975028907254e+02, 2.89956939268719e+02, 2.9031637564671e+02, 2.90675812024597e+02, 2.91035248402445e+02, 2.913946847802931e+02, 2.917540884987392e+02, 2.921135248765873e+02, 2.924729612544353e+02, 2.928323976322834e+02, 2.931918340101315e+02, 2.935512398707652e+02, 2.939106741064257e+02, 2.942701104840191e+02, 2.946295468620127e+02, 2.949889527224306e+02, 2.953483891004216e+02, 2.957078254780878e+02, 2.96067229196534e+02, 2.96426665574382e+02, 2.967861019520846e+02, 2.971455078125e+02, 2.975049441903481e+02, 2.978643805681961e+02, 2.982237864289026e+02, 2.985832206641629e+02, 2.989426265247603e+02, 2.993020629025694e+02, 2.996614687629873e+02, 3.000209051407263e+02, 3.003803110013964e+02, 3.007397452366567e+02, 3.010991510972904e+02, 3.014585874750657e+02, 3.018179933354812e+02, 3.021774297132565e+02, 3.025368355738902e+02, 3.028962392919726e+02, 3.03255675669566e+02, 3.036150815300905e+02, 3.039745179079411e+02, 3.043339237682085e+02, 3.046933296288058e+02, 3.050527638640662e+02, 3.054121697247726e+02, 3.057715755850426e+02, 3.061310119628906e+02] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_CalendarTimeMonths.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_CalendarTimeMonths.txt new file mode 100644 index 0000000000..adde9ae02d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_CalendarTimeMonths.txt @@ -0,0 +1,14 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +calTim.year=[2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03] +time=[1.728e+05, 3.456e+05] +calTim.month=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +calTim.day=[3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00] +calTim.weekDay=[2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +calTim.hour=[0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 2e+00, 2e+00, 3e+00, 3e+00, 4e+00, 4e+00, 5e+00, 5e+00, 6e+00, 6e+00, 7e+00, 7e+00, 8e+00, 8e+00, 9e+00, 9e+00, 1e+01, 1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.2e+01, 1.2e+01, 1.3e+01, 1.3e+01, 1.4e+01, 1.4e+01, 1.5e+01, 1.5e+01, 1.6e+01, 1.6e+01, 1.7e+01, 1.7e+01, 1.8e+01, 1.8e+01, 1.9e+01, 1.9e+01, 2e+01, 2e+01, 2.1e+01, 2.1e+01, 2.2e+01, 2.2e+01, 2.3e+01, 2.3e+01, 2.3e+01, 0e+00, 0e+00, 1e+00, 1e+00, 2e+00, 2e+00, 3e+00, 3e+00, 4e+00, 4e+00, 5e+00, 5e+00, 6e+00, 6e+00, 7e+00, 7e+00, 8e+00, 8e+00, 9e+00, 9e+00, 1e+01, 1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.2e+01, 1.2e+01, 1.3e+01, 1.3e+01, 1.4e+01, 1.4e+01, 1.5e+01, 1.5e+01, 1.6e+01, 1.6e+01, 1.7e+01, 1.7e+01, 1.8e+01, 1.8e+01, 1.9e+01, 1.9e+01, 2e+01, 2e+01, 2.1e+01, 2.1e+01, 2.2e+01, 2.2e+01, 2.3e+01, 2.3e+01, 2.3e+01] +calTim.minute=[0e+00, 2.879999923706055e+01, 5.759999847412109e+01, 2.639999961853027e+01, 5.520000076293945e+01, 2.4e+01, 5.279999923706055e+01, 2.160000038146973e+01, 5.040000152587891e+01, 1.920000076293945e+01, 4.8e+01, 1.679999923706055e+01, 4.559999847412109e+01, 1.439999961853027e+01, 4.320000076293945e+01, 1.2e+01, 4.079999923706055e+01, 9.600000381469727e+00, 3.840000152587891e+01, 7.199999809265137e+00, 3.6e+01, 4.800000190734863e+00, 3.359999847412109e+01, 2.400000095367432e+00, 3.120000076293945e+01, 6e+01, 2.879999923706055e+01, 5.759999847412109e+01, 2.639999961853027e+01, 5.520000076293945e+01, 2.4e+01, 5.279999923706055e+01, 2.160000038146973e+01, 5.040000152587891e+01, 1.920000076293945e+01, 4.8e+01, 1.679999923706055e+01, 4.559999847412109e+01, 1.439999961853027e+01, 4.320000076293945e+01, 1.2e+01, 4.079999923706055e+01, 9.600000381469727e+00, 3.840000152587891e+01, 7.199999809265137e+00, 3.6e+01, 4.800000190734863e+00, 3.359999847412109e+01, 2.400000095367432e+00, 3.120000076293945e+01, 6e+01, 2.879999923706055e+01, 5.759999847412109e+01, 2.639999961853027e+01, 5.520000076293945e+01, 2.4e+01, 5.279999923706055e+01, 2.160000038146973e+01, 5.040000152587891e+01, 1.920000076293945e+01, 4.8e+01, 1.679999923706055e+01, 4.559999847412109e+01, 1.439999961853027e+01, 4.320000076293945e+01, 1.2e+01, 4.079999923706055e+01, 9.600000381469727e+00, 3.840000152587891e+01, 7.199999809265137e+00, 3.6e+01, 4.800000190734863e+00, 3.359999847412109e+01, 2.400000095367432e+00, 3.120000076293945e+01, 6e+01, 2.879999923706055e+01, 5.759999847412109e+01, 2.639999961853027e+01, 5.520000076293945e+01, 2.4e+01, 5.279999923706055e+01, 2.160000038146973e+01, 5.040000152587891e+01, 1.920000076293945e+01, 4.8e+01, 1.679999923706055e+01, 4.559999847412109e+01, 1.439999961853027e+01, 4.320000076293945e+01, 1.2e+01, 4.079999923706055e+01, 9.600000381469727e+00, 3.840000152587891e+01, 7.199999809265137e+00, 3.6e+01, 4.800000190734863e+00, 3.359999847412109e+01, 2.400000095367432e+00, 3.120000076293945e+01, 6e+01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_CalendarTimeMonthsMinus.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_CalendarTimeMonthsMinus.txt new file mode 100644 index 0000000000..90947a15c6 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_CalendarTimeMonthsMinus.txt @@ -0,0 +1,14 @@ +last-generated=2017-07-18 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +calTim.year=[2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03] +time=[1.72799e+05, 3.45599e+05] +calTim.month=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +calTim.day=[2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00] +calTim.weekDay=[1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +calTim.hour=[2.3e+01, 0e+00, 0e+00, 1e+00, 1e+00, 2e+00, 2e+00, 3e+00, 3e+00, 4e+00, 4e+00, 5e+00, 5e+00, 6e+00, 6e+00, 7e+00, 7e+00, 8e+00, 8e+00, 9e+00, 9e+00, 1e+01, 1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.2e+01, 1.2e+01, 1.3e+01, 1.3e+01, 1.4e+01, 1.4e+01, 1.5e+01, 1.5e+01, 1.6e+01, 1.6e+01, 1.7e+01, 1.7e+01, 1.8e+01, 1.8e+01, 1.9e+01, 1.9e+01, 2e+01, 2e+01, 2.1e+01, 2.1e+01, 2.2e+01, 2.2e+01, 2.3e+01, 2.3e+01, 2.3e+01, 0e+00, 0e+00, 1e+00, 1e+00, 2e+00, 2e+00, 3e+00, 3e+00, 4e+00, 4e+00, 5e+00, 5e+00, 6e+00, 6e+00, 7e+00, 7e+00, 8e+00, 8e+00, 9e+00, 9e+00, 1e+01, 1e+01, 1.1e+01, 1.1e+01, 1.1e+01, 1.2e+01, 1.2e+01, 1.3e+01, 1.3e+01, 1.4e+01, 1.4e+01, 1.5e+01, 1.5e+01, 1.6e+01, 1.6e+01, 1.7e+01, 1.7e+01, 1.8e+01, 1.8e+01, 1.9e+01, 1.9e+01, 2e+01, 2e+01, 2.1e+01, 2.1e+01, 2.2e+01, 2.2e+01, 2.3e+01, 2.3e+01, 2.3e+01] +calTim.minute=[5.998333358764648e+01, 2.878333282470703e+01, 5.758333206176758e+01, 2.638333320617676e+01, 5.518333435058594e+01, 2.398333358764648e+01, 5.278333282470703e+01, 2.158333396911621e+01, 5.038333511352539e+01, 1.91833324432373e+01, 4.798333358764648e+01, 1.678333282470703e+01, 4.558333206176758e+01, 1.438333320617676e+01, 4.318333435058594e+01, 1.198333358764648e+01, 4.078333282470703e+01, 9.583333015441895e+00, 3.838333511352539e+01, 7.183333396911621e+00, 3.598333358764648e+01, 4.783333301544189e+00, 3.358333206176758e+01, 2.383333444595337e+00, 3.11833324432373e+01, 5.998333358764648e+01, 2.878333282470703e+01, 5.758333206176758e+01, 2.638333320617676e+01, 5.518333435058594e+01, 2.398333358764648e+01, 5.278333282470703e+01, 2.158333396911621e+01, 5.038333511352539e+01, 1.91833324432373e+01, 4.798333358764648e+01, 1.678333282470703e+01, 4.558333206176758e+01, 1.438333320617676e+01, 4.318333435058594e+01, 1.198333358764648e+01, 4.078333282470703e+01, 9.583333015441895e+00, 3.838333511352539e+01, 7.183333396911621e+00, 3.598333358764648e+01, 4.783333301544189e+00, 3.358333206176758e+01, 2.383333444595337e+00, 3.11833324432373e+01, 5.998333358764648e+01, 2.878333282470703e+01, 5.758333206176758e+01, 2.638333320617676e+01, 5.518333435058594e+01, 2.398333358764648e+01, 5.278333282470703e+01, 2.158333396911621e+01, 5.038333511352539e+01, 1.91833324432373e+01, 4.798333358764648e+01, 1.678333282470703e+01, 4.558333206176758e+01, 1.438333320617676e+01, 4.318333435058594e+01, 1.198333358764648e+01, 4.078333282470703e+01, 9.583333015441895e+00, 3.838333511352539e+01, 7.183333396911621e+00, 3.598333358764648e+01, 4.783333301544189e+00, 3.358333206176758e+01, 2.383333444595337e+00, 3.11833324432373e+01, 5.998333358764648e+01, 2.878333282470703e+01, 5.758333206176758e+01, 2.638333320617676e+01, 5.518333435058594e+01, 2.398333358764648e+01, 5.278333282470703e+01, 2.158333396911621e+01, 5.038333511352539e+01, 1.91833324432373e+01, 4.798333358764648e+01, 1.678333282470703e+01, 4.558333206176758e+01, 1.438333320617676e+01, 4.318333435058594e+01, 1.198333358764648e+01, 4.078333282470703e+01, 9.583333015441895e+00, 3.838333511352539e+01, 7.183333396911621e+00, 3.598333358764648e+01, 4.783333301544189e+00, 3.358333206176758e+01, 2.383333444595337e+00, 3.11833324432373e+01, 5.998333358764648e+01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_CalendarTimeMonthsPlus.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_CalendarTimeMonthsPlus.txt new file mode 100644 index 0000000000..0b27fc3ede --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_CalendarTimeMonthsPlus.txt @@ -0,0 +1,14 @@ +last-generated=2017-07-18 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +calTim.year=[2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03, 2.017e+03] +time=[1.72801e+05, 3.45601e+05] +calTim.month=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +calTim.day=[3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 5e+00] +calTim.weekDay=[2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 4e+00] +calTim.hour=[0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 2e+00, 2e+00, 3e+00, 3e+00, 4e+00, 4e+00, 5e+00, 5e+00, 6e+00, 6e+00, 7e+00, 7e+00, 8e+00, 8e+00, 9e+00, 9e+00, 1e+01, 1e+01, 1.1e+01, 1.1e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.3e+01, 1.3e+01, 1.4e+01, 1.4e+01, 1.5e+01, 1.5e+01, 1.6e+01, 1.6e+01, 1.7e+01, 1.7e+01, 1.8e+01, 1.8e+01, 1.9e+01, 1.9e+01, 2e+01, 2e+01, 2.1e+01, 2.1e+01, 2.2e+01, 2.2e+01, 2.3e+01, 2.3e+01, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 2e+00, 2e+00, 3e+00, 3e+00, 4e+00, 4e+00, 5e+00, 5e+00, 6e+00, 6e+00, 7e+00, 7e+00, 8e+00, 8e+00, 9e+00, 9e+00, 1e+01, 1e+01, 1.1e+01, 1.1e+01, 1.2e+01, 1.2e+01, 1.2e+01, 1.3e+01, 1.3e+01, 1.4e+01, 1.4e+01, 1.5e+01, 1.5e+01, 1.6e+01, 1.6e+01, 1.7e+01, 1.7e+01, 1.8e+01, 1.8e+01, 1.9e+01, 1.9e+01, 2e+01, 2e+01, 2.1e+01, 2.1e+01, 2.2e+01, 2.2e+01, 2.3e+01, 2.3e+01, 0e+00] +calTim.minute=[1.666666567325592e-02, 2.88166675567627e+01, 5.761666488647461e+01, 2.641666603088379e+01, 5.521666717529297e+01, 2.401666641235352e+01, 5.281666564941406e+01, 2.161666679382324e+01, 5.041666793823242e+01, 1.921666717529297e+01, 4.801666641235352e+01, 1.68166675567627e+01, 4.561666488647461e+01, 1.441666698455811e+01, 4.321666717529297e+01, 1.201666641235352e+01, 4.081666564941406e+01, 9.616666793823242e+00, 3.841666793823242e+01, 7.216666698455811e+00, 3.601666641235352e+01, 4.816666603088379e+00, 3.361666488647461e+01, 2.416666746139526e+00, 3.121666717529297e+01, 1.666666567325592e-02, 2.88166675567627e+01, 5.761666488647461e+01, 2.641666603088379e+01, 5.521666717529297e+01, 2.401666641235352e+01, 5.281666564941406e+01, 2.161666679382324e+01, 5.041666793823242e+01, 1.921666717529297e+01, 4.801666641235352e+01, 1.68166675567627e+01, 4.561666488647461e+01, 1.441666698455811e+01, 4.321666717529297e+01, 1.201666641235352e+01, 4.081666564941406e+01, 9.616666793823242e+00, 3.841666793823242e+01, 7.216666698455811e+00, 3.601666641235352e+01, 4.816666603088379e+00, 3.361666488647461e+01, 2.416666746139526e+00, 3.121666717529297e+01, 1.666666567325592e-02, 2.88166675567627e+01, 5.761666488647461e+01, 2.641666603088379e+01, 5.521666717529297e+01, 2.401666641235352e+01, 5.281666564941406e+01, 2.161666679382324e+01, 5.041666793823242e+01, 1.921666717529297e+01, 4.801666641235352e+01, 1.68166675567627e+01, 4.561666488647461e+01, 1.441666698455811e+01, 4.321666717529297e+01, 1.201666641235352e+01, 4.081666564941406e+01, 9.616666793823242e+00, 3.841666793823242e+01, 7.216666698455811e+00, 3.601666641235352e+01, 4.816666603088379e+00, 3.361666488647461e+01, 2.416666746139526e+00, 3.121666717529297e+01, 1.666666567325592e-02, 2.88166675567627e+01, 5.761666488647461e+01, 2.641666603088379e+01, 5.521666717529297e+01, 2.401666641235352e+01, 5.281666564941406e+01, 2.161666679382324e+01, 5.041666793823242e+01, 1.921666717529297e+01, 4.801666641235352e+01, 1.68166675567627e+01, 4.561666488647461e+01, 1.441666698455811e+01, 4.321666717529297e+01, 1.201666641235352e+01, 4.081666564941406e+01, 9.616666793823242e+00, 3.841666793823242e+01, 7.216666698455811e+00, 3.601666641235352e+01, 4.816666603088379e+00, 3.361666488647461e+01, 2.416666746139526e+00, 3.121666717529297e+01, 1.666666567325592e-02] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_CivilTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_CivilTime.txt new file mode 100644 index 0000000000..b30e8e7d2e --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_CivilTime.txt @@ -0,0 +1,9 @@ +last-generated=2017-07-18 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +civTim.y=[-1e+00, -9.8e-01, -9.6e-01, -9.399999999999999e-01, -9.2e-01, -9e-01, -8.8e-01, -8.6e-01, -8.4e-01, -8.200000000000001e-01, -8e-01, -7.8e-01, -7.6e-01, -7.4e-01, -7.2e-01, -7e-01, -6.799999999999999e-01, -6.599999999999999e-01, -6.4e-01, -6.2e-01, -6e-01, -5.800000000000001e-01, -5.600000000000001e-01, -5.4e-01, -5.2e-01, -5e-01, -4.8e-01, -4.6e-01, -4.399999999999999e-01, -4.2e-01, -4e-01, -3.8e-01, -3.6e-01, -3.4e-01, -3.2e-01, -3e-01, -2.8e-01, -2.6e-01, -2.4e-01, -2.2e-01, -2e-01, -1.8e-01, -1.6e-01, -1.4e-01, -1.2e-01, -9.999999999999998e-02, -7.999999999999996e-02, -6.000000000000005e-02, -4.000000000000004e-02, -2.000000000000002e-02, 0e+00, 2.000000000000002e-02, 4.000000000000004e-02, 6.000000000000005e-02, 8.000000000000007e-02, 1.000000000000001e-01, 1.200000000000001e-01, 1.399999999999999e-01, 1.599999999999999e-01, 1.799999999999999e-01, 2e-01, 2.2e-01, 2.4e-01, 2.6e-01, 2.8e-01, 3e-01, 3.200000000000001e-01, 3.400000000000001e-01, 3.600000000000001e-01, 3.799999999999999e-01, 3.999999999999999e-01, 4.199999999999999e-01, 4.399999999999999e-01, 4.6e-01, 4.8e-01, 5e-01, 5.2e-01, 5.4e-01, 5.600000000000001e-01, 5.800000000000001e-01, 6.000000000000001e-01, 6.200000000000001e-01, 6.399999999999999e-01, 6.599999999999999e-01, 6.799999999999999e-01, 7e-01, 7.2e-01, 7.4e-01, 7.6e-01, 7.8e-01, 8e-01, 8.200000000000001e-01, 8.400000000000001e-01, 8.600000000000001e-01, 8.799999999999999e-01, 8.999999999999999e-01, 9.199999999999999e-01, 9.399999999999999e-01, 9.6e-01, 9.8e-01, 1e+00] +time=[-1e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_Constant.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_Constant.txt new file mode 100644 index 0000000000..bea4321288 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_Constant.txt @@ -0,0 +1,9 @@ +last-generated=2017-07-17 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +con.y=[2.5e+00, 2.5e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_Pulse.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_Pulse.txt new file mode 100644 index 0000000000..b239d08724 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_Pulse.txt @@ -0,0 +1,9 @@ +last-generated=2017-07-17 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +pulse.y=[2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 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.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 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.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 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.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 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.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 2.200000047683716e+00, 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] +time=[0e+00, 5e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_Ramp.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_Ramp.txt new file mode 100644 index 0000000000..b0cb145c68 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_Ramp.txt @@ -0,0 +1,9 @@ +last-generated=2017-07-17 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +ram.y=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5.333333929379781e-01, 5.666666467984518e-01, 6.000000397364299e-01, 6.333332935969035e-01, 6.666666865348816e-01, 7.000000198682149e-01, 7.333333333333334e-01, 7.666666666666667e-01, 7.999999801317851e-01, 8.333333134651184e-01, 8.666667064030965e-01, 8.999999602635702e-01, 9.333333532015483e-01, 9.66666607062022e-01, 1e+00, 1.033333333333333e+00, 1.066666706402812e+00, 1.10000003973643e+00, 1.133333293596904e+00, 1.166666626930237e+00, 1.20000007947286e+00, 1.233333412806193e+00, 1.266666587193807e+00, 1.29999992052714e+00, 1.333333373069763e+00, 1.366666706403097e+00, 1.40000003973643e+00, 1.433333214124044e+00, 1.466666666666667e+00, 1.5e+00, 1.533333333333333e+00, 1.566666785875956e+00, 1.59999996026357e+00, 1.633333293596904e+00, 1.666666626930237e+00, 1.70000007947286e+00, 1.733333412806193e+00, 1.766666587193807e+00, 1.79999992052714e+00, 1.833333373069763e+00, 1.866666706403096e+00, 1.90000003973643e+00, 1.933333214124044e+00, 1.966666666666667e+00, 2e+00, 2.033333333333334e+00, 2.066666666666667e+00, 2.099999841054281e+00, 2.133333412806193e+00, 2.166666746139526e+00, 2.20000007947286e+00, 2.233333412806193e+00, 2.266666587193807e+00, 2.29999992052714e+00, 2.333333253860474e+00, 2.366666587193807e+00, 2.40000015894572e+00, 2.433333333333334e+00, 2.466666666666667e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00] +time=[0e+00, 5e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_Sin.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_Sin.txt new file mode 100644 index 0000000000..b136676e9b --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_Sin.txt @@ -0,0 +1,9 @@ +last-generated=2017-11-06 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +sin.y=[1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1.020937844191531e+01, 1.088542375831547e+01, 1.154508495330811e+01, 1.217615499983809e+01, 1.276695711517082e+01, 1.330655971069135e+01, 1.378497478677221e+01, 1.419335269927979e+01, 1.452413575474411e+01, 1.477120202508522e+01, 1.492998030863989e+01, 1.499753282656066e+01, 1.49726095199585e+01, 1.485567082839863e+01, 1.464888293689666e+01, 1.435606851073689e+01, 1.398265004032125e+01, 1.35355339050293e+01, 1.302299562735073e+01, 1.245451761687486e+01, 1.18406236406552e+01, 1.119266739404273e+01, 1.052264213562012e+01, 9.842945653499058e+00, 9.16615502928277e+00, 8.504796793679194e+00, 7.871104127302454e+00, 7.27680492401123e+00, 6.732896506003839e+00, 6.249443964584741e+00, 5.8353943567705e+00, 5.498406112116754e+00, 5.244717597961426e+00, 5.079021865315042e+00, 5.004385925595086e+00, 5.022190029644421e+00, 5.132105264581423e+00, 5.332098007202148e+00, 5.618466574446327e+00, 5.985913284854949e+00, 6.427636072230508e+00, 6.935464546737046e+00, 7.5e+00, 8.110794503701614e+00, 8.756551565329634e+00, 9.425313157290061e+00, 1.010471408314757e+01, 1.078217220306396e+01, 1.144515742264974e+01, 1.208140445410804e+01, 1.267913368858324e+01, 1.322728945242029e+01, 1.371572399139404e+01, 1.413540176341901e+01, 1.447855888579827e+01, 1.473884174539232e+01, 1.491143635895027e+01, 1.499314785003662e+01, 1.498246394869636e+01, 1.487958317388968e+01, 1.46864102185187e+01, 1.440651625465307e+01, 1.404508495330811e+01, 1.360880197819251e+01, 1.310573800702992e+01, 1.254520770568006e+01, 1.193757672001069e+01, 1.129409503936768e+01, 1.062666765139302e+01, 9.94764057399416e+00, 9.269585447625662e+00, 8.605042836755585e+00, 7.966316699981689e+00, 7.365222392883537e+00, 6.812879430628213e+00, 6.319515300157358e+00, 5.894252836817939e+00, 5.544967174530029e+00, 5.278118679511505e+00, 5.098644109355609e+00, 5.009866298654381e+00, 5.013427873076e+00, 5.109261989593506e+00, 5.295595602011288e+00, 5.568982504066119e+00, 5.924360775052777e+00, 6.355158008044967e+00, 6.853397846221924e+00, 7.409863547158879e+00, 8.014261029515836e+00, 8.655400463364945e+00, 9.32142416271245e+00, 1e+01] +time=[0e+00, 1.3e+02] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_TimeTable.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_TimeTable.txt new file mode 100644 index 0000000000..8c66584145 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_TimeTable.txt @@ -0,0 +1,13 @@ +last-generated=2020-03-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1.728e+05] +timTabLin.y[1]=[0e+00, 7.999999821186066e-02, 1.599999964237213e-01, 2.39999994635582e-01, 3.199999928474426e-01, 4.000000059604645e-01, 4.799999892711639e-01, 5.600000023841859e-01, 6.399999856948853e-01, 7.200000286102295e-01, 8.00000011920929e-01, 8.799999952316284e-01, 9.599999785423279e-01, 9.900000095367432e-01, 9.700000286102295e-01, 9.49999988079071e-01, 9.300000071525574e-01, 9.100000262260437e-01, 8.899999856948853e-01, 8.700000047683716e-01, 8.500000238418579e-01, 8.299999833106995e-01, 8.100000023841858e-01, 7.900000214576721e-01, 7.699999809265137e-01, 7.5e-01, 7.300000190734863e-01, 7.099999785423279e-01, 6.899999976158141e-01, 6.700000166893005e-01, 6.499999761581421e-01, 6.299999952316284e-01, 6.100000143051147e-01, 5.899999737739563e-01, 5.699999928474425e-01, 5.500000119209291e-01, 5.299999713897705e-01, 5.099999904632568e-01, 4.799999892711639e-01, 4.399999976158142e-01, 4.000000059604645e-01, 3.600000143051147e-01, 3.199999928474426e-01, 2.800000011920929e-01, 2.39999994635582e-01, 2.000000029802322e-01, 1.599999964237213e-01, 1.19999997317791e-01, 7.999999821186066e-02, 3.999999910593033e-02, 0e+00, 7.999999821186066e-02, 1.599999964237213e-01, 2.39999994635582e-01, 3.199999928474426e-01, 4.000000059604651e-01, 4.799999892711646e-01, 5.600000023841851e-01, 6.399999856948853e-01, 7.200000286102295e-01, 8.00000011920929e-01, 8.799999952316284e-01, 9.599999785423279e-01, 9.900000095367432e-01, 9.700000286102295e-01, 9.49999988079071e-01, 9.300000071525574e-01, 9.100000262260437e-01, 8.89999985694885e-01, 8.700000047683718e-01, 8.500000238418581e-01, 8.299999833106995e-01, 8.100000023841858e-01, 7.900000214576721e-01, 7.699999809265137e-01, 7.5e-01, 7.300000190734863e-01, 7.099999785423279e-01, 6.899999976158142e-01, 6.700000166893005e-01, 6.499999761581421e-01, 6.299999952316284e-01, 6.100000143051147e-01, 5.899999737739563e-01, 5.699999928474426e-01, 5.50000011920929e-01, 5.299999713897705e-01, 5.099999904632568e-01, 4.799999892711639e-01, 4.399999976158142e-01, 4.000000059604645e-01, 3.600000143051147e-01, 3.199999928474426e-01, 2.800000011920929e-01, 2.39999994635582e-01, 2.000000029802322e-01, 1.599999964237213e-01, 1.19999997317791e-01, 7.999999821186066e-02, 3.999999910593033e-02, 0e+00] +timTabLinCon.y[1]=[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, 9.900000095367432e-01, 9.700000286102295e-01, 9.49999988079071e-01, 9.300000071525574e-01, 9.100000262260437e-01, 8.899999856948853e-01, 8.700000047683716e-01, 8.500000238418579e-01, 8.299999833106995e-01, 8.100000023841858e-01, 7.900000214576721e-01, 7.699999809265137e-01, 7.5e-01, 7.300000190734863e-01, 7.099999785423279e-01, 6.899999976158141e-01, 6.700000166893005e-01, 6.499999761581421e-01, 6.299999952316284e-01, 6.100000143051147e-01, 5.899999737739563e-01, 5.699999928474425e-01, 5.500000119209291e-01, 5.299999713897705e-01, 5.099999904632568e-01, 4.799999892711639e-01, 4.399999976158142e-01, 4.000000059604645e-01, 3.600000143051147e-01, 3.199999928474426e-01, 2.800000011920929e-01, 2.39999994635582e-01, 2.000000029802322e-01, 1.599999964237213e-01, 1.19999997317791e-01, 7.999999821186066e-02, 3.999999910593033e-02, 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, 9.900000095367432e-01, 9.700000286102295e-01, 9.49999988079071e-01, 9.300000071525574e-01, 9.100000262260437e-01, 8.89999985694885e-01, 8.700000047683718e-01, 8.500000238418581e-01, 8.299999833106995e-01, 8.100000023841858e-01, 7.900000214576721e-01, 7.699999809265137e-01, 7.5e-01, 7.300000190734863e-01, 7.099999785423279e-01, 6.899999976158142e-01, 6.700000166893005e-01, 6.499999761581421e-01, 6.299999952316284e-01, 6.100000143051147e-01, 5.899999737739563e-01, 5.699999928474426e-01, 5.50000011920929e-01, 5.299999713897705e-01, 5.099999904632568e-01, 4.799999892711639e-01, 4.399999976158142e-01, 4.000000059604645e-01, 3.600000143051147e-01, 3.199999928474426e-01, 2.800000011920929e-01, 2.39999994635582e-01, 2.000000029802322e-01, 1.599999964237213e-01, 1.19999997317791e-01, 7.999999821186066e-02, 3.999999910593033e-02, 0e+00] +timTabCon.y[1]=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01] +timTabLinHol.y[1]=[0e+00, 7.999999821186066e-02, 1.599999964237213e-01, 2.39999994635582e-01, 3.199999928474426e-01, 4.000000059604645e-01, 4.799999892711639e-01, 5.600000023841859e-01, 6.399999856948853e-01, 7.200000286102295e-01, 8.00000011920929e-01, 8.799999952316284e-01, 9.599999785423279e-01, 9.900000095367432e-01, 9.700000286102295e-01, 9.49999988079071e-01, 9.300000071525574e-01, 9.100000262260437e-01, 8.899999856948853e-01, 8.700000047683716e-01, 8.500000238418579e-01, 8.299999833106995e-01, 8.100000023841858e-01, 7.900000214576721e-01, 7.699999809265137e-01, 7.5e-01, 7.300000190734863e-01, 7.099999785423279e-01, 6.899999976158141e-01, 6.700000166893005e-01, 6.499999761581421e-01, 6.299999952316284e-01, 6.100000143051147e-01, 5.899999737739563e-01, 5.699999928474425e-01, 5.500000119209291e-01, 5.299999713897705e-01, 5.099999904632568e-01, 4.799999892711639e-01, 4.399999976158142e-01, 4.000000059604645e-01, 3.600000143051147e-01, 3.199999928474426e-01, 2.800000011920929e-01, 2.39999994635582e-01, 2.000000029802322e-01, 1.599999964237213e-01, 1.19999997317791e-01, 7.999999821186066e-02, 3.999999910593033e-02, 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] +timTabLinDer.y[1]=[0e+00, 7.999999821186066e-02, 1.599999964237213e-01, 2.39999994635582e-01, 3.199999928474426e-01, 4.000000059604645e-01, 4.799999892711639e-01, 5.600000023841859e-01, 6.399999856948853e-01, 7.200000286102295e-01, 8.00000011920929e-01, 8.799999952316284e-01, 9.599999785423279e-01, 9.900000095367432e-01, 9.700000286102295e-01, 9.49999988079071e-01, 9.300000071525574e-01, 9.100000262260437e-01, 8.899999856948853e-01, 8.700000047683716e-01, 8.500000238418579e-01, 8.299999833106995e-01, 8.100000023841858e-01, 7.900000214576721e-01, 7.699999809265137e-01, 7.5e-01, 7.300000190734863e-01, 7.099999785423279e-01, 6.899999976158141e-01, 6.700000166893005e-01, 6.499999761581421e-01, 6.299999952316284e-01, 6.100000143051147e-01, 5.899999737739563e-01, 5.699999928474425e-01, 5.500000119209291e-01, 5.299999713897705e-01, 5.099999904632568e-01, 4.799999892711639e-01, 4.399999976158142e-01, 4.000000059604645e-01, 3.600000143051147e-01, 3.199999928474426e-01, 2.800000011920929e-01, 2.39999994635582e-01, 2.000000029802322e-01, 1.599999964237213e-01, 1.19999997317791e-01, 7.999999821186066e-02, 3.999999910593033e-02, 0e+00, -3.999999910593033e-02, -7.999999821186066e-02, -1.19999997317791e-01, -1.599999964237213e-01, -2.000000029802326e-01, -2.399999946355823e-01, -2.800000011920926e-01, -3.199999928474426e-01, -3.600000143051147e-01, -4.000000059604645e-01, -4.399999976158142e-01, -4.799999892711639e-01, -5.199999809265137e-01, -5.600000023841858e-01, -6.000000238418579e-01, -6.399999856948853e-01, -6.800000071525574e-01, -7.200000286102298e-01, -7.599999904632565e-01, -8.000000119209286e-01, -8.399999737739563e-01, -8.799999952316284e-01, -9.200000166893005e-01, -9.599999785423279e-01, -1e+00, -1.039999961853027e+00, -1.080000042915344e+00, -1.120000004768372e+00, -1.159999966621399e+00, -1.200000047683716e+00, -1.240000009536743e+00, -1.279999971389771e+00, -1.320000052452087e+00, -1.360000014305115e+00, -1.399999976158142e+00, -1.440000057220459e+00, -1.480000019073486e+00, -1.519999980926514e+00, -1.559999942779541e+00, -1.600000023841858e+00, -1.639999985694885e+00, -1.679999947547913e+00, -1.720000028610229e+00, -1.759999990463257e+00, -1.799999952316284e+00, -1.840000033378601e+00, -1.879999995231628e+00, -1.919999957084656e+00, -1.960000038146973e+00, -2e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_TimeTableNegativeStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_TimeTableNegativeStartTime.txt new file mode 100644 index 0000000000..35d25e5877 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Sources_Validation_TimeTableNegativeStartTime.txt @@ -0,0 +1,13 @@ +last-generated=2020-03-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[-1.296e+05, 1.728e+05] +timTabLin.y[1]=[7.5e-01, 7.149999737739563e-01, 6.800000071525574e-01, 6.449999809265137e-01, 6.100000143051147e-01, 5.74999988079071e-01, 5.400000214576721e-01, 5.049999952316284e-01, 4.399999976158142e-01, 3.700000047683716e-01, 3.00000011920929e-01, 2.300000041723251e-01, 1.599999964237213e-01, 9.000000357627869e-02, 1.999999955296516e-02, 1.000000014901161e-01, 2.39999994635582e-01, 3.799999952316284e-01, 5.199999809265137e-01, 6.600000262260437e-01, 8.00000011920929e-01, 9.399999976158142e-01, 9.800000190734863e-01, 9.449999928474426e-01, 9.100000262260437e-01, 8.75e-01, 8.399999737739563e-01, 8.050000071525574e-01, 7.699999809265134e-01, 7.350000143051147e-01, 6.99999988079071e-01, 6.650000214576721e-01, 6.299999952316284e-01, 5.950000286102295e-01, 5.600000023841856e-01, 5.249999761581421e-01, 4.799999892711639e-01, 4.099999964237213e-01, 3.400000035762787e-01, 2.700000107288361e-01, 2.000000029802322e-01, 1.299999952316288e-01, 5.999999865889549e-02, 1.999999955296516e-02, 1.599999964237213e-01, 3.00000011920929e-01, 4.399999976158142e-01, 5.799999833106995e-01, 7.200000286102295e-01, 8.600000143051147e-01, 1e+00, 9.649999737739563e-01, 9.300000071525574e-01, 8.949999809265137e-01, 8.600000143051147e-01, 8.24999988079071e-01, 7.900000214576718e-01, 7.549999952316288e-01, 7.200000286102295e-01, 6.850000023841858e-01, 6.499999761581421e-01, 6.150000095367432e-01, 5.799999833106995e-01, 5.450000166893005e-01, 5.099999904632568e-01, 4.49999988079071e-01, 3.799999952316284e-01, 3.100000023841858e-01, 2.399999946355813e-01, 1.7000000178814e-01, 1.000000014901161e-01, 2.999999932944775e-02, 7.999999821186066e-02, 2.199999988079071e-01, 3.600000143051147e-01, 5e-01, 6.399999856948853e-01, 7.799999713897705e-01, 9.200000166893005e-01, 9.850000143051147e-01, 9.49999988079071e-01, 9.150000214576718e-01, 8.799999952316288e-01, 8.450000286102295e-01, 8.100000023841858e-01, 7.749999761581421e-01, 7.400000095367432e-01, 7.049999833106995e-01, 6.700000166893005e-01, 6.349999904632568e-01, 6.000000238418579e-01, 5.649999976158142e-01, 5.299999713897705e-01, 4.900000095367432e-01, 4.199999868869781e-01, 3.499999940395355e-01, 2.800000011920929e-01, 2.099999934434891e-01, 1.400000005960464e-01, 7.000000029802322e-02, 0e+00] +timTabLinCon.y[1]=[7.5e-01, 7.149999737739563e-01, 6.800000071525574e-01, 6.449999809265137e-01, 6.100000143051147e-01, 5.74999988079071e-01, 5.400000214576721e-01, 5.049999952316284e-01, 4.399999976158142e-01, 3.700000047683716e-01, 3.00000011920929e-01, 2.300000041723251e-01, 1.599999964237213e-01, 9.000000357627869e-02, 1.999999955296516e-02, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 9.800000190734863e-01, 9.449999928474426e-01, 9.100000262260437e-01, 8.75e-01, 8.399999737739563e-01, 8.050000071525574e-01, 7.699999809265134e-01, 7.350000143051147e-01, 6.99999988079071e-01, 6.650000214576721e-01, 6.299999952316284e-01, 5.950000286102295e-01, 5.600000023841856e-01, 5.249999761581421e-01, 4.799999892711639e-01, 4.099999964237213e-01, 3.400000035762787e-01, 2.700000107288361e-01, 2.000000029802322e-01, 1.299999952316288e-01, 5.999999865889549e-02, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 9.649999737739563e-01, 9.300000071525574e-01, 8.949999809265137e-01, 8.600000143051147e-01, 8.24999988079071e-01, 7.900000214576718e-01, 7.549999952316288e-01, 7.200000286102295e-01, 6.850000023841858e-01, 6.499999761581421e-01, 6.150000095367432e-01, 5.799999833106995e-01, 5.450000166893005e-01, 5.099999904632568e-01, 4.49999988079071e-01, 3.799999952316284e-01, 3.100000023841858e-01, 2.399999946355813e-01, 1.7000000178814e-01, 1.000000014901161e-01, 2.999999932944775e-02, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 9.850000143051147e-01, 9.49999988079071e-01, 9.150000214576718e-01, 8.799999952316288e-01, 8.450000286102295e-01, 8.100000023841858e-01, 7.749999761581421e-01, 7.400000095367432e-01, 7.049999833106995e-01, 6.700000166893005e-01, 6.349999904632568e-01, 6.000000238418579e-01, 5.649999976158142e-01, 5.299999713897705e-01, 4.900000095367432e-01, 4.199999868869781e-01, 3.499999940395355e-01, 2.800000011920929e-01, 2.099999934434891e-01, 1.400000005960464e-01, 7.000000029802322e-02, 0e+00] +timTabCon.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01] +timTabLinHol.y[1]=[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.999999955296516e-02, 1.599999964237213e-01, 3.00000011920929e-01, 4.399999976158142e-01, 5.799999833106995e-01, 7.200000286102295e-01, 8.600000143051147e-01, 1e+00, 9.649999737739563e-01, 9.300000071525574e-01, 8.949999809265137e-01, 8.600000143051147e-01, 8.24999988079071e-01, 7.900000214576718e-01, 7.549999952316288e-01, 7.200000286102295e-01, 6.850000023841858e-01, 6.499999761581421e-01, 6.150000095367432e-01, 5.799999833106995e-01, 5.450000166893005e-01, 5.099999904632568e-01, 4.49999988079071e-01, 3.799999952316284e-01, 3.100000023841858e-01, 2.399999946355813e-01, 1.7000000178814e-01, 1.000000014901161e-01, 2.999999932944775e-02, 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] +timTabLinDer.y[1]=[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.999999955296516e-02, 1.599999964237213e-01, 3.00000011920929e-01, 4.399999976158142e-01, 5.799999833106995e-01, 7.200000286102295e-01, 8.600000143051147e-01, 1e+00, 9.649999737739563e-01, 9.300000071525574e-01, 8.949999809265137e-01, 8.600000143051147e-01, 8.24999988079071e-01, 7.900000214576718e-01, 7.549999952316288e-01, 7.200000286102295e-01, 6.850000023841858e-01, 6.499999761581421e-01, 6.150000095367432e-01, 5.799999833106995e-01, 5.450000166893005e-01, 5.099999904632568e-01, 4.49999988079071e-01, 3.799999952316284e-01, 3.100000023841858e-01, 2.399999946355813e-01, 1.7000000178814e-01, 1.000000014901161e-01, 2.999999932944775e-02, -3.999999910593033e-02, -1.099999994039536e-01, -1.800000071525574e-01, -2.5e-01, -3.199999928474426e-01, -3.899999856948853e-01, -4.600000083446503e-01, -5.299999713897705e-01, -6.000000238418579e-01, -6.700000166893012e-01, -7.400000095367425e-01, -8.100000023841858e-01, -8.799999952316284e-01, -9.49999988079071e-01, -1.019999980926514e+00, -1.090000033378601e+00, -1.159999966621399e+00, -1.230000019073486e+00, -1.299999952316284e+00, -1.370000004768372e+00, -1.440000057220459e+00, -1.509999990463257e+00, -1.580000042915344e+00, -1.649999976158142e+00, -1.720000028610229e+00, -1.789999961853027e+00, -1.860000014305115e+00, -1.929999947547913e+00, -2e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Abs.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Abs.txt new file mode 100644 index 0000000000..4ecfa8eb58 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Abs.txt @@ -0,0 +1,10 @@ +last-generated=2017-02-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +abs1.y=[1e+00, 9.800000186264507e-01, 9.599999776482565e-01, 9.399999962747084e-01, 9.200000149011579e-01, 8.99999977648261e-01, 8.799999925494144e-01, 8.600000149011634e-01, 8.399999701977309e-01, 8.200000000000001e-01, 8.000000149011612e-01, 7.799999701976954e-01, 7.599999850988388e-01, 7.4e-01, 7.200000298023046e-01, 7e-01, 6.799999999999999e-01, 6.60000029802269e-01, 6.4e-01, 6.2e-01, 6.000000298022335e-01, 5.799999701976777e-01, 5.600000000000001e-01, 5.400000298023224e-01, 5.199999701976776e-01, 5e-01, 4.799999701978197e-01, 4.600000298021625e-01, 4.399999999999999e-01, 4.19999970197802e-01, 4.000000298023224e-01, 3.8e-01, 3.6e-01, 3.400000298023224e-01, 3.2e-01, 3e-01, 2.800000298023224e-01, 2.6e-01, 2.399999850988743e-01, 2.199999701977842e-01, 2.000000149011167e-01, 1.8e-01, 1.599999701977753e-01, 1.400000149011079e-01, 1.199999925494283e-01, 9.99999776483026e-02, 8.000001490113007e-02, 5.999999627471642e-02, 3.999997764829821e-02, 2.000001862641598e-02, 0e+00, 2.000001862613177e-02, 4.000003725226355e-02, 6.00000558784486e-02, 7.99999552972359e-02, 9.999997764865798e-02, 1.199999925493573e-01, 1.400000149008946e-01, 1.600000298018249e-01, 1.800000596036677e-01, 1.999999552972269e-01, 2.199999701982105e-01, 2.399999850990164e-01, 2.599999999998579e-01, 2.800000298018961e-01, 3.00000059603579e-01, 3.199999403965277e-01, 3.399999701981751e-01, 3.600000000002133e-01, 3.800000000000709e-01, 4.00000029801967e-01, 4.200000298016828e-01, 4.399999403962078e-01, 4.59999970198246e-01, 4.799999701981039e-01, 5e-01, 5.199999999997158e-01, 5.400000596040764e-01, 5.600000596037922e-01, 5.799999403959948e-01, 6.000000000003554e-01, 6.199999999999291e-01, 6.399999999997867e-01, 6.600000596036499e-01, 6.800000596038631e-01, 6.999999403960657e-01, 7.200000000004263e-01, 7.400000000001421e-01, 7.599999999998579e-01, 7.799999999995737e-01, 8.000000596039343e-01, 8.199999403961369e-01, 8.399999403963501e-01, 8.600000000002133e-01, 8.800000000000709e-01, 8.999999999996446e-01, 9.200000596040052e-01, 9.399999403962078e-01, 9.599999403959236e-01, 9.800000000002842e-01, 1e+00] +abs1.u=[-1e+00, -9.800000186264507e-01, -9.599999776482565e-01, -9.399999962747084e-01, -9.200000149011579e-01, -8.99999977648261e-01, -8.799999925494144e-01, -8.600000149011634e-01, -8.399999701977309e-01, -8.200000000000001e-01, -8.000000149011612e-01, -7.799999701976954e-01, -7.599999850988388e-01, -7.4e-01, -7.200000298023046e-01, -7e-01, -6.799999999999999e-01, -6.60000029802269e-01, -6.4e-01, -6.2e-01, -6.000000298022335e-01, -5.799999701976777e-01, -5.600000000000001e-01, -5.400000298023224e-01, -5.199999701976776e-01, -5e-01, -4.799999701978197e-01, -4.600000298021625e-01, -4.399999999999999e-01, -4.19999970197802e-01, -4.000000298023224e-01, -3.8e-01, -3.6e-01, -3.400000298023224e-01, -3.2e-01, -3e-01, -2.800000298023224e-01, -2.6e-01, -2.399999850988743e-01, -2.199999701977842e-01, -2.000000149011167e-01, -1.8e-01, -1.599999701977753e-01, -1.400000149011079e-01, -1.199999925494283e-01, -9.99999776483026e-02, -8.000001490113007e-02, -5.999999627471642e-02, -3.999997764829821e-02, -2.000001862641598e-02, 0e+00, 2.000001862613177e-02, 4.000003725226355e-02, 6.00000558784486e-02, 7.99999552972359e-02, 9.999997764865798e-02, 1.199999925493573e-01, 1.400000149008946e-01, 1.600000298018249e-01, 1.800000596036677e-01, 1.999999552972269e-01, 2.199999701982105e-01, 2.399999850990164e-01, 2.599999999998579e-01, 2.800000298018961e-01, 3.00000059603579e-01, 3.199999403965277e-01, 3.399999701981751e-01, 3.600000000002133e-01, 3.800000000000709e-01, 4.00000029801967e-01, 4.200000298016828e-01, 4.399999403962078e-01, 4.59999970198246e-01, 4.799999701981039e-01, 5e-01, 5.199999999997158e-01, 5.400000596040764e-01, 5.600000596037922e-01, 5.799999403959948e-01, 6.000000000003554e-01, 6.199999999999291e-01, 6.399999999997867e-01, 6.600000596036499e-01, 6.800000596038631e-01, 6.999999403960657e-01, 7.200000000004263e-01, 7.400000000001421e-01, 7.599999999998579e-01, 7.799999999995737e-01, 8.000000596039343e-01, 8.199999403961369e-01, 8.399999403963501e-01, 8.600000000002133e-01, 8.800000000000709e-01, 8.999999999996446e-01, 9.200000596040052e-01, 9.399999403962078e-01, 9.599999403959236e-01, 9.800000000002842e-01, 1e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Acos.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Acos.txt new file mode 100644 index 0000000000..5e13f343f8 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Acos.txt @@ -0,0 +1,10 @@ +last-generated=2022-01-28 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +arcCos.u=[-1e+00, -9.800000186264507e-01, -9.599999776482565e-01, -9.399999962747084e-01, -9.200000149011579e-01, -8.99999977648261e-01, -8.799999925494144e-01, -8.600000149011634e-01, -8.399999701977309e-01, -8.200000000000001e-01, -8.000000149011612e-01, -7.799999701976954e-01, -7.599999850988388e-01, -7.4e-01, -7.200000298023046e-01, -7e-01, -6.799999999999999e-01, -6.60000029802269e-01, -6.4e-01, -6.2e-01, -6.000000298022335e-01, -5.799999701976777e-01, -5.600000000000001e-01, -5.400000298023224e-01, -5.199999701976776e-01, -5e-01, -4.799999701978197e-01, -4.600000298021625e-01, -4.399999999999999e-01, -4.19999970197802e-01, -4.000000298023224e-01, -3.8e-01, -3.6e-01, -3.400000298023224e-01, -3.2e-01, -3e-01, -2.800000298023224e-01, -2.6e-01, -2.399999850988743e-01, -2.199999701977842e-01, -2.000000149011167e-01, -1.8e-01, -1.599999701977753e-01, -1.400000149011079e-01, -1.199999925494283e-01, -9.99999776483026e-02, -8.000001490113007e-02, -5.999999627471642e-02, -3.999997764829821e-02, -2.000001862641598e-02, 6.661338147750939e-16, 2.000001862613177e-02, 4.000003725226355e-02, 6.00000558784486e-02, 7.99999552972359e-02, 9.999997764865798e-02, 1.199999925493573e-01, 1.400000149008946e-01, 1.600000298018249e-01, 1.800000596036677e-01, 1.999999552972269e-01, 2.199999701982105e-01, 2.399999850990164e-01, 2.599999999998579e-01, 2.800000298018961e-01, 3.00000059603579e-01, 3.199999403965277e-01, 3.399999701981751e-01, 3.600000000002133e-01, 3.800000000000709e-01, 4.00000029801967e-01, 4.200000298016828e-01, 4.399999403962078e-01, 4.59999970198246e-01, 4.799999701981039e-01, 5e-01, 5.199999999997158e-01, 5.400000596040764e-01, 5.600000596037922e-01, 5.799999403959948e-01, 6.000000000003554e-01, 6.199999999999291e-01, 6.399999999997867e-01, 6.600000596036499e-01, 6.800000596038631e-01, 6.999999403960657e-01, 7.200000000004263e-01, 7.400000000001421e-01, 7.599999999998579e-01, 7.799999999995737e-01, 8.000000596039343e-01, 8.199999403961369e-01, 8.399999403963501e-01, 8.600000000002133e-01, 8.800000000000709e-01, 8.999999999996446e-01, 9.200000596040052e-01, 9.399999403962078e-01, 9.599999403959236e-01, 9.800000000002842e-01, 1e+00] +arcCos.y=[3.141592741012573e+00, 2.941257713080056e+00, 2.857798573236356e+00, 2.793426509802495e+00, 2.73887681510135e+00, 2.690565827960306e+00, 2.646658414959068e+00, 2.606065989716528e+00, 2.568079465034244e+00, 2.532207263155047e+00, 2.498091464263713e+00, 2.465462205896689e+00, 2.434109441162152e+00, 2.40386675375035e+00, 2.374598743254293e+00, 2.346193807174723e+00, 2.318558921620271e+00, 2.291615014079501e+00, 2.265294570507043e+00, 2.239539140357875e+00, 2.21429754049987e+00, 2.189525111341287e+00, 2.165182110774458e+00, 2.14123345414354e+00, 2.117647158478246e+00, 2.094395160675049e+00, 2.071450927001068e+00, 2.048791432734455e+00, 2.026395085131606e+00, 2.004241686569111e+00, 1.982313182166426e+00, 1.960592632684996e+00, 1.939064248976652e+00, 1.917713193192413e+00, 1.896525867387665e+00, 1.875488984017263e+00, 1.854590445775155e+00, 1.833818564760159e+00, 1.813162197784627e+00, 1.792610735188535e+00, 1.772154224169914e+00, 1.751782767656608e+00, 1.731487009191167e+00, 1.711257710603291e+00, 1.691086168255718e+00, 1.670963740233353e+00, 1.650881903227992e+00, 1.630832431312361e+00, 1.610806920513384e+00, 1.590797681813303e+00, 1.570796370506287e+00, 1.550794939990833e+00, 1.530785641637258e+00, 1.510760249982415e+00, 1.490710778366843e+00, 1.470628881569574e+00, 1.450506453547637e+00, 1.430334911200208e+00, 1.41010567143599e+00, 1.389809793536522e+00, 1.369438458451072e+00, 1.348981886614312e+00, 1.328430543227801e+00, 1.307774057043272e+00, 1.287002176028573e+00, 1.266103575279027e+00, 1.245066936501873e+00, 1.223879491985652e+00, 1.202528492035267e+00, 1.180999989118211e+00, 1.159279439637246e+00, 1.137350988735085e+00, 1.115197722188159e+00, 1.092801136966683e+00, 1.070141694802461e+00, 1.047197580337524e+00, 1.023945309212232e+00, 1.000359132197873e+00, 9.764104389779845e-01, 9.520676661910464e-01, 9.27295237723663e-01, 9.020536006546462e-01, 8.762980512963059e-01, 8.499775083571287e-01, 8.230336187344482e-01, 7.953988979548781e-01, 7.669940405851184e-01, 7.377259872617282e-01, 7.074832172945881e-01, 6.761304873158263e-01, 6.435010230962218e-01, 6.093854027893624e-01, 5.735131517807321e-01, 5.355266611127378e-01, 4.949341017145322e-01, 4.510267420696834e-01, 4.027157211501951e-01, 3.48166183816678e-01, 2.837942381117601e-01, 2.003349384995088e-01, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Add.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Add.txt new file mode 100644 index 0000000000..4c93f73093 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Add.txt @@ -0,0 +1,11 @@ +last-generated=2022-01-28 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +add1.u1=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 1.332267629550188e-15, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +add1.u2=[-1e+00, -9.800000186264507e-01, -9.599999776482565e-01, -9.399999962747084e-01, -9.200000149011579e-01, -8.99999977648261e-01, -8.799999925494144e-01, -8.600000149011634e-01, -8.399999701977309e-01, -8.200000000000001e-01, -8.000000149011612e-01, -7.799999701976954e-01, -7.599999850988388e-01, -7.4e-01, -7.200000298023046e-01, -7e-01, -6.799999999999999e-01, -6.60000029802269e-01, -6.4e-01, -6.2e-01, -6.000000298022335e-01, -5.799999701976777e-01, -5.600000000000001e-01, -5.400000298023224e-01, -5.199999701976776e-01, -5e-01, -4.799999701978197e-01, -4.600000298021625e-01, -4.399999999999999e-01, -4.19999970197802e-01, -4.000000298023224e-01, -3.8e-01, -3.6e-01, -3.400000298023224e-01, -3.2e-01, -3e-01, -2.800000298023224e-01, -2.6e-01, -2.399999850988743e-01, -2.199999701977842e-01, -2.000000149011167e-01, -1.8e-01, -1.599999701977753e-01, -1.400000149011079e-01, -1.199999925494283e-01, -9.99999776483026e-02, -8.000001490113007e-02, -5.999999627471642e-02, -3.999997764829821e-02, -2.000001862641598e-02, 6.661338147750939e-16, 2.000001862613177e-02, 4.000003725226355e-02, 6.00000558784486e-02, 7.99999552972359e-02, 9.999997764865798e-02, 1.199999925493573e-01, 1.400000149008946e-01, 1.600000298018249e-01, 1.800000596036677e-01, 1.999999552972269e-01, 2.199999701982105e-01, 2.399999850990164e-01, 2.599999999998579e-01, 2.800000298018961e-01, 3.00000059603579e-01, 3.199999403965277e-01, 3.399999701981751e-01, 3.600000000002133e-01, 3.800000000000709e-01, 4.00000029801967e-01, 4.200000298016828e-01, 4.399999403962078e-01, 4.59999970198246e-01, 4.799999701981039e-01, 5e-01, 5.199999999997158e-01, 5.400000596040764e-01, 5.600000596037922e-01, 5.799999403959948e-01, 6.000000000003554e-01, 6.199999999999291e-01, 6.399999999997867e-01, 6.600000596036499e-01, 6.800000596038631e-01, 6.999999403960657e-01, 7.200000000004263e-01, 7.400000000001421e-01, 7.599999999998579e-01, 7.799999999995737e-01, 8.000000596039343e-01, 8.199999403961369e-01, 8.399999403963501e-01, 8.600000000002133e-01, 8.800000000000709e-01, 8.999999999996446e-01, 9.200000596040052e-01, 9.399999403962078e-01, 9.599999403959236e-01, 9.800000000002842e-01, 1e+00] +add1.y=[-3e+00, -2.940000055879345e+00, -2.880000111758691e+00, -2.819999929219541e+00, -2.759999985098802e+00, -2.700000052154006e+00, -2.640000096857493e+00, -2.57999992549421e+00, -2.519999970197624e+00, -2.460000059604325e+00, -2.400000104307995e+00, -2.339999910593086e+00, -2.279999955296437e+00, -2.219999999999858e+00, -2.160000089406914e+00, -2.099999940395533e+00, -2.039999940395675e+00, -1.980000029802269e+00, -1.920000000000213e+00, -1.860000000000071e+00, -1.799999970197766e+00, -1.739999970197873e+00, -1.679999940395391e+00, -1.620000029802198e+00, -1.559999910593193e+00, -1.5e+00, -1.439999999999716e+00, -1.380000059604325e+00, -1.320000059604609e+00, -1.259999940395604e+00, -1.200000119208934e+00, -1.139999999999929e+00, -1.079999999999787e+00, -1.020000059604254e+00, -9.599999999999999e-01, -8.99999940395533e-01, -8.400000596046449e-01, -7.8e-01, -7.2e-01, -6.599999403953551e-01, -6.00000059604467e-01, -5.400000000000001e-01, -4.799999105932283e-01, -4.200000298023224e-01, -3.6e-01, -2.999999403953552e-01, -2.400000447034213e-01, -1.80000000000009e-01, -1.199999329449346e-01, -6.000005587923019e-02, 1.998401444325282e-15, 6.000005587837755e-02, 1.200001117567906e-01, 1.800001788109503e-01, 2.399998658917877e-01, 2.999999403964213e-01, 3.599999999997872e-01, 4.200000298016826e-01, 4.800000894054748e-01, 5.400001788108078e-01, 5.999998807928419e-01, 6.599999403966341e-01, 7.200000000004263e-01, 7.799999999995737e-01, 8.400000596033659e-01, 9.000001192071581e-01, 9.599998211891922e-01, 1.0199998807927e+00, 1.080000000000427e+00, 1.140000000000142e+00, 1.200000119207868e+00, 1.260000119206731e+00, 1.319999880792416e+00, 1.379999880792984e+00, 1.440000000000568e+00, 1.5e+00, 1.559999999999432e+00, 1.620000119207016e+00, 1.680000119207584e+00, 1.739999880793269e+00, 1.799999880792132e+00, 1.859999999999858e+00, 1.919999999999573e+00, 1.9800001192073e+00, 2.040000119207726e+00, 2.099999761585684e+00, 2.160000000000852e+00, 2.220000000000284e+00, 2.279999999999716e+00, 2.339999999999148e+00, 2.400000238414316e+00, 2.459999880792274e+00, 2.519999880791705e+00, 2.579999880791989e+00, 2.640000119209289e+00, 2.700000119207158e+00, 2.76000011920801e+00, 2.819999761586537e+00, 2.880000000001137e+00, 2.940000000000568e+00, 3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_AddParameter.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_AddParameter.txt new file mode 100644 index 0000000000..d66377d410 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_AddParameter.txt @@ -0,0 +1,10 @@ +last-generated=2022-02-03 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +addPar.u=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 1.332267629550188e-15, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +addPar.y=[-1.5e+00, -1.460000037252901e+00, -1.419999955296513e+00, -1.379999992549417e+00, -1.340000029802316e+00, -1.299999955296522e+00, -1.259999985098829e+00, -1.220000029802327e+00, -1.179999940395462e+00, -1.14e+00, -1.100000029802322e+00, -1.059999940395391e+00, -1.019999970197678e+00, -9.8e-01, -9.399999999999999e-01, -9e-01, -8.6e-01, -8.2e-01, -7.8e-01, -7.4e-01, -7e-01, -6.6e-01, -6.2e-01, -5.8e-01, -5.4e-01, -5e-01, -4.599999701976776e-01, -4.200000298023223e-01, -3.799999999999999e-01, -3.399999701976777e-01, -3.000000596044672e-01, -2.6e-01, -2.199999701977309e-01, -1.800000596044493e-01, -1.400000149011345e-01, -9.999997764830271e-02, -6.000005587927459e-02, -2.000001862641598e-02, 2.000001862641598e-02, 6.000005587927459e-02, 9.999997764830271e-02, 1.400000149011345e-01, 1.800000596044493e-01, 2.199999701977309e-01, 2.6e-01, 3.000000596044672e-01, 3.399999701976777e-01, 3.799999999999999e-01, 4.200000298023223e-01, 4.599999701976776e-01, 5e-01, 5.400000596037922e-01, 5.80000059603508e-01, 6.200001192075844e-01, 6.599999403966343e-01, 6.999999403960659e-01, 7.399999999998581e-01, 7.799999999995735e-01, 8.200000596036499e-01, 8.600001192069446e-01, 8.99999880792842e-01, 9.399999403962078e-01, 9.800000000002842e-01, 1.019999999999716e+00, 1.059999999999147e+00, 1.100000119207869e+00, 1.139999880792274e+00, 1.1799998807927e+00, 1.220000000000427e+00, 1.260000000000142e+00, 1.299999999999289e+00, 1.34000011920801e+00, 1.379999880792416e+00, 1.419999880791847e+00, 1.460000000000568e+00, 1.5e+00, 1.539999999999432e+00, 1.580000119208153e+00, 1.620000119207584e+00, 1.65999988079199e+00, 1.700000000000711e+00, 1.739999999999858e+00, 1.779999999999573e+00, 1.8200001192073e+00, 1.860000119207726e+00, 1.899999880792131e+00, 1.940000000000853e+00, 1.980000000000284e+00, 2.02e+00, 2.06e+00, 2.1e+00, 2.14e+00, 2.18e+00, 2.22e+00, 2.26e+00, 2.3e+00, 2.34e+00, 2.38e+00, 2.42e+00, 2.46e+00, 2.5e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Asin.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Asin.txt new file mode 100644 index 0000000000..b065b8f6d5 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Asin.txt @@ -0,0 +1,10 @@ +last-generated=2022-01-28 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +arcSin.u=[-1e+00, -9.800000186264507e-01, -9.599999776482565e-01, -9.399999962747084e-01, -9.200000149011579e-01, -8.99999977648261e-01, -8.799999925494144e-01, -8.600000149011634e-01, -8.399999701977309e-01, -8.200000000000001e-01, -8.000000149011612e-01, -7.799999701976954e-01, -7.599999850988388e-01, -7.4e-01, -7.200000298023046e-01, -7e-01, -6.799999999999999e-01, -6.60000029802269e-01, -6.4e-01, -6.2e-01, -6.000000298022335e-01, -5.799999701976777e-01, -5.600000000000001e-01, -5.400000298023224e-01, -5.199999701976776e-01, -5e-01, -4.799999701978197e-01, -4.600000298021625e-01, -4.399999999999999e-01, -4.19999970197802e-01, -4.000000298023224e-01, -3.8e-01, -3.6e-01, -3.400000298023224e-01, -3.2e-01, -3e-01, -2.800000298023224e-01, -2.6e-01, -2.399999850988743e-01, -2.199999701977842e-01, -2.000000149011167e-01, -1.8e-01, -1.599999701977753e-01, -1.400000149011079e-01, -1.199999925494283e-01, -9.99999776483026e-02, -8.000001490113007e-02, -5.999999627471642e-02, -3.999997764829821e-02, -2.000001862641598e-02, 6.661338147750939e-16, 2.000001862613177e-02, 4.000003725226355e-02, 6.00000558784486e-02, 7.99999552972359e-02, 9.999997764865798e-02, 1.199999925493573e-01, 1.400000149008946e-01, 1.600000298018249e-01, 1.800000596036677e-01, 1.999999552972269e-01, 2.199999701982105e-01, 2.399999850990164e-01, 2.599999999998579e-01, 2.800000298018961e-01, 3.00000059603579e-01, 3.199999403965277e-01, 3.399999701981751e-01, 3.600000000002133e-01, 3.800000000000709e-01, 4.00000029801967e-01, 4.200000298016828e-01, 4.399999403962078e-01, 4.59999970198246e-01, 4.799999701981039e-01, 5e-01, 5.199999999997158e-01, 5.400000596040764e-01, 5.600000596037922e-01, 5.799999403959948e-01, 6.000000000003554e-01, 6.199999999999291e-01, 6.399999999997867e-01, 6.600000596036499e-01, 6.800000596038631e-01, 6.999999403960657e-01, 7.200000000004263e-01, 7.400000000001421e-01, 7.599999999998579e-01, 7.799999999995737e-01, 8.000000596039343e-01, 8.199999403961369e-01, 8.399999403963501e-01, 8.600000000002133e-01, 8.800000000000709e-01, 8.999999999996446e-01, 9.200000596040052e-01, 9.399999403962078e-01, 9.599999403959236e-01, 9.800000000002842e-01, 1e+00] +arcSin.y=[-1.570796370506287e+00, -1.370461461783046e+00, -1.287002202730069e+00, -1.222630258505497e+00, -1.168080444595117e+00, -1.119769576663264e+00, -1.075862163661991e+00, -1.035269619210242e+00, -9.972832137371404e-01, -9.614110118579434e-01, -9.272952129666715e-01, -8.946658353904379e-01, -8.633131302604304e-01, -8.33070323639703e-01, -8.038023131433967e-01, -7.753974962729034e-01, -7.477626107185229e-01, -7.208187627823978e-01, -6.944982596058273e-01, -6.687427102471569e-01, -6.435011103889385e-01, -6.187286812307461e-01, -5.943857998727453e-01, -5.704371432417735e-01, -5.468509667852542e-01, -5.235987901687622e-01, -5.006546757033603e-01, -4.779952112388208e-01, -4.555986848230499e-01, -4.334453160631976e-01, -4.115168712647842e-01, -3.897962919810321e-01, -3.682678784706849e-01, -3.469169120928977e-01, -3.257294968813784e-01, -3.04692643313477e-01, -2.837941348735136e-01, -2.630222240561947e-01, -2.423658421794656e-01, -2.218144391877342e-01, -2.01357928169344e-01, -1.809864418538047e-01, -1.606906237843054e-01, -1.404614295039713e-01, -1.202898797057381e-01, -1.001673995295663e-01, -8.008559977683727e-02, -6.003605708078209e-02, -4.001065431476606e-02, -2.000135228497023e-02, 6.661338147750939e-16, 2.000135228468595e-02, 4.001071396793809e-02, 6.003611679874103e-02, 8.008553998537991e-02, 1.001673995299234e-01, 1.202898797056666e-01, 1.404614295037558e-01, 1.606906841687625e-01, 1.809865024645448e-01, 2.013578673515531e-01, 2.218144391881711e-01, 2.423658421796119e-01, 2.630222240560475e-01, 2.837941348730692e-01, 3.046927058202928e-01, 3.257294340032417e-01, 3.469168487185605e-01, 3.682678784709134e-01, 3.897962919811088e-01, 4.115168712643961e-01, 4.334453817705624e-01, 4.555986185153786e-01, 4.779951441326363e-01, 5.006546757036839e-01, 5.235987901687622e-01, 5.468510016896938e-01, 5.704371787037691e-01, 5.943858719236573e-01, 6.187286447105954e-01, 6.435010731779789e-01, 6.687427102470667e-01, 6.944982596055491e-01, 7.208188025445131e-01, 7.477626921679752e-01, 7.753974129467638e-01, 8.038022703169497e-01, 8.330703236399136e-01, 8.633131532115564e-01, 8.94665883190034e-01, 9.272952878061306e-01, 9.614109081122795e-01, 9.972831591214071e-01, 1.035269590184259e+00, 1.075862179384858e+00, 1.119769628436248e+00, 1.168080559950084e+00, 1.22263009728392e+00, 1.287002072789597e+00, 1.370461372402204e+00, 1.570796370506287e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Atan.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Atan.txt new file mode 100644 index 0000000000..2065894dac --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Atan.txt @@ -0,0 +1,10 @@ +last-generated=2017-03-17 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +atan1.y=[-1.107148766517639e+00, -1.0990188119943e+00, -1.090621351812926e+00, -1.081943988206564e+00, -1.072973965780339e+00, -1.063697815641912e+00, -1.05410122740032e+00, -1.044169068636603e+00, -1.033885596304824e+00, -1.023234132815382e+00, -1.01219701933794e+00, -1.000755905408125e+00, -9.888911810771551e-01, -9.765826403692707e-01, -9.638086565116331e-01, -9.505468687190282e-01, -9.367735931548569e-01, -9.22464313721024e-01, -9.075933206810939e-01, -8.92133828204941e-01, -8.760580469159053e-01, -8.593371994299389e-01, -8.419415929539554e-01, -8.238407450158989e-01, -8.05003513476979e-01, -7.853981852531433e-01, -7.649928132062604e-01, -7.437556021451456e-01, -7.216548350398088e-01, -6.986598175987283e-01, -6.747409990967537e-01, -6.498704612868826e-01, -6.240230609582326e-01, -5.971767067618984e-01, -5.693131786372668e-01, -5.404195013549542e-01, -5.104883747292748e-01, -4.795192927756186e-01, -4.475199722713827e-01, -4.145068343486408e-01, -3.805063869877695e-01, -3.455555610058534e-01, -3.097028851449942e-01, -2.730087306602546e-01, -2.355449705387405e-01, -1.973955172062573e-01, -1.586552885370904e-01, -1.194289205111713e-01, -7.98299407446374e-02, -3.997872479312041e-02, 0e+00, 3.997872479255309e-02, 7.983005917092731e-02, 1.194290379216803e-01, 1.586551722433081e-01, 1.973955172069418e-01, 2.355449705386062e-01, 2.730087306598599e-01, 3.097029932485999e-01, 3.455556663312599e-01, 3.805062840534133e-01, 4.145068343493573e-01, 4.475199722716144e-01, 4.795192927753956e-01, 5.104883747286278e-01, 5.404195888219018e-01, 5.693130938352052e-01, 5.971766252097778e-01, 6.240230609585146e-01, 6.498704612869722e-01, 6.747409990963219e-01, 6.986598873701168e-01, 7.216547676121809e-01, 7.437555375099892e-01, 7.649928132065574e-01, 7.853981852531433e-01, 8.050035420789962e-01, 8.238407724191776e-01, 8.419416456388799e-01, 8.593371739185012e-01, 8.760580224302341e-01, 8.921338282048848e-01, 9.075933206809328e-01, 9.224643353717441e-01, 9.367736348668148e-01, 9.505468283543695e-01, 9.638086370524414e-01, 9.765826403693602e-01, 9.888911900705063e-01, 1.000755922709291e+00, 1.012197044361474e+00, 1.023234100417966e+00, 1.033885580656301e+00, 1.044169061083531e+00, 1.054101231033373e+00, 1.063697826149318e+00, 1.072973986103858e+00, 1.08194396347844e+00, 1.090621335862628e+00, 1.099018804275053e+00, 1.107148766517639e+00] +atan1.u=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Atan2.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Atan2.txt new file mode 100644 index 0000000000..87fe3d5035 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Atan2.txt @@ -0,0 +1,11 @@ +last-generated=2017-03-17 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +atan2_1.y=[-1.107148766517639e+00, -1.090955853095073e+00, -1.074373602115301e+00, -1.057397245206463e+00, -1.040022848461721e+00, -1.022246958161654e+00, -1.004067060860941e+00, -9.854819184168422e-01, -9.664908017097033e-01, -9.470946262685302e-01, -9.272952109515764e-01, -9.070959675051451e-01, -8.865015450877187e-01, -8.655182618077993e-01, -8.441540015646369e-01, -8.224182855377882e-01, -8.003224054672364e-01, -7.778795401891816e-01, -7.55104438951444e-01, -7.320138160533928e-01, -7.086262772981726e-01, -6.849620186074287e-01, -6.610431642459091e-01, -6.368932825121129e-01, -6.125375497216634e-01, -5.88002622127533e-01, -5.633162619929432e-01, -5.385074882096702e-01, -5.136060148395397e-01, -4.886423736916999e-01, -4.636476337907034e-01, -4.386528193920278e-01, -4.136892080798879e-01, -3.887877790405355e-01, -3.639789610258892e-01, -3.392926009893542e-01, -3.14757709933531e-01, -2.904019471538156e-01, -2.662520294117404e-01, -2.423331397490194e-01, -2.186689666252732e-01, -1.952813929751658e-01, -1.721907851761704e-01, -1.494157327256636e-01, -1.269727892310898e-01, -1.048769093970772e-01, -8.314124806184417e-02, -6.177695961153368e-02, -4.079366111644264e-02, -2.019929227204247e-02, 0e+00, 1.979941132193068e-02, 3.919563742854829e-02, 5.818672626421933e-02, 7.677185307662303e-02, 9.495168266580074e-02, 1.127276080572337e-01, 1.301020655403405e-01, 1.47078378122337e-01, 1.636606287534715e-01, 1.798534606977788e-01, 1.956624313738925e-01, 2.110933290572728e-01, 2.261524420207489e-01, 2.408464758078542e-01, 2.55182419118823e-01, 2.691674465397719e-01, 2.828091753623007e-01, 2.961151505661267e-01, 3.090930015527286e-01, 3.217505663259429e-01, 3.340956233613556e-01, 3.461359398265901e-01, 3.578793780779167e-01, 3.693336438272593e-01, 3.805063664913177e-01, 3.914051456331692e-01, 4.02037402105978e-01, 4.124104673019413e-01, 4.22531523657847e-01, 4.324077549221939e-01, 4.420460141790477e-01, 4.514530963452202e-01, 4.606355877763165e-01, 4.695999556057429e-01, 4.783524068139772e-01, 4.868992147934879e-01, 4.952462872178486e-01, 5.033993759341433e-01, 5.113641732038533e-01, 5.191461030830482e-01, 5.267504852105495e-01, 5.341825362328996e-01, 5.414472170839578e-01, 5.485494153515377e-01, 5.554937205931376e-01, 5.622848416110154e-01, 5.689269711965954e-01, 5.75424658888304e-01, 5.817818581563068e-01, 5.88002622127533e-01] +atan2_1.u2=[1e+00, 1.019999981373556e+00, 1.039999962747112e+00, 1.059999944120667e+00, 1.08000004470346e+00, 1.100000022351717e+00, 1.120000007450546e+00, 1.139999985098846e+00, 1.159999970197731e+00, 1.179999940395462e+00, 1.200000044703439e+00, 1.220000029802305e+00, 1.240000014901081e+00, 1.260000000000142e+00, 1.279999970197695e+00, 1.299999940395533e+00, 1.320000059604538e+00, 1.340000029802269e+00, 1.359999999999787e+00, 1.379999999999929e+00, 1.399999970197766e+00, 1.419999970197873e+00, 1.440000059604609e+00, 1.460000029802198e+00, 1.480000029802162e+00, 1.5e+00, 1.520000000000284e+00, 1.539999940395675e+00, 1.559999940395391e+00, 1.580000059604396e+00, 1.599999999999645e+00, 1.620000000000071e+00, 1.640000000000213e+00, 1.659999940395746e+00, 1.679999940395462e+00, 1.700000059604467e+00, 1.719999999999574e+00, 1.739999999999858e+00, 1.760000000000142e+00, 1.780000000000426e+00, 1.799999940395533e+00, 1.820000059604538e+00, 1.840000059604254e+00, 1.859999999999787e+00, 1.879999999999929e+00, 1.900000000000355e+00, 1.919999940395604e+00, 1.940000059604609e+00, 1.960000059604325e+00, 1.979999999999716e+00, 2e+00, 2.019999999999432e+00, 2.039999999998863e+00, 2.059999999998295e+00, 2.079999880791989e+00, 2.099999880791421e+00, 2.119999880790711e+00, 2.140000119208863e+00, 2.160000119208295e+00, 2.180000119207727e+00, 2.200000000001421e+00, 2.220000000000852e+00, 2.240000000000284e+00, 2.259999999999716e+00, 2.279999999999148e+00, 2.299999999998579e+00, 2.319999880792273e+00, 2.339999880791705e+00, 2.359999880791137e+00, 2.380000119209289e+00, 2.400000119208579e+00, 2.420000119208011e+00, 2.440000000001705e+00, 2.460000000001137e+00, 2.480000000000568e+00, 2.5e+00, 2.519999999999432e+00, 2.539999999998863e+00, 2.559999999998295e+00, 2.579999880791989e+00, 2.599999880791421e+00, 2.619999880790711e+00, 2.640000119208863e+00, 2.660000119208295e+00, 2.680000119207727e+00, 2.700000000001421e+00, 2.720000000000852e+00, 2.740000000000284e+00, 2.759999999999716e+00, 2.779999999999148e+00, 2.799999999998579e+00, 2.819999880792273e+00, 2.839999880791705e+00, 2.859999880791137e+00, 2.880000119209289e+00, 2.900000119208579e+00, 2.920000119208011e+00, 2.940000000001705e+00, 2.960000000001137e+00, 2.980000000000568e+00, 3e+00] +atan2_1.u1=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Average.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Average.txt new file mode 100644 index 0000000000..50cfafea11 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Average.txt @@ -0,0 +1,11 @@ +last-generated=2017-03-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +avg1.u1=[-2e+00, -1.940000055879345e+00, -1.879999992549428e+00, -1.82000004842875e+00, -1.759999985098855e+00, -1.70000005215405e+00, -1.639999977648283e+00, -1.580000044703481e+00, -1.519999970197731e+00, -1.460000059604538e+00, -1.399999985098794e+00, -1.340000029802305e+00, -1.279999955296596e+00, -1.219999999999858e+00, -1.159999970197695e+00, -1.100000059604467e+00, -1.039999940395462e+00, -9.800000298022691e-01, -9.200000596044317e-01, -8.6e-01, -8.000000298022335e-01, -7.399999701976776e-01, -6.799999999999999e-01, -6.200000298023223e-01, -5.599999701976777e-01, -5e-01, -4.399999403954973e-01, -3.800000596044848e-01, -3.199999999999821e-01, -2.599999403954797e-01, -2.000000745056284e-01, -1.400000149011257e-01, -7.999995529662296e-02, -2.000007823094963e-02, 3.999997764830499e-02, 1.000000372528362e-01, 1.599999105932459e-01, 2.199999701977486e-01, 2.800000298022514e-01, 3.400000894067541e-01, 3.999999701977666e-01, 4.60000029802269e-01, 5.200000596046447e-01, 5.799999403955683e-01, 6.4e-01, 7.000000596046448e-01, 7.59999940395604e-01, 8.199999999999998e-01, 8.800000596046447e-01, 9.399999403953552e-01, 1e+00, 1.059999999999432e+00, 1.120000119207016e+00, 1.180000119207584e+00, 1.239999880793269e+00, 1.299999880792132e+00, 1.359999999999858e+00, 1.419999999999573e+00, 1.4800001192073e+00, 1.540000119207726e+00, 1.599999880793552e+00, 1.659999880792416e+00, 1.720000000000284e+00, 1.779999999999716e+00, 1.840000119207584e+00, 1.900000119206448e+00, 1.959999880792274e+00, 2.019999880791705e+00, 2.079999880791989e+00, 2.140000119209289e+00, 2.200000119207158e+00, 2.26000011920801e+00, 2.319999761586537e+00, 2.380000000001137e+00, 2.440000000000568e+00, 2.5e+00, 2.559999999999432e+00, 2.619999999998863e+00, 2.680000238413463e+00, 2.73999988079199e+00, 2.799999880792842e+00, 2.859999880790711e+00, 2.920000119208011e+00, 2.980000119208295e+00, 3.040000119207726e+00, 3.099999761585684e+00, 3.160000000000852e+00, 3.220000000000284e+00, 3.279999999999716e+00, 3.339999999999148e+00, 3.400000238414316e+00, 3.459999880792274e+00, 3.519999880791705e+00, 3.579999880791989e+00, 3.640000119209289e+00, 3.700000119207158e+00, 3.76000011920801e+00, 3.819999761586537e+00, 3.880000000001137e+00, 3.940000000000568e+00, 4e+00] +avg1.y=[-2.5e-01, -2.049999972060321e-01, -1.599999944120641e-01, -1.149999990686796e-01, -6.999999627471053e-02, -2.500000372529029e-02, 2.000000558793419e-02, 6.499999627470807e-02, 1.100000074505673e-01, 1.549999850988654e-01, 1.999999962747208e-01, 2.450000074505762e-01, 2.900000037252703e-01, 3.350000298022869e-01, 3.799999925494239e-01, 4.249999850988832e-01, 4.700000149011346e-01, 5.149999776482715e-01, 5.599999701977308e-01, 6.050000298023046e-01, 6.499999627471192e-01, 6.950000223516929e-01, 7.400000149011523e-01, 7.850000074506117e-01, 8.300000074505406e-01, 8.75e-01, 9.200000596045738e-01, 9.64999925494274e-01, 1.009999985098883e+00, 1.054999985099025e+00, 1.099999970197411e+00, 1.144999970197766e+00, 1.190000089406701e+00, 1.234999955296223e+00, 1.27999995529665e+00, 1.325000074505584e+00, 1.369999940395035e+00, 1.414999940395533e+00, 1.460000059604467e+00, 1.505000059604965e+00, 1.549999925494416e+00, 1.59500004470335e+00, 1.640000044703777e+00, 1.684999910593299e+00, 1.730000029802234e+00, 1.775000029802589e+00, 1.820000014900975e+00, 1.865000014901117e+00, 1.910000014901401e+00, 1.954999999999787e+00, 2e+00, 2.045000119207726e+00, 2.089999999999148e+00, 2.135000119208011e+00, 2.179999970198637e+00, 2.224999850990342e+00, 2.269999970197464e+00, 2.315000089405795e+00, 2.359999970196931e+00, 2.405000089405795e+00, 2.449999940396421e+00, 2.494999821188411e+00, 2.539999940395568e+00, 2.585000059604432e+00, 2.630000178811589e+00, 2.675000059603579e+00, 2.719999910594205e+00, 2.765000029803069e+00, 2.809999910594205e+00, 2.855000029802536e+00, 2.900000149009658e+00, 2.945000029801363e+00, 2.989999880791989e+00, 3.035000000000852e+00, 3.079999880792274e+00, 3.125e+00, 3.170000119207726e+00, 3.214999999999148e+00, 3.260000119208011e+00, 3.304999970198637e+00, 3.349999850990342e+00, 3.394999970197464e+00, 3.440000089405795e+00, 3.484999970196931e+00, 3.530000089405795e+00, 3.574999940396421e+00, 3.619999821188411e+00, 3.664999940395568e+00, 3.710000059604432e+00, 3.755000178811589e+00, 3.800000059603579e+00, 3.844999910594205e+00, 3.890000029803069e+00, 3.934999910594205e+00, 3.980000029802536e+00, 4.025000149009657e+00, 4.070000268217385e+00, 4.114999642376821e+00, 4.159999761584547e+00, 4.204999880792274e+00, 4.25e+00] +avg1.u2=[1.5e+00, 1.529999972060327e+00, 1.559999944120655e+00, 1.59000003539023e+00, 1.620000007450599e+00, 1.649999973922997e+00, 1.679999951571254e+00, 1.710000037252895e+00, 1.740000014901188e+00, 1.769999970197838e+00, 1.799999947846002e+00, 1.830000044703457e+00, 1.860000022351782e+00, 1.890000000000071e+00, 1.919999955296543e+00, 1.950000029802234e+00, 1.980000029802162e+00, 2.009999985098812e+00, 2.039999940395249e+00, 2.069999940395391e+00, 2.099999895692183e+00, 2.130000134109767e+00, 2.160000089406843e+00, 2.190000044703421e+00, 2.220000044703563e+00, 2.25e+00, 2.280000000000142e+00, 2.309999910592873e+00, 2.339999910593157e+00, 2.369999910593157e+00, 2.400000059604467e+00, 2.430000059604609e+00, 2.460000059604751e+00, 2.489999970197482e+00, 2.519999970197624e+00, 2.549999970197766e+00, 2.579999880790497e+00, 2.609999880791208e+00, 2.640000119208792e+00, 2.670000119209503e+00, 2.700000029802234e+00, 2.730000029802376e+00, 2.760000029802518e+00, 2.789999940395249e+00, 2.819999940395391e+00, 2.849999940395533e+00, 2.880000089406843e+00, 2.910000089406843e+00, 2.940000089407127e+00, 2.969999999999858e+00, 3e+00, 3.029999999999716e+00, 3.059999999999432e+00, 3.089999999999148e+00, 3.119999821189263e+00, 3.150000059605e+00, 3.180000059604503e+00, 3.210000059604432e+00, 3.240000059604147e+00, 3.270000059603863e+00, 3.299999880791421e+00, 3.329999880791137e+00, 3.359999880791421e+00, 3.390000119208579e+00, 3.420000119208863e+00, 3.450000119208579e+00, 3.479999940396137e+00, 3.509999940395853e+00, 3.539999940395568e+00, 3.569999940395497e+00, 3.599999940395e+00, 3.630000178810737e+00, 3.660000000000852e+00, 3.690000000000568e+00, 3.720000000000284e+00, 3.75e+00, 3.779999999999716e+00, 3.809999999999432e+00, 3.839999999999148e+00, 3.869999821189263e+00, 3.900000059605e+00, 3.930000059604503e+00, 3.960000059604432e+00, 3.990000059604147e+00, 4.020000059603863e+00, 4.05000011921e+00, 4.079999880791137e+00, 4.110000119209432e+00, 4.139999880790568e+00, 4.170000119208863e+00, 4.19999988079e+00, 4.229999940396137e+00, 4.260000178814431e+00, 4.289999940395568e+00, 4.320000178814077e+00, 4.349999940395e+00, 4.380000178813295e+00, 4.409999761582274e+00, 4.440000000000568e+00, 4.469999761583979e+00, 4.5e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Cos.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Cos.txt new file mode 100644 index 0000000000..7c6438ff8d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Cos.txt @@ -0,0 +1,10 @@ +last-generated=2017-04-06 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +cos1.u=[0e+00, 6.283000252015869e-02, 1.256600050403174e-01, 1.884900075604721e-01, 2.513200100806348e-01, 3.141500008977957e-01, 3.769800151209521e-01, 4.398100059381095e-01, 5.026400201612219e-01, 5.654699577702076e-01, 6.283000017955865e-01, 6.911299862164273e-01, 7.539600302418328e-01, 8.167900146627535e-01, 8.796200118762242e-01, 9.424499494852275e-01, 1.005280040322444e+00, 1.06810997793143e+00, 1.130939915540415e+00, 1.193770065982276e+00, 1.256600003591262e+00, 1.319430034823833e+00, 1.38225997243289e+00, 1.445090029250846e+00, 1.507920060483666e+00, 1.570749998092651e+00, 1.633580029325791e+00, 1.696409873310623e+00, 1.759240023752413e+00, 1.822070054985055e+00, 1.884899898970455e+00, 1.947729930203027e+00, 2.010560080644461e+00, 2.073389924629506e+00, 2.136219955862646e+00, 2.199049987095786e+00, 2.261879831081683e+00, 2.324709862313686e+00, 2.387540131964268e+00, 2.450370163196271e+00, 2.513200007182169e+00, 2.576030038415308e+00, 2.638860069648448e+00, 2.701689913633493e+00, 2.76451994486578e+00, 2.82734997609892e+00, 2.890180058501691e+00, 2.953010089734688e+00, 3.015840120966692e+00, 3.078669964952163e+00, 3.141499996185303e+00, 3.20433002741755e+00, 3.267160058649797e+00, 3.329990089882044e+00, 3.392819746624534e+00, 3.455650016272802e+00, 3.518480047504602e+00, 3.581310078736442e+00, 3.644140109969542e+00, 3.706970141201789e+00, 3.769799797944564e+00, 3.832629829175674e+00, 3.895459860406784e+00, 3.958290130056473e+00, 4.021120161289288e+00, 4.083950192521535e+00, 4.146779849261468e+00, 4.209609880493715e+00, 4.272439911725962e+00, 4.335269942958655e+00, 4.398099974190455e+00, 4.460930005422702e+00, 4.523759662169455e+00, 4.586589693399429e+00, 4.649419724629402e+00, 4.712250232696533e+00, 4.775080263926506e+00, 4.83791029515648e+00, 4.900740326393274e+00, 4.963569983133207e+00, 5.026400014365453e+00, 5.089230045597254e+00, 5.152060076829946e+00, 5.214890108062193e+00, 5.27772013929444e+00, 5.340549796034373e+00, 5.40337982726662e+00, 5.466209858498867e+00, 5.529039889731114e+00, 5.591869920963361e+00, 5.654699952195608e+00, 5.717529608941793e+00, 5.780360117004945e+00, 5.843190148237192e+00, 5.906020179469317e+00, 5.968850210701685e+00, 6.031680241933932e+00, 6.094509898673865e+00, 6.157339929906112e+00, 6.220169961138359e+00, 6.282999992370605e+00] +cos1.y=[1e+00, 9.98026847742373e-01, 9.921151395917384e-01, 9.822883001756515e-01, 9.685850129121401e-01, 9.510594024538184e-01, 9.297805993041802e-01, 9.048326023338134e-01, 8.76313800106129e-01, 8.443368792524993e-01, 8.090279156877247e-01, 7.705262279301066e-01, 7.289838674765083e-01, 6.845646280913674e-01, 6.374439625833913e-01, 5.878077450967993e-01, 5.358518171579365e-01, 4.817812838910221e-01, 4.258095133398033e-01, 3.681572834108591e-01, 3.090522466989162e-01, 2.487275349813267e-01, 1.874213592065715e-01, 1.253755501497086e-01, 6.283486994744755e-02, 4.632679338101298e-05, -6.274249421803517e-02, -1.252835319705151e-01, -1.873303429138753e-01, -2.486378908514217e-01, -3.089640618844978e-01, -3.680711248963389e-01, -4.25725679408632e-01, -4.817000201062539e-01, -5.357735562582807e-01, -5.877328220602704e-01, -6.373725433381867e-01, -6.844970960269895e-01, -7.289204205153097e-01, -7.704672189916252e-01, -8.089734093829815e-01, -8.442872285852132e-01, -8.762692009435454e-01, -9.047931238797384e-01, -9.297464544216499e-01, -9.510307539040321e-01, -9.685619339841467e-01, -9.822709573972731e-01, -9.921035846940335e-01, -9.980210024408591e-01, -1e+00, -9.980326253577363e-01, -9.921267471125186e-01, -9.823056111687467e-01, -9.686080544294392e-01, -9.510880339541781e-01, -9.298147017373695e-01, -9.048719808327391e-01, -8.763583983775314e-01, -8.443864288533292e-01, -8.090824165441581e-01, -7.705853553839331e-01, -7.290473187994698e-01, -6.846321601560726e-01, -6.375152964741191e-01, -5.878825758555449e-01, -5.359301760537384e-01, -4.818625471673303e-01, -4.258933472702636e-01, -3.682434121228493e-01, -3.091402830221033e-01, -2.488171938546387e-01, -1.875125443140312e-01, -1.254675533176979e-01, -6.292743252797524e-02, -1.389803801430389e-04, 6.26500250617113e-02, 1.251917924329078e-01, 1.872395103470685e-01, 2.485479596650757e-01, 3.088759364163073e-01, 3.67984966381611e-01, 4.256418454769628e-01, 4.816189728006308e-01, 5.356955125914867e-01, 5.876576875066493e-01, 6.373011369696673e-01, 6.844295639627969e-01, 7.288570011749547e-01, 7.704081507942002e-01, 8.089190402462237e-01, 8.442374768077378e-01, 8.76224466715355e-01, 9.047536656015626e-01, 9.297123605661272e-01, 9.510021436805963e-01, 9.685389130779499e-01, 9.822535166606127e-01, 9.920919379664327e-01, 9.980151611803328e-01, 1e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Derivative.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Derivative.txt new file mode 100644 index 0000000000..b0762e0948 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Derivative.txt @@ -0,0 +1,13 @@ +last-generated=2023-03-27 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "3", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+01] +der1.y=[1e+00, 9.959028960465073e-01, 9.819550519556391e-01, 9.581958684484828e-01, 9.248626850300768e-01, 8.822885751724243e-01, 8.30898953628209e-01, 7.712072653272641e-01, 7.038099253562579e-01, 6.293802670652393e-01, 5.486621260643005e-01, 4.624619694209273e-01, 3.716410243291572e-01, 2.771066265826531e-01, 1.798036161569373e-01, 8.070407062768936e-02, -1.920184716840108e-02, -1.189159127963956e-01, -2.1744191819562e-01, -3.137952016887199e-01, -4.070131480693817e-01, -4.961644638207976e-01, -5.803580489134587e-01, -6.587531326129351e-01, -7.305659589737215e-01, -7.950793504714966e-01, -8.516486182658597e-01, -8.997083093955294e-01, -9.387785952073824e-01, -9.684687606238405e-01, -9.884824156761169e-01, -9.986194411828289e-01, -9.987786430546937e-01, -9.889582916386174e-01, -9.692566620008379e-01, -9.398705363273621e-01, -9.010934407720183e-01, -8.533130532616388e-01, -7.970065182772437e-01, -7.327367113178452e-01, -6.611455082893372e-01, -5.829483086372815e-01, -4.989265031301334e-01, -4.099200013461602e-01, -3.168172843650727e-01, -2.205490320920944e-01, -1.220771244286866e-01, -2.23854605380134e-02, 7.752939656501522e-02, 1.766700847462305e-01, 2.740455269813538e-01, 3.647411141008916e-01, 4.541284012255336e-01, 5.390557256844974e-01, 6.186895825174342e-01, 6.92249596118927e-01, 7.5901079166772e-01, 8.183175770338801e-01, 8.695971051428424e-01, 9.123263581285169e-01, 9.46108877658844e-01, 9.70631915353482e-01, 9.855227644958571e-01, 9.90890798060147e-01, 9.863437494500508e-01, 9.722959399223328e-01, 9.486261326273693e-01, 9.156427842075782e-01, 8.736747178420188e-01, 8.231207646102159e-01, 7.645221352577209e-01, 6.983906552142616e-01, 6.254163707874086e-01, 5.463197591026645e-01, 4.61835526370571e-01, 3.728454411029816e-01, 2.802103751515969e-01, 1.847927217956115e-01, 8.757810316068722e-02, -1.044453920571972e-02, -1.08469620347023e-01, -2.05318977635326e-01, -3.001634173486009e-01, -3.920285763627187e-01, -4.801230111144644e-01, -5.634526014328003e-01, -6.412585481577828e-01, -7.127394173377433e-01, -7.772306818225883e-01, -8.34094245999273e-01, -8.827573657035828e-01, -9.227543871434116e-01, -9.53691352092422e-01, -9.752609390902561e-01, -9.872570870055875e-01, -9.895601272583008e-01, -9.821476770861559e-01, -9.650913042545138e-01, -9.385620932786626e-01, -9.028265100079774e-01, -8.582368493080139e-01] +intWitRes.u=[1e+00, 9.950041772274343e-01, 9.800665980245303e-01, 9.553365145438573e-01, 9.210609816323642e-01, 8.775825500488281e-01, 8.253356350982572e-01, 7.648422044298272e-01, 6.967067207138525e-01, 6.216099670055213e-01, 5.403022766113281e-01, 4.535961362508291e-01, 3.623578097032607e-01, 2.674987749498673e-01, 1.699671211937806e-01, 7.073719799518585e-02, -2.919949815154311e-02, -1.288444522436861e-01, -2.27202133965785e-01, -3.232895956755755e-01, -4.16146844625473e-01, -5.048461778740929e-01, -5.885010569415869e-01, -6.662760729310033e-01, -7.373936717231064e-01, -8.011435866355896e-01, -8.56888819398808e-01, -9.040721446803646e-01, -9.422223723193646e-01, -9.709581495340331e-01, -9.899924993515015e-01, -9.99135139616729e-01, -9.982947730248974e-01, -9.87479738349513e-01, -9.667982097489808e-01, -9.364566802978516e-01, -8.967583941020099e-01, -8.481000314388562e-01, -7.909676733146686e-01, -7.259323649847195e-01, -6.536436080932617e-01, -5.748238969829167e-01, -4.902606424960932e-01, -4.00799359006494e-01, -3.07332963797166e-01, -2.107958048582077e-01, -1.121524294260055e-01, -1.238847263511822e-02, 8.749879507316261e-02, 1.865122720715352e-01, 2.836621999740601e-01, 3.779778167700255e-01, 4.685168452190177e-01, 5.543741774070742e-01, 6.346927734317522e-01, 7.086697816848755e-01, 7.755659221144813e-01, 8.347129067995939e-01, 8.8551941424842e-01, 9.274783961174866e-01, 9.601702690124512e-01, 9.832684562031929e-01, 9.965421100845466e-01, 9.99858619082603e-01, 9.931849342926949e-01, 9.765876531600952e-01, 9.502325347879425e-01, 9.143830940304652e-01, 8.69397553994733e-01, 8.157251425022263e-01, 7.539022564888e-01, 6.845465792878729e-01, 6.083511376956182e-01, 5.260776701202705e-01, 4.385473984970318e-01, 3.466353118419647e-01, 2.512597410327659e-01, 1.533736785150569e-01, 5.395561119328425e-02, -4.600203192608105e-02, -1.455000340938568e-01, -2.435437755393855e-01, -3.391550480850473e-01, -4.313766717615178e-01, -5.192889830890152e-01, -6.020119190216064e-01, -6.787197742961457e-01, -7.486467419480308e-01, -8.110929192590418e-01, -8.654353708546059e-01, -9.111302495002747e-01, -9.477214752024828e-01, -9.748436619040397e-01, -9.922253233210268e-01, -9.996930417158711e-01, -9.971721768379211e-01, -9.846879275182084e-01, -9.62364798763793e-01, -9.304263676910163e-01, -8.891909727528647e-01, -8.3907151222229e-01] +der2.y=[0e+00, 1.261573541040191e+00, 1.712090483941703e+00, 1.851700178207826e+00, 1.864737988521703e+00, 1.819380760192871e+00, 1.741220256870108e+00, 1.640295730540954e+00, 1.521001353977452e+00, 1.385776247032267e+00, 1.236436128616333e+00, 1.074650446502839e+00, 9.020864016826857e-01, 7.204898899987495e-01, 5.31693412712761e-01, 3.375897109508514e-01, 1.401130135908014e-01, -5.876837124106268e-02, -2.57065360340503e-01, -4.527924223712543e-01, -6.43994152545929e-01, -8.287622261899449e-01, -1.005250252367809e+00, -1.171694354856316e+00, -1.32643029720939e+00, -1.467913389205933e+00, -1.594729773945908e+00, -1.705612013706523e+00, -1.79945246371589e+00, -1.875312978292578e+00, -1.932436347007751e+00, -1.970251346632632e+00, -1.98838030805751e+00, -1.98664199654143e+00, -1.965053824892065e+00, -1.923831343650818e+00, -1.863386681815249e+00, -1.784323733489241e+00, -1.687432357226279e+00, -1.573680873140911e+00, -1.444205403327942e+00, -1.300299857194408e+00, -1.143402144406011e+00, -9.750808191223271e-01, -7.970159593022511e-01, -6.109875440597534e-01, -4.188543487018059e-01, -2.225360968709077e-01, -2.399528348973932e-02, 1.747862294672636e-01, 3.718213438987732e-01, 5.65141322838544e-01, 7.52814642818514e-01, 9.32965239611256e-01, 1.103794892612504e+00, 1.263595819473267e+00, 1.410771264019913e+00, 1.543850539252614e+00, 1.661503818150347e+00, 1.762555986254738e+00, 1.845997452735901e+00, 1.910994461658609e+00, 1.956897324043274e+00, 1.983247483345361e+00, 1.989781857893151e+00, 1.976434946060181e+00, 1.943340020355622e+00, 1.890827891447654e+00, 1.819423587424041e+00, 1.729839893964001e+00, 1.622972130775452e+00, 1.499888174737287e+00, 1.361817795814848e+00, 1.210141242534122e+00, 1.046372693272172e+00, 8.721491098403931e-01, 6.892113090814868e-01, 4.993871343106556e-01, 3.045741488370629e-01, 1.067170383108498e-01, -9.220635145902634e-02, -2.902074982067049e-01, -4.85310862058335e-01, -6.755633347536464e-01, -8.590675254268733e-01, -1.033986568450928e+00, -1.198574290088221e+00, -1.351187862856297e+00, -1.490299328108361e+00, -1.614521464250162e+00, -1.722610712051392e+00, -1.813488283117332e+00, -1.886246798608269e+00, -1.940158040563774e+00, -1.974684205913325e+00, -1.989479660987854e+00, -1.984396865027746e+00, -1.95948629529222e+00, -1.914997796488926e+00, -1.851374817512973e+00, -1.769254207611084e+00] +der1.T=[9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 9.999999776482582e-03, 1.090000096857395e-02, 1.180000216066532e-02, 1.269999812990733e-02, 1.359999932199426e-02, 1.449999958276749e-02, 1.54000007748633e-02, 1.63000019669591e-02, 1.719999886750592e-02, 1.810000005960173e-02, 1.899999938905239e-02, 1.99000005811482e-02, 2.080000177324401e-02, 2.169999867379083e-02, 2.259999986588664e-02, 2.34999991953373e-02, 2.440000038743311e-02, 2.530000157952891e-02, 2.619999848007574e-02, 2.709999967217154e-02, 2.800000086426735e-02, 2.890000019371801e-02, 2.980000138581381e-02, 3.069999828636064e-02, 3.159999761582018e-02, 3.24999988079071e-02, 3.34000000000118e-02, 3.430000119211649e-02, 3.519999809266331e-02, 3.609999928475023e-02, 3.700000047683716e-02, 3.789999737743031e-02, 3.880000286097008e-02, 3.969999976159875e-02, 4.060000524510302e-02, 4.149999842047691e-02, 4.239999532114111e-02, 4.330000080464536e-02, 4.419999770527405e-02, 4.510000318874277e-02, 4.600000008940697e-02, 4.689999699007116e-02, 4.78000024735399e-02, 4.869999937416857e-02, 4.960000485767281e-02, 5.050000175833702e-02, 5.139999493371092e-02, 5.230000041721517e-02, 5.319999731784385e-02, 5.410000280138363e-02, 5.499999970197678e-02] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Divide.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Divide.txt new file mode 100644 index 0000000000..549ff5057a --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Divide.txt @@ -0,0 +1,11 @@ +last-generated=2017-03-17 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +div1.u1=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +div1.u2=[1e+00, 1.019999981373556e+00, 1.039999962747112e+00, 1.059999944120667e+00, 1.08000004470346e+00, 1.100000022351717e+00, 1.120000007450546e+00, 1.139999985098846e+00, 1.159999970197731e+00, 1.179999940395462e+00, 1.200000044703439e+00, 1.220000029802305e+00, 1.240000014901081e+00, 1.260000000000142e+00, 1.279999970197695e+00, 1.299999940395533e+00, 1.320000059604538e+00, 1.340000029802269e+00, 1.359999999999787e+00, 1.379999999999929e+00, 1.399999970197766e+00, 1.419999970197873e+00, 1.440000059604609e+00, 1.460000029802198e+00, 1.480000029802162e+00, 1.5e+00, 1.520000000000284e+00, 1.539999940395675e+00, 1.559999940395391e+00, 1.580000059604396e+00, 1.599999999999645e+00, 1.620000000000071e+00, 1.640000000000213e+00, 1.659999940395746e+00, 1.679999940395462e+00, 1.700000059604467e+00, 1.719999999999574e+00, 1.739999999999858e+00, 1.760000000000142e+00, 1.780000000000426e+00, 1.799999940395533e+00, 1.820000059604538e+00, 1.840000059604254e+00, 1.859999999999787e+00, 1.879999999999929e+00, 1.900000000000355e+00, 1.919999940395604e+00, 1.940000059604609e+00, 1.960000059604325e+00, 1.979999999999716e+00, 2e+00, 2.019999999999432e+00, 2.039999999998863e+00, 2.059999999998295e+00, 2.079999880791989e+00, 2.099999880791421e+00, 2.119999880790711e+00, 2.140000119208863e+00, 2.160000119208295e+00, 2.180000119207727e+00, 2.200000000001421e+00, 2.220000000000852e+00, 2.240000000000284e+00, 2.259999999999716e+00, 2.279999999999148e+00, 2.299999999998579e+00, 2.319999880792273e+00, 2.339999880791705e+00, 2.359999880791137e+00, 2.380000119209289e+00, 2.400000119208579e+00, 2.420000119208011e+00, 2.440000000001705e+00, 2.460000000001137e+00, 2.480000000000568e+00, 2.5e+00, 2.519999999999432e+00, 2.539999999998863e+00, 2.559999999998295e+00, 2.579999880791989e+00, 2.599999880791421e+00, 2.619999880790711e+00, 2.640000119208863e+00, 2.660000119208295e+00, 2.680000119207727e+00, 2.700000000001421e+00, 2.720000000000852e+00, 2.740000000000284e+00, 2.759999999999716e+00, 2.779999999999148e+00, 2.799999999998579e+00, 2.819999880792273e+00, 2.839999880791705e+00, 2.859999880791137e+00, 2.880000119209289e+00, 2.900000119208579e+00, 2.920000119208011e+00, 2.940000000001705e+00, 2.960000000001137e+00, 2.980000000000568e+00, 3e+00] +div1.y=[-2e+00, -1.921568630413864e+00, -1.84615385203e+00, -1.773584957134784e+00, -1.703703754991204e+00, -1.636363630470428e+00, -1.571428528846313e+00, -1.508771898203324e+00, -1.44827579392527e+00, -1.389830490702423e+00, -1.333333381375813e+00, -1.278688546802214e+00, -1.225806460775224e+00, -1.174603199848596e+00, -1.125000002919508e+00, -1.076923160244675e+00, -1.030302985033577e+00, -9.850746473109788e-01, -9.411765051223082e-01, -8.985507388385574e-01, -8.571428778568234e-01, -8.169013598445602e-01, -7.77777786436888e-01, -7.397260226867141e-01, -7.027026815520762e-01, -6.666666865348816e-01, -6.315788893367184e-01, -5.974026089172969e-01, -5.641025940129073e-01, -5.316455693534409e-01, -5.000000373460506e-01, -4.691357983490571e-01, -4.390243675672568e-01, -4.096385920191999e-01, -3.809523982091967e-01, -3.529411687751335e-01, -3.255814403599185e-01, -2.988505787774926e-01, -2.727272685680724e-01, -2.471909758672643e-01, -2.222222386278559e-01, -1.978021922950608e-01, -1.739130157994873e-01, -1.505376564315261e-01, -1.276595687659799e-01, -1.052631323169938e-01, -8.333335396366741e-02, -6.185566753596457e-02, -4.08163033974435e-02, -2.020203968331871e-02, 0e+00, 1.980199854489794e-02, 3.921572425565377e-02, 5.825248155730565e-02, 7.692304003523785e-02, 9.523807534587461e-02, 1.132075446048195e-01, 1.308411335486836e-01, 1.481481778153611e-01, 1.651376628464157e-01, 1.818181477575681e-01, 1.981981760098777e-01, 2.14285708798344e-01, 2.300885096239699e-01, 2.456140588934421e-01, 2.608695986185286e-01, 2.75862028890707e-01, 2.905982786546857e-01, 3.050847248642052e-01, 3.193277452229643e-01, 3.33333359796339e-01, 3.47107469496047e-01, 3.606556864959297e-01, 3.739837155514761e-01, 3.870967502326835e-01, 4.000000059604645e-01, 4.126984298967459e-01, 4.251968798737931e-01, 4.375000348694366e-01, 4.496123830479173e-01, 4.615384497018672e-01, 4.732824536150984e-01, 4.848485074954529e-01, 4.962406346856562e-01, 5.074627095069567e-01, 5.185184812783804e-01, 5.294117772639944e-01, 5.401459881441903e-01, 5.507246305878943e-01, 5.611511020705164e-01, 5.714286212664641e-01, 5.815602276771085e-01, 5.915492607292059e-01, 6.013985802218165e-01, 6.111111067848054e-01, 6.20689641832506e-01, 6.301369868104991e-01, 6.394557687719326e-01, 6.486486022130972e-01, 6.577181134026411e-01, 6.666666865348816e-01] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Exp.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Exp.txt new file mode 100644 index 0000000000..bdff4deccd --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Exp.txt @@ -0,0 +1,10 @@ +last-generated=2017-03-17 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +Exp1.y=[1e+00, 1.020201325873546e+00, 1.040810824372952e+00, 1.061836601730507e+00, 1.083287121806318e+00, 1.105170963551128e+00, 1.127496841599857e+00, 1.150273799211986e+00, 1.173510913285666e+00, 1.197217336691625e+00, 1.221402760687553e+00, 1.246076704560001e+00, 1.271249181904797e+00, 1.296930087085034e+00, 1.323129771565821e+00, 1.349858744774441e+00, 1.377127776478824e+00, 1.404947633497226e+00, 1.433329442541903e+00, 1.462284571958676e+00, 1.491824737257591e+00, 1.521961589783581e+00, 1.552707198991363e+00, 1.584074007193513e+00, 1.616074460236732e+00, 1.648721218109131e+00, 1.682027729709197e+00, 1.716006838290017e+00, 1.750672455436808e+00, 1.786038428610279e+00, 1.822118715799465e+00, 1.858928075527093e+00, 1.896480945113924e+00, 1.934792229556794e+00, 1.97387777349978e+00, 2.01375272295227e+00, 2.05443304871722e+00, 2.095935563166035e+00, 2.138276359010165e+00, 2.181472364019883e+00, 2.225540849910939e+00, 2.27049996095928e+00, 2.3163669718051e+00, 2.363160576461337e+00, 2.41089965064865e+00, 2.459603129971692e+00, 2.509290414977101e+00, 2.559981352246142e+00, 2.61169653785808e+00, 2.664456078356227e+00, 2.718281745910645e+00, 2.773194842886381e+00, 2.829217065233922e+00, 2.886371062783082e+00, 2.944679372554706e+00, 3.004166054770411e+00, 3.064854130464693e+00, 3.126768395419199e+00, 3.189933406704496e+00, 3.254374436706318e+00, 3.320116838768686e+00, 3.3871876226322e+00, 3.455613341821606e+00, 3.525421414684955e+00, 3.596639736284675e+00, 3.669296916799101e+00, 3.743421120194419e+00, 3.819043270687751e+00, 3.896193210291447e+00, 3.974901695169893e+00, 4.055200196818824e+00, 4.137120424789885e+00, 4.220695731419242e+00, 4.305959537608988e+00, 4.392945682829174e+00, 4.481688976287842e+00, 4.572225181224325e+00, 4.664590537028454e+00, 4.758821283433392e+00, 4.854955465285225e+00, 4.953032375739844e+00, 5.053090071473239e+00, 5.155169560890726e+00, 5.259310898249487e+00, 5.365556045240056e+00, 5.473947264532487e+00, 5.584528286744187e+00, 5.697343295232494e+00, 5.812437589874176e+00, 5.929856470345918e+00, 6.049647620281685e+00, 6.171857987623993e+00, 6.296538143218781e+00, 6.423736480559417e+00, 6.553504975160256e+00, 6.685894649009948e+00, 6.820958907654735e+00, 6.958750804246297e+00, 7.099326817127831e+00, 7.242742877423612e+00, 7.389056205749512e+00] +Exp1.u=[0e+00, 2e-02, 4e-02, 6e-02, 8e-02, 1e-01, 1.2e-01, 1.4e-01, 1.6e-01, 1.8e-01, 2e-01, 2.2e-01, 2.4e-01, 2.6e-01, 2.8e-01, 3e-01, 3.2e-01, 3.4e-01, 3.6e-01, 3.8e-01, 4e-01, 4.2e-01, 4.4e-01, 4.6e-01, 4.8e-01, 5e-01, 5.2e-01, 5.4e-01, 5.600000000000001e-01, 5.8e-01, 6e-01, 6.2e-01, 6.4e-01, 6.6e-01, 6.8e-01, 7e-01, 7.2e-01, 7.4e-01, 7.6e-01, 7.8e-01, 8e-01, 8.2e-01, 8.4e-01, 8.6e-01, 8.8e-01, 9e-01, 9.2e-01, 9.399999999999999e-01, 9.6e-01, 9.8e-01, 1e+00, 1.02e+00, 1.04e+00, 1.06e+00, 1.08e+00, 1.1e+00, 1.12e+00, 1.14e+00, 1.16e+00, 1.18e+00, 1.2e+00, 1.22e+00, 1.24e+00, 1.26e+00, 1.28e+00, 1.3e+00, 1.32e+00, 1.34e+00, 1.36e+00, 1.38e+00, 1.4e+00, 1.42e+00, 1.44e+00, 1.46e+00, 1.48e+00, 1.5e+00, 1.52e+00, 1.54e+00, 1.56e+00, 1.58e+00, 1.6e+00, 1.62e+00, 1.64e+00, 1.66e+00, 1.68e+00, 1.7e+00, 1.72e+00, 1.74e+00, 1.76e+00, 1.78e+00, 1.8e+00, 1.82e+00, 1.84e+00, 1.86e+00, 1.88e+00, 1.9e+00, 1.92e+00, 1.94e+00, 1.96e+00, 1.98e+00, 2e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Greater.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Greater.txt new file mode 100644 index 0000000000..72ab505156 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Greater.txt @@ -0,0 +1,12 @@ +last-generated=2023-03-17 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+01] +gre.u1=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1.811628505752779e+00, -1.624000400138706e+00, -1.43785598996685e+00, -1.253930286818943e+00, -1.072949051856995e+00, -8.956264080262712e-01, -7.226622324250406e-01, -5.547389199236601e-01, -3.925195852485924e-01, -2.366442382335663e-01, -8.7727893193044e-02, 5.364125336904336e-02, 1.869059369170518e-01, 3.115396239174152e-01, 4.270509779453278e-01, 5.329838752732372e-01, 6.289199748783157e-01, 7.1448121270354e-01, 7.89329401980005e-01, 8.531695604324341e-01, 9.057495434078494e-01, 9.468617265306255e-01, 9.763441192861637e-01, 9.940801734758675e-01, 1e+00, 9.940801734758675e-01, 9.763441192861637e-01, 9.468617265306255e-01, 9.057495434078492e-01, 8.531695604324341e-01, 7.893294019800053e-01, 7.144810198268143e-01, 6.289201903800828e-01, 5.329838752732368e-01, 4.270509779453278e-01, 3.115396239174147e-01, 1.869056280486268e-01, 5.364157980559271e-02, -8.772789317175074e-02, -2.366442382335663e-01, -3.925197754217349e-01, -5.547393145486301e-01, -7.226618265200716e-01, -8.956261994185419e-01, -1.072949051856995e+00, -1.253930504668855e+00, -1.437856431721111e+00, -1.623999954498346e+00, -1.811628281550894e+00, -2e+00, -2.188371837658394e+00, -2.376000045501654e+00, -2.562143687488177e+00, -2.746069495331147e+00, -2.927051067352295e+00, -3.10437386018582e+00, -3.277338113875285e+00, -3.445260685450803e+00, -3.607480135171581e+00, -3.763355731964111e+00, -3.912272114257252e+00, -4.053641579804455e+00, -4.186905613149738e+00, -4.311539534512012e+00, -4.427051067352295e+00, -4.532983875272384e+00, -4.628920249494676e+00, -4.714481198640749e+00, -4.789329461585503e+00, -4.853169441223145e+00, -4.905749137797657e+00, -4.946861809072616e+00, -4.976344061279806e+00, -4.994080107325297e+00, -5e+00, -4.994080107325297e+00, -4.976344061279806e+00, -4.946861809072616e+00, -4.905749137797656e+00, -4.853169441223145e+00, -4.78932978929101e+00, -4.714481198644446e+00, -4.628920249490593e+00, -4.532983390825205e+00, -4.427051067352295e+00, -4.311540104800364e+00, -4.186905613155646e+00, -4.053641579798243e+00, -3.91227141957735e+00, -3.763355731964111e+00] +gre.u2=[-1.5e+00, -1.450000048428773e+00, -1.399999977648257e+00, -1.350000029802314e+00, -1.299999955296512e+00, -1.25e+00, -1.200000059604609e+00, -1.149999970197695e+00, -1.100000029802305e+00, -1.049999940395391e+00, -1e+00, -9.5e-01, -9e-01, -8.5e-01, -7.999999999999999e-01, -7.5e-01, -7e-01, -6.499999999999999e-01, -6.000000000000001e-01, -5.5e-01, -5e-01, -4.499999403953552e-01, -4.000000298023223e-01, -3.499999701976775e-01, -3.000000596046448e-01, -2.5e-01, -1.999999552964453e-01, -1.500000298023223e-01, -9.999997764824031e-02, -5.000004842880945e-02, 0e+00, 5.000004842880945e-02, 9.999997764824053e-02, 1.500000298023225e-01, 1.999999552964455e-01, 2.5e-01, 3.000000596046446e-01, 3.499999701976777e-01, 4.000000298023223e-01, 4.499999403953554e-01, 5e-01, 5.500000596046446e-01, 6.000001192092896e-01, 6.499998807937309e-01, 6.999999403953554e-01, 7.5e-01, 8.00000059604645e-01, 8.500001192092892e-01, 8.999998807907104e-01, 9.499999403956485e-01, 1e+00, 1.05e+00, 1.10000011920929e+00, 1.149999880790711e+00, 1.2e+00, 1.25e+00, 1.3e+00, 1.350000119209289e+00, 1.39999988079071e+00, 1.45e+00, 1.5e+00, 1.55e+00, 1.60000011920929e+00, 1.64999988079071e+00, 1.7e+00, 1.75e+00, 1.8e+00, 1.85000011920929e+00, 1.899999880790711e+00, 1.95e+00, 2e+00, 2.05e+00, 2.1e+00, 2.15e+00, 2.2e+00, 2.25e+00, 2.3e+00, 2.35e+00, 2.4e+00, 2.45e+00, 2.5e+00, 2.549999761585969e+00, 2.599999999997726e+00, 2.650000000002273e+00, 2.700000238414032e+00, 2.75e+00, 2.799999761585968e+00, 2.849999999997726e+00, 2.900000000002274e+00, 2.950000238414032e+00, 3e+00, 3.049999761585968e+00, 3.099999999997727e+00, 3.150000000002274e+00, 3.200000238414031e+00, 3.25e+00, 3.299999761585968e+00, 3.349999999997726e+00, 3.400000000002274e+00, 3.450000238414032e+00, 3.5e+00] +gre.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.266945395828056e-05, 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, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +greHys.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 4.916541686217357e-06, 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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_GreaterThreshold.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_GreaterThreshold.txt new file mode 100644 index 0000000000..c79b6f451b --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_GreaterThreshold.txt @@ -0,0 +1,12 @@ +last-generated=2023-03-17 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+01] +gre.u=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1.497676015340886e+00, -9.973343606335472e-01, -5.009492668417413e-01, -1.048078720206188e-02, 4.721359610557556e-01, 9.449963048679213e-01, 1.406234166075659e+00, 1.85402962634291e+00, 2.286614518809852e+00, 2.702281951904297e+00, 3.099392304686385e+00, 3.47637659617823e+00, 3.831749125375993e+00, 4.164105584308051e+00, 4.4721360206604e+00, 4.754623667394541e+00, 5.010453107397214e+00, 5.238616567209061e+00, 5.438211738613346e+00, 5.608452320098877e+00, 5.748665449086841e+00, 5.858297778469661e+00, 5.93691781037549e+00, 5.984213795934889e+00, 6e+00, 5.984213795934889e+00, 5.93691781037549e+00, 5.858297778469661e+00, 5.74866544908684e+00, 5.608452320098877e+00, 5.438211738613347e+00, 5.238616052869989e+00, 5.010453680767095e+00, 4.75462366739454e+00, 4.4721360206604e+00, 4.164105584308049e+00, 3.831748301726575e+00, 3.476377466676903e+00, 3.099392304686384e+00, 2.702281951904297e+00, 2.286614011680809e+00, 1.85402857400833e+00, 1.406235248488341e+00, 9.449968616175726e-01, 4.721359610557556e-01, -1.048136813505908e-02, -5.009504448522509e-01, -9.973331722587795e-01, -1.49767541746905e+00, -2e+00, -2.502324582530945e+00, -3.002666708533068e+00, -3.499049674355329e+00, -3.989518654217149e+00, -4.4721360206604e+00, -4.944996801550559e+00, -5.406235129281329e+00, -5.854028335594302e+00, -6.286614011680805e+00, -6.702281951904297e+00, -7.09939230468752e+00, -7.476377705090932e+00, -7.831748301726572e+00, -8.164106061140663e+00, -8.472135543823242e+00, -8.75462366739454e+00, -9.010453680767094e+00, -9.238615576037381e+00, -9.438211261778463e+00, -9.608451843261719e+00, -9.748664367460419e+00, -9.858298475415383e+00, -9.936917178866837e+00, -9.984213937413436e+00, -1e+01, -9.984213937413436e+00, -9.936917178866837e+00, -9.858298475415383e+00, -9.748664367460417e+00, -9.608451843261719e+00, -9.438212135678004e+00, -9.238615576047238e+00, -9.010453680756207e+00, -8.754622375521754e+00, -8.472135543823242e+00, -8.16410758191112e+00, -7.831748301742326e+00, -7.476377705074368e+00, -7.099390452212329e+00, -6.702281951904297e+00] +gre.t=[2e+00, 2e+00] +gre.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +greHys.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.091269490084763e-06, 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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Hysteresis.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Hysteresis.txt new file mode 100644 index 0000000000..f52ffb2fd8 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Hysteresis.txt @@ -0,0 +1,14 @@ +last-generated=2023-03-17 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +hysteresis.u=[0e+00, 1.56976301000347e-01, 3.133330712786273e-01, 4.684532984120606e-01, 6.217247383500868e-01, 7.725424655010872e-01, 9.203114108910556e-01, 1.064448233170911e+00, 1.204384232253481e+00, 1.339566898410891e+00, 1.469463091020046e+00, 1.593559987568817e+00, 1.711367756856865e+00, 1.822421601679775e+00, 1.92628311509584e+00, 2.022542421147277e+00, 2.110819846391163e+00, 2.190766559266606e+00, 2.262067507907246e+00, 2.324441208101661e+00, 2.377641186273779e+00, 2.421458030889631e+00, 2.455718043859428e+00, 2.480286828001585e+00, 2.49506688594207e+00, 2.5e+00, 2.495066870834328e+00, 2.48028685669509e+00, 2.455718043859427e+00, 2.421457972510137e+00, 2.37764125870761e+00, 2.324441208101661e+00, 2.262067507907246e+00, 2.190766909464202e+00, 2.110819846391163e+00, 2.022542421147278e+00, 1.9262832632491e+00, 1.822421720889064e+00, 1.711367790613847e+00, 1.59355992556915e+00, 1.469463304577051e+00, 1.339567017620181e+00, 1.204384145815707e+00, 1.06444845798415e+00, 9.203114756564897e-01, 7.725424174162248e-01, 6.217249707299275e-01, 4.684533888724105e-01, 3.133330460020628e-01, 1.569765810520877e-01, 1.339744812867139e-07, -1.569763128289594e-01, -3.133332421028605e-01, -4.684535799669168e-01, -6.217242785806794e-01, -7.725421790003055e-01, -9.203111776327465e-01, -1.064448219564059e+00, -1.204384317440418e+00, -1.339567173246441e+00, -1.469462686407816e+00, -1.593559687153164e+00, -1.711367552196086e+00, -1.822421482469726e+00, -1.926283144037693e+00, -2.022542694869402e+00, -2.11081959367541e+00, -2.190766445221302e+00, -2.262067507907116e+00, -2.324441208101863e+00, -2.377641257762269e+00, -2.421457849255299e+00, -2.455717953487118e+00, -2.480286797207312e+00, -2.495066870834482e+00, -2.5e+00, -2.495066870834482e+00, -2.480286797207312e+00, -2.455718191902287e+00, -2.42145808767132e+00, -2.377641496180849e+00, -2.324441208101863e+00, -2.262067746325695e+00, -2.190766683637892e+00, -2.110819593678535e+00, -2.022542933287981e+00, -1.926283382456272e+00, -1.822421720888305e+00, -1.711367909823955e+00, -1.593559925571743e+00, -1.469463044035685e+00, -1.33956753087431e+00, -1.204384675068287e+00, -1.064448577191928e+00, -9.203115948652599e-01, -7.725425366281742e-01, -6.21724636208548e-01, -4.684539971990039e-01, -3.133336295330515e-01, -1.569767151603116e-01, -2.679489625734277e-07] +hysteresis.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +hysteresis1.u=[0e+00, 5.877852548020184e-01, 9.510565469929613e-01, 9.51056524512735e-01, 5.877851965882408e-01, 4.669026060222237e-08, -5.877853088719246e-01, -9.510565331236185e-01, -9.510564986800658e-01, -5.877854170114153e-01, -9.361950796191176e-08, 5.877852728252668e-01, 9.510565818958913e-01, 9.510564297929095e-01, 5.877852728252662e-01, 3.735213902900103e-07, -5.877854170114153e-01, -9.510564986800661e-01, -9.510566517017776e-01, -5.877851175888156e-01, -1.867606946037714e-07, 5.877855611975631e-01, 9.510565586272626e-01, 9.510566051645198e-01, 5.877849595897895e-01, 6.123233998228043e-16, -5.877857053837123e-01, -9.510562920185974e-01, -9.510565586272621e-01, -5.877848015907633e-01, -7.489560659400263e-07, 5.877851175888156e-01, 9.510566517017776e-01, 9.510567447762921e-01, 5.87785417011414e-01, -3.735213908874251e-07, -5.87784485592708e-01, -9.510564297929095e-01, -9.510564297929095e-01, -5.87784485592708e-01, -3.735213891520317e-07, 5.87785417011414e-01, 9.510567447762921e-01, 9.510566517017776e-01, 5.877851175888156e-01, -7.47042778760458e-07, -5.877848015907633e-01, -9.510565586272621e-01, -9.510562920185974e-01, -5.877857053837123e-01, -1.224646799645609e-15, 5.877857053768371e-01, 9.510568378463694e-01, 9.510558787055131e-01, 5.877862821128343e-01, 7.470316425728374e-07, -5.877851175869351e-01, -9.510566517001124e-01, -9.510561542500338e-01, -5.877838536173216e-01, -1.494063297968751e-06, 5.877844856040088e-01, 9.510564297945518e-01, 9.510564297945518e-01, 5.877844856040088e-01, -1.494063298453019e-06, -5.877838536173214e-01, -9.510561542500338e-01, -9.510566517001124e-01, -5.87785117586935e-01, 7.470316501584374e-07, 5.877862821128343e-01, 9.510558787055131e-01, 9.510568378463694e-01, 5.877857053768371e-01, 5.389683772389795e-15, -5.877857053768371e-01, -9.510568378463694e-01, -9.510558787055131e-01, -5.877862821128343e-01, -7.470316467361737e-07, 5.877851175869351e-01, 9.510566517001124e-01, 9.510561542500338e-01, 5.877838536173216e-01, 1.494063302132087e-06, -5.877844856040088e-01, -9.510564297945518e-01, -9.510564297945518e-01, -5.877844856040088e-01, 1.494063294288032e-06, 5.877838536173214e-01, 9.510561542500338e-01, 9.510566517001124e-01, 5.87785117586935e-01, -7.470316459934253e-07, -5.877862821128343e-01, -9.510558787055131e-01, -9.510568378463694e-01, -5.877857053768371e-01, -2.449293599291217e-15] +hysteresis1.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 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] +hysteresis2.u=[0e+00, 3.090170091883316e-01, 5.877852550831602e-01, 8.090170144214469e-01, 9.510565478473709e-01, 9.999999992648992e-01, 9.510565257429763e-01, 8.090170078442965e-01, 5.877851975336643e-01, 3.090171082748573e-01, 4.681209514814655e-08, -3.090170201979346e-01, -5.87785310558651e-01, -8.090170867701829e-01, -9.510565336704234e-01, -9.999999941192049e-01, -9.510565019607415e-01, -8.090170341529122e-01, -5.877854215096746e-01, -3.090169306671733e-01, -9.356497701618061e-08, 3.090171963517797e-01, 5.877852735749767e-01, 8.090169222575976e-01, 9.510565870223401e-01, 1e+00, 9.510564385413781e-01, 8.090171920047236e-01, 5.87785273574976e-01, 3.090167508787323e-01, 3.744967623110079e-07, -3.090169306671733e-01, -5.877854215096746e-01, -8.090167501326991e-01, -9.510565019607419e-01, -9.99999994119205e-01, -9.510566653723079e-01, -8.090170867701829e-01, -5.877851201097095e-01, -3.090165710902895e-01, -1.871299540184834e-07, 3.090171082748565e-01, 5.877855694443719e-01, 8.09016864882631e-01, 9.510565609056844e-01, 9.9999998823841e-01, 9.510566131389959e-01, 8.090169796325641e-01, 5.877849652618008e-01, 3.090172844287029e-01, 6.123233998228043e-16, -3.090172844245031e-01, -5.877857173720165e-01, -8.090175077008204e-01, -9.51056311706054e-01, -9.999999882385853e-01, -9.510565609059952e-01, -8.090168648846839e-01, -5.877848104203527e-01, -3.090162115251951e-01, -7.48508664688563e-07, 3.090165710967192e-01, 5.877851201115555e-01, 8.090170867689285e-01, 9.5105666537044e-01, 9.999999764771703e-01, 9.510567698355064e-01, 8.090172972348735e-01, 5.877854215070279e-01, 3.090169306661034e-01, -3.742543329311947e-07, -3.090176367269428e-01, -5.877845007291471e-01, -8.090166353882378e-01, -9.510564385428901e-01, -1e+00, -9.510564385428901e-01, -8.090166353882378e-01, -5.87784500729147e-01, -3.090176367269428e-01, -3.742543312201807e-07, 3.090169306661034e-01, 5.877854215070281e-01, 8.090172972348735e-01, 9.510567698355064e-01, 9.999999764771703e-01, 9.5105666537044e-01, 8.090170867689285e-01, 5.877851201115555e-01, 3.090165710967192e-01, -7.485086628548458e-07, -3.090162115251951e-01, -5.877848104203527e-01, -8.090168648846841e-01, -9.510565609059952e-01, -9.999999882385853e-01, -9.51056311706054e-01, -8.090175077008204e-01, -5.877857173720165e-01, -3.090172844245031e-01, -1.224646799645609e-15] +hysteresis2.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 4.681209607171333e-06, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 3.744967703145363e-05, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_IntegratorWithReset.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_IntegratorWithReset.txt new file mode 100644 index 0000000000..df0eccdac5 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_IntegratorWithReset.txt @@ -0,0 +1,20 @@ +last-generated=2023-03-23 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "3", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +cons.y=[1e+01, 1e+01] +booleanPulse.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +intDef.y_start=[-2e+00, -2e+00] +intDef.y=[-2e+00, -1.89999997392297e+00, -1.799999947845941e+00, -1.700000040978167e+00, -1.600000014901171e+00, -1.500000007450572e+00, -1.399999962747112e+00, -1.299999955296536e+00, -1.200000029802269e+00, -1.100000059604538e+00, -1.000000014901117e+00, -8.999999701976954e-01, -7.999999850988389e-01, -6.999999403954973e-01, -6.000000298023045e-01, -5.000000596044671e-01, -3.999999701977309e-01, -3.00000029802269e-01, -2.000000745056462e-01, -9.99999776483026e-02, -2.980226099236205e-08, -2.099999839067654e+00, -1.999999988079107e+00, -1.900000017881269e+00, -1.799999898672264e+00, -1.700000047683716e+00, -1.59999992847471e+00, -1.500000107288041e+00, -1.399999988079035e+00, -1.29999986887003e+00, -1.20000016689265e+00, -1.100000047683645e+00, -9.999999284746394e-01, -9.000001072883604e-01, -8.00000047683609e-01, -6.999999284746041e-01, -6.000001668925792e-01, -5.000000476835738e-01, -3.999999582768197e-01, -2.999998688699945e-01, -2.000000625847436e-01, -2.299999916553604e+00, -2.199999916553888e+00, -2.099999976157929e+00, -1.999999976158213e+00, -1.899999856949208e+00, -1.800000035763035e+00, -1.700000035762752e+00, -1.599999916553817e+00, -1.500000095367148e+00, -1.399999976158142e+00, -1.299999856950558e+00, -1.199999856951126e+00, -1.099999737744679e+00, -1.000000214572884e+00, -9.000000953656548e-01, -8.000000357630705e-01, -6.999999165547768e-01, -5.999998569513398e-01, -4.99999737743862e-01, -4.000002443747806e-01, -2.50000014304859e+00, -2.400000143050295e+00, -2.299999904633421e+00, -2.199999904635126e+00, -2.099999666218252e+00, -2.000000262255747e+00, -1.900000143048163e+00, -1.800000023841005e+00, -1.700000023841432e+00, -1.5999999046347e+00, -1.499999785427116e+00, -1.400000262255321e+00, -1.300000143048874e+00, -1.200000143049442e+00, -1.100000023841858e+00, -9.999999046342736e-01, -8.999997854266891e-01, -7.999997258228969e-01, -7.000002026525944e-01, -6.000001430490154e-01, -2.700000071525857e+00, -2.599999833108274e+00, -2.499999833109979e+00, -2.399999833111684e+00, -2.3000001907306e+00, -2.200000190732306e+00, -2.099999952315432e+00, -1.999999952317137e+00, -1.899999833109552e+00, -1.799999713901968e+00, -1.700000309939463e+00, -1.600000190731879e+00, -1.500000071524294e+00, -1.399999952316e+00, -1.299999833109127e+00, -1.199999833109553e+00, -1.100000309939037e+00, -1.000000190731453e+00, -9.000000715241527e-01, -8.00000011920929e-01] +intDef.y_reset_in=[-2e+00, -2.009999990686785e+00, -2.019999981373569e+00, -2.029999972060353e+00, -2.039999962747139e+00, -2.04999995157128e+00, -2.059999944120708e+00, -2.069999932944796e+00, -2.079999925494274e+00, -2.089999910593299e+00, -2.099999903142563e+00, -2.109999895691898e+00, -2.119999888241411e+00, -2.130000119208934e+00, -2.140000104308102e+00, -2.150000089406701e+00, -2.160000089406701e+00, -2.170000074505726e+00, -2.180000059604325e+00, -2.190000059604467e+00, -2.200000044703351e+00, -2.210000044702995e+00, -2.220000029802234e+00, -2.230000014900975e+00, -2.240000014901401e+00, -2.25e+00, -2.260000000000426e+00, -2.269999970197198e+00, -2.279999970197766e+00, -2.289999970198051e+00, -2.299999940396243e+00, -2.309999940395533e+00, -2.319999940395675e+00, -2.32999991059401e+00, -2.339999910593299e+00, -2.349999910593299e+00, -2.359999880791776e+00, -2.369999880791066e+00, -2.380000119208934e+00, -2.390000119208224e+00, -2.400000089406701e+00, -2.410000089406701e+00, -2.42000008940599e+00, -2.430000059604325e+00, -2.440000059604467e+00, -2.450000059603757e+00, -2.460000029801949e+00, -2.470000029802234e+00, -2.480000029802802e+00, -2.489999999999574e+00, -2.5e+00, -2.510000000000284e+00, -2.520000000000568e+00, -2.530000000000852e+00, -2.539999940397274e+00, -2.549999940396421e+00, -2.559999940395497e+00, -2.569999940395568e+00, -2.579999940395853e+00, -2.589999940396137e+00, -2.599999880792842e+00, -2.609999880791989e+00, -2.619999880791137e+00, -2.630000119208863e+00, -2.640000119208011e+00, -2.650000119207158e+00, -2.660000059603863e+00, -2.670000059604147e+00, -2.680000059604432e+00, -2.690000059604503e+00, -2.700000059603579e+00, -2.710000059602726e+00, -2.719999999999148e+00, -2.729999999999432e+00, -2.739999999999716e+00, -2.75e+00, -2.760000000000284e+00, -2.770000000000568e+00, -2.780000000000852e+00, -2.789999940397274e+00, -2.799999940396421e+00, -2.809999940395497e+00, -2.819999940395568e+00, -2.829999940395853e+00, -2.839999940396137e+00, -2.849999880792842e+00, -2.859999880791989e+00, -2.869999880791137e+00, -2.880000119208863e+00, -2.890000119208011e+00, -2.900000119207158e+00, -2.910000059603863e+00, -2.920000059604147e+00, -2.930000059604432e+00, -2.940000059604503e+00, -2.950000059603579e+00, -2.960000059602726e+00, -2.969999999999148e+00, -2.979999999999432e+00, -2.989999999999716e+00, -3e+00] +intWitRes1.y_start=[-2e+00, -2e+00] +intWitRes1.y=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -2.150000062584975e+00, -2.099999898672122e+00, -2.049999973177848e+00, -1.99999997317799e+00, -1.950000047683716e+00, -1.899999928474568e+00, -1.850000077485878e+00, -1.799999958276731e+00, -1.749999958276873e+00, -1.700000107288183e+00, -1.649999988079035e+00, -1.599999988079178e+00, -1.550000017881198e+00, -1.50000001788134e+00, -1.450000017881482e+00, -1.400000047683503e+00, -1.350000047683645e+00, -1.299999928474497e+00, -1.249999928474639e+00, -1.200000077485949e+00, -2.349999886751228e+00, -2.29999988675137e+00, -2.25000003576268e+00, -2.200000035762822e+00, -2.150000035762965e+00, -2.099999946355695e+00, -2.049999946355837e+00, -1.99999994635598e+00, -1.95000009536729e+00, -1.899999976158142e+00, -1.849999976158995e+00, -1.799999856950558e+00, -1.74999985695141e+00, -1.700000154970158e+00, -1.650000035761721e+00, -1.600000035762929e+00, -1.549999916554137e+00, -1.49999991655499e+00, -1.449999916555842e+00, -1.4000000953653e+00, -2.550000023840579e+00, -2.500000023841431e+00, -2.450000023842284e+00, -2.400000023843137e+00, -2.34999978542541e+00, -2.300000083444158e+00, -2.25000008344501e+00, -2.200000083445863e+00, -2.150000083446361e+00, -2.099999845028989e+00, -2.049999845029842e+00, -2.00000014304859e+00, -1.950000143049442e+00, -1.900000023841005e+00, -1.850000023841858e+00, -1.799999904633421e+00, -1.749999904634274e+00, -1.699999904635126e+00, -1.650000083444584e+00, -1.600000083445437e+00, -2.750000011921071e+00, -2.700000011921569e+00, -2.650000011922421e+00, -2.599999773504695e+00, -2.550000071523442e+00, -2.500000071524295e+00, -2.450000071525147e+00, -2.400000071526e+00, -2.349999833108273e+00, -2.299999833109126e+00, -2.250000131127873e+00, -2.200000131128726e+00, -2.150000131129579e+00, -2.099999892711498e+00, -2.049999892712705e+00, -1.999999892713558e+00, -1.950000190732305e+00, -1.900000071523869e+00, -1.850000071524721e+00, -1.799999952316284e+00] +intWitRes1.y_reset_in=[-2e+00, -2.009999990686785e+00, -2.019999981373569e+00, -2.029999972060353e+00, -2.039999962747139e+00, -2.04999995157128e+00, -2.059999944120708e+00, -2.069999932944796e+00, -2.079999925494274e+00, -2.089999910593299e+00, -2.099999903142563e+00, -2.109999895691898e+00, -2.119999888241411e+00, -2.130000119208934e+00, -2.140000104308102e+00, -2.150000089406701e+00, -2.160000089406701e+00, -2.170000074505726e+00, -2.180000059604325e+00, -2.190000059604467e+00, -2.200000044703351e+00, -2.210000044702995e+00, -2.220000029802234e+00, -2.230000014900975e+00, -2.240000014901401e+00, -2.25e+00, -2.260000000000426e+00, -2.269999970197198e+00, -2.279999970197766e+00, -2.289999970198051e+00, -2.299999940396243e+00, -2.309999940395533e+00, -2.319999940395675e+00, -2.32999991059401e+00, -2.339999910593299e+00, -2.349999910593299e+00, -2.359999880791776e+00, -2.369999880791066e+00, -2.380000119208934e+00, -2.390000119208224e+00, -2.400000089406701e+00, -2.410000089406701e+00, -2.42000008940599e+00, -2.430000059604325e+00, -2.440000059604467e+00, -2.450000059603757e+00, -2.460000029801949e+00, -2.470000029802234e+00, -2.480000029802802e+00, -2.489999999999574e+00, -2.5e+00, -2.510000000000284e+00, -2.520000000000568e+00, -2.530000000000852e+00, -2.539999940397274e+00, -2.549999940396421e+00, -2.559999940395497e+00, -2.569999940395568e+00, -2.579999940395853e+00, -2.589999940396137e+00, -2.599999880792842e+00, -2.609999880791989e+00, -2.619999880791137e+00, -2.630000119208863e+00, -2.640000119208011e+00, -2.650000119207158e+00, -2.660000059603863e+00, -2.670000059604147e+00, -2.680000059604432e+00, -2.690000059604503e+00, -2.700000059603579e+00, -2.710000059602726e+00, -2.719999999999148e+00, -2.729999999999432e+00, -2.739999999999716e+00, -2.75e+00, -2.760000000000284e+00, -2.770000000000568e+00, -2.780000000000852e+00, -2.789999940397274e+00, -2.799999940396421e+00, -2.809999940395497e+00, -2.819999940395568e+00, -2.829999940395853e+00, -2.839999940396137e+00, -2.849999880792842e+00, -2.859999880791989e+00, -2.869999880791137e+00, -2.880000119208863e+00, -2.890000119208011e+00, -2.900000119207158e+00, -2.910000059603863e+00, -2.920000059604147e+00, -2.930000059604432e+00, -2.940000059604503e+00, -2.950000059603579e+00, -2.960000059602726e+00, -2.969999999999148e+00, -2.979999999999432e+00, -2.989999999999716e+00, -3e+00] +intWitRes2.y_start=[-5e+00, -5e+00] +intWitRes2.y=[-5e+00, -4.949999808147577e+00, -4.900000093132206e+00, -4.849999901279894e+00, -4.800000186264413e+00, -4.750000003725375e+00, -4.699999802559781e+00, -4.650000096857513e+00, -4.599999895692111e+00, -4.550000208615777e+00, -4.500000007450736e+00, -4.449999806284985e+00, -4.400000081956107e+00, -4.34999988079135e+00, -4.300000193715015e+00, -4.250000029802944e+00, -4.199999791384223e+00, -4.150000104307889e+00, -4.099999940396101e+00, -4.050000178813685e+00, -4.000000014901472e+00, -2.150000062584975e+00, -2.099999898672122e+00, -2.049999973177848e+00, -1.99999997317799e+00, -1.950000047683716e+00, -1.899999928474568e+00, -1.850000077485878e+00, -1.799999958276731e+00, -1.749999958276873e+00, -1.700000107288183e+00, -1.649999988079035e+00, -1.599999988079178e+00, -1.550000017881198e+00, -1.50000001788134e+00, -1.450000017881482e+00, -1.400000047683503e+00, -1.350000047683645e+00, -1.299999928474497e+00, -1.249999928474639e+00, -1.200000077485949e+00, -2.349999886751228e+00, -2.29999988675137e+00, -2.25000003576268e+00, -2.200000035762822e+00, -2.150000035762965e+00, -2.099999946355695e+00, -2.049999946355837e+00, -1.99999994635598e+00, -1.95000009536729e+00, -1.899999976158142e+00, -1.849999976158995e+00, -1.799999856950558e+00, -1.74999985695141e+00, -1.700000154970158e+00, -1.650000035761721e+00, -1.600000035762929e+00, -1.549999916554137e+00, -1.49999991655499e+00, -1.449999916555842e+00, -1.4000000953653e+00, -2.550000023840579e+00, -2.500000023841431e+00, -2.450000023842284e+00, -2.400000023843137e+00, -2.34999978542541e+00, -2.300000083444158e+00, -2.25000008344501e+00, -2.200000083445863e+00, -2.150000083446361e+00, -2.099999845028989e+00, -2.049999845029842e+00, -2.00000014304859e+00, -1.950000143049442e+00, -1.900000023841005e+00, -1.850000023841858e+00, -1.799999904633421e+00, -1.749999904634274e+00, -1.699999904635126e+00, -1.650000083444584e+00, -1.600000083445437e+00, -2.750000011921071e+00, -2.700000011921569e+00, -2.650000011922421e+00, -2.599999773504695e+00, -2.550000071523442e+00, -2.500000071524295e+00, -2.450000071525147e+00, -2.400000071526e+00, -2.349999833108273e+00, -2.299999833109126e+00, -2.250000131127873e+00, -2.200000131128726e+00, -2.150000131129579e+00, -2.099999892711498e+00, -2.049999892712705e+00, -1.999999892713558e+00, -1.950000190732305e+00, -1.900000071523869e+00, -1.850000071524721e+00, -1.799999952316284e+00] +intWitRes2.y_reset_in=[-2e+00, -2.009999990686785e+00, -2.019999981373569e+00, -2.029999972060353e+00, -2.039999962747139e+00, -2.04999995157128e+00, -2.059999944120708e+00, -2.069999932944796e+00, -2.079999925494274e+00, -2.089999910593299e+00, -2.099999903142563e+00, -2.109999895691898e+00, -2.119999888241411e+00, -2.130000119208934e+00, -2.140000104308102e+00, -2.150000089406701e+00, -2.160000089406701e+00, -2.170000074505726e+00, -2.180000059604325e+00, -2.190000059604467e+00, -2.200000044703351e+00, -2.210000044702995e+00, -2.220000029802234e+00, -2.230000014900975e+00, -2.240000014901401e+00, -2.25e+00, -2.260000000000426e+00, -2.269999970197198e+00, -2.279999970197766e+00, -2.289999970198051e+00, -2.299999940396243e+00, -2.309999940395533e+00, -2.319999940395675e+00, -2.32999991059401e+00, -2.339999910593299e+00, -2.349999910593299e+00, -2.359999880791776e+00, -2.369999880791066e+00, -2.380000119208934e+00, -2.390000119208224e+00, -2.400000089406701e+00, -2.410000089406701e+00, -2.42000008940599e+00, -2.430000059604325e+00, -2.440000059604467e+00, -2.450000059603757e+00, -2.460000029801949e+00, -2.470000029802234e+00, -2.480000029802802e+00, -2.489999999999574e+00, -2.5e+00, -2.510000000000284e+00, -2.520000000000568e+00, -2.530000000000852e+00, -2.539999940397274e+00, -2.549999940396421e+00, -2.559999940395497e+00, -2.569999940395568e+00, -2.579999940395853e+00, -2.589999940396137e+00, -2.599999880792842e+00, -2.609999880791989e+00, -2.619999880791137e+00, -2.630000119208863e+00, -2.640000119208011e+00, -2.650000119207158e+00, -2.660000059603863e+00, -2.670000059604147e+00, -2.680000059604432e+00, -2.690000059604503e+00, -2.700000059603579e+00, -2.710000059602726e+00, -2.719999999999148e+00, -2.729999999999432e+00, -2.739999999999716e+00, -2.75e+00, -2.760000000000284e+00, -2.770000000000568e+00, -2.780000000000852e+00, -2.789999940397274e+00, -2.799999940396421e+00, -2.809999940395497e+00, -2.819999940395568e+00, -2.829999940395853e+00, -2.839999940396137e+00, -2.849999880792842e+00, -2.859999880791989e+00, -2.869999880791137e+00, -2.880000119208863e+00, -2.890000119208011e+00, -2.900000119207158e+00, -2.910000059603863e+00, -2.920000059604147e+00, -2.930000059604432e+00, -2.940000059604503e+00, -2.950000059603579e+00, -2.960000059602726e+00, -2.969999999999148e+00, -2.979999999999432e+00, -2.989999999999716e+00, -3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Less.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Less.txt new file mode 100644 index 0000000000..c31e776f9f --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Less.txt @@ -0,0 +1,12 @@ +last-generated=2023-03-17 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+01] +les.u1=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1.811628505752779e+00, -1.624000400138706e+00, -1.43785598996685e+00, -1.253930286818943e+00, -1.072949051856995e+00, -8.956264080262712e-01, -7.226622324250406e-01, -5.547389199236601e-01, -3.925195852485924e-01, -2.366442382335663e-01, -8.7727893193044e-02, 5.364125336904336e-02, 1.869059369170518e-01, 3.115396239174152e-01, 4.270509779453278e-01, 5.329838752732372e-01, 6.289199748783157e-01, 7.1448121270354e-01, 7.89329401980005e-01, 8.531695604324341e-01, 9.057495434078494e-01, 9.468617265306255e-01, 9.763441192861637e-01, 9.940801734758675e-01, 1e+00, 9.940801734758675e-01, 9.763441192861637e-01, 9.468617265306255e-01, 9.057495434078492e-01, 8.531695604324341e-01, 7.893294019800053e-01, 7.144810198268143e-01, 6.289201898923054e-01, 5.329838752732368e-01, 4.270509779453278e-01, 3.115396244887637e-01, 1.869056280486268e-01, 5.364157980559271e-02, -8.772789319304464e-02, -2.366442382335663e-01, -3.925197754217349e-01, -5.547393145486301e-01, -7.226618265200716e-01, -8.956261994185419e-01, -1.072949051856995e+00, -1.253930504668855e+00, -1.437856431721111e+00, -1.623999954498346e+00, -1.811628281550894e+00, -2e+00, -2.188371837658394e+00, -2.376000045501654e+00, -2.562143687488177e+00, -2.746069495331147e+00, -2.927051067352295e+00, -3.10437386018582e+00, -3.277338113875285e+00, -3.445260685450803e+00, -3.607480135171581e+00, -3.763355731964111e+00, -3.912272114257252e+00, -4.053641579804455e+00, -4.186905613149738e+00, -4.311539534512012e+00, -4.427051067352295e+00, -4.532983875272384e+00, -4.628920249494676e+00, -4.714481198640749e+00, -4.789329461585503e+00, -4.853169441223145e+00, -4.905749137797657e+00, -4.946861809072616e+00, -4.976344061279806e+00, -4.994080107325297e+00, -5e+00, -4.994080107325297e+00, -4.976344061279806e+00, -4.946861809072616e+00, -4.905749137797656e+00, -4.853169441223145e+00, -4.78932978929101e+00, -4.714481198644446e+00, -4.628920249490593e+00, -4.532983390825205e+00, -4.427051067352295e+00, -4.311540104800364e+00, -4.186905613155646e+00, -4.053641579798243e+00, -3.91227141957735e+00, -3.763355731964111e+00] +les.u2=[-2e+00, -1.950000048428773e+00, -1.899999977648257e+00, -1.850000029802314e+00, -1.799999955296512e+00, -1.75e+00, -1.700000059604609e+00, -1.649999970197695e+00, -1.600000029802305e+00, -1.549999940395391e+00, -1.5e+00, -1.450000059604645e+00, -1.399999999999858e+00, -1.350000000000142e+00, -1.299999940395355e+00, -1.25e+00, -1.200000059604645e+00, -1.149999999999858e+00, -1.100000000000142e+00, -1.049999940395355e+00, -1e+00, -9.499999403953552e-01, -9.00000000000142e-01, -8.499999999998578e-01, -8.000000596046448e-01, -7.5e-01, -6.999999403953552e-01, -6.50000000000142e-01, -5.999999999998578e-01, -5.500000596046448e-01, -5e-01, -4.499999403953552e-01, -4.000000298023223e-01, -3.499999701976775e-01, -3.000000596046446e-01, -2.5e-01, -1.999999552964455e-01, -1.500000298023223e-01, -9.999997764824053e-02, -5.000004842880923e-02, 0e+00, 5.000004842880923e-02, 1.000000968576189e-01, 1.499999105928906e-01, 1.999999552964455e-01, 2.5e-01, 3.000000596050649e-01, 3.50000089407251e-01, 3.999999105927485e-01, 4.499999403953554e-01, 5e-01, 5.500000596046446e-01, 6.000001192092896e-01, 6.499998807907108e-01, 6.999999403953554e-01, 7.5e-01, 8.00000059604645e-01, 8.500001192092892e-01, 8.999998807907104e-01, 9.49999940395355e-01, 1e+00, 1.05e+00, 1.10000011920929e+00, 1.14999988079071e+00, 1.2e+00, 1.25e+00, 1.3e+00, 1.35000011920929e+00, 1.399999880790711e+00, 1.45e+00, 1.5e+00, 1.55e+00, 1.600000119209289e+00, 1.64999988079071e+00, 1.7e+00, 1.75e+00, 1.8e+00, 1.85000011920929e+00, 1.899999880790711e+00, 1.95e+00, 2e+00, 2.049999761585969e+00, 2.099999999997726e+00, 2.150000000002273e+00, 2.200000238414032e+00, 2.25e+00, 2.299999761585968e+00, 2.349999999997726e+00, 2.400000000002274e+00, 2.450000238414032e+00, 2.5e+00, 2.549999761585968e+00, 2.599999999997727e+00, 2.650000000002274e+00, 2.700000238414031e+00, 2.75e+00, 2.799999761585968e+00, 2.849999999997726e+00, 2.900000000002274e+00, 2.950000238414032e+00, 3e+00] +les.y=[0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +lesHys.y=[0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_LessThreshold.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_LessThreshold.txt new file mode 100644 index 0000000000..f2e3fda820 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_LessThreshold.txt @@ -0,0 +1,12 @@ +last-generated=2023-03-17 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+01] +les.u=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1.497676015340886e+00, -9.973343606335472e-01, -5.009492668417413e-01, -1.048078720206188e-02, 4.721359610557556e-01, 9.449963048679213e-01, 1.406234166075659e+00, 1.85402962634291e+00, 2.286614518809852e+00, 2.702281951904297e+00, 3.099392304686385e+00, 3.47637659617823e+00, 3.831749125375993e+00, 4.164105584308051e+00, 4.4721360206604e+00, 4.754623667394541e+00, 5.010453107397214e+00, 5.238616567209061e+00, 5.438211738613346e+00, 5.608452320098877e+00, 5.748665449086841e+00, 5.858297778469661e+00, 5.93691781037549e+00, 5.984213795934889e+00, 6e+00, 5.984213795934889e+00, 5.93691781037549e+00, 5.858297778469661e+00, 5.74866544908684e+00, 5.608452320098877e+00, 5.438211738613347e+00, 5.238616052869989e+00, 5.010453680767095e+00, 4.75462366739454e+00, 4.4721360206604e+00, 4.164105584308049e+00, 3.831748301726575e+00, 3.476377466676903e+00, 3.099392304686384e+00, 2.702281951904297e+00, 2.286614011680809e+00, 1.85402857400833e+00, 1.406235248488341e+00, 9.449968611549155e-01, 4.721359610557556e-01, -1.048136813505908e-02, -5.009504448522509e-01, -9.973331722587795e-01, -1.49767541746905e+00, -2e+00, -2.502324582530945e+00, -3.002666708533068e+00, -3.499049674355329e+00, -3.989518654217149e+00, -4.4721360206604e+00, -4.944996801550559e+00, -5.406235129281329e+00, -5.854028335594302e+00, -6.286614011680805e+00, -6.702281951904297e+00, -7.09939230468752e+00, -7.476377705090932e+00, -7.831748301726572e+00, -8.164106061140663e+00, -8.472135543823242e+00, -8.75462366739454e+00, -9.010453680767094e+00, -9.238615576037381e+00, -9.438211261778463e+00, -9.608451843261719e+00, -9.748664367460419e+00, -9.858298475415383e+00, -9.936917178866837e+00, -9.984213937413436e+00, -1e+01, -9.984213937413436e+00, -9.936917178866837e+00, -9.858298475415383e+00, -9.748664367460417e+00, -9.608451843261719e+00, -9.438212135678004e+00, -9.238615576047238e+00, -9.010453680756207e+00, -8.754622375521754e+00, -8.472135543823242e+00, -8.16410758191112e+00, -7.831748301742326e+00, -7.476377705074368e+00, -7.099390452212329e+00, -6.702281951904297e+00] +les.t=[2e+00, 2e+00] +les.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +lesHys.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_LimitSlewRate.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_LimitSlewRate.txt new file mode 100644 index 0000000000..e750a219d2 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_LimitSlewRate.txt @@ -0,0 +1,11 @@ +last-generated=2017-10-24 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "number of continuous time states": "1", + "linear": " " +} +sleRatLim.y=[0e+00, 0e+00, 0e+00, 1.437176146109914e-01, 3.037175877889218e-01, 4.637176096439362e-01, 6.237176314989503e-01, 7.837176831560915e-01, 9.437175480526151e-01, 1.103717540105203e+00, 1.263717651367188e+00, 1.423717643419882e+00, 1.499997735027099e+00, 1.422950080235559e+00, 1.262949961027015e+00, 1.102949976921082e+00, 9.429501120242484e-01, 7.829499332110463e-01, 6.229500683149274e-01, 4.629499193039529e-01, 3.02949994802475e-01, 1.429501150044332e-01, 8.814942139984681e-04, 2.059985892636918e-08, 4.000724315966706e-10, 2.597874519671972e-11, 1.549918677416678e-01, 3.149917773419613e-01, 4.749921806639448e-01, 6.349920455607775e-01, 7.949919700622559e-01, 9.549918945637342e-01, 1.114991819064833e+00, 1.274992192584495e+00, 1.434992057481897e+00, 1.499999284744263e+00, 1.5e+00, 1.5e+00, 1.42501119295857e+00, 1.265011208853016e+00, 1.105011343955994e+00, 9.450114194545162e-01, 7.850115545576826e-01, 6.250111214333758e-01, 4.650112565365431e-01, 3.050113320350647e-01, 1.450114522370225e-01, 1.060648718873344e-03, 9.954553664997234e-09, 3.021871829589923e-10, 5.703153227454294e-12, 1.519405420628424e-01, 3.119404367619747e-01, 4.719408400839582e-01, 6.319402559690765e-01, 7.919406294822693e-01, 9.519410626001087e-01, 1.111940418877725e+00, 1.271940792403854e+00, 1.431940267889246e+00, 1.499998569488525e+00, 1.5e+00, 1.5e+00, 1.42805973211702e+00, 1.268060256631628e+00, 1.108059883117676e+00, 9.480595096044812e-01, 7.880600937225974e-01, 6.280597201964679e-01, 4.680603043145862e-01, 3.080599009990692e-01, 1.480594976836488e-01, 1.396376906567395e-03, -3.14243751486786e-08, -6.434689225771209e-10, -4.178314638725311e-11, 1.340002801339638e-01, 2.77999814031906e-01, 4.220001740472615e-01, 5.659996185385207e-01, 7.099999785423279e-01, 8.540003385461368e-01, 9.97999842642039e-01, 1.142000143052845e+00, 1.285999647148748e+00, 1.429999947547913e+00, 1.49999713901343e+00, 1.5e+00, 1.437991555263012e+00, 1.29400039576508e+00, 1.149999976158142e+00, 1.00599967575822e+00, 8.62000171663074e-01, 7.179998116476237e-01, 5.740003671563663e-01, 4.300000071525574e-01, 2.859996471487502e-01, 1.420001877562351e-01, 3.011352473554726e-03, -6.480208271559414e-08, -5.38217415080311e-10] +sleRatLim.u=[0e+00, 0e+00, 0e+00, 3.300000417232489e-01, 6.89999940395393e-01, 1.049999952316284e+00, 1.41000002384182e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.320000166892512e+00, 9.59999749662197e-01, 6.000000238418579e-01, 2.400002235158549e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 2.399998420487814e-01, 4.799996840976575e-01, 7.200003337837373e-01, 9.600001311292705e-01, 1.200000047683716e+00, 1.439999904633327e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.379999690058121e+00, 1.139999833108131e+00, 8.999999761581421e-01, 6.600001788127983e-01, 4.200002920606755e-01, 1.799997019788601e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.799998927123977e-01, 3.599997854247955e-01, 5.400002503376135e-01, 7.199995708568667e-01, 8.999999761581421e-01, 1.080000500668709e+00, 1.259999761579297e+00, 1.440000286103658e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.409999737737442e+00, 1.230000476826851e+00, 1.049999952316284e+00, 8.699995470150067e-01, 6.900002264997714e-01, 5.099997615794869e-01, 3.300004708660078e-01, 1.500000059604645e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.440003600038089e-01, 2.879998044952576e-01, 4.320001943126512e-01, 5.759996090025354e-01, 7.200000286102295e-01, 8.640003886132804e-01, 1.007999833105296e+00, 1.152000133516101e+00, 1.295999637612005e+00, 1.440000057220459e+00, 1.5e+00, 1.5e+00, 1.427999790189953e+00, 1.284000405303339e+00, 1.139999985694885e+00, 9.959996256910764e-01, 8.520001811998171e-01, 7.079998211843669e-01, 5.640003766931094e-01, 4.199999868869781e-01, 2.759996268833604e-01, 1.32000182391817e-01, 0e+00, 0e+00, 0e+00] +time=[0e+00, 4.8e+02] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Limiter.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Limiter.txt new file mode 100644 index 0000000000..9624b14eb3 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Limiter.txt @@ -0,0 +1,10 @@ +last-generated=2017-03-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +limiter1.u=[0e+00, 4e-02, 8e-02, 1.2e-01, 1.6e-01, 2e-01, 2.4e-01, 2.8e-01, 3.2e-01, 3.6e-01, 4e-01, 4.4e-01, 4.8e-01, 5.2e-01, 5.600000000000001e-01, 6e-01, 6.4e-01, 6.8e-01, 7.2e-01, 7.6e-01, 8e-01, 8.4e-01, 8.8e-01, 9.2e-01, 9.6e-01, 1e+00, 1.04e+00, 1.08e+00, 1.12e+00, 1.16e+00, 1.2e+00, 1.24e+00, 1.28e+00, 1.32e+00, 1.36e+00, 1.4e+00, 1.44e+00, 1.48e+00, 1.52e+00, 1.56e+00, 1.6e+00, 1.64e+00, 1.68e+00, 1.72e+00, 1.76e+00, 1.8e+00, 1.84e+00, 1.88e+00, 1.92e+00, 1.96e+00, 2e+00, 2.04e+00, 2.08e+00, 2.12e+00, 2.16e+00, 2.2e+00, 2.24e+00, 2.28e+00, 2.32e+00, 2.36e+00, 2.4e+00, 2.44e+00, 2.48e+00, 2.52e+00, 2.56e+00, 2.6e+00, 2.64e+00, 2.68e+00, 2.72e+00, 2.76e+00, 2.8e+00, 2.84e+00, 2.88e+00, 2.92e+00, 2.96e+00, 3e+00, 3.04e+00, 3.08e+00, 3.12e+00, 3.16e+00, 3.2e+00, 3.24e+00, 3.28e+00, 3.32e+00, 3.36e+00, 3.4e+00, 3.44e+00, 3.48e+00, 3.52e+00, 3.56e+00, 3.6e+00, 3.64e+00, 3.68e+00, 3.72e+00, 3.76e+00, 3.8e+00, 3.84e+00, 3.88e+00, 3.92e+00, 3.96e+00, 4e+00] +limiter1.y=[1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.24e+00, 1.28e+00, 1.32e+00, 1.36e+00, 1.4e+00, 1.44e+00, 1.48e+00, 1.52e+00, 1.56e+00, 1.6e+00, 1.64e+00, 1.68e+00, 1.72e+00, 1.76e+00, 1.8e+00, 1.84e+00, 1.88e+00, 1.92e+00, 1.96e+00, 2e+00, 2.04e+00, 2.08e+00, 2.12e+00, 2.16e+00, 2.2e+00, 2.24e+00, 2.28e+00, 2.32e+00, 2.36e+00, 2.4e+00, 2.44e+00, 2.48e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Line.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Line.txt new file mode 100644 index 0000000000..2833030a15 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Line.txt @@ -0,0 +1,12 @@ +last-generated=2018-03-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +line1.u=[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, 6.000005587923019e-02, 1.199999329449346e-01, 1.80000000000009e-01, 2.400000447034213e-01, 2.999999403953552e-01, 3.6e-01, 4.200000298023224e-01, 4.799999105932283e-01, 5.400000000000001e-01, 6.00000059604467e-01, 6.599999403953551e-01, 7.2e-01, 7.8e-01, 8.400000596046449e-01, 8.99999940395533e-01, 9.599999999999999e-01, 1.020000059604254e+00, 1.079999999999787e+00, 1.139999999999929e+00, 1.200000119208934e+00, 1.259999940395604e+00, 1.320000059604609e+00, 1.380000059604325e+00, 1.439999999999716e+00, 1.5e+00, 1.559999999999432e+00, 1.620000119207016e+00, 1.680000119207584e+00, 1.739999880793269e+00, 1.799999880792132e+00, 1.859999999999858e+00, 1.919999999999573e+00, 1.9800001192073e+00, 2.040000119207726e+00, 2.099999761585684e+00, 2.160000000000852e+00, 2.220000000000284e+00, 2.279999999999716e+00, 2.339999999999148e+00, 2.400000238414316e+00, 2.459999880792274e+00, 2.519999880791705e+00, 2.579999880791989e+00, 2.640000119209289e+00, 2.700000119207158e+00, 2.76000011920801e+00, 2.819999761586537e+00, 2.880000000001137e+00, 2.940000000000568e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +line1.y=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5.200000596046447e-01, 5.799999403955683e-01, 6.4e-01, 7.000000596046448e-01, 7.59999940395604e-01, 8.199999999999998e-01, 8.800000596046447e-01, 9.399999403953552e-01, 1e+00, 1.059999999999432e+00, 1.120000119207016e+00, 1.180000119207584e+00, 1.239999880793269e+00, 1.299999880792132e+00, 1.359999999999858e+00, 1.419999999999573e+00, 1.4800001192073e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00] +time=[0e+00, 1e+00] +line3.y=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5.200000596046447e-01, 5.799999403955683e-01, 6.4e-01, 7.000000596046448e-01, 7.59999940395604e-01, 8.199999999999998e-01, 8.800000596046447e-01, 9.399999403953552e-01, 1e+00, 1.059999999999432e+00, 1.120000119207016e+00, 1.180000119207584e+00, 1.239999880793269e+00, 1.299999880792132e+00, 1.359999999999858e+00, 1.419999999999573e+00, 1.4800001192073e+00, 1.540000119207726e+00, 1.599999880793552e+00, 1.659999880792416e+00, 1.720000000000284e+00, 1.779999999999716e+00, 1.840000119207584e+00, 1.900000119206448e+00, 1.959999880792274e+00, 2.019999880791705e+00, 2.079999880791989e+00, 2.140000119209289e+00, 2.200000119207158e+00, 2.26000011920801e+00, 2.319999761586537e+00, 2.380000000001137e+00, 2.440000000000568e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00, 2.5e+00] +line2.y=[-5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -4.399999403954973e-01, -3.800000596044848e-01, -3.199999999999821e-01, -2.599999403954797e-01, -2.000000745056284e-01, -1.400000149011257e-01, -7.999995529662296e-02, -2.000007823094963e-02, 3.999997764830499e-02, 1.000000372528362e-01, 1.599999105932459e-01, 2.199999701977486e-01, 2.800000298022514e-01, 3.400000894067541e-01, 3.999999701977666e-01, 4.60000029802269e-01, 5.200000596046447e-01, 5.799999403955683e-01, 6.4e-01, 7.000000596046448e-01, 7.59999940395604e-01, 8.199999999999998e-01, 8.800000596046447e-01, 9.399999403953552e-01, 1e+00, 1.059999999999432e+00, 1.120000119207016e+00, 1.180000119207584e+00, 1.239999880793269e+00, 1.299999880792132e+00, 1.359999999999858e+00, 1.419999999999573e+00, 1.4800001192073e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Log.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Log.txt new file mode 100644 index 0000000000..d136279727 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Log.txt @@ -0,0 +1,10 @@ +last-generated=2017-03-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +log1.y=[0e+00, 4.87901653511907e-02, 9.531018340211317e-02, 1.397619425476533e-01, 1.823215670729271e-01, 2.231435447811441e-01, 2.623642734412664e-01, 3.001045871622895e-01, 3.364722494340859e-01, 3.715635414354568e-01, 4.054650912516052e-01, 4.382549245449546e-01, 4.700036430470175e-01, 5.007752920205341e-01, 5.306282621920957e-01, 5.596157737652154e-01, 5.877866844061271e-01, 6.151856135546999e-01, 6.418538500892152e-01, 6.678294004381674e-01, 6.931471749953008e-01, 7.178397934221931e-01, 7.419373421374558e-01, 7.654678128261045e-01, 7.884573462059203e-01, 8.109301924705505e-01, 8.329091278955197e-01, 8.544153342368299e-01, 8.754687284378073e-01, 8.960880211074321e-01, 9.162907361504637e-01, 9.360933256992704e-01, 9.555114644960276e-01, 9.745596399379585e-01, 9.932517939020038e-01, 1.011600982039204e+00, 1.029619429746953e+00, 1.047318927014163e+00, 1.064710744481755e+00, 1.081805253391175e+00, 1.098612298551422e+00, 1.115141636025742e+00, 1.131402156010907e+00, 1.147402394367896e+00, 1.163150791073057e+00, 1.17865504665456e+00, 1.193922507021068e+00, 1.208960296500148e+00, 1.223775402565348e+00, 1.238374219404505e+00, 1.252762913703918e+00, 1.266947640480112e+00, 1.280933883417454e+00, 1.2947272453679e+00, 1.308332771830331e+00, 1.321755870161993e+00, 1.335001107889229e+00, 1.348073134162674e+00, 1.360976598174184e+00, 1.373715553061437e+00, 1.386294335089752e+00, 1.398716908891871e+00, 1.410987013716791e+00, 1.423108345047654e+00, 1.435084598384375e+00, 1.446918992402212e+00, 1.458615034090746e+00, 1.470175843106814e+00, 1.4816045679737e+00, 1.492904069715428e+00, 1.504077447769877e+00, 1.515127205561355e+00, 1.526056258541375e+00, 1.536867240401427e+00, 1.547562469816798e+00, 1.558144569396973e+00, 1.568615923314669e+00, 1.578978677366089e+00, 1.589235215740434e+00, 1.599387504817228e+00, 1.60943793057223e+00, 1.619388220331528e+00, 1.629240519853165e+00, 1.638996736501479e+00, 1.648658658424125e+00, 1.658228017014481e+00, 1.667706833682531e+00, 1.677096600840192e+00, 1.686398987412684e+00, 1.695615662334325e+00, 1.704748056132789e+00, 1.713797903255172e+00, 1.722766622887942e+00, 1.731655591351249e+00, 1.740466119948478e+00, 1.749199877605231e+00, 1.757857937221502e+00, 1.766441678368624e+00, 1.774952276264959e+00, 1.783391229237872e+00, 1.791759490966797e+00] +log1.u=[1e+00, 1.04999995343387e+00, 1.10000002607703e+00, 1.149999979510896e+00, 1.200000052154059e+00, 1.249999996274714e+00, 1.299999959021799e+00, 1.350000022351741e+00, 1.399999985098812e+00, 1.450000029802376e+00, 1.499999992549442e+00, 1.549999955296508e+00, 1.600000037252863e+00, 1.649999999999929e+00, 1.700000044703493e+00, 1.749999970197766e+00, 1.799999970197624e+00, 1.850000014901188e+00, 1.899999940395462e+00, 1.950000059604609e+00, 1.999999985098883e+00, 2.049999985098741e+00, 2.099999910593015e+00, 2.150000074505868e+00, 2.200000074505726e+00, 2.25e+00, 2.299999999999858e+00, 2.349999850988548e+00, 2.400000089406985e+00, 2.450000089406843e+00, 2.499999940395533e+00, 2.549999940395391e+00, 2.599999940395249e+00, 2.650000029802518e+00, 2.700000029802376e+00, 2.750000029802234e+00, 2.799999880790923e+00, 2.849999880790782e+00, 2.900000119209218e+00, 2.950000119209077e+00, 2.999999970197766e+00, 3.049999970197624e+00, 3.099999970197482e+00, 3.150000059604751e+00, 3.200000059604609e+00, 3.250000059604467e+00, 3.299999910593157e+00, 3.349999910593015e+00, 3.400000149011452e+00, 3.450000000000142e+00, 3.5e+00, 3.549999999999148e+00, 3.599999999998295e+00, 3.650000238416022e+00, 3.699999940397274e+00, 3.749999940396421e+00, 3.799999940395213e+00, 3.849999940394715e+00, 3.900000178812442e+00, 3.950000178811589e+00, 3.999999880792842e+00, 4.050000119208863e+00, 4.099999880791705e+00, 4.150000119208295e+00, 4.199999880791137e+00, 4.25000011921e+00, 4.300000059603863e+00, 4.349999821189548e+00, 4.400000059604432e+00, 4.449999821186492e+00, 4.500000059605e+00, 4.550000298018747e+00, 4.599999761587389e+00, 4.649999999999432e+00, 4.699999761583411e+00, 4.75e+00, 4.800000238416589e+00, 4.850000000000568e+00, 4.900000238412611e+00, 4.949999701981253e+00, 4.999999940395e+00, 5.050000178813508e+00, 5.099999940395568e+00, 5.150000178810452e+00, 5.199999940396137e+00, 5.24999988079e+00, 5.300000119208863e+00, 5.349999880791705e+00, 5.400000119208295e+00, 5.449999880791137e+00, 5.50000011921e+00, 5.550000059603863e+00, 5.599999821189548e+00, 5.650000059604432e+00, 5.699999821186492e+00, 5.750000059605e+00, 5.800000298018747e+00, 5.849999761587389e+00, 5.899999999999432e+00, 5.949999761583411e+00, 6e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Log10.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Log10.txt new file mode 100644 index 0000000000..a14c5cda78 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Log10.txt @@ -0,0 +1,10 @@ +last-generated=2017-03-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +log10_1.u=[1e+00, 1.090000035390258e+00, 1.179999951571227e+00, 1.26999998696148e+00, 1.360000022351743e+00, 1.450000040978192e+00, 1.53999997392297e+00, 1.629999992549414e+00, 1.720000044703457e+00, 1.809999910593299e+00, 1.899999962747119e+00, 1.990000014901117e+00, 2.079999947846056e+00, 2.170000119208934e+00, 2.259999985098883e+00, 2.349999850988832e+00, 2.440000089406701e+00, 2.52999995529665e+00, 2.619999821186599e+00, 2.710000059604467e+00, 2.799999925494416e+00, 2.890000163912285e+00, 2.980000029802234e+00, 3.069999895692183e+00, 3.160000134110051e+00, 3.25e+00, 3.340000000000426e+00, 3.429999970197198e+00, 3.519999970197767e+00, 3.609999970198051e+00, 3.699999940394822e+00, 3.789999940395533e+00, 3.880000178813401e+00, 3.969999910592447e+00, 4.059999910592873e+00, 4.150000149011878e+00, 4.239999642374903e+00, 4.329999880790497e+00, 4.420000119209503e+00, 4.510000357625097e+00, 4.599999850988122e+00, 4.690000089407127e+00, 4.780000327823006e+00, 4.869999821187451e+00, 4.960000059604751e+00, 5.050000298020914e+00, 5.13999979138536e+00, 5.230000029802375e+00, 5.320000268218823e+00, 5.409999761583268e+00, 5.5e+00, 5.590000238415453e+00, 5.679999999998295e+00, 5.770000238416022e+00, 5.859999940397274e+00, 5.949999701980684e+00, 6.039999940394929e+00, 6.130000178811589e+00, 6.219999940393863e+00, 6.310000178811589e+00, 6.399999880792842e+00, 6.489999642376821e+00, 6.579999880791137e+00, 6.670000119208863e+00, 6.760000357623179e+00, 6.850000119207158e+00, 6.939999821188411e+00, 7.030000059606137e+00, 7.119999821188411e+00, 7.210000059605071e+00, 7.300000298019316e+00, 7.390000059602726e+00, 7.479999761583978e+00, 7.570000000001705e+00, 7.659999761584547e+00, 7.75e+00, 7.840000238415453e+00, 7.929999999998295e+00, 8.020000715246358e+00, 8.109999463565231e+00, 8.199999701980685e+00, 8.289999940395498e+00, 8.380000178811589e+00, 8.470000417227041e+00, 8.560000655642495e+00, 8.649999403961369e+00, 8.739999642376821e+00, 8.829999880792274e+00, 8.920000119207726e+00, 9.010000357623179e+00, 9.100000596038631e+00, 9.189999344357505e+00, 9.279999582772959e+00, 9.369999821188411e+00, 9.460000059604502e+00, 9.550000298019315e+00, 9.640000536434769e+00, 9.729999284753642e+00, 9.819999523169095e+00, 9.909999761584547e+00, 1e+01] +log10_1.y=[0e+00, 3.742649858220613e-02, 7.18820109758098e-02, 1.038037260997729e-01, 1.335389043585886e-01, 1.613679955061617e-01, 1.875207308993131e-01, 2.121876023974158e-01, 2.355284582269037e-01, 2.576785606016807e-01, 2.787536053851314e-01, 2.98853070709295e-01, 3.180633535502984e-01, 3.364597346486957e-01, 3.541084517619527e-01, 3.710678418299149e-01, 3.873898444033221e-01, 4.031205149583229e-01, 4.18301273605842e-01, 4.329693053663421e-01, 4.471580344425053e-01, 4.608978419489416e-01, 4.742162541242582e-01, 4.871383554110801e-01, 4.996870822313831e-01, 5.118833780288696e-01, 5.237465016087187e-01, 5.352941032853558e-01, 5.465426431736189e-01, 5.575072259428951e-01, 5.682017080907371e-01, 5.786392068058227e-01, 5.888317299250471e-01, 5.987905134503726e-01, 6.085260475937914e-01, 6.180480774629971e-01, 6.273658143452093e-01, 6.364878968975151e-01, 6.454222840428571e-01, 6.541765455954225e-01, 6.627578088560032e-01, 6.711728602593336e-01, 6.794279324743894e-01, 6.875289621060264e-01, 6.954816598572753e-01, 7.032913657739597e-01, 7.109631236405023e-01, 7.185016879392503e-01, 7.25911625148262e-01, 7.331972649222533e-01, 7.403627038002014e-01, 7.47411794167591e-01, 7.54348350754759e-01, 7.611758306413343e-01, 7.678975915621049e-01, 7.745169322743997e-01, 7.810369118497619e-01, 7.874604509116604e-01, 7.937904105003856e-01, 8.000293536287113e-01, 8.061799857236646e-01, 8.12244704679021e-01, 8.182259173639093e-01, 8.241258291493335e-01, 8.299467050181898e-01, 8.356905715427533e-01, 8.413594813267283e-01, 8.469552900865419e-01, 8.524799903655191e-01, 8.57935251096381e-01, 8.633228604169347e-01, 8.686444276676255e-01, 8.739015906380392e-01, 8.790958425157064e-01, 8.842287610925411e-01, 8.893017172813416e-01, 8.943160819812639e-01, 8.992732261147696e-01, 9.041744013828096e-01, 9.090208307691702e-01, 9.138138237338435e-01, 9.185545433234805e-01, 9.232440028137323e-01, 9.278833943052808e-01, 9.324737906868101e-01, 9.370161187092783e-01, 9.415114457938731e-01, 9.459606983990982e-01, 9.503648301971384e-01, 9.54724794865294e-01, 9.590414268752712e-01, 9.633154757430347e-01, 9.675479460929975e-01, 9.717395871814256e-01, 9.758911142654354e-01, 9.800033618081897e-01, 9.840770450725479e-01, 9.881128553747331e-01, 9.921114964792118e-01, 9.960736594697506e-01, 1e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MatrixGain.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MatrixGain.txt new file mode 100644 index 0000000000..c228439473 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MatrixGain.txt @@ -0,0 +1,17 @@ +last-generated=2019-02-11 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +matGai.y[1]=[0e+00, 2e-02, 4e-02, 6e-02, 8e-02, 1e-01, 1.2e-01, 1.4e-01, 1.6e-01, 1.8e-01, 2e-01, 2.2e-01, 2.4e-01, 2.6e-01, 2.8e-01, 3e-01, 3.2e-01, 3.4e-01, 3.6e-01, 3.8e-01, 4e-01, 4.2e-01, 4.4e-01, 4.6e-01, 4.8e-01, 5e-01, 5.2e-01, 5.4e-01, 5.600000000000001e-01, 5.8e-01, 6e-01, 6.2e-01, 6.4e-01, 6.6e-01, 6.8e-01, 7e-01, 7.2e-01, 7.4e-01, 7.6e-01, 7.8e-01, 8e-01, 8.2e-01, 8.4e-01, 8.6e-01, 8.8e-01, 9e-01, 9.2e-01, 9.399999999999999e-01, 9.6e-01, 9.8e-01, 1e+00, 1.02e+00, 1.04e+00, 1.06e+00, 1.08e+00, 1.1e+00, 1.12e+00, 1.14e+00, 1.16e+00, 1.18e+00, 1.2e+00, 1.22e+00, 1.24e+00, 1.26e+00, 1.28e+00, 1.3e+00, 1.32e+00, 1.34e+00, 1.36e+00, 1.38e+00, 1.4e+00, 1.42e+00, 1.44e+00, 1.46e+00, 1.48e+00, 1.5e+00, 1.52e+00, 1.54e+00, 1.56e+00, 1.58e+00, 1.6e+00, 1.62e+00, 1.64e+00, 1.66e+00, 1.68e+00, 1.7e+00, 1.72e+00, 1.74e+00, 1.76e+00, 1.78e+00, 1.8e+00, 1.82e+00, 1.84e+00, 1.86e+00, 1.88e+00, 1.9e+00, 1.92e+00, 1.94e+00, 1.96e+00, 1.98e+00, 2e+00] +matGai.y[2]=[0e+00, 4e-02, 8e-02, 1.2e-01, 1.6e-01, 2e-01, 2.4e-01, 2.8e-01, 3.2e-01, 3.6e-01, 4e-01, 4.4e-01, 4.8e-01, 5.2e-01, 5.600000000000001e-01, 6e-01, 6.4e-01, 6.8e-01, 7.2e-01, 7.6e-01, 8e-01, 8.4e-01, 8.8e-01, 9.2e-01, 9.6e-01, 1e+00, 1.04e+00, 1.08e+00, 1.12e+00, 1.16e+00, 1.2e+00, 1.24e+00, 1.28e+00, 1.32e+00, 1.36e+00, 1.4e+00, 1.44e+00, 1.48e+00, 1.52e+00, 1.56e+00, 1.6e+00, 1.64e+00, 1.68e+00, 1.72e+00, 1.76e+00, 1.8e+00, 1.84e+00, 1.88e+00, 1.92e+00, 1.96e+00, 2e+00, 2.04e+00, 2.08e+00, 2.12e+00, 2.16e+00, 2.2e+00, 2.24e+00, 2.28e+00, 2.32e+00, 2.36e+00, 2.4e+00, 2.44e+00, 2.48e+00, 2.52e+00, 2.56e+00, 2.6e+00, 2.64e+00, 2.68e+00, 2.72e+00, 2.76e+00, 2.8e+00, 2.84e+00, 2.88e+00, 2.92e+00, 2.96e+00, 3e+00, 3.04e+00, 3.08e+00, 3.12e+00, 3.16e+00, 3.2e+00, 3.24e+00, 3.28e+00, 3.32e+00, 3.36e+00, 3.4e+00, 3.44e+00, 3.48e+00, 3.52e+00, 3.56e+00, 3.6e+00, 3.64e+00, 3.68e+00, 3.72e+00, 3.76e+00, 3.8e+00, 3.84e+00, 3.88e+00, 3.92e+00, 3.96e+00, 4e+00] +matGai.y[3]=[0e+00, 5.999999999999959e-02, 1.2e-01, 1.800000111758646e-01, 2.400000000000033e-01, 3.000000074505723e-01, 3.600000223517368e-01, 4.199999850988366e-01, 4.8e-01, 5.4e-01, 6.000000149011613e-01, 6.600000298023047e-01, 7.200000447034036e-01, 7.8e-01, 8.399999701976955e-01, 8.999999403955328e-01, 9.6e-01, 1.019999970197731e+00, 1.079999999999787e+00, 1.139999999999929e+00, 1.200000029802234e+00, 1.260000029802127e+00, 1.320000059604609e+00, 1.379999970197802e+00, 1.440000089406807e+00, 1.5e+00, 1.560000000000284e+00, 1.619999940395675e+00, 1.679999940395391e+00, 1.740000059604396e+00, 1.799999880791066e+00, 1.860000000000071e+00, 1.920000000000213e+00, 1.979999940395746e+00, 2.039999940395675e+00, 2.099999940395533e+00, 2.159999999999574e+00, 2.219999999999858e+00, 2.280000000000142e+00, 2.340000000000426e+00, 2.400000059604467e+00, 2.460000059604325e+00, 2.520000059605036e+00, 2.57999988079135e+00, 2.640000119209077e+00, 2.700000119208224e+00, 2.759999940395107e+00, 2.819999940395391e+00, 2.880000178812975e+00, 2.939999999999716e+00, 3e+00, 3.059999999999432e+00, 3.119999999998863e+00, 3.180000238413463e+00, 3.23999988079199e+00, 3.299999880792842e+00, 3.359999880790711e+00, 3.420000119208011e+00, 3.480000119208295e+00, 3.540000119207726e+00, 3.599999761585684e+00, 3.660000000000852e+00, 3.720000000000284e+00, 3.779999999999716e+00, 3.839999999999148e+00, 3.900000238414316e+00, 3.959999880792274e+00, 4.019999880791706e+00, 4.079999880791137e+00, 4.139999880790994e+00, 4.19999988079e+00, 4.260000357621474e+00, 4.320000000001705e+00, 4.380000000001137e+00, 4.440000000000568e+00, 4.5e+00, 4.559999999999432e+00, 4.619999999998863e+00, 4.679999999998295e+00, 4.739999642378526e+00, 4.80000011921e+00, 4.860000119209006e+00, 4.920000119208863e+00, 4.980000119208294e+00, 5.040000119207726e+00, 5.099999761582842e+00, 5.159999761582274e+00, 5.219999761582842e+00, 5.280000238417158e+00, 5.340000238417726e+00, 5.400000238417158e+00, 5.459999880792274e+00, 5.519999880791706e+00, 5.579999880791137e+00, 5.639999880790994e+00, 5.69999988079e+00, 5.760000357621474e+00, 5.820000000001705e+00, 5.880000000001137e+00, 5.940000000000568e+00, 6e+00] +time=[0e+00, 1e+00] +matGai.u[2]=[0e+00, 2e-02, 4e-02, 6e-02, 8e-02, 1e-01, 1.2e-01, 1.4e-01, 1.6e-01, 1.8e-01, 2e-01, 2.2e-01, 2.4e-01, 2.6e-01, 2.8e-01, 3e-01, 3.2e-01, 3.4e-01, 3.6e-01, 3.8e-01, 4e-01, 4.2e-01, 4.4e-01, 4.6e-01, 4.8e-01, 5e-01, 5.2e-01, 5.4e-01, 5.600000000000001e-01, 5.8e-01, 6e-01, 6.2e-01, 6.4e-01, 6.6e-01, 6.8e-01, 7e-01, 7.2e-01, 7.4e-01, 7.6e-01, 7.8e-01, 8e-01, 8.2e-01, 8.4e-01, 8.6e-01, 8.8e-01, 9e-01, 9.2e-01, 9.399999999999999e-01, 9.6e-01, 9.8e-01, 1e+00, 1.02e+00, 1.04e+00, 1.06e+00, 1.08e+00, 1.1e+00, 1.12e+00, 1.14e+00, 1.16e+00, 1.18e+00, 1.2e+00, 1.22e+00, 1.24e+00, 1.26e+00, 1.28e+00, 1.3e+00, 1.32e+00, 1.34e+00, 1.36e+00, 1.38e+00, 1.4e+00, 1.42e+00, 1.44e+00, 1.46e+00, 1.48e+00, 1.5e+00, 1.52e+00, 1.54e+00, 1.56e+00, 1.58e+00, 1.6e+00, 1.62e+00, 1.64e+00, 1.66e+00, 1.68e+00, 1.7e+00, 1.72e+00, 1.74e+00, 1.76e+00, 1.78e+00, 1.8e+00, 1.82e+00, 1.84e+00, 1.86e+00, 1.88e+00, 1.9e+00, 1.92e+00, 1.94e+00, 1.96e+00, 1.98e+00, 2e+00] +matGai.u[1]=[0e+00, 2e-02, 4e-02, 6e-02, 8e-02, 1e-01, 1.2e-01, 1.4e-01, 1.6e-01, 1.8e-01, 2e-01, 2.2e-01, 2.4e-01, 2.6e-01, 2.8e-01, 3e-01, 3.2e-01, 3.4e-01, 3.6e-01, 3.8e-01, 4e-01, 4.2e-01, 4.4e-01, 4.6e-01, 4.8e-01, 5e-01, 5.2e-01, 5.4e-01, 5.600000000000001e-01, 5.8e-01, 6e-01, 6.2e-01, 6.4e-01, 6.6e-01, 6.8e-01, 7e-01, 7.2e-01, 7.4e-01, 7.6e-01, 7.8e-01, 8e-01, 8.2e-01, 8.4e-01, 8.6e-01, 8.8e-01, 9e-01, 9.2e-01, 9.399999999999999e-01, 9.6e-01, 9.8e-01, 1e+00, 1.02e+00, 1.04e+00, 1.06e+00, 1.08e+00, 1.1e+00, 1.12e+00, 1.14e+00, 1.16e+00, 1.18e+00, 1.2e+00, 1.22e+00, 1.24e+00, 1.26e+00, 1.28e+00, 1.3e+00, 1.32e+00, 1.34e+00, 1.36e+00, 1.38e+00, 1.4e+00, 1.42e+00, 1.44e+00, 1.46e+00, 1.48e+00, 1.5e+00, 1.52e+00, 1.54e+00, 1.56e+00, 1.58e+00, 1.6e+00, 1.62e+00, 1.64e+00, 1.66e+00, 1.68e+00, 1.7e+00, 1.72e+00, 1.74e+00, 1.76e+00, 1.78e+00, 1.8e+00, 1.82e+00, 1.84e+00, 1.86e+00, 1.88e+00, 1.9e+00, 1.92e+00, 1.94e+00, 1.96e+00, 1.98e+00, 2e+00] +matGai1.y[1]=[0e+00, 5.000000186264474e-02, 1.000000037252895e-01, 1.500000093132189e-01, 2.000000074505756e-01, 2.499999962747083e-01, 3.00000018626444e-01, 3.499999925494183e-01, 4.000000149011346e-01, 4.499999701977309e-01, 4.999999925494416e-01, 5.500000149011524e-01, 6.00000037252863e-01, 6.500000000000711e-01, 6.999999850988478e-01, 7.499999701977664e-01, 8.000000298022691e-01, 8.500000149011346e-01, 8.999999403954617e-01, 9.499999999999645e-01, 9.999999850988832e-01, 1.049999985098741e+00, 1.100000029802305e+00, 1.149999955296579e+00, 1.200000074505726e+00, 1.25e+00, 1.299999999999858e+00, 1.349999970197838e+00, 1.399999970197696e+00, 1.450000089406843e+00, 1.499999940395533e+00, 1.549999940395391e+00, 1.600000059604538e+00, 1.649999910593228e+00, 1.700000029802376e+00, 1.750000029802234e+00, 1.799999880790923e+00, 1.850000000000071e+00, 1.899999999999929e+00, 1.950000119209077e+00, 1.999999970197766e+00, 2.049999970197624e+00, 2.099999970197482e+00, 2.150000059604751e+00, 2.200000059604609e+00, 2.250000059604467e+00, 2.299999910593157e+00, 2.349999910593015e+00, 2.400000149011452e+00, 2.450000000000142e+00, 2.5e+00, 2.549999999999148e+00, 2.599999999998295e+00, 2.650000238416022e+00, 2.699999940397274e+00, 2.749999940396421e+00, 2.799999940395213e+00, 2.849999940394715e+00, 2.900000178812442e+00, 2.950000178811589e+00, 2.999999880792842e+00, 3.049999880791989e+00, 3.099999880791137e+00, 3.150000119208863e+00, 3.200000119208011e+00, 3.250000119207158e+00, 3.299999821188411e+00, 3.349999821187558e+00, 3.400000059605285e+00, 3.450000059604787e+00, 3.500000059603579e+00, 3.550000059602726e+00, 3.599999761583978e+00, 3.650000000001705e+00, 3.700000000000852e+00, 3.75e+00, 3.799999999999148e+00, 3.849999999998295e+00, 3.900000238416022e+00, 3.949999940397274e+00, 3.999999940396421e+00, 4.050000178813508e+00, 4.099999940395568e+00, 4.150000178810452e+00, 4.199999940396137e+00, 4.24999988079e+00, 4.300000119208863e+00, 4.349999880791705e+00, 4.400000119208295e+00, 4.449999880791137e+00, 4.50000011921e+00, 4.550000059603863e+00, 4.599999821189548e+00, 4.650000059604432e+00, 4.699999821186492e+00, 4.750000059605e+00, 4.800000298018747e+00, 4.849999761587389e+00, 4.899999999999432e+00, 4.949999761583411e+00, 5e+00] +matGai1.y[2]=[0e+00, 1.100000018626447e-01, 2.200000037252895e-01, 3.300000204890835e-01, 4.400000074505856e-01, 5.500000037252861e-01, 6.600000409781608e-01, 7.699999776482593e-01, 8.800000149011346e-01, 9.899999701977309e-01, 1.100000007450558e+00, 1.210000044703457e+00, 1.320000081956267e+00, 1.430000000000071e+00, 1.539999955296543e+00, 1.649999910593299e+00, 1.760000029802163e+00, 1.869999985098919e+00, 1.979999940395249e+00, 2.089999940395391e+00, 2.200000014901117e+00, 2.310000014901259e+00, 2.420000089406843e+00, 2.529999925494132e+00, 2.640000163912214e+00, 2.75e+00, 2.860000000000142e+00, 2.969999910592873e+00, 3.079999910593157e+00, 3.190000149010741e+00, 3.299999821187309e+00, 3.410000059604609e+00, 3.520000059604751e+00, 3.629999970197483e+00, 3.739999970197625e+00, 3.849999970197766e+00, 3.959999880790497e+00, 4.07000011920865e+00, 4.17999988079135e+00, 4.290000119207797e+00, 4.400000029801523e+00, 4.510000268220528e+00, 4.620000029804081e+00, 4.729999940396101e+00, 4.840000178813685e+00, 4.949999940396954e+00, 5.059999850989259e+00, 5.170000089406843e+00, 5.280000327824427e+00, 5.389999761582415e+00, 5.5e+00, 5.610000238416021e+00, 5.719999999999432e+00, 5.830000238417727e+00, 5.939999821191821e+00, 6.050000059605001e+00, 6.159999821185924e+00, 6.270000059602726e+00, 6.380000298018747e+00, 6.490000059603863e+00, 6.599999642378526e+00, 6.709999880794547e+00, 6.820000119209432e+00, 6.929999880790568e+00, 7.040000119205453e+00, 7.150000357621474e+00, 7.259999940396137e+00, 7.369999701981253e+00, 7.479999940397274e+00, 7.590000178814076e+00, 7.699999940394999e+00, 7.810000178808179e+00, 7.919999761582273e+00, 8.029999523172505e+00, 8.140000238418864e+00, 8.25e+00, 8.359999761581136e+00, 8.470000476827495e+00, 8.580000238417727e+00, 8.689999344359778e+00, 8.800000059605001e+00, 8.909999821185355e+00, 9.020000536438179e+00, 9.130000298022726e+00, 9.240000059603863e+00, 9.35000011921e+00, 9.459999880791136e+00, 9.569999642374547e+00, 9.680000357625453e+00, 9.790000119208864e+00, 9.89999988079e+00, 1.000999994039614e+01, 1.011999970197727e+01, 1.022999946356182e+01, 1.034000017881464e+01, 1.0449999940395e+01, 1.056000065564022e+01, 1.066999976158227e+01, 1.07799995231725e+01, 1.089000023841886e+01, 1.1e+01] +matGai1.u[1]=[0e+00, 1e-02, 2e-02, 3e-02, 4e-02, 5e-02, 6e-02, 7.000000000000001e-02, 8e-02, 9e-02, 1e-01, 1.1e-01, 1.2e-01, 1.3e-01, 1.4e-01, 1.5e-01, 1.6e-01, 1.7e-01, 1.8e-01, 1.9e-01, 2e-01, 2.1e-01, 2.2e-01, 2.3e-01, 2.4e-01, 2.5e-01, 2.6e-01, 2.7e-01, 2.8e-01, 2.9e-01, 3e-01, 3.1e-01, 3.2e-01, 3.3e-01, 3.4e-01, 3.5e-01, 3.6e-01, 3.7e-01, 3.8e-01, 3.9e-01, 4e-01, 4.1e-01, 4.2e-01, 4.3e-01, 4.4e-01, 4.5e-01, 4.6e-01, 4.7e-01, 4.8e-01, 4.9e-01, 5e-01, 5.1e-01, 5.2e-01, 5.3e-01, 5.4e-01, 5.5e-01, 5.600000000000001e-01, 5.7e-01, 5.8e-01, 5.9e-01, 6e-01, 6.1e-01, 6.2e-01, 6.3e-01, 6.4e-01, 6.5e-01, 6.6e-01, 6.7e-01, 6.8e-01, 6.899999999999999e-01, 7e-01, 7.1e-01, 7.2e-01, 7.3e-01, 7.4e-01, 7.5e-01, 7.6e-01, 7.7e-01, 7.8e-01, 7.9e-01, 8e-01, 8.100000000000001e-01, 8.2e-01, 8.3e-01, 8.4e-01, 8.5e-01, 8.6e-01, 8.7e-01, 8.8e-01, 8.9e-01, 9e-01, 9.1e-01, 9.2e-01, 9.3e-01, 9.399999999999999e-01, 9.5e-01, 9.6e-01, 9.7e-01, 9.8e-01, 9.9e-01, 1e+00] +matGai1.u[2]=[0e+00, 2e-02, 4e-02, 6e-02, 8e-02, 1e-01, 1.2e-01, 1.4e-01, 1.6e-01, 1.8e-01, 2e-01, 2.2e-01, 2.4e-01, 2.6e-01, 2.8e-01, 3e-01, 3.2e-01, 3.4e-01, 3.6e-01, 3.8e-01, 4e-01, 4.2e-01, 4.4e-01, 4.6e-01, 4.8e-01, 5e-01, 5.2e-01, 5.4e-01, 5.600000000000001e-01, 5.8e-01, 6e-01, 6.2e-01, 6.4e-01, 6.6e-01, 6.8e-01, 7e-01, 7.2e-01, 7.4e-01, 7.6e-01, 7.8e-01, 8e-01, 8.2e-01, 8.4e-01, 8.6e-01, 8.8e-01, 9e-01, 9.2e-01, 9.399999999999999e-01, 9.6e-01, 9.8e-01, 1e+00, 1.02e+00, 1.04e+00, 1.06e+00, 1.08e+00, 1.1e+00, 1.12e+00, 1.14e+00, 1.16e+00, 1.18e+00, 1.2e+00, 1.22e+00, 1.24e+00, 1.26e+00, 1.28e+00, 1.3e+00, 1.32e+00, 1.34e+00, 1.36e+00, 1.38e+00, 1.4e+00, 1.42e+00, 1.44e+00, 1.46e+00, 1.48e+00, 1.5e+00, 1.52e+00, 1.54e+00, 1.56e+00, 1.58e+00, 1.6e+00, 1.62e+00, 1.64e+00, 1.66e+00, 1.68e+00, 1.7e+00, 1.72e+00, 1.74e+00, 1.76e+00, 1.78e+00, 1.8e+00, 1.82e+00, 1.84e+00, 1.86e+00, 1.88e+00, 1.9e+00, 1.92e+00, 1.94e+00, 1.96e+00, 1.98e+00, 2e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MatrixMax.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MatrixMax.txt new file mode 100644 index 0000000000..beac4d5f52 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MatrixMax.txt @@ -0,0 +1,15 @@ +last-generated=2019-05-24 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +matMax.y[1]=[6e+00, 6e+00] +matMax.y[3]=[6e+00, 6e+00] +matMax.y[2]=[9e+00, 9e+00] +time=[0e+00, 1e+00] +matMax1.y[1]=[4e+00, 4e+00] +matMax1.y[2]=[6e+00, 6e+00] +matMax2.y[2]=[6e+00, 6e+00] +matMax2.y[1]=[3e+00, 3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MatrixMin.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MatrixMin.txt new file mode 100644 index 0000000000..beba9ec7f0 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MatrixMin.txt @@ -0,0 +1,16 @@ +last-generated=2019-05-24 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +matMin.y[2]=[-9e+00, -9e+00] +matMin.y[3]=[-6e+00, -6e+00] +matMin.y[1]=[-6e+00, -6e+00] +time=[0e+00, 1e+00] +matMin1.y[2]=[-4e+00, -4e+00] +matMin1.y[1]=[-2e+00, -2e+00] +matMin1.y[3]=[-6e+00, -6e+00] +matMin2.y[1]=[-3e+00, -3e+00] +matMin2.y[2]=[-6e+00, -6e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Max.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Max.txt new file mode 100644 index 0000000000..d98f8b0265 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Max.txt @@ -0,0 +1,11 @@ +last-generated=2017-03-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +max1.u2=[-1e+00, -9.800000186264507e-01, -9.599999776482565e-01, -9.399999962747084e-01, -9.200000149011579e-01, -8.99999977648261e-01, -8.799999925494144e-01, -8.600000149011634e-01, -8.399999701977309e-01, -8.200000000000001e-01, -8.000000149011612e-01, -7.799999701976954e-01, -7.599999850988388e-01, -7.4e-01, -7.200000298023046e-01, -7e-01, -6.799999999999999e-01, -6.60000029802269e-01, -6.4e-01, -6.2e-01, -6.000000298022335e-01, -5.799999701976777e-01, -5.600000000000001e-01, -5.400000298023224e-01, -5.199999701976776e-01, -5e-01, -4.799999701978197e-01, -4.600000298021625e-01, -4.399999999999999e-01, -4.19999970197802e-01, -4.000000298023224e-01, -3.8e-01, -3.6e-01, -3.400000298023224e-01, -3.2e-01, -3e-01, -2.800000298023224e-01, -2.6e-01, -2.399999850988743e-01, -2.199999701977842e-01, -2.000000149011167e-01, -1.8e-01, -1.599999701977753e-01, -1.400000149011079e-01, -1.199999925494283e-01, -9.99999776483026e-02, -8.000001490113007e-02, -5.999999627471642e-02, -3.999997764829821e-02, -2.000001862641598e-02, 0e+00, 2.000001862613177e-02, 4.000003725226355e-02, 6.00000558784486e-02, 7.99999552972359e-02, 9.999997764865798e-02, 1.199999925493573e-01, 1.400000149008946e-01, 1.600000298018249e-01, 1.800000596036677e-01, 1.999999552972269e-01, 2.199999701982105e-01, 2.399999850990164e-01, 2.599999999998579e-01, 2.800000298018961e-01, 3.00000059603579e-01, 3.199999403965277e-01, 3.399999701981751e-01, 3.600000000002133e-01, 3.800000000000709e-01, 4.00000029801967e-01, 4.200000298016828e-01, 4.399999403962078e-01, 4.59999970198246e-01, 4.799999701981039e-01, 5e-01, 5.199999999997158e-01, 5.400000596040764e-01, 5.600000596037922e-01, 5.799999403959948e-01, 6.000000000003554e-01, 6.199999999999291e-01, 6.399999999997867e-01, 6.600000596036499e-01, 6.800000596038631e-01, 6.999999403960657e-01, 7.200000000004263e-01, 7.400000000001421e-01, 7.599999999998579e-01, 7.799999999995737e-01, 8.000000596039343e-01, 8.199999403961369e-01, 8.399999403963501e-01, 8.600000000002133e-01, 8.800000000000709e-01, 8.999999999996446e-01, 9.200000596040052e-01, 9.399999403962078e-01, 9.599999403959236e-01, 9.800000000002842e-01, 1e+00] +max1.u1=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +max1.y=[-1e+00, -9.800000186264507e-01, -9.599999776482565e-01, -9.399999962747084e-01, -9.200000149011579e-01, -8.99999977648261e-01, -8.799999925494144e-01, -8.600000149011634e-01, -8.399999701977309e-01, -8.200000000000001e-01, -8.000000149011612e-01, -7.799999701976954e-01, -7.599999850988388e-01, -7.4e-01, -7.200000298023046e-01, -7e-01, -6.799999999999999e-01, -6.60000029802269e-01, -6.4e-01, -6.2e-01, -6.000000298022335e-01, -5.799999701976777e-01, -5.600000000000001e-01, -5.400000298023224e-01, -5.199999701976776e-01, -5e-01, -4.799999701978197e-01, -4.600000298021625e-01, -4.399999999999999e-01, -4.19999970197802e-01, -4.000000298023224e-01, -3.8e-01, -3.6e-01, -3.400000298023224e-01, -3.2e-01, -3e-01, -2.800000298023224e-01, -2.6e-01, -2.399999850988743e-01, -2.199999701977842e-01, -2.000000149011167e-01, -1.8e-01, -1.599999701977753e-01, -1.400000149011079e-01, -1.199999925494283e-01, -9.99999776483026e-02, -8.000001490113007e-02, -5.999999627471642e-02, -3.999997764829821e-02, -2.000001862641598e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Min.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Min.txt new file mode 100644 index 0000000000..415d8c6e85 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Min.txt @@ -0,0 +1,11 @@ +last-generated=2017-03-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +min1.y=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, 2.000001862613177e-02, 4.000003725226355e-02, 6.00000558784486e-02, 7.99999552972359e-02, 9.999997764865798e-02, 1.199999925493573e-01, 1.400000149008946e-01, 1.600000298018249e-01, 1.800000596036677e-01, 1.999999552972269e-01, 2.199999701982105e-01, 2.399999850990164e-01, 2.599999999998579e-01, 2.800000298018961e-01, 3.00000059603579e-01, 3.199999403965277e-01, 3.399999701981751e-01, 3.600000000002133e-01, 3.800000000000709e-01, 4.00000029801967e-01, 4.200000298016828e-01, 4.399999403962078e-01, 4.59999970198246e-01, 4.799999701981039e-01, 5e-01, 5.199999999997158e-01, 5.400000596040764e-01, 5.600000596037922e-01, 5.799999403959948e-01, 6.000000000003554e-01, 6.199999999999291e-01, 6.399999999997867e-01, 6.600000596036499e-01, 6.800000596038631e-01, 6.999999403960657e-01, 7.200000000004263e-01, 7.400000000001421e-01, 7.599999999998579e-01, 7.799999999995737e-01, 8.000000596039343e-01, 8.199999403961369e-01, 8.399999403963501e-01, 8.600000000002133e-01, 8.800000000000709e-01, 8.999999999996446e-01, 9.200000596040052e-01, 9.399999403962078e-01, 9.599999403959236e-01, 9.800000000002842e-01, 1e+00] +min1.u2=[-1e+00, -9.800000186264507e-01, -9.599999776482565e-01, -9.399999962747084e-01, -9.200000149011579e-01, -8.99999977648261e-01, -8.799999925494144e-01, -8.600000149011634e-01, -8.399999701977309e-01, -8.200000000000001e-01, -8.000000149011612e-01, -7.799999701976954e-01, -7.599999850988388e-01, -7.4e-01, -7.200000298023046e-01, -7e-01, -6.799999999999999e-01, -6.60000029802269e-01, -6.4e-01, -6.2e-01, -6.000000298022335e-01, -5.799999701976777e-01, -5.600000000000001e-01, -5.400000298023224e-01, -5.199999701976776e-01, -5e-01, -4.799999701978197e-01, -4.600000298021625e-01, -4.399999999999999e-01, -4.19999970197802e-01, -4.000000298023224e-01, -3.8e-01, -3.6e-01, -3.400000298023224e-01, -3.2e-01, -3e-01, -2.800000298023224e-01, -2.6e-01, -2.399999850988743e-01, -2.199999701977842e-01, -2.000000149011167e-01, -1.8e-01, -1.599999701977753e-01, -1.400000149011079e-01, -1.199999925494283e-01, -9.99999776483026e-02, -8.000001490113007e-02, -5.999999627471642e-02, -3.999997764829821e-02, -2.000001862641598e-02, 0e+00, 2.000001862613177e-02, 4.000003725226355e-02, 6.00000558784486e-02, 7.99999552972359e-02, 9.999997764865798e-02, 1.199999925493573e-01, 1.400000149008946e-01, 1.600000298018249e-01, 1.800000596036677e-01, 1.999999552972269e-01, 2.199999701982105e-01, 2.399999850990164e-01, 2.599999999998579e-01, 2.800000298018961e-01, 3.00000059603579e-01, 3.199999403965277e-01, 3.399999701981751e-01, 3.600000000002133e-01, 3.800000000000709e-01, 4.00000029801967e-01, 4.200000298016828e-01, 4.399999403962078e-01, 4.59999970198246e-01, 4.799999701981039e-01, 5e-01, 5.199999999997158e-01, 5.400000596040764e-01, 5.600000596037922e-01, 5.799999403959948e-01, 6.000000000003554e-01, 6.199999999999291e-01, 6.399999999997867e-01, 6.600000596036499e-01, 6.800000596038631e-01, 6.999999403960657e-01, 7.200000000004263e-01, 7.400000000001421e-01, 7.599999999998579e-01, 7.799999999995737e-01, 8.000000596039343e-01, 8.199999403961369e-01, 8.399999403963501e-01, 8.600000000002133e-01, 8.800000000000709e-01, 8.999999999996446e-01, 9.200000596040052e-01, 9.399999403962078e-01, 9.599999403959236e-01, 9.800000000002842e-01, 1e+00] +min1.u1=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Modulo.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Modulo.txt new file mode 100644 index 0000000000..a9faa35745 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Modulo.txt @@ -0,0 +1,11 @@ +last-generated=2017-03-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +mod1.y=[1e+00, 1.120000007450586e+00, 1.240000014901171e+00, 1.360000022351709e+00, 1.480000029802289e+00, 1.600000014901145e+00, 4.000001117586838e-02, 1.299999925494161e-01, 2.200000149011346e-01, 3.099999701977308e-01, 3.999999925494416e-01, 4.900000149011523e-01, 5.800000074505406e-01, 6.700000596045738e-01, 7.599999850988478e-01, 8.499999701977664e-01, 9.400000298022692e-01, 1.029999955296543e+00, 1.119999940395462e+00, 1.210000059604609e+00, 1.299999925494238e+00, 1.390000044703386e+00, 1.480000029802305e+00, 1.570000014901223e+00, 1.660000014901081e+00, 1.75e+00, 1.840000119209148e+00, 1.929999850988548e+00, 2.019999970197767e+00, 2.109999970198051e+00, 2.199999940394822e+00, 2.289999940395533e+00, 2.380000178813401e+00, 2.469999910592447e+00, 3.999997764830499e-02, 1.000000372528362e-01, 1.599999105932459e-01, 2.199999701977486e-01, 2.800000298022514e-01, 3.400000894067541e-01, 3.999999701977666e-01, 4.60000029802269e-01, 5.200000596046447e-01, 5.799999403955683e-01, 6.4e-01, 7.000000596046448e-01, 7.59999940395604e-01, 8.199999999999998e-01, 8.800000596046447e-01, 9.399999403953552e-01, 1e+00, 1.059999999999432e+00, 1.120000119207016e+00, 1.180000119207584e+00, 1.239999880793269e+00, 1.299999880792132e+00, 1.359999999999858e+00, 1.419999999999573e+00, 1.4800001192073e+00, 1.540000119207726e+00, 1.599999880793552e+00, 1.659999880792416e+00, 1.720000000000284e+00, 1.779999999999716e+00, 1.840000119207584e+00, 1.900000119206448e+00, 1.959999880792274e+00, 2.019999880791705e+00, 2.079999880791989e+00, 2.140000119209289e+00, 2.200000119207158e+00, 2.26000011920801e+00, 2.319999761586537e+00, 2.380000000001137e+00, 2.440000000000568e+00, 2.5e+00, 2.559999999999432e+00, 2.619999999998863e+00, 2.680000238413463e+00, 2.73999988079199e+00, 2.799999880792842e+00, 2.859999880790711e+00, 2.920000119208011e+00, 2.980000119208295e+00, 3.040000119207726e+00, 3.099999761585684e+00, 3.160000000000852e+00, 3.220000000000284e+00, 3.279999999999716e+00, 3.339999999999148e+00, 3.400000238414316e+00, 3.459999880792274e+00, 3.519999880791705e+00, 3.579999880791989e+00, 3.640000119209289e+00, 3.700000119207158e+00, 3.76000011920801e+00, 3.819999761586537e+00, 3.880000000001137e+00, 3.940000000000568e+00, 4e+00] +mod1.u2=[1.5e+00, 1.529999972060327e+00, 1.559999944120655e+00, 1.59000003539023e+00, 1.620000007450599e+00, 1.649999973922997e+00, 1.679999951571254e+00, 1.710000037252895e+00, 1.740000014901188e+00, 1.769999970197838e+00, 1.799999947846002e+00, 1.830000044703457e+00, 1.860000022351782e+00, 1.890000000000071e+00, 1.919999955296543e+00, 1.950000029802234e+00, 1.980000029802162e+00, 2.009999985098812e+00, 2.039999940395249e+00, 2.069999940395391e+00, 2.099999895692183e+00, 2.130000134109767e+00, 2.160000089406843e+00, 2.190000044703421e+00, 2.220000044703563e+00, 2.25e+00, 2.280000000000142e+00, 2.309999910592873e+00, 2.339999910593157e+00, 2.369999910593157e+00, 2.400000059604467e+00, 2.430000059604609e+00, 2.460000059604751e+00, 2.489999970197482e+00, 2.519999970197624e+00, 2.549999970197766e+00, 2.579999880790497e+00, 2.609999880791208e+00, 2.640000119208792e+00, 2.670000119209503e+00, 2.700000029802234e+00, 2.730000029802376e+00, 2.760000029802518e+00, 2.789999940395249e+00, 2.819999940395391e+00, 2.849999940395533e+00, 2.880000089406843e+00, 2.910000089406843e+00, 2.940000089407127e+00, 2.969999999999858e+00, 3e+00, 3.029999999999716e+00, 3.059999999999432e+00, 3.089999999999148e+00, 3.119999821189263e+00, 3.150000059605e+00, 3.180000059604503e+00, 3.210000059604432e+00, 3.240000059604147e+00, 3.270000059603863e+00, 3.299999880791421e+00, 3.329999880791137e+00, 3.359999880791421e+00, 3.390000119208579e+00, 3.420000119208863e+00, 3.450000119208579e+00, 3.479999940396137e+00, 3.509999940395853e+00, 3.539999940395568e+00, 3.569999940395497e+00, 3.599999940395e+00, 3.630000178810737e+00, 3.660000000000852e+00, 3.690000000000568e+00, 3.720000000000284e+00, 3.75e+00, 3.779999999999716e+00, 3.809999999999432e+00, 3.839999999999148e+00, 3.869999821189263e+00, 3.900000059605e+00, 3.930000059604503e+00, 3.960000059604432e+00, 3.990000059604147e+00, 4.020000059603863e+00, 4.05000011921e+00, 4.079999880791137e+00, 4.110000119209432e+00, 4.139999880790568e+00, 4.170000119208863e+00, 4.19999988079e+00, 4.229999940396137e+00, 4.260000178814431e+00, 4.289999940395568e+00, 4.320000178814077e+00, 4.349999940395e+00, 4.380000178813295e+00, 4.409999761582274e+00, 4.440000000000568e+00, 4.469999761583979e+00, 4.5e+00] +mod1.u1=[-2e+00, -1.940000055879345e+00, -1.879999992549428e+00, -1.82000004842875e+00, -1.759999985098855e+00, -1.70000005215405e+00, -1.639999977648283e+00, -1.580000044703481e+00, -1.519999970197731e+00, -1.460000059604538e+00, -1.399999985098794e+00, -1.340000029802305e+00, -1.279999955296596e+00, -1.219999999999858e+00, -1.159999970197695e+00, -1.100000059604467e+00, -1.039999940395462e+00, -9.800000298022691e-01, -9.200000596044317e-01, -8.6e-01, -8.000000298022335e-01, -7.399999701976776e-01, -6.799999999999999e-01, -6.200000298023223e-01, -5.599999701976777e-01, -5e-01, -4.399999403954973e-01, -3.800000596044848e-01, -3.199999999999821e-01, -2.599999403954797e-01, -2.000000745056284e-01, -1.400000149011257e-01, -7.999995529662296e-02, -2.000007823094963e-02, 3.999997764830499e-02, 1.000000372528362e-01, 1.599999105932459e-01, 2.199999701977486e-01, 2.800000298022514e-01, 3.400000894067541e-01, 3.999999701977666e-01, 4.60000029802269e-01, 5.200000596046447e-01, 5.799999403955683e-01, 6.4e-01, 7.000000596046448e-01, 7.59999940395604e-01, 8.199999999999998e-01, 8.800000596046447e-01, 9.399999403953552e-01, 1e+00, 1.059999999999432e+00, 1.120000119207016e+00, 1.180000119207584e+00, 1.239999880793269e+00, 1.299999880792132e+00, 1.359999999999858e+00, 1.419999999999573e+00, 1.4800001192073e+00, 1.540000119207726e+00, 1.599999880793552e+00, 1.659999880792416e+00, 1.720000000000284e+00, 1.779999999999716e+00, 1.840000119207584e+00, 1.900000119206448e+00, 1.959999880792274e+00, 2.019999880791705e+00, 2.079999880791989e+00, 2.140000119209289e+00, 2.200000119207158e+00, 2.26000011920801e+00, 2.319999761586537e+00, 2.380000000001137e+00, 2.440000000000568e+00, 2.5e+00, 2.559999999999432e+00, 2.619999999998863e+00, 2.680000238413463e+00, 2.73999988079199e+00, 2.799999880792842e+00, 2.859999880790711e+00, 2.920000119208011e+00, 2.980000119208295e+00, 3.040000119207726e+00, 3.099999761585684e+00, 3.160000000000852e+00, 3.220000000000284e+00, 3.279999999999716e+00, 3.339999999999148e+00, 3.400000238414316e+00, 3.459999880792274e+00, 3.519999880791705e+00, 3.579999880791989e+00, 3.640000119209289e+00, 3.700000119207158e+00, 3.76000011920801e+00, 3.819999761586537e+00, 3.880000000001137e+00, 3.940000000000568e+00, 4e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MovingAverage.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MovingAverage.txt new file mode 100644 index 0000000000..42b814e474 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MovingAverage.txt @@ -0,0 +1,20 @@ +last-generated=2017-09-15 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "number of continuous time states": "9", + "linear": " " +} +movAve1.y=[0e+00, 3.389549851417542e-01, 5.967000126838684e-01, 7.179645895957947e-01, 6.900429725646973e-01, 5.443436503410339e-01, 3.428270518779755e-01, 1.549198031425475e-01, 3.377144038677216e-02, 4.830255929846317e-04, 4.143456369638443e-02, 1.185182109475136e-01, 1.775919497013092e-01, 1.534560471773148e-01, 5.578513815999012e-02, -6.861740350723267e-02, -1.601397693157196e-01, -1.749258190393448e-01, -1.058895289897919e-01, 1.388753578066826e-02, 1.270097196102142e-01, 1.792702227830887e-01, 1.45626425743103e-01, 4.220050200819969e-02, -8.144774287939072e-02, -1.660671085119247e-01, -1.711090207099915e-01, -9.415744990110361e-02, 2.791333012282888e-02, 1.366084516048431e-01, 1.798425167798996e-01, 1.368982791900635e-01, 2.83540915697813e-02, -9.377695620059967e-02, -1.709713339805603e-01, -1.662381142377853e-01, -8.184557408094406e-02, 4.176636412739754e-02, 1.453643590211868e-01, 1.793054938316345e-01, 1.273255795240402e-01, 1.433276198804379e-02, -1.055281385779381e-01, -1.74821212887764e-01, -1.603420525789261e-01, -6.902889907360077e-02, 5.536215379834175e-02, 1.532242596149445e-01, 1.776631772518158e-01, 1.169678941369057e-01, 2.230705140391365e-04, -1.166287064552307e-01, -1.775934398174286e-01, -1.534575521945953e-01, -5.57866729795925e-02, 6.861647218465877e-02, 1.601391136646274e-01, 1.749250739812851e-01, 1.058888733386993e-01, -1.388819981366396e-02, -1.270102709531784e-01, -1.792707592248917e-01, -1.45626962184906e-01, -4.220058396458626e-02, 8.144768327474594e-02, 1.660670638084412e-01, 1.711089611053467e-01, 9.415764361619949e-02, -2.791319787502289e-02, -1.366083472967148e-01, -1.7984239757061e-01, -1.368981301784515e-01, -2.835390157997608e-02, 9.377717226743698e-02, 1.709713488817215e-01, 1.66238084435463e-01, 8.184552192687988e-02, -4.176643863320351e-02, -1.453644186258316e-01, -1.793055087327957e-01, -1.273255348205566e-01, -1.433268282562494e-02, 1.055282205343246e-01, 1.748212575912476e-01, 1.603420376777649e-01, 6.90288245677948e-02, -5.536217615008354e-02, -1.532242894172668e-01, -1.776631325483322e-01, -1.169679388403893e-01, -2.230993122793734e-04, 1.166286468505859e-01, 1.775933355093002e-01, 1.534574180841446e-01, 5.578653514385223e-02, -6.86165913939476e-02, -1.601394712924957e-01, -1.749254167079926e-01, -1.058892011642456e-01, 1.38878608122468e-02, 1.270100176334381e-01] +sinInpNoDel.y=[0e+00, 6.49448037147522e-01, 9.876883625984192e-01, 8.526401519775391e-01, 3.0901700258255e-01, -3.826834261417389e-01, -8.910065293312073e-01, -9.723699092864988e-01, -5.877852439880371e-01, 7.845909893512726e-02, 7.071067690849304e-01, 9.969173073768616e-01, 8.0901700258255e-01, 2.334453612565994e-01, -4.53990489244462e-01, -9.238795042037964e-01, -9.510565400123596e-01, -5.224985480308533e-01, 1.564344614744186e-01, 7.60405957698822e-01, 1e+00, 7.60405957698822e-01, 1.564344614744186e-01, -5.224985480308533e-01, -9.510565400123596e-01, -9.238795042037964e-01, -4.539904892444611e-01, 2.334453612566016e-01, 8.090170025825513e-01, 9.969173073768616e-01, 7.071067690849304e-01, 7.845909893512726e-02, -5.877852439880371e-01, -9.72369909286499e-01, -8.910065293312073e-01, -3.826834261417389e-01, 3.0901700258255e-01, 8.526401519775391e-01, 9.876883625984192e-01, 6.49448037147522e-01, 1.102182140856871e-15, -6.49448037147522e-01, -9.876883625984192e-01, -8.526401519775391e-01, -3.0901700258255e-01, 3.826834261417389e-01, 8.910065293312073e-01, 9.72369909286499e-01, 5.877852439880371e-01, -7.845909893512726e-02, -7.071067690849304e-01, -9.969173073768616e-01, -8.0901700258255e-01, -2.334453612565994e-01, 4.539904892444649e-01, 9.238795042037978e-01, 9.51056540012358e-01, 5.224985480308533e-01, -1.564344614744186e-01, -7.60405957698822e-01, -1e+00, -7.60405957698822e-01, -1.564344614744186e-01, 5.224985480308533e-01, 9.510565400123596e-01, 9.238795042037964e-01, 4.539904892444611e-01, -2.334453612565994e-01, -8.0901700258255e-01, -9.969173073768616e-01, -7.071067690849304e-01, -7.845909893512726e-02, 5.877852439880371e-01, 9.72369909286499e-01, 8.910065293312073e-01, 3.826834261417389e-01, -3.0901700258255e-01, -8.526401519775391e-01, -9.876883625984192e-01, -6.49448037147522e-01, -2.204364281713743e-15, 6.49448037147522e-01, 9.876883625984192e-01, 8.526401519775391e-01, 3.0901700258255e-01, -3.826834261417389e-01, -8.910065293312073e-01, -9.72369909286499e-01, -5.877852439880371e-01, 7.845909893512726e-02, 7.071067690849304e-01, 9.969173073768616e-01, 8.0901700258255e-01, 2.334453612565994e-01, -4.539904892444611e-01, -9.238795042037964e-01, -9.510565400123596e-01, -5.224985480308533e-01, 1.564344614744186e-01, 7.60405957698822e-01, 1e+00] +movAve4.y=[0e+00, 3.389549851417542e-01, 5.967000126838684e-01, 7.179645895957947e-01, 6.900429725646973e-01, 5.443436503410339e-01, 3.428270518779755e-01, 1.549198031425475e-01, 3.377144038677216e-02, 4.830255929846317e-04, 4.143456369638443e-02, 1.185182109475136e-01, 1.871866881847382e-01, 2.146396785974503e-01, 1.91086396574974e-01, 1.304052621126175e-01, 6.109518557786942e-02, 1.226198859512806e-02, 9.666834957897663e-04, 2.610068395733833e-02, 7.073471695184708e-02, 1.111178696155548e-01, 1.278175860643387e-01, 1.139536648988724e-01, 7.71610289812088e-02, 3.493234887719154e-02, 5.929954349994659e-03, 1.447161193937098e-03, 2.082676999270925e-02, 5.261008813977242e-02, 8.050157129764557e-02, 9.113048017024994e-02, 7.997562736272812e-02, 5.287735536694527e-02, 2.271851897239685e-02, 3.076368942856789e-03, 1.922936644405127e-03, 1.825706288218498e-02, 4.305276647210121e-02, 6.385768949985504e-02, 7.07351490855217e-02, 6.074267253279686e-02, 3.895249217748642e-02, 1.570955663919449e-02, 1.573308371007442e-03, -5.161688386579044e-05, -2.652381408552174e-05, 1.11070066850516e-05, 4.338383587310091e-05, 5.479332685354166e-05, 1.508346159084795e-08, 5.686097665602574e-06, -3.118301174254157e-05, -5.31343393959105e-05, -4.964845356880675e-05, -2.239601417386416e-05, 1.556374263600469e-05, 4.604352216119878e-05, 5.443870759336278e-05, 3.672677848953754e-05, 1.394584046465752e-06, -3.46267297572922e-05, -5.407609569374472e-05, -4.763405377161689e-05, -1.838718708313536e-05, 1.964964758371934e-05, 4.824979259865358e-05, 5.367425183067098e-05, 3.335780638735741e-05, -2.975371899083257e-06, -3.792411007452756e-05, -5.474135105032474e-05, -4.536812411970459e-05, -1.429644180461764e-05, 2.358484380238224e-05, 5.012346446164884e-05, 5.260223406367004e-05, 2.983349259011447e-05, -7.28563964003115e-06, -4.092561357538216e-05, -5.502470230567269e-05, -4.278573032934219e-05, -1.008700746751856e-05, 2.74038320640102e-05, 5.172134478925727e-05, 5.121333742863499e-05, 2.612258322187699e-05, -1.152718778030248e-05, -4.369488669908606e-05, -3.926824138034135e-05, -3.994911457994021e-05, -5.825782409374369e-06, 3.104283314314671e-05, 5.300846169120632e-05, 4.953418465447612e-05, 2.228274570370559e-05, -1.567616345710121e-05, -4.61555719084572e-05, -5.454964411910623e-05, -3.683657268993556e-05, -6.57378507185058e-08] +time=[0e+00, 9e+02] +movAve2.y=[0e+00, 3.389549851417542e-01, 5.967000126838684e-01, 7.179645895957947e-01, 6.900429725646973e-01, 5.443436503410339e-01, 3.428270518779755e-01, 1.549198031425475e-01, 3.377144038677216e-02, 4.830255929846317e-04, 4.143456369638443e-02, 1.185182109475136e-01, 1.871866881847382e-01, 2.146396785974503e-01, 1.91086396574974e-01, 1.304052621126175e-01, 6.109518557786942e-02, 1.226198859512806e-02, 9.666834957897663e-04, 2.610068395733833e-02, 7.073471695184708e-02, 1.111178696155548e-01, 1.278175860643387e-01, 1.085061728954315e-01, 3.932303562760353e-02, -4.870355501770973e-02, -1.133919879794121e-01, -1.237445101141929e-01, -7.480045408010459e-02, 9.987063705921173e-03, 8.998884260654449e-02, 1.268690228462219e-01, 1.029550358653069e-01, 2.970620058476925e-02, -5.777739733457565e-02, -1.175748407840729e-01, -1.210317835211754e-01, -6.649170815944672e-02, 1.991044729948044e-02, 9.677179157733917e-02, 1.2726129591465e-01, 9.676873683929443e-02, 1.990580186247826e-02, -6.649571657180786e-02, -1.210332363843918e-01, -1.175731346011162e-01, -5.777328088879585e-02, 2.971081808209419e-02, 1.029578596353531e-01, 1.268686652183533e-01, 8.998555690050125e-02, 9.982417337596416e-03, -7.480420172214508e-02, -1.237455531954765e-01, -1.133895292878148e-01, -4.869861900806373e-02, 3.932791948318534e-02, 1.085090786218643e-01, 1.256938576698303e-01, 8.264757692813873e-02, -2.524623596400488e-06, -8.265150338411331e-02, -1.256949454545975e-01, -1.085069552063942e-01, -3.932381048798561e-02, 4.870275408029556e-02, 1.133914589881897e-01, 1.237442493438721e-01, 7.480016350746155e-02, -9.987335652112961e-03, -8.998911827802658e-02, -1.268692165613174e-01, -1.029552146792412e-01, -2.970636263489723e-02, 5.777736380696297e-02, 1.175748035311699e-01, 1.210317313671112e-01, 6.649164110422134e-02, -1.991038583219051e-02, -9.67717319726944e-02, -1.272612065076828e-01, -9.676863998174667e-02, -1.990568824112415e-02, 6.649582833051682e-02, 1.210333406925201e-01, 1.17573119699955e-01, 5.777325853705406e-02, -2.971085347235203e-02, -1.029578819870949e-01, -1.26868724822998e-01, -8.998557925224304e-02, -9.982426650822163e-03, 7.480418682098389e-02, 1.237455308437347e-01, 1.133894845843315e-01, 4.86985556781292e-02, -3.932813927531242e-02, -1.085092648863792e-01, -1.256940364837646e-01, -8.264773339033127e-02, 2.379947545705363e-06] +movAve3.y=[0e+00, 3.389549851417542e-01, 5.967000126838684e-01, 7.179645895957947e-01, 6.900429725646973e-01, 5.443436503410339e-01, 3.428270518779755e-01, 1.549198031425475e-01, 3.377144038677216e-02, 4.830255929846317e-04, 4.143456369638443e-02, 1.185182109475136e-01, 1.871866881847382e-01, 2.146396785974503e-01, 1.91086396574974e-01, 1.304052621126175e-01, 6.109518557786942e-02, 1.226198859512806e-02, 9.666834957897663e-04, 2.610068395733833e-02, 7.073471695184708e-02, 1.111178696155548e-01, 1.278175860643387e-01, 1.139536648988724e-01, 7.71610289812088e-02, 3.493234887719154e-02, 5.929954349994659e-03, 1.447161193937098e-03, 2.082676999270925e-02, 5.261008813977242e-02, 8.050157129764557e-02, 9.113048017024994e-02, 7.997562736272812e-02, 5.287735536694527e-02, 1.846384629607201e-02, -2.300418727099895e-02, -5.34491091966629e-02, -5.828188359737396e-02, -3.5186767578125e-02, 4.769257269799709e-03, 4.243981093168259e-02, 5.977372825145721e-02, 4.846476763486862e-02, 1.393204927444458e-02, -2.727676182985306e-02, -5.541480705142021e-02, -5.699878558516502e-02, -3.126960620284081e-02, 9.443630464375019e-03, 4.563158005475998e-02, 5.9953473508358e-02, 4.554638639092445e-02, 9.314027614891529e-03, -3.138148784637451e-02, -5.703935027122504e-02, -5.536462366580951e-02, -2.715996652841543e-02, 1.405951008200645e-02, 4.854177683591843e-02, 5.97633495926857e-02, 4.234698414802551e-02, 4.638391546905041e-03, -3.529291599988937e-02, -5.831233412027359e-02, -5.338923260569572e-02, -2.288270182907581e-02, 1.858889125287533e-02, 5.115284025669098e-02, 5.920493602752686e-02, 3.888664767146111e-02, -6.570218101842329e-05, -3.898662328720093e-02, -5.922567471861839e-02, -5.108454450964928e-02, -1.846436597406864e-02, 2.300366014242172e-02, 5.344855412840843e-02, 5.828148126602173e-02, 3.518656641244888e-02, -4.769404418766499e-03, -4.243997856974602e-02, -5.977388471364975e-02, -4.846488684415817e-02, -1.393215637654066e-02, 2.72766500711441e-02, 5.541476979851723e-02, 5.699874833226204e-02, 3.126956522464752e-02, -9.443662129342556e-03, -4.563158750534058e-02, -5.995343998074532e-02, -4.554635286331177e-02, -9.313995018601418e-03, 3.13815176486969e-02, 5.703938379883766e-02, 5.536465346813202e-02, 2.715984545648098e-02, -1.405963767319918e-02, -4.854191094636917e-02, -5.976347997784615e-02, -4.234709963202477e-02] +sinInp50sDel.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 3.0901700258255e-01, 8.526401519775393e-01, 9.876883625984192e-01, 6.49448037147522e-01, 1.224646852585168e-16, -6.49448037147522e-01, -9.876883625984192e-01, -8.526401519775391e-01, -3.09017002582549e-01, 3.826834261417389e-01, 8.910065293312073e-01, 9.72369909286499e-01, 5.877852439880371e-01, -7.845909893512726e-02, -7.071067690849304e-01, -9.969173073768616e-01, -8.0901700258255e-01, -2.334453612565994e-01, 4.539904892444611e-01, 9.238795042037964e-01, 9.510565400123596e-01, 5.224985480308513e-01, -1.564344614744208e-01, -7.60405957698822e-01, -1e+00, -7.60405957698822e-01, -1.564344614744186e-01, 5.224985480308533e-01, 9.510565400123596e-01, 9.238795042037964e-01, 4.539904892444611e-01, -2.334453612565994e-01, -8.0901700258255e-01, -9.969173073768616e-01, -7.071067690849304e-01, -7.845909893512726e-02, 5.877852439880371e-01, 9.72369909286499e-01, 8.910065293312073e-01, 3.826834261417389e-01, -3.0901700258255e-01, -8.526401519775391e-01, -9.876883625984192e-01, -6.49448037147522e-01, -1.224646799645609e-15, 6.49448037147522e-01, 9.876883625984192e-01, 8.526401519775391e-01, 3.090170025825457e-01, -3.826834261417429e-01, -8.910065293312091e-01, -9.72369909286499e-01, -5.877852439880371e-01, 7.845909893512726e-02, 7.071067690849304e-01, 9.969173073768616e-01, 8.0901700258255e-01, 2.334453612565994e-01, -4.539904892444611e-01, -9.238795042037964e-01, -9.510565400123596e-01, -5.224985480308533e-01, 1.564344614744186e-01, 7.60405957698822e-01, 1e+00, 7.60405957698822e-01, 1.564344614744186e-01, -5.224985480308533e-01, -9.510565400123596e-01, -9.238795042037964e-01, -4.539904892444611e-01, 2.334453612565994e-01, 8.0901700258255e-01, 9.969173073768616e-01, 7.071067690849304e-01, 7.845909893512726e-02, -5.877852439880371e-01, -9.72369909286499e-01, -8.910065293312073e-01, -3.826834261417389e-01, 3.0901700258255e-01, 8.526401519775391e-01, 9.876883625984192e-01, 6.49448037147522e-01, 5.879542407544744e-15, -6.49448037147522e-01, -9.876883625984192e-01, -8.526401519775391e-01, -3.0901700258255e-01, 3.826834261417389e-01, 8.910065293312073e-01, 9.72369909286499e-01, 5.877852439880371e-01, -7.845909893512726e-02, -7.071067690849304e-01] +movAve7.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.154010277241468e-02, 9.650379419326791e-02, 2.045025527477264e-01, 2.767183482646942e-01, 2.829421162605286e-01, 2.264058738946915e-01, 1.36335164308548e-01, 5.196370929479599e-02, 4.945940803736421e-03, 7.179423701018095e-03, 4.827805608510971e-02, 1.026454046368599e-01, 1.42179936170578e-01, 1.486875265836716e-01, 1.20753213763237e-01, 7.265282422304153e-02, 2.650756761431694e-02, 1.759030041284859e-03, 6.938789505511522e-03, 3.929964825510979e-02, 8.333466947078705e-02, 1.17942787706852e-01, 1.256940960884094e-01, 8.264781534671783e-02, -2.284115907968953e-06, -8.265126496553421e-02, -1.256947219371796e-01, -1.085067391395569e-01, -3.932375088334084e-02, 4.870285093784332e-02, 1.133915483951569e-01, 1.237443387508392e-01, 7.48002752661705e-02, -9.987222030758858e-03, -8.998899906873703e-02, -1.268691569566727e-01, -1.029551699757576e-01, -2.97063309699297e-02, 5.777739360928535e-02, 1.175748705863953e-01, 1.210318729281425e-01, 6.649181246757507e-02, -1.991033367812634e-02, -9.677165746688843e-02, -1.272611618041992e-01, -9.676861017942429e-02, -1.990567333996296e-02, 6.649584323167801e-02, 1.210333704948427e-01, 1.175731644034383e-01, 5.777350440621324e-02, -2.971065975725651e-02, -1.029576882719994e-01, -1.268685460090637e-01, -8.99854302406311e-02, -9.98228695243597e-03, 7.480432838201523e-02, 1.237456798553467e-01, 1.133896633982658e-01, 4.869874939322472e-02, -3.932794183492661e-02, -1.085090339183807e-01, -1.256938725709915e-01, -8.264758437871933e-02, 2.518237351978314e-06, 8.265148103237152e-02, 1.256949007511139e-01, 1.0850690305233e-01, 3.932373970746994e-02, -4.870282858610153e-02, -1.133915260434151e-01, -1.237442940473557e-01, -7.480032742023468e-02, 9.987172670662403e-03, 8.998894691467285e-02, 1.268690973520279e-01, 1.029550805687904e-01, 2.970622479915619e-02, -5.777750164270401e-02, -1.175749376416206e-01, -1.21031865477562e-01, -6.649176776409149e-02, 1.991038955748081e-02, 9.67717319726944e-02, 1.272612065076828e-01, 9.676863998174667e-02, 1.990568824112415e-02, -6.649582833051682e-02, -1.210333406925201e-01, -1.17573119699955e-01, -5.777325853705406e-02, 2.971085347235203e-02, 1.029578819870949e-01, 1.26868724822998e-01, 8.998557925224304e-02] +movAve6.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.154010277241468e-02, 9.650379419326791e-02, 2.045025527477264e-01, 2.767183482646942e-01, 2.829421162605286e-01, 2.264058738946915e-01, 1.472419798374176e-01, 6.079754233360291e-02, 6.231885403394665e-03, 9.692221879959106e-03, 6.952039897441864e-02, 1.532245576381683e-01, 1.776634305715561e-01, 1.169682368636131e-01, 2.233896520920098e-04, -1.166283786296844e-01, -1.775930970907211e-01, -1.534575521945953e-01, -5.578670650720596e-02, 6.861639022827148e-02, 1.60139262676239e-01, 1.749252229928969e-01, 1.058890447020527e-01, -1.388798281550407e-02, -1.270101219415665e-01, -1.792706102132797e-01, -1.456268280744553e-01, -4.22004833817482e-02, 8.144780248403549e-02, 1.660672873258591e-01, 1.711092293262482e-01, 9.415767341852188e-02, -2.791311964392662e-02, -1.366082727909088e-01, -1.798423826694489e-01, -1.368981599807739e-01, -2.835397608578205e-02, 9.377709031105042e-02, 1.709712892770767e-01, 1.662381291389465e-01, 8.184558153152466e-02, -4.176635295152664e-02, -1.453643590211868e-01, -1.793054342269897e-01, -1.273254901170731e-01, -1.433264836668968e-02, 1.055282801389694e-01, 1.748213618993759e-01, 1.603421717882152e-01, 6.902897357940598e-02, -5.536172911524847e-02, -1.532239466905594e-01, -1.776628494262695e-01, -1.169676631689072e-01, -2.228574303444475e-04, 1.16628885269165e-01, 1.775935888290405e-01, 1.534576714038849e-01, 5.578678846359253e-02, -6.861633807420731e-02, -1.601392179727554e-01, -1.749254167079926e-01, -1.058892011642456e-01, 1.38878608122468e-02, 1.270100176334381e-01, 1.792705059051514e-01, 1.456266939640045e-01, 4.220030829310417e-02, -8.144795894622803e-02, -1.660673320293427e-01, -1.711092293262482e-01, -9.415761381387711e-02, 2.791319601237774e-02, 1.366083472967148e-01, 1.7984239757061e-01, 1.368981152772903e-01, 2.835390157997608e-02, -9.377717226743698e-02, -1.709713488817215e-01, -1.66238084435463e-01, -8.184552192687988e-02, 4.176643863320351e-02, 1.453644186258316e-01, 1.793055087327957e-01, 1.273255348205566e-01, 1.433268282562494e-02, -1.055282205343246e-01, -1.748212575912476e-01, -1.603420376777649e-01, -6.90288245677948e-02, 5.536217615008354e-02, 1.532242894172668e-01, 1.776631325483322e-01, 1.169679388403893e-01, 2.231020189356059e-04] +sinInp100sDel.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5.877852439880371e-01, 9.72369909286499e-01, 8.910065293312067e-01, 3.826834261417389e-01, -3.0901700258255e-01, -8.526401519775391e-01, -9.876883625984192e-01, -6.49448037147522e-01, -2.449293705170336e-16, 6.49448037147522e-01, 9.876883625984192e-01, 8.526401519775391e-01, 3.0901700258255e-01, -3.826834261417389e-01, -8.910065293312073e-01, -9.723699092864984e-01, -5.877852439880352e-01, 7.845909893512726e-02, 7.071067690849304e-01, 9.969173073768616e-01, 8.0901700258255e-01, 2.334453612565994e-01, -4.539904892444611e-01, -9.238795042037964e-01, -9.510565400123596e-01, -5.224985480308533e-01, 1.564344614744186e-01, 7.60405957698822e-01, 1e+00, 7.60405957698822e-01, 1.564344614744186e-01, -5.224985480308533e-01, -9.510565400123596e-01, -9.238795042037964e-01, -4.539904892444611e-01, 2.334453612565994e-01, 8.0901700258255e-01, 9.969173073768616e-01, 7.071067690849304e-01, 7.845909893512726e-02, -5.877852439880371e-01, -9.72369909286499e-01, -8.910065293312049e-01, -3.826834261417347e-01, 3.090170025825542e-01, 8.526401519775391e-01, 9.876883625984192e-01, 6.49448037147522e-01, 4.899825137234847e-15, -6.49448037147522e-01, -9.876883625984192e-01, -8.526401519775391e-01, -3.0901700258255e-01, 3.826834261417389e-01, 8.910065293312073e-01, 9.72369909286499e-01, 5.877852439880371e-01, -7.845909893512726e-02, -7.071067690849304e-01, -9.969173073768616e-01, -8.0901700258255e-01, -2.334453612565994e-01, 4.539904892444611e-01, 9.238795042037964e-01, 9.510565400123596e-01, 5.224985480308533e-01, -1.564344614744186e-01, -7.60405957698822e-01, -1e+00, -7.60405957698822e-01, -1.564344614744186e-01, 5.224985480308533e-01, 9.510565400123596e-01, 9.238795042037964e-01, 4.539904892444611e-01, -2.334453612565994e-01, -8.0901700258255e-01, -9.969173073768616e-01, -7.071067690849304e-01, -7.845909893512726e-02, 5.877852439880371e-01, 9.72369909286499e-01, 8.910065293312073e-01, 3.826834261417389e-01, -3.0901700258255e-01, -8.526401519775391e-01, -9.876883625984192e-01, -6.49448037147522e-01, -2.449293599291217e-15] +movAve8.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 2.431668154895306e-02, 9.760077297687531e-02, 1.851278245449067e-01, 2.449559271335602e-01, 2.484161555767059e-01, 1.938504129648209e-01, 1.074059531092644e-01, 3.050593286752701e-02, -7.859007666866091e-08, 3.050603531301022e-02, 1.074061095714569e-01, 1.748212426900864e-01, 1.603420525789261e-01, 6.902888417243958e-02, -5.536208301782608e-02, -1.532241702079775e-01, -1.77663043141365e-01, -1.169678792357445e-01, -2.230770041933283e-04, 1.166286468505859e-01, 1.775933355093002e-01, 1.53457447886467e-01, 5.578674748539925e-02, -6.861650198698044e-02, -1.60139411687851e-01, -1.749254167079926e-01, -1.058892533183098e-01, 1.388778164982796e-02, 1.270099580287933e-01, 1.79270476102829e-01, 1.456267237663269e-01, 4.220037907361984e-02, -8.144787698984146e-02, -1.660673320293427e-01, -1.711092889308929e-01, -9.415771812200546e-02, 2.791306935250759e-02, 1.3660828769207e-01, 1.798423677682877e-01, 1.368981301784515e-01, 2.835391089320183e-02, -9.377718716859818e-02, -1.709713935852053e-01, -1.662381738424298e-01, -8.184581249952243e-02, 4.176630824804306e-02, 1.453643292188644e-01, 1.793054640293121e-01, 1.273254454135895e-01, 1.43326111137867e-02, -1.055282950401306e-01, -1.748213320970535e-01, -1.603421121835709e-01, -6.902890652418137e-02, 5.536209419369698e-02, 1.532242596149445e-01, 1.776631325483322e-01, 1.169679388403893e-01, 2.230985701316968e-04, -1.166286468505859e-01, -1.775933355093002e-01, -1.534574180841446e-01, -5.578653514385223e-02, 6.86165913939476e-02, 1.601394712924957e-01, 1.749254167079926e-01, 1.058892011642456e-01, -1.38878608122468e-02, -1.270100176334381e-01, -1.792704910039902e-01, -1.456266939640045e-01, -4.220030829310417e-02, 8.144795894622803e-02, 1.660673320293427e-01, 1.711092293262482e-01, 9.415761381387711e-02, -2.791319787502289e-02, -1.366083472967148e-01, -1.7984239757061e-01, -1.368981152772903e-01, -2.835390157997608e-02, 9.377717226743698e-02, 1.709713488817215e-01, 1.66238084435463e-01, 8.184552192687988e-02, -4.176643863320351e-02, -1.453644186258316e-01, -1.793055087327957e-01, -1.273255348205566e-01] +movAve9.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 2.251544594764709e-02, 8.341946452856064e-02, 1.469268500804902e-01, 1.81448832154274e-01, 1.725112199783325e-01, 1.266996115446091e-01, 6.629997491836548e-02, 1.783972606062889e-02, -4.366115291531969e-08, 1.614075899124146e-02, 5.424550920724869e-02, 9.692526608705521e-02, 1.24208115041256e-01, 1.224779635667801e-01, 9.256388992071152e-02, 4.880036413669572e-02, 1.215833984315388e-02, 1.96241308003664e-04, 1.864616200327873e-02, 5.866712331771851e-02, 1.010815501213074e-01, 1.255649626255035e-01, 1.133895814418793e-01, 4.869861528277397e-02, -3.932808339595795e-02, -1.085092127323151e-01, -1.256940066814423e-01, -8.264772593975067e-02, 2.376630618527997e-06, 8.265135437250137e-02, 1.256947964429855e-01, 1.085068136453629e-01, 3.932366520166397e-02, -4.870283976197243e-02, -1.133916303515434e-01, -1.23744435608387e-01, -7.480039447546005e-02, 9.987125173211098e-03, 8.998889476060867e-02, 1.268690526485443e-01, 1.029550731182098e-01, 2.970622852444649e-02, -5.77774979174142e-02, -1.175749450922014e-01, -1.210319921374319e-01, -6.649186462163925e-02, 1.991029642522335e-02, 9.677164256572723e-02, 1.272611320018768e-01, 9.67685878276825e-02, 1.990565285086632e-02, -6.64958655834198e-02, -1.210333853960037e-01, -1.175731867551804e-01, -5.777334794402122e-02, 2.971069142222404e-02, 1.029578149318695e-01, 1.268686652183533e-01, 8.998555690050125e-02, 9.982380084693432e-03, -7.480422407388687e-02, -1.237455680966377e-01, -1.133895292878151e-01, -4.869860038161278e-02, 3.932809829711914e-02, 1.085092201828957e-01, 1.256940215826035e-01, 8.264773339033127e-02, -2.380326577622327e-06, -8.265135437250137e-02, -1.256947815418243e-01, -1.085067763924599e-01, -3.932361304759979e-02, 4.870295524597168e-02, 1.133916452527046e-01, 1.237444132566452e-01, 7.480033487081528e-02, -9.987172670662403e-03, -8.998894691467285e-02, -1.268690973520279e-01, -1.029550805687904e-01, -2.970622479915619e-02, 5.777750164270401e-02, 1.175749376416206e-01, 1.21031865477562e-01, 6.649176776409149e-02, -1.991038955748081e-02, -9.67717319726944e-02, -1.272612065076828e-01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MovingAverage_nonZeroStart.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MovingAverage_nonZeroStart.txt new file mode 100644 index 0000000000..68dd68242d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MovingAverage_nonZeroStart.txt @@ -0,0 +1,20 @@ +last-generated=2017-10-24 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "number of continuous time states": "9", + "linear": " " +} +movAve1.y=[0e+00, 9.353725910186768e-01, 7.567793726921082e-01, 5.045299530029297e-01, 2.338647693395615e-01, -2.310188307319549e-07, -1.559118181467056e-01, -2.162324488162994e-01, -1.892037689685822e-01, -1.03941798210144e-01, 3.116154445592656e-08, 8.50435346364975e-02, 1.261364668607712e-01, 8.182483166456223e-02, -2.796485461294651e-02, -1.270727664232254e-01, -1.776431202888489e-01, -1.60359799861908e-01, -8.182444423437119e-02, 2.796507067978382e-02, 1.270729303359985e-01, 1.776432991027832e-01, 1.603600382804871e-01, 8.182474225759506e-02, -2.796476148068905e-02, -1.273238658905029e-01, -1.776432693004608e-01, -1.60359725356102e-01, -8.182428032159805e-02, 2.796526625752449e-02, 1.270730793476105e-01, 1.776434332132339e-01, 1.603601574897766e-01, 8.182486891746521e-02, -2.796462923288345e-02, -1.270724833011627e-01, -1.776428669691086e-01, -1.603595912456512e-01, -8.182430267333984e-02, 2.79652401804924e-02, 1.270729303359985e-01, 1.776432245969772e-01, 1.603598296642303e-01, 8.18244069814682e-02, -2.796521224081516e-02, -1.270731389522552e-01, -1.776435077190399e-01, -1.603601574897766e-01, -8.182476460933685e-02, 2.796478196978569e-02, 1.273239105939865e-01, 1.776430755853653e-01, 1.60359799861908e-01, 8.182451874017715e-02, -2.79649943113327e-02, -1.270727515220642e-01, -1.776429861783981e-01, -1.603596210479736e-01, -8.182430267333984e-02, 2.796515822410583e-02, 1.270729005336761e-01, 1.77643209695816e-01, 1.603599041700363e-01, 8.182483166456223e-02, -2.796485461294651e-02, -1.270727664232254e-01, -1.776431202888489e-01, -1.60359799861908e-01, -8.182444423437119e-02, 2.796507067978382e-02, 1.270729303359985e-01, 1.776432991027832e-01, 1.603600382804871e-01, 8.182474225759506e-02, -2.796476148068905e-02, -1.273238658905029e-01, -1.776431798934937e-01, -1.603597402572632e-01, -8.182443678379059e-02, 2.796502783894539e-02, 1.270727962255478e-01, 1.776431649923325e-01, 1.603598743677139e-01, 8.182458579540253e-02, -2.796491421759129e-02, -1.270727664232254e-01, -1.776431500911713e-01, -1.603598743677139e-01, -8.182458579540253e-02, 2.796491421759129e-02, 1.270727664232254e-01, 1.776431500911713e-01, 1.603598743677139e-01, 8.182458579540253e-02, -2.796491421759129e-02, -1.270727664232254e-01, -1.776431500911713e-01, -1.603598743677139e-01, -8.182458579540253e-02, 2.796491421759129e-02, 1.270727664232254e-01] +sinInpNoDel.y=[1e+00, 8.0901700258255e-01, 3.0901700258255e-01, -3.0901700258255e-01, -8.0901700258255e-01, -1e+00, -8.0901700258255e-01, -3.0901700258255e-01, 3.0901700258255e-01, 8.0901700258255e-01, 1e+00, 8.0901700258255e-01, 3.0901700258255e-01, -3.0901700258255e-01, -8.0901700258255e-01, -1e+00, -8.0901700258255e-01, -3.0901700258255e-01, 3.0901700258255e-01, 8.0901700258255e-01, 1e+00, 8.0901700258255e-01, 3.0901700258255e-01, -3.0901700258255e-01, -8.0901700258255e-01, -1e+00, -8.0901700258255e-01, -3.0901700258255e-01, 3.0901700258255e-01, 8.0901700258255e-01, 1e+00, 8.0901700258255e-01, 3.0901700258255e-01, -3.0901700258255e-01, -8.0901700258255e-01, -1e+00, -8.0901700258255e-01, -3.0901700258255e-01, 3.0901700258255e-01, 8.0901700258255e-01, 1e+00, 8.0901700258255e-01, 3.0901700258255e-01, -3.0901700258255e-01, -8.0901700258255e-01, -1e+00, -8.0901700258255e-01, -3.0901700258255e-01, 3.0901700258255e-01, 8.0901700258255e-01, 1e+00, 8.0901700258255e-01, 3.0901700258255e-01, -3.0901700258255e-01, -8.0901700258255e-01, -1e+00, -8.0901700258255e-01, -3.0901700258255e-01, 3.0901700258255e-01, 8.0901700258255e-01, 1e+00, 8.0901700258255e-01, 3.0901700258255e-01, -3.0901700258255e-01, -8.0901700258255e-01, -1e+00, -8.0901700258255e-01, -3.0901700258255e-01, 3.0901700258255e-01, 8.0901700258255e-01, 1e+00, 8.0901700258255e-01, 3.0901700258255e-01, -3.0901700258255e-01, -8.0901700258255e-01, -1e+00, -8.0901700258255e-01, -3.0901700258255e-01, 3.0901700258255e-01, 8.0901700258255e-01, 1e+00, 8.0901700258255e-01, 3.0901700258255e-01, -3.0901700258255e-01, -8.0901700258255e-01, -1e+00, -8.0901700258255e-01, -3.0901700258255e-01, 3.0901700258255e-01, 8.0901700258255e-01, 1e+00, 8.0901700258255e-01, 3.0901700258255e-01, -3.0901700258255e-01, -8.0901700258255e-01, -1e+00, -8.0901700258255e-01, -3.0901700258255e-01, 3.0901700258255e-01, 8.0901700258255e-01, 1e+00] +movAve4.y=[0e+00, 9.353725910186768e-01, 7.567793726921082e-01, 5.045299530029297e-01, 2.338647693395615e-01, -2.310188307319549e-07, -1.559118181467056e-01, -2.162324488162994e-01, -1.892037689685822e-01, -1.03941798210144e-01, 3.116154445592656e-08, 8.50435346364975e-02, 1.261364668607712e-01, 1.164339482784271e-01, 6.682006269693375e-02, -6.769826654817734e-08, -5.846767500042915e-02, -8.903776854276657e-02, -8.409120142459869e-02, -4.923585057258606e-02, 1.104353088976495e-07, 4.45469468832016e-02, 6.88021257519722e-02, 6.581072509288788e-02, 3.897856175899506e-02, 3.547783222757062e-08, -3.598019108176231e-02, -5.606092140078545e-02, -5.405868217349052e-02, -3.225794062018394e-02, 1.883551874470868e-07, 3.017713129520416e-02, 4.730165004730225e-02, 4.586826264858246e-02, 2.751442603766918e-02, 1.277221883810853e-07, -2.59855967015028e-02, -4.09092865884304e-02, -3.983272612094879e-02, -2.398668602108955e-02, 1.386083710031016e-07, 2.281687781214714e-02, 3.603937104344368e-02, 3.520120307803154e-02, 2.126107737421989e-02, -4.953704113574986e-09, -2.033666893839836e-02, -3.220527991652489e-02, -3.153429925441742e-02, -1.909148879349232e-02, 8.822250663342857e-08, 8.822294716992474e-08, 8.822324559787376e-08, 8.822373587236143e-08, 8.822419772513967e-08, 8.822443220424248e-08, 8.822430430655004e-08, 8.822383534834444e-08, 8.822321007073697e-08, 8.822274821795872e-08, 8.822274821795872e-08, 8.822334507385676e-08, 8.822302532962567e-08, 8.82239419297548e-08, 8.822436825539626e-08, 8.822436825539626e-08, 8.822438957167833e-08, 8.822458141821699e-08, 8.822472352676414e-08, 8.822499353300373e-08, 8.822508590355937e-08, 8.822509300898673e-08, 8.822508590355937e-08, 8.822509300898673e-08, 8.822507169270466e-08, 8.8130697406541e-08, 1.105350975194597e-07, 8.234263049189394e-08, 4.855630919564646e-08, 2.850643987528656e-08, 1.920682102252158e-08, 1.950479422418994e-08, 1.887384470933284e-08, 1.806473903798178e-08, 1.719193321036983e-08, 1.64713984673881e-08, 1.644577629633659e-08, 1.706795060840705e-08, 2.310959068552165e-08, 1.859148390792598e-08, 2.133713650209756e-08, 2.045716662735231e-08, 3.335275167160034e-08, 6.44280078176962e-08, 9.393030353521681e-08, 1.10341574099948e-07, 1.073056239420112e-07, 8.610344792714386e-08, 5.975112316036757e-08, 4.987021995361829e-08, 4.390302521528611e-08] +time=[1e+02, 9e+02] +movAve2.y=[0e+00, 9.353725910186768e-01, 7.567793726921082e-01, 5.045299530029297e-01, 2.338647693395615e-01, -2.310188307319549e-07, -1.559118181467056e-01, -2.162324488162994e-01, -1.892037689685822e-01, -1.03941798210144e-01, 3.116154445592656e-08, 8.50435346364975e-02, 1.261364668607712e-01, 1.164339482784271e-01, 6.682006269693375e-02, -6.769826654817734e-08, -5.846767500042915e-02, -8.903776854276657e-02, -8.409120142459869e-02, -4.923585057258606e-02, 1.104353088976495e-07, 4.45469468832016e-02, 6.88021257519722e-02, 6.581072509288788e-02, 3.897856175899506e-02, 3.547783222757062e-08, -7.483915984630585e-02, -1.21092215180397e-01, -1.210921108722687e-01, -7.483890652656555e-02, 2.722320857628802e-07, 7.483940571546555e-02, 1.210925206542015e-01, 1.210924834012985e-01, 7.483932375907898e-02, 1.663469220147817e-07, -7.483897358179092e-02, -1.210920810699463e-01, -1.21092177927494e-01, -7.483892142772675e-02, 2.623933994527761e-07, 7.483939826488495e-02, 1.210924461483955e-01, 1.21092326939106e-01, 7.483909279108047e-02, -9.726549166089171e-08, -7.483922690153122e-02, -1.210922971367836e-01, -1.210922077298164e-01, -7.48390257358551e-02, 1.409674439400987e-07, 7.483933866024017e-02, 1.210923865437508e-01, 1.21092289686203e-01, 7.483907788991928e-02, -9.578322135439521e-08, -7.483923435211182e-02, -1.210923418402672e-01, -1.210923120379448e-01, -7.483914494514465e-02, 1.009856376299467e-08, 7.483914494514465e-02, 1.210922598838806e-01, 1.210923567414284e-01, 7.483909279108047e-02, -8.594464873112884e-08, -7.483921945095062e-02, -1.210922747850418e-01, -1.210921481251717e-01, -7.483892142772675e-02, 2.737156705734378e-07, 7.483940571546555e-02, 1.210924759507179e-01, 1.210923865437508e-01, 7.483920454978943e-02, 3.529395442569694e-08, -7.483911514282227e-02, -1.210922226309776e-01, -1.210921928286552e-01, -7.48390257358551e-02, 1.34196866952152e-07, 7.48392716050148e-02, 1.210923790931702e-01, 1.210923492908478e-01, 7.483918219804764e-02, 2.284423494813836e-08, -7.483911514282227e-02, -1.210922226309776e-01, -1.210923045873642e-01, -7.483905553817749e-02, 1.28618921735324e-07, 7.483925670385361e-02, 1.210923418402672e-01, 1.210922822356224e-01, 7.483910769224167e-02, -5.303251171540069e-08, -7.483918964862823e-02, -1.210922971367836e-01, -1.210922673344612e-01, -7.483910769224167e-02, 5.25120924521616e-08] +movAve3.y=[0e+00, 9.353725910186768e-01, 7.567793726921082e-01, 5.045299530029297e-01, 2.338647693395615e-01, -2.310188307319549e-07, -1.559118181467056e-01, -2.162324488162994e-01, -1.892037689685822e-01, -1.03941798210144e-01, 3.116154445592656e-08, 8.50435346364975e-02, 1.261364668607712e-01, 1.164339482784271e-01, 6.682006269693375e-02, -6.769826654817734e-08, -5.846767500042915e-02, -8.903776854276657e-02, -8.409120142459869e-02, -4.923585057258606e-02, 1.104353088976495e-07, 4.45469468832016e-02, 6.88021257519722e-02, 6.581072509288788e-02, 3.897856175899506e-02, 3.547783222757062e-08, -3.598019108176231e-02, -5.606092140078545e-02, -5.405868217349052e-02, -3.225794062018394e-02, 1.883551874470868e-07, 3.017713129520416e-02, 4.730165004730225e-02, 4.586826264858246e-02, 2.751442603766918e-02, 1.277221883810853e-07, -2.59855967015028e-02, -4.09092865884304e-02, -5.345317348837852e-02, -5.921423062682152e-02, -4.235741496086121e-02, -9.321445599198341e-03, 2.727503515779972e-02, 5.345340073108673e-02, 5.921442061662674e-02, 4.235757887363434e-02, 9.321615099906921e-03, -2.727485448122025e-02, -5.3453229367733e-02, -5.92142716050148e-02, -4.244119301438332e-02, -9.321532212197781e-03, 2.727501839399338e-02, 5.345343053340912e-02, 5.921447649598122e-02, 4.235762730240822e-02, 9.321657009422779e-03, -2.727484330534935e-02, -5.345325171947479e-02, -5.921430885791779e-02, -4.235748946666718e-02, -9.32152196764946e-03, 2.72749736905098e-02, 5.34534677863121e-02, 5.921447649598122e-02, 4.235758632421494e-02, 9.321593679487705e-03, -2.727490477263927e-02, -5.345329642295837e-02, -5.921434983611107e-02, -4.235753044486046e-02, -9.321565739810467e-03, 2.727492898702621e-02, 5.345333740115166e-02, 5.921439826488495e-02, 4.244132712483406e-02, 9.321614168584347e-03, -2.727488055825233e-02, -5.345328897237778e-02, -5.921434611082077e-02, -4.235749319195747e-02, -9.321482852101326e-03, 2.727504633367062e-02, 5.34534640610218e-02, 5.92145062983036e-02, 4.235764965415001e-02, 9.321662597358227e-03, -2.72748451679945e-02, -5.345325917005539e-02, -5.921432375907898e-02, -4.235750436782837e-02, -9.321535937488079e-03, 2.727496065199375e-02, 5.345337092876434e-02, 5.921442806720734e-02, 4.235760867595673e-02, 9.321640245616436e-03, -2.727485634386539e-02, -5.345326662063599e-02, -5.921432375907898e-02, -4.244125261902809e-02] +sinInp50sDel.y=[-7.071067690849304e-01, -9.876883625984192e-01, -8.910065293312073e-01, -4.539904892444611e-01, 1.564344614744186e-01, 7.071067690849304e-01, 9.876883625984192e-01, 8.910065293312073e-01, 4.539904892444611e-01, -1.564344614744186e-01, -7.071067690849304e-01, -9.876883625984192e-01, -8.910065293312073e-01, -4.539904892444611e-01, 1.564344614744186e-01, 7.071067690849304e-01, 9.876883625984192e-01, 8.910065293312073e-01, 4.539904892444611e-01, -1.564344614744186e-01, -7.071067690849304e-01, -9.876883625984192e-01, -8.910065293312073e-01, -4.539904892444611e-01, 1.564344614744186e-01, 7.071067690849304e-01, 9.876883625984192e-01, 8.910065293312073e-01, 4.539904892444611e-01, -1.564344614744186e-01, -7.071067690849304e-01, -9.876883625984192e-01, -8.910065293312073e-01, -4.539904892444611e-01, 1.564344614744186e-01, 7.071067690849304e-01, 9.876883625984192e-01, 8.910065293312073e-01, 4.539904892444611e-01, -1.564344614744186e-01, -7.071067690849304e-01, -9.876883625984192e-01, -8.910065293312073e-01, -4.539904892444611e-01, 1.564344614744186e-01, 7.071067690849304e-01, 9.876883625984192e-01, 8.910065293312073e-01, 4.539904892444611e-01, -1.564344614744186e-01, -7.071067690849304e-01, -9.876883625984192e-01, -8.910065293312073e-01, -4.539904892444611e-01, 1.564344614744186e-01, 7.071067690849304e-01, 9.876883625984192e-01, 8.910065293312073e-01, 4.539904892444611e-01, -1.564344614744186e-01, -7.071067690849304e-01, -9.876883625984192e-01, -8.910065293312073e-01, -4.539904892444611e-01, 1.564344614744186e-01, 7.071067690849304e-01, 9.876883625984192e-01, 8.910065293312073e-01, 4.539904892444611e-01, -1.564344614744186e-01, -7.071067690849304e-01, -9.876883625984192e-01, -8.910065293312073e-01, -4.539904892444611e-01, 1.564344614744186e-01, 7.071067690849304e-01, 9.876883625984192e-01, 8.910065293312073e-01, 4.539904892444611e-01, -1.564344614744186e-01, -7.071067690849304e-01, -9.876883625984192e-01, -8.910065293312073e-01, -4.539904892444611e-01, 1.564344614744186e-01, 7.071067690849304e-01, 9.876883625984192e-01, 8.910065293312073e-01, 4.539904892444611e-01, -1.564344614744186e-01, -7.071067690849304e-01, -9.876883625984192e-01, -8.910065293312073e-01, -4.539904892444611e-01, 1.564344614744186e-01, 7.071067690849304e-01, 9.876883625984192e-01, 8.910065293312073e-01, 4.539904892444611e-01, -1.564344614744186e-01, -7.071067690849304e-01] +movAve7.y=[0e+00, -8.763125538825989e-01, -9.239140748977661e-01, -8.47790002822876e-01, -6.743162870407104e-01, -4.501466453075409e-01, -2.290564030408859e-01, -5.754833295941353e-02, 3.658527880907059e-02, 4.961711913347244e-02, 4.036843392896117e-08, -7.967382669448853e-02, -1.5399369597435e-01, -1.956502497196198e-01, -1.926662027835846e-01, -1.500514000654221e-01, -8.589723706245422e-02, -2.369659021496773e-02, 1.626027747988701e-02, 2.35030185431242e-02, 1.479662703474105e-08, -4.173414036631584e-02, -8.39969590306282e-02, -1.105853095650673e-01, -1.12388975918293e-01, -9.003113955259323e-02, -1.99178084731102e-02, 5.78039214015007e-02, 1.134464740753174e-01, 1.257563084363937e-01, 9.003148972988129e-02, 1.991769857704639e-02, -5.780402198433876e-02, -1.134466081857681e-01, -1.257564872503281e-01, -9.00317057967186e-02, -1.991790905594826e-02, 5.780381336808205e-02, 1.134464517235756e-01, 1.257563531398773e-01, 9.003152698278427e-02, 1.991771161556244e-02, -5.780400708317757e-02, -1.134465485811234e-01, -1.257563531398773e-01, -9.003150463104248e-02, -1.991766691207886e-02, 5.780405551195145e-02, 1.134466156363487e-01, 1.257564723491669e-01, 9.003166854381561e-02, 1.991789229214191e-02, -5.780383944511414e-02, -1.134463921189308e-01, -1.257562339305878e-01, -9.003140777349472e-02, -1.991761662065983e-02, 5.780410394072533e-02, 1.134466901421547e-01, 1.257565766572952e-01, 9.003178775310516e-02, 1.991799101233482e-02, -5.780372768640518e-02, -1.13446369767189e-01, -1.257562786340714e-01, -9.003144502639771e-02, -1.991762965917587e-02, 5.780408903956413e-02, 1.134466305375099e-01, 1.257564425468445e-01, 9.003158658742905e-02, 1.991775073111057e-02, -5.780397355556488e-02, -1.134465336799622e-01, -1.257563978433609e-01, -9.003158658742905e-02, -1.991780661046505e-02, 5.78039139509201e-02, 1.134465038776398e-01, 1.257563829421997e-01, 9.003159403800964e-02, 1.991779543459415e-02, -5.7803925126791e-02, -1.134465113282204e-01, -1.257563978433609e-01, -9.003160148859024e-02, -1.991780661046505e-02, 5.78039139509201e-02, 1.134465709328651e-01, 1.257564425468445e-01, 9.003160148859024e-02, 1.991777680814266e-02, -5.780394747853279e-02, -1.13446518778801e-01, -1.257563978433609e-01, -9.003160148859024e-02, -1.99178047478199e-02, 5.78039176762104e-02, 1.134465038776398e-01, 1.257563829421997e-01, 9.003160148859024e-02] +movAve6.y=[0e+00, -8.763125538825989e-01, -9.239140748977661e-01, -8.47790002822876e-01, -6.743162870407104e-01, -4.501466453075409e-01, -2.290564030408859e-01, -5.754833295941353e-02, 3.658527880907059e-02, 4.961711913347244e-02, 4.036843392896117e-08, -7.967382669448853e-02, -1.5399369597435e-01, -1.711364090442657e-01, -1.058778911828995e-01, -1.775890996214002e-04, 1.055904924869537e-01, 1.710265576839447e-01, 1.71136274933815e-01, 1.058777794241905e-01, 1.775654527591541e-04, -1.055904552340508e-01, -1.710265278816223e-01, -1.71136274933815e-01, -1.058777868747711e-01, 6.788108919408842e-08, 1.055906414985657e-01, 1.710265725851059e-01, 1.711361855268478e-01, 1.058775782585144e-01, 1.773427793523297e-04, -1.055906638503075e-01, -1.710267066955566e-01, -1.711364537477493e-01, -1.058779805898666e-01, -1.777841680450365e-04, 1.055902391672134e-01, 1.710263043642044e-01, 1.711360961198807e-01, 1.058775931596756e-01, 1.774590200511739e-04, -1.055904850363731e-01, -1.710264533758163e-01, -1.711361259222031e-01, -1.058775186538696e-01, -1.771975657902658e-04, 1.055909171700478e-01, 1.710269898176193e-01, 1.711366921663284e-01, 1.058781668543816e-01, 2.697746310786897e-07, -1.055900901556015e-01, -1.710261851549149e-01, -1.711359620094299e-01, -1.05877473950386e-01, -1.773055701050907e-04, 1.055906265974045e-01, 1.710265725851059e-01, 1.71136200428009e-01, 1.058776676654816e-01, 1.774982520146295e-04, -1.055904850363731e-01, -1.710264980792999e-01, -1.711364090442657e-01, -1.058778911828995e-01, -1.775890996214002e-04, 1.055904924869537e-01, 1.710265576839447e-01, 1.71136274933815e-01, 1.058777794241905e-01, 1.775654673110694e-04, -1.055904552340508e-01, -1.710265278816223e-01, -1.71136274933815e-01, -1.058777868747711e-01, 6.968446797372962e-08, 1.055906489491463e-01, 1.710265576839447e-01, 1.711362302303314e-01, 1.058777198195457e-01, 1.775437995092943e-04, -1.055904701352119e-01, -1.710265129804611e-01, -1.711362600326538e-01, -1.058777794241905e-01, -1.775825512595475e-04, 1.055904477834702e-01, 1.710265129804611e-01, 1.711362600326538e-01, 1.058777794241905e-01, 1.775821583578363e-04, -1.055904477834702e-01, -1.710265129804611e-01, -1.711362600326538e-01, -1.058777794241905e-01, -1.775827549863607e-04, 1.055904477834702e-01, 1.710265129804611e-01, 1.711362600326538e-01, 1.058777794241905e-01, 1.775841228663921e-04] +sinInp100sDel.y=[0e+00, 5.877852439880371e-01, 9.510565400123596e-01, 9.510565400123596e-01, 5.877852439880371e-01, 1.224646852585168e-16, -5.877852439880371e-01, -9.510565400123596e-01, -9.510565400123596e-01, -5.877852439880371e-01, -2.449293705170336e-16, 5.877852439880371e-01, 9.510565400123596e-01, 9.510565400123596e-01, 5.877852439880371e-01, 3.673940293057708e-16, -5.877852439880371e-01, -9.510565400123596e-01, -9.510565400123596e-01, -5.877852439880371e-01, -4.898587410340671e-16, 5.877852439880371e-01, 9.510565400123596e-01, 9.510565400123596e-01, 5.877852439880371e-01, 6.123233998228043e-16, -5.877852439880371e-01, -9.510565400123596e-01, -9.510565400123596e-01, -5.877852439880371e-01, -7.347880586115415e-16, 5.877852439880371e-01, 9.510565400123596e-01, 9.510565400123596e-01, 5.877852439880371e-01, 8.572527703398379e-16, -5.877852439880371e-01, -9.510565400123596e-01, -9.510565400123596e-01, -5.877852439880371e-01, -9.797174820681343e-16, 5.877852439880371e-01, 9.510565400123596e-01, 9.510565400123596e-01, 5.877852439880371e-01, 1.102182140856871e-15, -5.877852439880371e-01, -9.510565400123596e-01, -9.510565400123596e-01, -5.877852439880371e-01, -1.224646799645609e-15, 5.877852439880371e-01, 9.510565400123596e-01, 9.510565400123596e-01, 5.877852439880371e-01, 4.899825137234847e-15, -5.877852439880371e-01, -9.510565400123596e-01, -9.510565400123596e-01, -5.877852439880371e-01, -1.469576117223083e-15, 5.877852439880371e-01, 9.510565400123596e-01, 9.510565400123596e-01, 5.877852439880371e-01, -1.960672902788681e-15, -5.877852439880371e-01, -9.510565400123596e-01, -9.510565400123596e-01, -5.877852439880371e-01, -1.714505540679676e-15, 5.877852439880371e-01, 9.510565400123596e-01, 9.510565400123596e-01, 5.877852439880371e-01, 5.389683772389795e-15, -5.877852439880371e-01, -9.510565400123596e-01, -9.510565400123596e-01, -5.877852439880371e-01, -1.959434964136269e-15, 5.877852439880371e-01, 9.510565400123596e-01, 9.510565400123596e-01, 5.877852439880371e-01, -1.470814161754614e-15, -5.877852439880371e-01, -9.510565400123596e-01, -9.510565400123596e-01, -5.877852439880371e-01, -2.204364281713743e-15, 5.877852439880371e-01, 9.510565400123596e-01, 9.510565400123596e-01, 5.877852439880371e-01, 5.879542407544744e-15, -5.877852439880371e-01, -9.510565400123596e-01, -9.510565400123596e-01, -5.877852439880371e-01, -2.449293599291217e-15] +movAve8.y=[0e+00, 3.039204776287079e-01, 5.498324036598206e-01, 6.944261193275452e-01, 7.197624444961548e-01, 6.366037130355835e-01, 4.798464775085449e-01, 2.976180911064148e-01, 1.374643594026566e-01, 3.377259895205498e-02, -8.825113440025234e-08, 2.763227373361588e-02, 9.164350479841232e-02, 1.601985991001129e-01, 1.776988059282303e-01, 1.273239105939865e-01, 2.831562049686909e-02, -8.150828629732132e-02, -1.601988077163696e-01, -1.776988506317139e-01, -1.273240447044373e-01, -2.831584401428699e-02, 8.150799572467804e-02, 1.601984947919846e-01, 1.776985675096512e-01, 1.273237615823746e-01, 2.831554971635342e-02, -8.150837570428848e-02, -1.601988226175308e-01, -1.776987761259079e-01, -1.273238807916641e-01, -2.831568941473961e-02, 8.150812983512878e-02, 1.601986289024353e-01, 1.776987016201019e-01, 1.273239105939865e-01, 2.831570990383625e-02, -8.150812983512878e-02, -1.601986736059189e-01, -1.776987612247467e-01, -1.273238956928253e-01, -2.831572294235229e-02, 8.15081000328064e-02, 1.601986140012741e-01, 1.776986420154572e-01, 1.273237317800522e-01, 2.831540070474148e-02, -8.150853961706161e-02, -1.601990759372711e-01, -1.776991188526154e-01, -1.273242980241776e-01, -2.831613458693027e-02, 8.150774985551834e-02, 1.601982712745667e-01, 1.776983588933945e-01, 1.273234933614731e-01, 2.831529453396797e-02, -8.150846511125565e-02, -1.601988524198532e-01, -1.776987910270691e-01, -1.273239254951477e-01, -2.831572107970715e-02, 8.15080851316452e-02, 1.601985991001129e-01, 1.776988059282303e-01, 1.273239105939865e-01, 2.831562049686909e-02, -8.150828629732132e-02, -1.601988077163696e-01, -1.776988506317139e-01, -1.273240447044373e-01, -2.831584401428699e-02, 8.150799572467804e-02, 1.601984947919846e-01, 1.776985675096512e-01, 1.273237615823746e-01, 2.831545099616051e-02, -8.15083310008049e-02, -1.601987481117249e-01, -1.776987314224243e-01, -1.273238807916641e-01, -2.831568941473961e-02, 8.150813728570938e-02, 1.601986438035965e-01, 1.776987016201019e-01, 1.273239105939865e-01, 2.831570617854595e-02, -8.150813728570938e-02, -1.601986438035965e-01, -1.776987016201019e-01, -1.273239105939865e-01, -2.831570617854595e-02, 8.150813728570938e-02, 1.601986438035965e-01, 1.776987016201019e-01, 1.273239105939865e-01, 2.831570617854595e-02, -8.150813728570938e-02, -1.601986438035965e-01, -1.776987016201019e-01, -1.273239105939865e-01] +movAve9.y=[0e+00, 3.039204776287079e-01, 5.498324036598206e-01, 6.944261193275452e-01, 7.197624444961548e-01, 6.366037130355835e-01, 4.798464775085449e-01, 2.976180911064148e-01, 1.374643594026566e-01, 3.377259895205498e-02, -8.825113440025234e-08, 2.763227373361588e-02, 9.164350479841232e-02, 1.602572798728943e-01, 2.056510895490646e-01, 2.12204784154892e-01, 1.79944708943367e-01, 1.225498095154762e-01, 6.10956959426403e-02, 1.599756442010403e-02, -1.313608919417675e-07, 1.447403989732265e-02, 4.998751729726791e-02, 9.05805230140686e-02, 1.199634522199631e-01, 1.273232251405716e-01, 1.030071973800659e-01, 3.934512287378311e-02, -3.934543207287788e-02, -1.030073761940002e-01, -1.273240298032761e-01, -1.030072867870331e-01, -3.934529051184654e-02, 3.934524580836296e-02, 1.030072122812271e-01, 1.273238956928253e-01, 1.030071452260017e-01, 3.93451489508152e-02, -3.934533521533012e-02, -1.030074208974838e-01, -1.273240745067596e-01, -1.030072942376137e-01, -3.934523835778236e-02, 3.934532031416893e-02, 1.030072495341301e-01, 1.273238658905029e-01, 1.030070632696152e-01, 3.934501484036446e-02, -3.934553638100624e-02, -1.030074879527092e-01, -1.273241490125656e-01, -1.030074879527092e-01, -3.934541717171669e-02, 3.93451415002346e-02, 1.03007085621357e-01, 1.273237317800522e-01, 1.030069962143898e-01, 3.934499621391296e-02, -3.934554010629654e-02, -1.030075028538704e-01, -1.27324178814888e-01, -1.030074432492256e-01, -3.934543952345848e-02, 3.934504091739655e-02, 1.030071303248405e-01, 1.273237764835358e-01, 1.030070036649704e-01, 3.934494405984879e-02, -3.934561088681221e-02, -1.03007547557354e-01, -1.273241639137268e-01, -1.030073538422585e-01, -3.934530913829803e-02, 3.934524208307266e-02, 1.030071899294853e-01, 1.273238509893417e-01, 1.030071452260017e-01, 3.93451452255249e-02, -3.93453910946846e-02, -1.030073538422585e-01, -1.273240298032761e-01, -1.030072867870331e-01, -3.934528678655624e-02, 3.934524953365326e-02, 1.030072122812271e-01, 1.273238956928253e-01, 1.030071452260017e-01, 3.93451452255249e-02, -3.934537246823311e-02, -1.030074059963226e-01, -1.273240447044373e-01, -1.030072495341301e-01, -3.934521600604057e-02, 3.934532776474953e-02, 1.030072867870331e-01, 1.273239552974701e-01, 1.030072197318077e-01, 3.934521973133087e-02, -3.934531658887863e-02, -1.030072793364525e-01, -1.273239701986313e-01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MultiMax.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MultiMax.txt new file mode 100644 index 0000000000..ea59238eed --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MultiMax.txt @@ -0,0 +1,14 @@ +last-generated=2017-09-14 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +con[3].y=[3e+00, 3e+00] +con[5].y=[5e+00, 5e+00] +con[1].y=[1e+00, 1e+00] +con[4].y=[4e+00, 4e+00] +time=[0e+00, 1e+00] +con[2].y=[2e+00, 2e+00] +maxVal.y=[5e+00, 5e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MultiMin.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MultiMin.txt new file mode 100644 index 0000000000..46c2056b44 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MultiMin.txt @@ -0,0 +1,14 @@ +last-generated=2017-09-14 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +con[3].y=[3e+00, 3e+00] +con[5].y=[5e+00, 5e+00] +con[1].y=[1e+00, 1e+00] +con[4].y=[4e+00, 4e+00] +time=[0e+00, 1e+00] +con[2].y=[2e+00, 2e+00] +minVal.y=[1e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MultiSum.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MultiSum.txt new file mode 100644 index 0000000000..6f2ef7f4be --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MultiSum.txt @@ -0,0 +1,19 @@ +last-generated=2017-06-30 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +mulSum_1.u[1]=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +mulSum_1.y=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +time=[0e+00, 1e+00] +mulSum_2.u[2]=[-1e+00, -9.800000186264507e-01, -9.599999776482565e-01, -9.399999962747084e-01, -9.200000149011579e-01, -8.99999977648261e-01, -8.799999925494144e-01, -8.600000149011634e-01, -8.399999701977309e-01, -8.200000000000001e-01, -8.000000149011612e-01, -7.799999701976954e-01, -7.599999850988388e-01, -7.4e-01, -7.200000298023046e-01, -7e-01, -6.799999999999999e-01, -6.60000029802269e-01, -6.4e-01, -6.2e-01, -6.000000298022335e-01, -5.799999701976777e-01, -5.600000000000001e-01, -5.400000298023224e-01, -5.199999701976776e-01, -5e-01, -4.799999701978197e-01, -4.600000298021625e-01, -4.399999999999999e-01, -4.19999970197802e-01, -4.000000298023224e-01, -3.8e-01, -3.6e-01, -3.400000298023224e-01, -3.2e-01, -3e-01, -2.800000298023224e-01, -2.6e-01, -2.399999850988743e-01, -2.199999701977842e-01, -2.000000149011167e-01, -1.8e-01, -1.599999701977753e-01, -1.400000149011079e-01, -1.199999925494283e-01, -9.99999776483026e-02, -8.000001490113007e-02, -5.999999627471642e-02, -3.999997764829821e-02, -2.000001862641598e-02, 0e+00, 2.000001862613177e-02, 4.000003725226355e-02, 6.00000558784486e-02, 7.99999552972359e-02, 9.999997764865798e-02, 1.199999925493573e-01, 1.400000149008946e-01, 1.600000298018249e-01, 1.800000596036677e-01, 1.999999552972269e-01, 2.199999701982105e-01, 2.399999850990164e-01, 2.599999999998579e-01, 2.800000298018961e-01, 3.00000059603579e-01, 3.199999403965277e-01, 3.399999701981751e-01, 3.600000000002133e-01, 3.800000000000709e-01, 4.00000029801967e-01, 4.200000298016828e-01, 4.399999403962078e-01, 4.59999970198246e-01, 4.799999701981039e-01, 5e-01, 5.199999999997158e-01, 5.400000596040764e-01, 5.600000596037922e-01, 5.799999403959948e-01, 6.000000000003554e-01, 6.199999999999291e-01, 6.399999999997867e-01, 6.600000596036499e-01, 6.800000596038631e-01, 6.999999403960657e-01, 7.200000000004263e-01, 7.400000000001421e-01, 7.599999999998579e-01, 7.799999999995737e-01, 8.000000596039343e-01, 8.199999403961369e-01, 8.399999403963501e-01, 8.600000000002133e-01, 8.800000000000709e-01, 8.999999999996446e-01, 9.200000596040052e-01, 9.399999403962078e-01, 9.599999403959236e-01, 9.800000000002842e-01, 1e+00] +mulSum_2.u[1]=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +mulSum_2.y=[-2.5e+00, -2.45000004656613e+00, -2.40000009313226e+00, -2.349999901279814e+00, -2.299999947845941e+00, -2.250000003725286e+00, -2.200000040978201e+00, -2.150000096857549e+00, -2.099999895691898e+00, -2.049999970197624e+00, -2.000000007450558e+00, -1.950000044703492e+00, -1.899999962747137e+00, -1.850000000000071e+00, -1.799999955296507e+00, -1.750000029802234e+00, -1.700000029802376e+00, -1.649999985098812e+00, -1.600000059604538e+00, -1.549999940395391e+00, -1.500000014901117e+00, -1.450000014901259e+00, -1.399999970197695e+00, -1.350000044703421e+00, -1.299999925494274e+00, -1.25e+00, -1.200000000000142e+00, -1.150000029802162e+00, -1.100000029802304e+00, -1.049999910593157e+00, -1.000000059604467e+00, -9.499999999999644e-01, -8.999999403954617e-01, -8.500000894067716e-01, -8.000000298022689e-01, -7.499999701977665e-01, -7.000000596044317e-01, -6.500000000000711e-01, -5.999999999999289e-01, -5.499999403955683e-01, -5.000000298022335e-01, -4.49999970197731e-01, -3.999999403953553e-01, -3.500000298023224e-01, -3e-01, -2.49999940395444e-01, -2.000000447033591e-01, -1.50000000000009e-01, -9.999994784605581e-02, -5.000004842866734e-02, 0e+00, 5.000004842795681e-02, 1.000000968559136e-01, 1.500001490090542e-01, 1.999998956936304e-01, 2.499999403963324e-01, 2.999999999998226e-01, 3.500000298017892e-01, 4.000000894054748e-01, 4.500001192073355e-01, 4.999998807928419e-01, 5.499999403966341e-01, 6.000000000002842e-01, 6.499999999997158e-01, 7.000000596033659e-01, 7.50000119207158e-01, 7.999998807930554e-01, 8.499999403963502e-01, 8.99999940395995e-01, 9.500000000001418e-01, 1.000000059603579e+00, 1.050000059602726e+00, 1.099999880793268e+00, 1.149999880792416e+00, 1.200000000000853e+00, 1.25e+00, 1.299999999999147e+00, 1.350000119207584e+00, 1.400000119206732e+00, 1.449999940397274e+00, 1.499999940396421e+00, 1.549999940395213e+00, 1.600000059604005e+00, 1.650000059603153e+00, 1.700000178811589e+00, 1.749999880792842e+00, 1.799999880791989e+00, 1.850000000000426e+00, 1.899999999999574e+00, 1.950000119208011e+00, 2.000000119207158e+00, 2.049999821188411e+00, 2.099999821187558e+00, 2.150000059605285e+00, 2.200000059604787e+00, 2.250000059603579e+00, 2.300000059602726e+00, 2.349999761583978e+00, 2.400000000001705e+00, 2.450000000000852e+00, 2.5e+00] +mulSum_5.u[1]=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +mulSum_5.u[3]=[-1e+00, -9.700000279396727e-01, -9.399999962747139e-01, -9.100000242143751e-01, -8.799999925494277e-01, -8.500000260770252e-01, -8.199999888241416e-01, -7.900000223517407e-01, -7.599999850988655e-01, -7.300000298022691e-01, -6.999999925493972e-01, -6.700000149011524e-01, -6.399999776482982e-01, -6.099999999999289e-01, -5.799999850988476e-01, -5.500000298022336e-01, -5.199999701977309e-01, -4.900000149011345e-01, -4.600000298022158e-01, -4.3e-01, -4.000000149011168e-01, -3.699999850988388e-01, -3.4e-01, -3.100000149011611e-01, -2.799999850988388e-01, -2.5e-01, -2.199999701977486e-01, -1.900000298022424e-01, -1.59999999999991e-01, -1.299999701977398e-01, -1.000000372528142e-01, -7.000000745056284e-02, -3.999997764831148e-02, -1.000003911547481e-02, 1.999998882415249e-02, 5.000001862641812e-02, 7.999995529662296e-02, 1.099999850988743e-01, 1.400000149011257e-01, 1.70000044703377e-01, 1.999999850988833e-01, 2.300000149011345e-01, 2.600000298023223e-01, 2.899999701977842e-01, 3.2e-01, 3.500000298023224e-01, 3.79999970197802e-01, 4.099999999999999e-01, 4.400000298023223e-01, 4.699999701976776e-01, 5e-01, 5.299999999997158e-01, 5.60000059603508e-01, 5.900000596037922e-01, 6.199999403966343e-01, 6.499999403960659e-01, 6.799999999999291e-01, 7.099999999997867e-01, 7.400000596036499e-01, 7.700000596038631e-01, 7.999999403967762e-01, 8.299999403962078e-01, 8.600000000001421e-01, 8.899999999998579e-01, 9.200000596037922e-01, 9.500000596032238e-01, 9.799999403961369e-01, 1.009999940395853e+00, 1.039999940395995e+00, 1.070000059604645e+00, 1.100000059603579e+00, 1.130000059604005e+00, 1.159999880793268e+00, 1.190000000000568e+00, 1.220000000000284e+00, 1.25e+00, 1.279999999999716e+00, 1.309999999999432e+00, 1.340000119206732e+00, 1.369999940395995e+00, 1.399999940396421e+00, 1.429999940395355e+00, 1.460000059604005e+00, 1.490000059604147e+00, 1.520000059603863e+00, 1.549999880792842e+00, 1.580000000000426e+00, 1.610000000000142e+00, 1.639999999999858e+00, 1.669999999999574e+00, 1.700000119207158e+00, 1.729999940396137e+00, 1.759999940395853e+00, 1.789999940395995e+00, 1.820000059604645e+00, 1.850000059603579e+00, 1.880000059604005e+00, 1.909999880793268e+00, 1.940000000000568e+00, 1.970000000000284e+00, 2e+00] +mulSum_5.u[2]=[-1e+00, -9.800000186264507e-01, -9.599999776482565e-01, -9.399999962747084e-01, -9.200000149011579e-01, -8.99999977648261e-01, -8.799999925494144e-01, -8.600000149011634e-01, -8.399999701977309e-01, -8.200000000000001e-01, -8.000000149011612e-01, -7.799999701976954e-01, -7.599999850988388e-01, -7.4e-01, -7.200000298023046e-01, -7e-01, -6.799999999999999e-01, -6.60000029802269e-01, -6.4e-01, -6.2e-01, -6.000000298022335e-01, -5.799999701976777e-01, -5.600000000000001e-01, -5.400000298023224e-01, -5.199999701976776e-01, -5e-01, -4.799999701978197e-01, -4.600000298021625e-01, -4.399999999999999e-01, -4.19999970197802e-01, -4.000000298023224e-01, -3.8e-01, -3.6e-01, -3.400000298023224e-01, -3.2e-01, -3e-01, -2.800000298023224e-01, -2.6e-01, -2.399999850988743e-01, -2.199999701977842e-01, -2.000000149011167e-01, -1.8e-01, -1.599999701977753e-01, -1.400000149011079e-01, -1.199999925494283e-01, -9.99999776483026e-02, -8.000001490113007e-02, -5.999999627471642e-02, -3.999997764829821e-02, -2.000001862641598e-02, 0e+00, 2.000001862613177e-02, 4.000003725226355e-02, 6.00000558784486e-02, 7.99999552972359e-02, 9.999997764865798e-02, 1.199999925493573e-01, 1.400000149008946e-01, 1.600000298018249e-01, 1.800000596036677e-01, 1.999999552972269e-01, 2.199999701982105e-01, 2.399999850990164e-01, 2.599999999998579e-01, 2.800000298018961e-01, 3.00000059603579e-01, 3.199999403965277e-01, 3.399999701981751e-01, 3.600000000002133e-01, 3.800000000000709e-01, 4.00000029801967e-01, 4.200000298016828e-01, 4.399999403962078e-01, 4.59999970198246e-01, 4.799999701981039e-01, 5e-01, 5.199999999997158e-01, 5.400000596040764e-01, 5.600000596037922e-01, 5.799999403959948e-01, 6.000000000003554e-01, 6.199999999999291e-01, 6.399999999997867e-01, 6.600000596036499e-01, 6.800000596038631e-01, 6.999999403960657e-01, 7.200000000004263e-01, 7.400000000001421e-01, 7.599999999998579e-01, 7.799999999995737e-01, 8.000000596039343e-01, 8.199999403961369e-01, 8.399999403963501e-01, 8.600000000002133e-01, 8.800000000000709e-01, 8.999999999996446e-01, 9.200000596040052e-01, 9.399999403962078e-01, 9.599999403959236e-01, 9.800000000002842e-01, 1e+00] +mulSum_5.u[5]=[-3e+00, -2.970000027939673e+00, -2.940000055879345e+00, -2.91000008381902e+00, -2.880000111758691e+00, -2.849999906867758e+00, -2.819999929219457e+00, -2.789999962747105e+00, -2.759999985098812e+00, -2.730000029802376e+00, -2.700000052154087e+00, -2.670000074505797e+00, -2.640000096857508e+00, -2.609999880791208e+00, -2.579999925494203e+00, -2.549999970197766e+00, -2.519999970197624e+00, -2.490000014901188e+00, -2.460000059604751e+00, -2.430000059604609e+00, -2.400000104307817e+00, -2.369999865890233e+00, -2.339999910593157e+00, -2.309999955296579e+00, -2.279999955296437e+00, -2.25e+00, -2.219999999999858e+00, -2.190000089407127e+00, -2.160000089406843e+00, -2.130000089406843e+00, -2.099999940395533e+00, -2.069999940395391e+00, -2.039999940395249e+00, -2.010000029802518e+00, -1.980000029802162e+00, -1.950000029802234e+00, -1.920000000000213e+00, -1.890000000000071e+00, -1.859999999999929e+00, -1.829999999999787e+00, -1.799999970197766e+00, -1.769999970197838e+00, -1.739999970197482e+00, -1.710000059604325e+00, -1.679999940395462e+00, -1.649999940395888e+00, -1.620000029802447e+00, -1.590000029802305e+00, -1.559999910593513e+00, -1.530000000000142e+00, -1.5e+00, -1.470000000000284e+00, -1.440000000000568e+00, -1.409999880793268e+00, -1.380000059604005e+00, -1.350000059603579e+00, -1.320000059604645e+00, -1.289999940395995e+00, -1.259999940395853e+00, -1.229999940396137e+00, -1.200000119207158e+00, -1.169999999999574e+00, -1.139999999999858e+00, -1.110000000000142e+00, -1.080000000000426e+00, -1.049999880792842e+00, -1.020000059603863e+00, -9.900000596036499e-01, -9.599999999997867e-01, -9.299999999999291e-01, -8.999999403960659e-01, -8.699999403966343e-01, -8.400000596037922e-01, -8.10000059603508e-01, -7.799999999997158e-01, -7.5e-01, -7.200000000002842e-01, -6.89999940396492e-01, -6.599999403962078e-01, -6.300000596033657e-01, -6.000000596039341e-01, -5.700000000000709e-01, -5.400000000002133e-01, -5.099999403963501e-01, -4.799999105945961e-01, -4.50000059603579e-01, -4.200000298016829e-01, -3.899999999997869e-01, -3.600000000002131e-01, -3.299999701983171e-01, -2.99999940396421e-01, -2.700000894054039e-01, -2.400000447027374e-01, -2.100000149008413e-01, -1.799999999998936e-01, -1.499999701982107e-01, -1.199999329458938e-01, -9.000008940547513e-02, -6.000005587839531e-02, -3.000002793918877e-02, 0e+00] +mulSum_5.y=[-1.060000038146973e+01, -1.045699977555129e+01, -1.031400012330717e+01, -1.017099951738874e+01, -1.002799986514461e+01, -9.885000239536067e+00, -9.741999606982052e+00, -9.598999981373517e+00, -9.456000302493004e+00, -9.312999776483718e+00, -9.170000097602369e+00, -9.027000418722441e+00, -8.883999786168765e+00, -8.741000107289121e+00, -8.597999581277559e+00, -8.455000008939747e+00, -8.312000223516282e+00, -8.168999697506996e+00, -8.026000125168613e+00, -7.882999862909697e+00, -7.739999813735721e+00, -7.597000028311689e+00, -7.45399997913828e+00, -7.310999929964872e+00, -7.16800014454084e+00, -7.025000095367432e+00, -6.881999833108515e+00, -6.738999997020615e+00, -6.596000211596299e+00, -6.452999949335394e+00, -6.310000113249767e+00, -6.166999850988576e+00, -6.024000065564544e+00, -5.881000229475791e+00, -5.737999967217728e+00, -5.594999704957959e+00, -5.452000345704659e+00, -5.309000083446879e+00, -5.165999821186826e+00, -5.02299955892791e+00, -4.880000199674609e+00, -4.736999937414841e+00, -4.593999675156777e+00, -4.451000315903477e+00, -4.308000053643992e+00, -4.164999791385644e+00, -4.021999955297175e+00, -3.878999931454707e+00, -3.735999907613233e+00, -3.59300007152519e+00, -3.450000047683716e+00, -3.306999785425695e+00, -3.163999761586252e+00, -3.020999499328231e+00, -2.87800032782011e+00, -2.73500006556351e+00, -2.592000041723663e+00, -2.448999779464627e+00, -2.305999755625185e+00, -2.162999731782616e+00, -2.020000321859043e+00, -1.877000178810311e+00, -1.734000035761579e+00, -1.590999892712847e+00, -1.447999749664115e+00, -1.304999606615384e+00, -1.162000315899537e+00, -1.019000292058531e+00, -8.760000894053678e-01, -7.329999463554083e-01, -5.899998033076926e-01, -4.469996900609635e-01, -3.040003993442993e-01, -1.610002711965866e-01, -1.800013559825776e-02, 1.25e-01, 2.680001430488739e-01, 4.110002860974636e-01, 5.540004291461954e-01, 6.969997198629662e-01, 8.399998033076926e-01, 9.829999463554083e-01, 1.126000149009799e+00, 1.269000292058531e+00, 1.412000315899537e+00, 1.554999606615384e+00, 1.697999749664115e+00, 1.840999892712847e+00, 1.984000035761579e+00, 2.1270002980196e+00, 2.270000321859043e+00, 2.412999731782616e+00, 2.555999755625185e+00, 2.698999779464627e+00, 2.842000041723663e+00, 2.98500006556351e+00, 3.12800032782011e+00, 3.270999499328231e+00, 3.413999761586252e+00, 3.556999785425695e+00, 3.700000047683716e+00] +mulSum_5.u[4]=[-2e+00, -1.970000027939673e+00, -1.940000055879345e+00, -1.90999996460977e+00, -1.879999992549401e+00, -1.850000026077003e+00, -1.820000048428746e+00, -1.789999962747105e+00, -1.759999985098812e+00, -1.730000029802162e+00, -1.700000052153998e+00, -1.669999955296543e+00, -1.639999977648218e+00, -1.609999999999929e+00, -1.580000044703457e+00, -1.549999970197766e+00, -1.519999970197838e+00, -1.490000014901188e+00, -1.460000059604325e+00, -1.429999940395462e+00, -1.399999985098883e+00, -1.369999985098741e+00, -1.340000029802305e+00, -1.309999955296579e+00, -1.279999955296756e+00, -1.25e+00, -1.219999999999858e+00, -1.190000089406487e+00, -1.159999970197695e+00, -1.129999970197553e+00, -1.100000059604112e+00, -1.070000059604538e+00, -1.039999940395675e+00, -1.010000029802518e+00, -9.800000298022691e-01, -9.499999701977665e-01, -9.200000596044317e-01, -8.900000000000711e-01, -8.599999999999289e-01, -8.299999403955683e-01, -8.000000298022335e-01, -7.699999701977309e-01, -7.39999970197873e-01, -7.100000000001065e-01, -6.800000000000355e-01, -6.499999403955328e-01, -6.200000298021979e-01, -5.899999701976955e-01, -5.599999701978375e-01, -5.300000000001421e-01, -5e-01, -4.699999701981039e-01, -4.399999403962078e-01, -4.09999910594738e-01, -3.800000596036854e-01, -3.500000298017893e-01, -3.200000000001064e-01, -2.899999701981041e-01, -2.599999403963501e-01, -2.299999254955619e-01, -2.000000745045626e-01, -1.700000447027376e-01, -1.400000149009125e-01, -1.099999850990875e-01, -7.999995529726243e-02, -4.999992922068328e-02, -2.000007822977725e-02, 9.999949709432063e-03, 3.999997764863138e-02, 7.000000745066925e-02, 1.000000372522811e-01, 1.300000596036855e-01, 1.599999105945249e-01, 1.899999403963499e-01, 2.19999970198175e-01, 2.5e-01, 2.800000298018961e-01, 3.100000596037922e-01, 3.40000089405262e-01, 3.699999403963146e-01, 3.999999701982107e-01, 4.299999999998936e-01, 4.600000298018959e-01, 4.900000596036499e-01, 5.200000596038631e-01, 5.499999403967762e-01, 5.799999403962078e-01, 6.100000000001421e-01, 6.399999999998579e-01, 6.700000596037922e-01, 7.000000596032238e-01, 7.299999403961369e-01, 7.599999403963501e-01, 7.900000000002133e-01, 8.200000000000709e-01, 8.500000596039341e-01, 8.800000596033657e-01, 9.099999403962078e-01, 9.39999940396492e-01, 9.700000000002842e-01, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Multiply.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Multiply.txt new file mode 100644 index 0000000000..55dc2f87e3 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Multiply.txt @@ -0,0 +1,11 @@ +last-generated=2017-03-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +product1.u1=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +product1.u2=[-1e+00, -9.700000279396727e-01, -9.399999962747139e-01, -9.100000242143751e-01, -8.799999925494277e-01, -8.500000260770252e-01, -8.199999888241416e-01, -7.900000223517407e-01, -7.599999850988655e-01, -7.300000298022691e-01, -6.999999925493972e-01, -6.700000149011524e-01, -6.399999776482982e-01, -6.099999999999289e-01, -5.799999850988476e-01, -5.500000298022336e-01, -5.199999701977309e-01, -4.900000149011345e-01, -4.600000298022158e-01, -4.3e-01, -4.000000149011168e-01, -3.699999850988388e-01, -3.4e-01, -3.100000149011611e-01, -2.799999850988388e-01, -2.5e-01, -2.199999701977486e-01, -1.900000298022424e-01, -1.59999999999991e-01, -1.299999701977398e-01, -1.000000372528142e-01, -7.000000745056284e-02, -3.999997764831148e-02, -1.000003911547481e-02, 1.999998882415249e-02, 5.000001862641812e-02, 7.999995529662296e-02, 1.099999850988743e-01, 1.400000149011257e-01, 1.70000044703377e-01, 1.999999850988833e-01, 2.300000149011345e-01, 2.600000298023223e-01, 2.899999701977842e-01, 3.2e-01, 3.500000298023224e-01, 3.79999970197802e-01, 4.099999999999999e-01, 4.400000298023223e-01, 4.699999701976776e-01, 5e-01, 5.299999999997158e-01, 5.60000059603508e-01, 5.900000596037922e-01, 6.199999403966343e-01, 6.499999403960659e-01, 6.799999999999291e-01, 7.099999999997867e-01, 7.400000596036499e-01, 7.700000596038631e-01, 7.999999403967762e-01, 8.299999403962078e-01, 8.600000000001421e-01, 8.899999999998579e-01, 9.200000596037922e-01, 9.500000596032238e-01, 9.799999403961369e-01, 1.009999940395853e+00, 1.039999940395995e+00, 1.070000059604645e+00, 1.100000059603579e+00, 1.130000059604005e+00, 1.159999880793268e+00, 1.190000000000568e+00, 1.220000000000284e+00, 1.25e+00, 1.279999999999716e+00, 1.309999999999432e+00, 1.340000119206732e+00, 1.369999940395995e+00, 1.399999940396421e+00, 1.429999940395355e+00, 1.460000059604005e+00, 1.490000059604147e+00, 1.520000059603863e+00, 1.549999880792842e+00, 1.580000000000426e+00, 1.610000000000142e+00, 1.639999999999858e+00, 1.669999999999574e+00, 1.700000119207158e+00, 1.729999940396137e+00, 1.759999940395853e+00, 1.789999940395995e+00, 1.820000059604645e+00, 1.850000059603579e+00, 1.880000059604005e+00, 1.909999880793268e+00, 1.940000000000568e+00, 1.970000000000284e+00, 2e+00] +product1.y=[2e+00, 1.901200053899884e+00, 1.804800029324279e+00, 1.71080004548252e+00, 1.619199983165286e+00, 1.529999977964155e+00, 1.44319998073223e+00, 1.358800056083205e+00, 1.276800022025058e+00, 1.197199968805464e+00, 1.12000001612895e+00, 1.045199985899922e+00, 9.727999973702217e-01, 9.027999908637505e-01, 8.352000157022442e-01, 7.700000192165183e-01, 7.07199968805357e-01, 6.467999922227886e-01, 5.888000538633404e-01, 5.332000126457337e-01, 4.800000048398786e-01, 4.291999612475442e-01, 3.80800003175733e-01, 3.348000237512006e-01, 2.911999893522698e-01, 2.5e-01, 2.111999632264212e-01, 1.748000316571716e-01, 1.408000031757241e-01, 1.091999755955357e-01, 8.000003187650792e-02, 5.320000519513086e-02, 2.87999830830445e-02, 6.800027679893472e-03, -1.279999301047575e-02, -3.000000872312006e-02, -4.479997860436594e-02, -5.719999423505268e-02, -6.720000168561552e-02, -7.480000840660841e-02, -7.999999568464292e-02, -8.280000139236056e-02, -8.319999886276018e-02, -8.120000574109125e-02, -7.680000225543641e-02, -6.999999047518948e-02, -6.08000095033342e-02, -4.91999968242692e-02, -3.519998324396963e-02, -1.880001628455318e-02, 0e+00, 2.120002096795705e-02, 4.480004616180527e-02, 7.08000774441898e-02, 9.919993985040314e-02, 1.299999573714438e-01, 1.631999977444513e-01, 1.988000240607829e-01, 2.368000658930474e-01, 2.772001231268431e-01, 3.199998885173765e-01, 3.651999468908919e-01, 4.127999908641666e-01, 4.628000206657075e-01, 5.152000959001592e-01, 5.700001269316927e-01, 6.271998549102407e-01, 6.867999019828859e-01, 7.487999346551485e-01, 8.132000126458961e-01, 8.800000765788678e-01, 9.492001261116404e-01, 1.020799786877195e+00, 1.094799852449942e+00, 1.171199963227307e+00, 1.25e+00, 1.331200082434323e+00, 1.414800210072127e+00, 1.500800263705827e+00, 1.589199828094172e+00, 1.679999838163842e+00, 1.773200012645329e+00, 1.868800113466951e+00, 1.966800140397485e+00, 2.067200212532638e+00, 2.169999828912732e+00, 2.27519973827698e+00, 2.382800050469167e+00, 2.492800050467746e+00, 2.60520021510817e+00, 2.720000305742785e+00, 2.837199616497133e+00, 2.956799782775586e+00, 3.078799875051357e+00, 3.203200131855327e+00, 3.330000076578157e+00, 3.459200185714367e+00, 3.590799667667905e+00, 3.724799852451079e+00, 3.861199963228444e+00, 4e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MultiplyByParameter.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MultiplyByParameter.txt new file mode 100644 index 0000000000..b394853149 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_MultiplyByParameter.txt @@ -0,0 +1,10 @@ +last-generated=2017-03-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +gain1.u=[0e+00, 2e-02, 4e-02, 6e-02, 8e-02, 1e-01, 1.2e-01, 1.4e-01, 1.6e-01, 1.8e-01, 2e-01, 2.2e-01, 2.4e-01, 2.6e-01, 2.8e-01, 3e-01, 3.2e-01, 3.4e-01, 3.6e-01, 3.8e-01, 4e-01, 4.2e-01, 4.4e-01, 4.6e-01, 4.8e-01, 5e-01, 5.2e-01, 5.4e-01, 5.600000000000001e-01, 5.8e-01, 6e-01, 6.2e-01, 6.4e-01, 6.6e-01, 6.8e-01, 7e-01, 7.2e-01, 7.4e-01, 7.6e-01, 7.8e-01, 8e-01, 8.2e-01, 8.4e-01, 8.6e-01, 8.8e-01, 9e-01, 9.2e-01, 9.399999999999999e-01, 9.6e-01, 9.8e-01, 1e+00, 1.02e+00, 1.04e+00, 1.06e+00, 1.08e+00, 1.1e+00, 1.12e+00, 1.14e+00, 1.16e+00, 1.18e+00, 1.2e+00, 1.22e+00, 1.24e+00, 1.26e+00, 1.28e+00, 1.3e+00, 1.32e+00, 1.34e+00, 1.36e+00, 1.38e+00, 1.4e+00, 1.42e+00, 1.44e+00, 1.46e+00, 1.48e+00, 1.5e+00, 1.52e+00, 1.54e+00, 1.56e+00, 1.58e+00, 1.6e+00, 1.62e+00, 1.64e+00, 1.66e+00, 1.68e+00, 1.7e+00, 1.72e+00, 1.74e+00, 1.76e+00, 1.78e+00, 1.8e+00, 1.82e+00, 1.84e+00, 1.86e+00, 1.88e+00, 1.9e+00, 1.92e+00, 1.94e+00, 1.96e+00, 1.98e+00, 2e+00] +gain1.y=[0e+00, 5.000000186264474e-02, 1.000000037252895e-01, 1.500000093132189e-01, 2.000000074505756e-01, 2.499999962747083e-01, 3.00000018626444e-01, 3.499999925494183e-01, 4.000000149011346e-01, 4.499999701977309e-01, 4.999999925494416e-01, 5.500000149011524e-01, 6.00000037252863e-01, 6.500000000000711e-01, 6.999999850988478e-01, 7.499999701977664e-01, 8.000000298022691e-01, 8.500000149011346e-01, 8.999999403954617e-01, 9.499999999999645e-01, 9.999999850988832e-01, 1.049999985098741e+00, 1.100000029802305e+00, 1.149999955296579e+00, 1.200000074505726e+00, 1.25e+00, 1.299999999999858e+00, 1.349999970197838e+00, 1.399999970197696e+00, 1.450000089406843e+00, 1.499999940395533e+00, 1.549999940395391e+00, 1.600000059604538e+00, 1.649999910593228e+00, 1.700000029802376e+00, 1.750000029802234e+00, 1.799999880790923e+00, 1.850000000000071e+00, 1.899999999999929e+00, 1.950000119209077e+00, 1.999999970197766e+00, 2.049999970197624e+00, 2.099999970197482e+00, 2.150000059604751e+00, 2.200000059604609e+00, 2.250000059604467e+00, 2.299999910593157e+00, 2.349999910593015e+00, 2.400000149011452e+00, 2.450000000000142e+00, 2.5e+00, 2.549999999999148e+00, 2.599999999998295e+00, 2.650000238416022e+00, 2.699999940397274e+00, 2.749999940396421e+00, 2.799999940395213e+00, 2.849999940394715e+00, 2.900000178812442e+00, 2.950000178811589e+00, 2.999999880792842e+00, 3.049999880791989e+00, 3.099999880791137e+00, 3.150000119208863e+00, 3.200000119208011e+00, 3.250000119207158e+00, 3.299999821188411e+00, 3.349999821187558e+00, 3.400000059605285e+00, 3.450000059604787e+00, 3.500000059603579e+00, 3.550000059602726e+00, 3.599999761583978e+00, 3.650000000001705e+00, 3.700000000000852e+00, 3.75e+00, 3.799999999999148e+00, 3.849999999998295e+00, 3.900000238416022e+00, 3.949999940397274e+00, 3.999999940396421e+00, 4.050000178813508e+00, 4.099999940395568e+00, 4.150000178810452e+00, 4.199999940396137e+00, 4.24999988079e+00, 4.300000119208863e+00, 4.349999880791705e+00, 4.400000119208295e+00, 4.449999880791137e+00, 4.50000011921e+00, 4.550000059603863e+00, 4.599999821189548e+00, 4.650000059604432e+00, 4.699999821186492e+00, 4.750000059605e+00, 4.800000298018747e+00, 4.849999761587389e+00, 4.899999999999432e+00, 4.949999761583411e+00, 5e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PID.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PID.txt new file mode 100644 index 0000000000..93cd17da6d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PID.txt @@ -0,0 +1,16 @@ +last-generated=2020-10-15 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "6", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +limPID.u_s=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +limPID.u_m=[5e-01, 5e-01] +limPID.y=[5e-01, 5.049999953433857e-01, 5.099999906867714e-01, 5.149999860301567e-01, 5.199999813735693e-01, 5.24999975785618e-01, 5.29999972060354e-01, 5.350000260770249e-01, 5.400000223517285e-01, 5.450000149011879e-01, 5.50000011175882e-01, 5.550000074505762e-01, 5.600000037252704e-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, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00] +noLimPID.y=[5e-01, 5.049999953433857e-01, 5.099999906867714e-01, 5.149999860301567e-01, 5.199999813735693e-01, 5.24999975785618e-01, 5.29999972060354e-01, 5.350000260770249e-01, 5.400000223517285e-01, 5.450000149011879e-01, 5.50000011175882e-01, 5.550000074505762e-01, 5.600000037252704e-01, -9.952290088252989e+00, -9.052030614875273e+00, -8.237973679077834e+00, -7.501870384452208e+00, -6.836279029675234e+00, -6.23449319202321e+00, -5.690451499972388e+00, -5.198658607042629e+00, -4.754133427134535e+00, -4.352372601280627e+00, -3.98933115239112e+00, -3.661329580766244e+00, -3.365019559860229e+00, 6.960971704256596e+00, 6.351591737898935e+00, 5.8007050191013e+00, 5.302713956885609e+00, 4.852592506524368e+00, 4.445779416682665e+00, 4.078145256666335e+00, 3.74596351470655e+00, 3.445863826758359e+00, 3.174799290371137e+00, 2.930009462690693e+00, 2.708991867097916e+00, -8.007813098757234e+00, -7.292609205784988e+00, -6.645978820816525e+00, -6.061356824613599e+00, -5.532839123044156e+00, -5.055091232277409e+00, -4.623283289384259e+00, -4.233044186743177e+00, -3.880417867810531e+00, -3.561817610306849e+00, -3.274007745282737e+00, -3.01406478829128e+00, -2.779341697692871e+00, 7.490917981460541e+00, 6.831112154355686e+00, 6.234584633073051e+00, 5.69529882897934e+00, 5.207799992553523e+00, 4.767168145892856e+00, 4.368945807517083e+00, 4.009095103929908e+00, 3.683965357884337e+00, 3.390244679198751e+00, 3.124947673692733e+00, 2.88537703985181e+00, -7.848211417913685e+00, -7.148197185545346e+00, -6.515319835095553e+00, -5.94315959038448e+00, -5.425887459776115e+00, -4.958320461878563e+00, -4.535723591436895e+00, -4.153816748590518e+00, -3.808730621090627e+00, -3.496962926543181e+00, -3.215338745630475e+00, -2.960990423273568e+00, -2.731321811676025e+00, 7.534368809725732e+00, 6.870428324297951e+00, 6.270159536016375e+00, 5.727487728321822e+00, 5.236925686520907e+00, 4.793522459424533e+00, 4.392791955273442e+00, 4.030672458608609e+00, 3.703489211834343e+00, 3.407910069650518e+00, 3.14093197280038e+00, 2.899841418905063e+00, -7.835122715376613e+00, -7.136355890073677e+00, -6.504606737191692e+00, -5.93346405788314e+00, -5.417114608259317e+00, -4.950382553132984e+00, -4.528540993492846e+00, -4.147317935728741e+00, -3.802850504922505e+00, -3.491642375993794e+00, -3.210524596755862e+00, -2.956634515413885e+00, -2.727380275726318e+00] +limP.y=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01, -5e-01] +limPI.y=[5e-01, 5.049999953433857e-01, 5.099999906867714e-01, 5.149999860301567e-01, 5.199999813735693e-01, 5.24999975785618e-01, 5.29999972060354e-01, 5.350000260770249e-01, 5.400000223517285e-01, 5.450000149011879e-01, 5.50000011175882e-01, 5.550000074505762e-01, 5.600000037252704e-01, -4.400000000000355e-01, -4.449999925494239e-01, -4.499999850988832e-01, -4.550000149011346e-01, -4.600000074505673e-01, -4.649999999999467e-01, -4.699999999999823e-01, -4.749999925494416e-01, -4.799999925494682e-01, -4.850000149011523e-01, -4.900000074505495e-01, -4.950000074505406e-01, -5e-01, 5.04999999999929e-01, 5.099999850989188e-01, 5.149999850988477e-01, 5.199999850990253e-01, 5.249999701977665e-01, 5.299999701976954e-01, 5.350000298022691e-01, 5.400000149008681e-01, 5.450000149011879e-01, 5.500000149011168e-01, 5.550000000001065e-01, 5.600000000000355e-01, -4.400000000000355e-01, -4.450000000001066e-01, -4.499999850988832e-01, -4.550000149011346e-01, -4.600000149010635e-01, -4.649999999999467e-01, -4.699999999999823e-01, -4.750000000000888e-01, -4.79999985098901e-01, -4.850000149011523e-01, -4.900000149010812e-01, -4.949999999999289e-01, -5e-01, 5.049999999998579e-01, 5.099999999997158e-01, 5.149999999995737e-01, 5.199999701979974e-01, 5.249999701978553e-01, 5.299999701976776e-01, 5.350000298022158e-01, 5.400000298020737e-01, 5.450000298019316e-01, 5.500000000003552e-01, 5.550000000002131e-01, 5.60000000000071e-01, -4.4e-01, -4.45e-01, -4.5e-01, -4.55e-01, -4.6e-01, -4.65e-01, -4.7e-01, -4.75e-01, -4.8e-01, -4.85e-01, -4.9e-01, -4.95e-01, -5e-01, 5.049999999998579e-01, 5.099999999997158e-01, 5.149999999995737e-01, 5.199999701979974e-01, 5.249999701978553e-01, 5.299999701976776e-01, 5.350000298022158e-01, 5.400000298020737e-01, 5.450000298019316e-01, 5.500000000003552e-01, 5.550000000002131e-01, 5.60000000000071e-01, -4.4e-01, -4.45e-01, -4.5e-01, -4.55e-01, -4.6e-01, -4.65e-01, -4.7e-01, -4.75e-01, -4.8e-01, -4.85e-01, -4.9e-01, -4.95e-01, -5e-01] +limPD.y=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-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, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -1e+00, -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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDInitialDerivativeOutput.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDInitialDerivativeOutput.txt new file mode 100644 index 0000000000..c4e8eb30f9 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDInitialDerivativeOutput.txt @@ -0,0 +1,13 @@ +last-generated=2021-04-30 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "3", + "numerical Jacobians": "0" +} +time=[0e+00, 2.000000029802322e-01] +limPID.y=[2.000000029802322e-01, 1.637323956657642e-01, 1.340515780397024e-01, 1.09754651384102e-01, 8.985718578826983e-02, 7.356503337125767e-02, 6.022717387193266e-02, 4.930820801069234e-02, 4.036892047772475e-02, 3.305059706008012e-02, 2.706082340238934e-02, 2.215831070928619e-02, 1.814527410623112e-02, 1.485992618116706e-02, 1.21706925285995e-02, 9.967099716310648e-03, 8.162441600101095e-03, 6.684211996261016e-03, 5.473475251068925e-03, 4.482537654406879e-03, 3.670969908470475e-03, 3.006509154281315e-03, 2.462431107340098e-03, 2.016579381817847e-03, 1.651466543068693e-03, 1.352334162220359e-03, 1.107365857944015e-03, 9.068860641001513e-04, 7.42683778607608e-04, 6.082897544349083e-04, 4.981867461559625e-04, 4.079847521410948e-04, 3.341136744959179e-04, 2.736095271319089e-04, 2.242045912022062e-04, 1.839660849048837e-04, 1.512768050662869e-04, 1.248629106112001e-04, 1.033595493413561e-04, 8.538121270281738e-05, 7.0968813177785e-05, 5.925938804931915e-05, 4.945088970149428e-05, 4.10868915459759e-05, 3.399928178485262e-05, 2.794677580029565e-05, 2.278315771174431e-05, 1.822647352836766e-05, 1.445348601678522e-05, 1.158960614542508e-05, 8.962206266005524e-06, 6.87781013609358e-06, 5.382428668839482e-06, 4.229282179437137e-06, 3.341101553592752e-06, 2.712020327639719e-06, 2.280988483331259e-06, 1.986948322969379e-06, 1.768846750216611e-06, 1.619389787543014e-06, 1.688792042613292e-06, 1.793147954684967e-06, 1.892675225944911e-06, 1.947590360710273e-06, 1.918111517577516e-06, 1.764454254397068e-06, 1.732127867411867e-06, 1.794568299161417e-06, 1.824927797560019e-06, 1.809138302137314e-06, 1.733132219732508e-06, 1.582841951293076e-06, 1.370469477191658e-06, 1.315187765014957e-06, 1.257571048272755e-06, 1.197619326095723e-06, 1.135332012902917e-06, 1.070710151381813e-06, 1.003753285085139e-06, 9.3446141349261e-07, 8.628339384870768e-07, 7.888719844620687e-07, 7.125749685413921e-07, 6.339423527455374e-07, 5.52975253941089e-07, 4.701715763985888e-07, 4.464904567869981e-07, 4.228091323183344e-07, 3.99128012706161e-07, 3.754468646728182e-07, 3.517657450608672e-07, 3.280844205922038e-07, 3.044033009801152e-07, 2.807221529467724e-07, 2.570408568990455e-07, 2.33359708865888e-07, 2.096785750427311e-07, 1.859974412206259e-07, 1.623161309624308e-07, 1.386349971397998e-07, 1.149538633171687e-07] +limPD.y=[2.000000029802322e-01, 1.637323956657642e-01, 1.340515780397024e-01, 1.09754651384102e-01, 8.985718578826983e-02, 7.356503337125767e-02, 6.022717387193266e-02, 4.930820801069234e-02, 4.036892047772475e-02, 3.305059706008012e-02, 2.706082340238934e-02, 2.215831070928619e-02, 1.814527410623112e-02, 1.485992618116706e-02, 1.21706925285995e-02, 9.967099716310648e-03, 8.162441600101095e-03, 6.684211996261016e-03, 5.473475251068925e-03, 4.482537654406879e-03, 3.670969908470475e-03, 3.006509154281315e-03, 2.462431107340098e-03, 2.016579381817847e-03, 1.651466543068693e-03, 1.352334162220359e-03, 1.107365857944015e-03, 9.068860641001513e-04, 7.42683778607608e-04, 6.082897544349083e-04, 4.981867461559625e-04, 4.079847521410948e-04, 3.341136744959179e-04, 2.736095271319089e-04, 2.242045912022062e-04, 1.839660849048837e-04, 1.512768050662869e-04, 1.248629106112001e-04, 1.033595493413561e-04, 8.538121270281738e-05, 7.0968813177785e-05, 5.925938804931915e-05, 4.945088970149428e-05, 4.10868915459759e-05, 3.399928178485262e-05, 2.794677580029565e-05, 2.278315771174431e-05, 1.822647352836766e-05, 1.445348601678522e-05, 1.158960614542508e-05, 8.962206266005524e-06, 6.87781013609358e-06, 5.382428668839482e-06, 4.229292638655176e-06, 3.341136341748155e-06, 2.712093542017845e-06, 2.281117176774641e-06, 1.987152049854319e-06, 1.769147906936282e-06, 1.619804176113647e-06, 1.689299086122983e-06, 1.793752541310205e-06, 1.893381107719632e-06, 1.948400265734409e-06, 1.919026923774287e-06, 1.765475730988474e-06, 1.733257346290996e-06, 1.795806917185211e-06, 1.826274645236826e-06, 1.810591561272234e-06, 1.734689274737751e-06, 1.584499391575665e-06, 1.372223551816418e-06, 1.317038586938171e-06, 1.259516457453738e-06, 1.199657276179317e-06, 1.137460571884735e-06, 1.072927272227134e-06, 1.006056807752684e-06, 9.368492916266704e-07, 8.653041831810642e-07, 7.914224918991872e-07, 7.15203692365974e-07, 6.366471903184391e-07, 5.557542720185668e-07, 4.730222738656287e-07, 4.493711959405873e-07, 4.257199418035838e-07, 4.020688922999236e-07, 3.78417814374554e-07, 3.547667648708938e-07, 3.311155107338906e-07, 3.074644612302304e-07, 2.838133833048608e-07, 2.601621291678576e-07, 2.365110796641974e-07, 2.12860001738345e-07, 1.892089380243129e-07, 1.655576980981644e-07, 1.419066343836495e-07, 1.182555706691346e-07] +limPID.D.y=[2.000000029802322e-01, 1.637323956657642e-01, 1.340515780397024e-01, 1.09754651384102e-01, 8.985718578826983e-02, 7.356503337125767e-02, 6.022717387193266e-02, 4.930820801069234e-02, 4.036892047772475e-02, 3.305059706008012e-02, 2.706082340238934e-02, 2.215831070928619e-02, 1.814527410623112e-02, 1.485992618116706e-02, 1.21706925285995e-02, 9.967099716310648e-03, 8.162441600101095e-03, 6.684211996261016e-03, 5.473475251068925e-03, 4.482537654406879e-03, 3.670969908470475e-03, 3.006509154281315e-03, 2.462431107340098e-03, 2.016579381817847e-03, 1.651466543068693e-03, 1.352334162220359e-03, 1.107365857944015e-03, 9.068860641001513e-04, 7.42683778607608e-04, 6.082897544349083e-04, 4.981867461559625e-04, 4.079847521410948e-04, 3.341136744959179e-04, 2.736095271319089e-04, 2.242045912022062e-04, 1.839660849048837e-04, 1.512768050662869e-04, 1.248629106112001e-04, 1.033595493413561e-04, 8.538121270281738e-05, 7.0968813177785e-05, 5.925938804931915e-05, 4.945088970149428e-05, 4.10868915459759e-05, 3.399928178485262e-05, 2.794677580029565e-05, 2.278315771174431e-05, 1.822647352836766e-05, 1.445348601678522e-05, 1.158960614542508e-05, 8.962206266005524e-06, 6.87781013609358e-06, 5.382428668839482e-06, 4.229292638655176e-06, 3.341136341748155e-06, 2.712093542017845e-06, 2.281117176774641e-06, 1.987152049854319e-06, 1.769147906936282e-06, 1.619804176113647e-06, 1.689299086122983e-06, 1.793752541310205e-06, 1.893381107719632e-06, 1.948400265734409e-06, 1.919026923774287e-06, 1.765475730988474e-06, 1.733257346290996e-06, 1.795806917185211e-06, 1.826274645236826e-06, 1.810591561272234e-06, 1.734689274737751e-06, 1.584499391575665e-06, 1.372223551816418e-06, 1.317038586938171e-06, 1.259516457453738e-06, 1.199657276179317e-06, 1.137460571884735e-06, 1.072927272227134e-06, 1.006056807752684e-06, 9.368492916266704e-07, 8.653041831810642e-07, 7.914224918991872e-07, 7.15203692365974e-07, 6.366471903184391e-07, 5.557542720185668e-07, 4.730222738656287e-07, 4.493711959405873e-07, 4.257199418035838e-07, 4.020688922999236e-07, 3.78417814374554e-07, 3.547667648708938e-07, 3.311155107338906e-07, 3.074644612302304e-07, 2.838133833048608e-07, 2.601621291678576e-07, 2.365110796641974e-07, 2.12860001738345e-07, 1.892089380243129e-07, 1.655576980981644e-07, 1.419066343836495e-07, 1.182555706691346e-07] +limPD.D.y=[2.000000029802322e-01, 1.637323956657642e-01, 1.340515780397024e-01, 1.09754651384102e-01, 8.985718578826983e-02, 7.356503337125767e-02, 6.022717387193266e-02, 4.930820801069234e-02, 4.036892047772475e-02, 3.305059706008012e-02, 2.706082340238934e-02, 2.215831070928619e-02, 1.814527410623112e-02, 1.485992618116706e-02, 1.21706925285995e-02, 9.967099716310648e-03, 8.162441600101095e-03, 6.684211996261016e-03, 5.473475251068925e-03, 4.482537654406879e-03, 3.670969908470475e-03, 3.006509154281315e-03, 2.462431107340098e-03, 2.016579381817847e-03, 1.651466543068693e-03, 1.352334162220359e-03, 1.107365857944015e-03, 9.068860641001513e-04, 7.42683778607608e-04, 6.082897544349083e-04, 4.981867461559625e-04, 4.079847521410948e-04, 3.341136744959179e-04, 2.736095271319089e-04, 2.242045912022062e-04, 1.839660849048837e-04, 1.512768050662869e-04, 1.248629106112001e-04, 1.033595493413561e-04, 8.538121270281738e-05, 7.0968813177785e-05, 5.925938804931915e-05, 4.945088970149428e-05, 4.10868915459759e-05, 3.399928178485262e-05, 2.794677580029565e-05, 2.278315771174431e-05, 1.822647352836766e-05, 1.445348601678522e-05, 1.158960614542508e-05, 8.962206266005524e-06, 6.87781013609358e-06, 5.382428668839482e-06, 4.229292638655176e-06, 3.341136341748155e-06, 2.712093542017845e-06, 2.281117176774641e-06, 1.987152049854319e-06, 1.769147906936282e-06, 1.619804176113647e-06, 1.689299086122983e-06, 1.793752541310205e-06, 1.893381107719632e-06, 1.948400265734409e-06, 1.919026923774287e-06, 1.765475730988474e-06, 1.733257346290996e-06, 1.795806917185211e-06, 1.826274645236826e-06, 1.810591561272234e-06, 1.734689274737751e-06, 1.584499391575665e-06, 1.372223551816418e-06, 1.317038586938171e-06, 1.259516457453738e-06, 1.199657276179317e-06, 1.137460571884735e-06, 1.072927272227134e-06, 1.006056807752684e-06, 9.368492916266704e-07, 8.653041831810642e-07, 7.914224918991872e-07, 7.15203692365974e-07, 6.366471903184391e-07, 5.557542720185668e-07, 4.730222738656287e-07, 4.493711959405873e-07, 4.257199418035838e-07, 4.020688922999236e-07, 3.78417814374554e-07, 3.547667648708938e-07, 3.311155107338906e-07, 3.074644612302304e-07, 2.838133833048608e-07, 2.601621291678576e-07, 2.365110796641974e-07, 2.12860001738345e-07, 1.892089380243129e-07, 1.655576980981644e-07, 1.419066343836495e-07, 1.182555706691346e-07] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDInitialState.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDInitialState.txt new file mode 100644 index 0000000000..21a37f9c7f --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDInitialState.txt @@ -0,0 +1,13 @@ +last-generated=2021-04-30 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "3", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +limPID.I.y=[2.5e-01, 2.648347917490785e-01, 2.793437248907814e-01, 2.935335645527695e-01, 3.074113738859043e-01, 3.209841539373645e-01, 3.342584985179366e-01, 3.472410734633364e-01, 3.599384151450494e-01, 3.723565892071595e-01, 3.84501962060119e-01, 3.963803953958113e-01, 4.079977602711207e-01, 4.193598979527058e-01, 4.304722838989572e-01, 4.413404996562728e-01, 4.519699849445077e-01, 4.62365863864955e-01, 4.725333082123843e-01, 4.824772798567049e-01, 4.922026963116993e-01, 5.017144145513708e-01, 5.110171448205825e-01, 5.201153121517313e-01, 5.290136384380102e-01, 5.377163290977478e-01, 5.462277611718898e-01, 5.545521289999338e-01, 5.626935949242997e-01, 5.706561273333302e-01, 5.7844357762517e-01, 5.860599857452123e-01, 5.935089640737523e-01, 6.007941866605983e-01, 6.079193328397474e-01, 6.148878972985005e-01, 6.21703257434822e-01, 6.283689109770939e-01, 6.348879964029885e-01, 6.412638515819924e-01, 6.474994980213683e-01, 6.535981915060304e-01, 6.595627742698355e-01, 6.653963286052201e-01, 6.711016906808966e-01, 6.766816443276022e-01, 6.821389153168573e-01, 6.874763375838584e-01, 6.926963980626114e-01, 6.978017639540424e-01, 7.027949690818787e-01, 7.076783822237548e-01, 7.124545068026762e-01, 7.171256078028178e-01, 7.216941021078125e-01, 7.261621899264453e-01, 7.305320491001064e-01, 7.348058849934973e-01, 7.389857837848666e-01, 7.430738316465465e-01, 7.470719719828374e-01, 7.509822790020536e-01, 7.548066955611739e-01, 7.585470097974096e-01, 7.622051290645097e-01, 7.657827819116673e-01, 7.692818550709694e-01, 7.72703999580809e-01, 7.760509824867914e-01, 7.793244131159823e-01, 7.825259007918748e-01, 7.856569952502227e-01, 7.887192877721296e-01, 7.917142453799036e-01, 7.946434589354581e-01, 7.975082397460938e-01, 8.003101375240484e-01, 8.030504039839153e-01, 8.057304696397266e-01, 8.08351570753951e-01, 8.109151094667852e-01, 8.134223812853699e-01, 8.158744590899536e-01, 8.182727137961237e-01, 8.206182778974773e-01, 8.229122107658846e-01, 8.251557914397522e-01, 8.273500193716818e-01, 8.294960866534324e-01, 8.315949469627308e-01, 8.336477327950753e-01, 8.356553263929984e-01, 8.376188245719883e-01, 8.395391689039631e-01, 8.414173726685362e-01, 8.432542107254821e-01, 8.450507559665463e-01, 8.468077728996652e-01, 8.485262361465952e-01, 8.502069099751266e-01, 8.518506288528442e-01] +limPID.D.y=[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, 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] +limPI.I.y=[2.5e-01, 2.648347917490785e-01, 2.793437248907814e-01, 2.935335645527695e-01, 3.074113738859043e-01, 3.209841539373645e-01, 3.342584985179366e-01, 3.472410734633364e-01, 3.599384151450494e-01, 3.723565892071595e-01, 3.84501962060119e-01, 3.963803953958113e-01, 4.079977602711207e-01, 4.193598979527058e-01, 4.304722838989572e-01, 4.413404996562728e-01, 4.519699849445077e-01, 4.62365863864955e-01, 4.725333082123843e-01, 4.824772798567049e-01, 4.922026963116993e-01, 5.017144145513708e-01, 5.110171448205825e-01, 5.201153121517313e-01, 5.290136384380102e-01, 5.377163290977478e-01, 5.462277611718898e-01, 5.545521289999338e-01, 5.626935949242997e-01, 5.706561273333302e-01, 5.7844357762517e-01, 5.860599857452123e-01, 5.935089640737523e-01, 6.007941866605983e-01, 6.079193328397474e-01, 6.148878972985005e-01, 6.21703257434822e-01, 6.283689109770939e-01, 6.348879964029885e-01, 6.412638515819924e-01, 6.474994980213683e-01, 6.535981915060304e-01, 6.595627742698355e-01, 6.653963286052201e-01, 6.711016906808966e-01, 6.766816443276022e-01, 6.821389153168573e-01, 6.874763375838584e-01, 6.926963980626114e-01, 6.978017639540424e-01, 7.027949690818787e-01, 7.076783822237548e-01, 7.124545068026762e-01, 7.171256078028178e-01, 7.216941021078125e-01, 7.261621899264453e-01, 7.305320491001064e-01, 7.348058849934973e-01, 7.389857837848666e-01, 7.430738316465465e-01, 7.470719719828374e-01, 7.509822790020536e-01, 7.548066955611739e-01, 7.585470097974096e-01, 7.622051290645097e-01, 7.657827819116673e-01, 7.692818550709694e-01, 7.72703999580809e-01, 7.760509824867914e-01, 7.793244131159823e-01, 7.825259007918748e-01, 7.856569952502227e-01, 7.887192877721296e-01, 7.917142453799036e-01, 7.946434589354581e-01, 7.975082397460938e-01, 8.003101375240484e-01, 8.030504039839153e-01, 8.057304696397266e-01, 8.08351570753951e-01, 8.109151094667852e-01, 8.134223812853699e-01, 8.158744590899536e-01, 8.182727137961237e-01, 8.206182778974773e-01, 8.229122107658846e-01, 8.251557914397522e-01, 8.273500193716818e-01, 8.294960866534324e-01, 8.315949469627308e-01, 8.336477327950753e-01, 8.356553263929984e-01, 8.376188245719883e-01, 8.395391689039631e-01, 8.414173726685362e-01, 8.432542107254821e-01, 8.450507559665463e-01, 8.468077728996652e-01, 8.485262361465952e-01, 8.502069099751266e-01, 8.518506288528442e-01] +limPID.D.u=[2.5e-01, 2.5e-01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDScale.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDScale.txt new file mode 100644 index 0000000000..6fef86583b --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDScale.txt @@ -0,0 +1,14 @@ +last-generated=2020-10-27 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "6", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+02] +pidSca.y=[1e+00, 4.789353311061859e-01, 3.822728991508484e-01, 2.069125473499298e-01, 3.256407380104065e-02, -8.96126925945282e-02, -1.420066803693771e-01, -1.338689178228378e-01, -8.905824273824692e-02, -3.38137298822403e-02, 1.184174045920372e-02, 3.781681135296822e-02, 4.341181367635727e-02, 3.41964103281498e-02, 1.814253069460389e-02, 2.417445881292224e-03, -8.448862470686436e-03, -1.296756137162447e-02, -1.205309107899666e-02, -7.901253178715706e-03, -2.886770758777857e-03, 1.20341859292239e-03, 3.488563466817141e-03, 3.933259751647711e-03, 3.058372065424919e-03, 1.590027124620974e-03, -9.014930576086044e-02, -2.367985099554062e-01, -2.615013122558593e-01, -2.001792341470721e-01, -1.014385521411896e-01, -7.719055749475956e-03, 5.506547912955284e-02, 7.932742685079575e-02, 7.155080139636993e-02, 4.538770765066147e-02, 1.508557889610529e-02, -8.934730663895607e-03, -2.180192992091179e-02, -2.366667613387108e-02, -1.787730678915977e-02, -8.857160806655884e-03, -4.166644066572189e-04, 5.155478604137897e-03, 7.229476235806942e-03, 6.432235240936279e-03, 4.016883671283722e-03, 1.270608510822058e-03, -8.77715356182307e-04, -2.005331218242645e-03, -2.140825847163796e-03, 8.873914927244186e-02, 2.351881712675095e-01, 2.602470219135284e-01, 1.995226591825485e-01, 1.013631001114838e-01, 8.041718974708961e-03, -5.458016321063008e-02, -7.888056337833398e-02, -7.126054912805557e-02, -4.528459161520004e-02, -1.513375155627728e-02, 8.803180418908596e-03, 2.165543287992477e-02, 2.355383709073067e-02, 1.781958527863026e-02, 8.852324448525906e-03, 4.481221840251237e-04, -5.110226105898619e-03, -7.18884589150548e-03, -6.406914442777634e-03, -4.009198397397995e-03, -1.276727532967925e-03, 8.645629859529436e-04, 1.991549739614129e-03, 2.1307363640517e-03, -8.870939910411835e-02, -2.351909279823303e-01, -2.602469623088837e-01, -1.995230317115784e-01, -1.013630777597427e-01, -8.040299639105797e-03, 5.458372458815575e-02, 7.888416945934296e-02, 7.126276195049286e-02, 4.528495669364929e-02, 1.513325050473213e-02, -8.804482407867908e-03, -2.165680006146431e-02, -2.355478145182133e-02, -1.781991124153137e-02, -8.851906284689903e-03, -4.466319514904171e-04, 5.111661273986101e-03, 7.189638447016478e-03, 6.406730972230434e-03, 4.00816835463047e-03, 1.275305286981165e-03, -8.658168953843415e-04, -1.99226732365787e-03, -2.130822045728564e-03] +pidNoSca.y=[1e+00, 4.789353311061859e-01, 3.822728991508484e-01, 2.069125473499298e-01, 3.256407380104065e-02, -8.96126925945282e-02, -1.420066803693771e-01, -1.338689178228378e-01, -8.905824273824692e-02, -3.38137298822403e-02, 1.184174045920372e-02, 3.781681135296822e-02, 4.341181367635727e-02, 3.41964103281498e-02, 1.814253069460389e-02, 2.417445881292224e-03, -8.448862470686436e-03, -1.296756137162447e-02, -1.205309107899666e-02, -7.901253178715706e-03, -2.886770758777857e-03, 1.20341859292239e-03, 3.488563466817141e-03, 3.933259751647711e-03, 3.058372065424919e-03, 1.590027124620974e-03, -9.014930576086044e-02, -2.367985099554062e-01, -2.615013122558593e-01, -2.001792341470721e-01, -1.014385521411896e-01, -7.719055749475956e-03, 5.506547912955284e-02, 7.932742685079575e-02, 7.155080139636993e-02, 4.538770765066147e-02, 1.508557889610529e-02, -8.934730663895607e-03, -2.180192992091179e-02, -2.366667613387108e-02, -1.787730678915977e-02, -8.857160806655884e-03, -4.166644066572189e-04, 5.155478604137897e-03, 7.229476235806942e-03, 6.432235240936279e-03, 4.016883671283722e-03, 1.270608510822058e-03, -8.77715356182307e-04, -2.005331218242645e-03, -2.140825847163796e-03, 8.873914927244186e-02, 2.351881712675095e-01, 2.602470219135284e-01, 1.995226591825485e-01, 1.013631001114838e-01, 8.041718974708961e-03, -5.458016321063008e-02, -7.888056337833398e-02, -7.126054912805557e-02, -4.528459161520004e-02, -1.513375155627728e-02, 8.803180418908596e-03, 2.165543287992477e-02, 2.355383709073067e-02, 1.781958527863026e-02, 8.852324448525906e-03, 4.481221840251237e-04, -5.110226105898619e-03, -7.18884589150548e-03, -6.406914442777634e-03, -4.009198397397995e-03, -1.276727532967925e-03, 8.645629859529436e-04, 1.991549739614129e-03, 2.1307363640517e-03, -8.870939910411835e-02, -2.351909279823303e-01, -2.602469623088837e-01, -1.995230317115784e-01, -1.013630777597427e-01, -8.040299639105797e-03, 5.458372458815575e-02, 7.888416945934296e-02, 7.126276195049286e-02, 4.528495669364929e-02, 1.513325050473213e-02, -8.804482407867908e-03, -2.165680006146431e-02, -2.355478145182133e-02, -1.781991124153137e-02, -8.851906284689903e-03, -4.466319514904171e-04, 5.111661273986101e-03, 7.189638447016478e-03, 6.406730972230434e-03, 4.00816835463047e-03, 1.275305286981165e-03, -8.658168953843415e-04, -1.99226732365787e-03, -2.130822045728564e-03] +pla1.y=[0e+00, 5.1559033203125e+02, 9.565138549804688e+02, 1.254010986328125e+03, 1.37100830078125e+03, 1.336908569335938e+03, 1.215340942382812e+03, 1.07322900390625e+03, 9.598469848632812e+02, 8.985159912109375e+02, 8.889110717773438e+02, 9.155338745117188e+02, 9.576796875e+02, 9.973937377929688e+02, 1.023802917480469e+03, 1.033819091796875e+03, 1.03029248046875e+03, 1.019064758300781e+03, 1.006182922363281e+03, 9.960396118164062e+02, 9.906620483398438e+02, 9.8994873046875e+02, 9.924576416015625e+02, 9.963055419921875e+02, 9.998812255859375e+02, 1.002224792480469e+03, 6.671682739257812e+02, 4.928116455078125e+02, 2.346250152587882e+02, -1.384116291999078e+00, -1.533397521972656e+02, -2.061290283203125e+02, -1.793009490966797e+02, -1.090006256103516e+02, -3.140669250488281e+01, 2.796784400939941e+01, 5.80350341796875e+01, 6.029745101928711e+01, 4.39409065246582e+01, 2.039728736877441e+01, -8.29462468624115e-01, -1.428817462921143e+01, -1.875493621826172e+01, -1.609680938720703e+01, -9.624416351318359e+00, -2.601985216140747e+00, 2.700508117675781e+00, 5.325768947601318e+00, 5.446922779083252e+00, 3.915814161300659e+00, 1.770267128944397e+00, 3.3592041015625e+02, 5.087093811035156e+02, 7.654321899414062e+02, 1.000479064941406e+03, 1.152078125000001e+03, 1.205006713867188e+03, 1.178601928710938e+03, 1.108780639648438e+03, 1.031561401367188e+03, 9.723833618164062e+02, 9.423389282226562e+02, 9.399805297851562e+02, 9.561929931640625e+02, 9.796039428710938e+02, 1.00074462890625e+03, 1.014172607421875e+03, 1.018653625488281e+03, 1.016035705566406e+03, 1.009607849121094e+03, 1.002619445800781e+03, 9.973338012695312e+02, 9.947091064453125e+02, 9.945777587890625e+02, 9.96094970703125e+02, 9.982282104492188e+02, 6.64072509765625e+02, 4.912832946777344e+02, 2.345622406005859e+02, -4.835880100727081e-01, -1.520836639404297e+02, -2.050157165527344e+02, -1.7860791015625e+02, -1.087823944091797e+02, -3.155963516235352e+01, 2.762020492553711e+01, 5.766434860229492e+01, 6.002176284790039e+01, 4.380791091918945e+01, 2.039565658569336e+01, -7.457870244979858e-01, -1.417414283752441e+01, -1.865499687194824e+01, -1.603548431396484e+01, -9.606104850769043e+00, -2.616883277893066e+00, 2.668593168258667e+00, 5.292293071746826e+00, 5.422306537628174e+00, 3.904057502746582e+00, 1.770305633544922e+00] +pla2.y=[0e+00, 5.1559033203125e+02, 9.565138549804688e+02, 1.254010986328125e+03, 1.37100830078125e+03, 1.336908569335938e+03, 1.215340942382812e+03, 1.07322900390625e+03, 9.598469848632812e+02, 8.985159912109375e+02, 8.889110717773438e+02, 9.155338745117188e+02, 9.576796875e+02, 9.973937377929688e+02, 1.023802917480469e+03, 1.033819091796875e+03, 1.03029248046875e+03, 1.019064758300781e+03, 1.006182922363281e+03, 9.960396118164062e+02, 9.906620483398438e+02, 9.8994873046875e+02, 9.924576416015625e+02, 9.963055419921875e+02, 9.998812255859375e+02, 1.002224792480469e+03, 6.671682739257812e+02, 4.928116455078125e+02, 2.346250152587882e+02, -1.384116291999078e+00, -1.533397521972656e+02, -2.061290283203125e+02, -1.793009490966797e+02, -1.090006256103516e+02, -3.140669250488281e+01, 2.796784400939941e+01, 5.80350341796875e+01, 6.029745101928711e+01, 4.39409065246582e+01, 2.039728736877441e+01, -8.29462468624115e-01, -1.428817462921143e+01, -1.875493621826172e+01, -1.609680938720703e+01, -9.624416351318359e+00, -2.601985216140747e+00, 2.700508117675781e+00, 5.325768947601318e+00, 5.446922779083252e+00, 3.915814161300659e+00, 1.770267128944397e+00, 3.3592041015625e+02, 5.087093811035156e+02, 7.654321899414062e+02, 1.000479064941406e+03, 1.152078125000001e+03, 1.205006713867188e+03, 1.178601928710938e+03, 1.108780639648438e+03, 1.031561401367188e+03, 9.723833618164062e+02, 9.423389282226562e+02, 9.399805297851562e+02, 9.561929931640625e+02, 9.796039428710938e+02, 1.00074462890625e+03, 1.014172607421875e+03, 1.018653625488281e+03, 1.016035705566406e+03, 1.009607849121094e+03, 1.002619445800781e+03, 9.973338012695312e+02, 9.947091064453125e+02, 9.945777587890625e+02, 9.96094970703125e+02, 9.982282104492188e+02, 6.64072509765625e+02, 4.912832946777344e+02, 2.345622406005859e+02, -4.835880100727081e-01, -1.520836639404297e+02, -2.050157165527344e+02, -1.7860791015625e+02, -1.087823944091797e+02, -3.155963516235352e+01, 2.762020492553711e+01, 5.766434860229492e+01, 6.002176284790039e+01, 4.380791091918945e+01, 2.039565658569336e+01, -7.457870244979858e-01, -1.417414283752441e+01, -1.865499687194824e+01, -1.603548431396484e+01, -9.606104850769043e+00, -2.616883277893066e+00, 2.668593168258667e+00, 5.292293071746826e+00, 5.422306537628174e+00, 3.904057502746582e+00, 1.770305633544922e+00] +pidSca.u_s=[1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 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, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDWithReset.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDWithReset.txt new file mode 100644 index 0000000000..2500bae31e --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDWithReset.txt @@ -0,0 +1,21 @@ +last-generated=2020-10-15 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "10", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+01] +limPIDPar.u_s=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +limPIDPar.u_m=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, -8.79280626828014e-02, -1.879213720517086e-01, -2.879234433172002e-01, -3.879229068745091e-01, -4.879210591316223e-01, -5.879210591316935e-01, -6.879212379456989e-01, -7.879218339918621e-01, -8.879218935966491e-01, -9.879218339920044e-01, -1.087921953201294e+00, -1.187921833992005e+00, -1.287921833992289e+00, -1.381839551714315e+00, -1.45594322681427e+00, -1.513909863363823e+00, -1.556925159839278e+00, -1.585616002250968e+00, -1.600569596667006e+00, -1.602407693862915e+00, -1.591777546102873e+00, -1.569351328362883e+00, -1.535826306404697e+00, -1.491918371093377e+00, -1.438355445861816e+00, -1.375874216550922e+00, -1.305217539666989e+00, -1.227130373851045e+00, -1.142356955786533e+00, -1.051634311676025e+00, -9.556918394485152e-01, -8.560215711587942e-01, -7.560193657903485e-01, -6.560179352788733e-01, -5.560178756713867e-01, -4.560212433356634e-01, -3.560218989834887e-01, -2.560220777988436e-01, -1.560226142398644e-01, -5.602335557341576e-02, 4.397630915040374e-02, 1.439763873819802e-01, 2.439760744568851e-01, 3.439761936663164e-01, 4.439762532711029e-01, 5.438222035577714e-01, 6.407830737459236e-01, 7.343493729497963e-01, 8.244631636811489e-01, 9.109043478965759e-01, 9.934408832596249e-01, 1.071879412470618e+00, 1.146054725771687e+00, 1.215826088923502e+00, 1.281080842018127e+00, 1.341734941354783e+00, 1.397730094303694e+00, 1.449032450825054e+00, 1.495633440282818e+00, 1.537546157836914e+00, 1.574805769434224e+00, 1.607467470043329e+00, 1.63560635785934e+00, 1.659314849890373e+00, 1.678702116012573e+00, 1.69389201424691e+00, 1.705022113340208e+00, 1.712242354021772e+00, 1.715713856685396e+00, 1.715607643127441e+00, 1.712103266027532e+00, 1.705387337573175e+00, 1.69565250567414e+00, 1.683095877988634e+00, 1.667918920516968e+00, 1.650324415253383e+00, 1.630516965781917e+00, 1.608701868188442e+00, 1.585082437090352e+00, 1.55986225605011e+00, 1.533240541017126e+00, 1.505414312433337e+00, 1.476576145548368e+00, 1.446913485237826e+00, 1.416609287261963e+00, 1.38583910337232e+00, 1.3547729851316e+00, 1.323573172025364e+00, 1.292395115476197e+00, 1.261385917663574e+00] +limPIDPar.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, -1e+00, -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.315523503317991e-01, -6.571659445762634e-01, -5.037250889426798e-01, -3.575196356073688e-01, -2.171710226446507e-01, -8.290482958321294e-02, 4.505741223692894e-02, 1.664286778186083e-01, 2.809155348876749e-01, 3.883358731785239e-01, 4.88552417948793e-01, 5.81452488899231e-01, 6.669358787605854e-01, 7.449573516662384e-01, 8.155255632948994e-01, 8.786920926935432e-01, 9.345236420631409e-01, 9.831281130858944e-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, 9.883176297633638e-01, 9.522520859825896e-01, 9.187181644735511e-01, 8.831523409044501e-01, 8.451948165893555e-01, 8.051964248354775e-01, 7.633561270882084e-01, 7.199461106456174e-01, 6.752906871646882e-01, 6.296642422676086e-01, 5.833237322271572e-01, 5.365244446481083e-01, 4.895150366530458e-01, 4.425296038834719e-01, 3.957895338535309e-01, 3.495044866330811e-01, 3.038718733146516e-01, 2.59076650225576e-01, 2.152896936843513e-01, 1.726691275835037e-01, 1.31359046850277e-01, 9.149040303039171e-02, 5.318083346648168e-02, 1.653424354411175e-02, -1.835806481540203e-02, -5.141770063036036e-02, -8.25795432876338e-02, -1.117895076048865e-01, -1.390072056313474e-01, -1.642016470432281e-01, -1.873551649217861e-01, -2.084596834170176e-01, -2.275169143860018e-01, -2.445394254793154e-01, -2.59547233581543e-01, -2.725703547479723e-01, -2.836458574309051e-01, -2.928184408220585e-01, -3.001396893892218e-01, -3.056672513484955e-01, -3.094646215580948e-01, -3.11600240316983e-01, -3.121470810327165e-01, -3.111819852843394e-01, -3.087852001190186e-01] +limPIDInp.u_s=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +limPIDInp.u_m=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, -8.371426761435474e-02, -1.837109744530678e-01, -2.837121367451687e-01, -3.837118387216607e-01, -4.837108850479126e-01, -5.83710825443339e-01, -6.837109446526997e-01, -7.837113022801416e-01, -8.837113022804259e-01, -9.837112426757812e-01, -1.083711361885071e+00, -1.183711242675781e+00, -1.283711361821691e+00, -1.374566357692213e+00, -1.445965051651001e+00, -1.501631900515733e+00, -1.542549116532241e+00, -1.569318660992175e+00, -1.582526199408328e+00, -1.582790851593018e+00, -1.57075903976725e+00, -1.547101511069753e+00, -1.512512664396392e+00, -1.467704700205489e+00, -1.41340172290802e+00, -1.350336129189652e+00, -1.279246007977496e+00, -1.200870713033018e+00, -1.11594840275344e+00, -1.025209903717041e+00, -9.293778194664486e-01, -8.297811627353893e-01, -7.297785997424855e-01, -6.297770500214366e-01, -5.297769904136658e-01, -4.29780775310598e-01, -3.297815203652483e-01, -2.297816693781387e-01, -1.297822803250366e-01, -2.978312224149704e-02, 7.021649032827604e-02, 1.702165722849829e-01, 2.702162742611911e-01, 3.702163636684421e-01, 4.702164530754089e-01, 5.693567724828519e-01, 6.650879979284234e-01, 7.575094154946715e-01, 8.464483380428528e-01, 9.316664934158325e-01, 1.012947992166304e+00, 1.090102814874307e+00, 1.162969215168103e+00, 1.231416281077994e+00, 1.295339226722717e+00, 1.354660207304443e+00, 1.409327367516065e+00, 1.459313181665179e+00, 1.504614550180082e+00, 1.545250058174133e+00, 1.581259639986827e+00, 1.612703020549413e+00, 1.639659714348636e+00, 1.662225941814408e+00, 1.680514216423035e+00, 1.694651376445346e+00, 1.704777851649411e+00, 1.711045732950188e+00, 1.713618277421118e+00, 1.712668061256409e+00, 1.708375832878995e+00, 1.700929147234723e+00, 1.690521381464301e+00, 1.677349988017718e+00, 1.661616206169128e+00, 1.643522692636159e+00, 1.623273570152632e+00, 1.601073308814556e+00, 1.5771242622085e+00, 1.551628947257996e+00, 1.524784788459216e+00, 1.496787612716273e+00, 1.467827972029084e+00, 1.43809152080111e+00, 1.407759189605713e+00, 1.377004502800933e+00, 1.345995009249002e+00, 1.314890801629196e+00, 1.283844829765231e+00, 1.253001809120178e+00] +limPIDInp.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, -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.99999973254151e-01, -8.000264236424139e-01, -6.328510046005249e-01, -4.818284304294963e-01, -3.374447009943612e-01, -1.988495689497846e-01, -6.630807851962334e-02, 5.993176251649857e-02, 1.795891284477222e-01, 2.92391694779745e-01, 3.981587476615014e-01, 4.967532139385454e-01, 5.880676507949829e-01, 6.720146102949381e-01, 7.485565192309829e-01, 8.177044104242848e-01, 8.795092736464234e-01, 9.340423941612244e-01, 9.814127498790235e-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, 9.741310147169567e-01, 9.409131376596037e-01, 9.072059457074095e-01, 8.711721057802945e-01, 8.328462243080139e-01, 7.924685678720118e-01, 7.503446115679606e-01, 7.067650801590964e-01, 6.620021893223066e-01, 6.163281202316284e-01, 5.70007339385441e-01, 5.232926905753459e-01, 4.764259159503862e-01, 4.29636850790459e-01, 3.831445872783661e-01, 3.371553880206348e-01, 2.91862819587753e-01, 2.474477981771719e-01, 2.04077240028109e-01, 1.619054675102234e-01, 1.210730067165422e-01, 8.170703173186773e-02, 4.392154890954791e-02, 7.816802021325057e-03, -2.651932835578918e-02, -5.901181511445989e-02, -8.959873416525865e-02, -1.182291870833367e-01, -1.448656396424864e-01, -1.694801449775696e-01, -1.920575563516094e-01, -2.125924299900059e-01, -2.310888578964286e-01, -2.475616024186451e-01, -2.620328068733215e-01, -2.745342999565994e-01, -2.851049483902419e-01, -2.93790980921989e-01, -3.00645433065888e-01, -3.0572709441185e-01, -3.091005877726137e-01, -3.10835273568125e-01, -3.110048481237108e-01, -3.096868014804011e-01, -3.06961864233017e-01] +limPIPar.u_s=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +limPIPar.u_m=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5.233544684060405e-02, 1.087012239084785e-01, 1.681779168646253e-01, 2.299038321298853e-01, 2.930780947208405e-01, 3.569621589180014e-01, 4.20881062135091e-01, 4.842238129377911e-01, 5.464428213420117e-01, 6.070534586906433e-01, 6.656325408886753e-01, 7.218162750490399e-01, 7.752985604982948e-01, 8.258277899773936e-01, 8.732047080993652e-01, 9.172787471222633e-01, 9.579450300762851e-01, 9.951413441182685e-01, 1.028844087308555e+00, 1.059065341949463e+00, 1.085849189520695e+00, 1.10926782031304e+00, 1.129418977852546e+00, 1.146421894287514e+00, 1.160414576530457e+00, 1.171550402158582e+00, 1.179995414061235e+00, 1.185925247431159e+00, 1.189523098268862e+00, 1.190976619720459e+00, 1.190475819979041e+00, 1.18821143486229e+00, 1.184373029562502e+00, 1.179146891343071e+00, 1.172714591026306e+00, 1.16525220107507e+00, 1.156928760969079e+00, 1.147905248195928e+00, 1.138334045176416e+00, 1.128358244895935e+00, 1.118111362119171e+00, 1.107716659673296e+00, 1.09728684028416e+00, 1.086924681961259e+00, 1.076722025871277e+00, 1.066760769096268e+00, 1.057112675795662e+00, 1.047839658946958e+00, 1.038994201339286e+00, 1.030619740486145e+00, 1.02275108570813e+00, 1.015414939865637e+00, 1.00863040744913e+00, 1.00240934466729e+00, 9.96757447719574e-01, 9.916742994843118e-01, 9.871540585772814e-01, 9.831861329084927e-01, 9.797556431005917e-01, 9.768441319465637e-01, 9.7443002259598e-01, 9.724888769742362e-01, 9.709939981897857e-01, 9.699171790282443e-01, 9.692286849021912e-01, 9.688981770235613e-01, 9.688947800243571e-01, 9.691874973224223e-01, 9.697453373369734e-01, 9.705377817153931e-01, 9.715349633332634e-01, 9.72707929641105e-01, 9.740285847220238e-01, 9.754705486419477e-01, 9.770081639289856e-01, 9.786181387568439e-01, 9.802780779466905e-01, 9.819674459522106e-01, 9.836677377650966e-01, 9.853613376617432e-01, 9.87033182011973e-01, 9.886692197017489e-01, 9.902573198006168e-01, 9.917870220771028e-01, 9.93249237537384e-01, 9.946365304730354e-01, 9.959427142248976e-01, 9.971632934852386e-01, 9.982946556157427e-01, 9.993345737457275e-01] +limPIPar.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5.450853011109351e-01, 5.806973424172009e-01, 6.073990567275639e-01, 6.257843407786541e-01, 6.36469841003418e-01, 6.400867698330044e-01, 6.372733141098353e-01, 6.286682430263679e-01, 6.149043997325625e-01, 5.966036915779114e-01, 5.743717915239932e-01, 5.487942823310853e-01, 5.204326368357647e-01, 4.898215235591296e-01, 4.574660062789917e-01, 4.238397749025439e-01, 3.893835709992872e-01, 3.545038533367642e-01, 3.195727204021954e-01, 2.849270403385162e-01, 2.508691527039111e-01, 2.176670439487871e-01, 1.855548172632807e-01, 1.547342529401153e-01, 1.253753006458282e-01, 9.761810732392881e-02, 7.157421575139448e-02, 4.732814072890985e-02, 2.493944778549746e-02, 4.444160964339972e-03, -1.414309987942256e-02, -3.082707882610681e-02, -4.563018605784491e-02, -5.859078790173513e-02, -6.976092606782913e-02, -7.920476854091935e-02, -8.699680678719619e-02, -9.322011144488272e-02, -9.796482671420013e-02, -1.013264805078506e-01, -1.034047318487777e-01, -1.043019969759631e-01, -1.041221629822797e-01, -1.029694243831414e-01, -1.009473279118538e-01, -9.81578945343002e-02, -9.470059740009892e-02, -9.067187520936021e-02, -8.616438209051297e-02, -8.126655220985413e-02, -7.606210049074007e-02, -7.062969790895993e-02, -6.504270018519835e-02, -5.936891383472603e-02, -5.367056280374527e-02, -4.800416737856335e-02, -4.242057791755788e-02, -3.696503401531982e-02, -3.167716910807649e-02, -2.65913438051939e-02, -2.173671050203403e-02, -1.71374780245221e-02, -1.281300058904001e-02, -8.778225639892051e-03, -5.043917335569859e-03, -1.616964867765253e-03, 1.499274978072234e-03, 4.304715905359772e-03, 6.802266060792552e-03, 8.997461758553982e-03, 1.089819491649592e-02, 1.251445056003914e-02, 1.385791922527596e-02, 1.49418020875133e-02, 1.578055508434772e-02, 1.638948159935722e-02, 1.67847187833652e-02, 1.698283827637153e-02, 1.700063204471304e-02, 1.685522124171257e-02, 1.656331812880113e-02, 1.614183093629522e-02, 1.560693251022519e-02, 1.497454959737543e-02, 1.42600042745471e-02, 1.347781373216321e-02, 1.264198146213004e-02, 1.176541654616715e-02, 1.086048804621077e-02, 9.938377887010574e-03] +limPIInp.u_s=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +limPIInp.u_m=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 7.608645812209094e-02, 1.537172124242489e-01, 2.320072577347836e-01, 3.101492411436375e-01, 3.874143958091736e-01, 4.631514370483004e-01, 5.367856871282899e-01, 6.078172060369745e-01, 6.758180418060683e-01, 7.404302358627319e-01, 8.013619147463339e-01, 8.583836887297627e-01, 9.113258959954695e-01, 9.600729493613611e-01, 1.004560828208923e+00, 1.044771826412477e+00, 1.08073042189106e+00, 1.112499489448125e+00, 1.140175675327759e+00, 1.163885235786438e+00, 1.183780329400195e+00, 1.200034730509394e+00, 1.21284032384205e+00, 1.222403637582935e+00, 1.228942155838013e+00, 1.232681514893786e+00, 1.233852624797976e+00, 1.232688902634492e+00, 1.229423407603012e+00, 1.224287390708923e+00, 1.217507355052242e+00, 1.209304315639185e+00, 1.199891824429887e+00, 1.189474473735582e+00, 1.178246736526489e+00, 1.166392672393033e+00, 1.154084539396968e+00, 1.141482735028626e+00, 1.128734720013893e+00, 1.115975856781006e+00, 1.103328335255912e+00, 1.090902066707691e+00, 1.078794025344245e+00, 1.067088972592511e+00, 1.055859804153442e+00, 1.045168270734611e+00, 1.035064559493531e+00, 1.025589006836088e+00, 1.016771801517401e+00, 1.008634209632874e+00, 1.001188986752134e+00, 9.944409011262563e-01, 9.883878937274736e-01, 9.830212641668414e-01, 9.783268570899963e-01, 9.74285301056167e-01, 9.708728732172121e-01, 9.680621673145471e-01, 9.658225197974294e-01, 9.641210436820984e-01, 9.629227510335446e-01, 9.621912232051946e-01, 9.6188867118849e-01, 9.619773028032907e-01, 9.62418794631958e-01, 9.631755360885004e-01, 9.642103337017737e-01, 9.654869411189086e-01, 9.669703230306922e-01, 9.686265587806702e-01, 9.704235721744019e-01, 9.723306931693113e-01, 9.743193349554273e-01, 9.763628919229648e-01, 9.784364104270935e-01, 9.805176178769667e-01, 9.825860301058597e-01, 9.846230110730149e-01, 9.866125658202803e-01, 9.8853999376297e-01, 9.903931548287117e-01, 9.921613368287969e-01, 9.938358633323364e-01, 9.954097328592115e-01, 9.968774318695068e-01, 9.982352206685629e-01, 9.994804881619698e-01, 1.000612256839806e+00, 1.001630548289003e+00, 1.002536416053772e+00] +limPIInp.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 7.701259812574753e-01, 7.810140812976732e-01, 7.83439873548849e-01, 7.781856633381188e-01, 7.660322189331055e-01, 7.477515984889085e-01, 7.24100780782858e-01, 6.958155485389337e-01, 6.636060990661925e-01, 6.281519532203674e-01, 5.900989991751754e-01, 5.500564769261771e-01, 5.08594314061478e-01, 4.662419963726553e-01, 4.234867691993713e-01, 3.807735633781033e-01, 3.385046324739895e-01, 2.970394297412139e-01, 2.566959045654549e-01, 2.177507430315018e-01, 1.80441255581594e-01, 1.449666188712954e-01, 1.114893774536151e-01, 8.013792262172278e-02, 5.100790038704872e-02, 2.41649485540805e-02, -3.532763978867821e-04, -2.253497637885324e-02, -4.239149448716678e-02, -5.995539948344231e-02, -7.527784103722571e-02, -8.842638910599764e-02, -9.948285205799845e-02, -1.085412795820342e-01, -1.157056391239166e-01, -1.210880544684909e-01, -1.248069085947258e-01, -1.269851594598463e-01, -1.277486977785001e-01, -1.272248178720474e-01, -1.255410738478538e-01, -1.228238654114844e-01, -1.191974283306721e-01, -1.147827327385727e-01, -1.096967682242393e-01, -1.040518227264132e-01, -9.795470819773575e-02, -9.150645644051054e-02, -8.480173251453403e-02, -7.792872190475464e-02, -7.096879263762979e-02, -6.399639860473072e-02, -5.707904518672367e-02, -5.027721347664993e-02, -4.364462569355965e-02, -3.722824303551557e-02, -3.106850360716937e-02, -2.519957326977693e-02, -1.964952754479794e-02, -1.444084011018276e-02, -9.590590614275276e-03, -5.110859207831562e-03, -1.008840011699738e-03, 2.71242307066287e-03, 6.053843069821596e-03, 9.01980307845811e-03, 1.161779731262847e-02, 1.385810291294451e-02, 1.575344260500007e-02, 1.731861941516399e-02, 1.857016735740225e-02, 1.952607334722362e-02, 2.020540724103641e-02, 2.062799142399704e-02, 2.081440389156342e-02, 2.078519244931444e-02, 2.056123811830473e-02, 2.016320912898916e-02, 1.961127985084094e-02, 1.892556436359882e-02, 1.812502876724874e-02, 1.722845813423258e-02, 1.625332986295078e-02, 1.521644893127395e-02, 1.413359586149454e-02, 1.301934160404057e-02, 1.188740662429479e-02, 1.075008262682264e-02, 9.618862904750352e-03, 8.50379467010498e-03] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDWithResetScale.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDWithResetScale.txt new file mode 100644 index 0000000000..da1812e4b7 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_PIDWithResetScale.txt @@ -0,0 +1,15 @@ +last-generated=2020-10-27 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "6", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+02] +pidSca.y=[1e+00, 4.789353311061859e-01, 3.822728991508484e-01, 2.069125473499298e-01, 3.256407380104065e-02, -8.96126925945282e-02, -1.420066803693771e-01, -1.338689178228378e-01, -8.905824273824692e-02, -3.38137298822403e-02, 1.184174045920372e-02, 3.781681135296822e-02, 4.341181367635727e-02, 3.41964103281498e-02, 1.814253069460389e-02, 2.417445881292224e-03, -8.449100889265537e-03, -1.296858675777912e-02, -1.205248478800058e-02, -7.89909902960062e-03, -2.884963992983103e-03, 1.204618019983172e-03, 3.488857299089432e-03, 3.932801075279713e-03, 3.057450754567981e-03, 1.588993705809116e-03, -9.014783799648285e-02, -2.367986738681793e-01, -2.615011334419249e-01, -2.001790106296542e-01, -1.014383360743523e-01, 4.137855721637607e-04, 5.458060279488564e-02, 7.342061400413513e-02, 6.388809531927109e-02, 3.885588049888611e-02, 1.121398527175188e-02, -9.944651275873184e-03, -2.066577598452568e-02, -2.148099988698959e-02, -1.565990038216114e-02, -7.274489849805832e-03, 2.88546405499801e-04, 5.085897631943226e-03, 6.680207792669535e-03, 5.735563579946756e-03, 3.430895507335663e-03, 9.292137110605836e-04, -9.603649959899485e-04, -1.896467409096658e-03, -1.940432237461209e-03, 8.891788125038147e-02, 2.353428900241852e-01, 2.603276669979095e-01, 1.995340436697006e-01, 1.013261377811425e-01, 7.983366958796428e-03, -5.46367987990376e-02, -7.89192467927932e-02, -7.127602398395538e-02, -4.528040811419487e-02, -1.146174967288971e-02, 8.608768694102764e-03, 1.903318054974079e-02, 2.014057524502277e-02, 1.490404549986124e-02, 7.11924908682704e-03, -9.016035619424656e-06, -4.608259536325932e-03, -6.215888541191816e-03, -5.417254287749529e-03, -3.301070304587483e-03, -9.595282026566565e-04, 8.35668935906142e-04, 1.747739035636187e-03, 1.82018184568733e-03, -8.898844569921494e-02, -2.353599071502686e-01, -2.603070139884949e-01, -1.994939297437668e-01, -1.01285457611084e-01, -7.955091074109077e-03, 5.464806035161018e-02, 7.891583442687988e-02, 7.126430422067642e-02, 4.526663944125175e-02, 1.510731875896454e-02, -8.827473036944866e-03, -2.167111076414585e-02, -2.355927787721157e-02, -1.781675405800343e-02, -7.416092790663242e-03, -5.240460741333663e-04, 4.080183804035187e-03, 5.846962798386812e-03, 5.259867291897535e-03, 3.32660460844636e-03, 1.095537794753909e-03, -6.685389671474695e-04, -1.609862665645778e-03, -1.741873566061258e-03] +pidNoSca.y=[1e+00, 4.789353311061859e-01, 3.822728991508484e-01, 2.069125473499298e-01, 3.256407380104065e-02, -8.96126925945282e-02, -1.420066803693771e-01, -1.338689178228378e-01, -8.905824273824692e-02, -3.38137298822403e-02, 1.184174045920372e-02, 3.781681135296822e-02, 4.341181367635727e-02, 3.41964103281498e-02, 1.814253069460389e-02, 2.417445881292224e-03, -8.449100889265537e-03, -1.296858675777912e-02, -1.205248478800058e-02, -7.89909902960062e-03, -2.884963992983103e-03, 1.204618019983172e-03, 3.488857299089432e-03, 3.932801075279713e-03, 3.057450754567981e-03, 1.588993705809116e-03, -9.014783799648285e-02, -2.367986738681793e-01, -2.615011334419249e-01, -2.001790106296542e-01, -1.014383360743523e-01, 4.137855721637607e-04, 5.458060279488564e-02, 7.342061400413513e-02, 6.388809531927109e-02, 3.885588049888611e-02, 1.121398527175188e-02, -9.944651275873184e-03, -2.066577598452568e-02, -2.148099988698959e-02, -1.565990038216114e-02, -7.274489849805832e-03, 2.88546405499801e-04, 5.085897631943226e-03, 6.680207792669535e-03, 5.735563579946756e-03, 3.430895507335663e-03, 9.292137110605836e-04, -9.603649959899485e-04, -1.896467409096658e-03, -1.940432237461209e-03, 8.891788125038147e-02, 2.353428900241852e-01, 2.603276669979095e-01, 1.995340436697006e-01, 1.013261377811425e-01, 7.983366958796428e-03, -5.46367987990376e-02, -7.89192467927932e-02, -7.127602398395538e-02, -4.528040811419487e-02, -1.146174967288971e-02, 8.608768694102764e-03, 1.903318054974079e-02, 2.014057524502277e-02, 1.490404549986124e-02, 7.11924908682704e-03, -9.016035619424656e-06, -4.608259536325932e-03, -6.215888541191816e-03, -5.417254287749529e-03, -3.301070304587483e-03, -9.595282026566565e-04, 8.35668935906142e-04, 1.747739035636187e-03, 1.82018184568733e-03, -8.898844569921494e-02, -2.353599071502686e-01, -2.603070139884949e-01, -1.994939297437668e-01, -1.01285457611084e-01, -7.955091074109077e-03, 5.464806035161018e-02, 7.891583442687988e-02, 7.126430422067642e-02, 4.526663944125175e-02, 1.510731875896454e-02, -8.827473036944866e-03, -2.167111076414585e-02, -2.355927787721157e-02, -1.781675405800343e-02, -7.416092790663242e-03, -5.240460741333663e-04, 4.080183804035187e-03, 5.846962798386812e-03, 5.259867291897535e-03, 3.32660460844636e-03, 1.095537794753909e-03, -6.685389671474695e-04, -1.609862665645778e-03, -1.741873566061258e-03] +pla1.y=[0e+00, 5.1559033203125e+02, 9.565138549804688e+02, 1.254010986328125e+03, 1.37100830078125e+03, 1.336908569335938e+03, 1.215340942382812e+03, 1.07322900390625e+03, 9.598469848632812e+02, 8.985159912109375e+02, 8.889110717773438e+02, 9.155338745117188e+02, 9.576796875e+02, 9.973937377929688e+02, 1.023802917480469e+03, 1.033819091796875e+03, 1.030292602539062e+03, 1.019063049316406e+03, 1.006180297851562e+03, 9.960380859375e+02, 9.90662109375e+02, 9.899501342773438e+02, 9.924597778320312e+02, 9.963078002929688e+02, 9.998829345703125e+02, 1.002225646972656e+03, 6.671683349609375e+02, 4.92811279296875e+02, 2.346244201660147e+02, -1.384420633315294e+00, -1.533398132324219e+02, -1.899775238037109e+02, -1.595258483886719e+02, -9.272840881347656e+01, -2.22052001953125e+01, 2.988444328308105e+01, 5.468190383911133e+01, 5.453292083740234e+01, 3.832336044311523e+01, 1.653451728820801e+01, -2.417987108230591e+00, -1.393906307220459e+01, -1.725805854797363e+01, -1.430122852325439e+01, -8.16649341583252e+00, -1.792871713638306e+00, 2.851693868637085e+00, 5.007420063018799e+00, 4.919456481933594e+00, 3.409096240997314e+00, 1.426660895347595e+00, 3.357417297363281e+02, 5.087078857421875e+02, 7.655446166992188e+02, 1.000633850097656e+03, 1.152218017578126e+03, 1.2051005859375e+03, 1.17863623046875e+03, 1.10876611328125e+03, 1.03151953125e+03, 9.723362426757812e+02, 9.495113525390625e+02, 9.48788818359375e+02, 9.634554443359375e+02, 9.837218017578125e+02, 1.001614624023438e+03, 1.012687438964844e+03, 1.01608642578125e+03, 1.013528076171875e+03, 1.00787939453125e+03, 1.001904541015625e+03, 9.974844970703125e+02, 9.953741455078125e+02, 9.953784790039062e+02, 9.967467041015625e+02, 9.9859130859375e+02, 6.642059936523438e+02, 4.911957092285156e+02, 2.34359375e+02, -7.000811696052551e-01, -1.522427062988281e+02, -2.050886383056641e+02, -1.786044921875e+02, -1.087309417724609e+02, -3.149297904968262e+01, 2.767750358581543e+01, 5.769866561889648e+01, 6.003094482421875e+01, 4.379818344116211e+01, 2.037660789489746e+01, -7.652122378349304e-01, -1.135125350952148e+01, -1.518834590911865e+01, -1.317745399475098e+01, -7.985503673553467e+00, -2.273990392684937e+00, 2.085249662399292e+00, 4.283353328704834e+00, 4.43674373626709e+00, 3.224758863449097e+00, 1.489430665969849e+00] +pla2.y=[0e+00, 5.1559033203125e+02, 9.565138549804688e+02, 1.254010986328125e+03, 1.37100830078125e+03, 1.336908569335938e+03, 1.215340942382812e+03, 1.07322900390625e+03, 9.598469848632812e+02, 8.985159912109375e+02, 8.889110717773438e+02, 9.155338745117188e+02, 9.576796875e+02, 9.973937377929688e+02, 1.023802917480469e+03, 1.033819091796875e+03, 1.030292602539062e+03, 1.019063049316406e+03, 1.006180297851562e+03, 9.960380859375e+02, 9.90662109375e+02, 9.899501342773438e+02, 9.924597778320312e+02, 9.963078002929688e+02, 9.998829345703125e+02, 1.002225646972656e+03, 6.671683349609375e+02, 4.92811279296875e+02, 2.346244201660147e+02, -1.384420633315294e+00, -1.533398132324219e+02, -1.899775238037109e+02, -1.595258483886719e+02, -9.272840881347656e+01, -2.22052001953125e+01, 2.988444328308105e+01, 5.468190383911133e+01, 5.453292083740234e+01, 3.832336044311523e+01, 1.653451728820801e+01, -2.417987108230591e+00, -1.393906307220459e+01, -1.725805854797363e+01, -1.430122852325439e+01, -8.16649341583252e+00, -1.792871713638306e+00, 2.851693868637085e+00, 5.007420063018799e+00, 4.919456481933594e+00, 3.409096240997314e+00, 1.426660895347595e+00, 3.357417297363281e+02, 5.087078857421875e+02, 7.655446166992188e+02, 1.000633850097656e+03, 1.152218017578126e+03, 1.2051005859375e+03, 1.17863623046875e+03, 1.10876611328125e+03, 1.03151953125e+03, 9.723362426757812e+02, 9.495113525390625e+02, 9.48788818359375e+02, 9.634554443359375e+02, 9.837218017578125e+02, 1.001614624023438e+03, 1.012687438964844e+03, 1.01608642578125e+03, 1.013528076171875e+03, 1.00787939453125e+03, 1.001904541015625e+03, 9.974844970703125e+02, 9.953741455078125e+02, 9.953784790039062e+02, 9.967467041015625e+02, 9.9859130859375e+02, 6.642059936523438e+02, 4.911957092285156e+02, 2.34359375e+02, -7.000811696052551e-01, -1.522427062988281e+02, -2.050886383056641e+02, -1.786044921875e+02, -1.087309417724609e+02, -3.149297904968262e+01, 2.767750358581543e+01, 5.769866561889648e+01, 6.003094482421875e+01, 4.379818344116211e+01, 2.037660789489746e+01, -7.652122378349304e-01, -1.135125350952148e+01, -1.518834590911865e+01, -1.317745399475098e+01, -7.985503673553467e+00, -2.273990392684937e+00, 2.085249662399292e+00, 4.283353328704834e+00, 4.43674373626709e+00, 3.224758863449097e+00, 1.489430665969849e+00] +pidSca.u_s=[1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 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, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 1e+03, 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] +pidSca.trigger=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Ramp.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Ramp.txt new file mode 100644 index 0000000000..0eb29a79ba --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Ramp.txt @@ -0,0 +1,19 @@ +last-generated=2023-03-28 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "4", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+01] +ramUp.u=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +ramUp.y=[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, 5.000004656618207e-03, 9.999997392294135e-03, 1.500000204891456e-02, 1.999999478458825e-02, 2.500000037252903e-02, 3.000000409782466e-02, 3.499999776482761e-02, 4.000000149012324e-02, 4.499999701975355e-02, 5.000000074505806e-02, 5.500000447036257e-02, 5.999999627471149e-02, 6.500000000000712e-02, 6.999999552963745e-02, 7.500000298023224e-02, 8.000000298024643e-02, 8.499999850987679e-02, 9.000000596045381e-02, 9.499999403952133e-02, 1.000000014901161e-01, 1.050000014901303e-01, 1.100000089407251e-01, 1.14999992549391e-01, 1.199999925494407e-01, 1.25e-01, 1.300000000000142e-01, 1.350000149011896e-01, 1.399999910592749e-01, 1.449999910592891e-01, 1.500000059604645e-01, 1.550000059604787e-01, 1.600000059604929e-01, 1.649999970197394e-01, 1.699999970197536e-01, 1.749999970197678e-01, 1.800000119208721e-01, 1.850000119209573e-01, 1.899999880790426e-01, 1.949999880791279e-01, 2.000000029802322e-01, 2.050000029802464e-01, 2.100000029802607e-01, 2.149999940395071e-01, 2.199999940395213e-01, 2.249999940395355e-01, 2.30000008940711e-01, 2.350000089407251e-01, 2.399999850988104e-01, 2.449999999999858e-01, 2.5e-01, 2.550000000000853e-01, 2.600000000001705e-01, 2.649999761582558e-01, 2.700000059603792e-01, 2.750000059604645e-01, 2.800000059604076e-01, 2.85000005960635e-01, 2.899999821187203e-01, 2.949999821186634e-01, 3.00000011920929e-01, 3.049999880791848e-01, 3.100000119205878e-01, 3.14999988079412e-01, 3.200000119208153e-01, 3.24999988079071e-01, 3.299999940396492e-01, 3.350000178810523e-01, 3.399999940395924e-01, 3.450000178807113e-01, 3.499999940395355e-01, 3.549999701983597e-01, 3.600000238415169e-01, 3.650000000000569e-01, 3.700000238411758e-01, 3.75e-01, 3.799999761588242e-01, 3.849999999999431e-01, 3.899999761584832e-01, 3.950000298016403e-01, 4.000000059604645e-01] +ramUp1.y=[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.000000931323641e-02, 1.999999478458827e-02, 3.000000409782912e-02, 3.99999895691765e-02, 5.000000074505806e-02, 6.000000819564932e-02, 6.999999552965522e-02, 8.000000298024648e-02, 8.999999403950709e-02, 1.000000014901161e-01, 1.100000089407251e-01, 1.19999992549423e-01, 1.300000000000142e-01, 1.399999910592749e-01, 1.500000059604645e-01, 1.600000059604929e-01, 1.699999970197536e-01, 1.800000119209076e-01, 1.899999880790427e-01, 2.000000029802322e-01, 2.100000029802606e-01, 2.200000178814503e-01, 2.299999850987819e-01, 2.399999850988815e-01, 2.5e-01, 2.600000000000285e-01, 2.700000298023791e-01, 2.799999821185497e-01, 2.899999821185782e-01, 3.00000011920929e-01, 3.100000119209573e-01, 3.200000119209858e-01, 3.299999940394788e-01, 3.399999940395071e-01, 3.499999940395355e-01, 3.600000238417443e-01, 3.700000238419147e-01, 3.799999761580852e-01, 3.899999761582557e-01, 4.000000059604645e-01, 4.100000059604929e-01, 4.200000059605213e-01, 4.299999880790142e-01, 4.399999880790427e-01, 4.49999988079071e-01, 4.600000178814219e-01, 4.700000178814503e-01, 4.799999701976209e-01, 4.899999999999715e-01, 5e-01, 5.100000000001705e-01, 5.20000000000341e-01, 5.299999523165115e-01, 5.400000119207584e-01, 5.50000011920929e-01, 5.600000119208153e-01, 5.7000001192127e-01, 5.799999642374406e-01, 5.899999642373268e-01, 6.000000238418579e-01, 6.099999761583697e-01, 6.200000238411757e-01, 6.299999761588241e-01, 6.400000238416306e-01, 6.499999761581421e-01, 6.599999880792984e-01, 6.700000357621047e-01, 6.799999880791848e-01, 6.900000357614227e-01, 6.99999988079071e-01, 7.099999403967194e-01, 7.200000476830338e-01, 7.300000000001138e-01, 7.400000476823515e-01, 7.5e-01, 7.599999523176484e-01, 7.699999999998862e-01, 7.799999523169664e-01, 7.900000596032806e-01, 8.00000011920929e-01] +ramUp.active=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +ramUpDow.u=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +ramUpDow.y=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.800000190734863e-01, 9.599999594687848e-01, 9.399999594687278e-01, 9.200000548363869e-01, 8.999999952316852e-01, 8.799999952316284e-01, 8.599999952315714e-01, 8.399999356274386e-01, 8.20000030994529e-01, 8.00000030994472e-01, 7.799999713897705e-01, 7.599999713897138e-01, 7.399999713896568e-01, 7.200000667567472e-01, 7.000000071526141e-01, 6.800000071525574e-01, 6.600000071525004e-01, 6.399999475477991e-01, 6.20000042915458e-01, 6.00000042915117e-01, 5.799999833106995e-01, 5.599999833106427e-01, 5.399999833105857e-01, 5.200000190736001e-01, 5.000000190735431e-01, 4.799999892711639e-01, 4.59999989271107e-01, 4.399999594687278e-01, 4.200000250340644e-01, 4.000000250340078e-01, 3.799999952316284e-01, 3.599999952315717e-01, 3.399999654291925e-01, 3.20000030994529e-01, 3.000000309943299e-01, 2.800000011920929e-01, 2.599999713898559e-01, 2.399999564886377e-01, 2.200000369549933e-01, 2.000000220537043e-01, 1.800000071525574e-01, 1.600000727160747e-01, 1.399999624500118e-01, 1.20000035463897e-01, 9.999992519790442e-02, 7.999999821186066e-02, 6.000007495117825e-02, 3.999996095982466e-02, 2.000003769907083e-02, 1.654991040090673e-05, -1.337800787574832e-14, -1.152299585677677e-14, -9.667965300336471e-15, -7.812953281364924e-15, -5.957923571949559e-15, -4.102911129469583e-15, -2.247898686985601e-15, -3.928687922851386e-16, -3.674245277820885e-18, -3.464357956574596e-18, -3.25447243012328e-18] +ramUpDow.active=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +ramUpDow1.u=[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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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.999952316238438e-01, 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] +ramUpDow1.y=[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, 2.000001862647283e-02, 3.999998956917654e-02, 6.000000819565825e-02, 7.999997913835308e-02, 1.000000014901161e-01, 1.200000163912986e-01, 1.399999910593104e-01, 1.600000059604929e-01, 1.799999880790143e-01, 2.000000029802322e-01, 2.200000178814502e-01, 2.400000327826683e-01, 2.599999523164547e-01, 2.799999821185498e-01, 3.00000011920929e-01, 3.200000119209859e-01, 3.400000417233649e-01, 3.599999761580284e-01, 3.799999761580853e-01, 4.000000059604645e-01, 4.200000059605212e-01, 4.400000357629006e-01, 4.599999701975641e-01, 4.79999970197763e-01, 5e-01, 5.20000000000057e-01, 5.400000596047583e-01, 5.599999642370994e-01, 5.799999642371562e-01, 6.000000238418579e-01, 6.200000238419147e-01, 6.400000238419716e-01, 6.599999880789573e-01, 6.799999880790143e-01, 6.99999988079071e-01, 7.199999809262292e-01, 6.699999213218688e-01, 6.200001001358029e-01, 5.700000405311587e-01, 5.199999809265137e-01, 4.699999511241915e-01, 4.199998915195469e-01, 3.700001001358033e-01, 3.200000405313004e-01, 2.700000107288361e-01, 2.199999511241204e-01, 1.699999064205655e-01, 1.200000926852933e-01, 7.000004798177439e-02, 1.999999955296516e-02, 3.456860272040785e-12, 8.392204344646765e-15, 3.564259052427321e-15, 8.406577137190336e-18, 3.669769416798644e-18, 7.784740607393769e-21, 3.532305444331691e-22, 3.734793079691984e-24, 4.505978274761481e-37, -0e+00, 0e+00, 0e+00, 0e+00, 0e+00, -0e+00, 0e+00, 0e+00, 0e+00, 0e+00, -0e+00] +ramUpDow1.active=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 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/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Round.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Round.txt new file mode 100644 index 0000000000..6cdc7c5e33 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Round.txt @@ -0,0 +1,14 @@ +last-generated=2017-09-15 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +round1.u=[-3.5e+00, -3.430000065192561e+00, -3.359999891966595e+00, -3.289999957159187e+00, -3.22000002235177e+00, -3.150000100582814e+00, -3.079999914318365e+00, -3.009999992549414e+00, -2.940000044703563e+00, -2.869999910593299e+00, -2.79999996274703e+00, -2.730000014901188e+00, -2.660000067055026e+00, -2.589999880790923e+00, -2.519999985098812e+00, -2.450000089406701e+00, -2.380000089406701e+00, -2.309999955296437e+00, -2.240000059604325e+00, -2.170000059604467e+00, -2.099999925494416e+00, -2.029999925494487e+00, -1.960000029802305e+00, -1.890000014901223e+00, -1.820000014901081e+00, -1.75e+00, -1.679999880791137e+00, -1.610000089406487e+00, -1.539999970197695e+00, -1.469999970197553e+00, -1.400000059604823e+00, -1.330000059604538e+00, -1.259999940395675e+00, -1.190000149011026e+00, -1.120000029802162e+00, -1.049999910593299e+00, -9.800001192090765e-01, -9.100000596045738e-01, -8.399999403954262e-01, -7.699998807909235e-01, -7.000000298022334e-01, -6.29999970197731e-01, -5.599999105932283e-01, -4.900000596044956e-01, -4.199999701977131e-01, -3.499999105932104e-01, -2.800000596045203e-01, -2.099999850988568e-01, -1.39999925494354e-01, -7.000006705508333e-02, 0e+00, 7.000006705408858e-02, 1.400001341081772e-01, 2.100001937118983e-01, 2.799998509909462e-01, 3.499999105944542e-01, 4.199999701974648e-01, 4.900000596034507e-01, 5.600001192072998e-01, 6.300001788108077e-01, 6.999998211889077e-01, 7.699998807924157e-01, 8.399999403959236e-01, 9.100000596040764e-01, 9.800001192075843e-01, 1.050000119207158e+00, 1.119999821188411e+00, 1.189999940396848e+00, 1.259999940396421e+00, 1.330000059604787e+00, 1.400000059603579e+00, 1.470000178810737e+00, 1.539999761585684e+00, 1.609999880792416e+00, 1.679999880792131e+00, 1.75e+00, 1.820000119207869e+00, 1.890000119207584e+00, 1.960000238414316e+00, 2.029999821189263e+00, 2.099999821187842e+00, 2.170000059604219e+00, 2.240000059603579e+00, 2.310000059602157e+00, 2.380000298019316e+00, 2.449999880794263e+00, 2.519999880792842e+00, 2.589999880791421e+00, 2.660000119208579e+00, 2.730000119207158e+00, 2.800000119205737e+00, 2.869999701980684e+00, 2.939999940397843e+00, 3.009999940396421e+00, 3.079999940395781e+00, 3.150000178812158e+00, 3.220000178810737e+00, 3.289999761585684e+00, 3.359999761584263e+00, 3.430000000000284e+00, 3.5e+00] +round1.y=[-4e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -3e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -5.006780019356505e-06, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +time=[0e+00, 1e+00] +round2.y=[-4.000000059604645e-01, -3.00000011920929e-01, -3.00000011920929e-01, -3.00000011920929e-01, -3.00000011920929e-01, -3.00000011920929e-01, -3.00000011920929e-01, -3.00000011920929e-01, -3.00000011920929e-01, -3.00000011920929e-01, -3.00000011920929e-01, -3.00000011920929e-01, -3.00000011920929e-01, -3.00000011920929e-01, -3.00000011920929e-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, -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, -5.00678009385247e-07, 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.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, 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.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01, 3.00000011920929e-01] +round2.u=[-3.499999940395355e-01, -3.429999945983297e-01, -3.35999995157124e-01, -3.289999957159187e-01, -3.219999962747125e-01, -3.149999981373525e-01, -3.079999973923011e-01, -3.009999992549414e-01, -2.939999985098919e-01, -2.870000029802163e-01, -2.800000022351675e-01, -2.730000014901188e-01, -2.660000007450701e-01, -2.590000000000213e-01, -2.520000044703457e-01, -2.450000089406701e-01, -2.380000029802216e-01, -2.310000074505726e-01, -2.24000011920897e-01, -2.169999910593139e-01, -2.099999955296605e-01, -2.029999895692165e-01, -1.959999940395409e-01, -1.889999985098963e-01, -1.819999925494434e-01, -1.749999970197678e-01, -1.679999910593459e-01, -1.610000059604964e-01, -1.539999999999946e-01, -1.469999940395728e-01, -1.400000089406434e-01, -1.330000029802216e-01, -1.259999970197731e-01, -1.190000119208703e-01, -1.120000059604485e-01, -1.049999925494461e-01, -9.800000745056994e-02, -9.100000149011257e-02, -8.399999552965519e-02, -7.699998956919782e-02, -7.000000447034391e-02, -6.299999850988657e-02, -5.599999254942918e-02, -4.90000037252903e-02, -4.199999776483204e-02, -3.499999180437022e-02, -2.800000670550853e-02, -2.099999888241493e-02, -1.399999292196144e-02, -7.000006891771072e-03, 0e+00, 7.000006891671597e-03, 1.400001378334319e-02, 2.100001974369222e-02, 2.79999858441367e-02, 3.49999918044946e-02, 4.199999776480721e-02, 4.900000372518581e-02, 5.600001341082745e-02, 6.300001937121644e-02, 6.999998360898912e-02, 7.699998956934702e-02, 8.399999552970493e-02, 9.100000149006283e-02, 9.800000745042074e-02, 1.050000134107786e-01, 1.119999850991319e-01, 1.189999910594898e-01, 1.259999970198477e-01, 1.330000029802464e-01, 1.400000089405191e-01, 1.470000149008414e-01, 1.539999791388006e-01, 1.60999985099123e-01, 1.679999910594454e-01, 1.749999970197678e-01, 1.820000029801612e-01, 1.890000089405546e-01, 1.960000149009481e-01, 2.029999791386941e-01, 2.099999850990165e-01, 2.169999910592891e-01, 2.240000119208223e-01, 2.310000178811447e-01, 2.380000238414671e-01, 2.449999880792487e-01, 2.519999940397487e-01, 2.590000000000711e-01, 2.660000059603934e-01, 2.730000119207158e-01, 2.800000178810382e-01, 2.869999821189974e-01, 2.939999880793198e-01, 3.009999940396421e-01, 3.080000000000142e-01, 3.150000059602868e-01, 3.220000119206092e-01, 3.289999761585684e-01, 3.359999821188908e-01, 3.429999880792132e-01, 3.499999940395355e-01] +round3.u=[-3.5e+01, -3.42999992214144e+01, -3.35999984428288e+01, -3.290000147893922e+01, -3.220000070035486e+01, -3.150000005215383e+01, -3.079999914318365e+01, -3.01000004023313e+01, -2.939999949336132e+01, -2.870000101327736e+01, -2.800000010430746e+01, -2.729999919533756e+01, -2.660000019371374e+01, -2.589999928474639e+01, -2.520000080466244e+01, -2.450000041722985e+01, -2.379999898672264e+01, -2.310000050663868e+01, -2.240000011921292e+01, -2.170000059604524e+01, -2.100000020861492e+01, -2.029999877810771e+01, -1.960000029802262e+01, -1.889999991059515e+01, -1.820000038742747e+01, -1.75e+01, -1.679999856949279e+01, -1.610000113248345e+01, -1.539999970197681e+01, -1.469999922514335e+01, -1.400000083446538e+01, -1.33000003576268e+01, -1.25999998807905e+01, -1.190000053644219e+01, -1.120000005960475e+01, -1.049999958276731e+01, -9.800001192086501e+00, -9.100000715253605e+00, -8.399999284746395e+00, -7.699998807910088e+00, -7.000000417231268e+00, -6.29999994039525e+00, -5.599998986723776e+00, -4.900000596044956e+00, -4.199999642372629e+00, -3.499999165536038e+00, -2.800000536441055e+00, -2.099999821186316e+00, -1.399999225141218e+00, -7.000006556496721e-01, 0e+00, 7.000006556397247e-01, 1.400001311279449e+00, 2.100001907316234e+00, 2.799998450306096e+00, 3.499999165548476e+00, 4.199999642370146e+00, 4.900000596034507e+00, 5.600001072862714e+00, 6.300002026525093e+00, 6.999998331099787e+00, 7.699998807925009e+00, 8.399999284751368e+00, 9.100000715248632e+00, 9.80000119207158e+00, 1.05000016689059e+01, 1.119999797348116e+01, 1.189999845030411e+01, 1.259999988079796e+01, 1.330000035762929e+01, 1.400000083445294e+01, 1.470000131128044e+01, 1.539999761585684e+01, 1.609999904634501e+01, 1.679999856950274e+01, 1.75e+01, 1.820000143049726e+01, 1.890000095366409e+01, 1.960000238414316e+01, 2.029999773505547e+01, 2.099999916555274e+01, 2.170000059604276e+01, 2.240000011920545e+01, 2.310000154969589e+01, 2.380000107286953e+01, 2.449999833110547e+01, 2.519999976158909e+01, 2.589999928475137e+01, 2.660000071524863e+01, 2.730000023841091e+01, 2.800000166889453e+01, 2.869999892713047e+01, 2.939999845030411e+01, 3.009999988079455e+01, 3.079999940395724e+01, 3.150000083444726e+01, 3.220000226494452e+01, 3.28999995231509e+01, 3.359999713900547e+01, 3.429999856950273e+01, 3.5e+01] +round3.y=[-4e+01, -3e+01, -3e+01, -3e+01, -3e+01, -3e+01, -3e+01, -3e+01, -3e+01, -3e+01, -3e+01, -3e+01, -3e+01, -3e+01, -3e+01, -2e+01, -2e+01, -2e+01, -2e+01, -2e+01, -2e+01, -2e+01, -2e+01, -2e+01, -2e+01, -2e+01, -2e+01, -2e+01, -2e+01, -1e+01, -1e+01, -1e+01, -1e+01, -1e+01, -1e+01, -1e+01, -1e+01, -1e+01, -1e+01, -1e+01, -1e+01, -1e+01, -1e+01, -5.006780019378709e-05, 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, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 1e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 3e+01, 3e+01, 3e+01, 3e+01, 3e+01, 3e+01, 3e+01, 3e+01, 3e+01, 3e+01, 3e+01, 3e+01, 3e+01, 3e+01, 3e+01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Sin.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Sin.txt new file mode 100644 index 0000000000..770e4eca1f --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Sin.txt @@ -0,0 +1,10 @@ +last-generated=2017-03-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +sin1.y=[0e+00, 6.279052189025491e-02, 1.25333237452147e-01, 1.87381316384595e-01, 2.486898953400241e-01, 3.090169981213527e-01, 3.681245524355013e-01, 4.257792813474344e-01, 4.817536869409441e-01, 5.358267832061716e-01, 5.877852363791168e-01, 6.37423995027516e-01, 6.845471385054688e-01, 7.289686406719382e-01, 7.705132341174212e-01, 8.090169803797332e-01, 8.443279385564225e-01, 8.763066475484895e-01, 9.048270389253867e-01, 9.297764951615509e-01, 9.510564745096004e-01, 9.685831765931435e-01, 9.822872294646928e-01, 9.921147192796552e-01, 9.980267305350982e-01, 1e+00, 9.980267244918735e-01, 9.921147307571708e-01, 9.822872294647284e-01, 9.685831532414171e-01, 9.510565627098908e-01, 9.29776495161622e-01, 9.048270389253867e-01, 8.763067518650643e-01, 8.44327938556529e-01, 8.09016980379911e-01, 7.705133529832707e-01, 7.289687002764409e-01, 6.845471043246666e-01, 6.374239225441147e-01, 5.877853337517847e-01, 5.358268428108165e-01, 4.817536344844248e-01, 4.257793831936812e-01, 3.681245902625959e-01, 3.090169610060254e-01, 2.486899853117014e-01, 1.873813495884997e-01, 1.253332124403766e-01, 6.279063242083509e-02, 5.358979393577101e-08, -6.279052811178046e-02, -1.253332938608835e-01, -1.873814290064919e-01, -2.486896995113108e-01, -3.090168716001222e-01, -3.681244710530986e-01, -4.257792639837872e-01, -4.817537090949232e-01, -5.358268812191928e-01, -5.877850626424818e-01, -6.374238629405072e-01, -6.845470447203491e-01, -7.289685810669899e-01, -7.70513233773134e-01, -8.090170302644712e-01, -8.443277778656753e-01, -8.763066019297819e-01, -9.048269793212442e-01, -9.297764355570579e-01, -9.510565031049077e-01, -9.685831993059969e-01, -9.822871933156057e-01, -9.921146473576923e-01, -9.980267244919351e-01, -1e+00, -9.980267244919351e-01, -9.921147069617686e-01, -9.822872529193979e-01, -9.685831993066364e-01, -9.510565627095525e-01, -9.297764951617027e-01, -9.048270985303206e-01, -8.763066615349241e-01, -8.443278970749648e-01, -8.090171494737608e-01, -7.705133529824235e-01, -7.289687002762795e-01, -6.845471639296387e-01, -6.374239821497968e-01, -5.877851818517713e-01, -5.358270004284823e-01, -4.817538581065351e-01, -4.257794129953991e-01, -3.681246200647105e-01, -3.090170206117341e-01, -2.486898634240839e-01, -1.87381592919265e-01, -1.253334577736566e-01, -6.279068457400852e-02, -1.07179587871542e-07] +sin1.u=[0e+00, 6.283185026418836e-02, 1.256637005283767e-01, 1.884955656937173e-01, 2.513274010567601e-01, 3.141592694199139e-01, 3.769911313874425e-01, 4.398229699482905e-01, 5.026548021134992e-01, 5.654866470699986e-01, 6.283185388398452e-01, 6.911503710050471e-01, 7.539822627748136e-01, 8.168140949400954e-01, 8.796459398965949e-01, 9.424777252486271e-01, 1.005309604227105e+00, 1.068141449183551e+00, 1.13097329414021e+00, 1.19380523272312e+00, 1.256637077679602e+00, 1.31946889705379e+00, 1.382300742010059e+00, 1.445132586966718e+00, 1.507964525549627e+00, 1.570796251296997e+00, 1.633628189880475e+00, 1.696459941210316e+00, 1.759291879793154e+00, 1.822123818376135e+00, 1.884955450497254e+00, 1.947787389080164e+00, 2.010619208454636e+00, 2.073450959784193e+00, 2.136282898367103e+00, 2.199114836950012e+00, 2.261946588280421e+00, 2.324778526863331e+00, 2.38761046544624e+00, 2.450442404029149e+00, 2.513274155358848e+00, 2.576105855524315e+00, 2.638937794106798e+00, 2.701769545437207e+00, 2.764601484020117e+00, 2.827433422603026e+00, 2.890265173933436e+00, 2.953097112516345e+00, 3.015929051099254e+00, 3.078760802428527e+00, 3.141592502593994e+00, 3.204424441176011e+00, 3.267256379758027e+00, 3.330088318340044e+00, 3.392919882422641e+00, 3.455751821004657e+00, 3.518583759586227e+00, 3.58141569816869e+00, 3.644247636750706e+00, 3.70707933691727e+00, 3.769910900996741e+00, 3.832742839578757e+00, 3.895574778160774e+00, 3.958406716742791e+00, 4.021238416907933e+00, 4.084070355491087e+00, 4.146901919573968e+00, 4.209733858154848e+00, 4.272565796735727e+00, 4.335397735317621e+00, 4.398229673900328e+00, 4.461061612483482e+00, 4.52389317656011e+00, 4.586725115143263e+00, 4.649557053726417e+00, 4.71238899230957e+00, 4.77522093089045e+00, 4.83805286947133e+00, 4.90088480805221e+00, 4.963716372135659e+00, 5.026548310718812e+00, 5.089379772464929e+00, 5.15221171104796e+00, 5.215043649631114e+00, 5.277875588214267e+00, 5.34070715229658e+00, 5.40353909087746e+00, 5.466371029458339e+00, 5.529202968040356e+00, 5.59203490662351e+00, 5.654866845206663e+00, 5.717698409283291e+00, 5.780530347866445e+00, 5.843362286449598e+00, 5.906194225032629e+00, 5.969026163613062e+00, 6.031858102193942e+00, 6.094689666275686e+00, 6.157521604858839e+00, 6.220353066607109e+00, 6.283185005187988e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Sort.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Sort.txt new file mode 100644 index 0000000000..5e36794404 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Sort.txt @@ -0,0 +1,33 @@ +last-generated=2024-04-18 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +sorAsc.u[1]=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +sorAsc.u[2]=[-1e+00, -9.700000279396727e-01, -9.399999962747139e-01, -9.100000242143751e-01, -8.799999925494277e-01, -8.500000260770252e-01, -8.199999888241416e-01, -7.900000223517407e-01, -7.599999850988655e-01, -7.300000298022691e-01, -6.999999925493972e-01, -6.700000149011524e-01, -6.399999776482982e-01, -6.099999999999289e-01, -5.799999850988476e-01, -5.500000298022336e-01, -5.199999701977309e-01, -4.900000149011345e-01, -4.600000298022158e-01, -4.3e-01, -4.000000149011168e-01, -3.699999850988388e-01, -3.4e-01, -3.100000149011611e-01, -2.799999850988388e-01, -2.5e-01, -2.199999701977486e-01, -1.900000298022424e-01, -1.59999999999991e-01, -1.299999701977398e-01, -1.000000372528142e-01, -7.000000745056284e-02, -3.999997764831148e-02, -1.000003911547481e-02, 1.999998882415249e-02, 5.000001862641812e-02, 7.999995529662296e-02, 1.099999850988743e-01, 1.400000149011257e-01, 1.70000044703377e-01, 1.999999850988833e-01, 2.300000149011345e-01, 2.600000298023223e-01, 2.899999701977842e-01, 3.2e-01, 3.500000298023224e-01, 3.79999970197802e-01, 4.099999999999999e-01, 4.400000298023223e-01, 4.699999701976776e-01, 5e-01, 5.299999999997158e-01, 5.60000059603508e-01, 5.900000596037922e-01, 6.199999403966343e-01, 6.499999403960659e-01, 6.799999999999291e-01, 7.099999999997867e-01, 7.400000596036499e-01, 7.700000596038631e-01, 7.999999403967762e-01, 8.299999403962078e-01, 8.600000000001421e-01, 8.899999999998579e-01, 9.200000596037922e-01, 9.500000596032238e-01, 9.799999403961369e-01, 1.009999940395853e+00, 1.039999940395995e+00, 1.070000059604645e+00, 1.100000059603579e+00, 1.130000059604005e+00, 1.159999880793268e+00, 1.190000000000568e+00, 1.220000000000284e+00, 1.25e+00, 1.279999999999716e+00, 1.309999999999432e+00, 1.340000119206732e+00, 1.369999940395995e+00, 1.399999940396421e+00, 1.429999940395355e+00, 1.460000059604005e+00, 1.490000059604147e+00, 1.520000059603863e+00, 1.549999880792842e+00, 1.580000000000426e+00, 1.610000000000142e+00, 1.639999999999858e+00, 1.669999999999574e+00, 1.700000119207158e+00, 1.729999940396137e+00, 1.759999940395853e+00, 1.789999940395995e+00, 1.820000059604645e+00, 1.850000059603579e+00, 1.880000059604005e+00, 1.909999880793268e+00, 1.940000000000568e+00, 1.970000000000284e+00, 2e+00] +sorAsc.u[3]=[2e+00, 1.960000037252901e+00, 1.919999955296513e+00, 1.879999992549417e+00, 1.840000029802316e+00, 1.799999955296522e+00, 1.759999985098829e+00, 1.720000029802327e+00, 1.679999940395462e+00, 1.64e+00, 1.600000029802322e+00, 1.559999940395391e+00, 1.519999970197678e+00, 1.48e+00, 1.440000059604609e+00, 1.4e+00, 1.36e+00, 1.320000059604538e+00, 1.28e+00, 1.24e+00, 1.200000059604467e+00, 1.159999940395355e+00, 1.12e+00, 1.080000059604645e+00, 1.039999940395355e+00, 1e+00, 9.599999403956394e-01, 9.20000059604325e-01, 8.799999999999999e-01, 8.39999940395604e-01, 8.000000596046448e-01, 7.6e-01, 7.2e-01, 6.800000596046447e-01, 6.399999999999999e-01, 6.000000000000001e-01, 5.600000596046448e-01, 5.2e-01, 4.799999701977486e-01, 4.399999403955683e-01, 4.000000298022335e-01, 3.600000000000001e-01, 3.199999403955507e-01, 2.800000298022158e-01, 2.399999850988566e-01, 1.999999552966052e-01, 1.600000298022601e-01, 1.199999925494328e-01, 7.999995529659643e-02, 4.000003725283197e-02, 0e+00, -4.000003725226355e-02, -8.000007450452709e-02, -1.200001117568972e-01, -1.599999105944718e-01, -1.99999955297316e-01, -2.399999850987147e-01, -2.800000298017893e-01, -3.200000596036499e-01, -3.600001192073355e-01, -3.999999105944538e-01, -4.39999940396421e-01, -4.799999701980329e-01, -5.199999999997158e-01, -5.600000596037922e-01, -6.00000119207158e-01, -6.399998807930554e-01, -6.799999403963501e-01, -7.200000000004265e-01, -7.600000000001419e-01, -8.000000596039341e-01, -8.400000596033657e-01, -8.799998807924156e-01, -9.19999940396492e-01, -9.599999403962078e-01, -1e+00, -1.039999999999432e+00, -1.080000119208153e+00, -1.120000119207584e+00, -1.15999988079199e+00, -1.200000000000711e+00, -1.239999999999858e+00, -1.279999999999573e+00, -1.3200001192073e+00, -1.360000119207726e+00, -1.399999880792131e+00, -1.440000000000853e+00, -1.480000000000284e+00, -1.519999999999716e+00, -1.559999999999147e+00, -1.600000119207869e+00, -1.639999880792274e+00, -1.6799998807927e+00, -1.720000000000427e+00, -1.760000000000142e+00, -1.799999999999289e+00, -1.84000011920801e+00, -1.879999880792416e+00, -1.919999880791847e+00, -1.960000000000568e+00, -2e+00] +sorAsc.u[4]=[3e+00, 2.990000009313215e+00, 2.980000018626431e+00, 2.970000027939647e+00, 2.960000037252861e+00, 2.95000004842872e+00, 2.940000055879292e+00, 2.930000067055204e+00, 2.920000074505726e+00, 2.910000089406701e+00, 2.900000096857437e+00, 2.890000104308102e+00, 2.880000111758589e+00, 2.869999880791066e+00, 2.859999895691898e+00, 2.849999910593299e+00, 2.839999910593299e+00, 2.829999925494274e+00, 2.819999940395675e+00, 2.809999940395533e+00, 2.799999955296649e+00, 2.789999955297005e+00, 2.779999970197766e+00, 2.769999985099025e+00, 2.759999985098599e+00, 2.75e+00, 2.739999999999574e+00, 2.730000029802802e+00, 2.720000029802234e+00, 2.710000029801949e+00, 2.700000059603757e+00, 2.690000059604467e+00, 2.680000059604325e+00, 2.67000008940599e+00, 2.660000089406701e+00, 2.650000089406701e+00, 2.640000119208224e+00, 2.630000119208934e+00, 2.619999880791066e+00, 2.609999880791776e+00, 2.599999910593299e+00, 2.589999910593299e+00, 2.57999991059401e+00, 2.569999940395675e+00, 2.559999940395533e+00, 2.549999940396243e+00, 2.539999970198051e+00, 2.529999970197766e+00, 2.519999970197198e+00, 2.510000000000426e+00, 2.5e+00, 2.489999999999716e+00, 2.479999999999432e+00, 2.469999999999148e+00, 2.460000059602726e+00, 2.450000059603579e+00, 2.440000059604503e+00, 2.430000059604432e+00, 2.420000059604147e+00, 2.410000059603863e+00, 2.400000119207158e+00, 2.390000119208011e+00, 2.380000119208863e+00, 2.369999880791137e+00, 2.359999880791989e+00, 2.349999880792842e+00, 2.339999940396137e+00, 2.329999940395853e+00, 2.319999940395568e+00, 2.309999940395497e+00, 2.299999940396421e+00, 2.289999940397274e+00, 2.280000000000852e+00, 2.270000000000568e+00, 2.260000000000284e+00, 2.25e+00, 2.239999999999716e+00, 2.229999999999432e+00, 2.219999999999148e+00, 2.210000059602726e+00, 2.200000059603579e+00, 2.190000059604503e+00, 2.180000059604432e+00, 2.170000059604147e+00, 2.160000059603863e+00, 2.150000119207158e+00, 2.140000119208011e+00, 2.130000119208863e+00, 2.119999880791137e+00, 2.109999880791989e+00, 2.099999880792842e+00, 2.089999940396137e+00, 2.079999940395853e+00, 2.069999940395568e+00, 2.059999940395497e+00, 2.049999940396421e+00, 2.039999940397274e+00, 2.030000000000852e+00, 2.020000000000568e+00, 2.010000000000284e+00, 2e+00] +sorAsc.u[5]=[0e+00, 4e-02, 8e-02, 1.2e-01, 1.6e-01, 2e-01, 2.4e-01, 2.8e-01, 3.2e-01, 3.6e-01, 4e-01, 4.4e-01, 4.8e-01, 5.2e-01, 5.600000000000001e-01, 6e-01, 6.4e-01, 6.8e-01, 7.2e-01, 7.6e-01, 8e-01, 8.4e-01, 8.8e-01, 9.2e-01, 9.6e-01, 1e+00, 1.04e+00, 1.08e+00, 1.12e+00, 1.16e+00, 1.2e+00, 1.24e+00, 1.28e+00, 1.32e+00, 1.36e+00, 1.4e+00, 1.44e+00, 1.48e+00, 1.52e+00, 1.56e+00, 1.6e+00, 1.64e+00, 1.68e+00, 1.72e+00, 1.76e+00, 1.8e+00, 1.84e+00, 1.88e+00, 1.92e+00, 1.96e+00, 2e+00, 2.04e+00, 2.08e+00, 2.12e+00, 2.16e+00, 2.2e+00, 2.24e+00, 2.28e+00, 2.32e+00, 2.36e+00, 2.4e+00, 2.44e+00, 2.48e+00, 2.52e+00, 2.56e+00, 2.6e+00, 2.64e+00, 2.68e+00, 2.72e+00, 2.76e+00, 2.8e+00, 2.84e+00, 2.88e+00, 2.92e+00, 2.96e+00, 3e+00, 3.04e+00, 3.08e+00, 3.12e+00, 3.16e+00, 3.2e+00, 3.24e+00, 3.28e+00, 3.32e+00, 3.36e+00, 3.4e+00, 3.44e+00, 3.48e+00, 3.52e+00, 3.56e+00, 3.6e+00, 3.64e+00, 3.68e+00, 3.72e+00, 3.76e+00, 3.8e+00, 3.84e+00, 3.88e+00, 3.92e+00, 3.96e+00, 4e+00] +sorAsc.y[1]=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, -4.000003725226355e-02, -8.000007450452709e-02, -1.200001117568972e-01, -1.599999105944718e-01, -1.99999955297316e-01, -2.399999850987147e-01, -2.800000298017893e-01, -3.200000596036499e-01, -3.600001192073355e-01, -3.999999105944538e-01, -4.39999940396421e-01, -4.799999701980329e-01, -5.199999999997158e-01, -5.600000596037922e-01, -6.00000119207158e-01, -6.399998807930554e-01, -6.799999403963501e-01, -7.200000000004265e-01, -7.600000000001419e-01, -8.000000596039341e-01, -8.400000596033657e-01, -8.799998807924156e-01, -9.19999940396492e-01, -9.599999403962078e-01, -1e+00, -1.039999999999432e+00, -1.080000119208153e+00, -1.120000119207584e+00, -1.15999988079199e+00, -1.200000000000711e+00, -1.239999999999858e+00, -1.279999999999573e+00, -1.3200001192073e+00, -1.360000119207726e+00, -1.399999880792131e+00, -1.440000000000853e+00, -1.480000000000284e+00, -1.519999999999716e+00, -1.559999999999147e+00, -1.600000119207869e+00, -1.639999880792274e+00, -1.6799998807927e+00, -1.720000000000427e+00, -1.760000000000142e+00, -1.799999999999289e+00, -1.84000011920801e+00, -1.879999880792416e+00, -1.919999880791847e+00, -1.960000000000568e+00, -2e+00] +sorAsc.y[2]=[-1e+00, -9.700000279396727e-01, -9.399999962747139e-01, -9.100000242143751e-01, -8.799999925494277e-01, -8.500000260770252e-01, -8.199999888241416e-01, -7.900000223517407e-01, -7.599999850988655e-01, -7.300000298022691e-01, -6.999999925493972e-01, -6.700000149011524e-01, -6.399999776482982e-01, -6.099999999999289e-01, -5.799999850988476e-01, -5.500000298022336e-01, -5.199999701977309e-01, -4.900000149011345e-01, -4.600000298022158e-01, -4.3e-01, -4.000000149011168e-01, -3.699999850988388e-01, -3.4e-01, -3.100000149011611e-01, -2.799999850988388e-01, -2.5e-01, -2.199999701977486e-01, -1.900000298022424e-01, -1.59999999999991e-01, -1.299999701977398e-01, -1.000000372528142e-01, -7.000000745056284e-02, -3.999997764831148e-02, -1.000003911547481e-02, 1.999998882415249e-02, 5.000001862641812e-02, 7.999995529662296e-02, 1.099999850988743e-01, 1.400000149011257e-01, 1.70000044703377e-01, 1.999999850988833e-01, 2.300000149011345e-01, 2.600000298023223e-01, 2.800000154972077e-01, 2.399999850988566e-01, 1.999999552966052e-01, 1.600000298022601e-01, 1.199999925494328e-01, 7.999995529659643e-02, 4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +sorAsc.y[3]=[0e+00, 4e-02, 8e-02, 1.2e-01, 1.6e-01, 2e-01, 2.4e-01, 2.8e-01, 3.2e-01, 3.6e-01, 4e-01, 4.4e-01, 4.8e-01, 5.2e-01, 5.600000000000001e-01, 6e-01, 6.4e-01, 6.8e-01, 7.2e-01, 7.6e-01, 8e-01, 8.4e-01, 8.8e-01, 9.2e-01, 9.6e-01, 1e+00, 9.599999403956394e-01, 9.20000059604325e-01, 8.799999999999999e-01, 8.39999940395604e-01, 8.000000596046448e-01, 7.6e-01, 7.2e-01, 6.800000596046447e-01, 6.399999999999999e-01, 6.000000000000001e-01, 5.600000596046448e-01, 5.2e-01, 4.799999701977486e-01, 4.399999403955683e-01, 4.000000298022335e-01, 3.600000000000001e-01, 3.199999403955507e-01, 2.899999845027924e-01, 3.2e-01, 3.500000298023224e-01, 3.79999970197802e-01, 4.099999999999999e-01, 4.400000298023223e-01, 4.699999701976776e-01, 5e-01, 5.299999999997158e-01, 5.60000059603508e-01, 5.900000596037922e-01, 6.199999403966343e-01, 6.499999403960659e-01, 6.799999999999291e-01, 7.099999999997867e-01, 7.400000596036499e-01, 7.700000596038631e-01, 7.999999403967762e-01, 8.299999403962078e-01, 8.600000000001421e-01, 8.899999999998579e-01, 9.200000596037922e-01, 9.500000596032238e-01, 9.799999403961369e-01, 1.009999940395853e+00, 1.039999940395995e+00, 1.070000059604645e+00, 1.100000059603579e+00, 1.130000059604005e+00, 1.159999880793268e+00, 1.190000000000568e+00, 1.220000000000284e+00, 1.25e+00, 1.279999999999716e+00, 1.309999999999432e+00, 1.340000119206732e+00, 1.369999940395995e+00, 1.399999940396421e+00, 1.429999940395355e+00, 1.460000059604005e+00, 1.490000059604147e+00, 1.520000059603863e+00, 1.549999880792842e+00, 1.580000000000426e+00, 1.610000000000142e+00, 1.639999999999858e+00, 1.669999999999574e+00, 1.700000119207158e+00, 1.729999940396137e+00, 1.759999940395853e+00, 1.789999940395995e+00, 1.820000059604645e+00, 1.850000059603579e+00, 1.880000059604005e+00, 1.909999880793268e+00, 1.940000000000568e+00, 1.970000000000284e+00, 2e+00] +sorAsc.y[4]=[2e+00, 1.960000037252901e+00, 1.919999955296513e+00, 1.879999992549417e+00, 1.840000029802316e+00, 1.799999955296522e+00, 1.759999985098829e+00, 1.720000029802327e+00, 1.679999940395462e+00, 1.64e+00, 1.600000029802322e+00, 1.559999940395391e+00, 1.519999970197678e+00, 1.48e+00, 1.440000059604609e+00, 1.4e+00, 1.36e+00, 1.320000059604538e+00, 1.28e+00, 1.24e+00, 1.200000059604467e+00, 1.159999940395355e+00, 1.12e+00, 1.080000059604645e+00, 1.039999940395355e+00, 1e+00, 1.04e+00, 1.08e+00, 1.12e+00, 1.16e+00, 1.2e+00, 1.24e+00, 1.28e+00, 1.32e+00, 1.36e+00, 1.4e+00, 1.44e+00, 1.48e+00, 1.52e+00, 1.56e+00, 1.6e+00, 1.64e+00, 1.68e+00, 1.72e+00, 1.76e+00, 1.8e+00, 1.84e+00, 1.88e+00, 1.92e+00, 1.96e+00, 2e+00, 2.04e+00, 2.08e+00, 2.12e+00, 2.16e+00, 2.2e+00, 2.24e+00, 2.28e+00, 2.32e+00, 2.36e+00, 2.4e+00, 2.390000119208011e+00, 2.380000119208863e+00, 2.369999880791137e+00, 2.359999880791989e+00, 2.349999880792842e+00, 2.339999940396137e+00, 2.329999940395853e+00, 2.319999940395568e+00, 2.309999940395497e+00, 2.299999940396421e+00, 2.289999940397274e+00, 2.280000000000852e+00, 2.270000000000568e+00, 2.260000000000284e+00, 2.25e+00, 2.239999999999716e+00, 2.229999999999432e+00, 2.219999999999148e+00, 2.210000059602726e+00, 2.200000059603579e+00, 2.190000059604503e+00, 2.180000059604432e+00, 2.170000059604147e+00, 2.160000059603863e+00, 2.150000119207158e+00, 2.140000119208011e+00, 2.130000119208863e+00, 2.119999880791137e+00, 2.109999880791989e+00, 2.099999880792842e+00, 2.089999940396137e+00, 2.079999940395853e+00, 2.069999940395568e+00, 2.059999940395497e+00, 2.049999940396421e+00, 2.039999940397274e+00, 2.030000000000852e+00, 2.020000000000568e+00, 2.010000000000284e+00, 2e+00] +sorAsc.y[5]=[3e+00, 2.990000009313215e+00, 2.980000018626431e+00, 2.970000027939647e+00, 2.960000037252861e+00, 2.95000004842872e+00, 2.940000055879292e+00, 2.930000067055204e+00, 2.920000074505726e+00, 2.910000089406701e+00, 2.900000096857437e+00, 2.890000104308102e+00, 2.880000111758589e+00, 2.869999880791066e+00, 2.859999895691898e+00, 2.849999910593299e+00, 2.839999910593299e+00, 2.829999925494274e+00, 2.819999940395675e+00, 2.809999940395533e+00, 2.799999955296649e+00, 2.789999955297005e+00, 2.779999970197766e+00, 2.769999985099025e+00, 2.759999985098599e+00, 2.75e+00, 2.739999999999574e+00, 2.730000029802802e+00, 2.720000029802234e+00, 2.710000029801949e+00, 2.700000059603757e+00, 2.690000059604467e+00, 2.680000059604325e+00, 2.67000008940599e+00, 2.660000089406701e+00, 2.650000089406701e+00, 2.640000119208224e+00, 2.630000119208934e+00, 2.619999880791066e+00, 2.609999880791776e+00, 2.599999910593299e+00, 2.589999910593299e+00, 2.57999991059401e+00, 2.569999940395675e+00, 2.559999940395533e+00, 2.549999940396243e+00, 2.539999970198051e+00, 2.529999970197766e+00, 2.519999970197198e+00, 2.510000000000426e+00, 2.5e+00, 2.489999999999716e+00, 2.479999999999432e+00, 2.469999999999148e+00, 2.460000059602726e+00, 2.450000059603579e+00, 2.440000059604503e+00, 2.430000059604432e+00, 2.420000059604147e+00, 2.410000059603863e+00, 2.400000119207158e+00, 2.44e+00, 2.48e+00, 2.52e+00, 2.56e+00, 2.6e+00, 2.64e+00, 2.68e+00, 2.72e+00, 2.76e+00, 2.8e+00, 2.84e+00, 2.88e+00, 2.92e+00, 2.96e+00, 3e+00, 3.04e+00, 3.08e+00, 3.12e+00, 3.16e+00, 3.2e+00, 3.24e+00, 3.28e+00, 3.32e+00, 3.36e+00, 3.4e+00, 3.44e+00, 3.48e+00, 3.52e+00, 3.56e+00, 3.6e+00, 3.64e+00, 3.68e+00, 3.72e+00, 3.76e+00, 3.8e+00, 3.84e+00, 3.88e+00, 3.92e+00, 3.96e+00, 4e+00] +sorDes.y[1]=[3e+00, 2.990000009313215e+00, 2.980000018626431e+00, 2.970000027939647e+00, 2.960000037252861e+00, 2.95000004842872e+00, 2.940000055879292e+00, 2.930000067055204e+00, 2.920000074505726e+00, 2.910000089406701e+00, 2.900000096857437e+00, 2.890000104308102e+00, 2.880000111758589e+00, 2.869999880791066e+00, 2.859999895691898e+00, 2.849999910593299e+00, 2.839999910593299e+00, 2.829999925494274e+00, 2.819999940395675e+00, 2.809999940395533e+00, 2.799999955296649e+00, 2.789999955297005e+00, 2.779999970197766e+00, 2.769999985099025e+00, 2.759999985098599e+00, 2.75e+00, 2.739999999999574e+00, 2.730000029802802e+00, 2.720000029802234e+00, 2.710000029801949e+00, 2.700000059603757e+00, 2.690000059604467e+00, 2.680000059604325e+00, 2.67000008940599e+00, 2.660000089406701e+00, 2.650000089406701e+00, 2.640000119208224e+00, 2.630000119208934e+00, 2.619999880791066e+00, 2.609999880791776e+00, 2.599999910593299e+00, 2.589999910593299e+00, 2.57999991059401e+00, 2.569999940395675e+00, 2.559999940395533e+00, 2.549999940396243e+00, 2.539999970198051e+00, 2.529999970197766e+00, 2.519999970197198e+00, 2.510000000000426e+00, 2.5e+00, 2.489999999999716e+00, 2.479999999999432e+00, 2.469999999999148e+00, 2.460000059602726e+00, 2.450000059603579e+00, 2.440000059604503e+00, 2.430000059604432e+00, 2.420000059604147e+00, 2.410000059603863e+00, 2.400000119207158e+00, 2.44e+00, 2.48e+00, 2.52e+00, 2.56e+00, 2.6e+00, 2.64e+00, 2.68e+00, 2.72e+00, 2.76e+00, 2.8e+00, 2.84e+00, 2.88e+00, 2.92e+00, 2.96e+00, 3e+00, 3.04e+00, 3.08e+00, 3.12e+00, 3.16e+00, 3.2e+00, 3.24e+00, 3.28e+00, 3.32e+00, 3.36e+00, 3.4e+00, 3.44e+00, 3.48e+00, 3.52e+00, 3.56e+00, 3.6e+00, 3.64e+00, 3.68e+00, 3.72e+00, 3.76e+00, 3.8e+00, 3.84e+00, 3.88e+00, 3.92e+00, 3.96e+00, 4e+00] +sorDes.y[2]=[2e+00, 1.960000037252901e+00, 1.919999955296513e+00, 1.879999992549417e+00, 1.840000029802316e+00, 1.799999955296522e+00, 1.759999985098829e+00, 1.720000029802327e+00, 1.679999940395462e+00, 1.64e+00, 1.600000029802322e+00, 1.559999940395391e+00, 1.519999970197678e+00, 1.48e+00, 1.440000059604609e+00, 1.4e+00, 1.36e+00, 1.320000059604538e+00, 1.28e+00, 1.24e+00, 1.200000059604467e+00, 1.159999940395355e+00, 1.12e+00, 1.080000059604645e+00, 1.039999940395355e+00, 1e+00, 1.04e+00, 1.08e+00, 1.12e+00, 1.16e+00, 1.2e+00, 1.24e+00, 1.28e+00, 1.32e+00, 1.36e+00, 1.4e+00, 1.44e+00, 1.48e+00, 1.52e+00, 1.56e+00, 1.6e+00, 1.64e+00, 1.68e+00, 1.72e+00, 1.76e+00, 1.8e+00, 1.84e+00, 1.88e+00, 1.92e+00, 1.96e+00, 2e+00, 2.04e+00, 2.08e+00, 2.12e+00, 2.16e+00, 2.2e+00, 2.24e+00, 2.28e+00, 2.32e+00, 2.36e+00, 2.4e+00, 2.390000119208011e+00, 2.380000119208863e+00, 2.369999880791137e+00, 2.359999880791989e+00, 2.349999880792842e+00, 2.339999940396137e+00, 2.329999940395853e+00, 2.319999940395568e+00, 2.309999940395497e+00, 2.299999940396421e+00, 2.289999940397274e+00, 2.280000000000852e+00, 2.270000000000568e+00, 2.260000000000284e+00, 2.25e+00, 2.239999999999716e+00, 2.229999999999432e+00, 2.219999999999148e+00, 2.210000059602726e+00, 2.200000059603579e+00, 2.190000059604503e+00, 2.180000059604432e+00, 2.170000059604147e+00, 2.160000059603863e+00, 2.150000119207158e+00, 2.140000119208011e+00, 2.130000119208863e+00, 2.119999880791137e+00, 2.109999880791989e+00, 2.099999880792842e+00, 2.089999940396137e+00, 2.079999940395853e+00, 2.069999940395568e+00, 2.059999940395497e+00, 2.049999940396421e+00, 2.039999940397274e+00, 2.030000000000852e+00, 2.020000000000568e+00, 2.010000000000284e+00, 2e+00] +sorDes.y[3]=[0e+00, 4e-02, 8e-02, 1.2e-01, 1.6e-01, 2e-01, 2.4e-01, 2.8e-01, 3.2e-01, 3.6e-01, 4e-01, 4.4e-01, 4.8e-01, 5.2e-01, 5.600000000000001e-01, 6e-01, 6.4e-01, 6.8e-01, 7.2e-01, 7.6e-01, 8e-01, 8.4e-01, 8.8e-01, 9.2e-01, 9.6e-01, 1e+00, 9.599999403956394e-01, 9.20000059604325e-01, 8.799999999999999e-01, 8.39999940395604e-01, 8.000000596046448e-01, 7.6e-01, 7.2e-01, 6.800000596046447e-01, 6.399999999999999e-01, 6.000000000000001e-01, 5.600000596046448e-01, 5.2e-01, 4.799999701977486e-01, 4.399999403955683e-01, 4.000000298022335e-01, 3.600000000000001e-01, 3.199999403955507e-01, 2.899999845027924e-01, 3.2e-01, 3.500000298023224e-01, 3.79999970197802e-01, 4.099999999999999e-01, 4.400000298023223e-01, 4.699999701976776e-01, 5e-01, 5.299999999997158e-01, 5.60000059603508e-01, 5.900000596037922e-01, 6.199999403966343e-01, 6.499999403960659e-01, 6.799999999999291e-01, 7.099999999997867e-01, 7.400000596036499e-01, 7.700000596038631e-01, 7.999999403967762e-01, 8.299999403962078e-01, 8.600000000001421e-01, 8.899999999998579e-01, 9.200000596037922e-01, 9.500000596032238e-01, 9.799999403961369e-01, 1.009999940395853e+00, 1.039999940395995e+00, 1.070000059604645e+00, 1.100000059603579e+00, 1.130000059604005e+00, 1.159999880793268e+00, 1.190000000000568e+00, 1.220000000000284e+00, 1.25e+00, 1.279999999999716e+00, 1.309999999999432e+00, 1.340000119206732e+00, 1.369999940395995e+00, 1.399999940396421e+00, 1.429999940395355e+00, 1.460000059604005e+00, 1.490000059604147e+00, 1.520000059603863e+00, 1.549999880792842e+00, 1.580000000000426e+00, 1.610000000000142e+00, 1.639999999999858e+00, 1.669999999999574e+00, 1.700000119207158e+00, 1.729999940396137e+00, 1.759999940395853e+00, 1.789999940395995e+00, 1.820000059604645e+00, 1.850000059603579e+00, 1.880000059604005e+00, 1.909999880793268e+00, 1.940000000000568e+00, 1.970000000000284e+00, 2e+00] +sorDes.y[4]=[-1e+00, -9.700000279396727e-01, -9.399999962747139e-01, -9.100000242143751e-01, -8.799999925494277e-01, -8.500000260770252e-01, -8.199999888241416e-01, -7.900000223517407e-01, -7.599999850988655e-01, -7.300000298022691e-01, -6.999999925493972e-01, -6.700000149011524e-01, -6.399999776482982e-01, -6.099999999999289e-01, -5.799999850988476e-01, -5.500000298022336e-01, -5.199999701977309e-01, -4.900000149011345e-01, -4.600000298022158e-01, -4.3e-01, -4.000000149011168e-01, -3.699999850988388e-01, -3.4e-01, -3.100000149011611e-01, -2.799999850988388e-01, -2.5e-01, -2.199999701977486e-01, -1.900000298022424e-01, -1.59999999999991e-01, -1.299999701977398e-01, -1.000000372528142e-01, -7.000000745056284e-02, -3.999997764831148e-02, -1.000003911547481e-02, 1.999998882415249e-02, 5.000001862641812e-02, 7.999995529662296e-02, 1.099999850988743e-01, 1.400000149011257e-01, 1.70000044703377e-01, 1.999999850988833e-01, 2.300000149011345e-01, 2.600000298023223e-01, 2.800000154972077e-01, 2.399999850988566e-01, 1.999999552966052e-01, 1.600000298022601e-01, 1.199999925494328e-01, 7.999995529659643e-02, 4.000003725283197e-02, 0e+00, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +sorDes.y[5]=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 0e+00, -4.000003725226355e-02, -8.000007450452709e-02, -1.200001117568972e-01, -1.599999105944718e-01, -1.99999955297316e-01, -2.399999850987147e-01, -2.800000298017893e-01, -3.200000596036499e-01, -3.600001192073355e-01, -3.999999105944538e-01, -4.39999940396421e-01, -4.799999701980329e-01, -5.199999999997158e-01, -5.600000596037922e-01, -6.00000119207158e-01, -6.399998807930554e-01, -6.799999403963501e-01, -7.200000000004265e-01, -7.600000000001419e-01, -8.000000596039341e-01, -8.400000596033657e-01, -8.799998807924156e-01, -9.19999940396492e-01, -9.599999403962078e-01, -1e+00, -1.039999999999432e+00, -1.080000119208153e+00, -1.120000119207584e+00, -1.15999988079199e+00, -1.200000000000711e+00, -1.239999999999858e+00, -1.279999999999573e+00, -1.3200001192073e+00, -1.360000119207726e+00, -1.399999880792131e+00, -1.440000000000853e+00, -1.480000000000284e+00, -1.519999999999716e+00, -1.559999999999147e+00, -1.600000119207869e+00, -1.639999880792274e+00, -1.6799998807927e+00, -1.720000000000427e+00, -1.760000000000142e+00, -1.799999999999289e+00, -1.84000011920801e+00, -1.879999880792416e+00, -1.919999880791847e+00, -1.960000000000568e+00, -2e+00] +sorAsc.yIdx[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +sorAsc.yIdx[2]=[2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.999996423728557e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00] +sorAsc.yIdx[3]=[5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 2.000003576271443e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 1e+00] +sorAsc.yIdx[4]=[3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 4.000011920727175e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00] +sorAsc.yIdx[5]=[4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4.999988079272825e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00] +sorDes.yIdx[1]=[4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4.999988079272825e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00] +sorDes.yIdx[2]=[3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 4.000011920727175e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 2e+00] +sorDes.yIdx[3]=[5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 2.000003576271443e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 1e+00] +sorDes.yIdx[4]=[2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.999996423728557e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 4e+00] +sorDes.yIdx[5]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Sqrt.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Sqrt.txt new file mode 100644 index 0000000000..297265a295 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Sqrt.txt @@ -0,0 +1,10 @@ +last-generated=2017-03-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +sqrt1.y=[0e+00, 3.000000151209753e-01, 4.242640780004506e-01, 5.19615238657952e-01, 6.000000304655717e-01, 6.708204099709842e-01, 7.348469577225347e-01, 7.937253696589017e-01, 8.485281561682698e-01, 8.999999581764024e-01, 9.486833143720352e-01, 9.949874308719141e-01, 1.039230477455221e+00, 1.081665416452227e+00, 1.122497198567804e+00, 1.161895013535162e+00, 1.200000061053048e+00, 1.236931675108415e+00, 1.272792194757011e+00, 1.307669647770564e+00, 1.341640820018859e+00, 1.374772689295461e+00, 1.407124761570393e+00, 1.438749419485452e+00, 1.469693915545359e+00, 1.5e+00, 1.529705910072892e+00, 1.558845727408914e+00, 1.587450739336255e+00, 1.615549468355506e+00, 1.643167582235586e+00, 1.67032932591816e+00, 1.697056312424043e+00, 1.723368729631927e+00, 1.749285569514204e+00, 1.774823919128662e+00, 1.79999991650415e+00, 1.824828732160109e+00, 1.849324237967186e+00, 1.873499427778869e+00, 1.897366628797627e+00, 1.92093730809587e+00, 1.944222242152729e+00, 1.967231495689451e+00, 1.989974861761983e+00, 2.012461212082147e+00, 2.034698944689646e+00, 2.056696417552923e+00, 2.078460954982385e+00, 2.0999998841758e+00, 2.121320247650146e+00, 2.142428656561722e+00, 2.163330833015845e+00, 2.184032975916038e+00, 2.204540685682676e+00, 2.224859451957013e+00, 2.244994397148328e+00, 2.264950289619251e+00, 2.284731897771634e+00, 2.304343751580789e+00, 2.323790027187542e+00, 2.343074771088151e+00, 2.362202396838752e+00, 2.381176242295471e+00, 2.400000122167513e+00, 2.418677374339996e+00, 2.437211465061093e+00, 2.4556057147093e+00, 2.473863350246226e+00, 2.491987232695804e+00, 2.509979984659744e+00, 2.527844944024971e+00, 2.5455843896188e+00, 2.563201155531373e+00, 2.580697519828445e+00, 2.598076105117798e+00, 2.615339295572717e+00, 2.632489236991108e+00, 2.649528313558764e+00, 2.666458332066031e+00, 2.683281640075675e+00, 2.700000043707468e+00, 2.716615450301871e+00, 2.733130005642796e+00, 2.749545378666097e+00, 2.765863379767072e+00, 2.78208563396725e+00, 2.79821371264906e+00, 2.814249523153747e+00, 2.830194257581026e+00, 2.846049823292036e+00, 2.861817557081525e+00, 2.877498839013571e+00, 2.893095243766897e+00, 2.908607963433942e+00, 2.924038428522723e+00, 2.939387831140108e+00, 2.954657272610858e+00, 2.9698483654793e+00, 2.984962210576912e+00, 3e+00] +sqrt1.u=[0e+00, 9.000000558793503e-02, 1.800000111758684e-01, 2.70000016763792e-01, 3.600000223517301e-01, 4.499999813735582e-01, 5.400000335276152e-01, 6.29999992549414e-01, 7.200000447034036e-01, 8.099999701977308e-01, 8.999999627471637e-01, 9.900000149011523e-01, 1.080000067055185e+00, 1.169999999999929e+00, 1.259999985098848e+00, 1.349999970197766e+00, 1.440000089406701e+00, 1.529999955296543e+00, 1.619999940395462e+00, 1.710000059604609e+00, 1.799999925494238e+00, 1.890000044703386e+00, 1.980000029802305e+00, 2.069999895692183e+00, 2.160000134110051e+00, 2.25e+00, 2.340000000000426e+00, 2.429999970197198e+00, 2.519999970197767e+00, 2.609999970198051e+00, 2.699999940394822e+00, 2.789999940395533e+00, 2.880000178813401e+00, 2.969999910592447e+00, 3.059999910593299e+00, 3.150000149011168e+00, 3.239999880790071e+00, 3.329999880791066e+00, 3.420000119208934e+00, 3.510000119209929e+00, 3.599999850988832e+00, 3.690000089406701e+00, 3.780000089407553e+00, 3.869999821186599e+00, 3.960000059604467e+00, 4.050000298020914e+00, 4.13999979138536e+00, 4.230000029802375e+00, 4.320000268218823e+00, 4.409999761583268e+00, 4.5e+00, 4.590000238415453e+00, 4.679999999998295e+00, 4.770000238416022e+00, 4.859999940397274e+00, 4.949999701980684e+00, 5.039999940394929e+00, 5.130000178811589e+00, 5.219999940393863e+00, 5.310000178811589e+00, 5.399999880792842e+00, 5.489999642376821e+00, 5.579999880791137e+00, 5.670000119208863e+00, 5.760000357623179e+00, 5.850000119207158e+00, 5.939999821188411e+00, 6.030000059606137e+00, 6.119999821188411e+00, 6.210000059605071e+00, 6.300000298019316e+00, 6.390000059602726e+00, 6.479999761583978e+00, 6.570000000001705e+00, 6.659999761584547e+00, 6.75e+00, 6.840000238415453e+00, 6.929999999998295e+00, 7.020000238416022e+00, 7.109999940397274e+00, 7.199999701980684e+00, 7.289999940394929e+00, 7.380000178811589e+00, 7.469999940393863e+00, 7.560000178811589e+00, 7.649999880792842e+00, 7.739999642376821e+00, 7.829999880791137e+00, 7.920000119208863e+00, 8.010000357623179e+00, 8.100000596038631e+00, 8.189999344357505e+00, 8.279999582772959e+00, 8.369999821188411e+00, 8.460000059604502e+00, 8.550000298019315e+00, 8.640000536434769e+00, 8.729999284753642e+00, 8.819999523169095e+00, 8.909999761584547e+00, 9e+00] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Subtract.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Subtract.txt new file mode 100644 index 0000000000..3231475f65 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Subtract.txt @@ -0,0 +1,11 @@ +last-generated=2022-01-28 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +sub.u1=[-2e+00, -1.960000037252901e+00, -1.919999955296513e+00, -1.879999992549417e+00, -1.840000029802316e+00, -1.799999955296522e+00, -1.759999985098829e+00, -1.720000029802327e+00, -1.679999940395462e+00, -1.64e+00, -1.600000029802322e+00, -1.559999940395391e+00, -1.519999970197678e+00, -1.48e+00, -1.440000059604609e+00, -1.4e+00, -1.36e+00, -1.320000059604538e+00, -1.28e+00, -1.24e+00, -1.200000059604467e+00, -1.159999940395355e+00, -1.12e+00, -1.080000059604645e+00, -1.039999940395355e+00, -1e+00, -9.599999403956394e-01, -9.20000059604325e-01, -8.799999999999999e-01, -8.39999940395604e-01, -8.000000596046448e-01, -7.6e-01, -7.2e-01, -6.800000596046447e-01, -6.399999999999999e-01, -6.000000000000001e-01, -5.600000596046448e-01, -5.2e-01, -4.799999701977486e-01, -4.399999403955683e-01, -4.000000298022335e-01, -3.600000000000001e-01, -3.199999403955507e-01, -2.800000298022158e-01, -2.399999850988566e-01, -1.999999552966052e-01, -1.600000298022601e-01, -1.199999925494328e-01, -7.999995529659643e-02, -4.000003725283197e-02, 1.332267629550188e-15, 4.000003725226355e-02, 8.000007450452709e-02, 1.200001117568972e-01, 1.599999105944718e-01, 1.99999955297316e-01, 2.399999850987147e-01, 2.800000298017893e-01, 3.200000596036499e-01, 3.600001192073355e-01, 3.999999105944538e-01, 4.39999940396421e-01, 4.799999701980329e-01, 5.199999999997158e-01, 5.600000596037922e-01, 6.00000119207158e-01, 6.399998807930554e-01, 6.799999403963501e-01, 7.200000000004265e-01, 7.600000000001419e-01, 8.000000596039341e-01, 8.400000596033657e-01, 8.799998807924156e-01, 9.19999940396492e-01, 9.599999403962078e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00] +sub.u2=[-5e-01, -4.799999888241316e-01, -4.60000007450579e-01, -4.399999962747085e-01, -4.199999850988488e-01, -4.000000074505834e-01, -3.799999925494144e-01, -3.60000014901159e-01, -3.4e-01, -3.2e-01, -3.00000014901139e-01, -2.8e-01, -2.599999850988788e-01, -2.399999850988743e-01, -2.2e-01, -2.000000149011168e-01, -1.8e-01, -1.6e-01, -1.400000149011079e-01, -1.199999925494283e-01, -1.000000074505695e-01, -7.999998509886325e-02, -5.999999627471636e-02, -4.000000745056503e-02, -1.99999888241541e-02, 3.33066907387547e-16, 2.000001862641598e-02, 3.999997764829821e-02, 5.999999627471642e-02, 8.000001490113007e-02, 9.99999776483026e-02, 1.199999925494283e-01, 1.400000149011079e-01, 1.599999701977753e-01, 1.8e-01, 2.000000149011167e-01, 2.199999701977842e-01, 2.399999850988743e-01, 2.6e-01, 2.800000298023224e-01, 3e-01, 3.2e-01, 3.400000298023224e-01, 3.6e-01, 3.8e-01, 4.000000298023224e-01, 4.19999970197802e-01, 4.399999999999999e-01, 4.600000298021625e-01, 4.799999701978197e-01, 5e-01, 5.199999999997158e-01, 5.400000596040764e-01, 5.600000596037922e-01, 5.799999403959948e-01, 6.000000000003554e-01, 6.199999999999291e-01, 6.399999999997867e-01, 6.600000596036499e-01, 6.800000596038631e-01, 6.999999403960657e-01, 7.200000000004263e-01, 7.400000000001421e-01, 7.599999999998579e-01, 7.799999999995737e-01, 8.000000596039343e-01, 8.199999403961369e-01, 8.399999403963501e-01, 8.600000000002133e-01, 8.800000000000709e-01, 8.999999999996446e-01, 9.200000596040052e-01, 9.399999403962078e-01, 9.599999403959236e-01, 9.800000000002842e-01, 1e+00, 1.02e+00, 1.04e+00, 1.06e+00, 1.08e+00, 1.1e+00, 1.12e+00, 1.14e+00, 1.16e+00, 1.18e+00, 1.2e+00, 1.22e+00, 1.24e+00, 1.26e+00, 1.28e+00, 1.3e+00, 1.32e+00, 1.34e+00, 1.36e+00, 1.38e+00, 1.4e+00, 1.42e+00, 1.44e+00, 1.46e+00, 1.48e+00, 1.5e+00] +sub.y=[-1.5e+00, -1.480000018626444e+00, -1.460000037252888e+00, -1.440000055879333e+00, -1.41999995529654e+00, -1.399999977648283e+00, -1.379999992549454e+00, -1.360000014901154e+00, -1.340000029802269e+00, -1.320000059604538e+00, -1.299999955296561e+00, -1.279999970197695e+00, -1.259999985098919e+00, -1.239999999999858e+00, -1.220000029802305e+00, -1.200000059604467e+00, -1.179999940395462e+00, -1.159999970197731e+00, -1.140000000000213e+00, -1.120000000000071e+00, -1.100000029802234e+00, -1.080000029802127e+00, -1.059999940395391e+00, -1.039999970197802e+00, -1.019999970197838e+00, -1e+00, -9.8e-01, -9.6e-01, -9.399999999999999e-01, -9.2e-01, -9e-01, -8.8e-01, -8.6e-01, -8.4e-01, -8.2e-01, -8e-01, -7.8e-01, -7.6e-01, -7.4e-01, -7.2e-01, -7e-01, -6.8e-01, -6.6e-01, -6.4e-01, -6.2e-01, -6e-01, -5.8e-01, -5.600000000000001e-01, -5.4e-01, -5.2e-01, -5e-01, -4.799999701981039e-01, -4.59999970198246e-01, -4.399999403962078e-01, -4.200000298016828e-01, -4.00000029801967e-01, -3.800000000000709e-01, -3.600000000002133e-01, -3.399999701981751e-01, -3.199999403965277e-01, -3.00000059603579e-01, -2.800000298018961e-01, -2.599999999998579e-01, -2.399999850990164e-01, -2.199999701982105e-01, -1.999999552972269e-01, -1.800000596036677e-01, -1.600000298018249e-01, -1.400000149008946e-01, -1.199999925493573e-01, -9.999997764865798e-02, -7.99999552972359e-02, -6.00000558784486e-02, -4.000003725226355e-02, -2.000001862613177e-02, 1.110223024625157e-15, 2.000001862613177e-02, 4.000003725226355e-02, 6.00000558784486e-02, 7.99999552972359e-02, 9.999997764865798e-02, 1.199999925493573e-01, 1.400000149008946e-01, 1.600000298018249e-01, 1.800000596036677e-01, 1.999999552972269e-01, 2.199999701982105e-01, 2.399999850990164e-01, 2.599999999998579e-01, 2.800000298018961e-01, 3.00000059603579e-01, 3.199999403965277e-01, 3.399999701981751e-01, 3.600000000002133e-01, 3.800000000000709e-01, 4.00000029801967e-01, 4.200000298016828e-01, 4.399999403962078e-01, 4.59999970198246e-01, 4.799999701981039e-01, 5e-01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Switch.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Switch.txt new file mode 100644 index 0000000000..4d3b037e50 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Switch.txt @@ -0,0 +1,12 @@ +last-generated=2019-05-21 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +switch1.u1=[-1e+00, -9.399999985098856e-01, -8.799999970197717e-01, -8.200000000000107e-01, -7.599999940395409e-01, -6.99999988079071e-01, -6.4e-01, -5.799999761581776e-01, -5.19999988079071e-01, -4.599999940395711e-01, -4.000000059604645e-01, -3.400000178814005e-01, -2.800000298021661e-01, -2.199999701978339e-01, -1.599999821185994e-01, -1.000000014901161e-01, -4.000001341106101e-02, 1.999997094288099e-02, 8.000002682195148e-02, 1.400000149011683e-01, 2.000000029802322e-01, 2.600000476838864e-01, 3.19999964237199e-01, 3.800000238418723e-01, 4.399999403953267e-01, 5e-01, 5.600000596048154e-01, 6.199999761580569e-01, 6.800000357627302e-01, 7.399999523161136e-01, 8.00000011920929e-01, 8.600000715254601e-01, 9.199999880789859e-01, 9.800000476836591e-01, 1.039999904632682e+00, 1.100000023841858e+00, 1.160000023842312e+00, 1.219999999999773e+00, 1.280000000000227e+00, 1.339999976157688e+00, 1.399999976158142e+00, 1.460000095367318e+00, 1.520000095367204e+00, 1.579999928473517e+00, 1.63999992847454e+00, 1.700000047683716e+00, 1.760000047683602e+00, 1.820000166892778e+00, 1.879999880790938e+00, 1.939999999999545e+00, 2e+00, 2.060000000000454e+00, 2.12000000000091e+00, 2.179999952315375e+00, 2.23999995231583e+00, 2.299999952316284e+00, 2.359999952316739e+00, 2.420000190733499e+00, 2.479999904631659e+00, 2.53999990463325e+00, 2.599999904632568e+00, 2.660000143050465e+00, 2.720000143052057e+00, 2.779999856947943e+00, 2.839999856949535e+00, 2.900000095367432e+00, 2.96000009536675e+00, 3.020000095368341e+00, 3.079999809266501e+00, 3.140000047683261e+00, 3.200000047683716e+00, 3.26000004768417e+00, 3.320000047684625e+00, 3.37999999999909e+00, 3.439999999999546e+00, 3.5e+00, 3.560000000000454e+00, 3.62000000000091e+00, 3.679999952315375e+00, 3.73999995231583e+00, 3.799999952316284e+00, 3.859999666222175e+00, 3.92000019073077e+00, 3.979999904634387e+00, 4.040000190731226e+00, 4.099999904632568e+00, 4.159999618533911e+00, 4.219999904630749e+00, 4.280000095369251e+00, 4.340000381466089e+00, 4.400000095367432e+00, 4.459999809268774e+00, 4.520000095365614e+00, 4.579999809266956e+00, 4.640000095363793e+00, 4.699999809265137e+00, 4.760000000003638e+00, 4.820000286095929e+00, 4.88000000000182e+00, 4.940000286098657e+00, 5e+00] +switch1.u2=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +switch1.u3=[-1e+00, -9.800000193715102e-01, -9.599999791383756e-01, -9.400000000000035e-01, -9.200000178813952e-01, -8.999999761581421e-01, -8.8e-01, -8.600000119209289e-01, -8.39999976158142e-01, -8.19999988079071e-01, -8.00000011920929e-01, -7.799999761581563e-01, -7.599999999999716e-01, -7.400000000000284e-01, -7.200000238418437e-01, -6.99999988079071e-01, -6.800000119209432e-01, -6.600000357626163e-01, -6.399999761581705e-01, -6.199999999999858e-01, -6.000000238418579e-01, -5.799999642371563e-01, -5.600000119209574e-01, -5.400000119209005e-01, -5.200000000000569e-01, -5e-01, -4.799999701977629e-01, -4.600000178813508e-01, -4.399999880790426e-01, -4.200000059605213e-01, -4.000000059604645e-01, -3.799999761580852e-01, -3.600000238418152e-01, -3.39999994039507e-01, -3.200000119209857e-01, -3.00000011920929e-01, -2.799999821185498e-01, -2.600000000000284e-01, -2.39999985098846e-01, -2.200000178814502e-01, -2.000000029802322e-01, -1.799999880790143e-01, -1.59999958276777e-01, -1.400000387429907e-01, -1.200000163912986e-01, -1.000000014901161e-01, -7.999997913835291e-02, -5.999996051191588e-02, -4.000003725294565e-02, -2.000001862647274e-02, -3.774758283725532e-15, 2.000001862647274e-02, 4.000003725294565e-02, 5.999996051191588e-02, 7.999997913835308e-02, 1.000000014901161e-01, 1.200000163912987e-01, 1.400000387429906e-01, 1.59999958276777e-01, 1.799999880790141e-01, 2.000000029802322e-01, 2.200000178814502e-01, 2.400000327826683e-01, 2.599999523164547e-01, 2.799999821185498e-01, 3.00000011920929e-01, 3.200000119209859e-01, 3.400000417233651e-01, 3.599999761580285e-01, 3.799999761580851e-01, 4.000000059604645e-01, 4.200000059605212e-01, 4.400000357629004e-01, 4.599999701975639e-01, 4.79999970197763e-01, 5e-01, 5.200000000000568e-01, 5.400000596047585e-01, 5.599999642370996e-01, 5.799999642371564e-01, 6.000000238418579e-01, 6.199999284760181e-01, 6.40000023841062e-01, 6.599999880798666e-01, 6.800000834449111e-01, 6.99999988079071e-01, 7.199999523178757e-01, 7.400000476829199e-01, 7.599999523170801e-01, 7.800000476821243e-01, 8.00000011920929e-01, 8.199999165550889e-01, 8.400000119201334e-01, 8.59999976158938e-01, 8.800000715239819e-01, 8.999999761581421e-01, 9.199999403969468e-01, 9.40000035761991e-01, 9.599999403961511e-01, 9.800000953658401e-01, 1e+00] +time=[0e+00, 5e+00] +switch1.y=[-1e+00, -9.399999985098856e-01, -8.799999970197717e-01, -8.200000000000107e-01, -7.599999940395409e-01, -6.99999988079071e-01, -6.4e-01, -5.799999761581776e-01, -5.19999988079071e-01, -4.599999940395711e-01, -4.000000059604645e-01, -3.400000178814005e-01, -2.800000298021661e-01, -2.199999701978339e-01, -1.599999821185994e-01, -1.000000014901161e-01, -4.000001341106101e-02, 1.999997094288099e-02, 8.000002682195148e-02, 1.400000149011683e-01, 2.000000029802322e-01, -5.799999642371563e-01, -5.600000119209574e-01, -5.400000119209005e-01, -5.200000000000569e-01, -5e-01, -4.799999701977629e-01, -4.600000178813508e-01, -4.399999880790426e-01, -4.200000059605213e-01, -4.000000059604645e-01, -3.799999761580852e-01, -3.600000238418152e-01, -3.39999994039507e-01, -3.200000119209857e-01, -3.00000011920929e-01, -2.799999821185498e-01, -2.600000000000284e-01, -2.39999985098846e-01, -2.200000178814502e-01, -2.000000029802322e-01, 1.460000095367318e+00, 1.520000095367204e+00, 1.579999928473517e+00, 1.63999992847454e+00, 1.700000047683716e+00, 1.760000047683602e+00, 1.820000166892778e+00, 1.879999880790938e+00, 1.939999999999545e+00, 2e+00, 2.060000000000454e+00, 2.12000000000091e+00, 2.179999952315375e+00, 2.23999995231583e+00, 2.299999952316284e+00, 2.359999952316739e+00, 2.420000190733499e+00, 2.479999904631659e+00, 2.53999990463325e+00, 2.599999904632568e+00, 2.200000178814502e-01, 2.400000327826683e-01, 2.599999523164547e-01, 2.799999821185498e-01, 3.00000011920929e-01, 3.200000119209859e-01, 3.400000417233651e-01, 3.599999761580285e-01, 3.799999761580851e-01, 4.000000059604645e-01, 4.200000059605212e-01, 4.400000357629004e-01, 4.599999701975639e-01, 4.79999970197763e-01, 5e-01, 5.200000000000568e-01, 5.400000596047585e-01, 5.599999642370996e-01, 5.799999642371564e-01, 6.000000238418579e-01, 3.859999666222175e+00, 3.92000019073077e+00, 3.979999904634387e+00, 4.040000190731226e+00, 4.099999904632568e+00, 4.159999618533911e+00, 4.219999904630749e+00, 4.280000095369251e+00, 4.340000381466089e+00, 4.400000095367432e+00, 4.459999809268774e+00, 4.520000095365614e+00, 4.579999809266956e+00, 4.640000095363793e+00, 4.699999809265137e+00, 4.760000000003638e+00, 4.820000286095929e+00, 4.88000000000182e+00, 4.940000286098657e+00, 5e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Tan.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Tan.txt new file mode 100644 index 0000000000..b74ef1621d --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Reals_Validation_Tan.txt @@ -0,0 +1,10 @@ +last-generated=2017-03-22 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +tan1.u=[-1.5e+00, -1.470000027939673e+00, -1.440000055879345e+00, -1.40999996460977e+00, -1.379999992549401e+00, -1.350000026077003e+00, -1.320000048428746e+00, -1.289999962747105e+00, -1.259999985098812e+00, -1.230000029802162e+00, -1.200000052153998e+00, -1.169999955296543e+00, -1.139999977648218e+00, -1.109999999999929e+00, -1.080000044703457e+00, -1.049999970197766e+00, -1.019999970197838e+00, -9.900000149011345e-01, -9.600000000001065e-01, -9.300000000000355e-01, -8.999999850988831e-01, -8.699999850989365e-01, -8.399999701976953e-01, -8.10000014901099e-01, -7.799999552965964e-01, -7.5e-01, -7.199999999998579e-01, -6.900000298021625e-01, -6.600000298023045e-01, -6.29999970197802e-01, -6.000000596044672e-01, -5.699999999999645e-01, -5.399999999998935e-01, -5.10000029802127e-01, -4.799999999999999e-01, -4.499999701977665e-01, -4.200000298023224e-01, -3.9e-01, -3.6e-01, -3.299999701976776e-01, -3.000000298022335e-01, -2.700000000000001e-01, -2.399999552966142e-01, -2.100000149011612e-01, -1.8e-01, -1.499999701976776e-01, -1.200000223517106e-01, -9.000000000000452e-02, -5.99999664724673e-02, -3.000002793961509e-02, 0e+00, 3.000002793918877e-02, 6.000005587839531e-02, 9.000008940547513e-02, 1.199999329458938e-01, 1.499999701982107e-01, 1.799999999998936e-01, 2.100000149008413e-01, 2.400000447027374e-01, 2.700000894054039e-01, 2.99999940396421e-01, 3.299999701983171e-01, 3.600000000002131e-01, 3.899999999997869e-01, 4.200000298016829e-01, 4.50000059603579e-01, 4.799999105945961e-01, 5.099999403963501e-01, 5.400000000002133e-01, 5.700000000000709e-01, 6.000000596039341e-01, 6.300000596033657e-01, 6.599999403962078e-01, 6.89999940396492e-01, 7.200000000002842e-01, 7.5e-01, 7.799999999997158e-01, 8.10000059603508e-01, 8.400000596037922e-01, 8.699999403966343e-01, 8.999999403960659e-01, 9.299999999999291e-01, 9.599999999997867e-01, 9.900000596036499e-01, 1.020000059603863e+00, 1.049999880792842e+00, 1.080000000000426e+00, 1.110000000000142e+00, 1.139999999999858e+00, 1.169999999999574e+00, 1.200000119207158e+00, 1.229999940396137e+00, 1.259999940395853e+00, 1.289999940395995e+00, 1.320000059604645e+00, 1.350000059603579e+00, 1.380000059604005e+00, 1.409999880793268e+00, 1.440000000000568e+00, 1.470000000000284e+00, 1.5e+00] +tan1.y=[-1.410142040252686e+01, -9.887374815413839e+00, -7.601826115546201e+00, -6.165356083530985e+00, -5.177437233115566e+00, -4.45522170086631e+00, -3.903347666807665e+00, -3.467205774752797e+00, -3.113269034344981e+00, -2.819815733372622e+00, -2.572151695499103e+00, -2.359981048444761e+00, -2.175875141371414e+00, -2.014338183442734e+00, -1.871217378173971e+00, -1.743315412078084e+00, -1.628130397153165e+00, -1.523676771027147e+00, -1.428357547756727e+00, -1.340873817618058e+00, -1.26015820450566e+00, -1.185324860331316e+00, -1.1156322876344e+00, -1.050455119880158e+00, -9.892614763328818e-01, -9.315964579582214e-01, -8.770678731914811e-01, -8.253361530519888e-01, -7.761049328202556e-01, -7.291146731090656e-01, -6.841368606368048e-01, -6.409685713026726e-01, -5.994295783279446e-01, -5.593587678331688e-01, -5.206108826104062e-01, -4.830550331510841e-01, -4.465725938031347e-01, -4.110549259930083e-01, -3.764028386242348e-01, -3.425248084765659e-01, -3.093362646890255e-01, -2.767581228335295e-01, -2.447166622575337e-01, -2.131424621844687e-01, -1.819695160484656e-01, -1.511351845767373e-01, -1.205793649804371e-01, -9.024378296992214e-02, -6.007207308656847e-02, -3.000903199753029e-02, 0e+00, 3.000903199710351e-02, 6.007216282527954e-02, 9.024387314962294e-02, 1.20579274302436e-01, 1.511351845772821e-01, 1.819695160483558e-01, 2.131424621841338e-01, 2.447167570358983e-01, 2.767582192099088e-01, 3.09336166835865e-01, 3.425248084772789e-01, 3.764028386244776e-01, 4.110549259927585e-01, 4.465725938023656e-01, 4.830551436131802e-01, 5.206107692398058e-01, 5.593586504977714e-01, 5.99429578328378e-01, 6.409685713028234e-01, 6.84136860636019e-01, 7.291148103115863e-01, 7.761047901712893e-01, 8.253360029476939e-01, 8.770678731922313e-01, 9.315964579582214e-01, 9.892615649350229e-01, 1.050455214508243e+00, 1.115632489564646e+00, 1.185324753580106e+00, 1.26015808933166e+00, 1.340873817617763e+00, 1.428357547755746e+00, 1.523676920883134e+00, 1.628130726014354e+00, 1.743315053177988e+00, 1.87121717899742e+00, 2.0143381834438e+00, 2.175875270036343e+00, 2.359981346009297e+00, 2.572152214189558e+00, 2.81981494312602e+00, 3.113268565123776e+00, 3.467205489147122e+00, 3.903347849554273e+00, 4.455222419078826e+00, 5.17743915277855e+00, 6.165352930281273e+00, 7.601822973838238e+00, 9.887372210631513e+00, 1.410142040252686e+01] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanExtractSignal.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanExtractSignal.txt new file mode 100644 index 0000000000..1ecab3563c --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanExtractSignal.txt @@ -0,0 +1,20 @@ +last-generated=2022-10-07 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +extBooSig.u[1]=[1e+00, 1e+00] +extBooSig.u[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extBooSig.u[3]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 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.999940395475961e-01, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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.192072717545907e-05, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +extBooSig.u[4]=[0e+00, 0e+00] +extBooSig.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 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.999940395475961e-01, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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.192072717545907e-05, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +extBooSig.y[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extBooSig.y[3]=[0e+00, 0e+00] +extBooSig1.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 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.999940395475961e-01, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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.192072717545907e-05, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +extBooSig1.y[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extBooSig1.y[3]=[0e+00, 0e+00] +extBooSig1.y[4]=[1e+00, 1e+00] +extBooSig1.y[5]=[1e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanExtractor.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanExtractor.txt new file mode 100644 index 0000000000..dccb636019 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanExtractor.txt @@ -0,0 +1,22 @@ +last-generated=2022-10-12 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +extIndBoo.u[1]=[1e+00, 1e+00] +extIndBoo.u[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extIndBoo.u[3]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 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.999940395475961e-01, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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.192072717545907e-05, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +extIndBoo.u[4]=[0e+00, 0e+00] +extIndBoo.index=[2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00] +extIndBoo.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extIndBoo1.index=[6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +extIndBoo1.y=[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, 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] +extIndBoo2.index=[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, 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] +extIndBoo2.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +extIndBoo3.index=[2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00] +extIndBoo3.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +extIndBoo4.index=[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, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +extIndBoo4.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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.192072717545907e-05, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanScalarReplicator.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanScalarReplicator.txt new file mode 100644 index 0000000000..e5c1b92dff --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanScalarReplicator.txt @@ -0,0 +1,12 @@ +last-generated=2018-06-19 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +booRep.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +time=[0e+00, 1e+00] +booRep.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booRep.y[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booRep.y[3]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanVectorFilter.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanVectorFilter.txt new file mode 100644 index 0000000000..2499499edf --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanVectorFilter.txt @@ -0,0 +1,13 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +booFil.u[1]=[1e+00, 1e+00] +booFil.u[2]=[1e+00, 1e+00] +booFil.u[3]=[0e+00, 0e+00] +booFil.y[1]=[1e+00, 1e+00] +booFil.y[2]=[0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanVectorReplicator.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanVectorReplicator.txt new file mode 100644 index 0000000000..9d13cdae4c --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_BooleanVectorReplicator.txt @@ -0,0 +1,12 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +booRep.u[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booRep.y[1, 1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booRep.y[2, 2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booRep.y[3, 2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerExtractSignal.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerExtractSignal.txt new file mode 100644 index 0000000000..487d0525af --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerExtractSignal.txt @@ -0,0 +1,20 @@ +last-generated=2022-10-07 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +extIntSig.u[1]=[1e+00, 1e+00] +extIntSig.u[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extIntSig.u[3]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 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.999880790951923e-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, -9.99976158545649e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +extIntSig.u[4]=[4e+00, 4e+00] +extIntSig.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 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.999880790951923e-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, -9.99976158545649e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +extIntSig.y[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extIntSig.y[3]=[4e+00, 4e+00] +extIntSig1.y[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 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.999880790951923e-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, -9.99976158545649e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +extIntSig1.y[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extIntSig1.y[3]=[4e+00, 4e+00] +extIntSig1.y[4]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extIntSig1.y[5]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 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.999880790951923e-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, -9.99976158545649e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerExtractor.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerExtractor.txt new file mode 100644 index 0000000000..4a7d27356b --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerExtractor.txt @@ -0,0 +1,22 @@ +last-generated=2022-10-12 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +extIndInt.u[1]=[0e+00, 0e+00] +extIndInt.u[2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extIndInt.u[3]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 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.999880790951923e-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, -9.99976158545649e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +extIndInt.u[4]=[4e+00, 4e+00] +extIndInt.index=[2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00] +extIndInt.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extIndInt1.index=[6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +extIndInt1.y=[4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00, 4e+00] +extIndInt2.index=[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, 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] +extIndInt2.y=[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, 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] +extIndInt3.index=[2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00] +extIndInt3.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +extIndInt4.index=[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, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +extIndInt4.y=[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, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, -1e+00, -1e+00, -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.99976158545649e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerScalarReplicator.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerScalarReplicator.txt new file mode 100644 index 0000000000..7dbcc61e61 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerScalarReplicator.txt @@ -0,0 +1,13 @@ +last-generated=2017-07-25 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +ram.y=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980226121440666e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +time=[0e+00, 1e+00] +reaToInt.y=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.00000596036356e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000011920727176e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +intRep.y[1]=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.00000596036356e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000011920727176e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +intRep.y[2]=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.00000596036356e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000011920727176e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +intRep.y[3]=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.00000596036356e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000011920727176e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerVectorFilter.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerVectorFilter.txt new file mode 100644 index 0000000000..cb46360ea9 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerVectorFilter.txt @@ -0,0 +1,13 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +intFil.u[1]=[1e+00, 1e+00] +intFil.u[2]=[2e+00, 2e+00] +intFil.u[3]=[3e+00, 3e+00] +intFil.y[1]=[1e+00, 1e+00] +intFil.y[2]=[3e+00, 3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerVectorReplicator.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerVectorReplicator.txt new file mode 100644 index 0000000000..21a991457e --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_IntegerVectorReplicator.txt @@ -0,0 +1,13 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +ram[1].y=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980225988213903e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +reaToInt[1].y=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.00000596036356e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000011920727176e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +intRep.y[1, 1]=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.00000596036356e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000011920727176e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +intRep.y[2, 2]=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.00000596036356e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000011920727176e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +intRep.y[3, 2]=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.00000596036356e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000011920727176e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealExtractSignal.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealExtractSignal.txt new file mode 100644 index 0000000000..7be69a0c20 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealExtractSignal.txt @@ -0,0 +1,22 @@ +last-generated=2022-10-14 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +extSig.u[1]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980226121440666e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +extSig.u[2]=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 4.9999701981822e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 4.999940396364123e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extSig.u[3]=[1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299991011771211e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299982071226054e+00, -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] +extSig.u[4]=[-1e+00, -9.599999776482632e-01, -9.200000149011579e-01, -8.79999992549417e-01, -8.399999701976976e-01, -8.000000149011668e-01, -7.599999850988288e-01, -7.200000298023179e-01, -6.799999999999999e-01, -6.4e-01, -6.00000029802278e-01, -5.600000000000001e-01, -5.199999701977576e-01, -4.799999701977486e-01, -4.399999999999999e-01, -4.000000298022336e-01, -3.6e-01, -3.2e-01, -2.800000298022158e-01, -2.399999850988566e-01, -2.000000149011389e-01, -1.599999701977265e-01, -1.199999925494327e-01, -8.000001490113007e-02, -3.99999776483082e-02, 6.661338147750939e-16, 4.000003725283197e-02, 7.999995529659643e-02, 1.199999925494328e-01, 1.600000298022601e-01, 1.999999552966052e-01, 2.399999850988566e-01, 2.800000298022158e-01, 3.199999403955507e-01, 3.600000000000001e-01, 4.000000298022335e-01, 4.399999403955683e-01, 4.799999701977486e-01, 5.2e-01, 5.600000596046448e-01, 6.000000000000001e-01, 6.399999999999999e-01, 6.800000596046447e-01, 7.2e-01, 7.6e-01, 8.000000596046448e-01, 8.39999940395604e-01, 8.799999999999999e-01, 9.20000059604325e-01, 9.599999403956394e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00, 2.04e+00, 2.08e+00, 2.12e+00, 2.16e+00, 2.2e+00, 2.24e+00, 2.28e+00, 2.32e+00, 2.36e+00, 2.4e+00, 2.44e+00, 2.48e+00, 2.52e+00, 2.56e+00, 2.6e+00, 2.64e+00, 2.68e+00, 2.72e+00, 2.76e+00, 2.8e+00, 2.84e+00, 2.88e+00, 2.92e+00, 2.96e+00, 3e+00] +extSig.u[5]=[-2e+00, -1.970000027939673e+00, -1.940000055879345e+00, -1.90999996460977e+00, -1.879999992549401e+00, -1.850000026077003e+00, -1.820000048428746e+00, -1.789999962747105e+00, -1.759999985098812e+00, -1.730000029802162e+00, -1.700000052153998e+00, -1.669999955296543e+00, -1.639999977648218e+00, -1.609999999999929e+00, -1.580000044703457e+00, -1.549999970197766e+00, -1.519999970197838e+00, -1.490000014901188e+00, -1.460000059604325e+00, -1.429999940395462e+00, -1.399999985098883e+00, -1.369999985098741e+00, -1.340000029802305e+00, -1.309999955296579e+00, -1.279999955296756e+00, -1.25e+00, -1.219999999999858e+00, -1.190000089406487e+00, -1.159999970197695e+00, -1.129999970197553e+00, -1.100000059604112e+00, -1.070000059604538e+00, -1.039999940395675e+00, -1.010000029802518e+00, -9.800000298022691e-01, -9.499999701977665e-01, -9.200000596044317e-01, -8.900000000000711e-01, -8.599999999999289e-01, -8.299999403955683e-01, -8.000000298022335e-01, -7.699999701977309e-01, -7.39999970197873e-01, -7.100000000001065e-01, -6.800000000000355e-01, -6.499999403955328e-01, -6.200000298021979e-01, -5.899999701976955e-01, -5.599999701978375e-01, -5.300000000001421e-01, -5e-01, -4.699999701981039e-01, -4.399999403962078e-01, -4.09999910594738e-01, -3.800000596036854e-01, -3.500000298017893e-01, -3.200000000001064e-01, -2.899999701981041e-01, -2.599999403963501e-01, -2.299999254955619e-01, -2.000000745045626e-01, -1.700000447027376e-01, -1.400000149009125e-01, -1.099999850990875e-01, -7.999995529726243e-02, -4.999992922068328e-02, -2.000007822977725e-02, 9.999949709432063e-03, 3.999997764863138e-02, 7.000000745066925e-02, 1.000000372522811e-01, 1.300000596036855e-01, 1.599999105945249e-01, 1.899999403963499e-01, 2.19999970198175e-01, 2.5e-01, 2.800000298018961e-01, 3.100000596037922e-01, 3.40000089405262e-01, 3.699999403963146e-01, 3.999999701982107e-01, 4.299999999998936e-01, 4.600000298018959e-01, 4.900000596036499e-01, 5.200000596038631e-01, 5.499999403967762e-01, 5.799999403962078e-01, 6.100000000001421e-01, 6.399999999998579e-01, 6.700000596037922e-01, 7.000000596032238e-01, 7.299999403961369e-01, 7.599999403963501e-01, 7.900000000002133e-01, 8.200000000000709e-01, 8.500000596039341e-01, 8.800000596033657e-01, 9.099999403962078e-01, 9.39999940396492e-01, 9.700000000002842e-01, 1e+00] +extSig.y[1]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980226121440666e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +extSig.y[2]=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 4.9999701981822e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 4.999940396364123e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extSig.y[3]=[-2e+00, -1.970000027939673e+00, -1.940000055879345e+00, -1.90999996460977e+00, -1.879999992549401e+00, -1.850000026077003e+00, -1.820000048428746e+00, -1.789999962747105e+00, -1.759999985098812e+00, -1.730000029802162e+00, -1.700000052153998e+00, -1.669999955296543e+00, -1.639999977648218e+00, -1.609999999999929e+00, -1.580000044703457e+00, -1.549999970197766e+00, -1.519999970197838e+00, -1.490000014901188e+00, -1.460000059604325e+00, -1.429999940395462e+00, -1.399999985098883e+00, -1.369999985098741e+00, -1.340000029802305e+00, -1.309999955296579e+00, -1.279999955296756e+00, -1.25e+00, -1.219999999999858e+00, -1.190000089406487e+00, -1.159999970197695e+00, -1.129999970197553e+00, -1.100000059604112e+00, -1.070000059604538e+00, -1.039999940395675e+00, -1.010000029802518e+00, -9.800000298022691e-01, -9.499999701977665e-01, -9.200000596044317e-01, -8.900000000000711e-01, -8.599999999999289e-01, -8.299999403955683e-01, -8.000000298022335e-01, -7.699999701977309e-01, -7.39999970197873e-01, -7.100000000001065e-01, -6.800000000000355e-01, -6.499999403955328e-01, -6.200000298021979e-01, -5.899999701976955e-01, -5.599999701978375e-01, -5.300000000001421e-01, -5e-01, -4.699999701981039e-01, -4.399999403962078e-01, -4.09999910594738e-01, -3.800000596036854e-01, -3.500000298017893e-01, -3.200000000001064e-01, -2.899999701981041e-01, -2.599999403963501e-01, -2.299999254955619e-01, -2.000000745045626e-01, -1.700000447027376e-01, -1.400000149009125e-01, -1.099999850990875e-01, -7.999995529726243e-02, -4.999992922068328e-02, -2.000007822977725e-02, 9.999949709432063e-03, 3.999997764863138e-02, 7.000000745066925e-02, 1.000000372522811e-01, 1.300000596036855e-01, 1.599999105945249e-01, 1.899999403963499e-01, 2.19999970198175e-01, 2.5e-01, 2.800000298018961e-01, 3.100000596037922e-01, 3.40000089405262e-01, 3.699999403963146e-01, 3.999999701982107e-01, 4.299999999998936e-01, 4.600000298018959e-01, 4.900000596036499e-01, 5.200000596038631e-01, 5.499999403967762e-01, 5.799999403962078e-01, 6.100000000001421e-01, 6.399999999998579e-01, 6.700000596037922e-01, 7.000000596032238e-01, 7.299999403961369e-01, 7.599999403963501e-01, 7.900000000002133e-01, 8.200000000000709e-01, 8.500000596039341e-01, 8.800000596033657e-01, 9.099999403962078e-01, 9.39999940396492e-01, 9.700000000002842e-01, 1e+00] +extSig1.y[1]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980226121440666e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +extSig1.y[2]=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 4.9999701981822e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 4.999940396364123e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extSig1.y[3]=[-2e+00, -1.970000027939673e+00, -1.940000055879345e+00, -1.90999996460977e+00, -1.879999992549401e+00, -1.850000026077003e+00, -1.820000048428746e+00, -1.789999962747105e+00, -1.759999985098812e+00, -1.730000029802162e+00, -1.700000052153998e+00, -1.669999955296543e+00, -1.639999977648218e+00, -1.609999999999929e+00, -1.580000044703457e+00, -1.549999970197766e+00, -1.519999970197838e+00, -1.490000014901188e+00, -1.460000059604325e+00, -1.429999940395462e+00, -1.399999985098883e+00, -1.369999985098741e+00, -1.340000029802305e+00, -1.309999955296579e+00, -1.279999955296756e+00, -1.25e+00, -1.219999999999858e+00, -1.190000089406487e+00, -1.159999970197695e+00, -1.129999970197553e+00, -1.100000059604112e+00, -1.070000059604538e+00, -1.039999940395675e+00, -1.010000029802518e+00, -9.800000298022691e-01, -9.499999701977665e-01, -9.200000596044317e-01, -8.900000000000711e-01, -8.599999999999289e-01, -8.299999403955683e-01, -8.000000298022335e-01, -7.699999701977309e-01, -7.39999970197873e-01, -7.100000000001065e-01, -6.800000000000355e-01, -6.499999403955328e-01, -6.200000298021979e-01, -5.899999701976955e-01, -5.599999701978375e-01, -5.300000000001421e-01, -5e-01, -4.699999701981039e-01, -4.399999403962078e-01, -4.09999910594738e-01, -3.800000596036854e-01, -3.500000298017893e-01, -3.200000000001064e-01, -2.899999701981041e-01, -2.599999403963501e-01, -2.299999254955619e-01, -2.000000745045626e-01, -1.700000447027376e-01, -1.400000149009125e-01, -1.099999850990875e-01, -7.999995529726243e-02, -4.999992922068328e-02, -2.000007822977725e-02, 9.999949709432063e-03, 3.999997764863138e-02, 7.000000745066925e-02, 1.000000372522811e-01, 1.300000596036855e-01, 1.599999105945249e-01, 1.899999403963499e-01, 2.19999970198175e-01, 2.5e-01, 2.800000298018961e-01, 3.100000596037922e-01, 3.40000089405262e-01, 3.699999403963146e-01, 3.999999701982107e-01, 4.299999999998936e-01, 4.600000298018959e-01, 4.900000596036499e-01, 5.200000596038631e-01, 5.499999403967762e-01, 5.799999403962078e-01, 6.100000000001421e-01, 6.399999999998579e-01, 6.700000596037922e-01, 7.000000596032238e-01, 7.299999403961369e-01, 7.599999403963501e-01, 7.900000000002133e-01, 8.200000000000709e-01, 8.500000596039341e-01, 8.800000596033657e-01, 9.099999403962078e-01, 9.39999940396492e-01, 9.700000000002842e-01, 1e+00] +extSig1.y[4]=[1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299991011771211e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299982071226054e+00, -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] +extSig1.y[5]=[-1e+00, -9.599999776482632e-01, -9.200000149011579e-01, -8.79999992549417e-01, -8.399999701976976e-01, -8.000000149011668e-01, -7.599999850988288e-01, -7.200000298023179e-01, -6.799999999999999e-01, -6.4e-01, -6.00000029802278e-01, -5.600000000000001e-01, -5.199999701977576e-01, -4.799999701977486e-01, -4.399999999999999e-01, -4.000000298022336e-01, -3.6e-01, -3.2e-01, -2.800000298022158e-01, -2.399999850988566e-01, -2.000000149011389e-01, -1.599999701977265e-01, -1.199999925494327e-01, -8.000001490113007e-02, -3.99999776483082e-02, 6.661338147750939e-16, 4.000003725283197e-02, 7.999995529659643e-02, 1.199999925494328e-01, 1.600000298022601e-01, 1.999999552966052e-01, 2.399999850988566e-01, 2.800000298022158e-01, 3.199999403955507e-01, 3.600000000000001e-01, 4.000000298022335e-01, 4.399999403955683e-01, 4.799999701977486e-01, 5.2e-01, 5.600000596046448e-01, 6.000000000000001e-01, 6.399999999999999e-01, 6.800000596046447e-01, 7.2e-01, 7.6e-01, 8.000000596046448e-01, 8.39999940395604e-01, 8.799999999999999e-01, 9.20000059604325e-01, 9.599999403956394e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00, 2.04e+00, 2.08e+00, 2.12e+00, 2.16e+00, 2.2e+00, 2.24e+00, 2.28e+00, 2.32e+00, 2.36e+00, 2.4e+00, 2.44e+00, 2.48e+00, 2.52e+00, 2.56e+00, 2.6e+00, 2.64e+00, 2.68e+00, 2.72e+00, 2.76e+00, 2.8e+00, 2.84e+00, 2.88e+00, 2.92e+00, 2.96e+00, 3e+00] +extSig1.y[6]=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 4.9999701981822e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 4.999940396364123e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealExtractor.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealExtractor.txt new file mode 100644 index 0000000000..bd436e9e8a --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealExtractor.txt @@ -0,0 +1,22 @@ +last-generated=2022-10-14 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +extIndSig.u[1]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980226121440666e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +extIndSig.u[2]=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 4.9999701981822e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 4.999940396364123e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extIndSig.u[3]=[1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299991011771211e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299982071226054e+00, -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] +extIndSig.u[4]=[-1e+00, -9.599999776482632e-01, -9.200000149011579e-01, -8.79999992549417e-01, -8.399999701976976e-01, -8.000000149011668e-01, -7.599999850988288e-01, -7.200000298023179e-01, -6.799999999999999e-01, -6.4e-01, -6.00000029802278e-01, -5.600000000000001e-01, -5.199999701977576e-01, -4.799999701977486e-01, -4.399999999999999e-01, -4.000000298022336e-01, -3.6e-01, -3.2e-01, -2.800000298022158e-01, -2.399999850988566e-01, -2.000000149011389e-01, -1.599999701977265e-01, -1.199999925494327e-01, -8.000001490113007e-02, -3.99999776483082e-02, 6.661338147750939e-16, 4.000003725283197e-02, 7.999995529659643e-02, 1.199999925494328e-01, 1.600000298022601e-01, 1.999999552966052e-01, 2.399999850988566e-01, 2.800000298022158e-01, 3.199999403955507e-01, 3.600000000000001e-01, 4.000000298022335e-01, 4.399999403955683e-01, 4.799999701977486e-01, 5.2e-01, 5.600000596046448e-01, 6.000000000000001e-01, 6.399999999999999e-01, 6.800000596046447e-01, 7.2e-01, 7.6e-01, 8.000000596046448e-01, 8.39999940395604e-01, 8.799999999999999e-01, 9.20000059604325e-01, 9.599999403956394e-01, 1e+00, 1.039999999999432e+00, 1.080000119208153e+00, 1.120000119207584e+00, 1.15999988079199e+00, 1.200000000000711e+00, 1.239999999999858e+00, 1.279999999999573e+00, 1.3200001192073e+00, 1.360000119207726e+00, 1.399999880792131e+00, 1.440000000000853e+00, 1.480000000000284e+00, 1.519999999999716e+00, 1.559999999999147e+00, 1.600000119207869e+00, 1.639999880792274e+00, 1.6799998807927e+00, 1.720000000000427e+00, 1.760000000000142e+00, 1.799999999999289e+00, 1.84000011920801e+00, 1.879999880792416e+00, 1.919999880791847e+00, 1.960000000000568e+00, 2e+00, 2.04e+00, 2.08e+00, 2.12e+00, 2.16e+00, 2.2e+00, 2.24e+00, 2.28e+00, 2.32e+00, 2.36e+00, 2.4e+00, 2.44e+00, 2.48e+00, 2.52e+00, 2.56e+00, 2.6e+00, 2.64e+00, 2.68e+00, 2.72e+00, 2.76e+00, 2.8e+00, 2.84e+00, 2.88e+00, 2.92e+00, 2.96e+00, 3e+00] +extIndSig.index=[2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00] +extIndSig.y=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 4.9999701981822e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 4.999940396364123e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +extIndSig1.index=[6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00, 6e+00] +extIndSig1.y=[-2e+00, -1.970000027939673e+00, -1.940000055879345e+00, -1.90999996460977e+00, -1.879999992549401e+00, -1.850000026077003e+00, -1.820000048428746e+00, -1.789999962747105e+00, -1.759999985098812e+00, -1.730000029802162e+00, -1.700000052153998e+00, -1.669999955296543e+00, -1.639999977648218e+00, -1.609999999999929e+00, -1.580000044703457e+00, -1.549999970197766e+00, -1.519999970197838e+00, -1.490000014901188e+00, -1.460000059604325e+00, -1.429999940395462e+00, -1.399999985098883e+00, -1.369999985098741e+00, -1.340000029802305e+00, -1.309999955296579e+00, -1.279999955296756e+00, -1.25e+00, -1.219999999999858e+00, -1.190000089406487e+00, -1.159999970197695e+00, -1.129999970197553e+00, -1.100000059604112e+00, -1.070000059604538e+00, -1.039999940395675e+00, -1.010000029802518e+00, -9.800000298022691e-01, -9.499999701977665e-01, -9.200000596044317e-01, -8.900000000000711e-01, -8.599999999999289e-01, -8.299999403955683e-01, -8.000000298022335e-01, -7.699999701977309e-01, -7.39999970197873e-01, -7.100000000001065e-01, -6.800000000000355e-01, -6.499999403955328e-01, -6.200000298021979e-01, -5.899999701976955e-01, -5.599999701978375e-01, -5.300000000001421e-01, -5e-01, -4.699999701981039e-01, -4.399999403962078e-01, -4.09999910594738e-01, -3.800000596036854e-01, -3.500000298017893e-01, -3.200000000001064e-01, -2.899999701981041e-01, -2.599999403963501e-01, -2.299999254955619e-01, -2.000000745045626e-01, -1.700000447027376e-01, -1.400000149009125e-01, -1.099999850990875e-01, -7.999995529726243e-02, -4.999992922068328e-02, -2.000007822977725e-02, 9.999949709432063e-03, 3.999997764863138e-02, 7.000000745066925e-02, 1.000000372522811e-01, 1.300000596036855e-01, 1.599999105945249e-01, 1.899999403963499e-01, 2.19999970198175e-01, 2.5e-01, 2.800000298018961e-01, 3.100000596037922e-01, 3.40000089405262e-01, 3.699999403963146e-01, 3.999999701982107e-01, 4.299999999998936e-01, 4.600000298018959e-01, 4.900000596036499e-01, 5.200000596038631e-01, 5.499999403967762e-01, 5.799999403962078e-01, 6.100000000001421e-01, 6.399999999998579e-01, 6.700000596037922e-01, 7.000000596032238e-01, 7.299999403961369e-01, 7.599999403963501e-01, 7.900000000002133e-01, 8.200000000000709e-01, 8.500000596039341e-01, 8.800000596033657e-01, 9.099999403962078e-01, 9.39999940396492e-01, 9.700000000002842e-01, 1e+00] +extIndSig2.index=[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, 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] +extIndSig2.y=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980226121440666e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +extIndSig3.index=[2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00] +extIndSig3.y=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +extIndSig4.index=[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, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +extIndSig4.y=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980226121440666e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299991011771211e+00, -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, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299999952316284e+00, 1.299982071226054e+00, -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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealScalarReplicator.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealScalarReplicator.txt new file mode 100644 index 0000000000..6263174260 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealScalarReplicator.txt @@ -0,0 +1,12 @@ +last-generated=2017-07-25 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +reaRep.u=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980226121440666e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +time=[0e+00, 1e+00] +reaRep.y[1]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980226121440666e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +reaRep.y[2]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980226121440666e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +reaRep.y[3]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980226121440666e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealVectorFilter.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealVectorFilter.txt new file mode 100644 index 0000000000..5d9c676d30 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealVectorFilter.txt @@ -0,0 +1,13 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +reaFil.u[1]=[1e+00, 1e+00] +reaFil.u[2]=[2e+00, 2e+00] +reaFil.u[3]=[3e+00, 3e+00] +reaFil.y[1]=[1e+00, 1e+00] +reaFil.y[2]=[3e+00, 3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealVectorReplicator.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealVectorReplicator.txt new file mode 100644 index 0000000000..5ec9c5a39e --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Routing_Validation_RealVectorReplicator.txt @@ -0,0 +1,12 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +reaRep.u[1]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980225988213903e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +reaRep.y[1, 1]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980225988213903e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +reaRep.y[2, 2]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980225988213903e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +reaRep.y[3, 2]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980225988213903e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Utilities_Validation_Assert.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Utilities_Validation_Assert.txt new file mode 100644 index 0000000000..fa3676f443 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Utilities_Validation_Assert.txt @@ -0,0 +1,9 @@ +last-generated=2018-07-13 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +assert.u=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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] +time=[0e+00, 1e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Utilities_Validation_SunRiseSet.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Utilities_Validation_SunRiseSet.txt new file mode 100644 index 0000000000..92ceab0879 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Utilities_Validation_SunRiseSet.txt @@ -0,0 +1,20 @@ +last-generated=2022-01-07 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 3.1536e+07] +sunRiseSetArctic.nextSunRise=[2.63381025e+06, 2.63381025e+06, 2.63381025e+06, 2.63381025e+06, 2.63381025e+06, 2.63381025e+06, 2.63381025e+06, 2.63381025e+06, 2.63381025e+06, 2.88969725e+06, 3.2331195e+06, 3.490975e+06, 3.834971e+06, 4.17909625e+06, 4.437246e+06, 4.781496e+06, 5.1257885e+06, 5.384027e+06, 5.728365e+06, 6.072718e+06, 6.3309895e+06, 6.6753565e+06, 7.019726e+06, 7.2780025e+06, 7.6223665e+06, 7.9667225e+06, 8.224981e+06, 8.569311e+06, 8.913617e+06, 9.171825e+06, 9.516067e+06, 9.860251e+06, 1.0118336e+07, 1.0462344e+07, 1.0806156e+07, 1.1063772e+07, 1.1406247e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.8404958e+07, 1.866682e+07, 1.8927732e+07, 1.927516e+07, 1.962233e+07, 1.9882604e+07, 2.0229542e+07, 2.0576398e+07, 2.08365e+07, 2.1183264e+07, 2.1529992e+07, 2.1790022e+07, 2.2136712e+07, 2.2396722e+07, 2.2743396e+07, 2.3090074e+07, 2.3350086e+07, 2.3696784e+07, 2.4043502e+07, 2.430356e+07, 2.4650338e+07, 2.4997164e+07, 2.5257322e+07, 2.5604268e+07, 2.5864544e+07, 2.6211702e+07, 2.6559072e+07, 2.681985e+07, 2.7168508e+07, 3.4169436e+07, 3.4169436e+07, 3.4169436e+07, 3.4169436e+07, 3.4169436e+07, 3.4169436e+07, 3.4169436e+07, 3.4169436e+07, 3.4169436e+07, 3.4169436e+07, 3.4169436e+07, 3.4169436e+07, 3.4169436e+07, 3.4169436e+07] +sunRiseSetArctic.nextSunSet=[2.63677075e+06, 2.63677075e+06, 2.63677075e+06, 2.63677075e+06, 2.63677075e+06, 2.63677075e+06, 2.63677075e+06, 2.63677075e+06, 2.63677075e+06, 2.8994075e+06, 3.160341e+06, 3.507811e+06, 3.8550245e+06, 4.11533025e+06, 4.4623075e+06, 4.809202e+06, 5.069331e+06, 5.416126e+06, 5.7628825e+06, 6.02293e+06, 6.369641e+06, 6.6296635e+06, 6.9763525e+06, 7.3230385e+06, 7.5830555e+06, 7.9297545e+06, 8.27647e+06, 8.536523e+06, 8.88329e+06, 9.230101e+06, 9.490246e+06, 9.837172e+06, 1.009743e+07, 1.0444561e+07, 1.0791906e+07, 1.1052669e+07, 1.1401365e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.840076e+07, 1.8657282e+07, 1.9000628e+07, 1.9258438e+07, 1.960238e+07, 1.9946458e+07, 2.0204572e+07, 2.0548782e+07, 2.0893036e+07, 2.115125e+07, 2.1495558e+07, 2.1839886e+07, 2.2098142e+07, 2.244249e+07, 2.2786848e+07, 2.3045116e+07, 2.3389476e+07, 2.3733832e+07, 2.3992094e+07, 2.4336432e+07, 2.468075e+07, 2.4938972e+07, 2.5283234e+07, 2.5627446e+07, 2.5885554e+07, 2.6229598e+07, 2.6573452e+07, 2.683111e+07, 2.7173708e+07, 3.4173204e+07, 3.4173204e+07, 3.4173204e+07, 3.4173204e+07, 3.4173204e+07, 3.4173204e+07, 3.4173204e+07, 3.4173204e+07, 3.4173204e+07, 3.4173204e+07, 3.4173204e+07, 3.4173204e+07, 3.4173204e+07, 3.4173204e+07] +sunRiseSetArctic.sunUp=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+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] +sunRiseSetSf.nextSunRise=[2.6792416015625e+04, 3.724201875e+05, 6.316188125e+05, 9.771905625e+05, 1.32273225e+06, 1.581869125e+06, 1.92735975e+06, 2.2728225e+06, 2.53190175e+06, 2.8773185e+06, 3.22271075e+06, 3.48174e+06, 3.82709325e+06, 4.17242675e+06, 4.431415e+06, 4.7767175e+06, 5.1220055e+06, 5.380963e+06, 5.7262295e+06, 6.0714865e+06, 6.3304245e+06, 6.67567e+06, 7.0209115e+06, 7.2798415e+06, 7.6250815e+06, 7.884013e+06, 8.229258e+06, 8.574508e+06, 8.833451e+06, 9.178717e+06, 9.523993e+06, 9.782959e+06, 1.012826e+07, 1.0473576e+07, 1.0732576e+07, 1.1077925e+07, 1.1423295e+07, 1.1682338e+07, 1.2027748e+07, 1.2373184e+07, 1.2632278e+07, 1.2977759e+07, 1.3323269e+07, 1.3582419e+07, 1.3927977e+07, 1.4273564e+07, 1.4532772e+07, 1.4878406e+07, 1.5137649e+07, 1.5483328e+07, 1.582903e+07, 1.608832e+07, 1.6434056e+07, 1.677981e+07, 1.7039134e+07, 1.738491e+07, 1.7730696e+07, 1.799004e+07, 1.8335836e+07, 1.8681636e+07, 1.8940988e+07, 1.928679e+07, 1.9632592e+07, 1.9891942e+07, 2.0237742e+07, 2.058354e+07, 2.0842886e+07, 2.118868e+07, 2.1448026e+07, 2.1793818e+07, 2.2139612e+07, 2.2398956e+07, 2.2744752e+07, 2.309055e+07, 2.3349902e+07, 2.3695706e+07, 2.4041516e+07, 2.4300878e+07, 2.46467e+07, 2.4992528e+07, 2.5251904e+07, 2.5597744e+07, 2.5943588e+07, 2.6202976e+07, 2.654883e+07, 2.6808224e+07, 2.7154082e+07, 2.749994e+07, 2.7759332e+07, 2.8105184e+07, 2.8451028e+07, 2.8710404e+07, 2.905623e+07, 2.9402038e+07, 2.9661382e+07, 3.0007156e+07, 3.0352908e+07, 3.0612206e+07, 3.095791e+07, 3.1303588e+07, 3.1562826e+07] +sunRiseSetSf.nextSunSet=[6.100040625e+04, 3.203701875e+05, 6.66171625e+05, 1.01198925e+06, 1.27136125e+06, 1.617200125e+06, 1.96304725e+06, 2.22243625e+06, 2.5682915e+06, 2.91414775e+06, 3.17353975e+06, 3.519394e+06, 3.86524475e+06, 4.12463e+06, 4.4704725e+06, 4.8163095e+06, 5.0756835e+06, 5.421511e+06, 5.680878e+06, 6.0266965e+06, 6.372511e+06, 6.631869e+06, 6.977678e+06, 7.3234855e+06, 7.58284e+06, 7.9286465e+06, 8.2744535e+06, 8.53381e+06, 8.879619e+06, 9.225431e+06, 9.484792e+06, 9.830608e+06, 1.0176426e+07, 1.043579e+07, 1.0781609e+07, 1.1040974e+07, 1.1386791e+07, 1.1732604e+07, 1.1991961e+07, 1.2337763e+07, 1.2683554e+07, 1.294289e+07, 1.3288657e+07, 1.3634408e+07, 1.3893707e+07, 1.423942e+07, 1.4585109e+07, 1.4844359e+07, 1.5190001e+07, 1.5535614e+07, 1.5794804e+07, 1.6140366e+07, 1.6399517e+07, 1.6745026e+07, 1.7090504e+07, 1.7349596e+07, 1.7695026e+07, 1.804043e+07, 1.8299466e+07, 1.8644828e+07, 1.8990166e+07, 1.9249158e+07, 1.9594462e+07, 1.993975e+07, 2.0198706e+07, 2.054397e+07, 2.0889222e+07, 2.1148154e+07, 2.1493392e+07, 2.1838624e+07, 2.2097546e+07, 2.2442774e+07, 2.2788004e+07, 2.3046926e+07, 2.3392162e+07, 2.3737404e+07, 2.399634e+07, 2.4341598e+07, 2.460055e+07, 2.494583e+07, 2.5291126e+07, 2.5550108e+07, 2.5895436e+07, 2.6240784e+07, 2.6499808e+07, 2.6845194e+07, 2.7190606e+07, 2.744968e+07, 2.7795138e+07, 2.8140622e+07, 2.8399754e+07, 2.8745288e+07, 2.9090854e+07, 2.9350046e+07, 2.9695664e+07, 3.004131e+07, 3.0300564e+07, 3.064626e+07, 3.0905548e+07, 3.125129e+07, 3.1597054e+07] +sunRiseSetSf.sunUp=[0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00] +sunRiseSetAntarctic.nextSunRise=[3.54663475e+06, 3.54663475e+06, 3.54663475e+06, 3.54663475e+06, 3.54663475e+06, 3.54663475e+06, 3.54663475e+06, 3.54663475e+06, 3.54663475e+06, 3.54663475e+06, 3.54663475e+06, 3.54663475e+06, 3.808946e+06, 4.15711275e+06, 4.417872e+06, 4.7653025e+06, 5.112556e+06, 5.372918e+06, 5.719993e+06, 6.067007e+06, 6.3272395e+06, 6.674192e+06, 7.021129e+06, 7.2813305e+06, 7.628273e+06, 7.8884935e+06, 8.235484e+06, 8.582527e+06, 8.842856e+06, 9.190054e+06, 9.537404e+06, 9.798073e+06, 1.0146011e+07, 1.0407642e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.930895e+07, 1.9564998e+07, 1.9907952e+07, 2.0251428e+07, 2.0509202e+07, 2.0853038e+07, 2.1196974e+07, 2.1454974e+07, 2.1799018e+07, 2.2143096e+07, 2.2401168e+07, 2.2745278e+07, 2.3089394e+07, 2.3347476e+07, 2.3691574e+07, 2.4035648e+07, 2.4293678e+07, 2.463767e+07, 2.4981576e+07, 2.5239422e+07, 2.5583038e+07, 2.5926268e+07, 2.618305e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07, 3.508222e+07] +sunRiseSetAntarctic.nextSunSet=[3.54135425e+06, 3.54135425e+06, 3.54135425e+06, 3.54135425e+06, 3.54135425e+06, 3.54135425e+06, 3.54135425e+06, 3.54135425e+06, 3.54135425e+06, 3.54135425e+06, 3.54135425e+06, 3.54135425e+06, 3.7975315e+06, 4.14055975e+06, 4.4840885e+06, 4.7418975e+06, 5.0857725e+06, 5.429745e+06, 5.6877675e+06, 6.0318375e+06, 6.375937e+06, 6.6340245e+06, 6.978148e+06, 7.322271e+06, 7.5803575e+06, 7.9244565e+06, 8.2685255e+06, 8.526549e+06, 8.870526e+06, 9.214412e+06, 9.47224e+06, 9.815823e+06, 1.0159006e+07, 1.0415718e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9313894e+07, 1.9576208e+07, 1.9924354e+07, 2.018509e+07, 2.0532488e+07, 2.087971e+07, 2.1140048e+07, 2.1487096e+07, 2.1834086e+07, 2.2094304e+07, 2.2441238e+07, 2.2788164e+07, 2.3048358e+07, 2.3395294e+07, 2.3655514e+07, 2.4002506e+07, 2.4349554e+07, 2.460989e+07, 2.49571e+07, 2.5304464e+07, 2.5565142e+07, 2.591309e+07, 2.6262256e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07, 3.5077808e+07] +sunRiseSetAntarctic.sunUp=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+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, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +sunRiseSetSyd.nextSunRise=[1.7566767578125e+04, 3.633510625e+05, 7.0914275e+05, 9.68495375e+05, 1.314308375e+06, 1.66013e+06, 1.91950025e+06, 2.2653305e+06, 2.52470475e+06, 2.87053675e+06, 3.21636725e+06, 3.47573825e+06, 3.8215625e+06, 4.16738175e+06, 4.4267425e+06, 4.772552e+06, 5.118355e+06, 5.3777035e+06, 5.723497e+06, 6.0692855e+06, 6.3286235e+06, 6.6744055e+06, 7.020184e+06, 7.279517e+06, 7.625294e+06, 7.8846265e+06, 8.2304035e+06, 8.576182e+06, 8.835518e+06, 9.1813e+06, 9.527086e+06, 9.786426e+06, 1.0132216e+07, 1.0478008e+07, 1.0737353e+07, 1.1083146e+07, 1.1428938e+07, 1.1688281e+07, 1.2034067e+07, 1.2379848e+07, 1.2639177e+07, 1.2984941e+07, 1.3330692e+07, 1.3589996e+07, 1.3935718e+07, 1.4194998e+07, 1.4540685e+07, 1.4886349e+07, 1.5145582e+07, 1.5491202e+07, 1.5836796e+07, 1.6095974e+07, 1.6441521e+07, 1.678704e+07, 1.7046162e+07, 1.7391634e+07, 1.7737082e+07, 1.799615e+07, 1.8341556e+07, 1.8686938e+07, 1.8945962e+07, 1.9291308e+07, 1.9636638e+07, 1.9895626e+07, 2.0240928e+07, 2.0499898e+07, 2.084518e+07, 2.1190452e+07, 2.1449402e+07, 2.1794664e+07, 2.2139924e+07, 2.2398866e+07, 2.2744126e+07, 2.3089386e+07, 2.3348334e+07, 2.3693604e+07, 2.4038884e+07, 2.4297848e+07, 2.4643146e+07, 2.4988458e+07, 2.524745e+07, 2.559279e+07, 2.5938148e+07, 2.6197178e+07, 2.654257e+07, 2.6887986e+07, 2.7147062e+07, 2.749252e+07, 2.7838002e+07, 2.809713e+07, 2.8442658e+07, 2.8701822e+07, 2.9047398e+07, 2.9393002e+07, 2.9652222e+07, 2.9997872e+07, 3.0343548e+07, 3.0602822e+07, 3.094854e+07, 3.129428e+07, 3.1553598e+07] +sunRiseSetSyd.nextSunSet=[6.87860546875e+04, 3.280208125e+05, 6.7363075e+05, 1.0192130625e+06, 1.278381625e+06, 1.62391575e+06, 1.969423125e+06, 2.2285365e+06, 2.57399875e+06, 2.91943675e+06, 3.1785e+06, 3.5238985e+06, 3.86927625e+06, 4.128297e+06, 4.4736425e+06, 4.732641e+06, 5.07796e+06, 5.4232655e+06, 5.6822375e+06, 6.027525e+06, 6.372805e+06, 6.6317615e+06, 6.977033e+06, 7.322303e+06, 7.581255e+06, 7.9265265e+06, 8.2718015e+06, 8.530761e+06, 8.876048e+06, 9.221343e+06, 9.480322e+06, 9.825638e+06, 1.0170968e+07, 1.0429976e+07, 1.0775335e+07, 1.1120712e+07, 1.1379759e+07, 1.1725172e+07, 1.1984246e+07, 1.2329699e+07, 1.2675176e+07, 1.29343e+07, 1.3279821e+07, 1.3625367e+07, 1.3884543e+07, 1.4230134e+07, 1.4575749e+07, 1.4834976e+07, 1.5180633e+07, 1.552631e+07, 1.5785582e+07, 1.6131293e+07, 1.647702e+07, 1.6736324e+07, 1.7082074e+07, 1.7427832e+07, 1.7687156e+07, 1.8032926e+07, 1.8292258e+07, 1.8638032e+07, 1.898381e+07, 1.9243142e+07, 1.9588916e+07, 1.993469e+07, 2.0194018e+07, 2.0539788e+07, 2.0885554e+07, 2.1144878e+07, 2.1490642e+07, 2.1836406e+07, 2.2095728e+07, 2.2441492e+07, 2.2787258e+07, 2.3046584e+07, 2.3392356e+07, 2.3738132e+07, 2.3997468e+07, 2.4343254e+07, 2.4602598e+07, 2.4948396e+07, 2.52942e+07, 2.555356e+07, 2.5899376e+07, 2.62452e+07, 2.650457e+07, 2.6850402e+07, 2.7196236e+07, 2.7455612e+07, 2.7801446e+07, 2.8147276e+07, 2.8406644e+07, 2.8752464e+07, 2.9098272e+07, 2.9357618e+07, 2.9703402e+07, 2.9962726e+07, 3.0308476e+07, 3.0654204e+07, 3.0913484e+07, 3.1259168e+07, 3.1604826e+07] +sunRiseSetSyd.sunUp=[0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 0e+00, 0e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00, 1e+00, 1e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Utilities_Validation_SunRiseSetNegativeStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Utilities_Validation_SunRiseSetNegativeStartTime.txt new file mode 100644 index 0000000000..8556ecbff2 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Utilities_Validation_SunRiseSetNegativeStartTime.txt @@ -0,0 +1,20 @@ +last-generated=2022-01-07 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[-4.32e+04, 2.592e+05] +sunRiseSetArctic.nextSunRise=[2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06] +sunRiseSetArctic.nextSunSet=[2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06] +sunRiseSetArctic.sunUp=[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, 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] +sunRiseSetSf.nextSunRise=[2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 2.678694921875e+04, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.132045390625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05] +sunRiseSetSf.nextSunSet=[-2.542112890625e+04, -2.542112890625e+04, -2.542112890625e+04, -2.542112890625e+04, -2.542112890625e+04, -2.542112890625e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 6.1031375e+04, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05] +sunRiseSetSf.sunUp=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +sunRiseSetAntarctic.nextSunRise=[3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06] +sunRiseSetAntarctic.nextSunSet=[3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06] +sunRiseSetAntarctic.sunUp=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +sunRiseSetSyd.nextSunRise=[1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.7546154296875e+04, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.040175390625e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 1.90461e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05] +sunRiseSetSyd.nextSunSet=[-1.762033203125e+04, -1.762033203125e+04, -1.762033203125e+04, -1.762033203125e+04, -1.762033203125e+04, -1.762033203125e+04, -1.762033203125e+04, -1.762033203125e+04, -1.762033203125e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 6.87953671875e+04, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05] +sunRiseSetSyd.sunUp=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Utilities_Validation_SunRiseSetPositiveStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Utilities_Validation_SunRiseSetPositiveStartTime.txt new file mode 100644 index 0000000000..dbef0fb455 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_CDL_Utilities_Validation_SunRiseSetPositiveStartTime.txt @@ -0,0 +1,20 @@ +last-generated=2022-01-07 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[4.32e+04, 3.456e+05] +sunRiseSetArctic.nextSunRise=[2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06, 2.63302625e+06] +sunRiseSetArctic.nextSunSet=[2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06, 2.6375645e+06] +sunRiseSetArctic.sunUp=[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, 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] +sunRiseSetSf.nextSunRise=[1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.13197421875e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 1.99611625e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 2.8601684375e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05, 3.724201875e+05] +sunRiseSetSf.nextSunSet=[6.102227734375e+04, 6.102227734375e+04, 6.102227734375e+04, 6.102227734375e+04, 6.102227734375e+04, 6.102227734375e+04, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 1.47476390625e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 2.33922671875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 3.203701875e+05, 4.06818875e+05, 4.06818875e+05, 4.06818875e+05, 4.06818875e+05, 4.06818875e+05, 4.06818875e+05, 4.06818875e+05, 4.06818875e+05, 4.06818875e+05] +sunRiseSetSf.sunUp=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +sunRiseSetAntarctic.nextSunRise=[3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06, 3.4592835e+06] +sunRiseSetAntarctic.nextSunSet=[3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06, 3.4559035e+06] +sunRiseSetAntarctic.sunUp=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +sunRiseSetSyd.nextSunRise=[1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.03987671875e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 1.90460984375e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 2.7690553125e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05, 3.633510625e+05] +sunRiseSetSyd.nextSunSet=[6.879203125e+04, 6.879203125e+04, 6.879203125e+04, 6.879203125e+04, 6.879203125e+04, 6.879203125e+04, 6.879203125e+04, 6.879203125e+04, 6.879203125e+04, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 1.55205546875e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 2.4161403125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 3.280208125e+05, 4.14425875e+05, 4.14425875e+05, 4.14425875e+05, 4.14425875e+05, 4.14425875e+05, 4.14425875e+05] +sunRiseSetSyd.sunUp=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_SetPoints_Validation_SupplyReturnTemperatureReset.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_SetPoints_Validation_SupplyReturnTemperatureReset.txt new file mode 100644 index 0000000000..3c43e545a1 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_SetPoints_Validation_SupplyReturnTemperatureReset.txt @@ -0,0 +1,14 @@ +last-generated=2017-07-18 +statistics-simulation= +{ + "numerical Jacobians": "0", + "nonlinear": " ", + "linear": " " +} +heaCur.TRet=[3.131499938964844e+02, 3.127863769449941e+02, 3.124227294759326e+02, 3.120590820068676e+02, 3.116954650553807e+02, 3.113318176540447e+02, 3.109681701172508e+02, 3.106045532334929e+02, 3.102409056966991e+02, 3.098772584308751e+02, 3.095136414116049e+02, 3.091499938748112e+02, 3.087863768555546e+02, 3.084227293188018e+02, 3.080590820529232e+02, 3.076954653046228e+02, 3.073318174969139e+02, 3.069681702310626e+02, 3.066045534827348e+02, 3.062409056750259e+02, 3.058772584091928e+02, 3.055136411190165e+02, 3.05149993853138e+02, 3.047863771048375e+02, 3.044227292971286e+02, 3.0405908203125e+02, 3.036954647411192e+02, 3.03331818017071e+02, 3.029681702093802e+02, 3.026045529192313e+02, 3.022409061951831e+02, 3.018772583875105e+02, 3.015136410973433e+02, 3.011499943732951e+02, 3.007863770831643e+02, 3.004227292754554e+02, 3.000590825514071e+02, 2.996954652612764e+02, 2.993318174535674e+02, 2.989681696458585e+02, 2.986045534393884e+02, 2.982409056316795e+02, 2.978772578239705e+02, 2.975136416175005e+02, 2.971499938097915e+02, 2.967863765194788e+02, 2.964227297956125e+02, 2.960590819879036e+02, 2.956954646977728e+02, 2.953318179737246e+02, 2.949681701660156e+02, 2.9460455287589e+02, 2.942409050681862e+02, 2.938772572604825e+02, 2.93513642137646e+02, 2.931499943299422e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02] +heaCur.TSup=[3.331499938964844e+02, 3.324227294759326e+02, 3.316954650553739e+02, 3.309681701172508e+02, 3.30240905696699e+02, 3.29513641411605e+02, 3.287863768555749e+02, 3.280590820529279e+02, 3.273318174969139e+02, 3.266045534827348e+02, 3.258772584091701e+02, 3.25149993853138e+02, 3.244227292971286e+02, 3.236954647410464e+02, 3.229681702093711e+02, 3.222409061951831e+02, 3.215136410973433e+02, 3.207863770831643e+02, 3.200590825515163e+02, 3.193318174535674e+02, 3.186045534393884e+02, 3.178772578239705e+02, 3.171499938097915e+02, 3.164227297956125e+02, 3.156954646976909e+02, 3.149681701660156e+02, 3.142409050681759e+02, 3.135136421376576e+02, 3.127863770398179e+02, 3.120590814244e+02, 3.113318184938817e+02, 3.10604553396042e+02, 3.098772577806241e+02, 3.091499948501058e+02, 3.084227297522661e+02, 3.076954646543354e+02, 3.069681712065482e+02, 3.062409061084902e+02, 3.055136410106504e+02, 3.047863759125924e+02, 3.040590824648053e+02, 3.033318173668745e+02, 3.026045522688347e+02, 3.018772588210475e+02, 3.011499937230986e+02, 3.004227286252589e+02, 2.996954656947406e+02, 2.989681700793228e+02, 2.98240904981483e+02, 2.975136420509647e+02, 2.96786376953125e+02, 2.960590813377175e+02, 2.95331816239888e+02, 2.946045511416221e+02, 2.938772598615569e+02, 2.931499947634001e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02] +heaCur.TOut=[2.631499938964844e+02, 2.635499878019114e+02, 2.639500122249096e+02, 2.643500061303332e+02, 2.647500000357568e+02, 2.651499938666871e+02, 2.655499878466244e+02, 2.659500121951078e+02, 2.66350006175029e+02, 2.667499998569731e+02, 2.671499938368898e+02, 2.675499878168156e+02, 2.679500123143014e+02, 2.683500062942181e+02, 2.687499999761622e+02, 2.691499936581063e+02, 2.695499879360502e+02, 2.699500121354906e+02, 2.703500058173528e+02, 2.707500000953513e+02, 2.711499937772953e+02, 2.715499880552847e+02, 2.719500122547068e+02, 2.723500059365873e+02, 2.727500002145403e+02, 2.731499938964844e+02, 2.735499881745192e+02, 2.73950011777787e+02, 2.743500060558218e+02, 2.747500003337293e+02, 2.751499934197282e+02, 2.755499876976175e+02, 2.75950012493085e+02, 2.763500055788838e+02, 2.767499998569731e+02, 2.771499941349534e+02, 2.775499872208613e+02, 2.77950012016256e+02, 2.783500062942181e+02, 2.787500005721074e+02, 2.791499936581063e+02, 2.795499879360502e+02, 2.79950012731463e+02, 2.803500058173528e+02, 2.807500000953513e+02, 2.811499943734224e+02, 2.815499874592394e+02, 2.819500122547068e+02, 2.823500065325962e+02, 2.827499996185951e+02, 2.831499938964844e+02, 2.835499881745135e+02, 2.839500129698297e+02, 2.843500072477133e+02, 2.847499991418517e+02, 2.851499934197353e+02, 2.855499876976161e+02, 2.859500124930807e+02, 2.863500067709643e+02, 2.867500010488479e+02, 2.871499929429863e+02, 2.875499872208699e+02, 2.879500120162589e+02, 2.883500062942152e+02, 2.887500005720989e+02, 2.891499948503463e+02, 2.895499867441208e+02, 2.899500115393279e+02, 2.90350005817357e+02, 2.907500000953527e+02, 2.911499943734153e+02, 2.915499886514444e+02, 2.91950011062397e+02, 2.923500053404261e+02, 2.927499996186008e+02, 2.931499938964844e+02, 2.935499881745135e+02, 2.939500129698297e+02, 2.943500072477133e+02, 2.947499991418517e+02, 2.951499934197353e+02, 2.955499876976161e+02, 2.959500124930807e+02, 2.963500067709643e+02, 2.967500010488479e+02, 2.971499929429863e+02, 2.975499872208699e+02, 2.979500120162589e+02, 2.983500062942152e+02, 2.987500005720989e+02, 2.991499948503463e+02, 2.995499867441208e+02, 2.999500115393279e+02, 3.00350005817357e+02, 3.007500000953527e+02, 3.011499943734153e+02, 3.015499886514444e+02, 3.01950011062397e+02, 3.023500053404261e+02, 3.027499996186008e+02, 3.031499938964844e+02] +time=[0e+00, 1e+00] +heaCur1.TSetZon=[2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02] +heaCur1.TRet=[3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.131499938964844e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02, 3.014833374023438e+02] +heaCur1.TSup=[3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.331499938964844e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02, 3.148166809082031e+02] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_SetPoints_Validation_SupplyReturnTemperatureResetExponent.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_SetPoints_Validation_SupplyReturnTemperatureResetExponent.txt new file mode 100644 index 0000000000..a33d4c05a8 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_SetPoints_Validation_SupplyReturnTemperatureResetExponent.txt @@ -0,0 +1,12 @@ +last-generated=2021-02-08 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +heaCur.TSup=[3.176954650878906e+02, 3.174227294860927e+02, 3.171499938842949e+02, 3.16877258282497e+02, 3.166045531982636e+02, 3.16331817647269e+02, 3.160590819946815e+02, 3.157863769612513e+02, 3.155136413086367e+02, 3.152409058592346e+02, 3.1496817020667e+02, 3.146954650716289e+02, 3.144227294190507e+02, 3.141499937664633e+02, 3.13877258317043e+02, 3.136045533851826e+02, 3.133318175294373e+02, 3.130590820800352e+02, 3.127863771481566e+02, 3.125136412923749e+02, 3.122409058429819e+02, 3.119681699872366e+02, 3.116954650553672e+02, 3.11422729605956e+02, 3.111499937502106e+02, 3.108772583007812e+02, 3.106045529624685e+02, 3.103318179195006e+02, 3.100590820637735e+02, 3.097863767254607e+02, 3.095136416824746e+02, 3.092409058267293e+02, 3.08968169970984e+02, 3.086954654454486e+02, 3.084227295897034e+02, 3.08149993733958e+02, 3.078772586910628e+02, 3.076045533526773e+02, 3.07331817496932e+02, 3.070590816411867e+02, 3.067863771156514e+02, 3.065136412598515e+02, 3.062409054041607e+02, 3.059681703611564e+02, 3.056954650228437e+02, 3.054227291671348e+02, 3.051499941241486e+02, 3.04877258268276e+02, 3.04604552929945e+02, 3.043318178869953e+02, 3.0405908203125e+02, 3.037863766929411e+02, 3.035136408370542e+02, 3.032409049816038e+02, 3.029681707514293e+02, 3.026954654129385e+02, 3.02422729557199e+02, 3.021499937014556e+02, 3.018772578457142e+02, 3.016045525071507e+02, 3.013318182770489e+02, 3.010590824215258e+02, 3.007863770831441e+02, 3.0051364122733e+02, 3.002409053716613e+02, 2.999681695159198e+02, 2.99695465802996e+02, 2.994227299472545e+02, 2.991499940916223e+02, 2.988772582357697e+02, 2.986045528974265e+02, 2.983318170418669e+02, 2.980590828118015e+02, 2.977863774732016e+02, 2.975136416174602e+02, 2.972409057617188e+02, 2.969681699059773e+02, 2.966954645675229e+02, 2.964227287120725e+02, 2.96149994481898e+02, 2.95877258626011e+02, 2.956045532876678e+02, 2.953318174319244e+02, 2.95059081576183e+02, 2.947863762376194e+02, 2.945136420075177e+02, 2.942409061517762e+02, 2.939681702961075e+02, 2.936954649577987e+02, 2.9342272910213e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02] +heaCur.TRet=[3.1155908203125e+02, 3.113545532180826e+02, 3.11149993887344e+02, 3.109454650741698e+02, 3.107409057434379e+02, 3.10536376968359e+02, 3.103318175995319e+02, 3.101272583068794e+02, 3.099227294555986e+02, 3.097181702391934e+02, 3.095136413878899e+02, 3.093090820190628e+02, 3.091045531677729e+02, 3.088999937989867e+02, 3.086954651000779e+02, 3.084909058836818e+02, 3.082863768799472e+02, 3.08081817663542e+02, 3.078772584471369e+02, 3.076727294434023e+02, 3.074681702269971e+02, 3.072636412232626e+02, 3.070590820068756e+02, 3.068545533079667e+02, 3.066499937867995e+02, 3.064454650878906e+02, 3.062409055667235e+02, 3.060363771724947e+02, 3.058318176513457e+02, 3.056272581301604e+02, 3.054227297359316e+02, 3.052181702148008e+02, 3.050136412110663e+02, 3.048090822995686e+02, 3.046045532957795e+02, 3.043999937746123e+02, 3.041954653803836e+02, 3.039909058592892e+02, 3.037863768555546e+02, 3.035818173344602e+02, 3.033772584227443e+02, 3.031727294190097e+02, 3.029681698978972e+02, 3.027636415036683e+02, 3.025590819825012e+02, 3.023545529787303e+02, 3.021499940672326e+02, 3.01945465063498e+02, 3.017409055423491e+02, 3.015363771481203e+02, 3.013318176269531e+02, 3.011272581057889e+02, 3.009227291019117e+02, 3.007181695810385e+02, 3.005136417961547e+02, 3.003090822751723e+02, 3.001045532714058e+02, 2.998999937502401e+02, 2.996954647463994e+02, 2.994909052254898e+02, 2.992863774406059e+02, 2.9908181791966e+02, 2.988772583983502e+02, 2.986727293946186e+02, 2.984681698735271e+02, 2.982636408695772e+02, 2.980590825678792e+02, 2.978545535638929e+02, 2.976499940428378e+02, 2.974454650391047e+02, 2.972409055179783e+02, 2.970363765140648e+02, 2.968318182123668e+02, 2.96627258691057e+02, 2.964227296871799e+02, 2.962181701660156e+02, 2.96013641162284e+02, 2.958090816412653e+02, 2.956045526372426e+02, 2.953999943355446e+02, 2.951954653316311e+02, 2.949909058105047e+02, 2.947863768067716e+02, 2.945818172857165e+02, 2.943772577645523e+02, 2.941727299796684e+02, 2.939681704587225e+02, 2.937636414549181e+02, 2.935590819337538e+02, 2.933545529299494e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02] +heaCurM.TSup=[3.167040405273438e+02, 3.164946289015638e+02, 3.162847595120916e+02, 3.16074432358927e+02, 3.1586364744207e+02, 3.156523742833351e+02, 3.154406432821024e+02, 3.152283935610176e+02, 3.150156554794885e+02, 3.14802429275507e+02, 3.145886535963536e+02, 3.1437438963565e+02, 3.141596068758864e+02, 3.139442747995347e+02, 3.137283935675659e+02, 3.13511963019773e+02, 3.132949828324492e+02, 3.130774231346385e+02, 3.128592836034437e+02, 3.126405333950244e+02, 3.124212036787193e+02, 3.122012632832705e+02, 3.11980682346708e+02, 3.117594910591741e+02, 3.115376280546482e+02, 3.113151245117188e+02, 3.110919492497055e+02, 3.108681032678318e+02, 3.106435547142937e+02, 3.104182737374617e+02, 3.101922915295212e+02, 3.099655457084299e+02, 3.097380674638993e+02, 3.095098269596886e+02, 3.092807618007681e+02, 3.090509337005572e+02, 3.088202517953171e+02, 3.085887452277091e+02, 3.083563536487347e+02, 3.081231075757539e+02, 3.078889466729922e+02, 3.076538390270727e+02, 3.074178158517722e+02, 3.071808168202111e+02, 3.069428100016959e+02, 3.06703765583378e+02, 3.064636842827018e+02, 3.062225036332784e+02, 3.059802243487507e+02, 3.057367861213565e+02, 3.054921875e+02, 3.0524633765547e+02, 3.049992671051958e+02, 3.047508842964428e+02, 3.045011296876746e+02, 3.042500308175244e+02, 3.039974671013705e+02, 3.037434385383343e+02, 3.034878535758325e+02, 3.032306816959577e+02, 3.029718328942004e+02, 3.027112430494681e+02, 3.024488221469925e+02, 3.021845396683224e+02, 3.019182735431451e+02, 3.016499322185081e+02, 3.013794257607321e+02, 3.011066288748184e+02, 3.008314516135545e+02, 3.005537108708878e+02, 3.002732540582058e+02, 2.999899591051902e+02, 2.997036141041469e+02, 2.994140020198444e+02, 2.99120910925524e+02, 2.988240661621094e+02, 2.985231320346405e+02, 2.982177423320344e+02, 2.979075003240293e+02, 2.975918891097347e+02, 2.972702945757999e+02, 2.969419861629659e+02, 2.966060178224839e+02, 2.962611688481437e+02, 2.959058828386566e+02, 2.955379342405353e+02, 2.951540838116103e+02, 2.947492372584496e+02, 2.943140256592488e+02, 2.938270561107623e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02] +heaCurM.TRet=[3.105676879882812e+02, 3.104264526335571e+02, 3.102847595151406e+02, 3.101426391505997e+02, 3.099999999872307e+02, 3.098569336044252e+02, 3.097133483693951e+02, 3.095693054242192e+02, 3.094247436264505e+02, 3.092796936554658e+02, 3.091341247775735e+02, 3.089880371006439e+02, 3.088414306246496e+02, 3.086942748319854e+02, 3.085465698330408e+02, 3.083983460357593e+02, 3.082495116654355e+02, 3.081001282005945e+02, 3.079501954198929e+02, 3.077996215460517e+02, 3.076484680627344e+02, 3.074967040018184e+02, 3.073443298157763e+02, 3.071913147611848e+02, 3.070376280912371e+02, 3.0688330078125e+02, 3.067283323712475e+02, 3.065726320032478e+02, 3.06416259784306e+02, 3.062591856596121e+02, 3.061013795829782e+02, 3.059428406140432e+02, 3.057835081865126e+02, 3.056234438138085e+02, 3.054625855068442e+02, 3.053009337412115e+02, 3.051384279672779e+02, 3.049750977343209e+02, 3.048109130073573e+02, 3.046458127514493e+02, 3.044798584975722e+02, 3.043129271862309e+02, 3.041450803455086e+02, 3.039762574452541e+02, 3.03806426961317e+02, 3.036355893951554e+02, 3.034636842257857e+02, 3.032906799109406e+02, 3.03116576960991e+02, 3.02941345382336e+02, 3.02764892578125e+02, 3.025872495857504e+02, 3.024083553700533e+02, 3.022281488963141e+02, 3.020466007324001e+02, 3.018636781971545e+02, 3.016792908155772e+02, 3.014934385871188e+02, 3.013060299591942e+02, 3.011170344138966e+02, 3.009263615401792e+02, 3.007339480302425e+02, 3.005397339797039e+02, 3.00343627835611e+02, 3.001455380450109e+02, 2.999454035725293e+02, 2.997430730427932e+02, 2.995384524914567e+02, 2.993314515647701e+02, 2.99121887156681e+02, 2.98909637195972e+02, 2.986945185773881e+02, 2.984763495047121e+02, 2.982549137549868e+02, 2.980299989952437e+02, 2.978013305664062e+02, 2.975685727736602e+02, 2.973313899227728e+02, 2.970893242496359e+02, 2.968418889633813e+02, 2.965884707642056e+02, 2.963283386857664e+02, 2.960605466798621e+02, 2.957839045576773e+02, 2.954967948823672e+02, 2.95197022212686e+02, 2.948813786359163e+02, 2.945446778997547e+02, 2.941776731527093e+02, 2.937588799385817e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartCoolingNegativeStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartCoolingNegativeStartTime.txt new file mode 100644 index 0000000000..8f204feff4 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartCoolingNegativeStartTime.txt @@ -0,0 +1,13 @@ +last-generated=2020-10-20 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "2", + "numerical Jacobians": "0" +} +time=[-6.6e+05, 0e+00] +optStaCoo.tOpt=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 8.6932861328125e+03, 8.6932861328125e+03, 8.6932861328125e+03, 8.6932861328125e+03, 8.6932861328125e+03, 8.6932861328125e+03, 8.6932861328125e+03, 8.6932861328125e+03, 8.6932861328125e+03, 8.6932861328125e+03, 8.6932861328125e+03, 8.6932861328125e+03, 8.6932861328125e+03, 5.79079345703125e+03, 5.79079345703125e+03, 5.79079345703125e+03, 5.79079345703125e+03, 5.79079345703125e+03, 5.79079345703125e+03, 5.79079345703125e+03, 5.79079345703125e+03, 5.79079345703125e+03, 5.79079345703125e+03, 5.79079345703125e+03, 5.79079345703125e+03, 5.79079345703125e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.74376025390625e+03, 5.69676220703125e+03, 5.69676220703125e+03, 5.69676220703125e+03, 5.69676220703125e+03, 5.69676220703125e+03, 5.69676220703125e+03, 5.69676220703125e+03, 5.69676220703125e+03, 5.69676220703125e+03, 5.69676220703125e+03, 5.69676220703125e+03, 5.69676220703125e+03, 5.69676220703125e+03, 5.6539560546875e+03, 5.6539560546875e+03, 5.6539560546875e+03, 5.6539560546875e+03, 5.6539560546875e+03, 5.6539560546875e+03, 5.6539560546875e+03, 5.6539560546875e+03, 5.6539560546875e+03, 5.6539560546875e+03, 5.6539560546875e+03] +TSetCoo.y=[2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02] +optStaCoo.TZon=[2.971499938964844e+02, 2.971503601074219e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971364135742188e+02, 2.96923095703125e+02, 2.967496643066406e+02, 2.969124145507812e+02, 2.975598449707031e+02, 2.986782531738281e+02, 3.001107482910156e+02, 2.988165283203125e+02, 2.971484680175781e+02, 2.971499328613281e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971443481445312e+02, 2.969462890625e+02, 2.967550659179688e+02, 2.968787536621094e+02, 2.97480224609375e+02, 2.985603942871094e+02, 2.999738464355469e+02, 2.992104187011719e+02, 2.971481628417969e+02, 2.971499328613281e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.9714892578125e+02, 2.969696350097656e+02, 2.967630615234375e+02, 2.968489379882812e+02, 2.974045104980469e+02, 2.984452819824219e+02, 2.998375854492188e+02, 3.0133984375e+02, 2.972657165527344e+02, 2.971495666503906e+02, 2.971499633789062e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.969927978515625e+02, 2.967736511230469e+02, 2.968233642578125e+02, 2.973331298828125e+02, 2.983332824707031e+02, 2.997023620605469e+02, 3.012062683105469e+02, 2.999542846679688e+02, 2.971524963378906e+02, 2.971501159667969e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.970155029296875e+02, 2.967864685058594e+02, 2.968015441894531e+02, 2.972656860351562e+02, 2.982242431640625e+02, 2.995681762695312e+02, 3.010713500976562e+02, 3.004169921875e+02, 2.971433715820312e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.970374755859375e+02, 2.968014526367188e+02, 2.967834777832031e+02, 2.972025756835938e+02, 2.981185607910156e+02, 2.994353942871094e+02, 3.009355163574219e+02, 3.008950500488281e+02, 2.971517944335938e+02, 2.971497192382812e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.970584106445312e+02, 2.96818359375e+02, 2.967693481445312e+02, 2.971436767578125e+02, 2.980162658691406e+02, 2.993041687011719e+02, 3.007987670898438e+02, 3.013853759765625e+02, 2.971623229980469e+02, 2.971502075195312e+02, 2.971499633789062e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.970780334472656e+02, 2.968369445800781e+02, 2.967586059570312e+02, 2.970889587402344e+02, 2.979174499511719e+02] +optStaCoo.optOn=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+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, 1e+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, 1e+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, 1e+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, 1e+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, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartCoolingPositiveStartTime.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartCoolingPositiveStartTime.txt new file mode 100644 index 0000000000..7e0ba4a507 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartCoolingPositiveStartTime.txt @@ -0,0 +1,13 @@ +last-generated=2020-10-20 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "2", + "numerical Jacobians": "0" +} +time=[3.4e+04, 8.64e+05] +optStaCoo.tOpt=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 8.6933232421875e+03, 8.6933232421875e+03, 8.6933232421875e+03, 8.6933232421875e+03, 8.6933232421875e+03, 8.6933232421875e+03, 8.6933232421875e+03, 8.6933232421875e+03, 8.6933232421875e+03, 8.6933232421875e+03, 8.6933232421875e+03, 5.79068359375e+03, 5.79068359375e+03, 5.79068359375e+03, 5.79068359375e+03, 5.79068359375e+03, 5.79068359375e+03, 5.79068359375e+03, 5.79068359375e+03, 5.79068359375e+03, 5.79068359375e+03, 5.7437607421875e+03, 5.7437607421875e+03, 5.7437607421875e+03, 5.7437607421875e+03, 5.7437607421875e+03, 5.7437607421875e+03, 5.7437607421875e+03, 5.7437607421875e+03, 5.7437607421875e+03, 5.7437607421875e+03, 5.7437607421875e+03, 5.6966845703125e+03, 5.6966845703125e+03, 5.6966845703125e+03, 5.6966845703125e+03, 5.6966845703125e+03, 5.6966845703125e+03, 5.6966845703125e+03, 5.6966845703125e+03, 5.6966845703125e+03, 5.6966845703125e+03, 5.65401416015625e+03, 5.65401416015625e+03, 5.65401416015625e+03, 5.65401416015625e+03, 5.65401416015625e+03, 5.65401416015625e+03, 5.65401416015625e+03, 5.65401416015625e+03, 5.65401416015625e+03, 5.65401416015625e+03, 5.65121240234375e+03, 5.65121240234375e+03, 5.65121240234375e+03, 5.65121240234375e+03, 5.65121240234375e+03, 5.65121240234375e+03, 5.65121240234375e+03, 5.65121240234375e+03, 5.65121240234375e+03, 5.65121240234375e+03, 5.65121240234375e+03, 5.64937060546875e+03, 5.64937060546875e+03, 5.64937060546875e+03, 5.64937060546875e+03, 5.64937060546875e+03, 5.64937060546875e+03, 5.64937060546875e+03, 5.64937060546875e+03, 5.64937060546875e+03] +TSetCoo.y=[2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02] +optStaCoo.TZon=[2.971499938964844e+02, 2.971498413085938e+02, 2.971499938964844e+02, 2.97109375e+02, 2.96818359375e+02, 2.968193664550781e+02, 2.975328063964844e+02, 2.989842834472656e+02, 3.00844482421875e+02, 2.971523742675781e+02, 2.971499328613281e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.969385070800781e+02, 2.967481994628906e+02, 2.971436767578125e+02, 2.983148498535156e+02, 3.000650634765625e+02, 2.978899230957031e+02, 2.971496276855469e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.970651245117188e+02, 2.967797546386719e+02, 2.968895568847656e+02, 2.977460327148438e+02, 2.993042297363281e+02, 3.011838989257812e+02, 2.971517639160156e+02, 2.971501159667969e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971443176269531e+02, 2.968817749023438e+02, 2.967654418945312e+02, 2.972988586425781e+02, 2.985993347167969e+02, 3.004089660644531e+02, 3.012548828125e+02, 2.971474609375e+02, 2.971500244140625e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.970117492675781e+02, 2.967550048828125e+02, 2.969850769042969e+02, 2.979830627441406e+02, 2.996351013183594e+02, 3.015155639648438e+02, 2.979967346191406e+02, 2.971498718261719e+02, 2.971499633789062e+02, 2.971499938964844e+02, 2.971189880371094e+02, 2.968306274414062e+02, 2.968048400878906e+02, 2.974801330566406e+02, 2.989011840820312e+02, 3.007530822753906e+02, 3.002462463378906e+02, 2.971492004394531e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.969540710449219e+02, 2.967471618652344e+02, 2.971068420410156e+02, 2.982422790527344e+02, 2.999738464355469e+02, 3.018363037109375e+02, 2.971840209960938e+02, 2.971499328613281e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.970780029296875e+02, 2.967888488769531e+02, 2.968683471679688e+02, 2.97686767578125e+02, 2.992177124023438e+02, 3.010939331054688e+02, 2.99263916015625e+02, 2.971489868164062e+02, 2.971499633789062e+02, 2.971499938964844e+02, 2.971477661132812e+02, 2.96896484375e+02, 2.967586669921875e+02, 2.972549438476562e+02, 2.985216979980469e+02, 3.003171081542969e+02, 3.016982727050781e+02, 2.971435546875e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.97026611328125e+02, 2.967600402832031e+02, 2.969569396972656e+02, 2.9791748046875e+02] +optStaCoo.optOn=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+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, 1e+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, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartHeating.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartHeating.txt new file mode 100644 index 0000000000..4bb07af542 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartHeating.txt @@ -0,0 +1,13 @@ +last-generated=2021-01-30 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "2", + "numerical Jacobians": "0" +} +time=[-1.728e+05, 6.048e+05] +optStaHea.tOpt=[0e+00, 0e+00, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 1.08e+04, 7.3458525390625e+03, 7.3458525390625e+03, 7.3458525390625e+03, 7.3458525390625e+03, 7.3458525390625e+03, 7.3458525390625e+03, 7.3458525390625e+03, 7.3458525390625e+03, 7.3458525390625e+03, 7.3458525390625e+03, 7.3458525390625e+03, 7.3458525390625e+03, 5.564533203125e+03, 5.564533203125e+03, 5.564533203125e+03, 5.564533203125e+03, 5.564533203125e+03, 5.564533203125e+03, 5.564533203125e+03, 5.564533203125e+03, 5.564533203125e+03, 5.564533203125e+03, 5.564533203125e+03, 3.725474365234375e+03, 3.725474365234375e+03, 3.725474365234375e+03, 3.725474365234375e+03, 3.725474365234375e+03, 3.725474365234375e+03, 3.725474365234375e+03, 3.725474365234375e+03, 3.725474365234375e+03, 3.725474365234375e+03, 3.725474365234375e+03, 3.750643798828125e+03, 3.750643798828125e+03, 3.750643798828125e+03, 3.750643798828125e+03, 3.750643798828125e+03, 3.750643798828125e+03, 3.750643798828125e+03, 3.750643798828125e+03, 3.750643798828125e+03, 3.750643798828125e+03, 3.750643798828125e+03, 3.750772705078125e+03, 3.750772705078125e+03, 3.750772705078125e+03, 3.750772705078125e+03, 3.750772705078125e+03, 3.750772705078125e+03, 3.750772705078125e+03, 3.750772705078125e+03, 3.750772705078125e+03, 3.750772705078125e+03, 3.750772705078125e+03, 3.7474794921875e+03, 3.7474794921875e+03, 3.7474794921875e+03, 3.7474794921875e+03, 3.7474794921875e+03, 3.7474794921875e+03, 3.7474794921875e+03, 3.7474794921875e+03, 3.7474794921875e+03, 3.7474794921875e+03, 3.7474794921875e+03, 3.747568359375e+03, 3.747568359375e+03, 3.747568359375e+03, 3.747568359375e+03, 3.747568359375e+03, 3.747568359375e+03, 3.747568359375e+03, 3.747568359375e+03, 3.747568359375e+03, 3.747568359375e+03, 3.747568359375e+03, 3.74755859375e+03, 3.74755859375e+03, 3.74755859375e+03, 3.74755859375e+03, 3.74755859375e+03, 3.74755859375e+03, 3.74755859375e+03, 3.74755859375e+03, 3.74755859375e+03, 3.74755859375e+03] +TSetHea.y=[2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02] +optStaHea.TZon=[2.941499938964844e+02, 2.896638488769531e+02, 2.901727905273438e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941499938964844e+02, 2.940346984863281e+02, 2.930039978027344e+02, 2.908515625e+02, 2.881498718261719e+02, 2.881499938964844e+02, 2.941452941894531e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941499938964844e+02, 2.940999755859375e+02, 2.931686096191406e+02, 2.911500244140625e+02, 2.881551208496094e+02, 2.881499938964844e+02, 2.914275512695312e+02, 2.941499938964844e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.933190307617188e+02, 2.914343566894531e+02, 2.884085083007812e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941503601074219e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.934559326171875e+02, 2.917038879394531e+02, 2.887902526855469e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941492614746094e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.935798950195312e+02, 2.919584045410156e+02, 2.891625061035156e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941535949707031e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941499938964844e+02, 2.936916198730469e+02, 2.921978149414062e+02, 2.895242919921875e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941408996582031e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941499938964844e+02, 2.937920227050781e+02, 2.924220275878906e+02, 2.898748474121094e+02, 2.8814990234375e+02, 2.881499938964844e+02, 2.939381408691406e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941499938964844e+02, 2.938818054199219e+02, 2.926309509277344e+02, 2.902132873535156e+02, 2.881502380371094e+02, 2.881499938964844e+02, 2.926377868652344e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941500244140625e+02, 2.941499938964844e+02, 2.939624328613281e+02, 2.92824951171875e+02, 2.905391540527344e+02] +optStaHea.optOn=[0e+00, 0e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+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, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartHeatingCooling.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartHeatingCooling.txt new file mode 100644 index 0000000000..f5993b9705 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartHeatingCooling.txt @@ -0,0 +1,18 @@ +last-generated=2021-01-30 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "3", + "numerical Jacobians": "0" +} +time=[0e+00, 2.4192e+06] +optSta.tOpt=[0e+00, 7.95337939453125e+03, 7.95337939453125e+03, 7.95337939453125e+03, 7.95337939453125e+03, 4.31832470703125e+03, 4.31832470703125e+03, 4.31832470703125e+03, 3.24136181640625e+03, 3.24136181640625e+03, 3.24136181640625e+03, 3.24136181640625e+03, 2.161732421875e+03, 2.161732421875e+03, 2.161732421875e+03, 2.163635009765625e+03, 2.163635009765625e+03, 2.163635009765625e+03, 2.163635009765625e+03, 2.1644345703125e+03, 2.1644345703125e+03, 2.1644345703125e+03, 2.1644345703125e+03, 2.16497900390625e+03, 2.16497900390625e+03, 2.16497900390625e+03, 0e+00, 0e+00, 0e+00, 0e+00, 5.74002783203125e+03, 5.74002783203125e+03, 5.74002783203125e+03, 2.12517529296875e+03, 2.12517529296875e+03, 2.12517529296875e+03, 2.12517529296875e+03, 1.59286767578125e+03, 1.59286767578125e+03, 1.59286767578125e+03, 1.061448486328125e+03, 1.061448486328125e+03, 1.061448486328125e+03, 1.061448486328125e+03, 1.060780151367188e+03, 1.060780151367188e+03, 1.060780151367188e+03, 1.060780151367188e+03, 1.060423217773438e+03, 1.060423217773438e+03, 1.060423217773438e+03, 0e+00, 0e+00, 0e+00, 0e+00, 2.165054931640625e+03, 2.165054931640625e+03, 2.165054931640625e+03, 2.164988525390625e+03, 2.164988525390625e+03, 2.164988525390625e+03, 2.164988525390625e+03, 2.164999755859375e+03, 2.164999755859375e+03, 2.164999755859375e+03, 2.165007080078125e+03, 2.165007080078125e+03, 2.165007080078125e+03, 2.165007080078125e+03, 2.164992431640625e+03, 2.164992431640625e+03, 2.164992431640625e+03, 2.164992431640625e+03, 2.165001708984375e+03, 2.165001708984375e+03, 2.165001708984375e+03, 0e+00, 0e+00, 0e+00, 0e+00, 1.060263061523438e+03, 1.060263061523438e+03, 1.060263061523438e+03, 1.0602626953125e+03, 1.0602626953125e+03, 1.0602626953125e+03, 1.0602626953125e+03, 1.060263061523438e+03, 1.060263061523438e+03, 1.060263061523438e+03, 1.060266479492188e+03, 1.060266479492188e+03, 1.060266479492188e+03, 1.060266479492188e+03, 1.060265747070312e+03, 1.060265747070312e+03, 1.060265747070312e+03, 1.060265747070312e+03, 1.060265625e+03, 1.060265625e+03, 1.060265625e+03] +optSta.optCoo.tOpt=[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, 5.74002783203125e+03, 5.74002783203125e+03, 5.74002783203125e+03, 2.12517529296875e+03, 2.12517529296875e+03, 2.12517529296875e+03, 2.12517529296875e+03, 1.59286767578125e+03, 1.59286767578125e+03, 1.59286767578125e+03, 1.061448486328125e+03, 1.061448486328125e+03, 1.061448486328125e+03, 1.061448486328125e+03, 1.060780151367188e+03, 1.060780151367188e+03, 1.060780151367188e+03, 1.060780151367188e+03, 1.060423217773438e+03, 1.060423217773438e+03, 1.060423217773438e+03, 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.060263061523438e+03, 1.060263061523438e+03, 1.060263061523438e+03, 1.0602626953125e+03, 1.0602626953125e+03, 1.0602626953125e+03, 1.0602626953125e+03, 1.060263061523438e+03, 1.060263061523438e+03, 1.060263061523438e+03, 1.060266479492188e+03, 1.060266479492188e+03, 1.060266479492188e+03, 1.060266479492188e+03, 1.060265747070312e+03, 1.060265747070312e+03, 1.060265747070312e+03, 1.060265747070312e+03, 1.060265625e+03, 1.060265625e+03, 1.060265625e+03] +optSta.optHea.tOpt=[0e+00, 7.95337939453125e+03, 7.95337939453125e+03, 7.95337939453125e+03, 7.95337939453125e+03, 4.31832470703125e+03, 4.31832470703125e+03, 4.31832470703125e+03, 3.24136181640625e+03, 3.24136181640625e+03, 3.24136181640625e+03, 3.24136181640625e+03, 2.161732421875e+03, 2.161732421875e+03, 2.161732421875e+03, 2.163635009765625e+03, 2.163635009765625e+03, 2.163635009765625e+03, 2.163635009765625e+03, 2.1644345703125e+03, 2.1644345703125e+03, 2.1644345703125e+03, 2.1644345703125e+03, 2.16497900390625e+03, 2.16497900390625e+03, 2.16497900390625e+03, 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, 2.165054931640625e+03, 2.165054931640625e+03, 2.165054931640625e+03, 2.164988525390625e+03, 2.164988525390625e+03, 2.164988525390625e+03, 2.164988525390625e+03, 2.164999755859375e+03, 2.164999755859375e+03, 2.164999755859375e+03, 2.165007080078125e+03, 2.165007080078125e+03, 2.165007080078125e+03, 2.165007080078125e+03, 2.164992431640625e+03, 2.164992431640625e+03, 2.164992431640625e+03, 2.164992431640625e+03, 2.165001708984375e+03, 2.165001708984375e+03, 2.165001708984375e+03, 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] +optSta.optOn=[0e+00, 1e+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, 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, 9.50350909079134e-14, 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] +optSta.optCoo.optOn=[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, 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] +optSta.optHea.optOn=[0e+00, 1e+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, 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, 9.50350909079134e-14, 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] +TSetHea.y=[2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.941499938964838e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02] +TSetCoo.y=[3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 2.971499938964849e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02] +optSta.TZon=[2.921499938964844e+02, 2.941534118652344e+02, 2.941499938964844e+02, 2.937181701660156e+02, 2.924385375976562e+02, 2.941500244140625e+02, 2.941499938964844e+02, 2.928896789550781e+02, 2.924524230957031e+02, 2.941499938964844e+02, 2.940725708007812e+02, 2.924861755371094e+02, 2.941502380371094e+02, 2.941499938964844e+02, 2.93120849609375e+02, 2.924315490722656e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.925740661621094e+02, 2.941640625e+02, 2.941499938964844e+02, 2.933986206054688e+02, 2.924234008789062e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.9270751953125e+02, 2.956985473632812e+02, 2.971499938964844e+02, 2.972089538574219e+02, 2.984024353027344e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.97513916015625e+02, 2.993062438964844e+02, 2.971499938964844e+02, 2.971586608886719e+02, 2.981323852539062e+02, 2.971500549316406e+02, 2.971499938964844e+02, 2.973801574707031e+02, 2.989988403320312e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.97891357421875e+02, 2.971493835449219e+02, 2.971499938964844e+02, 2.972803649902344e+02, 2.986942138671875e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.976842346191406e+02, 2.963826904296875e+02, 2.950361022949219e+02, 2.937181091308594e+02, 2.924384155273438e+02, 2.941500549316406e+02, 2.941499938964844e+02, 2.928897094726562e+02, 2.924524536132812e+02, 2.941499938964844e+02, 2.940725708007812e+02, 2.924861450195312e+02, 2.941502380371094e+02, 2.941499938964844e+02, 2.93120849609375e+02, 2.924315185546875e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.925740661621094e+02, 2.941640625e+02, 2.941499938964844e+02, 2.933986206054688e+02, 2.924233703613281e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.9270751953125e+02, 2.956984558105469e+02, 2.971499938964844e+02, 2.972089538574219e+02, 2.984023742675781e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.975139465332031e+02, 2.993062133789062e+02, 2.971499938964844e+02, 2.971586608886719e+02, 2.981323547363281e+02, 2.971500854492188e+02, 2.971499938964844e+02, 2.973802185058594e+02, 2.989988403320312e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.978913269042969e+02, 2.971493835449219e+02, 2.971499938964844e+02, 2.972803344726562e+02, 2.986942138671875e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.976842956542969e+02] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartNoHeatingNoCooling.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartNoHeatingNoCooling.txt new file mode 100644 index 0000000000..3d5db3063c --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_OptimalStartNoHeatingNoCooling.txt @@ -0,0 +1,14 @@ +last-generated=2020-03-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "3", + "numerical Jacobians": "0" +} +time=[0e+00, 2.4192e+06] +optSta.tOpt=[0e+00, 0e+00] +optSta.optOn=[0e+00, 0e+00] +optSta.TZon=[2.921499938964844e+02, 2.920377197265625e+02, 2.941499938964844e+02, 2.937181701660156e+02, 2.924384155273438e+02, 2.941500244140625e+02, 2.941499938964844e+02, 2.928896484375e+02, 2.92452392578125e+02, 2.941499938964844e+02, 2.940725708007812e+02, 2.92486083984375e+02, 2.941501770019531e+02, 2.941499938964844e+02, 2.931207885742188e+02, 2.924315490722656e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.925739135742188e+02, 2.941924743652344e+02, 2.941499938964844e+02, 2.933985595703125e+02, 2.924233093261719e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.9270751953125e+02, 2.956985168457031e+02, 2.971499938964844e+02, 2.972090148925781e+02, 2.984024963378906e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.975139770507812e+02, 2.993063354492188e+02, 2.971499938964844e+02, 2.971586608886719e+02, 2.9813232421875e+02, 2.971501770019531e+02, 2.971499938964844e+02, 2.973801574707031e+02, 2.989988403320312e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.978911743164062e+02, 2.971519470214844e+02, 2.971499938964844e+02, 2.972803039550781e+02, 2.986942138671875e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.976842346191406e+02, 2.963827209472656e+02, 2.950361022949219e+02, 2.937181396484375e+02, 2.924383544921875e+02, 2.941500244140625e+02, 2.941499938964844e+02, 2.928896179199219e+02, 2.92452392578125e+02, 2.941499938964844e+02, 2.940725708007812e+02, 2.924860229492188e+02, 2.941501770019531e+02, 2.941499938964844e+02, 2.931207580566406e+02, 2.924315795898438e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.925740051269531e+02, 2.941924743652342e+02, 2.941499938964844e+02, 2.933985290527344e+02, 2.924232788085938e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.9270751953125e+02, 2.956984558105469e+02, 2.971499938964844e+02, 2.972089538574219e+02, 2.984023742675781e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.975139465332031e+02, 2.993062133789062e+02, 2.971499938964844e+02, 2.971586608886719e+02, 2.981323547363281e+02, 2.971501770019531e+02, 2.971499938964844e+02, 2.973802185058594e+02, 2.989988403320312e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.978912963867188e+02, 2.971519470214844e+02, 2.971499938964844e+02, 2.972803344726562e+02, 2.986941833496094e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.976842956542969e+02] +TSetCoo.y=[3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 2.971499938964849e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 3.031499938964844e+02] +TSetHea.y=[2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.941499938964838e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02, 2.881499938964844e+02, 2.941499938964844e+02, 2.941499938964844e+02, 2.881499938964844e+02] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_PIDWithInputGains.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_PIDWithInputGains.txt new file mode 100644 index 0000000000..b722033bb8 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Controls_OBC_Utilities_Validation_PIDWithInputGains.txt @@ -0,0 +1,17 @@ +last-generated=2022-05-20 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "number of continuous time states": "4", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +PID.k=[1e+00, 1e+00] +PIDWitInpGai.k=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00, 1.200000047683716e+00] +PID.Ti=[5e-01, 5e-01] +PIDWitInpGai.Ti=[5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 5e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01, 6.99999988079071e-01] +PID.Td=[1.000000014901161e-01, 1.000000014901161e-01] +PIDWitInpGai.Td=[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.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, 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] +PID.y=[5e-01, 5.09999990686778e-01, 5.19999981373556e-01, 5.299999720603333e-01, 5.400000223517302e-01, 5.500000111758584e-01, 5.600000037252728e-01, 5.699999925494228e-01, 5.799999850988654e-01, 5.899999701977309e-01, 6.000000223517196e-01, 6.100000149011523e-01, 6.200000074505406e-01, 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, 1e+00, 1e+00, 1e+00, 8.137588987134604e-01, 7.079578216303023e-01, 6.75346736289788e-01, 6.697009218262596e-01, 6.739532864769328e-01, 6.818436353351124e-01, 6.910501775726797e-01, 7.007831194056565e-01, 7.1069317582545e-01, 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, 1e+00, 1e+00, 1e+00, 8.774170243203979e-01, 7.716368014726137e-01, 7.390448492627223e-01, 7.333810937881043e-01, 7.376160141842284e-01, 7.455072635850436e-01, 7.547188771106752e-01, 7.644033888020471e-01, 7.742881131527446e-01, 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, 1e+00, 1e+00, 1e+00, 9.219928346223786e-01, 8.162043864878715e-01, 7.836006921384461e-01, 7.779276979318089e-01, 7.82165300588035e-01, 7.900578016496561e-01, 7.992791903056254e-01, 8.089927294509028e-01, 8.18887348207449e-01, 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] +PIDWitInpGai.y=[5e-01, 5.09999990686778e-01, 5.19999981373556e-01, 5.299999720603333e-01, 5.400000223517302e-01, 5.500000111758584e-01, 5.600000037252728e-01, 5.699999925494228e-01, 5.799999850988654e-01, 5.899999701977309e-01, 6.000000223517196e-01, 6.100000149011523e-01, 6.200000074505406e-01, 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, 1e+00, 1e+00, 1e+00, 8.137588987134604e-01, 7.079578216303023e-01, 6.75346736289788e-01, 6.697009218262596e-01, 6.739532864769328e-01, 6.818436353351124e-01, 6.910501775726797e-01, 7.007831194056565e-01, 7.1069317582545e-01, 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, 1e+00, 1e+00, 1e+00, 8.774170243203979e-01, 7.716368014726137e-01, 7.390448492627223e-01, 7.333810937881043e-01, 7.376160141842284e-01, 7.455072635850436e-01, 7.547188771106752e-01, 8.631590484799047e-01, 8.715933520988245e-01, 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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999999413593323e-01, 9.626983615673881e-01, 9.395208008269087e-01, 9.288343820753084e-01, 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] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Utilities_Math_Functions_Examples_Round.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Utilities_Math_Functions_Examples_Round.txt new file mode 100644 index 0000000000..d74ee1a8c1 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Utilities_Math_Functions_Examples_Round.txt @@ -0,0 +1,13 @@ +last-generated=2020-10-19 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[-2e+00, 2e+00] +ym2=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00] +ym1=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00] +y=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00] +y1=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00] +y2=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+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, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00] diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/BooleanToInteger.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/BooleanToInteger.mos new file mode 100644 index 0000000000..4d4ccff733 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/BooleanToInteger.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Conversions.Validation.BooleanToInteger", stopTime = 4.0, method="Cvode", tolerance=1e-06, resultFile="BooleanToInteger1"); +createPlot(id=1, position={15, 10, 730, 200}, y={"booToInt.u"}, range={0.0, 1.0, -2.0, 5.0}, grid=true, colors={{238,46,47}}); +createPlot(id=2, position={15, 250, 730, 200}, y={"booToInt.y"}, range={0.0, 1.0, -2.0, 5.0}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/BooleanToReal.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/BooleanToReal.mos new file mode 100644 index 0000000000..769ac2fa05 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/BooleanToReal.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Conversions.Validation.BooleanToReal", stopTime = 4.0, method="Cvode", tolerance=1e-06, resultFile="BooleanToReal1"); +createPlot(id=1, position={15, 10, 730, 200}, y={"booToRea.u"}, range={0.0, 1.0, -2.0, 5.0}, grid=true, colors={{238,46,47}}); +createPlot(id=2, position={15, 250, 730, 200}, y={"booToRea.y"}, range={0.0, 1.0, -2.0, 5.0}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/IntegerToReal.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/IntegerToReal.mos new file mode 100644 index 0000000000..501db4ee85 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/IntegerToReal.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Conversions.Validation.IntegerToReal", stopTime = 1.0, method="Cvode", tolerance=1e-06, resultFile="IntegerToReal1"); +createPlot(id=1, position={15, 10, 730, 220}, y={"intToRea.u"}, range={0.0, 1.0, -2.0, 5.0}, grid=true, colors={{238,46,47}}); +createPlot(id=2, position={15, 220, 730, 220}, y={"intToRea.y"}, range={0.0, 1.0, -2.0, 5.0}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/RealToInteger.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/RealToInteger.mos new file mode 100644 index 0000000000..650ebcc3cd --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Conversions/Validation/RealToInteger.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Conversions.Validation.RealToInteger", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="RealToInteger1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"reaToInt.u", "reaToInt.y"}, range={0.0, 1.0, -15, 15}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/FirstOrderHold.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/FirstOrderHold.mos new file mode 100644 index 0000000000..b4cd09e1c5 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/FirstOrderHold.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Discrete.Validation.FirstOrderHold", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="FirstOrderHold1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"firOrdHol.u", "firOrdHol.y"}, range={0.0, 1.0, -15, 15}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/Sampler.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/Sampler.mos new file mode 100644 index 0000000000..aa38db656f --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/Sampler.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Discrete.Validation.Sampler", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="Sampler1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"sampler1.u", "sampler1.y"}, range={0.0, 1.0, -15, 15}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/TriggeredMax.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/TriggeredMax.mos new file mode 100644 index 0000000000..d78a181a38 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/TriggeredMax.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Discrete.Validation.TriggeredMax", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="TriggeredMax1"); +createPlot(id=1, position={15, 10, 750, 230}, y={"triggeredMax.u", "triggeredMax.y"}, range={0.0, 1.0, -15, 15}, grid=true, colors={{238,46,47}, {28,108,200}}); +createPlot(id=2, position={15, 270, 750, 180}, y={"triggeredMax.trigger"}, range={0.0, 1.0, -15, 15}, grid=true, colors={{238,46,47}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/TriggeredMovingMean.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/TriggeredMovingMean.mos new file mode 100644 index 0000000000..3af0a04d7f --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/TriggeredMovingMean.mos @@ -0,0 +1,5 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Discrete.Validation.TriggeredMovingMean", startTime = -0.5, stopTime=15.0, method="Cvode", tolerance=1e-06, resultFile="TriggeredMovingMean1"); +createPlot(id=1, position={15, 10, 590, 420}, subPlot=1, y={"triMovMea.u", "triMovMea.y", "triMovMea1.y"}, range={-1, 15.0, -2.0, 2.0}, grid=true, colors={{0,0,255}, {255,0,0}, {0,255,0}}); +createPlot(id=1, position={15, 10, 590, 420}, subPlot=2, y={"booPul.y"}, range={-1, 15.0, -1, 1}, grid=true, colors={{0,0,255}}); +createPlot(id=1, position={15, 10, 590, 420}, subPlot=3, y={"triMovMea.u", "triMovMea2.y"}, range={-1, 15.0, -2.0, 2.0}, grid=true, colors={{0,0,255}, {255,0,0}}); +createPlot(id=1, position={15, 10, 590, 420}, subPlot=4, y={"booPul1.y"}, range={-1, 15.0, -1, 1}, grid=true, colors={{0,0,255}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/TriggeredSampler.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/TriggeredSampler.mos new file mode 100644 index 0000000000..d72fd775b7 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/TriggeredSampler.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Discrete.Validation.TriggeredSampler", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="TriggeredSampler1"); +createPlot(id=1, position={55, 50, 615, 494}, y={"booPul.y", "sin1.y", "triSam.y", "triSam1.y"}, range={0.0, 1.0, -1.2, 1.2000000000000004}, grid=true, colors={{28,108,200}, {238,46,47}, {0,140,72}, {217,67,180}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/UnitDelay.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/UnitDelay.mos new file mode 100644 index 0000000000..144ba6730f --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/UnitDelay.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Discrete.Validation.UnitDelay", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="unitDelay1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"unitDelay1.u", "unitDelay1.y"}, range={0.0, 1.0, -15, 15}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/ZeroOrderHold.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/ZeroOrderHold.mos new file mode 100644 index 0000000000..62a595c2b3 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Discrete/Validation/ZeroOrderHold.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Discrete.Validation.ZeroOrderHold", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="ZeroOrderHold1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"zerOrdHol.u", "zerOrdHol.y"}, range={0.0, 1.0, -15, 15}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/Constant.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/Constant.mos new file mode 100644 index 0000000000..f27ea050ff --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/Constant.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Sources.Validation.Constant", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="IntCon1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"con.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/Pulse.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/Pulse.mos new file mode 100644 index 0000000000..429ce5229d --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/Pulse.mos @@ -0,0 +1,5 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Sources.Validation.Pulse", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="IntegerPulse1"); +createPlot(id=1, subPlot=1, position={15, 10, 590, 750}, y={"pul.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=1, subPlot=2, position={15, 10, 590, 750}, y={"pul1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=1, subPlot=3, position={15, 10, 590, 750}, y={"pul2.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=1, subPlot=4, position={15, 10, 590, 750}, y={"pul3.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/TimeTable.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/TimeTable.mos new file mode 100644 index 0000000000..ef89f261dc --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/TimeTable.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Sources.Validation.TimeTable", startTime=0, tolerance=1e-6, stopTime=15, method="Cvode", resultFile="IntegerTimeTable"); +createPlot(id=1, position={15, 6, 1488, 1268}, y={"intTimTab.y[1]", "intTimTab.y[2]"}, range={0.0, 15.0, -2.0, 8.0}, grid=true, colors={{28,108,200}, {28,108,200}}); +createPlot(id=1, position={15, 6, 1488, 1268}, y={"intTimTab1.y[1]", "intTimTab1.y[2]"}, range={0.0, 15.0, -4.0, 8.0}, grid=true, subPlot=102, colors={{28,108,200}, {28,108,200}}); +createPlot(id=1, position={15, 6, 1488, 1268}, y={"tabOneRow.y[1]"}, range={0.0, 15.0, -1.2000000000000002, 0.3999999999999999}, grid=true, subPlot=103, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/TimeTableNegativeStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/TimeTableNegativeStartTime.mos new file mode 100644 index 0000000000..b490f39630 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Sources/Validation/TimeTableNegativeStartTime.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Sources.Validation.TimeTableNegativeStartTime", startTime=-5, tolerance=1e-6, stopTime=10, method="Cvode", resultFile="TimeTableNegativeStartTime3"); +createPlot(id=1, position={15, 6, 1488, 1268}, y={"intTimTab.y[1]", "intTimTab.y[2]"}, grid=true, colors={{28,108,200}, {28,108,200}}); +createPlot(id=1, position={15, 6, 1488, 1268}, y={"intTimTab1.y[1]", "intTimTab1.y[2]"}, grid=true, subPlot=102, colors={{28,108,200}, {28,108,200}}); +createPlot(id=1, position={15, 6, 1488, 1268}, y={"tabOneRow.y[1]"}, grid=true, subPlot=103, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Abs.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Abs.mos new file mode 100644 index 0000000000..fe0fa8acf7 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Abs.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.Abs", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="Abs2"); +createPlot(id=1, position={15, 10, 590, 420}, y={"abs1.u", "abs1.y"}, range={0.0, 1.0, -1.2, 1.4}, grid=true, colors={{28,108,200}, {238,46,47}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Add.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Add.mos new file mode 100644 index 0000000000..cb05373cd6 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Add.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.Add", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="Add2"); +createPlot(id=1, position={15, 10, 590, 420}, y={"add1.u1", "add1.u2", "add1.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/AddParameter.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/AddParameter.mos new file mode 100644 index 0000000000..1c9f554b58 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/AddParameter.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.AddParameter", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="AddParameter3"); +createPlot(id=1, position={15, 10, 590, 420}, y={"addPar.u", "addPar.y"}, range={0.0, 1.0, -4, 5}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Change.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Change.mos new file mode 100644 index 0000000000..67eae9d2df --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Change.mos @@ -0,0 +1,6 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.Change", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="IntChange"); +createPlot(id=1, position={15, 10, 2072, 1231}, y={"reaToInt.y"}, range={0.0, 1.0, -1.5, 1.5}, grid=true, colors={{0,140,72}}); +createPlot(id=1, position={15, 10, 2072, 407}, y={"cha.u", "cha.up", "cha.y", "cha.down"}, range={0.0, 1.0, -1.5, 1.5}, grid=true, subPlot=2, colors={{217,67,180}, {28,108,200}, {0,140,72}, {238,46,47}}); +createPlot(id=1, position={15, 10, 2072, 407}, y={"changeSampler.u", "changeSampler.y"}, range={0.0, 1.0, -5.0, 25.0}, grid=true, subPlot=3, colors={{28,108,200}, {0,140,72}}); +createPlot(id=1, position={15, 10, 2072, 407}, y={"increaseSampler.u", "increaseSampler.y"}, range={0.0, 1.0, -5.0, 25.0}, grid=true, subPlot=4, colors={{28,108,200}, {0,140,72}}); +createPlot(id=1, position={15, 10, 2072, 407}, y={"decreaseSampler.u", "decreaseSampler.y"}, range={0.0, 1.0, -5.0, 25.0}, grid=true, subPlot=5, colors={{28,108,200}, {0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Equal.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Equal.mos new file mode 100644 index 0000000000..3a8778383c --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Equal.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.Equal", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="Equal2"); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=1, y={"intEqu.u1", "intEqu.u2"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}}); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=2, y={"intEqu.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Greater.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Greater.mos new file mode 100644 index 0000000000..e3e9c65045 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Greater.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.Greater", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="Greater2"); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=1, y={"intGre.u1", "intGre.u2"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}}); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=2, y={"intGre.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/GreaterEqual.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/GreaterEqual.mos new file mode 100644 index 0000000000..9af0591b0c --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/GreaterEqual.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.GreaterEqual", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="GreaterEqual2"); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=1, y={"intGreEqu.u1", "intGreEqu.u2"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}}); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=2, y={"intGreEqu.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/GreaterEqualThreshold.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/GreaterEqualThreshold.mos new file mode 100644 index 0000000000..532015066a --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/GreaterEqualThreshold.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.GreaterEqualThreshold", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="GreaterEqualThreshold2"); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=1, y={"intGreEquThr.t", "intGreEquThr.u"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}}); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=2, y={"intGreEquThr.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/GreaterThreshold.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/GreaterThreshold.mos new file mode 100644 index 0000000000..93bf7c36e2 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/GreaterThreshold.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.GreaterThreshold", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="GreaterThreshold2"); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=1, y={"intGreThr.t", "intGreThr.u"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}}); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=2, y={"intGreThr.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Less.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Less.mos new file mode 100644 index 0000000000..e52fddafb2 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Less.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.Less", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="Less2"); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=1, y={"intLes.u1", "intLes.u2"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}}); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=2, y={"intLes.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/LessEqual.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/LessEqual.mos new file mode 100644 index 0000000000..b02ef53c8f --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/LessEqual.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.LessEqual", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="LessEqual2"); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=1, y={"intLesEqu.u1", "intLesEqu.u2"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}}); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=2, y={"intLesEqu.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/LessEqualThreshold.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/LessEqualThreshold.mos new file mode 100644 index 0000000000..3bb3b3f69e --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/LessEqualThreshold.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.LessEqualThreshold", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="LessEqualThreshold2"); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=1, y={"intLesEquThr.t", "intLesEquThr.u"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}}); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=2, y={"intLesEquThr.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/LessThreshold.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/LessThreshold.mos new file mode 100644 index 0000000000..8ef203f4a7 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/LessThreshold.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.LessThreshold", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="LessThreshold2"); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=1, y={"intLesThr.t", "intLesThr.u"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}}); +createPlot(id=1, position={15, 10, 590, 450}, subPlot=2, y={"intLesThr.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Max.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Max.mos new file mode 100644 index 0000000000..7657635021 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Max.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.Max", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="Max2"); +createPlot(id=1, position={15, 10, 590, 420}, y={"max1.u1", "max1.u2", "max1.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Min.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Min.mos new file mode 100644 index 0000000000..fc2c0b0829 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Min.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.Min", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="Min2"); +createPlot(id=1, position={15, 10, 590, 420}, y={"min1.u1", "min1.u2", "min1.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/MultiSum.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/MultiSum.mos new file mode 100644 index 0000000000..ca07a079d9 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/MultiSum.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.MultiSum", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="MultiSum2"); +createPlot(id=1, position={15, 10, 590, 420}, y={"add1.u[1]", "add1.u[2]", "add1.u[3]", "add1.y"}, range={0.0, 1.0, -5, 6}, grid=true, colors={{0,140,72}, {238,46,47}, {217,67,180}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Multiply.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Multiply.mos new file mode 100644 index 0000000000..db80fbb9c9 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Multiply.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.Multiply", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="Multiply2"); +createPlot(id=1, position={15, 10, 590, 420}, y={"product.u1", "product.u2", "product.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/OnCounter.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/OnCounter.mos new file mode 100644 index 0000000000..b3850cea79 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/OnCounter.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.OnCounter", stopTime=2.0, method="Cvode", tolerance=1e-06, resultFile="OnCounter1"); +createPlot(id=1, position={15, 10, 750, 450}, subPlot=1, y={"onCounter.trigger"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={15, 10, 750, 450}, subPlot=2, y={"onCounter.reset"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={15, 10, 750, 450}, subPlot=3, y={"onCounter.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Stage.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Stage.mos new file mode 100644 index 0000000000..15460bca04 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Stage.mos @@ -0,0 +1,6 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.Stage", stopTime=10.0, method="Cvode", tolerance=1e-06, resultFile="Stage"); +createPlot(id=1, position={15, 15, 1152, 1184}, y={"sta.u"}, range={0.0, 10.0, -0.2, 1.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 1152, 1184}, y={"sta.y", "zerHolTim.y"}, range={0.0, 10.0, -0.1, 1.0}, autoscale=false, grid=true, subPlot=2, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=2, position={1187, 17, 1214, 1182}, y={"sta1.u"}, range={0.0, 10.0, -0.2, 1.2}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={1187, 17, 1214, 1182}, y={"sta1.y", "lesHolTim.y"}, range={0.0, 10.0, -1.5, 1.5}, autoscale=false, grid=true, subPlot=2, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Subtract.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Subtract.mos new file mode 100644 index 0000000000..276f663817 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Subtract.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.Subtract", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="sub2"); +createPlot(id=1, position={15, 10, 590, 420}, y={"sub.u1", "sub.u2", "sub.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Switch.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Switch.mos new file mode 100644 index 0000000000..3301aec93b --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Integers/Validation/Switch.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Integers.Validation.Switch", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="IntegerSwitch1"); +createPlot(id=1, position={15, 10, 900, 420}, y={"integerSwitch.u1", "integerSwitch.u2", "integerSwitch.u3", "integerSwitch.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200},{28,108,200},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/Constant.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/Constant.mos new file mode 100644 index 0000000000..bd659c048f --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/Constant.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Sources.Validation.Constant", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="BooCon1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"con.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/Pulse.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/Pulse.mos new file mode 100644 index 0000000000..9d461130a3 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/Pulse.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Sources.Validation.Pulse", stopTime=10, tolerance=1e-06, method="Cvode", resultFile="Pulse"); +createPlot(id=1, position={15, 15, 1385, 860}, y={"booPul_a1.y", "booPul_a2.y", "booPul_a3.y", "booPul_a4.y", "booPul_a5.y"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}); +createPlot(id=1, position={15, 15, 1385, 860}, y={"booPul_b1.y", "booPul_b2.y", "booPul_b3.y", "booPul_b4.y", "booPul_b5.y"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=102, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}); +createPlot(id=1, position={15, 15, 1385, 860}, y={"booPul_c1.y", "booPul_c2.y", "booPul_c3.y", "booPul_c4.y", "booPul_c5.y"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=103, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/PulseNegativeStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/PulseNegativeStartTime.mos new file mode 100644 index 0000000000..9f6f059e7d --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/PulseNegativeStartTime.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Sources.Validation.PulseNegativeStartTime", startTime=-10, stopTime=1, tolerance=1e-06, method="Cvode", resultFile="PulseNegativeStartTime"); +createPlot(id=1, position={15, 15, 1385, 860}, y={"booPul_a1.y", "booPul_a2.y", "booPul_a3.y", "booPul_a4.y", "booPul_a5.y"}, range={-10, 1, 1.5}, grid=true, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}); +createPlot(id=1, position={15, 15, 1385, 860}, y={"booPul_b1.y", "booPul_b2.y", "booPul_b3.y", "booPul_b4.y", "booPul_b5.y"}, range={-10, 1, 1.5}, grid=true, subPlot=102, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}); +createPlot(id=1, position={15, 15, 1385, 860}, y={"booPul_c1.y", "booPul_c2.y", "booPul_c3.y", "booPul_c4.y", "booPul_c5.y"}, range={-10, 1, 1.5}, grid=true, subPlot=103, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/PulsePositiveStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/PulsePositiveStartTime.mos new file mode 100644 index 0000000000..6c8bb88fb3 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/PulsePositiveStartTime.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Sources.Validation.PulsePositiveStartTime", startTime=9, stopTime=20, tolerance=1e-06, method="Cvode", resultFile="PulsePositiveStartTime"); +createPlot(id=1, position={15, 15, 1385, 860}, y={"booPul_a1.y", "booPul_a2.y", "booPul_a3.y", "booPul_a4.y", "booPul_a5.y"}, range={9, 20, -0.5, 1.5}, grid=true, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}); +createPlot(id=1, position={15, 15, 1385, 860}, y={"booPul_b1.y", "booPul_b2.y", "booPul_b3.y", "booPul_b4.y", "booPul_b5.y"}, range={9, 20, -0.5, 1.5}, grid=true, subPlot=102, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}); +createPlot(id=1, position={15, 15, 1385, 860}, y={"booPul_c1.y", "booPul_c2.y", "booPul_c3.y", "booPul_c4.y", "booPul_c5.y"}, range={9, 20, -0.5, 1.5}, grid=true, subPlot=103, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/SampleTrigger.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/SampleTrigger.mos new file mode 100644 index 0000000000..a5ec2f62a9 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/SampleTrigger.mos @@ -0,0 +1,6 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Sources.Validation.SampleTrigger", startTime=0.0, stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="SampleTrigger"); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=1, y={"samTri.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47}}); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=2, y={"triggeredSampler.u", "triggeredSampler.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); + +createPlot(id=2, position={35, 30, 1000, 600}, subPlot=1, y={"samTri1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47}}); +createPlot(id=2, position={35, 30, 1000, 600}, subPlot=2, y={"triggeredSampler1.u", "triggeredSampler1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerNegativeStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerNegativeStartTime.mos new file mode 100644 index 0000000000..c7ac6c9b11 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerNegativeStartTime.mos @@ -0,0 +1,6 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Sources.Validation.SampleTriggerNegativeStartTime", startTime=-2.0, stopTime=3.0, method="Cvode", tolerance=1e-06, resultFile="SampleTriggerNegativeStartTime"); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=1, y={"samTri.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47}}); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=2, y={"triggeredSampler.u", "triggeredSampler.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); + +createPlot(id=2, position={35, 30, 1000, 600}, subPlot=1, y={"samTri1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47}}); +createPlot(id=2, position={35, 30, 1000, 600}, subPlot=2, y={"triggeredSampler1.u", "triggeredSampler1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerPositiveStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerPositiveStartTime.mos new file mode 100644 index 0000000000..8f1c00da49 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/SampleTriggerPositiveStartTime.mos @@ -0,0 +1,6 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Sources.Validation.SampleTriggerPositiveStartTime", startTime=1.0, stopTime=6.0, method="Cvode", tolerance=1e-06, resultFile="SampleTriggerPositiveStartTime"); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=1, y={"samTri.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47}}); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=2, y={"triggeredSampler.u", "triggeredSampler.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); + +createPlot(id=2, position={35, 30, 1000, 600}, subPlot=1, y={"samTri1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47}}); +createPlot(id=2, position={35, 30, 1000, 600}, subPlot=2, y={"triggeredSampler1.u", "triggeredSampler1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/TimeTable.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/TimeTable.mos new file mode 100644 index 0000000000..2fdf7b2069 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/TimeTable.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Sources.Validation.TimeTable", startTime=0, tolerance=1e-6, stopTime=15, method="Cvode", resultFile="TimeTable2"); +createPlot(id=1, subPlot=1, position={15, 10, 1936, 1264}, y={"booTimTab.y[1]", "booTimTab.y[2]"}, range={-1.6, 2.0, -0.5, 1.5}, grid=true, colors={{0,0,255}, {0,140,72}}); +createPlot(id=1, subPlot=2, position={15, 10, 1936, 1264}, y={"booTimTabTwi.y[1]", "booTimTabTwi.y[2]"}, range={-1.6, 2.0, -0.5, 1.5}, grid=true, colors={{0,0,255}, {0,140,72}}); +createPlot(id=1, subPlot=3, position={15, 10, 1936, 1264}, y={"booTimTabOneRow.y[1]", "booTimTabOneRow.y[2]"}, range={-1.6, 2.0, -0.5, 1.5}, grid=true, colors={{0,0,255}, {0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/TimeTableNegativeStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/TimeTableNegativeStartTime.mos new file mode 100644 index 0000000000..413aa81543 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Sources/Validation/TimeTableNegativeStartTime.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Sources.Validation.TimeTableNegativeStartTime", startTime=-5, tolerance=1e-6, stopTime=10, method="Cvode", resultFile="TimeTableNegativeStartTime2"); +createPlot(id=1, subPlot=1, position={15, 10, 1936, 1264}, y={"booTimTab.y[1]", "booTimTab.y[2]"}, range={-1.6, 2.0, -0.5, 1.5}, grid=true, colors={{0,0,255}, {0,140,72}}); +createPlot(id=1, subPlot=2, position={15, 10, 1936, 1264}, y={"booTimTabTwi.y[1]", "booTimTabTwi.y[2]"}, range={-1.6, 2.0, -0.5, 1.5}, grid=true, colors={{0,0,255}, {0,140,72}}); +createPlot(id=1, subPlot=3, position={15, 10, 1936, 1264}, y={"booTimTabOneRow.y[1]", "booTimTabOneRow.y[2]"}, range={-1.6, 2.0, -0.5, 1.5}, grid=true, colors={{0,0,255}, {0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/And.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/And.mos new file mode 100644 index 0000000000..402b6037b1 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/And.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.And", stopTime=10.0, method="Cvode", tolerance=1e-06, resultFile="And1"); +createPlot(id=1, position={15, 10, 900, 420}, y={"and1.u1","and1.u2","and1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Change.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Change.mos new file mode 100644 index 0000000000..0178051186 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Change.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.Change", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="Change11"); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=1, y={"change.u", "change.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=2, y={"triggeredSampler.u", "triggeredSampler.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Edge.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Edge.mos new file mode 100644 index 0000000000..3e25c70da6 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Edge.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.Edge", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="Edge1"); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=1, y={"edge1.u", "edge1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=2, y={"triggeredSampler.u", "triggeredSampler.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/FallingEdge.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/FallingEdge.mos new file mode 100644 index 0000000000..0a4aa1cab4 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/FallingEdge.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.FallingEdge", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="FallingEdge1"); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=1, y={"falEdg.u", "falEdg.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=2, y={"triggeredSampler.u", "triggeredSampler.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Latch.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Latch.mos new file mode 100644 index 0000000000..0db00899f0 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Latch.mos @@ -0,0 +1,8 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.Latch", stopTime=10.0, method="Cvode", tolerance=1e-06, resultFile="Latch1"); +createPlot(id=1, position={10, 10, 550, 800}, y={"falCleTruIni.u","falCleTruIni.clr","falCleTruIni.y"}, subPlot=1, range={0.0, 10.0, -3.5, 3.5}, grid=true, autoscale=false, colors={{238,46,47},{238,46,47},{238,46,47}}); +createPlot(id=1, position={10, 10, 550, 800}, y={"falCleFalIni.u","falCleFalIni.clr","falCleFalIni.y"}, subPlot=2, range={0.0, 10.0, -3.5, 3.5}, grid=true, autoscale=false, colors={{238,46,47},{238,46,47},{238,46,47}}); +createPlot(id=2, position={570, 10, 550, 800}, y={"truCleTruIni.u","truCleTruIni.clr","truCleTruIni.y"}, subPlot=1, range={0.0, 10.0, -3.5, 3.5}, grid=true, autoscale=false, colors={{238,46,47},{238,46,47},{238,46,47}}); +createPlot(id=2, position={570, 10, 550, 800}, y={"truCleFalIni.u","truCleFalIni.clr","truCleFalIni.y"}, subPlot=2, range={0.0, 10.0, -3.5, 3.5}, grid=true, autoscale=false, colors={{238,46,47},{238,46,47},{238,46,47}}); +createPlot(id=3, position={1130, 10, 550, 800}, y={"swiCleInp.u","swiCleInp.clr","swiCleInp.y"}, subPlot=1, range={0.0, 10.0, -3.5, 3.5}, grid=true, autoscale=false, colors={{238,46,47},{238,46,47},{238,46,47}}); +createPlot(id=3, position={1130, 10, 550, 800}, y={"swiCleInp1.u","swiCleInp1.clr","swiCleInp1.y"}, subPlot=2, range={0.0, 10.0, -3.5, 3.5}, grid=true, autoscale=false, colors={{238,46,47},{238,46,47},{238,46,47}}); + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/MultiAnd.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/MultiAnd.mos new file mode 100644 index 0000000000..930410396f --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/MultiAnd.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.MultiAnd", method="Cvode", tolerance=1e-06, stopTime=10.0, resultFile="MultiAnd1"); +createPlot(id=1, position={15, 10, 600, 350}, y={"mulAnd0.y", "mulAnd1.u[1]", "mulAnd1.y"}, range={0.0, 1.0, -5, 6}, grid=true, colors={{0,140,72},{238,46,47},{28,108,200}}); +createPlot(id=2, position={15, 400, 600, 350}, y={"mulAnd2.u[1]","mulAnd2.u[2]", "mulAnd2.y"}, range={0.0, 1.0, -5, 6}, grid=true, colors={{0,140,72},{238,46,47},{28,108,200}}); +createPlot(id=3, position={630, 10, 600, 750}, y={"mulAnd5.u[1]", "mulAnd5.u[2]", "mulAnd5.u[3]", "mulAnd5.u[4]", "mulAnd5.u[5]","mulAnd5.y"}, range={0.0, 1.0, -5, 6}, grid=true, colors={{0,140,72}, {238,46,47}, {217,67,180}, {238,46,47}, {217,67,180},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/MultiOr.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/MultiOr.mos new file mode 100644 index 0000000000..0807471b9f --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/MultiOr.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.MultiOr", method="Cvode", tolerance=1e-06, stopTime=10.0, resultFile="MultiOr1"); +createPlot(id=1, position={15, 10, 600, 350}, y={"mulOr0.y", "mulOr1.u[1]", "mulOr1.y"}, range={0.0, 1.0, -5, 6}, grid=true, colors={{0,140,72},{238,46,47},{28,108,200}}); +createPlot(id=2, position={15, 400, 600, 350}, y={"mulOr2.u[1]","mulOr2.u[2]", "mulOr2.y"}, range={0.0, 1.0, -5, 6}, grid=true, colors={{0,140,72},{238,46,47},{28,108,200}}); +createPlot(id=3, position={630, 10, 600, 750}, y={"mulOr5.u[1]", "mulOr5.u[2]", "mulOr5.u[3]", "mulOr5.u[4]", "mulOr5.u[5]","mulOr5.y"}, range={0.0, 1.0, -5, 6}, grid=true, colors={{0,140,72}, {238,46,47}, {217,67,180}, {238,46,47}, {217,67,180},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Nand.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Nand.mos new file mode 100644 index 0000000000..87a5b10483 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Nand.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.Nand", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="Nand1"); +createPlot(id=1, position={15, 10, 900, 420}, y={"nand1.u1","nand1.u2","nand1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Nor.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Nor.mos new file mode 100644 index 0000000000..3edbb81a71 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Nor.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.Nor", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="Nor1"); +createPlot(id=1, position={15, 10, 900, 420}, y={"nor1.u1","nor1.u2","nor1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Not.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Not.mos new file mode 100644 index 0000000000..0391a451c7 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Not.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.Not", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="Not1"); +createPlot(id=1, position={15, 10, 900, 420}, y={"not1.u","not1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Or.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Or.mos new file mode 100644 index 0000000000..0ceefb21a5 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Or.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.Or", stopTime=10.0, method="Cvode", tolerance=1e-06, resultFile="Or1"); +createPlot(id=1, position={15, 10, 900, 420}, y={"or1.u1","or1.u2","or1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Proof.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Proof.mos new file mode 100644 index 0000000000..bcb912d2f9 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Proof.mos @@ -0,0 +1,14 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.Proof", stopTime=10.0, method="Cvode", tolerance=1e-06, resultFile="Proof"); +createPlot(id=1, position={5, 20, 450, 1300}, y={"pro.u_m", "pro.u_s"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=1, position={5, 20, 450, 1300}, y={"pro.yLocFal", "pro.yLocTru"}, range={0.0, 10.0, -2.0, 2.0}, grid=true, subPlot=2, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=2, position={465, 20, 450, 1300}, y={"pro1.u_m", "pro1.u_s"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=2, position={465, 20, 450, 1300}, y={"pro1.yLocFal", "pro1.yLocTru"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=3, position={925, 20, 450, 1300}, y={"pro2.u_m", "pro2.u_s"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=3, position={925, 20, 450, 1300}, y={"pro2.yLocFal", "pro2.yLocTru"}, range={0.0, 10.0, -2.0, 2.0}, grid=true, subPlot=2, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=4, position={1385, 20, 450, 1300}, y={"pro3.u_m", "pro3.u_s"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=4, position={1385, 20, 450, 1300}, y={"pro3.yLocFal", "pro3.yLocTru"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=5, position={1845, 20, 450, 1300}, y={"pro4.u_m", "pro4.u_s"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=5, position={1845, 20, 450, 1300}, y={"pro4.yLocFal", "pro4.yLocTru"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=6, position={2295, 20, 450, 1300}, y={"pro5.u_m", "pro5.u_s"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=6, position={2295, 20, 450, 1300}, y={"pro5.yLocFal", "pro5.yLocTru"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Switch.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Switch.mos new file mode 100644 index 0000000000..32ed0ee90c --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Switch.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.Switch", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="LogicalSwitch1"); +createPlot(id=1, position={15, 10, 900, 420}, y={"logicalSwitch.u1", "logicalSwitch.u2", "logicalSwitch.u3", "logicalSwitch.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200},{28,108,200},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Timer.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Timer.mos new file mode 100644 index 0000000000..9233345ff1 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Timer.mos @@ -0,0 +1,10 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.Timer", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="Timer1"); +createPlot(id=1, position={15, 15, 750, 1200}, y={"noThr.u"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}}); +createPlot(id=1, position={15, 15, 750, 1200}, y={"noThr.y", "noThr.t"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}}, displayUnits={"s", "s"}); +createPlot(id=1, position={15, 15, 750, 1200}, y={"noThr.passed"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=3, colors={{28,108,200}}); +createPlot(id=2, position={775, 15, 750, 1200}, y={"thrTim.u"}, range={0.0, 5.0, -0.2, 1.2}, grid=true, subPlot=1, colors={{28,108,200}}); +createPlot(id=2, position={775, 15, 750, 1200}, y={"thrTim.y", "thrTim.t"}, range={0.0, 5.0, -0.5, 2.0}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}}, displayUnits={"s", "s"}); +createPlot(id=2, position={775, 15, 750, 1200}, y={"thrTim.passed"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=3, colors={{28,108,200}}); +createPlot(id=3, position={1535, 15, 750, 1200}, y={"thrTim1.u"}, range={0.0, 5.0, -0.2, 1.2}, grid=true, subPlot=1, colors={{28,108,200}}); +createPlot(id=3, position={1535, 15, 750, 1200}, y={"thrTim1.y", "thrTim1.t"}, range={0.0, 5.0, -0.5, 2.0}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}}, displayUnits={"s", "s"}); +createPlot(id=3, position={1535, 15, 750, 1200}, y={"thrTim1.passed"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=3, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TimerAccumulating.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TimerAccumulating.mos new file mode 100644 index 0000000000..c092192fb8 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TimerAccumulating.mos @@ -0,0 +1,11 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.TimerAccumulating", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="AccTim"); +createPlot(id=1, position={15, 15, 800, 1200}, y={"noThr.u"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}}); +createPlot(id=1, position={15, 15, 800, 1200}, y={"noThr.y"}, range={0.0, 5.0, -2.0, 4.0}, grid=true, subPlot=2, colors={{28,108,200}}, displayUnits={"s"}); +createPlot(id=1, position={15, 15, 800, 1200}, y={"thrTim.u", "thrTim.passed"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=3, colors={{28,108,200}, {28,108,200}}); +createPlot(id=1, position={15, 15, 800, 1200}, y={"thrTim.y", "thrTim.t"}, range={0.0, 5.0, -2.0, 4.0}, grid=true, subPlot=4, colors={{28,108,200}, {238,46,47}}, displayUnits={"s", "s"}); +createPlot(id=2, position={825, 15, 800, 1200}, y={"noThrWitRes.u", "noThrWitRes.reset"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {28,108,200}}); +createPlot(id=2, position={825, 15, 800, 1200}, y={"noThrWitRes.y"}, range={0.0, 5.0, -1.0, 3.0}, grid=true, subPlot=2, colors={{28,108,200}}, displayUnits={"s"}); +createPlot(id=2, position={825, 15, 800, 1200}, y={"thrTimWitRes.u", "thrTimWitRes.reset", "thrTimWitRes.passed"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=3, colors={{28,108,200}, {28,108,200}, {28,108,200}}); +createPlot(id=2, position={825, 15, 800, 1200}, y={"thrTimWitRes.y", "thrTimWitRes.t"}, range={0.0, 5.0, -1.0, 3.0}, grid=true, subPlot=4, colors={{28,108,200}, {238,46,47}}, displayUnits={"s", "s"}); + + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TimerAccumulatingNegativeStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TimerAccumulatingNegativeStartTime.mos new file mode 100644 index 0000000000..c80a16108b --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TimerAccumulatingNegativeStartTime.mos @@ -0,0 +1,13 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.TimerAccumulatingNegativeStartTime", startTime=-10, stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="AccTimNegSta"); +createPlot(id=1, position={15, 15, 800, 1200}, y={"noThr.u"}, range={-10.0, 5.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}}); +createPlot(id=1, position={15, 15, 800, 1200}, y={"noThr.y", "noThr.t"}, range={-10.0, 5.0, -2.0, 6.0}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}}, displayUnits={"s", "s"}); +createPlot(id=1, position={15, 15, 800, 1200}, y={"thrTim.u", "thrTim.passed"}, range={-10.0, 5.0, -1.0, 2.0}, grid=true, subPlot=3, colors={{28,108,200}, {28,108,200}}); +createPlot(id=1, position={15, 15, 800, 1200}, y={"thrTim.y", "thrTim.t"}, range={-10.0, 5.0, -5.0, 10.0}, grid=true, subPlot=4, colors={{28,108,200}, {238,46,47}}, displayUnits={"s", "s"}); +createPlot(id=2, position={825, 15, 800, 1200}, y={"noThrWitRes.u", "noThrWitRes.reset"}, range={-10.0, 5.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {28,108,200}}); +createPlot(id=2, position={825, 15, 800, 1200}, y={"noThrWitRes.y", "noThrWitRes.t"}, range={-10.0, 5.0, -1.0, 3.0}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}}, displayUnits={"s", "s"}); +createPlot(id=2, position={825, 15, 800, 1200}, y={"thrTimWitRes.u", "thrTimWitRes.reset", "thrTimWitRes.passed"}, range={-10.0, 5.0, -1.0, 2.0}, grid=true, subPlot=3, colors={{28,108,200}, {28,108,200}, {28,108,200}}); +createPlot(id=2, position={825, 15, 800, 1200}, y={"thrTimWitRes.y", "thrTimWitRes.t"}, range={-10.0, 5.0, -2.0, 4.0}, grid=true, subPlot=4, colors={{28,108,200}, {238,46,47}}, displayUnits={"s", "s"}); + + + + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TimerNegativeStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TimerNegativeStartTime.mos new file mode 100644 index 0000000000..1715c61fc8 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TimerNegativeStartTime.mos @@ -0,0 +1,8 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.TimerNegativeStartTime", startTime=-10, stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="NegStaTim"); + +createPlot(id=1, position={15, 15, 1000, 1200}, y={"noThr.u"}, range={-10.0, 5.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}}); +createPlot(id=1, position={15, 15, 1000, 1200}, y={"noThr.y", "noThr.t"}, range={-10.0, 5.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}}, displayUnits={"s", "s"}); +createPlot(id=1, position={15, 15, 1000, 1200}, y={"noThr.passed"}, range={-10.0, 5.0, -0.5, 1.5}, grid=true, subPlot=3, colors={{28,108,200}}); +createPlot(id=2, position={1025, 15, 1000, 1200}, y={"thrTim.u"}, range={-10.0, 5.0, -0.2, 1.2}, grid=true, subPlot=1, colors={{28,108,200}}); +createPlot(id=2, position={1025, 15, 1000, 1200}, y={"thrTim.y", "thrTim.t"}, range={-10.0, 5.0, -0.5, 2.0}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}}, displayUnits={"s", "s"}); +createPlot(id=2, position={1025, 15, 1000, 1200}, y={"thrTim.passed"}, range={-10.0, 5.0, -0.5, 1.5}, grid=true, subPlot=3, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Toggle.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Toggle.mos new file mode 100644 index 0000000000..fe3d90fbf8 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Toggle.mos @@ -0,0 +1,7 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.Toggle", stopTime=10.0, method="Cvode", tolerance=1e-06, resultFile="Toggle1"); +createPlot(id=1, position={10, 10, 550, 800}, y={"falCleTruIni.u","falCleTruIni.clr","falCleTruIni.y"}, subPlot=1, range={0.0, 10.0, -3.5, 3.5}, grid=true, autoscale=false, colors={{238,46,47},{238,46,47},{238,46,47}}); +createPlot(id=1, position={10, 10, 550, 800}, y={"falCleFalIni.u","falCleFalIni.clr","falCleFalIni.y"}, subPlot=2, range={0.0, 10.0, -3.5, 3.5}, grid=true, autoscale=false, colors={{238,46,47},{238,46,47},{238,46,47}}); +createPlot(id=2, position={570, 10, 550, 800}, y={"truCleTruIni.u","truCleTruIni.clr","truCleTruIni.y"}, subPlot=1, range={0.0, 10.0, -3.5, 3.5}, grid=true, autoscale=false, colors={{238,46,47},{238,46,47},{238,46,47}}); +createPlot(id=2, position={570, 10, 550, 800}, y={"truCleFalIni.u","truCleFalIni.clr","truCleFalIni.y"}, subPlot=2, range={0.0, 10.0, -3.5, 3.5}, grid=true, autoscale=false, colors={{238,46,47},{238,46,47},{238,46,47}}); +createPlot(id=3, position={1130, 10, 550, 800}, y={"swiCleInp.u","swiCleInp.clr","swiCleInp.y"}, subPlot=1, range={0.0, 10.0, -3.5, 3.5}, grid=true, autoscale=false, colors={{238,46,47},{238,46,47},{238,46,47}}); +createPlot(id=3, position={1130, 10, 550, 800}, y={"swiCleInp1.u","swiCleInp1.clr","swiCleInp1.y"}, subPlot=2, range={0.0, 10.0, -3.5, 3.5}, grid=true, autoscale=false, colors={{238,46,47},{238,46,47},{238,46,47}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TrueDelay.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TrueDelay.mos new file mode 100644 index 0000000000..7858312534 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TrueDelay.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.TrueDelay", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="TrueDelay1"); +createPlot(id=1, subPlot = 1, position={15, 10, 1087, 700}, y={"onDelay0.u", "onDelay0.y", "onDelay1.y", "onDelay2.y", "onDelay3.y", "onDelay4.y", "onDelay5.y","onDelay6.y","onDelay7.y"}, range={0.0, 5.0, -0.1, 1.1}, grid=true, colors={{238,46,47}, {28,108,200}, {28,108,200}, {28,108,200}, {0,140,72}, {217,67,180}, {0,0,0}, {217,67,180}, {0,0,0}}); +createPlot(id=1, subPlot = 2, position={15, 10, 1087, 700}, y={"onDelay00.u", "onDelay00.y", "onDelay11.y", "onDelay22.y", "onDelay33.y", "onDelay44.y", "onDelay55.y","onDelay66.y","onDelay77.y"}, range={0.0, 5.0, -0.1, 1.1}, grid=true, colors={{238,46,47}, {28,108,200}, {28,108,200}, {28,108,200}, {0,140,72}, {217,67,180}, {0,0,0}, {217,67,180}, {0,0,0}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TrueFalseHold.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TrueFalseHold.mos new file mode 100644 index 0000000000..7d2ea6765b --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/TrueFalseHold.mos @@ -0,0 +1,10 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.TrueFalseHold", stopTime=7200.0, method="Cvode", tolerance=1e-06, resultFile="TrueFalseHold1"); +createPlot(id=1, position={15, 10, 817, 263}, y={"truFalHol.u", "truFalHol.y"}, range={0.0, 7500.0, -0.2, 1.2}, grid=true, colors={{238,46,47}, {28,108,200}}); +createPlot(id=2, position={18, 310, 810, 253}, y={"truFalHol1.u", "truFalHol1.y"}, range={0.0, 7500.0, -0.2, 1.2}, grid=true, colors={{28,108,200}, {238,46,47}}); +createPlot(id=3, position={20, 599, 815, 247}, y={"truFalHol2.u", "truFalHol2.y"}, range={0.0, 7500.0, -0.2, 1.2}, grid=true, colors={{28,108,200}, {238,46,47}}); +createPlot(id=4, position={25, 903, 810, 299}, y={"truFalHol3.u", "truFalHol3.y"}, range={0.0, 7500.0, -0.2, 1.2}, grid=true, colors={{28,108,200}, {238,46,47}}); +createPlot(id=5, position={872, 14, 707, 256}, y={"truFalHol4.u", "truFalHol4.y"}, range={0.0, 7500.0, -0.2, 1.2}, grid=true, colors={{28,108,200}, {238,46,47}}); +createPlot(id=6, position={869, 309, 714, 245}, y={"truFalHol5.u", "truFalHol5.y"}, range={0.0, 7500.0, -0.2, 1.2}, grid=true, colors={{28,108,200}, {238,46,47}}); +createPlot(id=7, position={879, 604, 720, 245}, y={"truFalHol6.u", "truFalHol6.y"}, range={0.0, 7500.0, -0.2, 1.2}, grid=true, colors={{28,108,200}, {238,46,47}}); +createPlot(id=8, position={874, 898, 750, 308}, y={"truFalHol7.u", "truFalHol7.y"}, range={0.0, 7500.0, -0.2, 1.2}, grid=true, colors={{28,108,200}, {238,46,47}}); +createPlot(id=9, position={25, 1245, 817, 266}, y={"truFalHol8.u", "truFalHol8.y"}, range={0.0, 7500.0, -0.2, 1.2}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/VariablePulse.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/VariablePulse.mos new file mode 100644 index 0000000000..34ce698da0 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/VariablePulse.mos @@ -0,0 +1,16 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.VariablePulse", stopTime=3600.0, method="Cvode", tolerance=1e-06, resultFile="VariablePulse"); +createPlot(id=1, position={10, 10, 900, 1400}, y={"fal.u"}, range={0.0, 3600.0, -2.0, 2.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s", displayUnits={"1"}); +createPlot(id=1, position={10, 10, 900, 1400}, y={"fal.y"}, range={0.0, 3600.0, -2.0, 2.0}, autoscale=false, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={10, 10, 900, 1400}, y={"tru.u"}, range={0.0, 3600.0, -2.0, 2.0}, autoscale=false, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s", displayUnits={"1"}); +createPlot(id=1, position={10, 10, 900, 1400}, y={"tru.y"}, range={0.0, 3600.0, -2.0, 2.0}, autoscale=false, grid=true, subPlot=4, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={10, 10, 900, 1400}, y={"conTru.u"}, range={0.0, 3600.0, -2.0, 2.0}, autoscale=false, grid=true, subPlot=5, colors={{28,108,200}}, timeUnit="s", displayUnits={"1"}); +createPlot(id=1, position={10, 10, 900, 1400}, y={"conTru.y"}, range={0.0, 3600.0, -2.0, 2.0}, autoscale=false, grid=true, subPlot=6, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={920, 10, 900, 1400}, y={"truFal.u"}, range={0.0, 3600.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s", displayUnits={"1"}); +createPlot(id=2, position={920, 10, 900, 1400}, y={"truFal.y"}, range={0.0, 3600.0, -0.5, 1.5}, autoscale=false, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={920, 10, 900, 1400}, y={"falTru.u"}, range={0.0, 3600.0, -0.5, 1.5}, autoscale=false, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s", displayUnits={"1"}); +createPlot(id=2, position={920, 10, 900, 1400}, y={"falTru.y"}, range={0.0, 3600.0, -0.5, 1.5}, autoscale=false, grid=true, subPlot=4, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={920, 10, 900, 1400}, y={"falTru1.u"}, range={0.0, 3600.0, -0.5, 1.5}, autoscale=false, grid=true, subPlot=5, colors={{28,108,200}}, timeUnit="s", displayUnits={"1"}); +createPlot(id=2, position={920, 10, 900, 1400}, y={"falTru1.y"}, range={0.0, 3600.0, -0.5, 1.5}, autoscale=false, grid=true, subPlot=6, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1833, 11, 884, 622}, y={"conChaWid.u"}, range={0.0, 4000.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s", displayUnits={"1"}); +createPlot(id=3, position={1833, 11, 884, 622}, y={"conChaWid.y"}, range={0.0, 4000.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/VariablePulseMinHold.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/VariablePulseMinHold.mos new file mode 100644 index 0000000000..3e3c088f29 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/VariablePulseMinHold.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.VariablePulseMinHold", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="VariablePulse"); +createPlot(id=1, position={21, 13, 1198, 950}, y={"conChaWid.u"}, range={0.0, 5.0, 0.48, 0.62}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s", displayUnits={"1"}); +createPlot(id=1, position={21, 13, 1198, 950}, y={"conChaWid.y"}, range={0.0, 5.0, -0.2, 1.2}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Xor.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Xor.mos new file mode 100644 index 0000000000..9d937c108a --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Logical/Validation/Xor.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Logical.Validation.Xor", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="Xor1"); +createPlot(id=1, position={15, 10, 900, 420}, y={"xor1.u1","xor1.u2","xor1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Psychrometrics/Validation/DewPoint_TDryBulPhi.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Psychrometrics/Validation/DewPoint_TDryBulPhi.mos new file mode 100644 index 0000000000..33b9a538ef --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Psychrometrics/Validation/DewPoint_TDryBulPhi.mos @@ -0,0 +1,7 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Psychrometrics.Validation.DewPoint_TDryBulPhi", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="DewPoint_TDryBulPhi1"); +createPlot(id=1, position={13, 9, 900, 1100}, y={"dewBulPhi.TDryBul"}, range={0.0, 1.0, 260.0, 340.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s", displayUnits={"K"}); +createPlot(id=1, position={13, 9, 900, 1100}, y={"dewBulPhi.phi"}, range={0.0, 1.0, -0.2, 1.2}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s", displayUnits={"1"}); +createPlot(id=1, position={13, 9, 900, 1100}, y={"dewBulPhi.TDewPoi"}, range={0.0, 1.0, 200.0, 320.0}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s", displayUnits={"K"}); +createPlot(id=2, position={927, 7, 860, 1100}, y={"dewBulPhi1.TDryBul"}, range={0.0, 1.0, 270.0, 320.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s", displayUnits={"K"}); +createPlot(id=2, position={927, 7, 860, 1100}, y={"dewBulPhi1.phi"}, range={0.0, 1.0, 0.4, 0.46}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s", displayUnits={"1"}); +createPlot(id=2, position={927, 7, 860, 1100}, y={"dewBulPhi1.TDewPoi"}, range={0.0, 1.0, 260.0, 300.0}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s", displayUnits={"K"}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Psychrometrics/Validation/SpecificEnthalpy_TDryBulPhi.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Psychrometrics/Validation/SpecificEnthalpy_TDryBulPhi.mos new file mode 100644 index 0000000000..96fde87f8d --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Psychrometrics/Validation/SpecificEnthalpy_TDryBulPhi.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Psychrometrics.Validation.SpecificEnthalpy_TDryBulPhi", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="SpecificEnthalpy_TDryBulPhi1"); +createPlot(id=1, position={15, 10, 1000, 700}, subPlot=1, y={"hBulPhi.h"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={15, 10, 1000, 700}, subPlot=2, y={"phi.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Psychrometrics/Validation/WetBulb_TDryBulPhi.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Psychrometrics/Validation/WetBulb_TDryBulPhi.mos new file mode 100644 index 0000000000..0963594408 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Psychrometrics/Validation/WetBulb_TDryBulPhi.mos @@ -0,0 +1,7 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Psychrometrics.Validation.WetBulb_TDryBulPhi", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="WetBulb_TDryBulPhi1"); +createPlot(id=1, position={9, 15, 820, 1106}, y={"wetBulPhi.TDryBul"}, range={0.0, 1.0, 260.0, 340.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s", displayUnits={"K"}); +createPlot(id=1, position={9, 15, 820, 1106}, y={"wetBulPhi.phi"}, range={0.0, 1.0, 0.0, 1.2}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={9, 15, 820, 1106}, y={"wetBulPhi.TWetBul"}, range={0.0, 1.0, 280.0, 305.0}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s", displayUnits={"K"}); +createPlot(id=2, position={839, 15, 758, 1104}, y={"wetBulPhi1.TDryBul"}, range={0.0, 1.0, 270.0, 320.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s", displayUnits={"K"}); +createPlot(id=2, position={839, 15, 758, 1104}, y={"wetBulPhi1.phi"}, range={0.0, 1.0, 0.5, 0.7}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={839, 15, 758, 1104}, y={"wetBulPhi1.TWetBul"}, range={0.0, 1.0, 260.0, 310.0}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s", displayUnits={"K"}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonths.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonths.mos new file mode 100644 index 0000000000..1469097f65 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonths.mos @@ -0,0 +1,7 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.CalendarTimeMonths", startTime=172800, tolerance=1e-6, stopTime=345600, method="Cvode", resultFile="CalendarTimeMonths1"); +createPlot(id=1, position={35, 30, 1021, 971}, y={"calTim.year"}, range={170000.0, 350000.0, 1800.0, 2400.0}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 158}, y={"calTim.month"}, range={170000.0, 350000.0, 0.8, 1.2}, grid=true, subPlot=2, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 159}, y={"calTim.day"}, range={170000.0, 350000.0, 2.0, 6.0}, grid=true, subPlot=3, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 158}, y={"calTim.weekDay"}, range={170000.0, 350000.0, 0.0, 10.0}, grid=true, subPlot=4, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 159}, y={"calTim.hour"}, range={170000.0, 350000.0, -10.0, 30.0}, grid=true, subPlot=5, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 158}, y={"calTim.minute"}, range={170000.0, 350000.0, -50.0, 100.0}, grid=true, subPlot=6, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsMinus.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsMinus.mos new file mode 100644 index 0000000000..99ef8f6efd --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsMinus.mos @@ -0,0 +1,7 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.CalendarTimeMonthsMinus", startTime=172799, tolerance=1e-6, stopTime=345599, method="Cvode", resultFile="CalendarTimeMonthsMinus1"); +createPlot(id=1, position={35, 30, 1021, 971}, y={"calTim.year"}, range={170000.0, 350000.0, 1800.0, 2400.0}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 158}, y={"calTim.month"}, range={170000.0, 350000.0, 0.8, 1.2}, grid=true, subPlot=2, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 159}, y={"calTim.day"}, range={170000.0, 350000.0, 2.0, 6.0}, grid=true, subPlot=3, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 158}, y={"calTim.weekDay"}, range={170000.0, 350000.0, 0.0, 10.0}, grid=true, subPlot=4, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 159}, y={"calTim.hour"}, range={170000.0, 350000.0, -10.0, 30.0}, grid=true, subPlot=5, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 158}, y={"calTim.minute"}, range={170000.0, 350000.0, -50.0, 100.0}, grid=true, subPlot=6, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsPlus.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsPlus.mos new file mode 100644 index 0000000000..c08fcea2c0 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CalendarTimeMonthsPlus.mos @@ -0,0 +1,7 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.CalendarTimeMonthsPlus", startTime=172801, tolerance=1e-6, stopTime=345601, method="Cvode", resultFile="CalendarTimeMonthsPlus1"); +createPlot(id=1, position={35, 30, 1021, 971}, y={"calTim.year"}, range={170000.0, 350000.0, 1800.0, 2400.0}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 158}, y={"calTim.month"}, range={170000.0, 350000.0, 0.8, 1.2}, grid=true, subPlot=2, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 159}, y={"calTim.day"}, range={170000.0, 350000.0, 2.0, 6.0}, grid=true, subPlot=3, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 158}, y={"calTim.weekDay"}, range={170000.0, 350000.0, 0.0, 10.0}, grid=true, subPlot=4, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 159}, y={"calTim.hour"}, range={170000.0, 350000.0, -10.0, 30.0}, grid=true, subPlot=5, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 1021, 158}, y={"calTim.minute"}, range={170000.0, 350000.0, -50.0, 100.0}, grid=true, subPlot=6, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CivilTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CivilTime.mos new file mode 100644 index 0000000000..e72d69b9bc --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/CivilTime.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.CivilTime", startTime=-1, tolerance=1e-6, stopTime=1, method="Cvode", resultFile="StandardTime1"); +createPlot(id=1, position={15, 10, 482, 336}, y={"civTim.y"}, range={-1.0, 1.0, -1.5, 1.5}, grid=true, leftTitleType=1, bottomTitleType=1, colors={{0,0,255}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Constant.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Constant.mos new file mode 100644 index 0000000000..f45a7589ad --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Constant.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.Constant", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="Constant1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"con.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Pulse.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Pulse.mos new file mode 100644 index 0000000000..f7eb901068 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Pulse.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.Pulse", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="Pulse1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"pulse.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Ramp.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Ramp.mos new file mode 100644 index 0000000000..5b168a75ab --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Ramp.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.Ramp", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="Ramp1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"ram.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Sin.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Sin.mos new file mode 100644 index 0000000000..eb71b31e1b --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/Sin.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.Sin", stopTime=130.0, method="Cvode", tolerance=1e-06, resultFile="Sin"); +createPlot(id=1, position={15, 10, 590, 420}, y={"sin.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/TimeTable.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/TimeTable.mos new file mode 100644 index 0000000000..b3df73b658 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/TimeTable.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.TimeTable", startTime=0, tolerance=1e-6, stopTime=172800, method="Cvode", resultFile="TimeTable1"); +createPlot(id=1, position={15, 10, 1936, 1264}, y={"timTabLin.y[1]", "timTabLinCon.y[1]", "timTabCon.y[1]"}, range={-1.6, 2.0, -0.5, 1.5}, grid=true, colors={{0,0,255}, {0,140,72}, {238,46,47}}, patterns={LinePattern.Solid, LinePattern.DashDot, LinePattern.Solid}, timeUnit="d"); +createPlot(id=1, position={15, 10, 1936, 418}, y={"timTabLinHol.y[1]"}, range={-1.6, 2.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{0,0,255}}, timeUnit="d"); +createPlot(id=1, position={15, 10, 1936, 418}, y={"timTabLinDer.y[1]"}, range={-1.6, 2.0, -4.0, 2.0}, grid=true, subPlot=3, colors={{0,0,255}}, timeUnit="d"); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/TimeTableNegativeStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/TimeTableNegativeStartTime.mos new file mode 100644 index 0000000000..f6d1f899a3 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Sources/Validation/TimeTableNegativeStartTime.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Sources.Validation.TimeTableNegativeStartTime", startTime=-129600, tolerance=1e-6, stopTime=172800, method="Cvode", resultFile="NegativeStartTime1"); +createPlot(id=1, position={15, 10, 1936, 1264}, y={"timTabLin.y[1]", "timTabLinCon.y[1]", "timTabCon.y[1]"}, range={-1.6, 2.0, -0.5, 1.5}, grid=true, colors={{0,0,255}, {0,140,72}, {238,46,47}}, patterns={LinePattern.Solid, LinePattern.DashDot, LinePattern.Solid}, timeUnit="d"); +createPlot(id=1, position={15, 10, 1936, 418}, y={"timTabLinHol.y[1]"}, range={-1.6, 2.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{0,0,255}}, timeUnit="d"); +createPlot(id=1, position={15, 10, 1936, 418}, y={"timTabLinDer.y[1]"}, range={-1.6, 2.0, -4.0, 2.0}, grid=true, subPlot=3, colors={{0,0,255}}, timeUnit="d"); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Abs.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Abs.mos new file mode 100644 index 0000000000..e3cd73b97f --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Abs.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Abs", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Abs1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"abs1.u", "abs1.y"}, range={0.0, 1.0, -1.2, 1.4}, grid=true, colors={{28,108,200}, {238,46,47}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Acos.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Acos.mos new file mode 100644 index 0000000000..d0360ff6e8 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Acos.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Acos", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Acos"); +createPlot(id=1, position={15, 10, 590, 420}, y={"arcCos.u", "arcCos.y"}, range={0.0, 1.0, -2, 2}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Add.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Add.mos new file mode 100644 index 0000000000..ada97a4b64 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Add.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Add", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Add1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"add1.u1", "add1.u2", "add1.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/AddParameter.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/AddParameter.mos new file mode 100644 index 0000000000..648a147861 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/AddParameter.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.AddParameter", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="AddParameter2"); +createPlot(id=1, position={15, 10, 590, 420}, y={"addPar.u", "addPar.y"}, range={0.0, 1.0, -4, 5}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Asin.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Asin.mos new file mode 100644 index 0000000000..d5ed4627b7 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Asin.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Asin", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Asin"); +createPlot(id=1, position={15, 10, 590, 420}, y={"arcSin.u", "arcSin.y"}, range={0.0, 1.0, -2, 2}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Atan.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Atan.mos new file mode 100644 index 0000000000..82cb3e86cb --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Atan.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Atan", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Atan1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"atan1.u", "atan1.y"}, range={0.0, 1.0, -1.2, 1.4}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Atan2.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Atan2.mos new file mode 100644 index 0000000000..ecef677da8 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Atan2.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Atan2", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Atan2_1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"atan2_1.u1", "atan2_1.u2", "atan2_1.y"}, range={0.0, 1.0, -2.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Average.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Average.mos new file mode 100644 index 0000000000..a3003efa7f --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Average.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Average", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Average1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"avg1.u1", "avg1.u2", "avg1.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Cos.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Cos.mos new file mode 100644 index 0000000000..98d92807e3 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Cos.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Cos", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Cos1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"cos1.u", "cos1.y"}, range={0.0, 1.0, -1.2, 1.4}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Derivative.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Derivative.mos new file mode 100644 index 0000000000..7a13e21734 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Derivative.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Derivative", stopTime=10, method="Cvode", tolerance=1e-07, resultFile="Derivative"); +createPlot(id=1, position={15, 15, 761, 628}, y={"der1.y", "intWitRes.u", "der2.y"}, range={0.0, 20.0, -3.0, 3.0}, grid=true, subPlot=102, colors={{238,46,47}, {28,108,200}, {0,140,72}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 761, 628}, y={"der1.T"}, range={0.0, 20.0, 0.0, 0.12}, grid=true, subPlot=101, colors={{28,108,200}}, timeUnit="s"); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Divide.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Divide.mos new file mode 100644 index 0000000000..14d8b733d4 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Divide.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Divide", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Divide1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"div1.u1", "div1.u2", "div1.y"}, range={0.0, 1.0, -2.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Exp.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Exp.mos new file mode 100644 index 0000000000..f795e6d050 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Exp.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Exp", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Exp1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"Exp1.u", "Exp1.y"}, range={0.0, 1.0, -1.0, 8.0}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Greater.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Greater.mos new file mode 100644 index 0000000000..9b8e2fda53 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Greater.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Greater", stopTime=10.0, method="Cvode", tolerance=1e-06, resultFile="Greater1"); +createPlot(id=1, position={15, 15, 742, 472}, y={"gre.u1", "gre.u2"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {238,46,47}}); +createPlot(id=1, position={15, 15, 742, 472}, y={"gre.y", "greHys.y"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/GreaterThreshold.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/GreaterThreshold.mos new file mode 100644 index 0000000000..52d1e9de5b --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/GreaterThreshold.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.GreaterThreshold", stopTime=10.0, method="Cvode", tolerance=1e-06, resultFile="GreaterThreshold1"); +createPlot(id=1, position={15, 15, 742, 472}, y={"gre.u", "gre.t"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {238,46,47}}); +createPlot(id=1, position={15, 15, 742, 472}, y={"gre.y", "greHys.y"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Hysteresis.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Hysteresis.mos new file mode 100644 index 0000000000..ffdd083d12 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Hysteresis.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Hysteresis", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="Hysteresis1"); +createPlot(id=1, position={15, 10, 900, 420}, subPlot=1, y={"hysteresis.u", "hysteresis.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); +createPlot(id=1, position={15, 10, 900, 420}, subPlot=2, y={"hysteresis1.u", "hysteresis1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); +createPlot(id=1, position={15, 10, 900, 420}, subPlot=3, y={"hysteresis2.u", "hysteresis2.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/IntegratorWithReset.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/IntegratorWithReset.mos new file mode 100644 index 0000000000..af4c7bc128 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/IntegratorWithReset.mos @@ -0,0 +1,6 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.IntegratorWithReset", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="IntegratorWithReset1"); +createPlot(id=1, position={35, 30, 586, 850}, y={"cons.y"}, range={0.0, 1.0, 8.8, 11.2}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={35, 30, 586, 850}, y={"booleanPulse.y"}, range={0.0, 1.0, -0.1, 1.1}, grid=true, subPlot=2, colors={{28,108,200}}); +createPlot(id=2, position={645, 30, 725, 850}, y={"intDef.y_start", "intDef.y", "intDef.y_reset_in"}, range={0.0, 1.0, -5.0, 15.0}, grid=true, colors={{28,108,200}, {0,140,72},{238,46,47}}); +createPlot(id=2, position={645, 30, 725, 850}, y={"intWitRes1.y_start", "intWitRes1.y", "intWitRes1.y_reset_in"}, range={0.0, 1.0, 1.0, 6.0}, grid=true, subPlot=2, colors={{28,108,200}, {0,140,72}, {238,46,47}}); +createPlot(id=2, position={645, 30, 725, 850}, y={"intWitRes2.y_start", "intWitRes2.y", "intWitRes2.y_reset_in"}, range={0.0, 1.0, -6.0, -1.0}, grid=true, subPlot=3, colors={{28,108,200}, {0,140,72}, {238,46,47}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Less.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Less.mos new file mode 100644 index 0000000000..94e8832bb3 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Less.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Less", stopTime=10.0, method="Cvode", tolerance=1e-06, resultFile="Less1"); +createPlot(id=1, position={15, 15, 742, 472}, y={"les.u1", "les.u2"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {238,46,47}}); +createPlot(id=1, position={15, 15, 742, 472}, y={"les.y", "lesHys.y"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/LessThreshold.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/LessThreshold.mos new file mode 100644 index 0000000000..b8063d99bc --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/LessThreshold.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.LessThreshold", stopTime=10.0, method="Cvode", tolerance=1e-06, resultFile="LessThreshold1"); +createPlot(id=1, position={15, 15, 742, 472}, y={"les.u", "les.t"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {238,46,47}}); +createPlot(id=1, position={15, 15, 742, 472}, y={"les.y", "lesHys.y"}, range={0.0, 5.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/LimitSlewRate.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/LimitSlewRate.mos new file mode 100644 index 0000000000..892c3c9410 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/LimitSlewRate.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.LimitSlewRate", method="Cvode", stopTime=480, tolerance=1e-06, resultFile="LimitSlewRate"); +createPlot(id=1, position={15, 10, 730, 420}, y={"sleRatLim.u", "sleRatLim.y"}, range={0.0, 5.0, -2.0, 2.0}, grid=true, colors={{238,46,47},{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Limiter.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Limiter.mos new file mode 100644 index 0000000000..571fa90d72 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Limiter.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Limiter", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Limiter1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"limiter1.u", "limiter1.y"}, range={0.0, 1.0, -1.0, 8.0}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Line.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Line.mos new file mode 100644 index 0000000000..649395e910 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Line.mos @@ -0,0 +1,5 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Line", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Line1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"line1.u", "line1.y"}, range={0.0, 1.0, -1.0, 8.0}, grid=true, colors={{238,46,47}, {28,108,200}}); +createPlot(id=1, position={15, 10, 590, 420}, y={"line1.u", "line1.y", "line2.y", "line3.y"}, range={0.0, 1.0, -1.0, 4.0}, grid=true, colors={{238,46,47}, {28,108,200}, {0,140,72}, {217,67,180}}); + + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Log.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Log.mos new file mode 100644 index 0000000000..ba9a0d72a0 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Log.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Log", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Log1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"log1.u", "log1.y"}, range={0.0, 1.0, -1.0, 8.0}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Log10.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Log10.mos new file mode 100644 index 0000000000..4995515cf9 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Log10.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Log10", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Log10_1"); + +createPlot(id=1, position={15, 10, 590, 420}, y={"log10_1.u", "log10_1.y"}, range={0.0, 1.0, -1.0, 8.0}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MatrixGain.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MatrixGain.mos new file mode 100644 index 0000000000..25ee2b5ec3 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MatrixGain.mos @@ -0,0 +1,7 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.MatrixGain", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="MatrixGain"); + +createPlot(id=1, position={10, 15, 1000, 750}, subPlot=1, y={"matGai.y[1]", "matGai.y[2]", "matGai.y[3]"}, range={0.0, 0.05, -0.2, 0.6}, grid=true, colors={{28,108,200},{238,46,47}, {0,0,127}}); +createPlot(id=1, position={10, 15, 1000, 750}, subPlot=2, y={"matGai.u[1]", "matGai.u[2]"}, range={0.0, 0.05, -0.2, 0.6}, grid=true, colors={{28,108,200},{0,140,72}}); +createPlot(id=1, position={10, 15, 1000, 750}, subPlot=3, y={"matGai1.y[1]", "matGai1.y[2]"}, range={0.0, 0.05, -0.2, 0.6}, grid=true, colors={{28,108,200},{238,46,47}}); +createPlot(id=1, position={10, 15, 1000, 750}, subPlot=4, y={"matGai1.u[1]", "matGai1.u[2]"}, range={0.0, 0.05, -0.2, 0.6}, grid=true, colors={{28,108,200},{0,140,72}}); + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MatrixMax.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MatrixMax.mos new file mode 100644 index 0000000000..a7a53a10dc --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MatrixMax.mos @@ -0,0 +1,5 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.MatrixMax", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="MatrixMax"); + +createPlot(id=1, position={10, 15, 1000, 750}, subPlot=1, y={"matMax.y[1]", "matMax.y[2]", "matMax.y[3]"}, range={0.0, 0.05, -0.2, 0.6}, grid=true, colors={{28,108,200},{238,46,47}, {0,0,127}}); +createPlot(id=1, position={10, 15, 1000, 750}, subPlot=2, y={"matMax1.y[1]", "matMax1.y[2]"}, range={0.0, 0.05, -0.2, 0.6}, grid=true, colors={{28,108,200},{238,46,47}}); +createPlot(id=1, position={10, 15, 1000, 750}, subPlot=3, y={"matMax2.y[1]", "matMax2.y[2]"}, range={0.0, 0.05, -0.2, 0.6}, grid=true, colors={{28,108,200},{238,46,47}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MatrixMin.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MatrixMin.mos new file mode 100644 index 0000000000..4cb7287592 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MatrixMin.mos @@ -0,0 +1,5 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.MatrixMin", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="MatrixMin"); + +createPlot(id=1, position={10, 15, 1000, 750}, subPlot=1, y={"matMin.y[1]", "matMin.y[2]", "matMin.y[3]"}, range={0.0, 0.05, -0.2, 0.6}, grid=true, colors={{28,108,200},{238,46,47}, {0,0,127}}); +createPlot(id=1, position={10, 15, 1000, 750}, subPlot=2, y={"matMin1.y[1]", "matMin1.y[2]", "matMin1.y[3]"}, range={0.0, 0.05, -0.2, 0.6}, grid=true, colors={{28,108,200},{238,46,47}, {0,0,127}}); +createPlot(id=1, position={10, 15, 1000, 750}, subPlot=3, y={"matMin2.y[1]", "matMin2.y[2]"}, range={0.0, 0.05, -0.2, 0.6}, grid=true, colors={{28,108,200},{238,46,47}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Max.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Max.mos new file mode 100644 index 0000000000..9ec941c843 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Max.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Max", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Max1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"max1.u1", "max1.u2", "max1.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Min.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Min.mos new file mode 100644 index 0000000000..c4ac352c17 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Min.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Min", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Min1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"min1.u1", "min1.u2", "min1.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Modulo.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Modulo.mos new file mode 100644 index 0000000000..168e60dcb2 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Modulo.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Modulo", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Modulo1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"mod1.u1", "mod1.u2", "mod1.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MovingAverage.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MovingAverage.mos new file mode 100644 index 0000000000..f9024191fa --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MovingAverage.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.MovingAverage", stopTime=900.0, method="Cvode", tolerance=1e-06, resultFile="MovingAverage1"); +createPlot(id=1, position={15, 10, 1300, 400}, subPlot=1, y={"sinInpNoDel.y","movAve1.y","movAve2.y","movAve3.y","movAve4.y"}, range={0.0, 5.0, 0, 1}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200},{0,140,72},{28,108,200}}); +createPlot(id=2, position={15, 430, 600, 400}, subPlot=1, y={"sinInp50sDel.y","movAve6.y","movAve7.y"}, range={0.0, 5.0, 0, 1}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200}}); +createPlot(id=3, position={640, 430, 600, 400}, subPlot=1, y={"sinInp100sDel.y","movAve8.y","movAve9.y"}, range={0.0, 5.0, 0, 1}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MovingAverage_nonZeroStart.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MovingAverage_nonZeroStart.mos new file mode 100644 index 0000000000..b3682de0fb --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MovingAverage_nonZeroStart.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.MovingAverage_nonZeroStart", startTime=100.0, stopTime=900.0, method="Cvode", tolerance=1e-06, resultFile="MovingAverage_nonZeroStart1"); +createPlot(id=1, position={15, 10, 1300, 400}, subPlot=1, y={"sinInpNoDel.y","movAve1.y","movAve2.y","movAve3.y","movAve4.y"}, range={0.0, 5.0, 0, 1}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200},{0,140,72},{28,108,200}}); +createPlot(id=2, position={15, 430, 600, 400}, subPlot=1, y={"sinInp50sDel.y","movAve6.y","movAve7.y"}, range={0.0, 5.0, 0, 1}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200}}); +createPlot(id=3, position={640, 430, 600, 400}, subPlot=1, y={"sinInp100sDel.y","movAve8.y","movAve9.y"}, range={0.0, 5.0, 0, 1}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiMax.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiMax.mos new file mode 100644 index 0000000000..61a44a012b --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiMax.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.MultiMax", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="MultiMax1"); +createPlot(id=1, position={15, 10, 600, 420}, y={"con[1].y","con[2].y","con[3].y","con[4].y","con[5].y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200},{0,140,72},{28,108,200}}); +createPlot(id=2, position={630, 10, 600, 420}, y={"maxVal.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiMin.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiMin.mos new file mode 100644 index 0000000000..d4ea7aa7a7 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiMin.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.MultiMin", stopTime=1.0, method="Cvode", tolerance=1e-06, resultFile="MultiMin1"); +createPlot(id=1, position={15, 10, 600, 420}, y={"con[1].y","con[2].y","con[3].y","con[4].y","con[5].y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200},{0,140,72},{28,108,200}}); +createPlot(id=2, position={630, 10, 600, 420}, y={"minVal.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiSum.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiSum.mos new file mode 100644 index 0000000000..eb7d759435 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiSum.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.MultiSum", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="MultiSum_1"); +createPlot(id=1, position={15, 10, 600, 350}, y={"mulSum_1.u[1]", "mulSum_1.y"}, range={0.0, 1.0, -5, 6}, grid=true, colors={{0,140,72}, {28,108,200}}); +createPlot(id=2, position={15, 400, 600, 350}, y={"mulSum_2.u[1]","mulSum_2.u[2]", "mulSum_2.y"}, range={0.0, 1.0, -5, 6}, grid=true, colors={{0,140,72},{238,46,47},{28,108,200}}); +createPlot(id=3, position={630, 10, 600, 750}, y={"mulSum_5.u[1]", "mulSum_5.u[2]", "mulSum_5.u[3]", "mulSum_5.u[4]", "mulSum_5.u[5]","mulSum_5.y"}, range={0.0, 1.0, -5, 6}, grid=true, colors={{0,140,72}, {238,46,47}, {217,67,180}, {238,46,47}, {217,67,180},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Multiply.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Multiply.mos new file mode 100644 index 0000000000..d6cb278be8 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Multiply.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Multiply", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Multiply1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"product1.u1", "product1.u2", "product1.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiplyByParameter.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiplyByParameter.mos new file mode 100644 index 0000000000..a1dad689da --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/MultiplyByParameter.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.MultiplyByParameter", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Gain1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"gain1.u", "gain1.y"}, range={0.0, 1.0, -1.0, 8.0}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PID.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PID.mos new file mode 100644 index 0000000000..ed8dfef357 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PID.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.PID", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="PID1"); +createPlot(id=1, position={15, 10, 900, 700}, y={"limPID.u_s", "limPID.u_m"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, colors={{238,46,47}, {0,140,72}}); +createPlot(id=1, position={15, 10, 900, 700}, y={"limPID.u_s", "limPID.y", "noLimPID.y"}, range={0.0, 1.0, -20.0, 10.0}, grid=true, subPlot=102, colors={{238,46,47}, {0,140,72}, {217,67,180}}); +createPlot(id=1, position={15, 10, 900, 700}, y={"limP.y", "limPI.y", "limPD.y"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=103, colors={{238,46,47}, {0,140,72}, {217,67,180}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDInitialDerivativeOutput.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDInitialDerivativeOutput.mos new file mode 100644 index 0000000000..3bb35f8a0c --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDInitialDerivativeOutput.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.PIDInitialDerivativeOutput", tolerance=1e-06, stopTime=0.2, resultFile="PIDInitialDerivativeOutput"); +createPlot(id=1, position={31, 124, 592, 372}, y={"limPID.y", "limPD.y", "limPID.D.y", "limPD.D.y"}, range={0.0, 1.0, -0.2, 0.6}, grid=true, colors={{28,108,200}, {238,46,47}, {0,140,72}, {0,0,0}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDInitialState.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDInitialState.mos new file mode 100644 index 0000000000..81d0c5059b --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDInitialState.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.PIDInitialState", tolerance=1e-06, resultFile="PIDInitialState"); +createPlot(id=1, position={35, 35, 926, 623}, y={"limPID.I.y", "limPID.D.y", "limPI.I.y", "limPID.D.u"}, range={0.0, 1.0, -0.6, 0.5}, grid=true, colors={{28,108,200}, {238,46,47}, {0,140,72}, {217,67,180}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDScale.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDScale.mos new file mode 100644 index 0000000000..90094594bf --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDScale.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.PIDScale", method="CVode", stopTime=100, tolerance=1e-06, resultFile="PIDScale"); +createPlot(id=2, position={577, 61, 1112, 827}, y={"pidSca.y", "pidNoSca.y"}, range={0.0, 100.0, -1.5, 1.5}, grid=true, colors={{28,108,200}, {238,46,47}}); +createPlot(id=2, position={577, 61, 1112, 827}, y={"pla1.y", "pla2.y", "pidSca.u_s"}, range={0.0, 100.0, -500.0, 1500.0}, grid=true, subPlot=102, colors={{28,108,200}, {238,46,47}, {0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDWithReset.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDWithReset.mos new file mode 100644 index 0000000000..dfed06121a --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDWithReset.mos @@ -0,0 +1,5 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.PIDWithReset", stopTime=10, method="Cvode", tolerance=1e-06, resultFile="CDL_PIDWithReset"); +createPlot(id=1, position={35, 35, 800, 1027}, y={"limPIDPar.u_s", "limPIDPar.u_m", "limPIDPar.y"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, colors={{28,108,200}, {238,46,47}, {0,140,72}}); +createPlot(id=1, position={35, 35, 800, 1027}, y={"limPIDInp.u_s", "limPIDInp.u_m", "limPIDInp.y"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}, {0,140,72}}); +createPlot(id=1, position={35, 35, 800, 1027}, y={"limPIPar.u_s", "limPIPar.u_m", "limPIPar.y"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=3, colors={{28,108,200}, {238,46,47}, {0,140,72}}); +createPlot(id=1, position={35, 35, 800, 1027}, y={"limPIInp.u_s", "limPIInp.u_m", "limPIInp.y"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=4, colors={{28,108,200}, {238,46,47}, {0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDWithResetScale.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDWithResetScale.mos new file mode 100644 index 0000000000..2da903f1f5 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/PIDWithResetScale.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.PIDWithResetScale", method="CVode", stopTime=100, tolerance=1e-06, resultFile="PIDWithResetScale"); +createPlot(id=2, position={577, 61, 1454, 979}, y={"pidSca.y", "pidNoSca.y"}, range={0.0, 100.0, -2.0, 2.0}, grid=true, colors={{28,108,200}, {238,46,47}}); +createPlot(id=2, position={577, 61, 1454, 979}, y={"pla1.y", "pla2.y", "pidSca.u_s"}, range={0.0, 100.0, -500.0, 1500.0}, grid=true, subPlot=102, colors={{28,108,200}, {238,46,47}, {0,140,72}}); +createPlot(id=2, position={577, 61, 1454, 979}, y={"pidSca.trigger"}, range={0.0, 100.0, -0.5, 1.5}, grid=true, subPlot=103, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Ramp.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Ramp.mos new file mode 100644 index 0000000000..60c8c6da60 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Ramp.mos @@ -0,0 +1,8 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Ramp", method="Cvode", tolerance=1e-06, stopTime=10.0, resultFile="rampUpDown"); +createPlot(id=1, position={15, 15, 1034, 1198}, y={"ramUp.u", "ramUp.y", "ramUp1.y"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}, {238,46,47}, {0,140,72}}, timeUnit="s", displayUnits={"1", "1", "1"}); +createPlot(id=1, position={15, 15, 1034, 1198}, y={"ramUp.active"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 1034, 1198}, y={"ramUpDow.u", "ramUpDow.y"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=3, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"1", "1"}); +createPlot(id=1, position={15, 15, 1034, 1198}, y={"ramUpDow.active"}, range={0.0, 10.0, -0.5, 1.5}, grid=true, subPlot=4, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={1059, 15, 1002, 1200}, y={"ramUpDow1.u", "ramUpDow1.y"}, range={0.0, 10.0, -0.1, 1.1}, grid=true, subPlot=1, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"1", "1"}); +createPlot(id=2, position={1059, 15, 1002, 1200}, y={"ramUpDow1.active"}, range={0.0, 10.0, -0.1, 1.1}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Round.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Round.mos new file mode 100644 index 0000000000..5376e81072 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Round.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Round", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Round1"); +createPlot(id=1, position={15, 10, 1475, 1167}, y={"round1.u", "round1.y"}, range={0.0, 1.0, -5.0, 5.0}, grid=true, colors={{238,46,47}, {28,108,200}}); +createPlot(id=1, position={15, 10, 1475, 385}, y={"round2.u", "round2.y"}, range={0.0, 1.0, -0.5, 0.5}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}}); +createPlot(id=1, position={15, 10, 1475, 385}, y={"round3.u", "round3.y"}, range={0.0, 1.0, -50.0, 50.0}, grid=true, subPlot=3, colors={{28,108,200}, {238,46,47}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Sin.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Sin.mos new file mode 100644 index 0000000000..fe76afad53 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Sin.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Sin", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Sin1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"sin1.u", "sin1.y"}, range={0.0, 1.0, -2, 7.0}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Sort.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Sort.mos new file mode 100644 index 0000000000..42334ec0d9 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Sort.mos @@ -0,0 +1,8 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Sort", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Sort1"); +createPlot(id=1, position={24, 14, 959, 865}, y={"sorAsc.u[1]", "sorAsc.u[2]", "sorAsc.u[3]", "sorAsc.u[4]", "sorAsc.u[5]"}, range={0.0, 1.0, -4.0, 6.0}, grid=true, subPlot=101, colors={{28,108,200}, {238,46,47}, {0,140,72}, {217,67,180}, {0,0,0}}, timeUnit="s"); +createPlot(id=1, position={24, 14, 959, 865}, y={"sorAsc.y[1]", "sorAsc.y[2]", "sorAsc.y[3]", "sorAsc.y[4]", "sorAsc.y[5]"}, range={0.0, 1.0, -4.0, 6.0}, grid=true, subPlot=102, colors={{28,108,200}, {238,46,47}, {0,140,72}, {217,67,180}, {0,0,0}}, timeUnit="s"); +createPlot(id=1, position={24, 14, 959, 865}, y={"sorDes.y[1]", "sorDes.y[2]", "sorDes.y[3]", "sorDes.y[4]", "sorDes.y[5]"}, range={0.0, 1.0, -6.0, 6.0}, grid=true, subPlot=103, colors={{28,108,200}, {238,46,47}, {0,140,72}, {217,67,180}, {0,0,0}}, timeUnit="s"); +createPlot(id=2, position={1001, 330, 1147, 549}, y={"sorAsc.yIdx[1]", "sorAsc.yIdx[2]", "sorAsc.yIdx[3]", "sorAsc.yIdx[4]", "sorAsc.yIdx[5]"}, range={0.0, 1.0, 0.0, 6.0}, grid=true, subPlot=101, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=2, position={1001, 330, 1147, 549}, y={"sorDes.yIdx[1]", "sorDes.yIdx[2]", "sorDes.yIdx[3]", "sorDes.yIdx[4]", "sorDes.yIdx[5]"}, range={0.0, 1.0, 0.0, 6.0}, grid=true, subPlot=102, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}, timeUnit="s"); + + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Sqrt.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Sqrt.mos new file mode 100644 index 0000000000..21d064bb5d --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Sqrt.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Sqrt", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Sqrt1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"sqrt1.u", "sqrt1.y"}, range={0.0, 1.0, -1.0, 8.0}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Subtract.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Subtract.mos new file mode 100644 index 0000000000..1327da28af --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Subtract.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Subtract", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="sub1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"sub.u1", "sub.u2", "sub.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Switch.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Switch.mos new file mode 100644 index 0000000000..138dbf3c80 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Switch.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Switch", stopTime=5.0, method="Cvode", tolerance=1e-06, resultFile="ConSwitch"); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=1, y={"switch1.u1","switch1.u2","switch1.u3"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200}}); +createPlot(id=1, position={15, 10, 1000, 600}, subPlot=2, y={"switch1.y"}, range={0.0, 5.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Tan.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Tan.mos new file mode 100644 index 0000000000..d3ddb4e1cb --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Reals/Validation/Tan.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Reals.Validation.Tan", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Tan1"); +createPlot(id=1, position={15, 10, 590, 420}, y={"tan1.u", "tan1.y"}, range={0.0, 1.0, -15, 15}, grid=true, colors={{238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanExtractSignal.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanExtractSignal.mos new file mode 100644 index 0000000000..1b486e16f8 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanExtractSignal.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.BooleanExtractSignal", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="BooleanExtractSignal"); +createPlot(id=1, position={15, 15, 704, 972}, y={"extBooSig.u[1]", "extBooSig.u[2]", "extBooSig.u[3]", "extBooSig.u[4]"}, range={0.0, 1.0, -0.1, 1.1}, grid=true, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=2, position={729, 17, 658, 980}, y={"extBooSig.y[1]", "extBooSig.y[2]", "extBooSig.y[3]"}, range={0.0, 1.0, -0.1, 1.1}, grid=true, colors={{28,108,200}, {28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1407, 17, 744, 982}, y={"extBooSig1.y[1]", "extBooSig1.y[2]", "extBooSig1.y[3]", "extBooSig1.y[4]", "extBooSig1.y[5]"}, range={0.0, 1.0, -0.1, 1.1}, grid=true, colors={{28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}, {28,108,200}}, timeUnit="s"); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanExtractor.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanExtractor.mos new file mode 100644 index 0000000000..ad9839d4e3 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanExtractor.mos @@ -0,0 +1,17 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.BooleanExtractor", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="BooleanExtractor"); + +createPlot(id=1, position={15, 15, 730, 1276}, y={"extIndBoo.u[1]"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 730, 1276}, y={"extIndBoo.u[2]"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 730, 1276}, y={"extIndBoo.u[3]"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 730, 1276}, y={"extIndBoo.u[4]"}, range={0.0, 1.0, 3.0, 5.0}, grid=true, subPlot=4, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={757, 15, 678, 400}, y={"extIndBoo.index"}, range={0.0, 1.0, 1.5, 2.5}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={757, 15, 678, 400}, y={"extIndBoo.y"}, range={0.0, 1.0, -1.0, 2.0}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={757, 449, 686, 406}, y={"extIndBoo1.index"}, range={0.0, 1.0, 5.0, 7.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={757, 449, 686, 406}, y={"extIndBoo1.y"}, range={0.0, 1.0, 3.5, 4.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=4, position={755, 897, 694, 394}, y={"extIndBoo2.index"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=4, position={755, 897, 694, 394}, y={"extIndBoo2.y"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=5, position={1455, 19, 832, 660}, y={"extIndBoo3.index"}, range={0.0, 1.0, -2.0, 3.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=5, position={1455, 19, 832, 660}, y={"extIndBoo3.y"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=6, position={1459, 709, 830, 578}, y={"extIndBoo4.index"}, range={0.0, 1.0, -1.0, 4.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=6, position={1459, 709, 830, 578}, y={"extIndBoo4.y"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanScalarReplicator.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanScalarReplicator.mos new file mode 100644 index 0000000000..98082d08dd --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanScalarReplicator.mos @@ -0,0 +1,5 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.BooleanScalarReplicator", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="BooleanScalarReplicator"); +createPlot(id=1, position={15, 10, 500, 420}, y={"booRep.u"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=1, y={"booRep.y[1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=2, y={"booRep.y[2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=3, y={"booRep.y[3]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mos new file mode 100644 index 0000000000..acc52ac599 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.BooleanVectorFilter", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="BooleanVectorFilter"); +createPlot(id=1, position={533, 39, 592, 372}, y={"booFil.u[1]", "booFil.u[2]", "booFil.u[3]"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, colors={{28,108,200}, {28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=1, position={533, 39, 592, 372}, y={"booFil.y[1]", "booFil.y[2]"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, subPlot=102, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mos new file mode 100644 index 0000000000..fe3e803d24 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mos @@ -0,0 +1,5 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.BooleanVectorReplicator", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="BooleanVectorReplicator"); +createPlot(id=1, position={15, 10, 500, 420}, y={"booRep.u[1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=1, y={"booRep.y[1, 1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=2, y={"booRep.y[2, 2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=3, y={"booRep.y[3, 2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerExtractSignal.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerExtractSignal.mos new file mode 100644 index 0000000000..2ec496a269 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerExtractSignal.mos @@ -0,0 +1,14 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.IntegerExtractSignal", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="IntegerExtractSignal"); +createPlot(id=1, position={15, 15, 802, 1132}, y={"extIntSig.u[1]"}, range={0.0, 1.0, 0.8, 1.2}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 802, 1132}, y={"extIntSig.u[2]"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 802, 1132}, y={"extIntSig.u[3]"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 802, 1132}, y={"extIntSig.u[4]"}, range={0.0, 1.0, 3.5, 4.5}, grid=true, subPlot=4, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={827, 17, 744, 1134}, y={"extIntSig.y[1]"}, range={0.0, 1.0, -1.5, 1.5}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={827, 17, 744, 1134}, y={"extIntSig.y[2]"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={827, 17, 744, 1134}, y={"extIntSig.y[3]"}, range={0.0, 1.0, 3.4, 4.6}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1583, 17, 710, 1132}, y={"extIntSig1.y[1]"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1583, 17, 710, 1132}, y={"extIntSig1.y[2]"}, range={0.0, 1.0, -1.0, 2.0}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1583, 17, 710, 1132}, y={"extIntSig1.y[3]"}, range={0.0, 1.0, 3.5, 4.5}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1583, 17, 710, 1132}, y={"extIntSig1.y[4]"}, range={0.0, 1.0, -1.0, 2.0}, grid=true, subPlot=4, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1583, 17, 710, 1132}, y={"extIntSig1.y[5]"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=5, colors={{28,108,200}}, timeUnit="s"); + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerExtractor.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerExtractor.mos new file mode 100644 index 0000000000..1dc36c3099 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerExtractor.mos @@ -0,0 +1,16 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.IntegerExtractor", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="IntegerExtractor"); +createPlot(id=1, position={15, 15, 730, 1276}, y={"extIndInt.u[1]"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 730, 1276}, y={"extIndInt.u[2]"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 730, 1276}, y={"extIndInt.u[3]"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 730, 1276}, y={"extIndInt.u[4]"}, range={0.0, 1.0, 3.0, 5.0}, grid=true, subPlot=4, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={757, 15, 678, 400}, y={"extIndInt.index"}, range={0.0, 1.0, 1.5, 2.5}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={757, 15, 678, 400}, y={"extIndInt.y"}, range={0.0, 1.0, -1.0, 2.0}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={757, 449, 686, 406}, y={"extIndInt1.index"}, range={0.0, 1.0, 5.0, 7.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={757, 449, 686, 406}, y={"extIndInt1.y"}, range={0.0, 1.0, 3.5, 4.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=4, position={755, 897, 694, 394}, y={"extIndInt2.index"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=4, position={755, 897, 694, 394}, y={"extIndInt2.y"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=5, position={1455, 19, 832, 660}, y={"extIndInt3.index"}, range={0.0, 1.0, -2.0, 3.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=5, position={1455, 19, 832, 660}, y={"extIndInt3.y"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=6, position={1459, 709, 830, 578}, y={"extIndInt4.index"}, range={0.0, 1.0, -1.0, 4.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=6, position={1459, 709, 830, 578}, y={"extIndInt4.y"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerScalarReplicator.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerScalarReplicator.mos new file mode 100644 index 0000000000..9de9fefbad --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerScalarReplicator.mos @@ -0,0 +1,6 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.IntegerScalarReplicator", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="IntegerScalarReplicator"); +createPlot(id=1, position={15, 10, 500, 750}, subPlot=1, y={"ram.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={15, 10, 500, 750}, subPlot=2, y={"reaToInt.y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=1, y={"intRep.y[1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=2, y={"intRep.y[2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=3, y={"intRep.y[3]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mos new file mode 100644 index 0000000000..9070f44105 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.IntegerVectorFilter", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="IntegerVectorFilter"); +createPlot(id=1, position={144, 30, 592, 372}, y={"intFil.u[1]", "intFil.u[2]", "intFil.u[3]"}, range={0.0, 1.0, 0.0, 4.0}, grid=true, colors={{28,108,200}, {28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=1, position={144, 30, 592, 372}, y={"intFil.y[1]", "intFil.y[2]"}, range={0.0, 1.0, 0.0, 4.0}, grid=true, subPlot=102, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mos new file mode 100644 index 0000000000..ce3d08d903 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mos @@ -0,0 +1,6 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.IntegerVectorReplicator", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="IntegerVectorReplicator"); +createPlot(id=1, position={15, 10, 500, 750}, subPlot=1, y={"ram[1].y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={15, 10, 500, 750}, subPlot=2, y={"reaToInt[1].y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=1, y={"intRep.y[1, 1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=2, y={"intRep.y[2, 2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=3, y={"intRep.y[3, 2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealExtractSignal.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealExtractSignal.mos new file mode 100644 index 0000000000..f5c9022353 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealExtractSignal.mos @@ -0,0 +1,16 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.RealExtractSignal", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="ExtractSignal1"); +createPlot(id=1, position={15, 10, 592, 1106}, y={"extSig.u[1]"}, range={0.0, 1.0, -5.0, 5.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 10, 592, 1106}, y={"extSig.u[2]"}, range={0.0, 1.0, -1.0, 1.0}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 10, 592, 1106}, y={"extSig.u[3]"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 10, 592, 1106}, y={"extSig.u[4]"}, range={0.0, 1.0, -5.0, 5.0}, grid=true, subPlot=4, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 10, 592, 1106}, y={"extSig.u[5]"}, range={0.0, 1.0, -5.0, 5.0}, grid=true, subPlot=5, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={622, 12, 574, 1106}, y={"extSig.y[1]"}, range={0.0, 1.0, -4.0, 4.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={622, 12, 574, 1106}, y={"extSig.y[2]"}, range={0.0, 1.0, -0.2, 0.6}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={622, 12, 574, 1106}, y={"extSig.y[3]"}, range={0.0, 1.0, -3.0, 2.0}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1207, 13, 660, 1104}, y={"extSig1.y[1]"}, range={0.0, 1.0, -5.0, 5.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1207, 13, 660, 1104}, y={"extSig1.y[2]"}, range={0.0, 1.0, -0.5, 1.0}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1207, 13, 660, 1104}, y={"extSig1.y[3]"}, range={0.0, 1.0, -5.0, 5.0}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1207, 13, 660, 1104}, y={"extSig1.y[4]"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=4, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1207, 13, 660, 1104}, y={"extSig1.y[5]"}, range={0.0, 1.0, -5.0, 5.0}, grid=true, subPlot=5, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={1207, 13, 660, 1104}, y={"extSig1.y[6]"}, range={0.0, 1.0, -1.0, 1.0}, grid=true, subPlot=6, colors={{28,108,200}}, timeUnit="s"); + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealExtractor.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealExtractor.mos new file mode 100644 index 0000000000..a76f4cbe0c --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealExtractor.mos @@ -0,0 +1,16 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.RealExtractor", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="ExtractIndSignal"); +createPlot(id=1, position={15, 15, 730, 1276}, y={"extIndSig.u[1]"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 730, 1276}, y={"extIndSig.u[2]"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 730, 1276}, y={"extIndSig.u[3]"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=3, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=1, position={15, 15, 730, 1276}, y={"extIndSig.u[4]"}, range={0.0, 1.0, 3.0, 5.0}, grid=true, subPlot=4, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={757, 15, 678, 400}, y={"extIndSig.index"}, range={0.0, 1.0, 1.5, 2.5}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=2, position={757, 15, 678, 400}, y={"extIndSig.y"}, range={0.0, 1.0, -1.0, 2.0}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={757, 449, 686, 406}, y={"extIndSig1.index"}, range={0.0, 1.0, 5.0, 7.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={757, 449, 686, 406}, y={"extIndSig1.y"}, range={0.0, 1.0, 3.5, 4.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=4, position={755, 897, 694, 394}, y={"extIndSig2.index"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=4, position={755, 897, 694, 394}, y={"extIndSig2.y"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=5, position={1455, 19, 832, 660}, y={"extIndSig3.index"}, range={0.0, 1.0, -2.0, 3.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=5, position={1455, 19, 832, 660}, y={"extIndSig3.y"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=6, position={1459, 709, 830, 578}, y={"extIndSig4.index"}, range={0.0, 1.0, -1.0, 4.0}, grid=true, subPlot=1, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=6, position={1459, 709, 830, 578}, y={"extIndSig4.y"}, range={0.0, 1.0, -2.0, 2.0}, grid=true, subPlot=2, colors={{28,108,200}}, timeUnit="s"); + diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealScalarReplicator.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealScalarReplicator.mos new file mode 100644 index 0000000000..3f4f56eb09 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealScalarReplicator.mos @@ -0,0 +1,5 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.RealScalarReplicator", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="RealScalarReplicator"); +createPlot(id=1, position={15, 10, 500, 420}, y={"reaRep.u"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=1, y={"reaRep.y[1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=2, y={"reaRep.y[2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=3, y={"reaRep.y[3]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mos new file mode 100644 index 0000000000..cc4c72e85e --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.RealVectorFilter", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="RealVectorFilter"); +createPlot(id=1, position={35, 35, 592, 372}, y={"reaFil.u[1]", "reaFil.u[2]", "reaFil.u[3]"}, range={0.0, 1.0, 0.0, 4.0}, grid=true, colors={{28,108,200}, {238,46,47}, {0,140,72}}, timeUnit="s"); +createPlot(id=1, position={35, 35, 592, 372}, y={"reaFil.y[1]", "reaFil.y[2]"}, range={0.0, 1.0, 0.0, 4.0}, grid=true, subPlot=102, colors={{28,108,200}, {238,46,47}}, timeUnit="s"); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mos new file mode 100644 index 0000000000..83416d24b1 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mos @@ -0,0 +1,5 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Routing.Validation.RealVectorReplicator", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="RealVectorReplicator"); +createPlot(id=1, position={15, 10, 500, 420}, y={"reaRep.u[1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=1, y={"reaRep.y[1, 1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=2, y={"reaRep.y[2, 2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=3, y={"reaRep.y[3, 2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/Assert.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/Assert.mos new file mode 100644 index 0000000000..3b1bbdd00c --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/Assert.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Utilities.Validation.Assert", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="Assert"); +createPlot(id=1, position={15, 10, 590, 420}, y={"assert.u"}, range={0.0, 1.0, -2.5, 3.5}, grid=true, colors={{0,140,72}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/SunRiseSet.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/SunRiseSet.mos new file mode 100644 index 0000000000..73ddb8e31b --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/SunRiseSet.mos @@ -0,0 +1,14 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Utilities.Validation.SunRiseSet", + method="CVode", tolerance=1e-06, stopTime=3.1536e+007, numberOfIntervals=5000, resultFile="SunRiseSet"); +createPlot(id=1, + position={15, 10, 590, 600}, subPlot=1, y={"sunRiseSetArctic.nextSunRise", "sunRiseSetArctic.nextSunSet","sunRiseSetArctic.sunUp"}, + range={0.0, 370, -2, 24}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); +createPlot(id=1, + position={15, 10, 590, 600}, subPlot=2, y={"sunRiseSetSf.nextSunRise", "sunRiseSetSf.nextSunSet","sunRiseSetSf.sunUp"}, + range={0.0, 370, -2, 24}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); +createPlot(id=1, + position={15, 10, 590, 600}, subPlot=3, y={"sunRiseSetAntarctic.nextSunRise", "sunRiseSetAntarctic.nextSunSet","sunRiseSetAntarctic.sunUp"}, + range={0.0, 370, -2, 24}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); +createPlot(id=1, + position={15, 10, 590, 600}, subPlot=4, y={"sunRiseSetSyd.nextSunRise", "sunRiseSetSyd.nextSunSet","sunRiseSetSyd.sunUp"}, + range={0.0, 370, -2, 24}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/SunRiseSetNegativeStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/SunRiseSetNegativeStartTime.mos new file mode 100644 index 0000000000..353ad15e11 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/SunRiseSetNegativeStartTime.mos @@ -0,0 +1,14 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Utilities.Validation.SunRiseSetNegativeStartTime", + method="dassl", tolerance=1e-06, startTime = -43200, stopTime=259200, numberOfIntervals=500, resultFile="SunRiseSetNegativeStartTime"); +createPlot(id=1, + position={15, 10, 590, 600}, subPlot=1, y={"sunRiseSetArctic.nextSunRise", "sunRiseSetArctic.nextSunSet","sunRiseSetArctic.sunUp"}, + range={0.0, 370, -2, 24}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); +createPlot(id=1, + position={15, 10, 590, 600}, subPlot=2, y={"sunRiseSetSf.nextSunRise", "sunRiseSetSf.nextSunSet","sunRiseSetSf.sunUp"}, + range={0.0, 370, -2, 24}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); +createPlot(id=1, + position={15, 10, 590, 600}, subPlot=3, y={"sunRiseSetAntarctic.nextSunRise", "sunRiseSetAntarctic.nextSunSet","sunRiseSetAntarctic.sunUp"}, + range={0.0, 370, -2, 24}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); +createPlot(id=1, + position={15, 10, 590, 600}, subPlot=4, y={"sunRiseSetSyd.nextSunRise", "sunRiseSetSyd.nextSunSet","sunRiseSetSyd.sunUp"}, + range={0.0, 370, -2, 24}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/SunRiseSetPositiveStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/SunRiseSetPositiveStartTime.mos new file mode 100644 index 0000000000..673ead9163 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/CDL/Utilities/Validation/SunRiseSetPositiveStartTime.mos @@ -0,0 +1,14 @@ +simulateModel("IBPSA.Controls.OBC.CDL.Utilities.Validation.SunRiseSetPositiveStartTime", + method="dassl", tolerance=1e-06, startTime = 43200, stopTime=345600, numberOfIntervals=500, resultFile="SunRiseSetPositiveStartTime"); +createPlot(id=1, + position={15, 10, 590, 600}, subPlot=1, y={"sunRiseSetArctic.nextSunRise", "sunRiseSetArctic.nextSunSet","sunRiseSetArctic.sunUp"}, + range={0.0, 370, -2, 24}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); +createPlot(id=1, + position={15, 10, 590, 600}, subPlot=2, y={"sunRiseSetSf.nextSunRise", "sunRiseSetSf.nextSunSet","sunRiseSetSf.sunUp"}, + range={0.0, 370, -2, 24}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); +createPlot(id=1, + position={15, 10, 590, 600}, subPlot=3, y={"sunRiseSetAntarctic.nextSunRise", "sunRiseSetAntarctic.nextSunSet","sunRiseSetAntarctic.sunUp"}, + range={0.0, 370, -2, 24}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); +createPlot(id=1, + position={15, 10, 590, 600}, subPlot=4, y={"sunRiseSetSyd.nextSunRise", "sunRiseSetSyd.nextSunSet","sunRiseSetSyd.sunUp"}, + range={0.0, 370, -2, 24}, grid=true, colors={{0,140,72}, {238,46,47}, {28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureReset.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureReset.mos new file mode 100644 index 0000000000..85f9b01aac --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureReset.mos @@ -0,0 +1,3 @@ +simulateModel("IBPSA.Controls.OBC.Utilities.SetPoints.Validation.SupplyReturnTemperatureReset", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="SupplyReturnTemperatureReset1"); +createPlot(id = 1, position = {35, 20, 789, 637}, x = "heaCur.TOut", y = {"heaCur.TSup", "heaCur.TRet", "heaCur.TOut"}, range = {262.0, 304.0, 70.0, (-20.0)}, autoscale = true, autoerase = true, autoreplot = true, grid = true, color = true, leftTitleType = 1, bottomTitleType = 1); +createPlot(id = 1, position = {35, 20, 789, 316}, x = "heaCur.TOut", y = {"heaCur1.TSetZon", "heaCur1.TSup", "heaCur1.TRet"}, range = {262.0, 304.0, 70.0, 10.0}, autoscale = true, autoerase = true, autoreplot = true, grid = true, color = true, subPlot = 2, leftTitleType = 1, bottomTitleType = 1); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureResetExponent.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureResetExponent.mos new file mode 100644 index 0000000000..33af396a5d --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/SetPoints/Validation/SupplyReturnTemperatureResetExponent.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Controls.OBC.Utilities.SetPoints.Validation.SupplyReturnTemperatureResetExponent", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="SupplyReturnTemperatureResetExponent"); +createPlot(id=1, position={119, 70, 789, 637}, x="heaCur.TOut", y={"heaCur.TSup", "heaCur.TRet", "heaCurM.TSup", "heaCurM.TRet"}, range={-10.0, 20.0, 18.0, 42.0}, grid=true, colors={{28,108,200}, {238,46,47}, {217,67,180}, {0,0,0}}, timeUnit="degC", displayUnits={"degC", "degC", "degC", "degC"}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartCoolingNegativeStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartCoolingNegativeStartTime.mos new file mode 100644 index 0000000000..32183621bc --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartCoolingNegativeStartTime.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.Utilities.Validation.OptimalStartCoolingNegativeStartTime", method="Cvode", startTime=-660000,stopTime=0, tolerance=1e-07, resultFile="OptimalStartCoolingNegativeStartTime"); +createPlot(id=1, position={10, 9, 1161, 1054}, subPlot=1, y={"optStaCoo.tOpt"}, range={-691200.0, 0.0, 0, 20000.0}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={10, 9, 1161, 346}, subPlot=2, y={"TSetCoo.y", "optStaCoo.TZon"}, range={-691200.0, 0.0, 16, 24}, grid=true, colors={{238,46,47}, {0,140,72}}); +createPlot(id=1, position={10, 9, 1161, 346}, subPlot=3, y={"optStaCoo.optOn"}, range={-691200.0, 0.0, 0, 20000.0}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartCoolingPositiveStartTime.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartCoolingPositiveStartTime.mos new file mode 100644 index 0000000000..793946087e --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartCoolingPositiveStartTime.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.Utilities.Validation.OptimalStartCoolingPositiveStartTime", method="Cvode", startTime=34000,stopTime=864000, tolerance=1e-07, resultFile="OptimalStartCoolingPositiveStartTime"); +createPlot(id=1, position={10, 9, 1161, 1054}, subPlot=1, y={"optStaCoo.tOpt"}, range={34000.0, 604800.0, 0, 20000.0}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={10, 9, 1161, 346}, subPlot=2, y={"TSetCoo.y", "optStaCoo.TZon"}, range={34000.0, 604800.0, 16, 24}, grid=true, colors={{238,46,47}, {0,140,72}}); +createPlot(id=1, position={10, 9, 1161, 346}, subPlot=3, y={"optStaCoo.optOn"}, range={34000.0, 604800.0, 0, 20000.0}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartHeating.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartHeating.mos new file mode 100644 index 0000000000..6438409465 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartHeating.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.Utilities.Validation.OptimalStartHeating", method="Cvode", startTime=-172800, stopTime=604800, tolerance=1e-07, resultFile="OptimalStartHeating"); +createPlot(id=1, position={10, 9, 1161, 1054}, subPlot=1, y={"optStaHea.tOpt"}, range={-172800.0, 604800.0, 0, 20000.0}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={10, 9, 1161, 346}, subPlot=2, y={"TSetHea.y", "optStaHea.TZon"}, range={-172800.0, 604800.0, 16, 24}, grid=true, colors={{238,46,47}, {0,140,72}}); +createPlot(id=1, position={10, 9, 1161, 346}, subPlot=3, y={"optStaHea.optOn"}, range={-172800.0, 604800.0, 0, 20000.0}, grid=true, colors={{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartHeatingCooling.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartHeatingCooling.mos new file mode 100644 index 0000000000..b724c606bd --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartHeatingCooling.mos @@ -0,0 +1,6 @@ +simulateModel("IBPSA.Controls.OBC.Utilities.Validation.OptimalStartHeatingCooling", method="Cvode", stopTime=2419200, tolerance=1e-06, resultFile="OptimalStartHeatingCooling"); +createPlot(id=1, position={2, 1, 859, 713}, subPlot=1, y={"optSta.tOpt"}, range={0.0, 604800.0, 0, 20000.0}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={2, 1, 859, 352}, subPlot=2, y={"optSta.optCoo.tOpt","optSta.optHea.tOpt"}, range={0.0, 604800.0, 16, 24}, grid=true, colors={{238,46,47}, {0,140,72}}); +createPlot(id=2, position={876, 5, 857, 710}, subPlot=1, y={"optSta.optOn"}, range={0.0, 604800.0, 0, 20000.0}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={876, 5, 857, 351}, subPlot=2, y={"optSta.optCoo.optOn","optSta.optHea.optOn"}, range={0.0, 604800.0, 0, 20000.0}, grid=true, colors={{238,46,47}, {0,140,72}}); +createPlot(id=3, position={1748, 7, 959, 708}, subPlot=1, y={"TSetHea.y","TSetCoo.y","optSta.TZon"}, range={0.0, 604800.0, 16, 24}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartNoHeatingNoCooling.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartNoHeatingNoCooling.mos new file mode 100644 index 0000000000..3538b2ba9f --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/OptimalStartNoHeatingNoCooling.mos @@ -0,0 +1,4 @@ +simulateModel("IBPSA.Controls.OBC.Utilities.Validation.OptimalStartNoHeatingNoCooling", stopTime=2419200, method="Cvode", tolerance=1e-06, resultFile="OptimalStartNoHeatingNoCooling"); +createPlot(id=1, position={10, 9, 1161, 1054},subPlot=1, y={"optSta.tOpt"}, range={0.0, 28.0, -1.5, 1.5}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={10, 9, 1161, 346},subPlot=2, y={"optSta.optOn"}, range={0.0, 2500000.0, -1.5, 1.5}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={10, 9, 1161, 346},subPlot=3, y={"TSetHea.y","TSetCoo.y","optSta.TZon"}, range={0.0, 2500000.0, 10.0, 35.0}, grid=true, colors={{238,46,47},{0,140,72},{28,108,200}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/PIDWithInputGains.mos b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/PIDWithInputGains.mos new file mode 100644 index 0000000000..301891fb65 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Controls/OBC/Utilities/Validation/PIDWithInputGains.mos @@ -0,0 +1,6 @@ +simulateModel("IBPSA.Controls.OBC.Utilities.Validation.PIDWithInputGains", method="Cvode", tolerance=1e-06, stopTime=1.0, resultFile="PIDWithInputGains"); +createPlot(id=1, position={15, 15, 800, 600}, y={"PID.k", "PIDWitInpGai.k"}, range={0.0, 1.0, 0.9, 1.3}, grid=true, subPlot=101, colors={{28,108,200}, {238,46,47}}); +createPlot(id=1, position={15, 15, 800, 600}, y={"PID.Ti", "PIDWitInpGai.Ti"}, range={0.0, 1.0, 0.4, 0.8}, grid=true, subPlot=102, colors={{28,108,200}, {238,46,47}}); +createPlot(id=1, position={15, 15, 800, 600}, y={"PID.Td", "PIDWitInpGai.Td"}, range={0.0, 1.0, 0.05, 0.25}, grid=true, subPlot=103, colors={{28,108,200}, {238,46,47}}); +createPlot(id=1, position={15, 15, 800, 600}, y={"PID.y", "PIDWitInpGai.y"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, subPlot=104, colors={{28,108,200}, {238,46,47}}); + diff --git a/IBPSA/Resources/Scripts/Dymola/Utilities/Math/Functions/Examples/Round.mos b/IBPSA/Resources/Scripts/Dymola/Utilities/Math/Functions/Examples/Round.mos new file mode 100644 index 0000000000..b378d70167 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Utilities/Math/Functions/Examples/Round.mos @@ -0,0 +1,2 @@ +simulateModel("IBPSA.Utilities.Math.Functions.Examples.Round", startTime=-2, stopTime=2, method="Cvode", tolerance=1e-06, resultFile="Round"); +createPlot(id=1, position={35, 35, 1536, 906}, y={"ym2", "ym1", "y", "y1", "y2"}, range={-2.0, 2.0, -2.5, 2.5}, grid=true, colors={{28,108,200}, {238,46,47}, {0,140,72}, {217,67,180}, {0,0,0}}); diff --git a/IBPSA/Utilities/Math/Functions/Examples/Round.mo b/IBPSA/Utilities/Math/Functions/Examples/Round.mo new file mode 100644 index 0000000000..3b860d0d87 --- /dev/null +++ b/IBPSA/Utilities/Math/Functions/Examples/Round.mo @@ -0,0 +1,35 @@ +within IBPSA.Utilities.Math.Functions.Examples; +model Round "Example for round function" + extends Modelica.Icons.Example; + Real ym2 "Function value"; + Real ym1 "Function value"; + Real y "Function value"; + Real y1 "Function value"; + Real y2 "Function value"; +equation + ym2=IBPSA.Utilities.Math.Functions.round(x=time*100, n=-2)/100; + ym1=IBPSA.Utilities.Math.Functions.round(x=time*10, n=-1)/10; + y=IBPSA.Utilities.Math.Functions.round(x=time, n=0); + y1=IBPSA.Utilities.Math.Functions.round(x=time/10, n=1)*10; + y2=IBPSA.Utilities.Math.Functions.round(x=time/100, n=2)*100; + annotation(experiment(StartTime=-2,Tolerance=1e-6, StopTime=2.0), +__Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Utilities/Math/Functions/Examples/Round.mos" + "Simulate and plot"), +Documentation(info=" +

+This example tests the implementation of + +IBPSA.Utilities.Math.Functions.round +for different values of n. +Arguments and return values are scale to simplify the show that the scaling for the rounding +is implemented correctly. +

+", revisions=" + +")); +end Round; diff --git a/IBPSA/Utilities/Math/Functions/Examples/package.order b/IBPSA/Utilities/Math/Functions/Examples/package.order index a073d84717..0b7ed0c40e 100644 --- a/IBPSA/Utilities/Math/Functions/Examples/package.order +++ b/IBPSA/Utilities/Math/Functions/Examples/package.order @@ -19,6 +19,7 @@ RegNonZeroPower RegNonZeroPowerDerivativeCheck RegNonZeroPowerDerivative_2_Check RegStep +Round SmoothExponentialDerivativeCheck SmoothHeavisideDerivatives SmoothInterpolation diff --git a/IBPSA/Utilities/Math/Functions/package.order b/IBPSA/Utilities/Math/Functions/package.order index b809973459..d668c299cf 100644 --- a/IBPSA/Utilities/Math/Functions/package.order +++ b/IBPSA/Utilities/Math/Functions/package.order @@ -21,6 +21,7 @@ quadraticLinear quinticHermite regNonZeroPower regStep +round smoothExponential smoothHeaviside smoothInterpolation diff --git a/IBPSA/Utilities/Math/Functions/round.mo b/IBPSA/Utilities/Math/Functions/round.mo new file mode 100644 index 0000000000..0959621f08 --- /dev/null +++ b/IBPSA/Utilities/Math/Functions/round.mo @@ -0,0 +1,63 @@ +within IBPSA.Utilities.Math.Functions; +function round "Round real number to specified digits" + extends Modelica.Icons.Function; + + input Real x "Argument to be rounded"; + input Integer n "Number of digits being round to"; + output Real y "Connector of Real output signal"; + +protected + Real fac = 10^n "Factor used for rounding"; + +algorithm + y := if (x>0) then floor(x*fac + 0.5)/fac else ceil(x*fac - 0.5)/fac; + +annotation ( +Documentation(info=" +

+Function that outputs the input after rounding it to n digits. +

+

+For example, +

+ +

+Hence, the function outputs +

+
+    y = floor(x*(10^n) + 0.5)/(10^n)  for  x > 0,
+    y = ceil( x*(10^n) - 0.5)/(10^n)  for  x < 0.
+
+

+To use this function as a block, use + +IBPSA.Controls.OBC.CDL.Reals.Round. +

+", revisions=" + +")); +end round; diff --git a/IBPSA/failed-simulator-dymola.log b/IBPSA/failed-simulator-dymola.log deleted file mode 100644 index 3d43ef277d..0000000000 --- a/IBPSA/failed-simulator-dymola.log +++ /dev/null @@ -1,2 +0,0 @@ -Automatically generated BuildingsPy dump file for failed translations. -