This block generates an output signal by linear interpolation in
a table. The time points and function values are stored in a matrix
table[i,j], where the first column table[:,1] contains the
time points and the second column contains the data to be interpolated.
The table interpolation has the following proporties:
- The time points need to be monotonically increasing.
- Discontinuities are allowed, by providing the same
time point twice in the table.
- Values outside of the table range, are computed by
extrapolation through the last or first two points of the
table.
- If the table has only one row, no interpolation is performed and
the function value is just returned independently of the
actual time instant.
- Via parameters startTime and offset the curve defined
by the table can be shifted both in time and in the ordinate value.
- The table is implemented in a numerically sound way by
generating time events at interval boundaries,
in order to not integrate over a discontinuous or not differentiable
points.
Example:
table = [0 0
1 0
1 1
2 4
3 9
4 16]
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).
Release Notes:
- Oct. 21, 2002
by Christian Schweiger:
Corrected interface from
parameter Real table[:, :]=[0, 0; 1, 1; 2, 4];
to
parameter Real table[:, 2]=[0, 0; 1, 1; 2, 4];
- Nov. 7, 1999
by Martin Otter:
Realized.
Generated at 2024-12-26T19:25:54Z
by OpenModelicaOpenModelica 1.24.3 using GenerateDoc.mos