中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 773查看
  • 0回复

[Simulink] 如何使用 Simulink LookupTable模块?

[复制链接]


该用户从未签到

发表于 10-2-2025 19:21:05 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


本文来自知乎 Erick-Chiang, 欢迎关注作者。

一 引言

在车载电控软件开发里,其实大量的工作都是电机标定,很多高大上的算法其实用不上,除了各个环路PI算法然后再加持一些关乎某项功能优化的控制策略。老实来讲,非线性控制算法,比如大家熟悉的滑模控制、模糊PID、模型预测控制算法等,工业控制、汽车类控制等很少用到,或者没有必要用到。那么回过头,咱们来讲讲标定,汽车行业界也有类似的岗位提供,名字叫标定工程师,标定是干啥?其实就是利用测功机模拟高压、低压、高速、低速工况,让车载永磁同步电机在这些工况下去跑,然后去寻优,比如MTPA曲线,就是在某扭矩、转速下去寻找一个最小的Id、Iq电流。另外还有常见的弱磁控制,通俗来讲也是最终依靠标定。
说了这么多,其实标定完之后,其实最后都是Excel表格数据,这些数据一方面可以写到下位机,还可以导入到Simulink大模型中去做仿真计算,比如根据扭矩、转速去查控制器效率,进而得到直流功率等等之类的,那么如何将Excel表格数据导入到Simulink中呢,这里要用到“n-D Lookup Table”模块。
二 “2-D Lookup Table”模块的使用方法

假设有一张这样的2维表格,具体内容如下:

如何使用 Simulink LookupTable模块?w1.jpg

Simulink中的n-D Lookup Table 如下所示:

如何使用 Simulink LookupTable模块?w2.jpg

依据MAB ((MAB具体指:Simulink®MathWorks® Advisory Board Control Algorithm Modeling Guidelines V5.0))ub_0012:查表系统模块的使用指导规则,将模块双击设置为如下查表方式:
    a) 内插法:使用线性点-斜率;b) 外插法:使用“裁剪”;c) 外插法可选项:选中“输入等于或高于最后一个断点时使用最后一个表值”

如何使用 Simulink LookupTable模块?w3.jpg

用法示例:在simulink中右键“属性”,创建数据字典,并引用。

如何使用 Simulink LookupTable模块?w4.jpg

创建数据字典并引用。

如何使用 Simulink LookupTable模块?w5.jpg

因为我们是2D表,类似已知X 、Y,查询Z,在数据字典中创建三个变量(Simulink.Parameter),如下图所示。

如何使用 Simulink LookupTable模块?w6.jpg

三个变量(Simulink.Parameter)取名字如下图所示。

如何使用 Simulink LookupTable模块?w7.jpg

双击2D lookup table 模块,点击BreakPoints 1(“Trq”)的箭头处“三个点”,点击“Trq(Data.sldd)”,然后点击“Open”,可以对数据进行编辑。注意:BreakPoints必须是单调递增!!!

如何使用 Simulink LookupTable模块?w8.jpg

点击“Open Variable Editor”对数据进行编辑.

如何使用 Simulink LookupTable模块?w9.jpg

将图1表格的数据,复制进去即可,如下图所示。

如何使用 Simulink LookupTable模块?w10.jpg

重复上述步骤,将其它数据也复制进去。最后点击“Edit table and breakpoints...”可以查看完整的表格数据,如下图所示。

如何使用 Simulink LookupTable模块?w11.jpg

查看完整的表格数据,可以与图1比较,是一样的,即成功利用2-D LookUp Table 模块将Excel数据导入到了simulink中。

三 结语

通过本文的详细探讨,了解了Simulink中2-D LookupTable模块的强大功能与应用场景。学习了如何创建和配置2-D LookupTable模块,还掌握了如何通过导入外部数据文件、调整插值方法和边界处理选项来优化模型性能。

在实际应用中,正确配置和使用2-D LookupTable模块能够显著提升模型的准确性和仿真效率,特别是在处理复杂非线性关系时。然而,探索和学习之路永无止境。因此,鼓励大家继续深入学习Simulink的其他模块和特性,不断拓宽自己的知识边界,以应对更加复杂多变的工程挑战。

创作不易,欢迎点赞再看收藏关注!

汽车研发交流群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车从业人员。


最后再分享一个Chatgpt(知乎直达)关于在 Simulink 中,Lookup Table 模块如何实现内插法和外插法。以下是详细的实现方法和步骤:1. 1-D Lookup Table

1.1 内插法


    线性内插:
      当输入值位于定义域内的两个点之间时,使用线性内插方法计算输出值。设置步骤:
      双击 1-D Lookup Table 模块。在弹出的对话框中,选择 Interpolation-Extrapolation 选项卡。在 Lookup Method 下拉菜单中选择 Interpolation-Extrapolation。选择 Interpolation method 为 Linear。
    最近邻内插:
      当输入值位于定义域内的两个点之间时,选择最近的定义域点的值作为输出值。
      设置步骤:
      双击 1-D Lookup Table 模块。在弹出的对话框中,选择 Interpolation-Extrapolation 选项卡。在 Lookup Method 下拉菜单中选择 Interpolation-Extrapolation。选择 Interpolation method 为 Nearest。

1.2 外插法

    线性外插:
      当输入值超出定义域时,使用线性外插方法计算输出值。设置步骤:
      双击 1-D Lookup Table 模块。在弹出的对话框中,选择 Interpolation-Extrapolation 选项卡。在 Lookup Method 下拉菜单中选择 Interpolation-Extrapolation。选择 Extrapolation method 为 Linear。
    裁剪:
      当输入值超出定义域时,使用定义域的边界值作为输出值。设置步骤:
      双击 1-D Lookup Table 模块。在弹出的对话框中,选择 Interpolation-Extrapolation 选项卡。在 Lookup Method 下拉菜单中选择 Interpolation-Extrapolation。选择 Extrapolation method 为 Clip。

2. 2-D Lookup Table

2.1 内插法

    线性内插:
      当输入值位于定义域内的两个点之间时,使用线性内插方法计算输出值。设置步骤:
      双击 2-D Lookup Table 模块。在弹出的对话框中,选择 Table and Breakpoints 选项卡。在 Interpolation method 下拉菜单中选择 Linear。
    最近邻内插:
      当输入值位于定义域内的两个点之间时,选择最近的定义域点的值作为输出值。设置步骤:
      双击 2-D Lookup Table 模块。在弹出的对话框中,选择 Table and Breakpoints 选项卡。在 Interpolation method 下拉菜单中选择 Nearest。

2.2 外插法

    线性外插:
      当输入值超出定义域时,使用线性外插方法计算输出值。设置步骤:
      双击 2-D Lookup Table 模块。在弹出的对话框中,选择 Table and Breakpoints 选项卡。在 Extrapolation method 下拉菜单中选择 Linear。
    裁剪:
      当输入值超出定义域时,使用定义域的边界值作为输出值。设置步骤:
      双击 2-D Lookup Table 模块。在弹出的对话框中,选择 Table and Breakpoints 选项卡。在 Extrapolation method 下拉菜单中选择 Clip。

3. 高维 Lookup Table (n-D Lookup Table)

3.1 内插法

    线性内插:
      当输入值位于定义域内的多个点之间时,使用线性内插方法计算输出值。设置步骤:
      双击 n-D Lookup Table 模块。在弹出的对话框中,选择 Table and Breakpoints 选项卡。在 Interpolation method 下拉菜单中选择 Linear。
    最近邻内插:
      当输入值位于定义域内的多个点之间时,选择最近的定义域点的值作为输出值。设置步骤:
      双击 n-D Lookup Table 模块。在弹出的对话框中,选择 Table and Breakpoints 选项卡。在 Interpolation method 下拉菜单中选择 Nearest。

3.2 外插法

    线性外插:
      当输入值超出定义域时,使用线性外插方法计算输出值。设置步骤:
      双击 n-D Lookup Table 模块。在弹出的对话框中,选择 Table and Breakpoints 选项卡。在 Extrapolation method 下拉菜单中选择 Linear。
    裁剪:
      当输入值超出定义域时,使用定义域的边界值作为输出值。设置步骤:
      双击 n-D Lookup Table 模块。在弹出的对话框中,选择 Table and Breakpoints 选项卡。在 Extrapolation method 下拉菜单中选择 Clip。

4. 实例

假设有一个 2-D Lookup Table,定义域 x 为 [0, 1, 2, 3],定义域 y 为 [0, 1, 2, 3],值域 z 为一个 4x4 的矩阵。
4.1 设置 2-D Lookup Table


    打开 Simulink 并添加 2-D Lookup Table 模块。

    双击模块,进入设置对话框。

    在 Table and Breakpoints 选项卡中:

      设置 Breakpoints 1 为 [0, 1, 2, 3]。

      设置 Breakpoints 2 为 [0, 1, 2, 3]。

      设置 Table 为一个 4x4 的矩阵,例如:

      [0, 1, 2, 3;
      1, 2, 3, 4;
      2, 3, 4, 5;
      3, 4, 5, 6]


    在 Interpolation-Extrapolation 选项卡中:

      选择 Interpolation method 为 Linear。

      选择 Extrapolation method 为 Clip。


通过以上步骤,您可以设置 2-D Lookup Table 模块,使其在输入值超出定义域时使用裁剪方法,并在定义域内使用线性内插方法。这有助于提高模型的准确性和仿真效率。


该用户从未签到

发表于 11-3-2025 01:48:00 | 显示全部楼层
Simulink中的LookupTable模块主要用于实现查找表功能,常用于参数标定和映射。在汽车电控软件开发中,标定工作至关重要,涉及电机控制参数的优化和映射。使用LookupTable模块时,需先创建表格并填充所需数据,如MTPA(最大转矩角)等参数。接着,通过输入信号查找对应输出值。这可根据不同工况(如高压、低压、高速、低速)下电机的运行状态,实时调整控制参数。操作中要确保数据维度与输入信号匹配,以实现准确参数查询和电机性能优化。标定工程师需结合测功机模拟的工况进行实际测试与参数调整,以达到最佳性能。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 11-3-2025 01:48:00 | 显示全部楼层
Simulink中的LookupTable模块是一种重要的建模工具,主要用于实现查找表功能。在汽车电控软件开发中,特别是在电机标定方面,LookupTable模块的使用频率较高。

具体操作中,工程师需要依据具体的标定需求和电机的特性创建表格数据,然后将这些数据导入到LookupTable模块中。接着通过仿真测试不同工况下电机的响应和性能表现,并利用反馈数据优化查找表内容。对于您提到的MTPA(最大转矩电流比)优化,LookupTable模块能非常有效地进行寻优工作。通过对不同电压、电流下的电机运行状态进行记录,快速找到性能最佳的MTPA值,从而提升电机的工作效率与性能。此外,借助Simulink强大的仿真环境,还可以模拟电机在不同环境条件下的表现,从而优化标定流程。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 11-3-2025 01:48:00 | 显示全部楼层
Simulink中的LookupTable模块常用于实现非线性控制或标定数据的映射。使用LookupTable模块时,主要步骤如下:

1. 定义表格大小与维度:根据实际需求设定表格的行数和列数。
2. 填充数据:将实验或仿真得到的标定数据填充至表格中。
3. 设定输入与输出:将系统输入与系统需要控制的输出与LookupTable模块连接。
4. 调整参数:根据实际情况调整模块内的参数,如插值方法等。

关于您提到的MTPA(最大转矩角控制),在实际应用中,可以通过LookupTable模块存储不同工况下的最优MTPA工作点,系统根据实时工况查询表格获取最优控制参数,以实现高效、准确的电机控制。

以上仅为简要介绍,建议详细阅读Simulink官方文档及参考手册,以获取更全面的信息。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 11-3-2025 01:48:00 | 显示全部楼层
Simulink中的LookupTable模块主要用于实现查找表功能,常用于参数标定和映射等场景。在汽车电控软件开发中,标定工作至关重要,LookupTable模块能够帮助标定工程师进行高效的数据管理和参数调整。

使用LookupTable模块时,首先需创建表并填充数据,如MTPA(最大转矩每安培)等标定数据。接着,根据需求设定输入(如电机工况)与输出(如优化后的电机参数)之间的映射关系。然后,在仿真模型中连接LookupTable模块,并根据输入信号的变化获取相应的输出。此外,还可以利用Simulink的图形化界面进行可视化调试,直观了解模块的工作情况。

以上仅为简要介绍,具体使用方法和技巧还需结合实际应用和参考Simulink相关文档进行深入学习和实践。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 29-8-2025 01:36 , Processed in 0.409356 second(s), 38 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.