From c8d7087e9556476623c5fd905f79aa9455b6985c Mon Sep 17 00:00:00 2001 From: JayHuLBL Date: Fri, 28 Jul 2023 15:32:19 -0700 Subject: [PATCH] improved documentation --- .../PIDWithAutotuning/AutoTuner/AMIGO/PID.mo | 2 +- .../Relay/BaseClasses/HalfPeriodRatio.mo | 16 +- .../Relay/BaseClasses/OnOffPeriod.mo | 4 +- .../BaseClasses/Validation/HalfPeriodRatio.mo | 9 +- .../Validation/NormalizedTimeDelay.mo | 4 +- .../PIDWithAutotuning/Relay/Controller.mo | 4 +- .../Relay/ResponseProcess.mo | 2 +- .../BaseClasses/TimeConstantDelay.mo | 7 +- .../Validation/TimeConstantDelay.mo | 4 +- .../ControlProcessModel.mo | 47 +- .../Relay/BaseClasses/OnOff.png | Bin 0 -> 12914 bytes .../Relay/BaseClasses/OnOff.svg | 472 ++++++++++++++++++ .../Relay/BaseClasses/algorithm.png | Bin 0 -> 19912 bytes .../Relay/BaseClasses/algorithm.svg | 449 +++++++++++++++++ .../PIDWithAutotuning/Relay/Onoff.png | Bin 9672 -> 0 bytes .../PIDWithAutotuning/Relay/algorithm.png | Bin 10516 -> 0 bytes .../Validation/TimeConstantDelay.mos | 10 +- 17 files changed, 980 insertions(+), 50 deletions(-) create mode 100644 Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/OnOff.png create mode 100644 Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/OnOff.svg create mode 100644 Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/algorithm.png create mode 100644 Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/algorithm.svg delete mode 100644 Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/Onoff.png delete mode 100644 Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/algorithm.png diff --git a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/AutoTuner/AMIGO/PID.mo b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/AutoTuner/AMIGO/PID.mo index 8918f37119c..621c305ffd9 100644 --- a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/AutoTuner/AMIGO/PID.mo +++ b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/AutoTuner/AMIGO/PID.mo @@ -48,7 +48,7 @@ protected annotation (Placement(transformation(extent={{-10,-70},{10,-50}}))); equation - connect(derTim.Td, Td) + connect(derTim.Td, Td) annotation (Line(points={{12,-60},{120,-60}}, color={0,0,127})); connect(intTim.Ti, Ti) diff --git a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/HalfPeriodRatio.mo b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/HalfPeriodRatio.mo index ad2deaaf0b5..1cd6c315233 100644 --- a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/HalfPeriodRatio.mo +++ b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/HalfPeriodRatio.mo @@ -38,12 +38,12 @@ protected final k=0) "Minimum value for the horizon length" annotation (Placement(transformation(extent={{-80,0},{-60,20}}))); - Buildings.Controls.OBC.CDL.Discrete.TriggeredSampler tOnSam(final y_start= - Buildings.Controls.OBC.CDL.Constants.eps) + Buildings.Controls.OBC.CDL.Discrete.TriggeredSampler tOnSam( + final y_start=Buildings.Controls.OBC.CDL.Constants.eps) "Block that samples tOn when the tuning period ends" annotation (Placement(transformation(extent={{-80,70},{-60,90}}))); - Buildings.Controls.OBC.CDL.Discrete.TriggeredSampler tOffSam(final y_start= - Buildings.Controls.OBC.CDL.Constants.eps) + Buildings.Controls.OBC.CDL.Discrete.TriggeredSampler tOffSam( + final y_start=Buildings.Controls.OBC.CDL.Constants.eps) "Block that samples tOff when the tuning period ends" annotation (Placement(transformation(extent={{-80,-60},{-60,-80}}))); Buildings.Controls.OBC.CDL.Discrete.TriggeredSampler samAddtOntOff @@ -175,10 +175,10 @@ lengths of the On period and the Off period, respectively. An On period is defined as the period when the relay switch output of the relay controller is true. Likewise, an Off period is defined as the period when the relay switch output is false. -See details of the relay switch output in +See details of the relay switch output in + Buildings.Controls.OBC.Utilities.PIDWithAutotuning.Relay.Controller.

-

This block also detects when a PID tuning period should start and end. Specifically, the tuning period is triggered to begin when either ton @@ -186,8 +186,8 @@ or toff becomes positive. The tuning period is triggered to end when either ton or toff changes after the tuning period starts, as illustrated below:

-

-\"image\" +

+\"image\"

References

diff --git a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/OnOffPeriod.mo b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/OnOffPeriod.mo index 3657091a883..ce58c3f0c51 100644 --- a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/OnOffPeriod.mo +++ b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/OnOffPeriod.mo @@ -118,8 +118,8 @@ First implementation
This block processes a relay switch output and calculates the length of the On period, tOn, and the length of the Off period, tOff, as shown below.

-

-\"image\" +

+\"image\"

Note that tOn is sampled when the relay switch output becomes false. diff --git a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/Validation/HalfPeriodRatio.mo b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/Validation/HalfPeriodRatio.mo index 14c9885e879..d98898a9c54 100644 --- a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/Validation/HalfPeriodRatio.mo +++ b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/Validation/HalfPeriodRatio.mo @@ -76,13 +76,16 @@ Buildings.Controls.OBC.Utilities.PIDWithAutotuning.Relay.BaseClasses.HalfPeriodR

diff --git a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/Validation/NormalizedTimeDelay.mo b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/Validation/NormalizedTimeDelay.mo index aba2d92ab16..ef33d42ca63 100644 --- a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/Validation/NormalizedTimeDelay.mo +++ b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/Validation/NormalizedTimeDelay.mo @@ -2,7 +2,7 @@ within Buildings.Controls.OBC.Utilities.PIDWithAutotuning.Relay.BaseClasses.Vali model NormalizedTimeDelay "Test model for calculating the normalized time delay" Buildings.Controls.OBC.Utilities.PIDWithAutotuning.Relay.BaseClasses.NormalizedTimeDelay norTimDel(gamma=3) "Calculate the normalized time delay" - annotation (Placement(transformation(extent={{-8,-10},{12,10}}))); + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); Buildings.Controls.OBC.CDL.Continuous.Sources.Pulse rho( amplitude=1, width=0.7, @@ -12,7 +12,7 @@ model NormalizedTimeDelay "Test model for calculating the normalized time delay" annotation (Placement(transformation(extent={{-50,-10},{-30,10}}))); equation connect(rho.y, norTimDel.rho) - annotation (Line(points={{-28,0},{-10,0}}, color={0,0,127})); + annotation (Line(points={{-28,0},{-12,0}}, color={0,0,127})); annotation ( experiment( StopTime=1.0, diff --git a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/Controller.mo b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/Controller.mo index 98afb5c65fe..de387db0da7 100644 --- a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/Controller.mo +++ b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/Controller.mo @@ -120,8 +120,8 @@ equation fillPattern=FillPattern.Solid, fillColor={175,175,175}, textString="Relay"), - Line(points={{-70,24},{-34,24},{-34,58},{38,58},{38,24},{66,24}}, color= - {28,108,200})}), Diagram( + Line(points={{-70,24},{-34,24},{-34,58},{38,58},{38,24},{66,24}}, color + ={28,108,200})}), Diagram( coordinateSystem(preserveAspectRatio=false)), Documentation(info="

diff --git a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/ResponseProcess.mo b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/ResponseProcess.mo index efd36089ae9..08e85830e74 100644 --- a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/ResponseProcess.mo +++ b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/Relay/ResponseProcess.mo @@ -6,7 +6,7 @@ block ResponseProcess parameter Real yLow(min=1E-6) = 0.5 "Lower value for the output"; Buildings.Controls.OBC.CDL.Interfaces.BooleanInput on - "Relay switch. True: tuning on perid, False: tuningoff period" + "Relay switch. True: tuning on perid, False: tuning off period" annotation (Placement(transformation(extent={{-140,-80},{-100,-40}}), iconTransformation(extent={{-140,-80},{-100,-40}}))); Buildings.Controls.OBC.CDL.Interfaces.RealInput tim( diff --git a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/BaseClasses/TimeConstantDelay.mo b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/BaseClasses/TimeConstantDelay.mo index 2ef0cd3ec72..339a1456aa6 100644 --- a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/BaseClasses/TimeConstantDelay.mo +++ b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/BaseClasses/TimeConstantDelay.mo @@ -18,7 +18,7 @@ block TimeConstantDelay "Gain" annotation (Placement(transformation(extent={{-140,-20},{-100,20}}), iconTransformation(extent={{-140,-20},{-100,20}}))); - Buildings.Controls.OBC.CDL.Interfaces.RealInput ratioLT + Buildings.Controls.OBC.CDL.Interfaces.RealInput rat "Ratio between the time constant and the time delay" annotation (Placement(transformation(extent={{-140,-70},{-100,-30}}), iconTransformation(extent={{-140,-80},{-100,-40}}))); @@ -85,7 +85,7 @@ protected equation connect(absk.u, k) annotation (Line(points={{-82,0},{-120,0}}, color={0,0,127})); - connect(ratioLT, exp.u) + connect(rat, exp.u) annotation (Line(points={{-120,-50},{-82,-50}}, color={0,0,127})); connect(relDeaBan.y, div1.u1) annotation (Line(points={{22,40},{28,40},{28,0}, {-4,0},{-4,-14},{-2,-14}}, color={0,0,127})); @@ -116,8 +116,7 @@ equation connect(div3.y, T) annotation (Line(points={{-18,70},{120,70}}, color={0,0,127})); connect(mul2.u2, T) annotation (Line(points={{-2,78},{-10,78},{-10,70},{120, - 70}}, - color={0,0,127})); + 70}}, color={0,0,127})); connect(mul2.u1, exp.u) annotation (Line(points={{-2,90},{-90,90},{-90,-50},{-82, -50}}, color={0,0,127})); connect(mul2.y, L) annotation (Line(points={{22,84},{92,84},{92,-60},{120,-60}}, diff --git a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/BaseClasses/Validation/TimeConstantDelay.mo b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/BaseClasses/Validation/TimeConstantDelay.mo index 6cc7db7289d..41fcc681a3f 100644 --- a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/BaseClasses/Validation/TimeConstantDelay.mo +++ b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/BaseClasses/Validation/TimeConstantDelay.mo @@ -27,8 +27,8 @@ equation 6},{-12,6}}, color={0,0,127})); connect(k.y, timConDel.k) annotation (Line(points={{-38,0},{-12,0}}, color={0,0,127})); - connect(ratioLT.y, timConDel.ratioLT) annotation (Line(points={{-38,-40},{-20, - -40},{-20,-6},{-12,-6}}, color={0,0,127})); + connect(ratioLT.y, timConDel.rat) annotation (Line(points={{-38,-40},{-20,-40}, + {-20,-6},{-12,-6}}, color={0,0,127})); annotation ( experiment( StopTime=1.0, diff --git a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/ControlProcessModel.mo b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/ControlProcessModel.mo index 6dc8a6be0a8..871b949f93d 100644 --- a/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/ControlProcessModel.mo +++ b/Buildings/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/ControlProcessModel.mo @@ -100,7 +100,8 @@ protected final y_start=1) "Block that samples the time constant when the tuning period ends" annotation (Placement(transformation(extent={{70,10},{90,30}}))); - Buildings.Controls.OBC.CDL.Discrete.TriggeredSampler samtau(final y_start=0.5) + Buildings.Controls.OBC.CDL.Discrete.TriggeredSampler samtau( + final y_start=0.5) "Block that samples the normalized time delay when the tuning period ends" annotation (Placement(transformation(extent={{-70,-70},{-50,-50}}))); Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter gai( @@ -110,8 +111,7 @@ protected equation connect(gain.u, u) annotation (Line(points={{-86,28},{-88,28},{-88,80},{-120, - 80}}, - color={0,0,127})); + 80}}, color={0,0,127})); connect(gain.tOn, tOn) annotation (Line(points={{-86,20},{-94,20},{-94,40},{ -120,40}}, color={0,0,127})); connect(gain.tOff, tOff) annotation (Line(points={{-86,12},{-94,12},{-94,-20}, @@ -137,19 +137,15 @@ equation color={0,0,127})); connect(samk.trigger, triEnd) annotation (Line(points={{-44,8},{-44,-90},{80, -90},{80,-120}}, color={255,0,255})); - connect(gain.k, samk.u) - annotacolor={0,0,127})); connect(samk.y, k) annotation (Line(points={{-32,20},{-20,20},{-20,70},{120, - 70}}, - color={0,0,127})); + 70}}, color={0,0,127})); connect(timConDel.tOn, samtOn.y) annotation (Line(points={{-2,26},{-28,26},{ -28,60},{-48,60}},color={0,0,127})); connect(samtOn.u, tOn) annotation (Line(points={{-72,60},{-94,60},{-94,40},{-120,40}}, color={0,0,127})); connect(samtOn.trigger, triEnd) annotation (Line(points={{-60,48},{-60,-20},{ - -44,-20},{-44,-90},{80,-90},{80,-120}}, - color={255,0,255})); + -44,-20},{-44,-90},{80,-90},{80,-120}}, color={255,0,255})); connect(gai.y, addPar.u) annotation (Line(points={{-14,-60},{-10,-60}}, color={0,0,127})); connect(tau, samtau.u) @@ -162,9 +158,11 @@ equation -60,-90},{-60,-72}}, color={255,0,255})); connect(addPar.y, div.u2) annotation (Line(points={{14,-60},{20,-60},{20,-40}, {6,-40},{6,-26},{10,-26}}, color={0,0,127})); - connect(div.y, timConDel.ratioLT) annotation (Line(points={{34,-20},{36,-20}, - {36,0},{-12,0},{-12,14},{-2,14}}, color={0,0,127})); - annotation ( + connect(div.y, timConDel.rat) annotation (Line(points={{34,-20},{36,-20},{36, + 0},{-12,0},{-12,14},{-2,14}}, color={0,0,127})); + connect(gain.k, samk.u) + annotation (Line(points={{-62,20},{-56,20}}, color={0,0,127})); +annotation ( defaultComponentName = "conProMod", Icon(coordinateSystem(preserveAspectRatio=false), graphics={ Rectangle( @@ -192,7 +190,7 @@ equation 34}}, color={28,108,200}), Line(points={{-58,36},{82,36}}, color={28,108,200}, pattern=LinePattern.Dash)}), - Diagram(coordinateSystem(preserveAspectRatio=false)), + Diagram(coordinateSystem(preserveAspectRatio=false)), Documentation(revisions="

", info=" -

This block calculates the model parameters of a first-order time delayed model. -Specifically, it employs -Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimedelayed.BaseClasses.Gain and +

+This block calculates the model parameters of a first-order time delayed model. +Specifically, it employs + +Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimedelayed.BaseClasses.Gain +and + Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimedelayed.BaseClasses.TimeConstantDelay -to identify the gain and the time constant/the time delay, respectively.

-

This block is inactive by default and is active once the tuning period starts, i.e., triSta becomes true; -It then calculates the model parameters at the time when the tuning period ends, i.e., triEnd becomes true. +to identify the gain, the time constant and the time delay, respectively. +

+

+The calculations are disabled by default. They will be enabled once the tuning period starts, +i.e., triSta becomes true; +It then calculates the model parameters at the time when the tuning period ends, +i.e., triEnd becomes true.

Refer to -Buildings.Controls.OBC.Utilities.PIDWithAutotuning.Relay.Controller for detailed explanation of the parameters yHig, yLow, and deaBan. +Buildings.Controls.OBC.Utilities.PIDWithAutotuning.Relay.Controller for detailed explanation +of the parameters yHig, yLow, and deaBan.

")); end ControlProcessModel; diff --git a/Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/OnOff.png b/Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/OnOff.png new file mode 100644 index 0000000000000000000000000000000000000000..9076999be0ff3110d052b3ebcabddcadd66e11b2 GIT binary patch literal 12914 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 literal 0 HcmV?d00001 diff --git a/Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/OnOff.svg b/Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/OnOff.svg new file mode 100644 index 00000000000..677392e9229 --- /dev/null +++ b/Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/OnOff.svg @@ -0,0 +1,472 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Time Relay Switch Output True False + + + + + + tOff tOn tOff On period diff --git a/Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/algorithm.png b/Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/BaseClasses/algorithm.png new file mode 100644 index 0000000000000000000000000000000000000000..49a18a11db41af1d00287983d9d41ecd7911f478 GIT binary patch literal 19912 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 + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Tuning Period Time tOff becomespositive Relay Switch Output True False tOff changesafter the tuningperiod starts + diff --git a/Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/Onoff.png b/Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/Onoff.png deleted file mode 100644 index 8df6d9259ae532c5dc442cd898fcbad69cd6adf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9672 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 asGD{O;5+Y|Mc}tDAcU?lyi)se?0*1~DItge diff --git a/Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/algorithm.png b/Buildings/Resources/Images/Controls/OBC/Utilities/PIDWithAutotuning/Relay/algorithm.png deleted file mode 100644 index 25617c41edd4bfc9f940e9bbcf20543be5e7aa47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10516 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 J3pMYD{TGl)`#Jys diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/BaseClasses/Validation/TimeConstantDelay.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/BaseClasses/Validation/TimeConstantDelay.mos index 13d8afd483d..f2ce5275f20 100644 --- a/Buildings/Resources/Scripts/Dymola/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/BaseClasses/Validation/TimeConstantDelay.mos +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/Utilities/PIDWithAutotuning/SystemIdentification/FirstOrderTimedelayed/BaseClasses/Validation/TimeConstantDelay.mos @@ -1,6 +1,6 @@ simulateModel("Buildings.Controls.OBC.Utilities.PIDWithAutotuning.SystemIdentification.FirstOrderTimedelayed.BaseClasses.Validation.TimeConstantDelay", method="Cvode", tolerance=1e-06, resultFile="TimeConstantDelay"); -createPlot(id=1, position={15, 15, 1101, 667}, y={"tOn.y"}, range={0.0, 1.0, -0.1, 0.20000000000000004}, grid=true, subPlot=101, colors={{28,108,200}}); -createPlot(id=1, position={15, 15, 1101, 667}, y={"k.y"}, range={0.0, 1.0, 0.8, 1.2000000000000002}, grid=true, subPlot=102, colors={{28,108,200}}); -createPlot(id=1, position={15, 15, 1101, 667}, y={"ratioLT.y"}, range={0.0, 1.0, 0.20000000000000004, 0.5000000000000001}, grid=true, subPlot=103, colors={{28,108,200}}); -createPlot(id=1, position={15, 15, 1101, 667}, y={"timConDel.T"}, range={0.0, 1.0, -0.1, 0.20000000000000004}, grid=true, subPlot=104, colors={{28,108,200}}); -createPlot(id=1, position={15, 15, 1101, 667}, y={"timConDel.L"}, range={0.0, 1.0, -0.05, 0.05}, grid=true, subPlot=105, colors={{28,108,200}}); \ No newline at end of file +createPlot(id=1, position={15, 15, 1101, 667}, y={"tOn.y"}, range={0.0, 1.0, -0.1, 0.2}, grid=true, subPlot=101, colors={{28,108,200}}); +createPlot(id=1, position={15, 15, 1101, 667}, y={"k.y"}, range={0.0, 1.0, 0.8, 1.2}, grid=true, subPlot=102, colors={{28,108,200}}); +createPlot(id=1, position={15, 15, 1101, 667}, y={"ratioLT.y"}, range={0.0, 1.0, 0.2, 0.5}, grid=true, subPlot=103, colors={{28,108,200}}); +createPlot(id=1, position={15, 15, 1101, 667}, y={"timConDel.T"}, range={0.0, 1.0, -0.1, 0.2}, grid=true, subPlot=104, colors={{28,108,200}}); +createPlot(id=1, position={15, 15, 1101, 667}, y={"timConDel.L"}, range={0.0, 1.0, -0.05, 0.05}, grid=true, subPlot=105, colors={{28,108,200}});