表查找操作的第二阶段涉及生成对应于所提供的输入的输出。如果输入匹配断点数据集中指定的指定值,则块会输出相应的值。但是,如果输入无法匹配断点数据集中的索引值,则Simulink金宝app®估计产出。在“块参数”对话框中,您可以指定如何在这种情况下计算输出。可用查找方法在以下部分中描述。
当输入落在断点值之间时,块使用相邻的断点插入输出值。大多数查找表块有以下插值方法可用:
平坦的
-禁用插值和使用舍入操作标题在下面使用输入
.有关更多信息,请参见舍入方法.
最近的
—禁用插值并返回与最接近输入的断点对应的表值。如果输入与两个相邻的断点距离相等,则选择指数较高的断点。
线性点斜率
- 适合相邻断点之间的线,并返回对应于输入的线上的点。这是线性点斜率的等式,其中x为输入数据,y是输出表数据(x我,y我是表数据的坐标),和f是分数。有关x我,y我,请参阅关于查找表块.
三次样条
- 适合相邻断点的立方样条曲线,并返回对应于输入的花键上的点。
线性拉格朗日
- 使用一阶Lagrange插值拟合相邻断点之间的线路,并返回对应于输入的该行上的点。这是线性拉格朗日的等式,在哪里x为输入数据,y是输出表数据,和f是分数。f限制范围从0到小于1 ((0,1)
).有关x和y,请参阅关于查找表块.
如果外推法是线性
时,根据所选的线性插值方法计算外推值。例如,如果插值方法是线性拉格朗日法,则外推方法继承线性拉格朗日方程来计算外推值。
Akima花键
- 适合Akima样条曲线到相邻断点,并返回对应于输入的花键上的点。插值方法仅适用于Akima花键
外推法。改进的Akima三次Hermite插值方法具有以下特性:
它产生的起伏比立方样条少。
对于实时应用比立方样条更有效。
与立方样条不同,它不会产生过冲。
与三次样条不同,它支持非标量信号。金宝app
请注意
的动态查找表块不会让您选择插值方法。的Interpolation-Extrapolation
选项在查找方法域块参数对话框执行线性插值。
每一种插值方法都包含计算时间和结果平滑度之间的权衡。虽然四舍五入是最快的,但却是最不流畅的。线性插值比舍入法慢,但生成的结果更平滑,除非在斜率变化的断点处。三次样条插值是最慢的方法,但产生平滑的结果。Akima样条可以得到最平滑的结果。
当输入落在断点数据集的范围之外时,块将输出值从断点数据集结束时从一对值推断。大多数查找表块具有以下外推方法:
夹子
-禁用推断并返回对应于断点数据集范围结束的表数据。这不能提供对超量程值的保护。
线性
- 如果插值方法是线性
,根据输入是小于第一个断点还是大于最后一个断点,此外推方法适合第一个或最后一个断点之间的行。若插值方法为三次样条
或者Akima花键
,这种外推方法使用插值在第一个或最后一个断点处的斜率来拟合线性曲面,这取决于输入是小于第一个断点还是大于最后一个断点。外推法返回生成的与输入相对应的线性曲面上的点。
如果外推法是线性
时,根据所选的线性插值方法计算外推值。例如,如果插值方法是线性拉格朗日法,则外推方法继承线性拉格朗日方程来计算外推值。
三次样条
-根据输入是否小于第一个断点或大于最后一个断点,将三次样条曲线拟合到第一个或最后一对断点。这个方法返回样条上对应于输入的点。
Akima花键
- 根据输入小于第一或大于最后一个断点,拟合一个Akima样条点到第一个或最后一对断点。这个方法返回样条上对应于输入的点。
请注意
的动态查找表块不会让您选择外推方法。的Interpolation-Extrapolation
选项在查找方法字段的块参数对话框执行线性外推。
除了这些方法外,还有一些查找表块,如一天的查找表块,允许您在遇到需要外推的情况时选择要执行的操作。例如,当查找表输入超出断点数据集的范围时,可以指定Simulink生成金宝app警告或错误。要指定此类操作,请从中选择它诊断超出范围的输入列表在“块参数”对话框中。
如果输入在断点数据集的断点值之间或在断点数据集的范围之间均落在并且没有指定插值或外推,则块将值转换为相邻断点并返回相应的输出值。例如,动态查找表Block允许您选择下列四舍五入方法之一:
使用输入的
-返回与最近的输入值对应的输出值。
在下面使用输入
- 返回与立即小于输入值的断点值对应的输出值。如果在输入值以下不存在断点值,则返回最接近输入值的断点值。
使用上面的输入
-返回与立即大于输入值的断点值对应的输出值。如果在输入值之上没有断点值,则返回最接近输入值的断点值。
在下面的模型,动态查找表块接受由此给出的断点数据的向量[-5:5]
和由此给出的表数据的矢量SINH([ - 5:5])
.
当使用指定的查找方法和输入时,Lookup Table Dynamic块输出以下值。
查找方法 | 输入 | 输出 | 评论 |
---|---|---|---|
|
|
|
N/A |
|
|
N/A |
|
|
|
|
N/A |
|
|
块使用for的值 |
|
|
|
|
块使用for的值 |
|
|
块使用for的值 |
|
|
|
|
块使用for的值 |
|
|
块使用for的值 |
|
|
|
|
块使用for的值 |