主要内容

Prelookup

使用预查找块计算插值的索引和分数

  • 库:
  • 万博1manbetxSimulink /查找表

    HDL编码器/查找表

  • Prelookup块

描述

Prelookup块计算指定其输入值的索引和间隔分数u与断点数据集相关。Prelookup块与使用预查找的插值块。输入结果索引和分数值到插值使用预查找块插值n维表。这两个块有分布式算法。组合在一起时,它们执行与集成算法中相同的操作n-D查找表块。然而,Prelookup和使用预查找的插值块提供了更大的灵活性和更有效的模拟和代码生成n-D查找表块。有关更多信息,请参见绩效效率

万博1manbetx支持的块操作

若要使用预查找块,必须指定一组断点值。您可以选择是直接在对话框上指定断点值,还是将这些值提供给英国石油公司的输入端口参数对话框输入端口.通常,此断点数据集对应于“使用预查找插值”块中的表数据的一维。Prelookup块为每个输入值生成一对输出u通过计算:

  • 小于或等于的断点集元素的索引u并形成一个区间包含u

  • 在0≤f < 1范围内的区间分数,表示归一化的位置u在范围内输入的索引值和下一个索引值之间的断点间隔上

例如,如果断点数据集为[0 5 10 20 50 100]和输入值u为55,指数为4,分数值为0.1。索引和区间分数的标签显示为k而且f在预查找块图标上。索引值从零开始。

区间分数可以为负或大于1对于超出范围的输入。看到外推法块参数获取更多信息。

港口

输入

全部展开

Prelookup块接受Simulink中任何数值数据类型的实值信号万博1manbetx®万博1manbetx支持,布尔值除外。Prelookup块支持信号和断点数据的万博1manbetx定点数据类型。

数据类型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|不动点|枚举|公共汽车

Prelookup块接受实值信号作为Simulink支持的任何数值数据类型(布尔型除外)的断点数据。万博1manbetx万博1manbetx

数据类型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|不动点|枚举

输出

全部展开

从零开始的索引,k,是一个实值整数,指定包含输入的间隔,u

依赖关系

若要启用此端口,请设置输出选择指数和分数指数只

数据类型:int8|int16|int32|int64|uint8|uint16|uint32|uint64|不动点

分数,f,表示输入的归一化位置,u,在区间内k

依赖关系

若要启用此端口,请设置输出选择指数和分数

数据类型:||不动点

输出索引,k,和分数f,作为总线对象可以帮助简化模型。

依赖关系

若要启用此端口,请设置输出选择指数和分数作为总线

数据类型:公共汽车

参数

全部展开

主要

断点数据

如果将此参数设置为:

  • 明确的价值观,而且价值参数在对话框中可见。

  • 甚至间距,第一点间距,点数参数在对话框中可见。

  • 断点对象,的名字参数在对话框中可见。

编程使用

块参数:BreakpointsSpecification
类型:特征向量
价值观:'显式值' | '甚至空格' | '断点对象
默认值:“显式值”

如果你设置:

  • 对话框下指定断点数据价值

  • 输入端口,验证上游信号是否向英国石油公司输入端口。每个断点数据集必须是一个严格单调递增的向量,其中包含两个或多个元素。属性的断点属性英国石油公司输入端口。

依赖关系

若要启用该参数,请设置规范明确的价值观

编程使用

块参数:BreakpointsDataSource
类型:特征向量
价值观:对话框|输入端口
默认值:“对话框”

显式地指定断点数据。每个断点数据集必须是一个严格单调递增的向量,其中包含两个或多个元素。属性上的其他断点属性数据类型窗格。

要打开“查找表编辑器”,单击编辑(见编辑查找表).

请注意

当你设置规范明确的价值观而且输入端口,验证上游信号是否向英国石油公司输入端口。每个断点数据集必须是一个严格单调递增的向量,其中包含两个或多个元素。属性的断点属性(包括数据类型)英国石油公司输入端口。

依赖关系

若要启用该参数,请设置规范明确的价值观而且对话框

编程使用

块参数:BreakpointsData
类型:特征向量
价值观:包含两个或多个元素的严格单调递增值的向量
默认值:“[10:10:110]”

依赖关系

若要启用该参数,请设置规范甚至间距

编程使用

块参数:BreakpointsFirstPoint
类型:特征向量
价值观:实值标量
默认值:“十”

依赖关系

若要启用该参数,请设置规范甚至间距

编程使用

块参数:BreakpointsSpacing
类型:特征向量
价值观:实数,正标量
默认值:“十”

依赖关系

若要启用该参数,请设置规范甚至间距

编程使用

块参数:BreakpointsNumPoints
类型:特征向量
价值观:实数,正标量
默认值:“11”

的名称万博1manbetx仿真软件。断点对象。断点对象引用Simulink断点对象。万博1manbetx如果一个万博1manbetx仿真软件。断点对象不存在,请单击操作按钮并选择创建.新断点对象的相应参数将自动填充块信息。

依赖关系

若要启用该参数,请设置规范断点对象

编程使用

块参数:BreakpointObject
类型:特征向量
价值观:万博1manbetx仿真软件。断点对象
默认值:
算法

如果您希望该块输出索引和间隔分数,您可以指定该块输出单个信号还是同时包含索引和分数信号的总线信号。

  • 指数只只输出索引,不输出分数。此选项的典型应用包括:

    • 喂一个直接查表(n-D)块,在间隔上没有插值

    • 的子表选择的输入选择端口使用预查找的插值

    • 执行非线性量化

  • 指数和分数将指数和分数作为单独的信号输出。

  • 指数和分数作为总线输出包含索引和分数信号的总线信号。为这些信号使用总线:

    • 通过将这两个相关信号联系在一起来简化模型

    • 创建一个测试点DpResult结构的AUTOSAR 4.0库

    • 对于AUTOSAR 4.0库,避免在代码生成过程中创建额外的副本Prelookup而且使用预查找的插值块在单独的模型中

    请注意

    选择指数和分数作为总线显示了输出参数中的数据类型窗格,并设置输出参数继承:汽车.更改此默认值以指定用户定义的总线对象。有关定义总线对象的详细信息,请参见输出参数描述。

编程使用

块参数:OutputSelection
类型:特征向量
价值观:索引和分数“|”作为总线的索引和分数“|”仅用于索引
默认值:“指数与分数”

每种搜索方法在不同情况下都有速度优势:

  • 对于间隔均匀的断点集(例如,10、20、30等等),可以通过选择来获得最佳速度等距点计算表索引。该算法仅使用集合的前两个中断点来确定其余点的偏移和间距。

  • 对于间隔不均匀的断点集,请遵循以下准则:

    • 如果输入值为u时间步长之间变化不明显,选择线性搜索开始索引搜索使用以前的索引结果产生最好的性能。

    • 如果输入值为u选择时,每个时间步跃超过一个或两个表间隔二分查找产生最好的性能。

索引搜索方法的次优选择可能导致严重依赖查找表的模型性能变慢。

请注意

生成的代码只存储第一个断点、间隔和断点的数量:

  • 断点数据不可调。

  • 索引搜索方法为等距点

编程使用

块参数:IndexSearchMethod
类型:特征向量
价值观:“等距点”|“线性搜索”|“二分法”
默认值:“二分法”

对于输入值u随着间隔大小的变化缓慢,启用这个选项可以提高性能。否则,线性搜索和二分搜索方法会花费更长的时间,特别是对于大型断点集。

编程使用

块参数:BeginIndexSearchUsingPreviousIndexResult
类型:特征向量
价值观:“关闭”|“上”
默认值:“关闭”

选项包括:

  • 剪辑

    块的输入 块输出

    小于第一个断点

    • 第一个断点的索引(例如,0

    • 区间分数0

    大于上一个断点

    • 倒数第二个断点的索引

    • 区间分数1

    假设值域为[1 2 3]你选择了这个选项。如果u0.5,索引为0区间分数是0.如果u3.5,索引为1区间分数是1

  • 线性

    块的输入 块输出

    小于第一个断点

    • 第一个断点的索引(例如,0

    • 区间分数表示的线性距离u到第一个断点

    大于上一个断点

    • 倒数第二个断点的索引

    • 表示从下一个断点到的线性距离的间隔分数u

    假设值域为[1 2 3]你选择了这个选项。如果u0.5,索引为0区间分数是-0.5.如果u3.5,索引为1区间分数是1.5

请注意

Prelookup块仅在满足以下所有条件万博1manbetx时支持线性外推:

  • 输入u、断点数据和分数输出使用浮点数据类型。

  • 索引使用内置整数数据类型。

编程使用

块参数:ExtrapMethod
类型:特征向量
价值观:“剪辑”|“线性”
默认值:“剪辑”

指定如何索引的输入值u大于或等于最后一个断点的。索引值从零开始。当输入等于最后一个断点时,块输出如下所示。

复选框 块输出

选择(

  • 断点数据集中最后一个元素的索引

  • 区间分数0

清除(

  • 倒数第二个断点的索引

  • 区间分数1

提示

当你选择对于大于或等于上限的输入,使用最后一个断点对于预查找块,也必须选择有效的索引输入可能到达最后一个索引使用预查找的插值它所连接到的块。此操作允许块在访问断点和表数据集的最后一个元素时使用相同的索引约定。

依赖关系

此复选框仅在以下情况下可见:

  • 只输出索引清除

  • 外推法剪辑

然而,当只输出索引被选中,并且外推法剪辑时,该块的行为就像选中了该复选框一样,即使它是不可见的。

编程使用

块参数:UseLastBreakpoint
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

选项包括:

  • 没有一个-没有回应。

  • 警告-显示警告并继续模拟。

  • 错误-终止模拟并显示错误。

编程使用

块参数:DiagnosticForOutOfRangeInput
类型:特征向量
价值观:' | '警告' | '错误'
默认值:“没有”
代码生成
复选框 结果 何时使用

生成的代码不包括检查超出范围的断点输入的条件语句。

当输入超出范围时,可能会导致生成的代码出现未定义的行为。

为了提高代码效率

生成的代码包括条件语句,用于检查超出范围的断点输入。

安全关键应用

如果您的输入没有超出范围,您可以选择在生成的代码中删除对超出范围索引的保护复选框表示代码效率。默认情况下,该复选框被清除。对于安全性较高的应用,请不要选中此复选框。如果要选择在生成的代码中删除对超出范围索引的保护复选框,首先检查您的模型输入是否在范围内。例如:

  1. 清除在生成的代码中删除对超出范围索引的保护复选框。

  2. 设置诊断超出范围的输入参数错误

  3. 在正常模式下模拟模型。

  4. 如果有超出范围的错误,将它们修复到范围内并再次运行模拟。

  5. 当模拟不再产生超出范围的输入错误时,选择在生成的代码中删除对超出范围索引的保护复选框。

    请注意

    当你选择在生成的代码中删除对超出范围索引的保护复选框,且输入超出范围,则生成的代码的行为未定义

根据您的应用程序,您可以运行以下Model Advisor检查来验证此复选框的使用:

此外,要确定选择此复选框是否安全,如果您有万博1manbetxSimulink设计验证器™许可证,考虑使用检测块输入范围违反(万博1manbetxSimulink Design Verifier)检查。

  • 通过产品>嵌入式编码器>识别生成昂贵的范围外检查代码的查找表块

  • 通过产品>万博1manbetx仿真软件检查>建模标准>- 331 - 178 - c /做检查吗>检查查找表块的使用情况

有关Model Advisor的更多信息,请参见运行Model Advisor检查

编程使用

块参数:RemoveProtectionInput
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

指定采样时间为-1以外的值。有关更多信息,请参见指定采样时间

依赖关系

此参数不可见,除非显式地设置为其他值-1.要了解更多信息,请参见不建议采样时间的块

编程使用

块参数:SampleTime
类型:特征向量
价值观:标量或向量
默认值:' 1 '

数据类型

指定断点数据类型。你可以设置为:

  • 继承数据类型的规则,例如,Inherit:与input相同

  • 内置数据类型的名称,例如,

  • 数据类型类的名称,例如,枚举数据类型类

  • 求值为数据类型的表达式,例如,fixdt (1 16 0)

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

提示

  • 指定与输入数据类型不同的断点数据类型u对于这些情况:

    • 用于存储使用比输入信号更小类型的断点数据的较低内存需求u

    • 在两个之间共享预先缩放的断点数据Prelookup块,用于输入不同的数据类型u

    • 为输入的数据类型不同的块在生成的代码中共享自定义存储断点数据u

  • 为断点数据类型及其对应的输入数据类型指定相同的斜率和偏置(如果其中任何一个具有定点数据类型)。

  • 枚举数据:

    • 断点支持无序枚举数据。万博1manbetx因此,线性搜索也是无序的,这提供了灵活性,但会影响性能。搜索从断点中的第一个元素开始。

    • 如果开始索引搜索使用以前的索引结果复选框,则必须使用有序单调递增的数据。这种排序可以提高性能。

    • 对于枚举数据,外推法必须剪辑

    • 因为分数是10中,选择输出选择>指数只

      方法使用仅索引输出选择设置使用预查找的插值块,考虑使用子表选择维数参数。

以下是在此块中使用枚举数据的限制:

  • 该块不支持超出范围的枚举数据输入。万博1manbetx指定枚举数据时,将整个枚举集包含在断点数据集中。例如,使用枚举函数。

  • 当断点数据源设置为时替代进口港口,枚举数据类型必须具有0为默认值。例如,对于此枚举类,的默认值为GEAR1必须0

    classdef(枚举)齿轮< Simulink。万博1manbetxIntEnumType枚举GEAR1(1), GEAR2(2), GEAR3(4), GEAR4(8),运动(16),反向(32),中性(0)结束结束

依赖关系

若要启用此参数,请设置断点数据对话框

请注意

当你设置输入端口的所有断点属性(数据类型、最小值和最大值)英国石油公司输入端口。

编程使用

块参数:BreakpointDataTypeStr
类型:特征向量
价值观:继承:继承自“断点数据”|' double' |' single' |' int8' |' uint8' |' int16' |' uint16' |' int32' |' uint32' |' int64'| 'uint64'| 'fixdt(1,16)' |' fixdt(1,16,0)' |' fixdt(1,16,2^0,0)'|'<数据类型表达式>'
默认值:“继承:与输入相同”

指定可以索引断点数据集中所有元素的数据类型。您可以:

  • 从列表中选择内置整数数据类型。

  • 使用定点表示形式指定整数数据类型。

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

编程使用

块参数:IndexDataTypeStr
类型:特征向量
价值观:
'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | '<数据类型表达式>'
默认值:“uint32”

指定间隔分数的数据类型。您可以:

  • 从列表中选择内置数据类型。

  • 通过内部规则指定数据类型继承。

  • 使用[Slope Bias]或仅限二进制点的缩放表示法指定定点数据类型。

    • 如果您使用[斜率偏差]表示,缩放必须是平凡的-也就是说,斜率是1偏差是0

    • 如果使用仅为二进制点的表示,则固定的2次幂指数必须小于或等于零。

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

依赖关系

此参数仅在设置时显示输出选择主要选项卡,指数和分数

编程使用

块参数:FractionDataTypeStr
类型:特征向量
价值观:fixdt(1,16,0)' | '<数据类型表达式>'
默认值:“继承:通过内部规则继承”

要输出虚拟总线,请使用继承:汽车设置。生成的虚拟总线包含两个元素,索引信号和分数信号。

要输出和指定非虚拟总线,请使用总线:<对象名称>模板。取代<对象名称>使用包含索引和分数信号的总线对象的名称。

  • 总线对象必须包含两个元素。第一个元素对应于指标信号,第二个元素对应于分数信号。

  • 索引和分数总线元素信号不能是总线信号。

  • 总线元素的数据类型和复杂性必须满足适用于索引和分数信号的相同约束输出选择指数和分数

要使用索引和分数总线元素创建总线对象,请使用MATLAB®与此类似的代码,自定义总线对象名称以及总线元素的名称和数据类型。

总线对象:kfBuselems(1) = 万博1manbetxSimulink.BusElement;elem(1)。Name =“指数”;elem(1)。数据类型=“int8”;elems(2) = 万博1manbetxSimulink.BusElement;elem(2)。Name =“分数”;elem(2)。数据类型=“双”;kfBus = 万博1manbetxSimulink.Bus;kfBus。元素= elems;清晰的初步的

方法使用的总线编辑器也可以创建或修改总线对象Prelookup块。

如果您将总线输出信号从此块馈送到使用预查找的插值块,选择要求指数和分数作为总线复选框。

请注意

使用定点工具数据类型覆盖选项可以使用新的总线对象覆盖总线对象,这些总线对象将定点数据类型替换为浮点数据类型。

类使用的覆盖总线对象Prelookup块可能会导致错误,因为块不接受总线上第一个元素的浮点数据类型。

如果遇到此问题,请使用修复按钮重新定义原始总线对象并保护其不被覆盖。例如,假设您将总线对象的第一个元素定义为int32

myBus.Elements (1) .DataType
int32

单击修复按钮重新定义了第一个总线元素:

myBus.Elements (1) .DataType=“fixdt(“int32”、“DataTypeOverride”,“关闭”)”

单击显示数据类型助手按钮显示数据类型助手,它可以帮助您设置数据类型属性。有关更多信息,请参见使用数据类型助手指定数据类型

依赖关系

此参数仅在设置时显示输出选择主要选项卡,指数和分数作为总线

编程使用

块参数:OutputBusDataTypeStr
类型:特征向量
价值观:继承:auto' | '总线:<对象名称>' | '<数据类型表达式>'
默认值:“继承:汽车”

指定断点数据可以具有的最小值。默认值为[](不明)。

依赖关系

若要启用此参数,请设置断点数据对话框主要选项卡。

编程使用

块参数:BreakpointMin
类型:特征向量
值:标量
默认值:“[]”

指定断点数据可以具有的最大值。默认值为[](不明)。

依赖关系

若要启用此参数,请设置断点数据对话框主要选项卡。

编程使用

块参数:BreakpointMax
类型:特征向量
值:标量
默认值:“[]”

选择此参数可防止定点工具覆盖输出您在块上指定的数据类型。有关更多信息,请参见使用锁输出数据类型设置(定点设计师)

编程使用

块参数:LockScale
类型:特征向量
价值观:'off' | 'on'
默认值:“关闭”

为定点操作指定舍入模式。有关更多信息,请参见舍入(定点设计师)

块参数总是舍入到最接近的可表示值。要控制块参数的舍入,请使用MATLAB舍入函数在mask字段中输入表达式。

编程使用

块参数:RndMeth
类型:特征向量
价值观:“天花板”|“收敛”|“地板”|“最近”|“圆”|“最简单”|“零”
默认值:“地板”

块特征

数据类型

|枚举|不动点|整数|

直接引线

是的

多维信号

是的

适应信号

没有

讨论二阶导数过零检测

没有

更多关于

全部展开

扩展功能

C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。万博1manbetx

定点转换
使用定点设计器设计和模拟定点系统。

在R2006b中引入