1 LQR 算法的局限性
若系统动力学特性可以用一组线性微分方程表示,且性能指标为状态变量和控制变量的二次型函数,则此类最优控制问题称为线性二次型问题。线性二次调节器 (Linear Quadratic Regulator, LQR) 是求解线性二次型问题常用的求解方法之一,其数学形式优美且求解解析性强。然而,LQR 固有的局限性也相当显著,主要体现在两个方面:
- LQR 的核心理论建立在线性系统模型与二次型代价函数的基础之上,对非线性的被控对象应用 LQR 必须首先在工作点附近进行线性化,这种近似处理在状态偏离工作点较大或期望优化的轨迹远离线性化区域时,控制器性能会急剧下降甚至导致不稳定;
- LQR 本质上是一种无限时间域的静态状态反馈策略,它求解的是一个全局统一的、固定的反馈增益矩阵,通常用于初解生成。静态反馈难以处理具有复杂约束、时变目标或需要在状态空间中进行大范围机动的优化问题。
从 LQR 的线性化局限可以看出,对于轨迹优化问题
$$J(\boldsymbol{u}) = \ell_f(\boldsymbol{x}N) + \sum{k=0}^{N-1}{\ell(\boldsymbol{x}_k, \boldsymbol{u}k)}$$ $$s.t. \quad \boldsymbol{x}{k+1}=\boldsymbol{f}(\boldsymbol{x}_k, \boldsymbol{u}_k), k=0,1,\cdots ,N-1$$
其中系统动力学和损失函数均为非线性函数。若仅在 $x_0$ 处线性化,那么在给定轨迹的其他位置 $x_i$ 都不容易满足该局部线性假设。自然地,如果在每个轨迹点都进行线性化,就能避免单一线性模型带来的误差,同时当轨迹点足够稠密时能取得接近非线性模型的精度。本节介绍应用该思想处理非线性轨迹优化问题的微分动态规划 (Differential Dynamic Programming, DDP) 算法及其特例迭代线性二次型调节器 iLQR 算法。
2 贝尔曼最优性原理
离散时间系统的控制问题本质上是基于迭代的多级决策问题,求解的核心是贝尔曼最优性原理 (Bellman's Principle of Optimality),表述为:若
$$\boldsymbol{x}(1), \boldsymbol{x}(2), \cdots , \boldsymbol{x}(N)$$
是 0 时刻起,以 $\boldsymbol{x}(0)$ 为初始状态的控制问题最优解,则对 $\forall k=0,1,\cdots ,N-1$,决策序列
$$\boldsymbol{x}(k+1), \boldsymbol{x}(k+2), \cdots , \boldsymbol{x}(N)$$
是 $k$ 为初始时刻,$x_k$ 为初始状态的子问题的最优解。贝尔曼最优性原理体现了动态规划在控制理论中的应用。
为了应用贝尔曼最优性原理,定义最优控制下最小化的性能指标
$$V(\boldsymbol{x}(k),k) \stackrel{\mathrm{def}}{=}\min _{\boldsymbol{u}\in \mathcal{U}}J(\boldsymbol{u}; \boldsymbol{x}(k),k), k=0,1,\cdots$$
为最优控制问题的值函数 (Value Function)。离散时间最优控制问题的最优控制满足以下关于值函数的贝尔曼方程 (Bellman Equation)
$$\begin{cases} V(\boldsymbol{x}(N),N)=h_D(\boldsymbol{x}(N), N)\ V(\boldsymbol{x}(k),k)=\underset{\boldsymbol{u}\in \mathcal{U}}{\min}\left{ g_D(\boldsymbol{x}(k),\boldsymbol{u}(k),k)+V(\boldsymbol{x}(k+1), k+1) \right} ,,k=N-1,\cdots ,0\\end{cases}$$
本质上是一个反向动态规划过程。若能解得贝尔曼方程的唯一解,即对 $\forall k=0,1,\cdots ,N-1$ 都有已知的函数 $V(\boldsymbol{x}(k),k)$,则对于任意时刻 $k$ 和任意可能状态 $x_k$,可得闭环最优控制
$$\boldsymbol{u}(k)=\mathrm{arg}\min _{\boldsymbol{u}\in \mathcal{U}}\left{ g_D(\boldsymbol{x}(k),\boldsymbol{u}(k),k)+V(f_D(\boldsymbol{x}(k),\boldsymbol{u}(k), k), k+1) \right}$$




