自动驾驶仿真(六)—— SIL软件在环仿真测试

自动驾驶仿真六—— SIL软件在环仿真测试

  • 1. 在环仿真测试
  • 2. SIL软件在环仿真测试
    • 2.1 模型配置参数
    • 2.2 S function生成实现
    • 2.3 结果对比
  • 3. 参考学习的书目教材

博主前面的博文已经简要介绍了Carsim、Prescan 与 Simulink 在 “V”型开发流程的一些应用,现今成熟的汽车控制系统软件都是以(Model Based Design,MBD)来开发,它以图形化的方式表达复杂的逻辑、代码可读性、可移植性、开发调试便利程度都大大增强,同时利用成熟的代码生成工具链,也避免了手工代码容易产生的低级错误。前面已经写了较多的模型在环MIL应用,这篇博文稍加展开写下V模型的在环仿真测试及SIL软件在环仿真。

1. 在环仿真测试

目前许多汽车公司已经从传统的开发模式转移到 V形开发模型,以减少重复的代码编制和实车试验。很多在研究高级驾驶员辅助系统ADAS设计环节中引入在环仿真测试,主要有模型在环(Model in the loop, MIL)、软件在环(Software in the loop,SIL)、硬件在环(Hardware in the loop,HIL)等。以下为典型V模型开发流程示意图:
自动驾驶仿真(六)—— SIL软件在环仿真测试_第1张图片

在以上V模型中涉及的MIL/SIL/HIL等多项仿真测试:

  1. MIL:在开发环境下(如SIMULINK),验证控制算法模型是否准确地实现了功能需求。
  2. SIL:对比模型自动生成的C代码和模型本身实现的功能是否一致,使用Simulink自身工具就可以进行SIL测试。
  3. HIL:在ECU/EPP/整套系统上验证代码实现的功能是否与需求定义一致。

这些测试环节的用例来源于系统需求。当前ECU 开发流程一般是工程师根据控制目标开发控制模型,由控制模型生成控制代码(或者手工编写控制代码),将代码导入 ECU 硬件然后通过模型仿真被控对象及系统环境进行硬件在环测试(HIL)。软件在环仿真(SIL)测试可通过特定的控制软件设置 ECU 的相关信号代替 HIL 中的硬件,并将待测 ECU 代码信息集成配置为虚拟 ECU,通过运行虚拟控制器中的 I/O 模型和系统环境中的车辆模型来模拟控制器所需的各种传感器信号,并接收虚拟 ECU 发出的控制信号及台架传感器的信号。从而与被测 ECU 的代码信息和系统环境模型连接。最终实现闭环仿真,完成对控制系统进行测试验证。
在 V 形开发模式下,通过 SIL 平台一方面可在开发过程中更早介入,确保前期开发过程中通过对嵌入式软件的测试及时发现存在的问题,以提高整改效率从而大幅节约 ECU 功能开发成本和周期;另一方面,由于 SIL 测试采用纯软件仿真的手段,无需真实车辆及 HIL 台架测试。可在开发和测试过程中灵活使用,因而软件在环测试系统正在成为一种理想的功能测试工具。

2. SIL软件在环仿真测试

SIL可实现被控模型算法的在线或离线仿真,减少实际代码的调试,从而降低成本,在实际开发和测试中应用甚广。本博文利用 Simulink对简单模型对象进行软件在环测试,将模型代码以S function 的形式进行封装并通过 Simulink模型进行比较,验证模型自动生成的C代码和模型本身实现的功能的一致性。

2.1 模型配置参数

本博文建立的简单模型为:输入是一个谐波信号,模型对象是一个简单的离散传递函数。由于求解器是离散定步长,所以需要将离散传递函数的采样时间设置成和系统采样时间一致:0.01。
自动驾驶仿真(六)—— SIL软件在环仿真测试_第2张图片

实际上在Simulink实现SIL软件在环仿真过程中,模型配置参数的设置也是很重要的,以下给出部分关键设置项。
1)将求解器是离散定步长。
自动驾驶仿真(六)—— SIL软件在环仿真测试_第3张图片

2)选择ert.tlc即可生成可以在嵌入式环境中运行的代码。
自动驾驶仿真(六)—— SIL软件在环仿真测试_第4张图片

3)Create Block- SIL设置
自动驾驶仿真(六)—— SIL软件在环仿真测试_第5张图片

2.2 S function生成实现

然后就是直接将对象模型转化为C代码形式的模型对象,将模型代码以S function 的形式进行封装,以下即为生成S function流程,主要在matlab命令行窗口中操作输入如下命令行:
自动驾驶仿真(六)—— SIL软件在环仿真测试_第6张图片

生成S function模块可见如下
自动驾驶仿真(六)—— SIL软件在环仿真测试_第7张图片

同时可以在计算路径下查看到已经生成的C代码的simulinkmodel.c程序文件,simulinkmodel.h头文件等。
自动驾驶仿真(六)—— SIL软件在环仿真测试_第8张图片

2.3 结果对比

将S function模块拷贝到原模型所在的simulink计算文件中,进行计算对比。
自动驾驶仿真(六)—— SIL软件在环仿真测试_第9张图片

为了方便前后数据对比,使用Data Inspector(数据检查器)来对比分析。小伙伴们有不熟悉这个工具的,我这里也给出一个参考使用说明:
Data Inspector(数据检查器)
下图中,run1的蓝线为原simulink模型的仿真结果,run2的黄线为C代码模型的仿真结果,从对比结果可以看到模型自动生成的C代码和模型本身的仿真结果是一样的。所以成功完成本博文的SIL软件在环仿真测试,C代码模型的和模型本身是一致的。
自动驾驶仿真(六)—— SIL软件在环仿真测试_第10张图片

3. 参考学习的书目教材

  1. 《Matlab/Simulink系统仿真超级学习手册》 石良臣 编著
  2. 《自动驾驶汽车车辆在环测试方法研究》申静峰 2021 硕士论文
  3. 《基于软件在环的自动驾驶行为决策系统设计与测试》宋吉 2018 硕士论文
  4. 《基于Matlab/Simulink的软件在环仿真技术研究》钱振天

=文档信息=
本学习笔记由博主原创整理编辑,仅供非商用学习交流使用
由于水平有限,错误和纰漏之处在所难免,欢迎大家交流指正
如本文涉及侵权,请随时留言博主,必妥善处置
版权声明:非商用自由转载-保持署名-注明出处
署名(BY) :zhudj
文章出处:https://zhudj.blog.csdn.net/

你可能感兴趣的:(自动驾驶技术,自动驾驶,matlab,汽车)