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。对于更复杂的或不同的驾驶场景,各位朋友们可以使用本文描述的类似方案来进行进一步的功能开发。

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

    关注

    2573

    文章

    54371

    浏览量

    786074
  • ACC
    ACC
    +关注

    关注

    1

    文章

    60

    浏览量

    23494

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    simulink只要运行就会死机

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

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

    前面发过中值、均值、高斯滤波的文章,这些只考虑了位置,并没有考虑相似度。那么双边滤波来了,既考虑了位置,有考虑了相似度,对边缘的保持比前几个好很多,当然实现上也是复杂很多。本文将从原理入手,采用Matlab与FPGA设计实现双边
    的头像 发表于 07-10 11:28 4081次阅读
    基于<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对交流电机调速系统进行建模和仿真

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

    MATLAB如何助力全球巨头实现智能化突破

    当深度学习遇见汽车,一场静默的技术革命正在发生。从Poclain Hydraulics 利用神经网络实时监测电机温度,到梅赛德斯-奔驰用虚拟传感器替代硬件,再到康明斯通过 AI 模型加速发动机仿真——这些行业领军者正借助 MATLAB
    的头像 发表于 05-16 14:51 974次阅读
    <b class='flag-5'>MATLAB</b>如何助力全球巨头<b class='flag-5'>实现</b>智能化突破

    MATLAB/Simulink驱动汽车行业能效革命

    整车热控制,MATLABSimulink 正以创新工具助力全球企业突破技术瓶颈,为绿色出行提供可靠保障。
    的头像 发表于 05-14 14:22 570次阅读
    <b class='flag-5'>MATLAB</b>/<b class='flag-5'>Simulink</b>驱动汽车行业能效革命

    如何实现MC33774IC在Simulink环境中使用基于模型的设计?

    我想熟悉如何实现MC33774IC 在 Simulink 环境中使用基于模型的设计。 尽管 MATLAB 提供了一些示例文件,但它们似乎是最终版本。要更深入地了解如何配置MC33774,我正在寻找一个教程,该教程解释了如何从头开
    发表于 04-10 08:05

    MATLAB仿真在直流电机双闭环调速系统中的应用

    在分析了直流调速系统原理的基础上,在MATLAB/SIMULINK 仿真环境下对转速、电流双闭环调速系统建模并进行了仿真分析。仿真结果表明,该控制系统模型具有转速、转矩响应好和仿真速度快的优点
    发表于 03-20 13:03

    如何使用MATLAB实现一维时间卷积网络

    本文对一维卷积操作进行介绍,包括一维扩展卷积和一维因果卷积,以及 MATLAB 对一维卷积的支持情况。在最后通过一个实例演示如何在 MATLAB 中将一维卷积和 LSTM 结合构建分类网络,实现基于传感器数据的故障诊断。
    的头像 发表于 03-07 09:15 1666次阅读
    如何使用<b class='flag-5'>MATLAB</b><b class='flag-5'>实现</b>一维时间卷积网络

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

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

    matlab里的simulink仿真一个推挽升压仿真电路,输出带载能力很差?

    新手用了matlab里的simulink搭了个推挽仿真,pwm输出为28khz,占空比0.45,变压器匝数比1:31,输入电压12v,输出电压310v,想做个功率1kw的,然后接了个96.1的负载,输出电压只有160多v了。*附件:newpushpull.zip空载带载变
    发表于 02-07 20:01

    MathWorks积极推动MATLABSimulink在教学项目中的应用

    全球领先的数学计算软件开发商 MathWorks 今天宣布,其 MATLABSimulink 平台在中国的高校教育中取得显著成效。随着科技的迅猛发展,国家新质生产力对未来人才提出了更高的创新
    的头像 发表于 12-27 15:32 1298次阅读

    Simulink与 Simscape的结合使用

    Simulink 简介 Simulink 是一个基于 MATLAB 的图形化编程环境,它允许用户通过拖放的方式来构建复杂的系统模型。Simulink 广泛应用于控制设计、信号处理、通信
    的头像 发表于 12-12 09:31 2693次阅读

    SimulinkMATLAB 的结合使用 Simulink中的信号处理方法

    在工程和科学研究中,信号处理是一个重要的领域,涉及到信号的采集、分析、处理和生成。MATLAB 提供了丰富的信号处理工具箱,而 Simulink 提供了一个直观的图形界面,使得复杂的信号处理系统可以
    的头像 发表于 12-12 09:25 2193次阅读