BondLib.Electrical.Analog.Sources.TableCurrent

# .BondLib.Electrical.Analog.Sources.TableCurrent

Tabular current source of analog electrical library

## Information

The tabular current source is built in bondgraphic technology from a bond graph tableSf element, a 1-junction, and three bonds. A-causal bonds must be used except at the source, because the causality depends on the embedding of the current source in its environment.

    Parameters:

     table:      Two-dimensional table with supporting values (default value = [0, 0; 1, 1; 2, 4])

     offset:     Offset of time function to be generated (default value = 0 Volt)

     startTime:  Start time of time function to be generated (default value = 0 sec)

The model generates a current source by linear interpolation in a table. The time points and current 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 current 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 voltage value is just returned independantly of the actual time instant, i.e., this is a constant voltage source.
- Via parameters startTime and offset the curve defined by the table can be shifted both in time and in the voltage.
- 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 current i =  0.0 (before event), 1.0 (after event)
        e.g., time = 1.5, the current i =  2.5,
        e.g., time = 2.0, the current i =  4.0,
        e.g., time = 5.0, the current i = 23.0 (i.e. extrapolation).

Generated at 2026-05-12T20:19:03Z by OpenModelicaOpenModelica 1.26.7 using GenerateDoc.mos