自动驾驶仿真(七)——基于Simulink的SIL测试实战指南

自动驾驶仿真(六)—— SIL软件在环仿真测试 自动驾驶仿真六—— SIL软件在环仿真测试1. 在环仿真测试2. SIL软件在环仿真测试2.1 模型配置参数2.2 S function生成实现2.3 结果对比3. 参考学习的书目教材 博主前面的博文已经简要介绍了Carsim、Prescan 与 Simulink 在 “V”型开发流程的一些应用,现今成熟的汽车控制系统软件都是以(Model Based Design,MBD)来开发,它以图形化的方式表达复杂的逻辑、代码可读性、可移植性、开发调试便利程度都大大增强,同时利用成熟的代码生成工具链,也避免了手工代 阅读详情

1. 为什么SIL测试是自动驾驶开发中的“安全气囊”?

如果你正在开发一个自动驾驶功能,比如自动紧急制动(AEB),你肯定不希望第一次测试就直接在真车上进行。万一算法有个小bug,那后果不堪设想。这就好比学游泳,你不能直接跳进深水区,得先在浅水区或者泳池边练习动作。在自动驾驶的“V”型开发流程里,软件在环仿真(SIL) 就是这个至关重要的“浅水区”和“泳池”。

我干了这么多年,见过太多团队跳过SIL,直接奔着硬件在环(HIL)或者实车测试去,结果往往是问题在后期才暴露,修改成本呈指数级上升。SIL测试的核心价值,就是在纯软件的环境里,用模型自动生成的代码(比如C代码)去和原始的Simulink算法模型“对答案”。它回答一个最根本的问题:我写的模型,和它生成的实际要跑在芯片里的代码,行为是不是一模一样? 听起来简单,但这里面的坑可不少。编译器优化、数据类型转换、浮点精度差异,任何一个环节都可能让模型和代码“貌合神离”。SIL就是帮你提前发现这些“表里不一”的问题,确保你的算法意图被准确无误地翻译成机器语言。

所以,这篇实战指南,我就想抛开那些高大上的理论,用一个你我能立刻上手的Simulink小例子,把SIL测试的完整流程走一遍。我会分享我踩过的坑、调过的参数,以及怎么让这个对比结果既快又准。目标就一个:让你看完就能在自己的模型上复现,建立起对生成代码的绝对信心。

2. 实战第一步:搭建你的第一个SIL测试模型

理论说再多,不如动手做一遍。我们从一个最简单的模型开始,这样能避开复杂的业务逻辑,专注于SIL流程本身。这个模型的功能是:输入一个正弦波,经过一个离散的传递函数,得到一个输出。我们要验证的就是,这个模型的Simulink仿真结果,和它生成的C代码的仿真结果,是否严丝合缝。

2.1 创建模型与关键模块选择

打开Simulink,新建一个模型。我们从库浏览器里拖拽几个核心模块进来:

  • Sine Wave(正弦波):作为信号源。双击它,我们把频率设为 1*2*pi rad/sec,这样就是一个1Hz的正弦波。采样时间(Sample time)先保持 -1(继承),后面统一设置。
  • Discrete Transfer Fcn(离散传递函数):这是我们待测试的“算法”核心。从 Simulink / Discrete 库里找到它。我们给它设一个简单的传递函数,比如分子 [0.1 0.05],分母 [1 -0.9]。这里有个关键点:它的采样时间(Sample time)参数我们先空着,或者填 -1,因为我们要让它在模型配置里统一生效。
  • Scope(示波器) 和 To Workspace(到工作区):用来观察和记录数据。把正弦波的输出和传递函数的输出都连上Scope,同时用To Workspace把传递函数的输出保存到MATLAB工作区,变量名就叫 model_output,方便后续对比。

用线把它们连起来,一个最简单的开环测试模型就搭好了。这时候你先别急着点运行,因为SIL测试的成败,一半取决于接下来的模型配置。

2.2 模型配置参数的“魔鬼细节”

点击Simulink菜单栏的 建模(Modeling),然后进入 模型设置(Model Settings),或者直接按 Ctrl+E。这个配置窗口里的每一个选项,都像精密仪器上的螺丝,拧对了地方,机器才能顺畅运转。

自动驾驶虚拟仿真测试介绍(7):MIL、SIL、PIL和HIL是个啥 |作者版权所有,未经许可谢绝转载,转载请联系。 “本篇介绍下什么是MIL、SIL、PIL和HIL。” 一、基于模型的设计 基于模型的设计方法(MBD,Model Based Design)采用图形化设计和自动化代码生成,不同于基于手工编程和纸上规范的传统编程方法,具有如下优点: (1)在统一的开发测试平台上,允许从需求分析阶段就开始验证,并做到持续不断的验证与测试; (2)产品的缺陷暴露在产品开发的初级阶段,开发者把主要精力放在算法和测试用例的研究上,嵌入式代码的生成和验证则留给计算机去自动完成; (3)大 阅读详情

相关推荐

自动驾驶仿真(七)—— ADAS HIL仿真测试及基于CANoe的交通信号灯仿真

自动驾驶仿真七——ADAS HIL仿真测试及基于CANoe的交通信号灯仿真1. ADAS HIL仿真测试1.1 HIL仿真测试工具链1.2 摄像头暗箱仿真测试2. CANoe软件仿真2.1 简单的开关和灯仿真实例2.2 交通信号灯仿真实例3. 参考学习的书目教材 博主前面的博文已经简要介绍了Carsim、Prescan 与 Simulink 在 “V”型开发中MIL、SIL的应用,对于同样重要的HIL硬件在环仿真测试,就在本篇博文来讲讲,这次主要介绍ADAS HIL仿真测试的相关知识,以及基于CANoe实现

zhudj08的博客 1万+

自动驾驶仿真(七)——Simulink在SIL测试中的关键配置与实战解析

本文深入解析了Simulink在自动驾驶SIL测试中的关键配置与实战技巧。从模型参数设置到代码生成避坑指南,详细介绍了软件在环仿真的黄金法则,帮助开发者高效验证自动驾驶算法。通过实战案例展示如何搭建测试环境、优化性能,确保模型到代码的精准转换,提升自动驾驶系统开发效率。

weixin_29209801的博客 377

别再只盯着实车了:用SIL测试在电脑上快速验证你的自动驾驶算法(附Simulink+Carla配置)

本文详细介绍了如何利用SIL(软件在环)测试技术,通过Simulink与Carla的联动配置,在电脑上快速验证自动驾驶算法。文章涵盖了SIL测试的核心价值、开发环境配置、代码生成实战、仿真环境集成以及测试用例设计,帮助开发者高效完成算法验证,显著降低实车测试成本和时间。

weixin_42651748的博客 407

别只刷题了!我用834分经验告诉你,华为HCIP大数据考试(H13-723)这样准备更高效

本文分享了华为HCIP大数据认证(H13-723)834分通关的高效备考经验。通过分析考试动态、题库验证技巧和章节优先级策略,帮助考生超越单纯刷题,系统化掌握核心知识点。特别强调实时流处理和离线批处理等重点章节,提供黄金90分钟临场发挥策略,助力考生一次性通过考试。

weixin_38168786的博客 449

流媒体协议-RTMP简介

与rtsp 不同,RTSP(Real-Time Streaming Protocol)是一个控制协议,负责控制媒体流的传输,但不传输媒体数据本身。RTSP 可以通过 TCP 或 UDP 传输 RTP 包来传输音视频数据。 RTMP(Real-Time Messaging Protocol)是一个综合性的协议,不仅可以传输音视频数据,还可以传输信令控制指令。RTMP 使用 TCP 作为传输协议,可以直接在 TCP 连接上传输音视频数据,也可以传输控制指令,实现了音视频流的实时传输和控制

xiaoshuaijinniu的博客 4542

CUDA 12.1环境下的动态库链接修复:从libcusparse.so.12的undefined symbol错误到libnvJitLink.so.12的正确加载

本文详细解析了在CUDA 12.1环境下,PyTorch因libcusparse.so.12找不到libnvJitLink.so.12中的__nvJitLinkAddData_12_1符号而报错的根本原因。通过诊断动态链接过程,提供了创建符号链接、修改环境变量等三种解决方案,并深入探讨了nvJitLink组件的作用及环境配置的最佳实践,帮助开发者彻底解决此类动态库链接问题。

c8d9e0f1的博客 197

工作中SVN的使用,保姆级教程!

SVN是一款集中式版本控制系统,采用客户端-服务器模式管理代码版本。与Git相比,SVN在目录权限控制、大型二进制文件处理等方面具有优势,适合特定场景使用。本文介绍了SVN的安装方法、基本操作(检出、提交、更新、回滚等)以及分支管理(创建、合并、切换)。同时讲解了文件冲突的解决方法,并演示了如何在IDEA中集成SVN工具。SVN虽然逐渐被Git取代,但在某些特定场景下仍是可靠选择,工具选择应基于团队和项目需求。

胜人者有力,自胜者强! 1837

Android wifi源码分析(二) Wifi关闭流程

接着上一篇,这篇说一下Wifi的关闭流程。 由上一篇可以知道,framework层提供的wifi开关接口都是**setWifiEnabled**,只是参数不同而已。*true*表示开启wifi、*false*表示关闭wifi。

奋斗的菜鸟ing 3291

项目篇:移动平台机械臂视觉定位抓取实施(基于ROS架构)

ROS包内容: 这篇日志的目的是快速项目实施,所以详细的部分会不断补充。 1、相机采集包(创建抓取图像服务,单张) Realsense Camera(微软深度摄像头,官方提供ros包) Pylon Camera(basler相机,官方提供ros包) 2、定位算法包(抓取图像,定位标志物) Aruco_ros (二维码定位,官方提供ros包) Apriltag (二维码定位,官方提供ros包)...

南北粉面馆 6039

Aurix TC3xx系列MCU ResourceM模块配置(多核资源分配)

为减轻主核的负载率或者平衡各个核的资源分配,通常需要把一些MCU内部资源分配到从核上,在EB tresos工具中,通过ResourceM模块实现多核资源分配。

m0_38045338的博客 1380

智能Agent如何重塑企业流程

在当今数字化时代,企业流程的效率和敏捷性至关重要。传统企业流程往往受限于人工操作,效率低下、成本高昂,难以适应快速变化的市场环境。智能Agent作为一种新兴技术,凭借其强大的智能化能力,正在逐渐改变企业流程的运作模式,为企业带来新的机遇和挑战。智能Agent是一种能够感知环境、自主决策、执行任务的软件实体。它可以模拟人类的智能行为,例如学习、推理、规划和沟通。通过将智能Agent嵌入到企业流程中,可以实现流程的自动化、优化和智能化,从而提高效率、降低成本、提升客户体验。8.1 研究成果总结。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 871

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: PE制作-006.深入解析MiniPE内核文件结构与启动流程优化
下一篇: 技术解析 | 利用 Amazon Bedrock 实现 DeepSeek-R1 大模型的高效调用与安全管理
L oiey
博客等级 码龄10年 36粉丝 1613原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值