在本例中,您将学习如何使用n-D自适应查找表捕获引擎的时变行为。您可以使用Simulink完成以下任务万博1manbetx®软件:
配置自适应查找表块以模拟系统。
模拟模型以动态更新查找表值。
将经过调整的查找表值导出到MATLAB®工作区。
在适应期间锁定表中的特定单元格。
禁用自适应过程,并将自适应查找表用作静态查找表。
在本例中,您使用vedata.mat
它包含以下从引擎测量的变量:
X
- 在范围内的进气歧管压力的10个输入断点[10,100]
y
- 36个输入断点为发动机转速在范围[0,7000]
Z.
- 发动机容积效率的10x36表数据矩阵
了解有关断点和表数据的更多信息,请参阅解析查找表。
发动机的输出容积效率是时变的,是两个输入进气歧管压力和发动机转速的函数。mat文件中的数据用于生成引擎的时变输入和输出(I/O)数据。
在本教程的这一部分中,您了解如何使用自适应查找表块构建引擎的模型。
通过在MATLAB提示符下键入模型名称,打万博1manbetx开预配置的SIMULINK模型:
Enginetable1_data.
Simulink模型中的实验数据子系统在模拟期间生成时变I / O数据。万博1manbetx
此命令还加载变量X
那y
和Z.
进入MATLAB工作空间。要了解有关此数据的更多信息,请参见关于数据。
将自适应查找表块添加到Simulink模型。万博1manbetx
打开Simulin万博1manbetxk库浏览器。
在MATLAB提示符下,输入slLibraryBrowser
。
打开万博1manbetx仿真软件优化设计™图书馆。
在库窗格中,展开万博1manbetx仿真软件优化设计节点。
在万博1manbetx仿真软件优化设计图书馆树,点击自适应查找表。
将自适应查找表库拖放到Simulink模型窗口中的自适应查找表(ND Stair-Fit)块。万博1manbetx
双击“适配查找表(nD阶梯适配)”对话框,打开“功能块参数:适配查找表(nD阶梯适配)”对话框。
在“功能块参数”对话框中:
指定以下块参数:
表断点(单元格数组)- 进入{[X;110],[y;7200]}
指定输入断点的范围。
表数据(初始)- 进入兰德(10,36)
将随机数指定为体积效率的初始表值。
表编号数据- 进入重塑(1:360 10 36)
为表格单元格指定编号方案。
验证样本均值(带遗忘)
选择在适应方法下拉列表。
进入0.98
在适应增益(0到1)字段指定遗忘因子为样本均值(带遗忘)
适应算法。
接近于1的自适应增益表明查找表值对输入噪声具有较高的鲁棒性。要了解更多关于适应增益的信息,请参见带遗忘的样本均值在选择一种适应方法。
选择使适应表输出复选框。
此操作将添加一个名为兜售
到Adaptive Lookup Table块。您可以使用此端口绘制按调整时的表值。
选择添加自适应启用/禁用/重置端口复选框。
此操作将添加一个名为使能够
到Adaptive Lookup Table块。该端口用于开启或关闭适配进程。
选择添加cell lock enable/disable端口复选框。
此操作将添加一个名为锁
到Adaptive Lookup Table块。您使用此端口在适应过程中锁定单元格。
验证忽略
选择在行动超出范围下拉列表。
此选择指定软件在调整期间忽略输入断点范围之外的任何时变输入。
小费
要了解更多,请查看自适应查找表(nD阶梯适合)块参考页面。
参数配置完成后,块参数对话框如下图所示。
点击好吧关闭“功能块参数”对话框。
Simu万博1manbetxlink模型现在看起来类似于下图。
将输入和输出数据分配给引擎模型你
和y
将“实验数据”块的端口添加到你
和y
adaptionlookup Table块的端口。
使用Simulink模块设计一个逻辑来启用万博1manbetx或禁用自适应过程。将逻辑连接到Adaptive Lookup Table块,如下图所示。
此逻辑输出初始值1,其启用适应过程。
设计一个逻辑,在适应期间锁定一个单元。将逻辑连接到Adaptive Lookup Table块,如下图所示。
在Simuli万博1manbetxnk库浏览器中,选择万博1manbetx>汇库,并将显示块拖到模型窗口。连接块,如下图所示。
在仿真过程中,显示块显示如下:
展示
block -显示正在调整的当前单元格的值。
Display1
块 - 显示所适应的当前单元格的数量。
写一个MATLAB函数,绘制在模拟期间适应的查找表值。
另外,类型收音机
在MATLAB提示下打开预先配置的Simulink模型。万博1manbetx的效率表面
子系统包含一个用于绘制查找表值的函数,如下图所示。
将A连接到工作区块以导出适应的表值:
在Simuli万博1manbetxnk库浏览器中,选择万博1manbetx>汇库,并将To Workspace块拖动到模型窗口。
要了解有关此块的更多信息,请参见到工作空间块引用页中的Simulink文档。万博1manbetx
双击“工作空间”块以打开“接收器块参数”对话框,然后“键入”兜售
在变量名场地。
点击好吧。
将To Workspace块连接到自适应查找表输出信号兜售
,如下图所示。
您现在已经构建了用于更新和查看自适应查找表值的模型。您现在必须模拟模型来开始适应,如中所述使用时变I/O数据调整查找表值。
在本教程的这一部分中,您了解如何更新查找表值以适应时变输入和输出值。
如上所述,您必须已经构建了Simulink模型万博1manbetx使用自适应查找表块构建模型。
执行适应:
在Simuli万博1manbetxnk编辑器中,将模拟时间指定为正
。
Infinity的仿真时间指定,只要引擎变化的输入和输出值,即可继续适应过程。
在Simuli万博1manbetxnk编辑器中,单击跑步在下面模拟启动适应过程。
打开一个图形窗口,显示发动机的容积效率作为进气歧管压力和发动机转速的函数:
左图显示了测量的容积效率作为进气歧管压力和发动机转速的函数。
右侧图显示了与时变进气歧管压力和发动机速度适应的体积效率。
在仿真期间,右侧绘图上显示的查找表值适应I / O数据的变化。左侧和右侧的图在几秒钟后彼此类似,如下图所示。
小费
在模拟期间,手机号
和自适应表输出
Simulink模型中的块分万博1manbetx别显示单元格号,以及单元格中的适应查找表值。
点击暂停模拟暂停在下面模拟。
此操作还导出适应的表值兜售
到MATLAB工作空间。
笔记
暂停模拟后,适应表值存储在自适应查找表块中。
检查左边和右边的情节是否匹配。这种相似性表明表值已经适应了时变的I/O数据。
锁定表格单元格,使其只适应一个单元格。如果数据的一部分非常不稳定或算法难以处理,您可能会发现该特性很有用。
点击跑步在下面模拟重新启动模拟。
双击锁
块。此操作会切换交换机并馈送输出在
块的锁
输入端口自适应查找表(nD阶梯适合)
块。
中可以查看锁定单元格的编号手机号
Simulink模型中的块万博1manbetx。
当表值适应于时变的I/O数据后,您可以继续使用Adaptive Lookup table块作为静态查找表:
在Simuli万博1manbetxnk模型窗口中,双击使能够
块。此动作切换开关,并禁用适配。
点击跑步在下面模拟如果模拟尚未运行,则重新启动模拟。
在仿真期间,自适应查找表块类似于静态查找表,并继续估计输出值随着输入值的变化。您可以看到当前的查找表值自适应表输出
simulink模型窗口中万博1manbetx的块。
笔记
禁用自适应后,adaptivemlookup Table块不会更新存储的表值,显示表值的图也不会更新。