最优化问题求解中的汉密尔顿方程是最优控制方法解决动态优化问题的一阶必要条件
汉密尔顿方程(Hamilton Equation)
理论推导
首先看需要解决的问题
max∫t0t1f(x,u)dtx˙=g(x,u)x(t0)=x0x(t1):free
引入一个函数 λ(t) 表示一个定义在 t0≤t≤t1 上的连续的可微函数,那么对于任何满足上述约束的 x(t),u(t) 有
∫t0t1f(x,u)dt=∫t0t1[f(x,u)+λg(x,u)−λx˙]dt
对上式最右侧右侧部分进行分部积分可以得到
−∫t0t1λx˙dt=−λ(t1)x(t1)+λ(t0)x(t0)+∫t0t1xλ˙dt
将上式带回原来的方程
∫t0t1f(x,u)dt=∫t0t1[f(x,u)+λg(x,u)+λ˙x]dt−λ(t1)x(t1)+λ(t0)x(t0)
在最优控制方法中,可以发现,只要确定了控制,系统状态自然就被确定了,这个是由函数 g(x,u) 确定,所以问题变为求解最优的控制 $u^\star $
引入一个扰动项函数 h(t) 是任意的但是人为给定,令
u=u⋆+ah
并且定义函数 y(t,a) 为关于 u⋆+ah 的状态变量,并且满足
y(t,0)=x⋆y(t0,a)=x0
之前的目标函数可以写作为
∫t0t1f(y(t,a),u⋆+ah)dt
并且得到
J(a)=∫t0t1f(y,u⋆+ah)dt=∫t0t1[f(y,u⋆+ah)+λg(y,u⋆+ah)+λ˙y]dt−λ(t1)y(t1,a)+λ(t0)y(t0,a)
由于 $u^\star $ 是最优控制变量,所以该函数在 a=0 处取得最大值,也就是 J˙(0)=0,也就是
J˙(0)=∫t0t1[(fx+λgx+λ˙)ya+(fu+λgu)h]dt−λ(t1)ya(t1,0)
由于 y(t0,a) 是常数,所以 ya(t0,0)=0
上式中难以确定的是 ya ,因为不知道 y(t,a) 的具体形式,但是可以通过构造 λ 来消去含有 y 的项,定义
λ˙=−[fx(x⋆,u⋆)+λgx(x⋆,u⋆)]λ(t1)=0
所以因此可以得到
∫t0t1−[fu(x⋆,u⋆)+λgu(x⋆,u⋆)]hdt=0
并且对于任意连续的 h 都成立,所以令
h=fu(x⋆,u⋆)+λgu(x⋆,u⋆)
得
∫t0t1−[fu(x⋆,u⋆)+λgu(x⋆,u⋆)]2dt=0
即
fu(x⋆,u⋆)+λgu(x⋆,u⋆)=0 t0≤t≤t1
也就是说,如果 $u^\star ,x^\star $ 是最优解,存在一个连续函数 λ(t) ,他们同时满足
State Equation:x˙=g(x,u)x(t0)=x0Multiplier Equation:λ˙=−[fx(x⋆,u⋆)+λgx(x⋆,u⋆)]λ(t1)=0Optimality Equation:fu(x⋆,u⋆)+λgu(x⋆,u⋆)=0
这就是汉密尔顿方程,普遍的表达形式为
H(t,x(t),u(t),λ(t))=f(t,x,u)+λg(t,x,u)
并且方程满足
∂u∂H=fu+λgu=0−∂x∂H=−(fx+λgx)=λ˙∂λ∂H=g=x˙
求解:
State Equation:x˙=g(x,u)x(t0)=x0Multiplier Equation:λ˙=−[fx(x⋆,u⋆)+λgx(x⋆,u⋆)]λ(t1)=0Optimality Equation:fu(x⋆,u⋆)+λgu(x⋆,u⋆)=0
根据 Optimality Equation 可以得到 u 关于 x 和 λ 的方程,然后带入 Multiplier Equation 和 State Equation 中可以得到两个微分方程,并且注意两个边界条件,这就可以解出两个微分方程,从而求解
对于方程最大值问题,还要求解 Huu(t,x⋆,u⋆,λ)≤0,对于最小值,需要保证 Huu(t,x⋆,u⋆,λ)≥0
求解例子
对于一个系统
x˙=Ax+Buy=CxJ=21x(tf)TSx(tf)+21∫0tf[xTQx+uTRu]dt
求解 min J 相当于求解 min ∫0tf[xTQx+uTRu]dt
所以引入 hamilton 函数
H(t,x,u)=xTQx+uTRu+λT(Ax+Bu)
∂u∂H=(R+RT)u+BTλ=0⇓u=−(R+RT)−1BTλ
−∂x∂H=−(fx+λgx)=−[(Q+QT)x+ATλ]=λ˙∂λ∂H=g=Ax+Bu=Ax−B(R+RT)−1BTλ=x˙
由于我们设定 u=−Kx,所以可以知道 λ=Px,并且 −(R+RT)−1BTP=K
带入上述的方程得到
λ˙=−[(Q+QT)x+ATλ]=−(Q+QT+ATP)xx˙=Ax−B(R+RT)−1BTλ=[A−B(R+RT)−1BTP]x
联立得到
λ˙=P˙x+Px˙=[P˙+P(A−B(R+RT)−1BTP)]x=−(Q+QT+ATP)x
所以得到
P˙+PA−PB(R+RT)−1BTP+Q+QT+ATP=0
令 Q1=Q+QT,Q2=R+RT,得到
P˙+PA−PBQ2−1BTP+Q1+ATP=0
最终得到一个 Riccati 方程
Hamiltonian Matrix
首先引入一种特殊的矩阵
J=[0−II0] J∈R2n×2n
这个矩阵具有如下性质
JT=−JJ−1=JTJTJ=I2nJTJT=−I2nJ2=−I2ndetJ=±1
定义 Hamiltonian matrix
如果一个矩阵 A=JS,其中 J 是上面的特殊矩阵, S=ST,那么矩阵 A 是一个 Hamiltonian 矩阵
或者说,如果矩阵 A 满足 (JA)T=JA , J 是上面的特殊矩阵,那么矩阵 A 是一个 Hamiltonian 矩阵
性质
- A,B∈Hn⇒A+B∈Hn
- A∈Hn⇒αA∈Hn
- [AB]∈Hn⇒det[AB]=AB−BA
- 对于 A∈Hn,定义 pA(x) 为矩阵 A 的特征多项式
- pA(x)=pA(−x)
- if pA(c)=0,c∈R,then pA(−c)=pA(c)=pA(−c)=0