Interpolation Using Prelookup
R2026b使用预先计算的索引和区间比值快速逼近 N 维函数。
Interpolation Using Prelookup block
To add a block to a model, double-click the canvas and start typing the block name. Then, select the block from the list.
库:
Simulink /
Lookup Tables
描述
当与 Prelookup 模块结合使用时,Interpolation Using Prelookup 模块的效率最高。Prelookup 模块计算索引和区间比,这些数据说明输入值 u 与断点数据集的相对关系。将生成的索引和区间比值馈送给 Interpolation Using Prelookup 模块,以便对 n 维表进行插值。这两个模块采用分布式算法。当二者结合使用时,执行的运算与 n-D Lookup Table 模块中的积分算法相同。但是,Prelookup 和 Interpolation Using Prelookup 模块提供了更大的灵活性,可更高效地进行仿真和代码生成。有关详细信息,请参阅执行效率。
支持的模块运算
要使用 Interpolation Using Prelookup 模块,您可以直接在对话框中指定一组表数据值,或将值馈送到 T 输入端口中。通常,这些表值对应于在 Prelookup 模块中指定的断点数据集。Interpolation Using Prelookup 模块基于 Prelookup 模块馈送的索引和区间比值查找或估计表值,进而生成输出。索引和区间比的标签在 Interpolation Using Prelookup 模块图标上显示为 k 和 f。
| 当索引和区间比的输入属于以下情况时... | Interpolation Using Prelookup 模块... |
|---|---|
| 映射到断点数据集中的值 | 输出位于行、列和更高维度断点的交点处的表值 |
| 不映射到断点数据集中的值,但在范围内 | 使用您选择的内插方法内插适当的表值 |
| 不映射到断点数据集中的值,并且超出范围 | 使用您选择的外插方法外插以获得输出值 |
模块如何对表数据的子集进行插值
您可以使用子表选择维数参数指定插值只发生在表数据的子集上。要激活此插值模式,请将此参数设置为正整数。该值定义用于进行子表选择的维数,对于默认的列优先算法,该值从表数据的最高维度起计。因此,该值必须小于或等于表维数。
对于行优先算法,插值从表数据的第一个维度或最低维度开始。
当您选择数学和数据类型 > 使用针对行优先数组布局优化的算法配置参数时,对于非零值,行优先布局中的子表选择行为会有所优化。
假设您的 Interpolation Using Prelookup 模块中有三维表数据。以下行为适用于列优先算法。
| 所选维度的数量 | 模块的动作 | 模块外观 |
|---|---|---|
| 0 | 对整个表进行插值,并且不激活子表选择 | 不更改 |
| 1 | 对前两个维度进行插值,并选择第三个维度 | 显示标签为 s3 的输入端口,用于选择二维表,然后对其插值 |
| 2 | 对第一个维度进行插值,并选择第二个维度和第三个维度 | 显示标签为 s2 和 s3 的两个输入端口,用于选择一维表,然后对其插值 |
子表选择使用从 0 开始的索引。有关对表数据子集进行插值的示例,请参阅 使用 Prelookup 和 Interpolation 模块。
对于没有子表选择的二维或 n 维插值,列优先算法和行优先算法在输出计算的顺序上可能有所不同,导致数值结果略有不同。
示例
此示例说明如何将断点数据集从 Constant 模块馈入 Prelookup 模块的 bp 输入端口。

Prelookup 模块从 bp 输入端口继承以下断点属性:
最小值:
Inf最大值:
Inf数据类型:
single
同样,Constant 模块将表数据值提供给 Interpolation Using Prelookup 模块的 T 输入端口,该模块继承以下属性:
最小值:
Inf最大值:
Inf数据类型:
single
Simulink® 使用双精度浮点数据来执行此模型中的计算。但是,该模型将断点和表数据存储为单精度浮点数据。使用较低精度的数据类型存储断点和表数据可减少内存要求。
此示例说明如何在 Prelookup 模块中指定均匀分布的断点数据。
在断点数据部分中,设定参数设置为 Even spacing。参数第一个点、间距和点数分别设置为 25、12 和 4。指定这些参数会创建四个等间距断点:[25, 37, 49, 61]。
指定等间距断点的另一种方法是将设定设置为 Explicit values,并将值设置为 [25:12:61]。

Simulink® 使用双精度浮点数据来执行此模型中的计算。但是,该模型将断点和表数据存储为双精度值。
此示例说明如何从 Prelookup 模块输出包含索引 (k) 和区间比 (f) 的总线。然后,总线对象可以用做 Interpolation Using Prelookup 模块的输入。该示例还显示如何在不使用总线对象的情况下获得相同的结果。
打开并仿真模型。

在模型顶部,打开 Prelookup 模块的对话框。在常设选项卡中,请注意输出选择设置为 Index and fraction as bus。在数据类型选项卡中,请注意输出设置为 Bus: myBus。在 Simulink® 编辑器中,选择建模>模型设置>模型属性并打开回调选项卡。在模型的 PreLoadFcn 中,代码定义总线对象 myBus,该对象将索引指定为第一个总线元素,将区间比指定为第二个元素。
打开 Interpolation Using Prelookup 模块的对话框。在主选项卡中,请注意已选中需要以总线输出的索引和区间比复选框。该选项将模块配置为使用 Prelookup 模块的总线输出。
扩展示例
Saving Memory in Prelookup and Interpolation Using Prelookup Blocks by Using Smaller Data
Save memory in Prelookup and Interpolation Using Prelookup blocks. The Prelookup and Interpolation Using Prelookup blocks allow you to explicitly set data type for storing breakpoints and table data, respectively. The Prelookup block allows the breakpoint data to differ from the input data type, and the Interpolation Using Prelookup block allows the table data to differ from the output data type.
在 Prelookup 和 Interpolation 模块中共享参数
此示例说明 Prelookup 和 Interpolation 模块如何在生成代码中共享其参数数据。
(Fixed-Point Designer)
Interpolation 模块中的高精度计算
此示例说明如何使用内部规则在 Interpolation Using Prelookup 模块中执行高精度计算。Interpolation 模块允许设置中间结果的数据类型。
(Fixed-Point Designer)
端口
输入
从 0 开始的索引 k,指定包含输入 u 的区间,用于表的第一个维度。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
区间比 f,表示输入在区间 k 内的归一化位置,用于表的第一个维度。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
从 0 开始的索引 k,为表的第 n 个维度指定包含输入 u 的区间。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
区间比 f,表示输入在区间 k 内的归一化位置,用于表的第 n 个维度。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
kf1 端口的输入,包含索引 k 和区间比 f,指定为总线对象。
依赖关系
要启用此端口,请选中需要以总线输出的索引和区间比复选框。
可用的 kf 输入端口的数量取决于维数和子表选择维数参数的值。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point | bus
kfn 端口的输入,包含输入的第 n 维的索引 k 和区间比 f,指定为总线对象。
依赖关系
要启用此端口,请选中需要以总线输出的索引和区间比复选框。
可用的 kf 输入端口的数量取决于维数和子表选择维数参数的值。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point | bus
对于列优先算法,模块使用 sm、sm+1、...、sn 端口的输入来执行子表选择和插值。m 映射到表的第 m 个维度。n 等于维数。
对于行优先算法,模块使用 s1、s2、...、sm 端口的输入来执行子表选择和插值。m 映射到表的第 m 个维度。m 等于子表选择维数。
依赖关系
要启用此端口,子表选择维数必须为小于或等于维数的正整数。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus
表数据值作为端口 T 的输入提供。通常,这些表值对应于在 Prelookup 模块中指定的断点数据集。Interpolation Using Prelookup 模块基于从 Prelookup 模块馈送的索引 (k) 和区间比 (f) 值查找或估计表值,进而生成输出。
依赖关系
要启用此端口,请将源设置为输入端口。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
输出
N 维函数的逼近,通过使用来自输入索引 k 和区间比 f 的值内插(或外插)表数据而计算得出。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
参数
常设
表数据
指定表数据必须具有的维数。维数定义该表的自变量的数目。
| 要指定... | 执行此操作... |
|---|---|
| 1、2、3 或 4 | 从下拉列表中选择值。 |
| 更高的表维数 | 直接在字段中输入正整数。 此模块支持的最大表维数为 30。 |
编程用法
模块参数:NumberOfTableDimensions |
| 类型:字符向量 |
值:'1' | '2' | '3' |'4' | ... | '30' |
默认值:'2' |
选中此复选框可在一个总线中合并索引和区间比输入。
要使 Prelookup 模块能够向 Interpolation Using Prelookup 模块提供输入,请进行如下设置:
将输出选择设置为索引和区间比作为总线
将输出设置为 Bus: <object name>,其中
<object name>必须为模型可访问的有效总线对象名称
无论此复选框设置如何,选择端口始终以非总线模式运行。
编程用法
模块参数:RequireIndexFractionAsBus |
| 类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
指定是直接输入表数据还是使用查找表对象。如果将此参数设置为:
显式值,则源和值参数在对话框中可见。
查找表对象,则名称参数在对话框中可见。
编程用法
模块参数:TableSpecification |
| 类型:字符向量 |
值:'Explicit values' | 'Lookup table object' |
默认值:'Explicit values' |
要将此参数从 'Explicit values' 设置为 'Lookup table object',请使用相同的 set_param 调用来设置 LookupTableObject 参数。例如:
set_param('myModel/myInterpBlock',... 'TableSpecification','Lookup table object',... 'LookupTableObject','myLUTObject')
指定是在对话框中输入表数据,还是从输入端口继承数据。如果将源设置为:
对话框,则在值下的文本框中输入表数据
输入端口,则验证上游信号向表输入端口提供表数据
依赖关系
要启用此参数,请将设定设置为显式值。
编程用法
模块参数:TableSource |
| 类型:字符向量 |
值:'Dialog' | 'Input port' |
默认值:'Dialog' |
将表数据指定为 N 维数组,其中 N 是维数参数的值。编辑模块图时,您可以在值编辑字段中输入空矩阵 ([]) 或未定义的工作区变量,而无需指定正确维度的矩阵。有关如何在 MATLAB® 中构造多维数组的信息,请参阅 多维数组。
如果您将源设置为输入端口,请验证上游信号是否向 T 输入端口提供表数据。表数据的大小必须与表维数相匹配。对于此选项,模块从 T 输入端口继承表属性。
要使用查找表编辑器编辑查找表,请点击编辑(请参阅查找表编辑器)。
依赖关系
要启用此参数并在对话框中显式指定表值,您必须将设定设置为显式值并将源设置为对话框。
编程用法
模块参数:Table |
| 类型:字符向量 |
| 值: 标量 | 向量 | 矩阵 | N 维数组 |
默认值:'sqrt([1:11]' * [1:11])' |
指定 Simulink.LookupTable 对象的名称。查找表对象引用 Simulink® 断点对象。如果 Simulink.LookupTable 对象不存在,请点击操作按钮
并选择创建。新查找表对象的对应参数会自动用模块信息填充。
依赖关系
要启用此参数,请将设定设置为查找表对象。
编程用法
模块参数:LookupTableObject |
| 类型:字符向量 |
值:Simulink.LookupTable object |
默认值:'' |
算法
指定模块对表数据进行插值的方法。您可以选择 Linear point-slope、Flat、Nearest 或 Linear Lagrange。有关详细信息,请参阅内插方法。
编程用法
模块参数:InterpMethod |
| 类型:字符向量 |
值:'Flat' | 'Linear point-slope' | 'Nearest' | 'Linear Lagrange' |
默认值:'Linear point-slope' |
指定模块对断点数据集范围之外的所有输入进行外插的方法。您可以选择裁剪或线性。有关详细信息,请参阅外插方法。
如果外插方法是线性,则基于所选择的线性插值方法计算外插值。例如,如果插值方法是线性拉格朗日,则外插方法继承线性拉格朗日方程以计算外插值。
要使用 Prelookup 和 Interpolation Using Prelookup 模块来复制 n-D Lookup Table 模块行为,用于 Prelookup 和 Interpolation Using Prelookup 模块的外插方法必须与仅使用 n-D Lookup Table 模块时相同。例如,要获得与外插方法设置为线性的 n-D Lookup Table 模块相同的行为,请将 Prelookup 和 Interpolation Using Prelookup 模块的外插方法设置为线性。
依赖关系
要启用外插方法参数,请将内插方法设置为线性。
当输入或输出信号指定整数或定点数据类型时,Interpolation Using Prelookup 模块不支持线性外插。
编程用法
模块参数:ExtrapMethod |
| 类型:字符向量 |
值:'Clip' | 'Linear' |
默认值:'Linear' |
指定具有索引 (k) 和区间比 (f) 的模块输入如何访问 n 维表数据最后的元素。索引值从 0 开始。
当输入索引等于或大于该维度的表的最后一个索引时,此复选框才有意义。由于舍入,选中和清除此复选框可能会导致仿真和代码生成之间最后一个索引的结果不同。
| 复选框 | 模块行为 |
|---|---|
|
| 当出现以下情况时,返回表维度中最后一个元素的值:
|
|
| 当出现以下情况时,返回表维度中最后一个元素的值:
|
依赖关系
仅在以下情况下,此复选框才可见:
内插方法是线性点-斜率或线性拉格朗日
外插方法为裁剪
提示
当您为 Interpolation Using Prelookup 模块选择有效的索引输入可到达最后一个索引时,您还必须为向此模块馈送数据的所有 Prelookup 模块选择将最后一个断点用于等于或高于上限的输入。此操作允许模块在访问其断点和表数据集的最后一个元素时使用相同的索引约定。
编程用法
模块参数:ValidIndexMayReachLast |
| 类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
自 R2025a 起
指定是否包含代码以检查超出范围的索引值。选择此参数意味着您保证该模块没有超出范围的索引,从而使模块能够进一步优化代码和仿真。有效索引范围取决于断点数据和外插方法设置。
如果您选择假设索引在范围内:
在仿真期间,模块假定没有超出范围的索引,并通过对超出范围的索引返回错误来强制实现此假设。
对于代码生成,模块不会生成超出范围的索引处理代码,因为它假定不存在超出范围的索引。这意味着,如果模块尝试为因索引超出范围而返回错误的模型生成代码,则当给生成的代码提供相同的索引时,其行为是未定义的,这可能导致严重后果。
警告
如果模型尝试生成代码,但由于模块检测到索引超出范围而生成错误,则当将相同的超出范围的索引传递给已部署的代码时,行为是未定义的。这种未定义的行为可能导致严重问题。对于安全性至关重要的应用,请不要选择假设索引在范围内。
如果您要为了提升效率而选择假设索引在范围内参数,请确保模型索引在范围内。例如:
| 参数 | 结果 | 何时使用 |
|---|---|---|
| 仿真和生成的代码中未包含用来检查超出范围的断点索引的条件语句。 当索引超出范围时,仿真和生成的代码可能会发生未定义的行为。 | 为了提升仿真和代码效率 |
| 仿真和生成的代码包含用来检查超出范围的索引的条件语句。 | 适用于安全性至关重要的应用领域 |
如果您确信索引在范围内,则可以为了提升效率选择假设索引在范围内参数。默认情况下,此参数处于清除状态。对于安全性至关重要的应用,不要选择此参数。如果您要选择假设索引在范围内参数,请先检查模型索引是否在范围内。例如:
清除假设索引在范围内参数。
将超范围索引的诊断参数设置为
Error。在普通模式下进行模型仿真。
如果存在超出范围错误,模块将返回运行时错误。请将它们更正到范围之内,然后再次运行仿真。
当仿真不再生成超范围索引错误时,选择假设索引在范围内参数。
注意
当您选择假设索引在范围内参数且索引超出范围时,模块会在仿真时返回运行时错误。生成的代码的行为是未定义的。
根据您的具体应用,您可以运行以下模型顾问检查,以验证此参数的使用:
按产品 > Embedded Coder > 标识哪些查找表模块会生成检查超范围值的高成本代码
按产品 > Simulink Check > 建模标准 > DO-178C/DO-331 检查 > 检查 Lookup Table 模块的使用
有关模型顾问的详细信息,请参阅运行模型顾问检查。
此外,要确定选择此参数是否安全,如果您拥有 Simulink Design Verifier™ 许可证,请考虑使用 检测模块输入范围违规 (Simulink Design Verifier) 检查。
编程用法
模块参数:RemoveProtectionIndex |
| 类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
指定当输入超出范围时,是否生成警告或错误消息。选项包括:
无 - 不产生任何响应。
警告 - 显示警告并继续进行仿真。
错误 - 终止仿真并显示错误。
依赖关系
要启用此参数,请清除假设输入在范围内或假设索引在范围内参数。
编程用法
模块参数:DiagnosticForOutOfRangeInput |
| 类型:字符向量 |
值:'None' | 'Warning' | 'Error' |
默认值:'None' |
指定模块用于计算输出的子表的维数。请遵循以下规则:
要启用子表选择,请输入正整数。
该整数必须小于或等于表维数。
要禁用子表选择,请输入
0以对整个表进行插值。
当您选择数学和数据类型 > 使用针对行优先数组布局优化的算法配置参数时,对于非零值,行优先布局中的子表选择行为会有所优化。
有关详细信息,请参阅模块如何对表数据的子集进行插值。
编程用法
模块参数:NumSelectionDims |
| 类型:字符向量 |
值:'0' | '1' | '2' | '3' | '4' | ... | Number of table dimensions |
默认值:'0' |
数据类型
指定表数据类型。可以将其设置为:
继承数据类型的规则,例如继承: 与输出相同
内置数据类型的名称,例如
single数据类型对象的名称,例如
Simulink.NumericType对象计算结果为数据类型的表达式,例如
fixdt(1,16,0)
点击显示数据类型助手按钮
以显示数据类型助手,以便设置表数据类型。
提示
对于以下情况,指定与输出数据类型不同的表数据类型:
存储表数据(使用的类型小于输出信号)的内存要求较低
在具有不同输出数据类型的两个 Interpolation Using Prelookup 模块之间共享预缩放的表数据
在为具有不同输出数据类型的模块生成的 Simulink Coder™ 代码中共享自定义存储表数据
编程用法
模块参数:TableDataTypeStr |
| 类型:字符向量 |
值:'Inherit: Inherit from table data' | 'Inherit: Same as output' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
默认值:'Inherit: Same as output' |
将表数据的最小值指定为有限双精度实数标量。默认值为 [](未指定)。
编程用法
模块参数:TableMin |
| 类型:字符向量 |
| 值:标量 |
默认值:'[]' |
将表数据的最大值指定为有限双精度实数标量。默认值为 [](未指定)。
编程用法
模块参数:TableMax |
| 类型:字符向量 |
| 值:标量 |
默认值:'[]' |
指定中间结果数据类型。可以将其设置为:
继承数据类型的规则,例如继承: 与输出相同
内置数据类型的名称,例如
single数据类型对象的名称,例如
Simulink.NumericType对象计算结果为数据类型的表达式,例如
fixdt(1,16,0)
数据类型助手可帮助您设置数据属性。要使用数据类型助手,请点击
。有关详细信息,请参阅使用数据类型助手指定数据类型。
提示
使用此参数为内部计算指定高于表数据或输出数据的精度。
编程用法
模块参数:IntermediateResultsDataTypeStr |
| 类型:字符向量 |
值:'Inherit: Inherit via internal rule' | 'Inherit: Same as output' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
默认值:'Inherit: Inherit via internal rule' |
指定输出数据类型。可以将其设置为:
继承数据类型的规则,例如继承: 通过反向传播继承
内置数据类型的名称,例如
single数据类型对象的名称,例如
Simulink.NumericType对象计算结果为数据类型的表达式,例如
fixdt(1,16,0)
点击显示数据类型助手按钮
可以显示数据类型助手,这有助于您设置输出数据类型。
有关详细信息,请参阅 。
编程用法
模块参数:OutDataTypeStr |
| 类型:字符向量 |
值:'Inherit: Inherit via back propagation' | 'Inherit: Inherit from table data' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
默认值:'Inherit: Inherit from table data' |
将模块应输出的最小值指定为有限实数值标量。默认值为 [](未指定)。Simulink 软件使用此值执行:
参数范围检查(请参阅指定模块参数的最小值和最大值)。
仿真范围检查(请参阅指定信号范围)。
定点数据类型的自动定标。
从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅使用指定的最小值和值进行优化 (Embedded Coder)。
编程用法
模块参数:OutMin |
| 类型:字符向量 |
| 值:标量 |
默认值:'[]' |
将模块应输出的最大值指定为有限实数值标量。默认值为 [](未指定)。Simulink 软件使用此值执行:
参数范围检查(请参阅指定模块参数的最小值和最大值)。
仿真范围检查(请参阅指定信号范围)。
定点数据类型的自动定标。
从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅使用指定的最小值和值进行优化 (Embedded Coder)。
编程用法
模块参数:OutMax |
| 类型:字符向量 |
| 值:标量 |
默认值:'[]' |
指定进行中间计算的内部规则。选择速度可以提高计算速度。但这样可能会损失精度,通常最多 2 位。
编程用法
模块参数:InternalRulePriority |
| 类型:字符向量 |
值:'Speed' | 'Precision' |
默认值:'Speed' |
选择此参数可防止定点工具覆盖您对此模块指定的数据类型。有关详细信息,请参阅Lock the Output Data Type Setting (Fixed-Point Designer)。
编程用法
模块参数:LockScale |
| 类型:字符向量 |
值:'off' | 'on' |
默认值:'off' |
指定定点运算的舍入模式。有关详细信息,请参阅舍入模式 (Fixed-Point Designer)。
模块参数始终舍入到最邻近的可表示值。要控制模块参数的舍入方法,请在封装字段中使用 MATLAB 舍入函数输入表达式。
编程用法
模块参数:RndMeth |
| 类型:字符向量 |
值:'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
默认值:'Floor' |
指定对溢出是进行饱和处理还是绕回处理。
on- 将溢出饱和处理为数据类型能够表示的最小值或最大值。off- 溢出将绕回到数据类型可以表示的合适值。
例如,有符号 8 位整数 int8 可以表示的最大值是 127。任何大于此最大值的模块运算结果都会导致 8 位整数溢出。
选择此参数后,模块输出将在达到 127 时饱和。类似地,模块输出将在达到最小输出值 -128 时饱和。
清除此参数后,软件会将导致溢出的值解释为
int8,这可能产生意外结果。例如,以int8表示的模块结果 130(二进制 1000 0010)为 -126。
提示
如果您的模型存在可能的溢出,而您希望在生成的代码中进行显式饱和保护,请考虑选中此参数。
如果您希望优化生成的代码的效率,请考虑清除此参数。清除此参数还可以帮助您避免过度地指定信号超出范围时模块的处理方式。有关详细信息,请参阅信号范围错误故障排除。
如果选中此参数,饱和将应用于模块中的每个内部操作,而不仅仅应用于输出或结果。
一般情况下,代码生成进程可以检测到何时不可能发生溢出。在这种情况下,代码生成器不会生成饱和代码。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | SaturateOnIntegerOverflow |
| 值: | 'off' (默认) | 'on' |
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
Simulink PLC Coder™ 对查询表模块的支持有限。代码生成器不支持:
大于 2 的维数
三次样条插值方法
使用先前的索引模式开始索引搜索
三次样条外插方法
定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。
版本历史记录
在 R2006b 中推出删除生成代码中防止超范围索引的代码参数已被假设指标在范围内取代。编程名称 RemoveProtectionInput 保持不变。
如果模型仿真因将超出范围的索引馈送到选中假设索引在范围内的模块而生成错误,则当生成的代码在执行期间出现相同的超出范围的索引时,该模型生成的代码具有未定义的行为。此情况可能导致严重问题。这种未定义的行为可能导致严重问题。对于安全性至关重要的应用,请不要选择删除生成代码中防止超范围索引的代码。
在 R2025a 之前的版本中,删除生成代码中防止超范围索引的代码仅会删除生成代码中对超出范围值的代码检查。模块无法检测到这些问题。作为解决方法,如果您有 R2025a 之前版本的模型且无法迁移到更高版本,请将输入超出范围的诊断参数设置为错误。下次运行模型时,当索引超出范围时将生成错误。
另请参阅
模块
工具
主题
- Lookup Table Overview
- 输入断点和表数据
- Common Uses of Prelookup and Interpolation Using Prelookup Blocks
- 根据输入、断点和输出数据选择 Lookup Table 模块
- Column-Major Layout to Row-Major Layout Conversion of Models with Lookup Table Blocks (Simulink Coder)
- Interpolation with Subtable Selection Algorithm for Row-Major Array Layout (Simulink Coder)
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)



