值迭代通过先给定值函数V,策略迭代先给定控制率u
两者原理上类似,都采用控制率u更新迭代,使V最终收敛的方式逼近最优性能指标
初始给定一个容许控制率 u 0 ( x k ) u_0(x_k) u0(xk),可以得到性能指标:
V 0 ( x k ) = g D ( x k , u 0 ( x k ) ) + V 0 ( f D ( x k , u 0 ( x k ) ) ) V_0(x_k)=g_D(x_k,u_0(x_k))+V_0(f_D(x_k,u_0(x_k))) V0(xk)=gD(xk,u0(xk))+V0(fD(xk,u0(xk)))
可以得到迭代控制率:
u 1 ( x k ) = argmin u k { g D ( x k , u k ) + V 0 ( x k + 1 ) } u_1(x_k)=\underset{u_k}{\operatorname*{argmin}}\{g_D(x_k,u_k)+V_0(x_{k+1})\} u1(xk)=ukargmin{gD(xk,uk)+V0(xk+1)}
进一步地,可以按照以上过程得到 i = 1 , 2 , . . . , K i=1,2,...,K i=1,2,...,K步的性能指标:
V i ( x k ) = g D ( x k , u i ( x k ) ) + V i ( f D ( x k , u i ( x k ) ) ) V_i(x_k)=g_D(x_k,u_i(x_k))+V_i(f_D(x_k,u_i(x_k))) Vi(xk)=gD(xk,ui(xk))+Vi(fD(xk,ui(xk)))
获得控制率:
u i + 1 ( x k ) = argmin u k { g D ( x k , u k ) + V i ( x k + 1 ) } u_{i+1}(x_k)=\underset{u_k}{\operatorname*{argmin}}\{g_D(x_k,u_k)+V_i(x_{k+1})\} ui+1(xk)=ukargmin{gD(xk,uk)+Vi(xk+1)}
可以证明 V i V_i Vi是单调非增的序列,因此 V ∞ V_\infty V∞存在,并且有迭代近似值函数收敛至值函数:
lim i → ∞ V i ( x k ) = V ( x k ) \lim_{i\to\infty}V_i(x_k)=V(x_k) limi→∞Vi(xk)=V(xk)
对于任意初始控制率 u 0 u_0 u0,上述策略迭代过程得到的控制率 u i ( x k ) u_i(x_k) ui(xk)都是稳定控制。且迭代近似值函数 V i ( x k ) V_i(x_k) Vi(xk)是单调非增的序列。
迭代的近似值函数可以表示为:
V i ( x k ) = ∑ l = 0 ∞ g D ( x k + l , u i ( x k + l ) ) V_i(x_k)=\sum_{l=0}^\infty g_D(x_{k+l},u_i(x_{k+l})) Vi(xk)=∑l=0∞gD(xk+l,ui(xk+l))
其是正定的,那么根据近似性能指标有:
V i ( x k + 1 ) − V i ( x k ) = V i ( x k ) − g D ( x k , u i ( x k ) ) − V i ( x k ) = − g D ( x k , u i ( x k ) ) < 0 \begin{aligned} V_i(x_{k+1})-V_i(x_k)& =V_i(x_k)-g_D(x_k,u_i(x_k))-V_i(x_k) \\ &=-g_D(x_k,u_i(x_k))<0 \end{aligned} Vi(xk+1)−Vi(xk)=Vi(xk)−gD(xk,ui(xk))−Vi(xk)=−gD(xk,ui(xk))<0
其是稳定控制。
即证明 V i + 1 ( x k ) ≤ V i ( x k ) V_{i+1}(x_k)\leq V_i(x_k) Vi+1(xk)≤Vi(xk),可以通过:
证明中间函数 Γ i + 1 ( x k ) ≤ V i ( x k ) \Gamma_{i+1}(x_k)\leq V_i(x_k) Γi+1(xk)≤Vi(xk),再证明 V i + 1 ( x k ) ≤ Γ i + 1 ( x k ) V_{i+1}(x_k)\leq\Gamma_{i+1}(x_k) Vi+1(xk)≤Γi+1(xk)即可。
主要区别是性能指标从累加变成了积分!
对系统:
x ˙ = A ( x ) + B ( x ) u \dot{x}=A(x)+B(x)u x˙=A(x)+B(x)u
其性能指标(实际用的时候争取能写成以下二次型形式):
J ( x ) = ∫ 0 ∞ g ( x , u ) d t = ∫ 0 ∞ ( x T Q x + u T R u ) d t J(x)=\int_0^\infty g(x,u)dt=\int_0^\infty(x^TQx+u^TRu)dt J(x)=∫0∞g(x,u)dt=∫0∞(xTQx+uTRu)dt
(因为二次型 ≥ 0 \geq0 ≥0的形式,可以求极小值)
值函数为:
V ( x ) = min J ( u ; x ) V(x)=\min J(u;x) V(x)=minJ(u;x)
其HJB方程为:
0 = min u { g ( x , u ) + d V ( x ) d x ⋅ ( A ( x ) + B ( x ) u ) } 0=\min_u\{g(x,u)+\frac{dV(x)}{dx}\cdot(A(x)+B(x)u)\} 0=minu{g(x,u)+dxdV(x)⋅(A(x)+B(x)u)}
其是偏微分方程,很难求解析解
→策略迭代方式求近似解:
类似地,初始一个容许控制 u 0 u_0 u0,使其满足:
0 = g ( x , u 0 ) + d V 0 ( x ) d x ⋅ ( A ( x ) + B ( x ) u 0 ) 0=g(x,u_0)+\frac{dV_0(x)}{dx}\cdot(A(x)+B(x)u_0) 0=g(x,u0)+dxdV0(x)⋅(A(x)+B(x)u0)
有:
u 1 = arg min { g ( x , u ) + d V 0 ( x ) d x ⋅ ( A ( x ) + B ( x ) u ) } u_1=\arg\min\{g(x,u)+\frac{dV_0(x)}{dx}\cdot(A(x)+B(x)u)\} u1=argmin{g(x,u)+dxdV0(x)⋅(A(x)+B(x)u)}
进一步地,迭代可得 i = 1 , 2 , . . . , K i=1,2,...,K i=1,2,...,K时,有:
0 = g ( x , u i ) + d V i ( x ) d x ⋅ ( A ( x ) + B ( x ) u i ) 0=g(x,u_i)+\frac{dV_i(x)}{dx}\cdot(A(x)+B(x)u_i) 0=g(x,ui)+dxdVi(x)⋅(A(x)+B(x)ui)
u i + 1 = arg min { g ( x , u ) + d V i ( x ) d x ⋅ ( A ( x ) + B ( x ) u ) } u_{i+1}=\arg\min\{g(x,u)+\frac{dV_i(x)}{dx}\cdot(A(x)+B(x)u)\} ui+1=argmin{g(x,u)+dxdVi(x)⋅(A(x)+B(x)u)}
当 u i = u i + 1 u_i=u_{i+1} ui=ui+1成立,则迭代求解完成。