主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

使用 Prelookup 和 Interpolation 模块

此示例显示如何使用 Prelookup 和 Interpolation Using Prelookup 模块。

简介

Prelookup 模块计算 Interpolation Using Prelookup 模块用于插值的索引和间隔分数。当一起使用时,这些模块执行与 n-D Lookup Table 模块相同的操作。此示例描述

  • 在某些情况下,使用单独的 Prelookup 和 Interpolation 模块可能比单独使用 n-D Lookup Table 模块提供更好的灵活性以及高效的仿真和代码生成。

  • 如何选择 Prelookup 模块中的子表。

  • 如何在 Prelookup 和 Interpolation Using Prelookup 模块之间执行断点和表一致性。

预查找和 Interpolation Using Prelookup 模块协同工作的模型

要了解 Prelookup 和 Interpolation Using Prelookup 模块如何协同工作以执行查找算法而无需重复预查找,请打开模型 sldemoPrelookupInterpolation.slx

open_system("sldemoPrelookupInterpolation.slx")

  • Prelookup 模块执行计算的索引搜索部分。

  • Interpolation Using Prelookup 模块执行其余计算。

高效仿真

在这个模型中,两个索引搜索结果被用在四个模块中,总共七种用途。使用 n-D Lookup Table 模块的等效实现需要七次索引搜索,而不是两次。通过重复使用不同插值的索引搜索和分数计算的结果来实现更好的运行时性能,此设置最大限度地减少了在一组查找表中执行的索引搜索次数。

更大的灵活性

同时使用 Prelookup 和 Interpolation Using Prelookup 模块还可以提供更大的灵活性,因为它们使用适合每个维度断点的索引搜索方法以进行进一步优化。例如,sldemoPrelookupInterpolation.slx 模型包含两个 Prelookup 模块,每个块配置不同的索引搜索方法:

  • Prelookup 1 使用索引搜索方法 > 均匀分布点选项对第一个输入 U1 执行索引搜索,其对应的断点在此维度上均匀分布。

  • Prelookup 2 使用索引搜索方法>二分搜索选项对第二个输入 U2 进行索引搜索,其对应的断点间距不均匀。

相比之下,您只能配置一个 n-D Lookup Table 模块以便一次对所有输入使用一种索引搜索方法。

子表选择模型

要在 Interpolation Using Prelookup 模块中选择子表,您可以以这样的方式配置模块,以便将 nD 表的尾部维度标记为选择维度。这意味着该维度的输入是一个仅用于选择子表的整数,例如从三维表中选择二维平面。然后对子表进行正常插值。

打开 sldemoSubtableSelection.slx 模型,了解如何使用 Prelookup 模块表选择插值功能对表数据的子集进行插值建模。

open_system("sldemoSubtableSelection.slx")

为了使用 Prelookup 模块在插值中组成表值,该模块分层了三个二维表,其中每个二维表都是针对特定场景设计的。输入子表选择为场景选择二维表,之后 Interpolation 模块执行二维插值。

要激活此插值模式,请将 Interpolation 模块的子表选择维度的数量参数设置为正整数。该模型将指定的值解释为从表数据的最高维度中选择的维度数。有关选择维度的更多信息,请参阅Interpolation Using Prelookup

检查断点和表数据一致性

要检查断点和表数据的一致性,请确保 Prelookup 模块中的断点数据的长度与所连接的 Interpolation Using Prelookup 模块中的表数据的相应维度匹配。Simulink® 在更新模块图时始终检查两个模块之间的一致性。如果断点和表数据不一致,模型将返回错误。

另请参阅

| |

主题