减少动力系统的内存占用
本视频使用一个动力总成系统示例演示了查找表优化功能,该功能使您能够在设计中压缩查找表,以减少RAM内存的使用。您可以使用最佳查找表来近似函数或现有块。
设计最佳查找表涉及各种选择:定点或浮点数据、表的大小、均匀间隔的数据或不均匀间距,以及其他算法设置,如插值方法。所有这些决策都是使用查找表优化器自动完成的。
我们通过减少的内存量来衡量系统行为和有效设计之间的权衡。
你好,每个人。我是Ram Cherukuri, MathWorks的产品营销经理,在本视频中,我们将探索如何优化设计中的查找表,以最小化目标ECU上的Ram使用,使用动力总成控制示例模型。
首先,什么是查找表优化?
这个特性允许您优化数据类型和查找表的各种参数,例如断点的数量、它们的间距等,从而在用户指定的容差范围内提供最优查找表。
您可以利用此特性在设计中压缩查找表,以最小化RAM占用,还可以使用查找表替换复杂的函数或子系统,以获得更快的运行时性能。
请参考文档链接和下面链接的其他视频,以详细了解如何使用此功能。
您可以使用命令行API和基于ui的应用程序来使用此功能。
我们将使用来自动力总成块集参考示例的传统压缩点火发动机模型,该模型有大约31个查找表。
这里是压缩引擎的Simu金宝applink模型,我们可以通过掩码来探索这个子系统的组件。我们将使用这个脚本来执行本例中的步骤。首先,我们要估计这个模型中31个lut的总内存占用。
现在,让我们在这里选择一个查找表进行快速测试,并在输出上有较大的容忍度的情况下运行优化。我们选择了大约25%的绝对容差和5%的相对容差。在这里,您可以看到结果查找表与原始查找表的比较。
这个特定LUT的压缩输出减少了96%的内存,因为它对表数据使用了8位定点数据类型,同时将接口数据类型保留为双类型。
我们尝试了各种容差选择,这里有一个图表显示了内存减少和容差值之间的权衡。
正如你所看到的,即使有非常严格的公差,你也可以节省50%的RAM内存。
我们的脚本执行类似的练习,但是使用模型中的所有lut,当您在这里运行脚本时,您会生成一个类似的图形,显示即使使用最严格的公差值也会减少80%。
这清楚地强调了如何实现高效的设计,特别是当您的模型中有许多来自校准任务的查找表时。
视频结束前,最后一个小技巧。通过在优化运行中选择第二个模拟,可以实现无损压缩而不改变数值行为,但可以减少50%以上的内存占用,如图所示。
请参考视频下方链接的文件交换条目,在您自己的模型上尝试这个示例脚本。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。