【动手学控制理论】4. 横向LQR控制+前馈控制

科技   2024-10-13 09:12   上海  

🔥控制小班课报名, 前往公众号添加小助理 🔥

知行老师, 知乎:@一以知行, 清华大学机械工程硕士, 曾在大疆, 华为担任资深控制算法工程师, 具有强大的理论背景和丰富的工程落地经验.

本文将介绍自动驾驶车辆横向控制中常用的LQR控制+前馈控制方法。LQR是线性二次最优控制,该控制器设计依赖于被控对象的模型方程,在之前的文章中(见如下链接),我们已经建立了车辆的动力学模型在道路坐标系的方程,LQR控制器也将基于该模型进行设计。

我们再次把车辆动力学模型写出来:

该方程简写为:

其中, 为控制系统的状态量 分别为车辆横向控制的横向位移误差和航向角误差, 为前轮转角 (和方向盘转角成比例关系), 为参考轨迹线的期望横摆角速度,在纵向速度确定的情况下,该项和参考轨迹的曲率 成正比,即 。观察上式可以发现,系统模型为两输入模型,且状态变量为 4 维。

1. 横向控制的LQR控制

我们的实际控制量为前轮转角 ,因此在进行控制器设计时,我们需要首先确定系统是否是可控的,即判断 是否满秩,若满秩可控,则状态反馈控制律可写为:

这也是LQR控制器的反馈形式。基于此,闭环系统的特征矩阵为 ,原则上可以实现极点的任意配置。而 LQR控制器则以一种 "最优" 的方式,完成状态反馈矩阵 的确定。

在实际控制器实现时,我们首先需要对上述连续域的方程进行离散化,关于离散化的方式我们后面会写文章进行具体介绍,这里不再展开。假设 分别是 的离散化结果,则前轮转角控制律表示为:

其中:

其中 满足如下Riccati方程:

分别为LQR控制器设计中,目标函数中的状态权重矩阵和控制量权重矩阵,目标函数为:

关于LQR控制器的设计分析我们将在其他文章中进行详细介绍,在此不做详细展开。

2. 横向控制的前馈项

当前轮转角的控制律如上述所示时,整个闭环系统的方程变为:

从上式可以看到,即便闭环系统 是渐进稳定的,但是由于 的存在,系统的状态量 ,即横向误差和航向角误差都无法保证收敛到 0 。因此考虑在前轮反馈控制律的基础上,加一前馈项,以保证横向误差 可以收敛到0 (而后续我们可以发现航向角误差 无法实现收敛到0),则前轮控制律变为:

其中, 即为控制前馈项。则闭环系统变为:

对其进行Laplace变换(假设为零初始状态),得到:

其中 分别为 的Laplace变换,即 。利用终值定理(Final Value Theorem),可以得到系统状态量的稳态值:

具体计算可以得到:

从上式第一行可以看到,通过选取合适的前馈项 可以实现横向稳态误差 为 0 ,但是从第三行可以看到,不管我们的前馈项 如何选取,都不会对航向角误差产生影响,所以航向角误差即便在加了前馈部分也没有办法保证稳态值为 0 。

整理一下可以得到,稳态的航向角误差值为:

而当前馈项为如下值时,可以实现闭环系统的横向误差稳态值为0:

对其进行改写为:

其中:

为横向加速度。对比前馈项和航向角稳态误差值的表达式,可以得到前馈项也可写成:

最后我们再看一下稳态时前轮转角值 是多少,有:

3. 总结

至此我们完成了自动驾驶横向控制的LQR控制+前馈控制的设计分析,从上文可以看到,前馈项 并不是独立于反馈控制的,因为前馈项中包含反馈增益矩阵中的 。而且,基于该控制器,我们可以实现理论上横向误差 收敛到0,但航向角误差 却无法保证在稳态时能够收敛到 0 。当然,在实际系统中,横向误差收敛到 0需要要求前馈项中的模型参数和实车参数完全一致,这在现实中是难以实现的(这也是所有前馈控制的通病),为此我们需要通过状态估计和参数辨识的方法,尽可能保证我们的模型参数的准确性。关于自动驾驶车辆控制中的状态估计和参数辨识内容,也会在后续的文章中进行介绍。

推荐阅读:


自动驾驶小白说
输出专业自动驾驶算法教程的开发者社区. 🦈 官网: https://www.helloxiaobai.cn
 最新文章