Lookup Table (Obsolete)
Approximate one-dimensional function
Library
Lookup Tables (until R2010b)
Description
Note
The Lookup Table block is obsolete. This block was removed from the Lookup Tables library in R2011a and replaced with a 1-D version of the n-D Lookup Table block. However, existing models that contain the Lookup Table block continue to work for backward compatibility.
Use the 1-D Lookup Table block in new
models. Consider using the upgradeadvisor
function to replace
Lookup Table with 1-D Lookup Table in existing models. See Programmatically Analyze and Upgrade Model.
Among other enhancements, the 1-D Lookup Table block supports the following features that the Lookup Table block does not:
Specification of parameter data types different from input or output signal types
Reduced memory use and faster code execution for evenly-spaced breakpoints that are nontunable
Fixed-point data types with word lengths up to 128 bits
Specification of index search method
Specification of diagnostic for out-of-range inputs
For more information, see Update Lookup Table Blocks to New Versions.
How the Block Differs from Other Lookup Table Blocks
The Lookup Table block computes an approximation to a function y
= f(x)
given data vectors x
and y
.
To map two inputs to an output, use the Lookup Table (2-D) block.
You define the lookup table by specifying:
Vector of input values as a
1-by-n
vector ofx
data pointsTable data as a
1-by-n
vector ofy
data points
To avoid parameter saturation errors, the Fixed-Point Designer™ automatic
scaling script employs a special rule for the Lookup Table block. autofixexp
(Fixed-Point Designer) modifies the scaling by
using the lookup values of the Table data parameter
in addition to the logged minimum and maximum simulation values. This
action prevents saturation of the data to different values.
Monotonicity Requirements
The length of the x
and y
data
vectors provided to this block must match. Also, the x
data
vector must be strictly monotonically increasing (for
example, the value of the next element in the vector is greater than
the value of the preceding element) after conversion to the input's
fixed-point data type. However, the x
data vector
can be monotonically increasing (for example,
the value of the next element in the vector is greater than or equal
to the value of the preceding element) if all of the following apply:
The input and output signals are both either
single
ordouble
.The lookup method is
Interpolation-Extrapolation
.
Tip
Evenly-spaced breakpoints can make the generated code division-free.
For more information, see fixpt_evenspace_cleanup
and Identify questionable fixed-point operations (Embedded Coder).
For more information about monotonicity requirements, see Characteristics of Lookup Table Data. To learn how to model a discontinuous function using a Lookup Table block, see Representation of Discontinuities in Lookup Tables.
How the Block Generates Output
The block uses the input values to generate output using the method you select for the Lookup method parameter:
Lookup Method | Action by the Block |
---|---|
Interpolation-Extrapolation (default) | Performs linear interpolation and extrapolation of the inputs.
Note If you select this lookup method, code generation can occur for this block only if the input and output signals have the same floating-point data type. |
Interpolation-Use End Values | Performs linear interpolation but does not extrapolate outside the end points of the input vector. Instead, the block uses the end values. |
Use Input Nearest | Finds the element in Note If the input value is exactly halfway between two points in the Vector of input values, the nearest input is the point with the higher numerical value. Suppose that you define the Vector of input values as
[0 2] and the Table data as [0 1]. If your input
value is 1, the |
Use Input Below | Finds the element in |
Use Input Above | Finds the element in |
Note
The Use Input Nearest
, Use Input
Below
, and Use Input Above
methods perform
the same action when the input x
matches a breakpoint
value.
Data Type Support
The Lookup Table block supports the following data types:
Floating point
Built-in integer
Fixed point
Boolean
For more information, see Data Types Supported by Simulink.
Parameters
- Vector of input values
Specify the vector of input values. This vector must be the same size as the Table data. Also, the input values vector must be strictly monotonically increasing after conversion to the input's fixed-point data type. However, the input values vector can be monotonically increasing if the input and output signals are both either
single
ordouble
, and if the lookup method isInterpolation-Extrapolation
. Note that due to quantization, the input values vector can be strictly monotonic in doubles format, but not so after conversion to a fixed-point data type.The Vector of input values parameter is converted offline to the data type of the input signal using round-to-nearest and saturation.
Click the Edit button to open the Lookup Table Editor.
- Table data
Specify the vector of output values. This vector must be the same size as the Vector of input values.
The Table data parameter is converted offline to the Output data type using round-to-nearest and saturation.
- Lookup method
Specify the lookup method. See How the Block Generates Output for a discussion of the options for this parameter.
- Sample time (-1 for inherited)
Specify the time interval between samples. To inherit the sample time, set this parameter to
-1
. See Specify Sample Time for more information.
- Output minimum
Specify the minimum value that the block should output. The default value,
[]
, is equivalent to-Inf
. Simulink® software uses this value to perform:Parameter range checking (see Specify Minimum and Maximum Values for Block Parameters)
Simulation range checking (see Specify Signal Ranges)
Automatic scaling of fixed-point data types
- Output maximum
Specify the maximum value that the block should output. The default value,
[]
, is equivalent toInf
. Simulink software uses this value to perform:Parameter range checking (see Specify Minimum and Maximum Values for Block Parameters)
Simulation range checking (see Specify Signal Ranges)
Automatic scaling of fixed-point data types
- Output data type
Specify the output data type. You can set it to:
A rule that inherits a data type, for example,
Inherit: Inherit via back propagation
The name of a built-in data type, for example,
single
The name of a data type object, for example, a
Simulink.NumericType
objectAn expression that evaluates to a data type, for example,
fixdt(1,16,0)
Click the Show data type assistant button
to display the Data Type Assistant, which helps you set the Output data type parameter.
See Control Data Types of Signals for more information.
- Lock output data type setting against changes by the fixed-point tools
Select to lock the output data type setting of this block against changes by the Fixed-Point Tool and the Fixed-Point Advisor. For more information, see Fixed-Point Tool (Fixed-Point Designer).
- Integer rounding mode
Select the rounding mode for fixed-point lookup table calculations that occur during simulation or execution of code generated from the model. For more information, see Rounding (Fixed-Point Designer).
Block parameters such as Table data always round to the nearest representable integer value. To control the rounding of a block parameter, enter an expression using a MATLAB® rounding function into the parameter's edit field on the block dialog box.
- Saturate on integer overflow
Select to have overflows saturate. Otherwise, they wrap.
When you select this check box, saturation applies to every internal operation on the block, not just the output or result. In general, the code generation process can detect when overflow is not possible, in which case, no saturation code is necessary.
Characteristics
Direct Feedthrough | Yes |
Sample Time | Specified in the Sample time parameter |
Scalar Expansion | No |
Dimensionalized | Yes |
Zero-Crossing Detection | No |