0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用Matlab/Simulink实现ACC的Test bench

ml8z_IV_Technol 来源:YXQ 2019-06-03 15:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

目标识别

关于目标识别已经有大量的案例和教程被公布。使用Tensorflow APIMatlab/Simulink 计算机视觉工具箱,结合各种类型的传感器数据(如3D激光雷达云点和/或相机拍摄的照片),可以从摄像机视频流中识别出目标物体。

当然,即便通过ML/DL技术可以识别出目标物体,仍然远远不能满足一个简单的ADAS功能的开发。自动驾驶汽车首先要借助传感器数据正确地理解现实环境,然后还要具备思考、规划和反应的能力。更具体来说,就是系统需要能够正确地控制车辆。

模型预测控制

基于简单的自行车模型,可以将运动学和动力学控制方程输入模型预测控制(MPC)算法

在当今所有的过程控制中,MPC只是其中一种控制技术。PID当然是用的最多的控制方法,但由于MPC具有多输入/输出的优化能力和约束条件,使MPC也超过了10%的占有率。

MPC是一种基于模型的闭环优化控制策略,大量的预测控制权威性文献都无一例外地指出, 预测控制最大的吸引力在于它具有显式处理约束的能力, 这种能力来自其基于模型对系统未来动态行为的预测, 通过把约束加到未来的输入、输出或状态变量上, 可以把约束显式表示在一个在线求解的二次规划或非线性规划问题中。

模型预测控制具有控制效果好、鲁棒性强等优点,可有效地克服过程的不确定性、非线性和并联性,并能方便的处理过程被控变量和操纵变量中的各种约束。

线性时不变(LTI)控制系统,连续状态空间模型可以这样描述。

连续状态空间模型。A、B、C、D是常数状态空间矩阵。x是状态向量,y是输出,u是输入/控制变量

基于一个简单的自行车模型,状态函数可以写成:

Vy, dot_Vy用于横向控制,psi, dot_psi用于转向控制,Vx, dot_Vx用于纵向控制。详细信息可以从Matlab文档页面找到。

MPC的主要思路是预测工厂输出的产量,优化器会找到控制输入的最优序列,使工厂的产量尽可能接近设定值。

如下图中展示了一个典型的场景,图中是一辆行驶在十字路口的汽车。MPC将考虑到道路图的曲率,并将道路图和工厂路径之间的误差最小化。MPC的主要优点之一就是具有硬约束和软约束能力的多输入多输出,非常适合ADAS函数中的控制策略。

ACC

以下的示例演示了这样一个场景:前方一辆汽车从右边进入了自车的车道,雷达和相机传感器识别到了前车,并已确认。为了安全起见,自车必须估算与出前方车辆的相对距离w.r.t.,如果距离小于允许的距离,则自车必须拉开距离,并保持安全距离直至完全停车。直到距离前车足够远,然后自车逐渐加速,直到达到预期的速度。

ACC传感器融合

在该Test Bench中,ACC的传感器融合模块具有检测同一车道(以及传感器检测范围内的其他车道)是否有前车的功能,融合测验(去除冗余),将检测传递给MPC,MPC将会根据实际情况相应地减慢或加速自车。

由下图可见,视觉和雷达识别的对象、仿真时间、自车的纵向速度和路面曲率为输入参数。传感器数据融合和前车跟踪子模块,包含由于雷达噪声引起的第一次雷达探测聚类,并将来自视觉和雷达的探测结合输入到多目标跟踪器。使用卡尔曼滤波器精确估计检测的状态并融合检测,然后,利用确定的轨道和道路信息确定自车与前车之间的相对距离和相对速度,实现ACC的功能。

利用MPC算法方案,将时间间隔(可以是驾驶员的反应时间)、纵向速度和驾驶员设定的速度与相对距离、相对速度一起加入自适应巡航控制系统。在这个测试台上,使用了预构建的ACC控制模块。也可以构建特定于用户的MPC模块。

该ACC模块的主要功能是跟踪驾驶员设定的速度,并通过调整自车的纵向加速度来保持与前车的安全距离。该模块使用了模型预测控制(MPC)计算出最佳控制动作,同时还满足了安全距离和速度,并约束了一定的加速度。

算法结构细节如下图所示。然后用户可以从Matlab中对原始ACC模块进行相应的修改。

到目前为止,ACC的主要控制已经基本完成。然而,车辆在行驶时,司机还必须要一直保持在车道上。因此,车道跟踪功能(也就是转向控制)也需要考虑在内。

随着MPC纵向加速度的调节,Simulink块中必须要输入道路(地图)信息。在本次的测试用例中,道路几何简单地通过常曲率1/R来描述,并已创建于Matlab的工作空间中,可以直接从子系统中使用。

使用MPC调节纵向加速度和曲率的道路更新的位置和偏航角的自车,转向控制采用PID控制。

MPC能够对自车的加速度进行调节,结合采用比例积分微分(PID)控制方案,将可以实现转向控制。

基于自行车模型,可以模拟出自车的位置和偏航角。

到这里,我们已经具备了运行ACC模拟的所有必要条件。单击run按钮,可以查看结果,如下图所示(只显示一帧)。

整个仿真结果如下:

当一辆他车低速车行驶进入速度较快的自车的车道时,只要传感器检测到低速行驶的前车,在MPC控制的帮助下,自车会先减速以保持安全距离。当前车离开同一车道时,自车再次加速,加速直到驾驶员设定的速度。自车的速度和驾驶员设定的速度如下图所示,并显示了自车的相对距离和加速度曲线。

最后这点很重要,ADAS必须使用C或C++部署到特定的ECU上,而Matlab提供了代码生成器工具箱,可以轻松实现这一点。如果需要添加或进一步修改C算法,则可以基于生成的C/C++代码继续编写。

以上回顾了利用Matlab/Simulink实现ACC的Test bench。对于更复杂的或不同的驾驶场景,各位朋友们可以使用本文描述的类似方案来进行进一步的功能开发。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2578

    文章

    55811

    浏览量

    795416
  • ACC
    ACC
    +关注

    关注

    1

    文章

    61

    浏览量

    23669

原文标题:利用模型预测控制技术开发ADAS仿真测试台架

文章出处:【微信号:IV_Technology,微信公众号:智车科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    多种储能技术在MATLABSimulink中的建模与仿真

    面对这些实际需求,MATLAB & Simulink 展现出了强大的优势。它不仅支持对各种储能技术进行灵活建模,更为“多种储能技术”提供了统一的仿真与分析平台。无论是电池储能、超级电容,还是
    的头像 发表于 05-12 13:48 182次阅读
    多种储能技术在<b class='flag-5'>MATLAB</b>和<b class='flag-5'>Simulink</b>中的建模与仿真

    MATLABSimulink R2026a:Agentic AI驱动工程化系统设计新范式

    近期,R2026a版本首次将Agentic AI深度集成至MATLABSimulink实现从“辅助工具”到“主动智能体”的范式转变。
    的头像 发表于 05-06 10:38 749次阅读

    ACC750系列750W AC - DC电源供应器深度解析

    ACC750系列750W AC - DC电源供应器深度解析 在电子设备的设计中,电源供应器就如同设备的心脏,为整个系统提供稳定的动力。今天,我们就来深入探讨一下ACC750系列750W AC
    的头像 发表于 04-28 10:05 322次阅读

    AT32 Work Bench介绍和使用指南

    本帖最后由 jf_77210199 于 2026-4-21 20:01 编辑 本帖介绍 AT32 Work Bench 使用。AT32 Work Bench 通过对 MCU 的图形化配置,生成
    发表于 04-14 18:07

    Google正式发布LLM评测基准Android Bench

    LLM 在 Android 开发任务中的表现。现在,我们发布了 Android Bench 的首个版本,这是 Google 官方专门针对 Android 开发打造的 LLM 排行榜。
    的头像 发表于 03-14 16:00 1980次阅读
    Google正式发布LLM评测基准Android <b class='flag-5'>Bench</b>

    探索MOTIX™ Motor Bench:电机控制评估的得力助手

    探索MOTIX™ Motor Bench:电机控制评估的得力助手 在电子工程师的日常工作中,电机控制评估是一个重要的环节,而合适的工具能极大提升工作效率和准确性。今天,我们就来深入了解一款出色的电机
    的头像 发表于 12-20 15:40 1188次阅读

    matlab的算法部署在simulink

    有没有哪位大佬能提供一下思路,遇到一个问题matlab得不到神经网络fitcnet模型的权重参数,所以simulink没办法部署,那遇到这种情况该如何处理
    发表于 12-08 15:27

    JoyCode:SWE-bench Verified打榜技术报告

    在权威SWE-Bench Verified基准测试中,JoyCode Agent凭借 74.6% 的高通过率 强势登榜全球 Top3,并正式开源! Github开源地址:https
    的头像 发表于 11-03 17:16 1732次阅读
    JoyCode:SWE-<b class='flag-5'>bench</b> Verified打榜技术报告

    雷达系统中数字下变频的实现

    本次设计同样是通过在simulink搭建模型并通过matlab仿真得到正确设计后生成IP核的形式来实现数字下变频的功能。
    的头像 发表于 08-30 14:29 1655次阅读
    雷达系统中数字下变频的<b class='flag-5'>实现</b>

    simulink只要运行就会死机

    在卸载了2345安全卫士之后,电脑就突然黑屏死机,然后再打开电脑,打开simulink后会有照片里的弹窗,就会退出MATLAB,之后再打开simulink只要运行就会死机,怎么解决(求高手解疑)
    发表于 07-24 17:11

    基于Matlab与FPGA的双边滤波算法实现

    前面发过中值、均值、高斯滤波的文章,这些只考虑了位置,并没有考虑相似度。那么双边滤波来了,既考虑了位置,有考虑了相似度,对边缘的保持比前几个好很多,当然实现上也是复杂很多。本文将从原理入手,采用Matlab与FPGA设计实现双边
    的头像 发表于 07-10 11:28 4942次阅读
    基于<b class='flag-5'>Matlab</b>与FPGA的双边滤波算法<b class='flag-5'>实现</b>

    OptiSystem应用:用MATLAB组件实现振幅调制

    本案例展示了在OptiSystem中调用MATLAB代码实现振幅调制。 一、建模目标 案例中,我们生成两束功率为0dBm,频率分别为192.7THz、191THz的载波,合束之后经过自定义脉冲的调制
    发表于 06-13 08:46

    Matlab与MWORKS软件计算精度对比

    位置向量 for i=1:n y(1,i)=x0+v*dt*i; % 利用循环结构实现求解 end y MWORKS软件代码为 clear L=32;#简支梁长 v=3.2; #运行速度 dt=0.5
    发表于 06-07 16:57

    利用MATLAB对交流电机调速系统进行建模和仿真

    是借助计算机及相关技术,对真实系统的运行过程和状态进行数字化模拟的技术。Simulink作为MATLAB的一个组件,能够实现对动态系统的建模、仿真和综合分析。本文在Simulink环境
    发表于 06-06 14:31

    普源示波器如何连接MATLAB实现数据采集与分析

    普源示波器(Rigol)作为国内知名的测试测量仪器品牌,广泛应用于电子工程、科研实验、教学等领域。为了进一步扩展其功能,用户常需将示波器与MATLAB等数据分析平台连接,实现自动化测试、实时信号处理
    的头像 发表于 05-29 09:34 1512次阅读