主要内容

Prelookup

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

  • 库:
  • 金宝appSimulink /查找表

    HDL编码器/查找表

  • Prelookup块

描述

Prelookup块计算指定输入值的索引和区间分数u与断点数据集相关。Prelookup块与插值使用Prelookup块。使用Prelookup块将得到的索引和分数值输入插值n-尺寸表。这两个模块具有分布式算法。当组合在一起时,它们执行与中的集成算法相同的操作一天的查找表块。然而,Prelookup和插值使用Prelookup块提供了更大的灵活性和更有效的模拟和代码生成一天的查找表块有关详细信息,请参阅效率的性能

金宝app支持块操作

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

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

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

例如,如果断点数据集为[0 5 10 20 50 100]和输入值u为55,索引为4,分数值为0.1。索引和区间分数的标签如下所示kf在Prelookup块图标上。索引值是从零开始的。

区间分数可以为负或大于1对于超出范围的输入。看到外推法有关详细信息,请参见块参数。

港口

输入

全部展开

Prelookup块接受Simulink的任何数字数据类型的实值信号金宝app®金宝app支持,布尔值除外。Prelookup块支持信号和断点数据的定点数据类型。

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

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

数据类型:一半|||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]”

依赖关系

要启用此参数,请设置规格甚至间距

编程使用

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

依赖关系

要启用此参数,请设置规格甚至间距

编程使用

块参数:BreakpointsSpacing
类型:特征向量
价值观:实值、积极的标量
默认值:“十”

依赖关系

要启用此参数,请设置规格甚至间距

编程使用

块参数:BreakpointsNumPoints
类型:特征向量
价值观:实值、积极的标量
默认值:“11”

指定对象的名称金宝app仿真软件。断点对象断点对象引用Simulink断点对象。如果金宝app金宝app仿真软件。断点对象不存在,请单击“操作”按钮并选择创建. 新断点对象的相应参数将自动填充块信息。

依赖关系

要启用此参数,请设置规格断点对象

编程使用

块参数:BreakpointObject
类型:特征向量
价值观:金宝app仿真软件。断点对象
默认值:''
算法

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

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

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

    • 给选择端口的子表选择插值使用Prelookup

    • 执行非线性量化

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

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

    • 通过将这两个相关信号捆绑在一起,简化了模型

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

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

    请注意

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

编程使用

块参数:OutputSelection
类型:特征向量
价值观:'Index and fraction' | 'Index and fraction as bus' | 'Index only'
默认值:“指数和分数”

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

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

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

    • 如果的输入值u时间步长之间的差异不明显,请选择线性搜索具有使用以前的索引结果开始索引搜索产生最佳性能。

    • 如果的输入值u每个时间步跳一个或两个以上的表间隔,选择二进制搜索产生最佳性能。

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

请注意

在以下情况下,生成的代码仅存储第一个断点、空格和断点数量:

  • 断点数据不可调。

  • 索引搜索方法为等间距的点

编程使用

块参数:指数搜索法
类型:特征向量
价值观:“等间距的点”|“线性搜索”|“二进制搜索”
默认值:“二进制搜索”

的输入值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块只在下列条件都为真时金宝app支持线性外推:

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

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

编程使用

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

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

复选框 块输出

选择(

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

  • 间隔的一部分0

清除(

  • 倒数第二个断点的索引

  • 间隔的一部分1

提示

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

依赖关系

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

  • 只输出索引清除

  • 外推法剪辑

然而,当只输出索引选择和外推法剪辑,块的行为就像选中了这个复选框,即使它是不可见的。

编程使用

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

选项包括:

  • 没有一个-没有反应。

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

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

编程使用

块参数:DiagnosticForOutOfRangeInput
类型:特征向量
价值观:'无' | 'Warning' | 'Error'
默认值:“没有”
代码生成
复选框 结果 什么时候使用

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

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

代码效率

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

对于安全性至关重要的应用程序

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

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

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

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

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

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

    请注意

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

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

另外,要确定是否安全选择此复选框,如果有金宝app仿真软件设计校验™许可证,考虑使用检测块输入范围违规(金宝app仿真软件设计验证器)检查。

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

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

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

编程使用

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

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

依赖关系

这个参数是不可见的,除非它被显式地设置为非-1.想要了解更多,请看不推荐采样时间的块

编程使用

块参数:取样时间
类型:特征向量
价值观:标量或矢量
默认值:'-1'

数据类型

指定断点数据类型。您可以将其设置为:

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

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

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

  • 计算结果为数据类型的表达式,例如,fixdt (1 16 0)

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

提示

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

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

    • 在两个服务器之间共享预先定标的断点数据Prelookup用于输入的具有不同数据类型的块u

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

  • 如果断点数据类型及其对应的输入数据类型具有定点数据类型,则为它们指定相同的斜率和偏差。

  • 列举数据:

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

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

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

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

      属性的输出选择设置,如果仅使用索引插值使用Prelookup块,考虑使用子表选择维数参数。

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

  • 该块不支持枚举数据的超出范围的输入。金宝app当指定枚举数据时,在断点数据集中包含整个枚举集。例如,使用the枚举作用

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

    < Simulink. classdef(Enumerati金宝appon) Gears枚举GEAR1(1), GEAR2(2), GEAR3(4), GEAR4(8), SPORTS(16), REVERSE(32), NEUTRAL(0)结束结束

依赖关系

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

请注意

当您设置输入端口,块从英国石油公司输入端口。

编程使用

块参数:BreakpointDataTypeStr
类型:特征向量
价值观:继承:继承from ` Breakpoint data ` | ` 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
类型:特征向量
价值观:“继承:通过内部规则继承”|“double”|“single”|“fixdt(1,16,0)”|“<数据类型表达式>”
默认值:“继承:通过内部规则继承”

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

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

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

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

  • 总线元素的数据类型和复杂性必须满足应用于索引和分数信号(如果您设置)的相同约束输出选择指数和分数

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

%总线对象:kfBuselem (1) = 金宝appSimulink.BusElement;elem(1)。Name =“指数”;elem(1)。数据类型=“int8”;elem (2) = 金宝appSimulink.BusElement;elem(2)。Name =“分数”;elem(2)。数据类型=“双人”;kfBus=Sim金宝appulink.Bus;kfBus.Elements=elems;清除初步的

或者,您可以使用总线编辑器创建或修改要与总线一起使用的总线对象Prelookup块。

如果您将该模块的总线输出信号馈送至插值使用Prelookup块,选择需要索引和分数作为总线复选框。

请注意

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

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

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

myBus.Elements (1) .DataType
int32

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

myBus.Elements(1).数据类型=“fixdt(“int32”、“DataTypeOverride”,“关闭”)”

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

依赖关系

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

编程使用

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

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

依赖关系

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

编程使用

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

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

依赖关系

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

编程使用

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

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

编程使用

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

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

块参数始终舍入到最近的可表示值。要控制块参数的舍入,请使用MATLAB舍入函数在掩码字段中输入表达式。

编程使用

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

块特征

数据类型

|枚举|不动点|整数|

直接引线

是的

多维信号

是的

适应信号

没有

过零检测

没有

更多关于

全部展开

扩展功能

C / c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app

定点转换
使用fixed-point Designer™设计和模拟定点系统。

介绍了R2006b