主要内容

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

目标

在本例中,您将了解如何使用n-D自适应查找表捕获引擎的时变行为。您可以使用Simulink完成以下任务金宝app®软件:

  • 配置自适应查找表块来建模您的系统。

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

  • 将修改后的查找表值导出到MATLAB中®工作区。

  • 在调整期间锁定表中的特定单元格。

  • 禁用自适应进程,使用自适应查询表作为静态查询表。

关于数据的

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

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

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

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

    要了解关于断点和表数据的更多信息,请参见查找表的解剖

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

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

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

  1. 通过在MATLAB提示符中输入模型名来打开金宝app一个预先配置的Simulink模型:

    enginetable1_data

    Simulink模型中的实验数据子系统在仿真过程中生成时变的I/O数据。金宝app

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

  2. 向Simulink模型添加一个Adaptive Lookup Table块。金宝app

    1. 打开Simulin金宝appk库浏览器。

      在MATLAB提示下,输入slLibraryBrowser

    2. 打开金宝app仿真软件优化设计™图书馆。

      窗格中,展开金宝app仿真软件优化设计节点。

    3. 金宝app仿真软件优化设计图书馆树,点击自适应查找表

    4. 将Adaptive Lookup Table (nD Stair-Fit)模块从Adaptive Lookup Tables库拖放到Simulink模型窗口中。金宝app

  3. 双击自适应查找表(nD楼梯配合)块,打开功能块参数:自适应查找表(nD楼梯配合)对话框。

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

    1. 指定以下块参数:

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

      • 表数据(初始)——输入兰特(36)指定随机数作为体积效率的初始表值。

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

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

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

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

    4. 选择将经过调整的表作为输出复选框。

      此操作将添加一个名为吹捧到自适应查找表块。在调整表值时,使用这个端口绘制表值。

    5. 选择添加适配使能/禁用/重置端口复选框。

      此操作将添加一个名为启用到自适应查找表块。您可以使用该端口开启或关闭适配进程。

    6. 选择添加单元格锁定启用/禁用端口复选框。

      此操作将添加一个名为到自适应查找表块。在适配过程中,您可以使用该端口锁定单元格。

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

      这种选择指定软件忽略在适应期间输入断点范围之外的任何时变输入。

      提示

      想要了解更多,请看自适应查找表(nD楼梯配合)块引用页面。

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

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

      现在,S金宝appimulink模型看起来类似下图。

  5. 将输入和输出数据连接到引擎模型UY端口的实验数据块uy自适应查找表块的端口。

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

    这个逻辑输出一个初始值1,使适应过程成为可能。

  7. 设计一个逻辑在适应过程中锁定细胞。将逻辑连接到Adaptive Lookup Table块,如下图所示。

  8. 在Simuli金宝appnk库浏览器中,选择金宝app>库,并将Display块拖动到模型窗口。连接块,如下图所示。

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

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

    • Display1block -显示正在调整的当前单元格的数目。

  9. 编写一个MATLAB函数来绘制查找表的值,因为他们在模拟中适应。

    另外,类型enginetable在MATLAB提示下打开预配置的Simulink模型。金宝app的效率表面子系统包含一个用于绘制查找表值的函数,如下图所示。

  10. 连接到工作区块以导出经过调整的表值:

    1. 在Simuli金宝appnk库浏览器中,选择金宝app>库,并将To Workspace块拖动到模型窗口。

      要了解更多关于此块的信息,请参见到工作空间块参考页的Simulink文档。金宝app

    2. 双击To Workspace块以打开Sink块参数对话框,并输入吹捧变量名字段。

    3. 点击好吧

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

现在,您已经构建了用于更新和查看自适应查找表值的模型。现在必须模拟模型以启动适配,如使用时变I/O数据调整查询表值

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

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

如所述,您必须已经构建了Simulink模型金宝app使用自适应查找表块构建模型

进行适配:

  1. 在Simuli金宝appnk编辑器中,将模拟时间指定为

    仿真时间无穷大表示只要发动机的输入和输出值发生变化,适应过程就会继续进行。

  2. 在Simuli金宝appnk编辑器中,单击运行模拟启动适应过程。

    这时会出现一个数值窗口,显示进气歧管压力和发动机转速对发动机体积效率的影响:

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

    • 右图显示了体积效率,因为它适应时变进气歧管压力和发动机转速。

    在模拟过程中,右边图上显示的查找表值会根据I/O数据的变化进行调整。几秒钟后,左图和右图彼此相似,如下图所示。

    提示

    在模拟过程中,手机号自适应表输出Simulink模型中的块分金宝app别显示单元格号和单元格中经过调整的查找表值。

  3. 通过单击暂停模拟暂停模拟

    此操作还导出经过调整的表值吹捧到MATLAB工作空间。

    请注意

    暂停模拟之后,调整后的表值存储在Adaptive Lookup table块中。

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

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

    1. 点击运行模拟重新启动模拟。

    2. 双击块。此操作切换开关并提供块的输入端口自适应查找表(nD楼梯配合)块。

      锁定单元格数可在手机号块在Simulink模型中金宝app。

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

    1. 在Simuli金宝appnk模型窗口中,双击启用块。此操作将切换开关,并禁用自适应。

    2. 点击运行模拟重新启动模拟,如果它尚未运行。

      在模拟过程中,Adaptive Lookup Table块的工作方式类似于静态查找表,并随着输入值的变化继续估计输出值。控件中的当前查找表值自适应表输出块在Simulink模型窗金宝app口中。

    请注意

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

另请参阅

相关的话题