主要内容

纵向控制者斯坦利

使用Stanley方法控制车辆的纵向速度

  • 图书馆:
  • 自动驾驶工具箱 /车辆控制

  • 纵向控制者斯坦利街区

描述

纵向控制者斯坦利块以每秒米为单位计算加速度和减速命令,以控制车辆的速度。指定参考速度,电流速度和当前驾驶方向。控制器使用Stanley方法计算这些命令[1],该块将其作为具有整体抗弹药的离散比例综合(PI)控制器实现。有关更多详细信息,请参阅算法

您还可以使用Stanley方法计算车辆的转向角命令。看到横向控制器斯坦利堵塞。

端口

输入

展开全部

参考速度以每秒米为单位,指定为真实标量。

车辆的当前速度为每秒米,指定为真实标量。

车辆的驾驶方向,指定为1用于远期运动和-1用于反向运动。

触发以重置速度误差的积分,e((k),为零。一个值0持有e((k) 稳定的。非零值重置e((k)。

输出

展开全部

加速命令,在[0,m一个], 在哪里m一个最大纵向加速度(m/s^2)范围。

减速命令,返回为真实标量在范围内[0,md], 在哪里md最大纵向减速(m/s^2)范围。

参数

展开全部

比例收益控制器,kp,指定为正面的标量。

控制器的积分增益,k一世,指定为正面的标量。

控制器的样本时间(以秒为单位)指定为正真实标量。

最大纵向加速度为每秒平方米,指定为正实量表。

块从ACCELCMD到范围[0,m一个], 在哪里m一个是此参数的值。上面的值m一个设置为m一个

最大纵向减速,以每秒平方为单位的米,指定为正真实标量。

块从减速端口到范围[0,md], 在哪里md是此参数的值。上面的值md设置为md

算法

纵向控制者斯坦利Block通过积分抗弹力实现离散比例综合(PI)控制器,如反弹道法(万博1manbetxSimulink)PID控制器块的参数。该块使用此方程式:

(( k = (( k p + k 一世 t s z z - 1 e (( k

  • ((k)是控制信号k时间步骤。

  • kp是比例收益,由比例收益,KP范围。

  • k一世是不可或缺的收益,如积分收益,ki范围。

  • ts是块的示例时间秒,由样品时间范围。

  • e((k)是速度错误(咖喱-reflecityk时间步骤。每个k,此误差等于当前速度和参考速度输入之间的差异(咖喱-reflecity)。

控制信号,,确定加速命令的值ACCELCMD和减速命令减速。该块将加速度和减速命令饱和到[0,m一个]和[0,md], 在哪里:

  • m一个是价值最大纵向加速度(m/s^2)范围。

  • md最大纵向减速(m/s^2)范围。

在每个时间步骤中,只有一个ACCELCMD减速端口值是正,另一个端口值为0。换句话说,车辆可以在一次步骤中加速或减速,但一次不能同时做。

运动方向,如方向输入端口,确定在给定时间步骤的哪个命令为正。

方向端口值 控制信号值((k ACCELCMD端口值 减速端口值 描述
1(向前运动)

((k)> 0

积极的真实标量 0 车辆向前行驶时会加速

((k)<0

0 积极的真实标量 车辆向前行驶时会减慢
-1(反向运动)

((k)> 0

0 积极的真实标量 车辆在反向旅行时减速

((k)<0

积极的真实标量 0 车辆在反向旅行时加速

参考

[1] Hoffmann,Gabriel M.,Claire J. Tomlin,Michael Montemerlo和Sebastian Thrun。“越野驾驶的自动驾驶汽车轨迹跟踪:控制器设计,实验验证和赛车。”美国控制会议。2007年8月,第2296–2301页。doi:10.1109/acc.2007.4282788。

扩展功能

C/C ++代码生成
使用Simulink®Coder™生成C和C ++代码。万博1manbetx

版本历史记录

在R2019a中引入

也可以看看