1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 基于模型预测控制MPC的辅助驾驶(ADAS)——自动紧急制动(MATLAB仿真实现)

基于模型预测控制MPC的辅助驾驶(ADAS)——自动紧急制动(MATLAB仿真实现)

时间:2020-07-11 19:13:20

相关推荐

基于模型预测控制MPC的辅助驾驶(ADAS)——自动紧急制动(MATLAB仿真实现)

模型预测控制(MPC)相较传统PID控制有着对未来信息的预测的优势,同时可以包含多约束,当然有一个问题就是模型要精确。在这里基于模型预测控制设计辅助驾驶中自动紧急制动的算法程序。当然此文的目的也是通过简单模型和实例来介绍MPC,没有使用真正的汽车动力学模型。

(1)汽车的控制模型

简化汽车模型为理想情形下的二阶离散系统,且考虑汽车在直线道路上运行:

其中为汽车的状态,为直线道路上的一维坐标;v为汽车对应的速度;u为输入控制量,即加速度。

上诉模型可写为如下形式:

其中

基于经典模型预测控制,为了简化设定控制时阈和预测时阈相等,即,汽车在个预测时阈下状态为:

其中,为汽车在k时刻的状态向量,为汽车在k时刻预测的k+N个时刻状态的列向量,为预测的控制输入列向量,且有即为我们所求的,

,

(2)汽车的控制目标

控制汽车制动时,无论前方车辆或行人是静止还是运动,我们都希望能够在他们前停下来,设前方障碍物的位置为,那么期望位置,且在期望位置速度要为0,目标函数可以表示为:

其中,,

除了控制汽车在障碍物前停下,还要考虑人在车中的感受如果突然过大的油门和刹车都会邮箱体感,在这里加入控制量的动态约束,避免过大的控制输入:

(3)汽车的输入饱和约束

除上述的控制目标之外还要考虑汽车的输入饱和约束(即速度的约束和加速度的约束):

通过上诉两个函数即可以限制汽车的输入控制量和其速度在我们限定的范围内。

(4)转换至QP求解

当然为了能够用QP求解器方便的求解我们还是要把其转换为二次规划的一般形式。

经过(1)-(3)我们已经可以可以得到如下目标函数

其中包含以下约束

其中,,,

进而可以转换为以下标准二次规划(QP)形式:

有以下约束:

其中,,,

这样简单的基于MPC的ADAS就设计好了,通过求解上诉QP就可以获得k时刻要输入的控制量。

仿真:

在以下仿真中,设定汽车初始速度为6.33m/s,初始位置点为0,目标位置点为59.2,且到达目标位置点速度为0.并设定了最大/最小速度,最大/最小加速度可以得到以下:

仿真下载地址:/download/qq_35379989/16246429

仿真中可调参数如下:

%%%初始化参数x0=[0;6.33]; %初始状态0为初始位置,6.33m/s为初始速度xd=[59.2;0]; %期望状态,其中59.2为期望停下来的位置(可为时变的量),0为停下来的速度umin=-3; %最大减速控制量(加速度)umax=3; %最大加速控制量(加速度)vmin=-8; %最大反向速度vmax=8; %最大正向速度q=0.30; %追踪误差权重因子p=0.20; %控制输入权重因子T=0.1; %时间间隔H=150; %运行总时长N=12; %设定预测时阈=控制时阈u=0;%初始加速度0

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。