## Modelica_LinearSystems2.WorkInProgress.MPC.Utilities

### Package Content

Name | Description
--- | ---
TimeTable | Generate a (possibly discontinuous) signal by linear interpolation in a table
referencePrediction2 |

## Modelica_LinearSystems2.WorkInProgress.MPC.Utilities.TimeTable

Generate a (possibly discontinuous) signal by linear interpolation in a table

### Information

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 independantly 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).

Extends from Modelica.Blocks.Interfaces.SO (Single Output continuous control block).

### Parameters

Name | Description
--- | ---
table[:, 2] | Table matrix (time = first column; e.g. table=[0, 0; 1, 1; 2, 4])
offset | Offset of output signal
startTime | Output = offset for time < startTime [s]
hp | Prediction horizon
sampleTime | Base sample time for discrete blocks [s]

### Connectors

Name | Description
--- | ---
y | Connector of Real output signal
y_pred[hp] |

## Modelica_LinearSystems2.WorkInProgress.MPC.Utilities.referencePrediction2

### Parameters

Name | Description
--- | ---
hp | Prediction horizon
ny | Number of outputs

### Connectors

Name | Description
--- | ---
y[ny*hp] |
u[ny*hp] |