Using Lookup Tables in Equations
You can use the tablelookup function in the equations
section of the Simscape™ file to interpolate input values based on a set of data points in a
one-dimensional, two-dimensional, three-dimensional, or four-dimensional table. This
functionality is similar to that of the Simulink® and Simscape Lookup Table blocks. It allows you to incorporate table-driven modeling directly
in your custom block, without the need of connecting an external Lookup Table block to your
model.
The following example implements mapping temperature to pressure using a one-dimensional lookup table.
component TtoP
inputs
u = {0,'K'}; % temperature
end
outputs
y = {0,'Pa'}; % pressure
end
parameters
xd = {[100 200 300 400] 'K'};
yd = {[1e5 2e5 3e5 4e5] 'Pa'};
end
equations
y == tablelookup(xd,yd,u,interpolation=linear,extrapolation=nearest);
end
endxd and yd are declared as parameters with units. This
enables the block users to provide their own data sets when the component is converted to a
custom block, and also to select commensurate units from the drop-downs in the custom block
dialog box. The next illustration shows the dialog box of the custom block generated from this
component.

Note
To avoid repeating the same parameter declarations in each component that needs to use
them in its tablelookup function, you can declare table data sets as
domain parameters and propagate them to components for interpolation purposes. For more
information, see Propagation of Domain Parameters.
The following rules apply to the one-dimensional arrays xd and yd:
The two arrays must be of the same size.
For smooth interpolation, each array must contain at least three values. For linear interpolation, two values are sufficient.
The
xdvalues must be strictly monotonic, either increasing or decreasing.
The TtoP component uses linear interpolation for values within
the table range, but outputs the nearest value of yd for
out-of-range input values. The following illustration shows a block
diagram, where the custom TtoP block is used with a linear input signal
changing from 0 to 1000, and the resulting output.


See the tablelookup reference page for
syntax specifics and more examples.