基于模型参考自适应控制(MRAC)的自动驾驶方向盘(油门)控制方法
Posted hyf98
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于模型参考自适应控制(MRAC)的自动驾驶方向盘(油门)控制方法相关的知识,希望对你有一定的参考价值。
实习还是能学到很多学校学不到的东西,总结下实习期间学到的一个自适应控制方法。最近比较忙,先大致写下原理的笔记供自己复习,后面有空再更下仿真。如有错误请不吝赐教~
背景
举个例子,目前公司自动驾驶车队主要有几款不同的车型,不同车型的方向盘型号都不同,可能有的用国产转向器,有的用进口转向器,有的车方向盘响应速度慢,有的方向盘响应速度快。不同的转向器在面对同一个上层算法指令时,所表现的执行效果肯定不完全相同。而且自动驾驶车队越庞大,同一算法下不同执行器的响应误差也就越大。为了使同一上层算法在不同执行器上执行效果尽可能相同,我们选用了模型参考自适应控制(Model Reference Adaptive Control, MRAC)。
为什么选择MRAC控制器
相比其他自适应控制器,MRAC可以自己设计一个参考的模型,使得不同的控制器在同一控制指令下,能够和我们自己设计的参考模型的响应曲线相同,而不受被控系统本身的性能影响。 且参考模型的性能要好于真实模型,如果参考模型性能还不如真实模型,那也没必要用参考模型来拉低原来的控制效果了。
整体框架
MRAC控制器整体框架如下图所示,MRAC在自动驾驶中往往与上层控制算法共同使用,根据上层的横向/纵向控制算法(MPC、LQR/PID)输出的参考输入,即方向盘转角/油门开度,经过自适应控制器重新计算输入,并作用于被控系统(方向盘/油门)。下面详细说明各模块计算方法。
控制器公式推导可以参考这两篇博客,基于Lyapunov方法证明了控制器的全局稳定性,本文就直接列出公式推导结果了。MATLAB2022也给出了几个MRAC的demo,有兴趣可以试试。
Apollo模型参考自适应控制MRAC (二)-MRAC例题_cyytum的博客-CSDN博客
Model Reference Adaptive Control (MRAC)(1) - 知乎
Model Reference Adaptive Control- MATLAB & Simulink- MathWorks 中国
参考模型
本文只讨论一阶模型的MRAC,状态方程如下:
式中:
- r(t)是参考的输入(上层MPC/PID的参考控制指令)
- xm(t)是参考控制系统状态(方向盘转角/油门开度)。由于r(t)已知,因此可以通过微分方程,使用龙格库塔或者双线性变换方法,仿真计算下一帧的xm(t)。
- Am是参考系统状态转换参数矩阵。对于一个稳定系统来说,Am<0。
- Bm是参考系统控制参数矩阵(对于一阶模型,Am和Bm均为为1×1的矩阵)。
对于一阶系统而言,有一个重要的性能指标:时间常数(TIme constant),用tau表示,它反映了一一阶系统的响应速度。a越大,tau越小,系统的反应速度越快,tau的计算公式:
控制器输入计算公式
控制器的设计如下图所示,计算输入u(t)公式:
式中:
- x(t)是控制系统状态(方向盘转角/油门开度)
- r(t)是参考的输入(上层MPC/PID的参考控制指令)
- kx和kr分别是反馈、前馈控制增益(即自适应控制增益)
真实模型
在实际工程中,我们是不知道真实控制器的模型参数的(不同执行器的参数可能不同,如果知道了也不需要用模型参考自适应控制了,直接用真实模型参数计算就完事了)。因此仿真实验只能借鉴一个近似于实际控制器的参数,来模拟上车后达到的效果。
式中:
- xp(t)是真实控制系统状态(我们想要控制的状态)
- u(t)是控制器计算的输入
- Ap和Bp分别是真实模型的参数矩阵
- f(x)是输入的扰动量(实际工程中很常见)
自适应控制率
自适应控制率即为kx和kr的变化率,按以下方式计算:
式中:
- Γx和Γr是自适应增益变化的步长,它决定了自适应控制率收敛的快慢,也是实际使用中唯一能调的参数。
- e(t)是参考模型的状态和真实模型状态之间的误差
扩展
1、具有纯延时的一阶系统使用MRAC能否全局稳定?
上面介绍的是最简单的一阶MRAC系统,该系统是全局稳定的,但具有延时的系统是否还能全局稳定呢?
实际工程中,许多被控对象都可以被视作是具有纯延时的系统。纯延时系统即被控对象的控制效果具有延迟,现在的控制指令td时间之后才能作用到控制器上。我们在公式推导时推导出的全局稳定是在u(t)能够立刻执行的基础上的,而一阶纯延时系统是拿在td时间之前能使系统稳定的输入,去给td时间之后执行。在原理上不能保证td之前的输入u(t)在td时间之后还能使系统稳定,因此这个系统不是一个全局稳定的系统,只能在某些条件下稳定,是一个局部稳定系统。
2、控制器优化思路
给自适应控制增益加上一个修正系数,让自适应变化率能够参考上一次的自适应控制增益。试过,用处不是很大,在应对纯延时系统时有一点帮助。
参考
[1]Apollo模型参考自适应控制MRAC (二)-MRAC例题_cyytum的博客-CSDN博客
[2]Model Reference Adaptive Control (MRAC)(1) - 知乎
[3]Model Reference Adaptive Control- MATLAB & Simulink- MathWorks 中国
以上是关于基于模型参考自适应控制(MRAC)的自动驾驶方向盘(油门)控制方法的主要内容,如果未能解决你的问题,请参考以下文章