主要内容

使用n-D自适应查找表建模引擎

目标

在本例中,您将学习如何使用n-D自适应查找表捕获引擎的时变行为。您可以使用Simulink完成以下任务万博1manbetx®软件:

  • 配置自适应查找表块以模拟系统。

  • 模拟模型以动态更新查找表值。

  • 将经过调整的查找表值导出到MATLAB®工作区。

  • 在适应期间锁定表中的特定单元格。

  • 禁用自适应过程,并将自适应查找表用作静态查找表。

关于数据

在本例中,您使用vedata.mat它包含以下从引擎测量的变量:

  • X- 在范围内的进气歧管压力的10个输入断点[10,100]

  • y- 36个输入断点为发动机转速在范围[0,7000]

  • Z.- 发动机容积效率的10x36表数据矩阵

    了解有关断点和表数据的更多信息,请参阅解析查找表

发动机的输出容积效率是时变的,是两个输入进气歧管压力和发动机转速的函数。mat文件中的数据用于生成引擎的时变输入和输出(I/O)数据。

使用自适应查找表块构建模型

在本教程的这一部分中,您了解如何使用自适应查找表块构建引擎的模型。

  1. 通过在MATLAB提示符下键入模型名称,打万博1manbetx开预配置的SIMULINK模型:

    Enginetable1_data.

    Simulink模型中的实验数据子系统在模拟期间生成时变I / O数据。万博1manbetx

    此命令还加载变量XyZ.进入MATLAB工作空间。要了解有关此数据的更多信息,请参见关于数据

  2. 将自适应查找表块添加到Simulink模型。万博1manbetx

    1. 打开Simulin万博1manbetxk库浏览器。

      在MATLAB提示符下,输入slLibraryBrowser

    2. 打开万博1manbetx仿真软件优化设计™图书馆。

      窗格中,展开万博1manbetx仿真软件优化设计节点。

    3. 万博1manbetx仿真软件优化设计图书馆树,点击自适应查找表

    4. 将自适应查找表库拖放到Simulink模型窗口中的自适应查找表(ND St​​air-Fit)块。万博1manbetx

  3. 双击“适配查找表(nD阶梯适配)”对话框,打开“功能块参数:适配查找表(nD阶梯适配)”对话框。

  4. 在“功能块参数”对话框中:

    1. 指定以下块参数:

      • 表断点(单元格数组)- 进入{[X;110],[y;7200]}指定输入断点的范围。

      • 表数据(初始)- 进入兰德(10,36)将随机数指定为体积效率的初始表值。

      • 表编号数据- 进入重塑(1:360 10 36)为表格单元格指定编号方案。

    2. 验证样本均值(带遗忘)选择在适应方法下拉列表。

    3. 进入0.98适应增益(0到1)字段指定遗忘因子样本均值(带遗忘)适应算法。

      接近于1的自适应增益表明查找表值对输入噪声具有较高的鲁棒性。要了解更多关于适应增益的信息,请参见带遗忘的样本均值选择一种适应方法

    4. 选择使适应表输出复选框。

      此操作将添加一个名为兜售到Adaptive Lookup Table块。您可以使用此端口绘制按调整时的表值。

    5. 选择添加自适应启用/禁用/重置端口复选框。

      此操作将添加一个名为使能够到Adaptive Lookup Table块。该端口用于开启或关闭适配进程。

    6. 选择添加cell lock enable/disable端口复选框。

      此操作将添加一个名为到Adaptive Lookup Table块。您使用此端口在适应过程中锁定单元格。

    7. 验证忽略选择在行动超出范围下拉列表。

      此选择指定软件在调整期间忽略输入断点范围之外的任何时变输入。

      小费

      要了解更多,请查看自适应查找表(nD阶梯适合)块参考页面。

      参数配置完成后,块参数对话框如下图所示。

    8. 点击好吧关闭“功能块参数”对话框。

      Simu万博1manbetxlink模型现在看起来类似于下图。

  5. 将输入和输出数据分配给引擎模型y将“实验数据”块的端口添加到yadaptionlookup Table块的端口。

  6. 使用Simulink模块设计一个逻辑来启用万博1manbetx或禁用自适应过程。将逻辑连接到Adaptive Lookup Table块,如下图所示。

    此逻辑输出初始值1,其启用适应过程。

  7. 设计一个逻辑,在适应期间锁定一个单元。将逻辑连接到Adaptive Lookup Table块,如下图所示。

  8. 在Simuli万博1manbetxnk库浏览器中,选择万博1manbetx>库,并将显示块拖到模型窗口。连接块,如下图所示。

    在仿真过程中,显示块显示如下:

    • 展示block -显示正在调整的当前单元格的值。

    • Display1块 - 显示所适应的当前单元格的数量。

  9. 写一个MATLAB函数,绘制在模拟期间适应的查找表值。

    另外,类型收音机在MATLAB提示下打开预先配置的Simulink模型。万博1manbetx的效率表面子系统包含一个用于绘制查找表值的函数,如下图所示。

  10. 将A连接到工作区块以导出适应的表值:

    1. 在Simuli万博1manbetxnk库浏览器中,选择万博1manbetx>库,并将To Workspace块拖动到模型窗口。

      要了解有关此块的更多信息,请参见到工作空间块引用页中的Simulink文档。万博1manbetx

    2. 双击“工作空间”块以打开“接收器块参数”对话框,然后“键入”兜售变量名场地。

    3. 点击好吧

    4. 将To Workspace块连接到自适应查找表输出信号兜售,如下图所示。

您现在已经构建了用于更新和查看自适应查找表值的模型。您现在必须模拟模型来开始适应,如中所述使用时变I/O数据调整查找表值

使用时变I/O数据调整查找表值

在本教程的这一部分中,您了解如何更新查找表值以适应时变输入和输出值。

如上所述,您必须已经构建了Simulink模型万博1manbetx使用自适应查找表块构建模型

执行适应:

  1. 在Simuli万博1manbetxnk编辑器中,将模拟时间指定为

    Infinity的仿真时间指定,只要引擎变化的输入和输出值,即可继续适应过程。

  2. 在Simuli万博1manbetxnk编辑器中,单击跑步在下面模拟启动适应过程。

    打开一个图形窗口,显示发动机的容积效率作为进气歧管压力和发动机转速的函数:

    • 左图显示了测量的容积效率作为进气歧管压力和发动机转速的函数。

    • 右侧图显示了与时变进气歧管压力和发动机速度适应的体积效率。

    在仿真期间,右侧绘图上显示的查找表值适应I / O数据的变化。左侧和右侧的图在几秒钟后彼此类似,如下图所示。

    小费

    在模拟期间,手机号自适应表输出Simulink模型中的块分万博1manbetx别显示单元格号,以及单元格中的适应查找表值。

  3. 点击暂停模拟暂停在下面模拟

    此操作还导出适应的表值兜售到MATLAB工作空间。

    笔记

    暂停模拟后,适应表值存储在自适应查找表块中。

  4. 检查左边和右边的情节是否匹配。这种相似性表明表值已经适应了时变的I/O数据。

  5. 锁定表格单元格,使其只适应一个单元格。如果数据的一部分非常不稳定或算法难以处理,您可能会发现该特性很有用。

    1. 点击跑步在下面模拟重新启动模拟。

    2. 双击块。此操作会切换交换机并馈送输出块的输入端口自适应查找表(nD阶梯适合)块。

      中可以查看锁定单元格的编号手机号Simulink模型中的块万博1manbetx。

  6. 当表值适应于时变的I/O数据后,您可以继续使用Adaptive Lookup table块作为静态查找表:

    1. 在Simuli万博1manbetxnk模型窗口中,双击使能够块。此动作切换开关,并禁用适配。

    2. 点击跑步在下面模拟如果模拟尚未运行,则重新启动模拟。

      在仿真期间,自适应查找表块类似于静态查找表,并继续估计输出值随着输入值的变化。您可以看到当前的查找表值自适应表输出simulink模型窗口中万博1manbetx的块。

    笔记

    禁用自适应后,adaptivemlookup Table块不会更新存储的表值,显示表值的图也不会更新。

也可以看看

相关的话题