LQR记录

LQR最优设计是指设计出的状态反馈控制器K要使二次型目标函数J取最小值,而K由权矩阵Q与R唯一决定,故此Q,R的选择 尤为重要。

Apollo 使用 LQR 进行横向控制。横向控制包含四个组件:

横向误差   \Delta y

横向误差的变化率  \Delta y{}'

朝向误差   \Delta \varphi

朝向误差的变化率   \Delta \varphi {}'

上面四个组件的集合为X,这个集合X捕获车辆的状态。除了状态之外,该车有三个控制输入:转向,加速 和制动。这三个控制为集合U

 

离散线性系统

            x_{t+1} = Ax_{t} + Bu_{t} , x_{0} = x^{init}                         (1)

LQR的目标就是找到一组控制量 u_{0},u_{1},...使x_{0},x_{1},...足够小,即系统达到稳定状态;

u_{0},u_{1},...足够小,即花费较小的控制代价。

为了达到上述效果,定义代价函数:

\LARGE J = \sum_{\tau =0}^{N-1}(x_{\tau }^{T}Qx_{\tau } +u_{\tau }^{T}Ru_{\tau } ) + x_{N }^{T}Q_{f}x_{N }                      (2)

其中x为状态量,u为控制量,Q为状态权重矩阵,R为控制权重矩阵,\LARGE Q_{f}为最终状态权重矩阵,N为到达最终状态的控制序列数。

根据代价函数,再定义\LARGE V_{t}\left ( z \right )表示为从t时刻的状态z开始,通过最优控制序列,获得的到结束后的最小代价。

\LARGE V_{t}\left ( z \right ) = \min_{ut,...,u_{N-1}}\sum_{\tau =t}^{N-1}(x_{\tau }^{T}Qx_{\tau } +u_{\tau }^{T}Ru_{\tau } ) + x_{N }^{T}Q_{f}x_{N }                          (3)

根据公式3可得,当t=N时有:

                              \LARGE V_{N}\left ( z \right ) = z^{T}Q_{f}z                                      (4)

\LARGE V_{N}只和最终状态有关。可以想到如果t时刻获取最优控制,上一时刻t-1也应该是最优控制,这样\LARGE V_{N}倒推上一状态的控制来获取控制序列。

顺着这个思路,上一时刻与当前时刻的关系有:

                           \LARGE V_{t}\left ( z \right ) = \min_{w}(z^{T}Qz +w^{T}Rw + V_{t+1 }(Az+Bw))(5)

其中公式6是当前时刻的代价,公式7是当前时刻到下一时刻到最终时刻的代价。

\LARGE z^{T}Qz +w^{T}Rw                  (6)

\LARGE V_{t+1 }(Az+Bw)                    (7)

至此,求解最优化控制序列转化为动态规划问题。

因为当前状态z与优化命题无关,公式5可以改写为:

\LARGE V_{t}\left ( z \right ) =z^{T}Qz + \min_{w}(w^{T}Rw + V_{t+1 }(Az+Bw))(8)

根据公式4形式,假设t时刻的代价有如下表达形式:

\LARGE V_{t}\left ( z \right ) =z^{T}P_{t}z                      (9)

\LARGE V_{t+1}改写为与t时刻同样的形式,代入公式8后,有:

\LARGE V_{t}\left ( z \right ) =z^{T}Qz + \min_{w}(w^{T}Rw + V_{t+1 }(Az+Bw)^{T}P_{t+1}(Az+Bw))(10)

这样对于无约束凸优化问题,只需令其导数等于0即可求得最优解。对公式10中求最小控制量的矩阵求导得:

\LARGE 2w^{T}R +2(Az+Bw)^{T}P_{t+1}B=0                                         (11)

由公式11求最优控制\LARGE w^{*}有:

\LARGE w^{*}=-(R+B^{T}P_{t+1}B)^{-1}B^{T}P_{t+1}Az                               (12)

将该控制量带入公式8,有:

\LARGE V_{t}\left ( z \right ) =z^{T}Qz +w^{*T}Rw^{*}+(Az+Bw^{*})                      (13)

\LARGE V_{t}\left ( z \right ) =z^{T}(Q+A^{T}P_{t+1}A- A^{T}P_{t+1}B(R+B^{T}P_{t+1}B)^{-1}B_{T}P_{t+1}A)z          (14)

\LARGE V_{t}\left ( z \right ) =z^{T}P_{t}z                                                                        (15)

公式15中\LARGE P_{t}为:

\LARGE P_{t}=Q+A^{T}P_{t+1}A-A^{T}P_{t+1}B(R+B^{T}P_{t+1}B)B^{T}P_{t+1}A        (16)

当t=N时,有\LARGE P_{N}=Q_{f},而

\LARGE Q_{f}=Q^{T}_{f}\geqslant 0                                                    (17)

在公式15中P的推导表达式可以得到,任意时刻t有表达式

\LARGE P_{f}=P^{T}_{f}\geqslant 0                                                (18)

自此,构造完满足凸优化条件的求解方程。

同时,当t相对时域N很小时,P趋于稳定不变,有:

\LARGE P_{ss}=Q+A^{T}P_{ss}A-A^{T}P_{ss}B(R+B^{T}P_{ss}B)^{-1}B^{T}P_{ss}A          (19)

公式19被称为代数黎卡提方程,结合公式12,有:

\LARGE u_{t}=K_{ss}x_{t}                            (20)

其中,\LARGE K_{ss}=-(R+B^{T}P_{ss}B)^{-1}B^{T}P_{ss}Az                                       (21)

原控制系统框图可以表示为:

其中K即为通过迭代求解黎卡提方程得到的等效闭环反馈矩阵。

至此,LQR算法求解过程可以总结为:

1.  令P等于最终状态权重矩阵;

2.迭代黎卡提方程求出新的P;

3.  当两次P的差值足够小时,计算反馈矩阵K;

4.   根据反馈阵K获取最优控制量u;

采用《Apollo控制算法之汽车动力学模型》一文中的模型,代入AD、BD、到以上算法对应各项,因模型中的CD项为常量,在LQR求解完成后加入即可获得最终所需的系统控制量。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值