百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

基于MATLAB的ACC控制算法设计及仿真测试

moboyou 2025-04-26 18:34 42 浏览


作者 | 不可说

出品 | 汽车电子与软件



自适应巡航控制系统(ACC)是汽车自动驾驶技术研究中一项重要的纵向跟驰技术,通过有无前车、前车的加减速情况、跟车距离等传感器传递的信息,在控制系统中通过车间距、加速度控制等相关算法给定主车加速度,控制车辆的纵向跟驰速度,从而有效减轻驾驶员在驾驶过程中的频繁、持续的操作,降低驾驶员的负担,增强车辆的通行性,提高车辆行驶的主动安全性。


在以往的研究与应用中,ACC的实现大多基于毫米波雷达的测距功能来实现的,这是因为毫米波雷达的成本相对于激光雷达要低很多,同时,也较为便捷的集成与车身上。但是,激光雷达是智能车未来发展的必不可少的助力,它可以实现目标的测速、测距、目标的识别、定位与地图的构建等功能,因此,激光雷达极有可能成为今后智能车的标准配件,借助激光雷达实现目前已成功应用的智能辅助驾驶系统也是有研究必要的。




#01

自适应巡航系统的设计


1.1 稳态跟随车间距特性


在车辆跟驰的车间距控制策略中,恒定时间间隔(constant time-gap,CTG)策略和恒定间隙策略适用广泛,在稳定跟随运动(即,

)中, “跟车时间间距”

定义如下:



其中,

是前面的车辆和本车之间的距离间隔,并且

是本车车速,该间隙表示“从前方车辆的尾部表面到目标车辆的前表面的距离”。


给出用于表示在稳定跟随情况下车间距

和车速

之间的关系的一阶和二阶回归模型:


车间距

的一阶回归模型:



车间距

的二阶回归模型:



其中,

表示速度为0时的车间距,

是线性系数,

是二次系数。


Fancher.P.[3,11]等人采集了143位驾驶员的数据,对比稳态跟随情况下的车间距

的一阶回归拟合与车间距

的二阶回归拟合,发现车间距

的一阶回归拟合就可以很好的描述驾驶员的稳态跟随情况,所以,在这里取


1.2 跟车模式的上层决策


目前来讲,规划车辆正常跟随情况下的所需加速度常用的方法之一为线性最优控制理论。


解决最优控制问题的关键在于运动方程的建立,这个运动方程应当描述清楚受控运动的过程,同时也要给出受控系统中变量的范围,明确初始时的运动状态,与所要达到的目标,并选定某一个性能指标对运动过程进行评价。一般来讲,性能指标的选取与控制运动方程和运动状态息息相关。


使用积分器对车辆进行建模,受控车辆和前车的运动状态可以用状态空间模型表示如下:



是线性系数,即取“跟车时间间距”

. u 表示受控车辆的加速度,干扰量

表示为前方车辆加速度,跟车的状态矩阵

表示为:




上式中,

表示期望的车间距,即利用车间距的一阶回归模型计算得到的结果,

表示实际车间距,即利用激光雷达测得的车间距;

表示前方车辆的速度,

表示本车车辆的速度,稳态跟随情况下车辆的控制可以看作线性二次优化问题,最小跟随距离误差和速度误差的状态反馈控制原理及控制输入的设计如下:



权重矩阵

有如下表示:



选择状态反馈原理的增益

来使最代价函数小化。通过求解公式J可以确定受控车辆的期望加速度。根据李雅普诺夫的第二法和黎卡提方程有:



系数矩阵

的计算表达式如下:



是黎卡提方程的正定稳态解。因此,期望的加速度表示为:



是受控车辆的速度

的函数,表示控制增益,并且是通过调整加权矩阵

得到的。由于加权矩阵

对车辆系统的性能有影响,因此选择加权因子

或者选择对应的

来实现受控车辆的自动控制。


在跟车模式下,存在这样一种情况:旁边车道上行驶的车辆,突然并入本车车道,并且并入后车间距较小、目标车辆的速度较小。这样对于受控车辆来讲是危险的,因为上述的跟车加速度决策是考虑一般情况下的稳态跟车,主要考虑到驾驶员的乘坐主观感受,因此在下文中会对之前决策的加速度进行限制,但是有危险情况发生时,加速度则不应限制。是否为危险情况可以用

来进行判断,当下式成立时则认为危险:




为危险临界的

的值,一般可取0.5。


危险情况下的加速度可由下式决策:



表示的是紧急制动时的增益系数。


1.3 速度跟随模式的上层决策


当车辆前方没有其他车辆或者障碍物时,即受控车辆前方的激光雷达返回点云不包含非地面点云。这时ACC的功能主要体现在对速度的跟随上,即受控车辆自动加减速,使其达到驾驶员所设定的速度,并维持这个设定的速度行驶。


对于某一个特定的设定速度,对于不同的速度差值,希望加速度变化可以是非线性的,并且希望尽可能的减少运算量,具有较强的鲁棒性和稳定性,因此,在这里采用模糊控制决策速度跟随模式下的加速度。


模糊控制器包括四部分:


(1)模糊化,(2)规则库,(3)模糊推理,(4)解模糊。


首先要确认模糊控制器的输入量,将其转变为模糊控制器可输入的需求量,确定每个输入的模糊语言值和相应的隶属函数,根据相关的专家经验建立合适的模糊规则,再基于模糊规则进行推理决策,最后进行解模糊,得到的量就是控制输出量。


模糊控制原理:



在模糊控制中,被控对象的元素的所有集合可称为论域,以

表示论域,把

上的实值函数记为

,那么则有下式成立:

如果

中的任意一个元素,那么

表示的就是

对于

的隶属度,因此,把

称为隶属度函数。可以通过控制

达到控制

的目的。

表示

完全归属于

表示

完全不归属于

表示

不完全归属于

,即介于前两者之间。


在模糊控制中,精确的变量通过隶属度函数将其转化为模糊量,是解决非线性时变问题的关键。隶属度函数的选择具有极大的主观性,视情况而定,但是要考虑到整个论域,不能遗漏论域里面的元素。以下三种隶属度函数在控制系统中应用广泛:正态分布型(高斯基函数)、三角形和梯形:


1)正态分布型数学表达式


其中,

为函数的中心值,

表示函数的宽度。


2)三角形数学表达式



其中,

为三角形的三个形状参数。


3)梯形数学表达式:


其中,

为梯形的四个形状参数。


模糊控制器的结构设计,是指确定其输入变量与输出变量的个数,通常将一个输入一个输出的模糊控制器称为单变量模糊控制系统(SISO),又称为一维模糊控制器,其他数量的输入量/输出量的模糊控制器称为多变量模糊控制系统(MIMO),理论上,模糊控制器的维数越高,控制越为精细,但是模糊规则的制定相当复杂,同时,计算量也很大,车辆速度跟随模式下的加速度求解较为简单,应用一维模糊控制器即可,如图所示:



采用模糊控制器来决策出车辆的当前期望加速度,使车辆底层模型可以理想的跟踪上期望车速,选取期望车速与当前车速的速度差

,作为模糊控制器的输入信号,即:

上式中,

为驾驶员的期望车速,

为受控车辆的本车车速。

对于

而言,采用七个模糊语言子集来确定,即

,分别对应负大、负中、负小、零、正小、正中、正大,输入变量的论域为

;对于输出变量,即期望加速度

,也采用七个模糊语言子集来确定,即

,输出变量的论域为

,这里主要考虑到速度跟随过程中的舒适性,所以不采用较大的加减速度。


参考专家经验,并依据车辆传动系统的动力学特性与驾驶员驾驶习惯,确定模糊控制规则的选取原则如下 :


(1)速度误差较小时,应该产生较小的期望加速度,车辆可以平稳的达到期望速度;


(2)速度误差处于中等水平时,应该产生较大的期望加速度,这样可以很快的缩小速度误差,当其达到较小的水平时,又以较小的加速度值使车辆平稳的达到期望速度;


(3)速度误差处于较大水平时,应该产生一个中等的期望加速度,因为速度误差值较大时,根据驾驶员习惯,加速度变化规律往往是由小变大再变小,因此,速度差较大时应该产生一个中等加速度值,快速又不失平稳的过渡到(2)与(1)的状态。


根据上述的三条原则,确定模糊控制规则如下表:



防止加速过程产生加速度的跳变,同时保持加速过程的平稳变化,采用重心法进行加速度的决策。


输入变量和输出变量的模糊子集采用三角形隶属度函数,如图所示:



表达模糊控制器输入输出的关系如下图所示:



1.4 ACC模式的切换


ACC主要分为速度跟随与跟车两个模式,这两个模式均可决策出车辆的加速度,在开启ACC后,应该决定进入哪个模式,或者,满足某种条件后,应由当前的模式切换到另一个模式。当没有前方目标车辆的时候,毫无疑问的应该为速度跟随模式;当存在前方目标车辆时,并且前方车辆与受控车辆距离足够近,此时应该为跟车模式。以往常用的模式切换条件可以用图来描述:



可以看出,在坐标系

中,三四象限表示车间距为负值,即车辆会发生碰撞,这是不允许的,所以三四象限为死区,不需要考虑。模式切换线为一、二象限中的一条水平直线,这条直线表示车间距为

,当车间距大于

时,ACC处于速度跟随模式,当车间距介于

之间时,ACC处于跟车模式,很显然,这种模式判别条件仅与车间距有关,而没有考虑车速、相对车速的影响。

由于第二象限的

是负的,在这象限内的沿任何轨迹的运动,所代表的车间距都不会增加,从物理上来说,这意味着主车(受控车辆)接近前车,因为它的速度比前车大,类似的推理表明,车辆的对应状态处于第一象限时,主车与前车的车间距不会减小,这意味着主车(受控车辆)远离前车。因此,可以说,车辆运动状态处于第一象限时比处于第二象限时更为安全,所以,当受控车辆由速度跟随模式切换到跟车模式时,车辆状态处于第一象限时比处于第二象限时可以 “更晚”的进行切换,并且,速度差值

越大时,车辆间的安全性更高。所以,可以采取更为合理的模式切换线,如图所示



模式切换线可以表述为下式:



上式中

,一般取值

, R表示两车相对速度为0时,理想的车间距,R

, C0为两车静止时的理想车距,

表示跟车时距,

表示前车的车速。


车辆状态位于切换线右上方时,处于速度跟随模式;车辆状态位于切换线左下方时,处于速度跟随模式。


另外,还需要考虑驾驶员设定的期望车速与前方目标车速的关系:如果期望车速小于前方目标车速,车辆应该按照驾驶员的意图行驶,即进入速度跟随模式,不应该跟随前方较快的目标车辆,其余情况下,均按照ACC模式判别正常决策。




#02

仿真实验验证


2.1 实验场景的设计


根据上文对于ACC系统的设计,设计四个常见的交通场景来验证ACC控制的准确性与激光雷达在ACC系统中的可应用性:


  • 实验场景1:不同车道的车辆切入实验车辆车道前方,一段时间后,又切出该车道;


  • 实验场景2:前方车辆位于实验车辆同车道,距离实验车较远,实验车逐渐接近前车。


基于以上仿真场景的设计,在仿真软件平台搭建实验场景,主要分为以下几个步骤:


(1)道路场景与行驶环境的构建;


(2)实验车辆模型与激光雷达传感器模型的添加;


(3)交通车辆模型的添加与行驶设定;


(4)实验车辆控制算法在Simulink中的搭建。



2.2 仿真实验结果与分析


实验过程中记录车辆的相关参数与激光雷达的探测数据,同时判断激光雷达的探测目标是否位于实验车辆的前方车道内。


实验中,会设定驾驶员的期望车速与前方车辆的速度(如果有前车),同时设定ACC的模式:1表示速度跟随模式,2表示跟车模式。


实验场景1:



实验刚开始时,激光雷达探测到目标车辆的航向角很大,这是因为目标车辆处于实验车辆的旁边车道内,同时判定0-2.27s时,目标车辆未在实验车辆的前方同一车道内,于2.27s左右切入实验车辆所在的车道,目标车辆在实验车辆的前方同一车道内,又于32s左右时,目标车辆又切出实验车辆所在的车道。



分析实验结果可知:设定驾驶员期望巡航车速为50km/h,目标车辆初始车速为30km/h,最高车速为60km/h。初始0-2.27s时,ACC模式处于1,即速度跟随模式,此时目标车辆处于实验车辆的旁边车道内,本车应加速至巡航车速,但是2.27s时,目标车辆切入实验车辆前方,本车则切换到跟车模式,稳定跟随目标车辆,在大约26s的时候,目标车辆仍在实验车辆的前方同一车道内,但是前方车辆速度超过了设定的驾驶员设定的巡航车速,所以本车的ACC模式切换回1,即速度跟随模式,本车不再跟随目标车辆,而是进行速度跟随控制,稳定的达到巡航速度,目标车辆于32s左右时,切出本车所在车道,并未对本车行驶产生影响。从车间距特性图像中可以看出,期望车间距仅仅在ACC模式为2的时候进行计算,因为速度跟随模式下车间距没有意义。综合上述分析结果,验证了切入--切出工况下ACC控制的准确性与激光雷达在该系统中的可应用性。


实验场景2:



与实验场景设定的一致,目标车辆一直处于本车车辆的前方同一车道内。



分析实验结果可知:设定驾驶员期望巡航车速为50km/h,目标车辆初始车速为30km/h,最高车速为60km/h。0-13s时,ACC模式处于1,即速度跟随模式,此时目标车辆处于实验车辆的同一车道的前方,但是距离很远,并且两车速度较低,所以处于速度跟随模式,本车应加速至巡航车速;在约6s的时候,本车车辆达到巡航车速,并维持巡航车速至13s,此时,控制参数达到了模式切换的标准,ACC模式切换到2状态,即跟车模式,车速平滑过渡到与前车保持一致,在约24s时,前车车速超过了设定的驾驶员设定的巡航车速,所以本车的ACC模式切换回1,即速度跟随模式,本车不再跟随目标车辆,而是进行速度跟随控制,稳定的达到巡航速度。综合上述分析结果,验证了实验场景4设定工况下ACC控制的准确性与激光雷达在该系统中的可应用性。




#03

总 结


虽然目前已有很多ACC产品化,但是实现大多基于毫米波雷达的测距功能来实现的,同时,激光雷达是智能车未来发展的必不可少的助力,它可以实现目标的测速与测距,因此,激光雷达极有可能成为今后智能车的标准配件,所以设计了上述基于激光雷达的ACC功能,借助了了激光雷达的测距与测速功能,经仿真实验验证,基于激光雷达的ACC功能完善,适应多种较为复杂的工况,同时对于速度跟随与跟车模式下的控制较为稳定,验证了ACC控制的准确性与激光雷达在该系统中的可应用性。



/ END /

招募 | 特约撰稿人(兼职)

欢迎关注,小编微信:btighteast

相关推荐

黄道十二宫杀手密码51年后被破解,来自两位程序员和数学家合作

杨净边策发自凹非寺量子位报道|公众号QbitAI黄道十二宫杀手(ZodiacKiller)可能是世界上最知名的高智商连环杀手,52年来从未被抓获。他的事迹已被改编成了多部好莱坞电影。△...

深入剖析MediaCodec解码器的基本原理及使用「建议新手收藏」

一,MediaCodec工作原理MediaCodec类Android提供的用于访问低层多媒体编/解码器接口,它是Android低层多媒体架构的一部分,通常与MediaExtractor、MediaMu...

Retrofit WebService 实践

前言作为Android开发,平时和后端聊得最多的除了喝酒就是接口。常用语:Restful和WebService,前者现在聊得多,后者以前聊得多。默认含义分别为:Restful:HTTP协议...

建议收藏!175部4K UHD版本经典高分电影洗版参考目录(2015之前)

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:1L789近两年很多经典高分老电影陆续开始重制成4KUHD版本,虽然我早已将这些电影的BD蓝光版收入,但纠结一番后还是花了不少时间将其全部...

2 个月的面试亲身经历告诉大家,如何进入 BAT 等大厂?

这篇文章主要是从项目来讲的,所以,从以下几个方面展开。怎么介绍项目?怎么介绍项目难点与亮点?你负责的模块?怎么让面试官满意?怎么介绍项目?我在刚刚开始面试的时候,也遇到了这个问题,也是我第一个思考的问...

详解Android官推Kotlin-First的图片加载库

前言Coil是一个非常年轻的图片加载库,在2020年10月22日才发布了1.0.0版本,但却受到了Android官方的推广,在AndroidDevelopersBackst...

webview 渲染机制:硬件加速方式渲染的Android Web

webview渲染是什么?webview渲染是用于展现web页面的控件;webview可以内嵌在移动端,实现前端的混合式开发,大多数混合式开发框架都是基于webview模式进行二次开发的w...

因为我对Handler的了解,居然直接给我加了5K

1Handler是什么?android提供的线程切换工具类。主要的作用是通过handler实现从子线程切换回主线程进行ui刷新操作。1.1为什么Handler能实现线程切换?在创建Handler的...

「经典总结」一个View,从无到有会走的三个流程,你知道吗?

前言一个View,从无到有会走三个流程,也就是老生常谈的measure,layout,draw三流程我们都知道Android视图是由一层一层构成的层级结构,直白点说,就是父View包含子View而子V...

这些垃圾代码是谁写的?哦,原来小丑竟是我自己

程序员是最喜欢自嘲、自黑的群体之一,比如他们常常称自己是“码农”、“程序猿”,再比如他们的工作明明是写代码、修Bug,也有人调侃说:“明明我们是修代码、写Bug!”本文整理了一些程序员“修代码、写...

手把手教你爬取天堂网1920*1080大图片(批量下载)——理论篇

/1前言/平时我们要下载图片,要要一个一个点击下载是不是觉得很麻烦?那有没有更加简便的方法呢?答案是肯定的,这里我们以天堂网为例,批量下载天堂网的图片。/2项目准备工作/首先我们第一步我们要安装...

音视频开发需要你懂得 ffmpeg 开源库的编码原理

引言音视频开发需要你懂得音视频中一些基本概念,针对编解码而言,我们必须提前懂得编解码器的一些特性,码流的结构,码流中一些重要信息如sps,pps,vps,startcode以及基本的工作原理,...

「8年老 Android 开发」最全最新 Android 面试题系列全家桶(带答案)

下面跟大家分享的这些面试题都是互联网大厂真实流出的面试内容,每个问题都附带完整详细的答案,不像网上的那些资料三教九流有的甚至还没答案,这些面试题我也是经过日积月累才整理出来的精品资料。这些面试题主要是...

手把手教你爬取天堂网1920*1080大图片(批量下载)——实战篇

/1前言/上篇文章手把手教你爬取天堂网1920*1080大图片(批量下载)——理论篇我们谈及了天堂网站图片抓取的理论,这篇文章将针对上篇文章的未尽事宜进行完善,完成图片的批量抓取。/2图片网址解...

PHP 8.1.9 更新发布

CLI:修复了内置服务器通过PHP_CLI_server_WORKERS环境变量的潜在溢出。修正了GH-8952(不再可能有意关闭std句柄)。Core:修复了GH-8923的错误(Windows上的...