Prelookup
http://tieba.baidu.com/p/2012476053
Prelookup块计算索引和分数插值
库 查找表
描述
此块与Interpolation Using Prelookup 块
Prelookup块最适合与Interpolation Using Prelookup块. Prelookup块计算指定的输入值u有
关的断点数据集的索引和间隔部分。你可以生成的索引和分数值 生成一个Interpolation
Using Prelookup块进行一个n维表的插值。此组合的块与单个n-D Lookup Table块执行相同
的操作的 .但是,Prelookup和Interpolation Using Prelookup模块提供了更大的灵活性,可以提供更高效的仿真和代码生成。见Efficiency of Performance.
支持的块操作
要使用Prelookup块,您可以指定一组断点值直接在对话框或进给值bp的输入端口。通常情况下,这样的断点数据集对应的表中的数据的一维在Interpolation Using Prelookup块.
Prelookup块生成 一个输出一对的 每一个输入值u的计算:
• 断点集的元素,该元素是小于或等于到u的索引,包含U形成的间隔
• 时间间隔分数取值范围为0≤F <1,它代表了归一化,位置u上的断点之间的时间间隔的索引和范围内输入的下一个索引值
例如,如果该断点的数据集是[ 0 5 10 20 50 100 ]和u为55的输入值,该索引是4和小数部分的值是0.1。K和F上的Prelookup块的图标显示为标签的索引和间隔分数。索引值是从零开始的。
间隔分数范围的输入可以是负数或大于1的。请参阅文档的块参数Extrapolation method
数据类型支持 Prelookup块接受任何Simulink的数值数据类型,支持实数的信号,除了Boolean. Prelookup
模块支持定点数据类型的信号和断点数据。
见Data Types Supported by Simulink
参数和对话框 Prelookup块对话框Main窗格中显示如下:
Breakpoint data
指定是否进入断点,数据直接在对话框或从输入端口继承的数据。
• 如果你设置Source 为 Dialog, 输入断点数据,在编辑字段中的Value下。每个断点数据集必须是严格单调递增,其中包含两个或两个以上的元素的向量。对于此选项,您在Data Types窗格可以指定断点的属性
• 如果你设置 Source 为 Input port, 验证上行信号提供断点bp的输入端口的数据。每个断点数据集必须是严格单调递增,其中包含两个或两个以上的元素的向量。此选项,您从块的BP输入端口继承断点属性。
点击 Edit按钮,打开查找表编辑器(见 Edit Existing LookupTables).
提示:要了解如何定义均匀分布的断点,Formulation of Evenly Spaced Breakpoints Index search method
选择 Evenly spaced points, Linear search, 或 Binary search. 每个搜索方法具
有的速度优势,在不同的情况下:
• 对于均匀间隔的断点集(例如,10, 20, 30, and等),您获得最佳的速度选择Evenly
spaced points计算表索引。
该算法只使用第一个一组的两个断点,以确定剩余的点的偏移量和间距。
•
对于不均匀间隔断点集,遵循以下原则:
o 如果输入为u值不变化的时间步长之间,选择Linear search同Begin index search
using previous index 结果产生最佳的性能。
o 如果输入为U值跳到一个或两个以上的表的时间间隔,每个时间步,选择Binary
search产生最佳的性能。
一种次优选择搜索索引的方法可以导致很大程度上依赖于查找表的模型而降低性能。
提示:生成的代码将第一个断点,间距,和断点时: • •
Breakpoint data是不可调的。 index search method 是 Evenly spaced points. Begin index search using previous index 结果
当你想使用索引 在以前的时间步长的块开始搜索时,选中此复选框。对于输入值u的变化缓慢的时间间隔大小,使此选项可以提高性能。否则,linear search和binary
search方法需要较长的时间,特别是对于较大的断点集。
Output only the index
选中此复选框,当你想要块的输出得到的索引值,没有间隔的部分。
典型的应用包括:
馈送Direct Lookup Table (n-D) 块,没有插值的时间间隔
馈送选择的子表中选择一个端口到Interpolation Using Prelookup块 执行非线性量化
• • •
Extrapolation method
指定如何处理范围的块输入u值。选项包括:
• Clip
块输入 模块输出 小于第一个断点 o 第一个断点的索引(例如,0) 区间分数为0 大于最后一个断点 o 指标在下一个到最后一个断点 为1的区间分数 假设范围是[1 2 3]如果选择此选项。如果u是0.5,该索引是0和0的间隔分数。如果u是3.5,该索引是1和1的间隔分数。
•
Linear
块输入 模块输出 小于第一个断点 o 第一个断点的索引(例如,0) 从U到第一个断点的直线距离的间隔分数, 大于最后一个断点 o 索引在下一个到最后一个断点 间隔分数,它代表的直线距离,从下到最后一个断点到u 假设范围是[1 2 3]如果选择此选项。如果u是0.5,该索引是0和-0.5的间隔分数。如果u是3.5,该索引是1和1.5的间隔分数。
提示Prelookup块支持线性外推法,只有当所有这些条件的申请。 • 输入u,断点数据,以及分数输出使用浮点数据类型。 该索引采用的是内置的整数数据类型。 Use last breakpoint for input at or above upper limit
指定如何索引输入u的值是大于或等于最后一个断点。索引值是从零开始的。当输入等于最后一个断点,不同块的输出如下:
复选框 模块输出 选择 断点数据集的索引的最后一个元素 区间分数为0 清除 •索引的下一个到最后一个断点 间隔分数为1 该复选框是可见仅当:
• •
Output only the index 是 清除. Extrapolation method 是 Clip.
然而,当Output only the index 是 选择 和 Extrapolation method 是 Clip,块的行为,如果这个复选框的选择,即使它是无形的。
提示:当您选择Use last breakpoint for input at or above upper limit在Prelookup 块, 你还必须选择Valid index input may reach last index在它连接的 Interpolation Using Prelookup块。此操作允许块使用相同的索引访问其断点和表中的数据集的最后一个元素时的公约。 Diagnostic for out-of-range input
指定输入u超出范围时,是否将产生一个警告或错误。选项包括:
• • •
None —没有警告或错误
Warning —在MATLAB命令窗口中显示一个警告,并继续模拟 Error —停止模拟,并在模拟诊断浏览器中显示一个错误
Remove protection against out-of-range input in generated code
指定是否包括检查范围的断点输入的代码。
复选框 结果 当使用 选择 生成的代码不包括条件语句来检查范围的断点输入。 生成的代码包括条件语句来检查范围的断点输入。 代码的效率 对于安全性至关重要的应用 清除 根据您的应用程序,你可以运行下面的模型顾问进行检查,以确认使用这个复选框:
• By Product > Embedded Coder > Identify lookup table blocks that generate expensive out-of-range checking code
• By Product > Simulink Verification and Validation > Modeling Standards > DO-178C/DO-331 Checks > Check usage of lookup table blocks 见 Consult the Model Advisor
Sample time
指定样本之间的时间间隔。要继承采样时间,此参数设置为-1。见 Specify Sample Time
Prelookup块对话框Data Types窗格中显示如下:
注:断点属性(数据类型,最小值和最大值)时,可以使用设置的参数Source 为 Input port. 在这种情况下,该块继承所有断点属性从 bp 输入端口。 Breakpoint > Data Type
指定断点的数据类型。您可以将其设置为:
• • • •
继承的规则,数据类型,例如,Inherit: Same as input 一个内置的数据类型的名称,例如,single
数据类型对象的名称,例如, Simulink.NumericType object 一个表达式,其值的数据类型,例如,fixdt(1,16,0)
点击 Show data type assistant 按钮 助您设置的断点数据类型。
显示 Data Type Assistant, 它可以帮
见 Specify Data Types Using Data Type Assistant
提示指定一个断点不同数据类型的数据类型,在这些情况下输入u: • 低位存储器要求,用于存储断点使用一个数据类型比输入信号u小 不同数据类型的输入u,两Prelookup块的预分频断点数据共享 在生成的代码块的不同数据类型 的输入u的自定义存储的断点数据共享 Breakpoint > Minimum
指定断点数据可以有的最低值,。 默认值是[](未指定)。
Breakpoint > Maximum
指定断点数据可以有的最大的值。默认值是[](未指定)。
Index > Data Type
指定数据类型,可以索引中的所有元素的断点数据集。您可以:
• •
选择一个内置的从列表中的整数数据类型。 指定一个整数数据类型使用定点表示。
点击 Show data type assistant 按钮 助您设置索引数据类型。
显示 Data Type Assistant, 它可以帮
见 Specify Data Types Using Data Type Assistant
Fraction > Data Type
指定的数据类型的时间间隔分数。您可以:
• 选择一个内置从列表中的数据类型。
• •
通过内部规则中指定的数据类型继承。
使用[斜坡的偏差]或的仅二进制点缩放表示指定定点数据类型。
o 如果您使用的的[斜坡偏置]表示,缩放比例必须是细小—即,斜率是1和偏置0。 o 如果您使用的的二进制点仅表示,固定的功率为2的指数必须小于或等于零。
点击 Show data type assistant 按钮 助您设置尾数的数据类型。
显示 Data Type Assistant, 它可以帮
见 Specify Data Types Using Data Type Assistant
Lock output data type setting against changes by the fixed-point tools
选择锁定此块对输出的数据类型设置的定点工具和定点顾问。 见 Use Lock Output
Data Type Setting.
Integer rounding mode
重新指定为定点运算的舍入模式。见 Rounding
块参数总是四舍五入到最接近的可表示值。要控制舍入的块参数,使用MATLAB取整函数 “字段中的掩码输入一个表达式。
实例 在下面的model, Constant块馈送断点数据Prelookup块设置的bp输入端口.
Prelookup块继承BP输入端口下面的断点属性:
断点属性 值 Minimum –Inf Maximum Inf Data type single 同样,一个Constant块的表数据值馈送到T输入端口使用Prelookup块,如下表属性继承插值:
表属性 值 Minimum –Inf Maximum Inf Data type single Simulink中使用双精度浮点数据,在这个模型中进行计算。然而,该模型存储的断点和表数据为单精度浮点数据。使用低精度的数据类型来存储断点和表中的数据,可以减少对内存的需求。
见 Prelookup and Interpolation Blocks
特征 直接馈通 是 采样时间 在 Sample time 参数里指定 标量扩展 是 量纲 是 过零检测 不 参考 Interpolation Using Prelookup