基于MATLAB&SIMULINK开发自动驾驶系统第九讲纵向车速控制

本讲是采用纵向控制器Stanley模块来控制车辆向前运动的速度。在本模块中,以车辆的加速度从0到10米/秒为例。

纵向控制器Stanley块是一个离散的比例积分控制器,具有积分防抖功能。给定车辆的当前速度和行驶方向,该块输出所需的加速和减速指令,以匹配指定的参考速度。

运行模型,然后,打开范围,查看速度的变化和相应的加速和减速命令。

纵向控制器Stanley块以最大的3米/秒的值饱和加速指令。该块的最大纵向加速度(m/s^2)参数决定了这个最大值。试着调整这个参数并重新仿真模型。观察

变化对范围的影响。可以调整的其他参数包括块的比例和积分分量的增益系数,分别使用比例增益 Kp 和积分增益 Ki 参数。

10.1 说明

纵向控制器Stanley块计算控制车辆速度的加速和减速指令,单位为米/秒。指定参考速度、当前速度和当前行驶方向。控制器使用Stanley方法来计算这些命令,该块作为一个具有积分反余量的离散比例积分(PI)控制器来实现。

10.2 端口

10.2.1 输入

RefVelocity - 参考速度

参考速度,单位为米/秒,指定为实数标量。

CurrVelocity - 当前速度

车辆的当前速度,以米/秒为单位,指定为实数标量。

方向--行驶方向

1 (正向运动) |-1 (反向运动)

车辆的行驶方向,正向运动为1,反向运动为-1。

Reset - 重置速度误差积分的触发器。

0(保持稳定)|非零标量(重置)。

重置速度误差积分e(k)为零的触发器。值为0时,e(k)保持稳定。非零值重置e(k)。

10.2.2 輸出

AccelCmd - 加速指令

加速度命令,以实数标量形式返回,范围为 [0, MA],其中 MA为参数的值。最大纵向加速度(m/s^2)参数。

DecelCmd - 减速命令

减速命令,以实数标量形式返回,范围为 [0, MD],其中MD为参数的值。最大纵向减速度(m/s^2)参数。

10.3 参数

比例增益,Kp - 比例增益。

2.5(默认)

控制器的比例增益,Kp,指定为正实标量。

整数增益,Ki - 整数增益

1(默认)

控制器的积分增益,Ki,指定为正实标量。

采样时间 (s) - 采样时间

0.05(默认)

控制器的采样时间,以秒为单位,指定为正实标量。

最大纵向加速度(m/s^2)--最大纵向加速度。

3(默认)

最大纵向加速度,单位为米/秒的平方,指定为正实数。

该块将AccelCmd的输出饱和到[0, MA],其中 MA是该参数的值。高于MA的值设置为MA。

最大纵向减速度(m/s^2) - 最大纵向减速度。

6(默认)

最大纵向减速度,单位为米/秒平方,指定为正实数。

该块将DecelCmd端口的输出饱和到[0, MD],范围内,其中MD是该参数的值。超过MD的值将被设置为MD。

10.4 算法

纵向控制器Stanley块实现了一个具有积分反余量的离散比例积分(PI)控制器,如PID控制器块的 "反余量方法"(Simulink)参数所述。该块使用的是这个公式。

- u(k)是第k个时间步长的控制信号。

- Kp 为比例增益,由比例增益Kp 参数设置。

- Ki 为积分增益,由积分增益Ki 参数设置。

- Ts是块的采样时间,单位为秒,由采样时间(s)参数设置。

- e(k) 是第k个时间步的速度误差(CurrVelocity - RefVelocity)。对于每一个k,这个误差等于当前速度和参考速度输入的差值(CurrVelocity - RefVelocity)。

控制信号u决定加速指令AccelCmd和减速指令DecelCmd的值。该块将加速和减速命令饱和到各自的[0,MA]和[0,MD]范围内,其中。

- MA是最大纵向加速度(m/s^2)参数的值。

- MD是最大纵向加速度(m/s^2)参数的值。

在每个时间步中,AccelCmd和DecelCmd端口值中只有一个为正,另一个端口值为0,换句话说,车辆在一个时间步中既可以加速,也可以减速,但不能同时做到这两点。

方向输入端口所指定的运动方向,决定了在给定的时间步中,哪条指令为正值。

方向端口值
控制信号值u(k)
AccelCmd 加速端口值
DecelCmd 端口值
描述
1(前向)
u(k) > 0
正实数向量
0
车辆向前行驶时速度加快
u(k) < 0
0
正实数向量
车辆向前行驶时减速
-1 (后向)
u(k) > 0
0
正实数向量
车辆在逆向行驶时减速。
u(k) < 0
正实数向量
0
车辆在逆向行驶时加速
(0)

相关推荐