Skip to content

Commit

Permalink
Added documentation for continuous derivatives
Browse files Browse the repository at this point in the history
  • Loading branch information
Paul van der Hulst committed Apr 19, 2024
1 parent cb2d083 commit 7fa2e5b
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions Modelica/Blocks/package.mo
Original file line number Diff line number Diff line change
Expand Up @@ -1699,8 +1699,9 @@ The output is constant from the beginning.
connect(continuousC1Extrapol.u, ramp.y) annotation(
Line(points = {{10, -30}, {0, -30}, {0, 0}, {-7, 0}}, color = {0, 0, 127}));
annotation(
experiment(StartTime = 0, StopTime = 1.5, Tolerance = 1e-06, Interval = 0.02),
Documentation(info = "<html><head></head><body>This model demonstrates the less obvious charactristics of <u>periodic</u> table interpolation.<div>This is relevant to both 1D and 2D tables.</div><div><br></div><div><b>Periodicity</b></div><div>The periodicity of a one-dimensional table is defined as table[end,1]-table[1,1].</div><div>This implies that the first and last points in the table 'overlap' when extrapolating.&nbsp;</div><div>The top model in this example, 'discontinuousExtrapol', illustrates how this works out during simulation. It defines a saw-tooth function by its minimum and maximum value and linear interpolation.</div><div>The values at the ends of the definition interval (from <i>t</i>=0.5s to <i>t</i>=0.9s) are equal to the values defined in table[1,2] and table[end,2] respectively. Thus the table is evaluated including the interval limits: [start, end]</div><div><br></div><div>Outside of the definition interval, the <i>limit</i> towards the definition interval is used. On the left side, the table is evaluated excluding the end value: [start, end&gt;. On the right side it is evaluated excluding the start value: &lt;start, end].</div><div>This effect is deliberately exaggerated in this model by choosing a large simulation interval.</div><div>It is clear that for <i>t</i> &gt; 0.9s, the table output approaches -1 when <i>t</i> decreases, but <i>at</i>&nbsp;t=0.9s (and t=1.3s, etc.), the output will be exactly equal to 1.</div><div>Likewise, the table output will be&nbsp;&lt;1 &nbsp;but never equal to 1 for <i>t</i>&lt;0.5s. Instead at <i>t</i>=0.5 (and t=0.1 etc.), the output will be exactly -1.</div><div><br></div><div><b>Differentiability</b></div><div><br></div></body></html>"));
experiment(StartTime = 0, StopTime = 1.5, Tolerance = 1e-06, Interval = 0.01),
Documentation(info = "<html><head></head><body>This model demonstrates the less obvious charactristics of <u>periodic</u> table interpolation.<div>This is relevant to both 1D and 2D tables.</div><div><br></div><div><b>Periodicity</b></div><div>The periodicity of a one-dimensional table is defined as table[end,1]-table[1,1].</div><div>This implies that the first and last points in the table 'overlap' when extrapolating.&nbsp;</div><div>The top model in this example, 'discontinuousExtrapol', illustrates how this works out during simulation. It defines a saw-tooth function by its minimum and maximum value and linear interpolation.</div><div>The values at both ends of the definition interval (at&nbsp;<i>t</i>=0.5s and&nbsp;<i>t</i>=0.9s) are equal to the values defined in table[1,2] and table[end,2] respectively. Thus the table is evaluated including the interval limits: [start, end]</div><div><br></div><div>Outside of the definition interval, the <i>limit</i> towards the definition interval is used. On the left side, the table is evaluated excluding the end value: [start, end&gt;. On the right side it is evaluated excluding the start value: &lt;start, end].</div><div>This effect is deliberately exaggerated in this model by choosing a large simulation interval.</div><div>It is clear that for <i>t</i> &gt; 0.9s, the table output approaches -1 when <i>t</i> decreases, but <i>at</i>&nbsp;t=0.9s (and t=1.3s, etc.), the output will be exactly equal to 1.</div><div>Likewise, for&nbsp;<i>t</i>&lt;0.5s the table output will be&nbsp;&lt;1 &nbsp;but never equal to 1. Instead at <i>t</i>=0.5 (and <i>t</i>=0.1 etc.), the output will be exactly -1.</div><div><br></div><div><b>Differentiability</b></div><div>The second model 'continuousC0Extrapolation' demonstrates that the derivative is not defined in the edges of the definition interval. The table definition [0, -1; 1, 0; 2, 1; 3, 0; 4, -1] defines a function that would be a triangle with linear interpolation.</div><div>With continuous derivative, it is smooth in the interval, but not in the edges (<i>t</i>=0.5s,&nbsp;<i>t</i>= 0.9s, etc.).</div><div><br></div><div>The bottom model 'continuousC1Extrapol' with table [0, -1; 0.25, -1; 0.5, -1; 2, 1; 3.5, -1; 3.75, -1; 4, -1] defines a function which is continuous in the interval edge, as well as its first 2 derivatives: around the interval edge there are 5 consequtive points at -1.</div><div>This results in a smooth function.</div><div><br></div><div><br></div><div>For more information, see&nbsp;<em>Proceedings of&nbsp;</em><em>the 10th International Modelica Conference</em>. Ed. by Hubertus Tummescheit and Karl-Erik Årzén. Lund, Sweden, March 2014.</div>
DOI: <a href=\"https://doi.org/10.3384/ecp14096893\" rel=\"nofollow\">10.3384/ecp14096893</a>.<!--EndFragment--></body></html>"));
end ContinuityPeriodicTableExtrapolation;
package Noise "Library of examples to demonstrate the usage of package Blocks.Noise"
Expand Down

0 comments on commit 7fa2e5b

Please sign in to comment.