Apollo模型参考自适应控制MRAC (三)-MRAC代码分析

本文详细分析了Apollo横向和纵向控制器中的模型参考自适应控制(MRAC)。MRAC旨在解决车辆执行器延迟问题,通过二阶系统模型进行建模,并推导出自适应控制算法。在代码实现中,初始化函数根据车辆执行器特性设定参数,主控制函数应用双线性变换计算状态,并通过自适应增益调整以收敛到理想模型。
摘要由CSDN通过智能技术生成

Apollo横向和纵向控制器都属于high level controller, 我们在设计控制器的过程中一直都是假设车辆的执行器是可以完美的执行我们控制算法算出来的控制命令, 然后现实是车辆执行器的延迟是非常验证的, 建议一下大家可以可以记录一下log对比一下时间戳, 然后你就可以发现车辆的执行器跟踪的有多差劲. 我在实际测试的过程中就发现了发现方向盘的超调和震荡就非常严重, 延迟也很严重. 下面一篇文章解释了超调, 我觉得解释的而非常好
PID控制中的超调

理论基础

首先根据上篇博客好好回顾一下理论, 对于方向盘,我们可以使用一阶系统或者二阶系统进行建模, 当我们使用二阶系统进行建模的时候, 我们的状态量包括两个, 一个是实际方向盘转角 δ \delta δ一个是实际方向盘转角的变化率 δ ˙ \dot{\delta} δ˙
我们假设二阶方向盘转角参考系统的微分方程为
δ ¨ m + 2 ζ m ω m δ ˙ m + ω m 2 δ m = ω m 2 r         ( 1 ) \ddot{\delta}_{m} + 2\zeta_{m}\omega_{m}\dot{\delta}_{m} + \omega_{m}^{2}\delta_{m} = \omega_{m}^{2}r~~~~~~~(1) δ¨m+2ζmωmδ˙m+ωm2δm=ωm2r       (1)
二阶方向盘实际系统的微分方程为
δ ¨ p + 2 ζ p ω p δ ˙ p + ω p 2 δ p = ω p 2 u         ( 2 ) \ddot{\delta}_{p} + 2\zeta_{p}\omega_{p}\dot{\delta}_{p} + \omega_{p}^{2}\delta_{p} = \omega_{p}^{2}u~~~~~~~(2) δ¨p+2ζpωpδ˙p+ωp2δp=ωp2u       (2)
我们现将其转换成状态空间模型, 状态量包括转角和转角变化率, 我们定义参考系统的状态量 x m = [ δ m δ ˙ m ] x_{m} = \begin{bmatrix} \delta_{m} \\ \dot{\delta}_{m} \end{bmatrix} xm=[δmδ˙m]和真是系统的状态量 x p = [ δ p δ ˙ p ] x_{p} = \begin{bmatrix} \delta_{p} \\ \dot{\delta}_{p} \end{bmatrix} xp=[δpδ˙p], b p = [ 0 ω p 2 ] b_p = \begin{bmatrix} 0 \\ \omega_{p}^{2}\end{bmatrix} bp=[0ωp2]我们可以分别得到模型和实际系统的状态方程
参考系统 M M M:
x ˙ m = A m x m + b m r         ( 3 ) \dot{x}_{m} = A_{m}x_{m} + b_{m}r~~~~~~~(3) x˙m=Amxm+bmr       (3)
A m = [ 0 1 − ω m 2 − 2 ζ m ω m ] A_{m} = \begin{bmatrix} 0 & 1\\ -\omega_{m}^{2} &-2\zeta_{m} \omega_{m} \end{bmatrix} Am=[0ωm212ζmωm], b m = [ 0 ω m 2 ] b_m = \begin{bmatrix} 0 \\ \omega_{m}^{2}\end{bmatrix} bm=[0ωm2]

真是系统 P P P的状态空间表达式为
x ˙ p = A p x p + b p u         ( 4 ) \dot{x}_{p} = A_{p}x_{p}+b_{p}u~~~~~~~(4) x˙p=Apxp+bpu       (4)
其中 x p = [ y p y ˙ p ] x_{p} = \begin{bmatrix} y_{p} \\ \dot{y}_{p}\end{bmatrix} xp=[ypy˙p], A p = [ 0 1 − ω p 2 2 ζ p x p ] A_{p} = \begin{bmatrix} 0& 1 \\ -\omega_{p}^{2} & 2\zeta_{p}x_{p}\end{bmatrix} Ap=[0ωp212ζpxp], b p = [ 0 1 ] b_{p} = \begin{bmatrix} 0 \\ 1\end{bmatrix} bp=[01]
假设控制器的形式为 u = θ x T x p + θ r T r u=\theta^{T}_{x}x_{p} + \theta^{T}_r r u=θxTxp+θrTr,

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值