动态规划
说明:
将前述内容进一步扩展,尝试推广到动态规划问题。
6.0.1 求解最优控制的方法:
1)经典最优控制方法
经典变分法、庞特里亚金极值原理、动态规划方法、微分博弈;
2)智能控制方法
模型预测控制、自适应动态规划、数据驱动控制、平行控制。
6.0.2 最优控制的离散化
1)时间
对时间t∈[t0,tf]t\in[t_0,t_f]t∈[t0,tf]而言,其离散化为:
Δt=(tf−t0)N\Delta t = \frac{(t_f-t_0)}{N}Δt=N(tf−t0)
tk∈[t0+kΔt,t0+(k+1)Δt]t^k\in[t_0+k\Delta t,t_0+(k+1)\Delta t]tk∈[t0+kΔt,t0+(k+1)Δt]
2)状态
对状态x˙=f(x(t),u(t),t),x(t0)=x0\dot x=f(x(t),u(t),t),\quad x(t_0)=x_0x˙=f(x(t),u(t),t),x(t0)=x0而言,其离散化为:
x(kΔt+Δt)≈x(kΔt)+f(x(kΔt),u(kΔt),kΔt)Δtx(k\Delta t+\Delta t)≈x(k\Delta t)+f(x(k\Delta t),u(k\Delta t),k\Delta t)\Delta tx(kΔt+Δt)≈x(kΔt)+f(x(kΔt),u(kΔt),kΔt)Δt
记作:x(k+1)=fD(x(k),u(k),k)x(k+1)= f_D(x(k),u(k),k)x(k+1)=fD(x(k),u(k),k)
3)性能指标
对性能指标J=h(x(tf),tf)+∫t0tfg(x(t),u(t),t)dtJ=h(x(t_f),t_f)+\int_{t_0}^{t_f}g(x(t),u(t),t)dtJ=h(x(tf),tf)+∫t0tfg(x(t),u(t),t)dt,其离散化为:
记作:
J=hD(x(N),N)+Σk=0N−1gD(x(k),u(k),k)J=h_D(x(N),N)+\Sigma_{k=0}^{N-1}g_D(x(k),u(k),k)J=hD(x(N),N)+Σk=0N−1gD(x(k),u(k),k)
6.1 Bellman最优性原理
6.1.1 定义
动态规划基于Bellman最优性原理,其表述为多级决策过程的最优策略具有如下性质:任意后部子策略都是最优策略,即无论以前状态决策如何,从当前直到最后的每个决策必构成最优子策略。
数学表述:
对于性能指标:
J(u,x0,k0)=hD(x(N),N)+Σk=k0N−1gD(x(k),u(k),k)J(u,x_0,k_0)=h_D(x(N),N)+\Sigma_{k=k_0}^{N-1}g_D(x(k),u(k),k)J(u,x0,k0)=hD(x(N),N)+Σk=k0N−1gD(x(k),u(k),k)
将其最优控制下的性能指标称为“值函数”,记为:
V(x0,k0)=minu∈UJ(u,x0,k0)V(x_0,k_0)=min_{u\in U}J(u,x_0,k_0)V(x0,k0)=minu∈UJ(u,x0,k0)
根据最优性原理,如下Bellman方程是最优控制的充要条件:
说明:
→动态规划的最优控制策略需要从最后阶段向前推(这是关键),属于多阶段决策,整体最优一定是局部最优。
→最优控制问题本质上是时间滞后问题。
6.1.2-例子(路径规划问题)
推算过程省略
可以对比:
①从后向前推:确保每一步往后都是最优的,即符合Bellman最优性原理;
②从前向后推:若每一步都取最小的,容易使决策出现问题
这说明:Bellman最优性原理通过限制必须做出的决策数量,减少了计算的数量。
说明:
整个算法是遍历的,所有点只进入一次,每个点只记录最优值即最优值代表的下一步怎么走(只下一个,而不是之后的所有)→多级决策过程
6.2 离散系统的动态规划
6.2.1 思路
根据Bellman最优性原理,系统的性能指标由以下两部分组成:
对应的,其分别代表优化目标LLL(如从当前点到下一点的最短距离)和总体消耗Jk+1J_{k+1}Jk+1(如该步之后总体的最小消耗)。
因此,从第kkk步开始的最优损耗可以写作:
该式即动态规划的函数方程,满足离散系统的最优性原理。
6.2.2-例子(离散系统LQR问题的动态规划求解)
问题描述:
仍考虑系统:
其性能指标:
期望在[i,N][i,N][i,N]时间上,找到令JiJ_iJi最小的最优控制uk∗u_k^*uk∗,其中,初始状态xix_ixi给定,终端状态xNx_NxN不确定。
解决:
从后向前递推的思路很像前述“离散系统最优控制不定终值”情况下的求解,首先从最末端,k=Nk=Nk=N时:
则有:
这里Lk(xk,uk)=12xN−1TQxN−1+12uN−1TRuN−1L^k(x_k,u_k)=\frac{1}{2}x_{N-1}^\mathrm{T}Qx_{N-1}+\frac{1}{2}u_{N-1}^\mathrm{T}Ru_{N-1}Lk(xk,uk)=21xN−1TQxN−1+21uN−1TRuN−1,根据最优性原理,需要找到uN−1∗u_{N-1}^*uN−1∗使之最小。
将式(1)代入(4)可得:
因为没有约束,所以最小值点通过“导数=0”的点确定:
即:
类似地,这里可以定义Kalman增益:
进而,将控制量简写成:uN−1∗=−KN−1xN−1u_{N-1}^*=-K_{N-1}x_{N-1}uN−1∗=−KN−1xN−1,代入式(5)得性能指标最小为:
从上式易知,如果假设SN−1S_{N-1}SN−1为:
则性能指标JkJ_kJk的表达式便可以统一,类似于前述终端状态不定时LQR问题的求解,类似地,各参量都可以写作:
其中,式(16)被称为the Joseph stabilized Riccati equation。
6.2.3 直接迭代求解法:
Page33−Page38Page_{33}-Page_{38}Page33−Page38
6.2.4 查表法:
Page43−Page48Page_{43}-Page_{48}Page43−Page48