自动驾驶仿真六—— 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模型开发流程示意图:

在以上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。

实际上在Simulink实现SIL软件在环仿真过程中,模型配置参数的设置也是很重要的,以下给出部分关键设置项。
1)将求解器是离散定步长。

2)选择ert.tlc即可生成可以在嵌入式环境中运行的代码。

3)Create Block- SIL设置

2.2 S function生成实现

然后就是直接将对象模型转化为C代码形式的模型对象,将模型代码以S function 的形式进行封装,以下即为生成S function流程,主要在matlab命令行窗口中操作输入如下命令行:

生成S function模块可见如下

同时可以在计算路径下查看到已经生成的C代码的simulinkmodel.c程序文件,simulinkmodel.h头文件等。

2.3 结果对比

将S function模块拷贝到原模型所在的simulink计算文件中,进行计算对比。

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

3. 参考学习的书目教材

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

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

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

  1. 基于Carsim和Simulink的SIL软件在环仿真验证

    基于Carsim和Simulink的路径跟踪控制算法的SIL软件在环测试验证 路径跟踪控制算法 选择前面文章五次多项式作为换道路径,联合仿真软件Carsim2016&matlab2022a,搭 ...

  2. APM无人机软件在环仿真环境搭建

    题记:最近做毕业设计得用到无人机仿真,重操旧业,搞一搞SITL仿真. 给个传送门参考:无人机SITL仿真 APM软件在环仿真 我的环境:ubuntu18.04虚拟机 1.官方教程 ardupilot官 ...

  3. 搭建windows下无人机软件在环仿真(SITL)仿真环境,无需任何无人机、飞控硬件,学习无人机通讯等知识

    SITL环境配置方法 APM飞控官网提供的SITL(software in the loop)软件在环仿真 官网地址 通过该虚拟仿真环境可学习地面站操作.Mavlink通信协议等知识. 参照此方法可构 ...

  4. 在环仿真有两种,一种是软件在环仿真SITL,还有一种是硬件在环仿真HITL。

    在环仿真有两种,一种是软件在环仿真SITL,还有一种是硬件在环仿真HITL.S就是soft  H应该就是hardware,硬件在环应该就是真实的pixhawk. https://blog.csdn.n ...

  5. 第七十三篇:从ADAS到自动驾驶(六):可行驶区域检测

    ADAS到自动驾驶(六):可行使区域检测 车辆的可行驶区域包括了结构化的路面.半结构化的路面.非结构化的路面.结构化的路面一般是有道路边缘线,路面结构单一,比如城市主干道,高速.国道.省道等,这个路面 ...

  6. 自动驾驶系统中视觉感知模块的安全测试

    本文由吴昊,王浩,苏醒,李明昊,许封元,仲盛联合创作 摘要 近年来,基于深度学习的视觉感知技术的发展极大地促进了车联网领域中自动驾驶的繁荣,然而自动驾驶系统的安全问题频出引发了人们对自动驾驶未来的担忧 ...

  7. 北京自动驾驶提速:华为奥迪图森完成高速测试,百度包揽全部40张载人牌照...

    雷刚 发自 凹非寺  量子位 报道 | 公众号 QbitAI 北京发力,一切都是高举高打. 2019年最后几天,北京频频释放自动驾驶利好消息. 先是高速完成L4乘用.卡车和V2X等一系列测试,其后又正 ...

  8. 万字长文详解特斯拉自动驾驶体系(感知/规控/标注/仿真)

    作者 | 和君 编辑 | 禾隐记 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[全栈算法]技术交流群 汽车革命的上半场是电动化,下半 ...

  9. 自动驾驶汽车硬件与软件技术介绍

    来源:知乎 概要:本文详细介绍了自动驾驶汽车的硬件和软件,以及所需要做的准备工作,每个研发者或者准备投身于无人驾驶领域的人都应该好好看一下. 全球有数不清的公司在忙着研发自动驾驶汽车,他们的产品也千奇 ...

最新文章

  1. 求最小公倍数的最简模板
  2. 2017年9月9日普级组 买礼物的艰辛
  3. UGUI_判断鼠标或者手指是否点击在UI上
  4. Project编写功能点的规划时间
  5. Visual Studio 2017配置CTP的API文件
  6. 深度学习《CNN架构续篇 - BatchNorm》
  7. NRF24L01使用外部中断读取数据的问题
  8. 2015软件测试面试题第二篇
  9. excel合并多个工作表_多个Excel工作表合并到一个工作簿
  10. Python排序算法---快速排序
  11. LDA算法原理及LDA与PCA的比较
  12. 服务器系统装驱动精灵,云服务器安装驱动精灵
  13. PDF文件title乱码
  14. qt清空qtablew_qt项目:员工信息管理系统
  15. 【POJ3281】Dining 网络流
  16. 科研诚信与学术规范_Mooc_2018_期末考试答案
  17. @OnLifecycleEvent 遭废弃,推荐使用 DefaultLifecycleObserver 替代
  18. SAAS健身房会员管理软件
  19. BZOJ2095[Poi2010] Bridges
  20. Direct3D 初始化

热门文章

  1. 2010年IT10大好书榜(上半年刊)——国外引进篇
  2. 解决Idea Maven生成的jar运行出现“没有主清单属性”问题
  3. 高斯混合模型参数估计的EM算法
  4. Unity3D-rigidBody.velocity
  5. AutoCAD 2008 简体中文精简版(适合低配置电脑)
  6. python微控制器编程从零开始下载_Python微控制器编程从零开始 使用MicroPython
  7. FDC2214/2114使用说明及资料分享
  8. 迄今为止最全的技术文档汇总,编程语言,操作系统,数据结构,设计模式等赶紧收藏起来。
  9. 做人的最高境界是厚道
  10. java自动生成物流单号