Hamilton函数方法是变分法应用在控制系统上的标准化方法,即使不懂变分法,简单套用表格中的公式也可以列写出方程,这个方法是最优控制理论用的最多的方法。
标准最优控制问题
按照第一章最优控制理论 一、变分法和泛函极值问题,我们已经讨论了有动力学方程约束f(x,x˙,t)=0的动态系统,若无其他约束,这个系统的最优轨线遵循以下必要条件
Hx−dtdHx˙=0f(x(t),x˙(t),t)=0
其中的Hamilton函数H(x,x˙,λ,t)=L(x,x˙,t)−λTf(x,x˙,t)。控制系统中更常见的一阶非线性系统方程,问题是这样的:tf给定,终端状态未知或已知(仅边界条件不同),除状态方程外没有约束,且
x˙=f[x(t),u(t),t];x(to)=x0to≤t≤tfu(t)minJ=φ[x(tf),tf]+∫totfL[x(t),u(t),t]dt(1)
式中包括了控制项u(t)。这样的问题仍按照上一章的方法来考虑,对动力学方程约束引入Lagrange乘子
J[x(t),x˙(t),u(t),t]=φ(0)+∫ttf{L+λT[f(x,u,t)−x˙]+dtdφ(x,t)}dt=φ(0)+∫ttfHˉ(x,x˙,λ,u,t)dt
对x(t)、u(t)和λ(t)都考虑Euler方程,即Hˉx−dtdHˉx˙=0以及Hˉu=0,Hˉλ=0
∂x∂L+∂x∂fTλ(t)+λ˙(t)=0f(x,u,t)−x˙=0∂u∂L+∂uλ∂fTλ(t)=0
此外还有状态方程和边界条件:终端固定x(tf)=xf或终端自由Hˉx˙(tf)=0.
Hamilton函数法
上面这个方程的形式不是很好,我们重新定义一个哈密尔顿函数:
H[x(t),u(t),λ(t),t]=L[x(t),u(t),t]+λT(t)f[x(t),u(t),t](2)
那么性能指标化为:
J[x(t),x˙(t),u(t),t]=φ(0)−λTx∣∣0tf+∫totf(H+λ˙Tx)dt
此时,Euler方程变为
λ˙x˙0=−∂x∂H=−∂x∂L−λT∂x∂f=f(x,u,t)=∂u∂H=∂u∂L+(∂u∂f)Tλ(3)
这样,最优控制问题被规范化为3个Euler方程,按公式(3),依次是协态方程、状态方程和控制方程,方程按照Hamilton函数的偏导数的形式非常简洁。按照公式(1)−(3)的过程进行展开求解,这就是无约束问题的Hamilton函数法,除了Euler方程,还要考虑边界条件和定解条件才能实际求解。
方程中x(t),λ(t)∈Rn,u(t)∈Rm总共有2n+m个未知的时变参数。协态方程和状态方程x(t),λ(t)是一阶常微分方程组,需要知道2n个边界条件才能求解;控制方程u(t)是代数方程,由x(t)和λ(t)直接得到。
下面给出几种常用的边界条件和横截条件
问题描述 |
未知变量个数 |
边界条件 |
横截条件 |
tf,xf均给定 |
2n |
x(t0)=x0,x(tf)=xf |
\ |
tf给定,xf自由 |
2n |
x(t0)=x0 |
λ(tf)=∂xT∂φ(⋅∗,tf) |
tf自由,xf给定 |
2n+1 |
x(t0)=x0,x(tf)=xf |
H(⋅∗,tf)+∂t∂φ(⋅∗,tf)=0 |
tf,xf均自由 |
2n+1 |
x(t0)=x0 |
λ(tf)=∂xT∂φ;H(⋅∗,tf)+∂t∂φ(⋅∗,tf)=0 |
上面,性能指标不包括Meyer型,即φ(x(tf),tf))≡0,则横截条件中出现相应的项为0。如tf,xf均自由时,横截条件为
λ(tf)=0,H(⋅∗,tf)=0
终端约束的情况
设终端时刻tf自由或给定,终端状态xf自由但满足代数约束,两者之间的关系为
ψ(xf,tf)=0,ψ∈Rm,m<n(4)
有m个终端约束,仍考虑表达式(1)所述的性能指标。这样的终端约束可以表达:
-
xf的部分状态量给定,其他状态量自由;
-
xf之间存在代数关系,如速度v和位置矢量r正交
参考文献[2],按照Lagrange乘数法,设一个常数向量μ∈Rm,则性能指标变成
J=[φ+μTψ]tf+∫0tf{L(x,u,t)+λT[f(x,u,t)−x˙]}dt=Φtf+∫0tf(H−λTx˙)dt
上式仍然定义相同的Hamilton函数H=L+λTf,以及标量函数Φ=φ+μTψ。对终端时刻的性能指标求全微分:
dJ=((∂t∂Φ+L)dt+∂x∂Φdx)tf+∫0tf(∂x∂Hδx+∂u∂Hδu−λTδx˙)dt
并考虑δx(t)=dx(t)−x˙(t)dt,上式可变换为
dJ=(∂t∂Φ+L+λTx˙)tfdtf+[(∂x∂Φ−λT)dx]tf+(λTδx)t0+∫0tf[(∂x∂H+λ˙T)δx+∂u∂Hδu]dt(5)
按照最优性的必要条件,令每一项的系数都为0,可以得到Euler方程
λ˙x˙0=−∂x∂H=−∂x∂L−λT∂x∂f=f(x,u,t)=∂u∂H=∂u∂L+(∂u∂f)Tλ(6)
边界条件和横截条件
λT(tf)=∂x∂Φ(⋅∗,tf)=∂x∂φ(xf,tf)+μT∂x∂ψ(xf,tf)(∂t∂Φ+λTx˙+L)t=tf≡(dtdΦ+L)t=tf=0(7)
可见文献[2]按照公式(5)推导的结果和变分法得到的结果完全一致。其中x(t),λ(t)以及Lagrange乘数μ未知,以下再给出表格总结:
问题描述 |
未知变量个数 |
边界条件 |
横截条件 |
tf给定,xf自由,且有终端约束ψ(xf,tf)=0
|
2n+m |
x(t0)=x0ψ(xf,tf)=0 |
λ(tf)=∂xT∂φ+μT∂x∂ψ |
tf给定,xf自由,且有终端约束ψ(xf,tf)=0,(Lagrange型性能指标) |
2n+m |
x(t0)=x0ψ(xf,tf)=0 |
λ(tf)=μT∂x∂ψ |
tf,xf均自由,且有终端约束ψ(xf,tf)=0
|
2n+m+1 |
x(t0)=x0ψ(xf,tf)=0 |
λ(tf)=∂xT∂φ+μT∂x∂ψ;∂t∂φ+μT∂t∂ψ+(∂x∂φ+μT∂x∂ψ)f+L=0,(t=tf) |
tf,xf均自由,且有终端约束ψ(xf,tf)=0,(Lagrange型性能指标) |
2n+m+1 |
x(t0)=x0ψ(xf,tf)=0 |
λ(tf)=∂xT∂φ+μT∂x∂ψ;μT[∂t∂ψ+∂x∂ψf]+L=0,(t=tf) |
应用举例
倒立摆问题
倒立摆按照方程Iθ¨+bθ˙−mglsinθ=u,初始状态x0=[θ,ω]T=[π,0],控制目标[θf,ωf]T=[0,0],终端时刻tf自由,二次型性能指标
u(t)min=21xfTQxf+21∫0tfRu2
首先写出一阶非线性微分方程组
[θ˙ω˙]=f(x)=[ω1/I(−mglsinθ+bω+u)]
写出Hamilton函数
H=21Ru2+λ1ω+λ2ω˙
协态方程
λ˙1λ˙2=−∂θ∂H=λ2mglcosθ/I=−∂θ∂H=−λ1
最优控制
∂u∂H=Ru+λ2/I=0⟹u=−λ2/RI
横截条件
H(tf)+∂t∂φ(xf)=21Ru2+λ2u/I=0⟹λ2(tf)=0
代入数据,调用MATLAB中的bvp4c求解这个问题,得到结果

连续推力轨道转移问题
轨道动力学方程r¨=−r3μr+a,初始状态已知r(t0)=r0,v(t0)=v0,终端时刻tf给定,终端状态约束ψ(r(tf),v(tf))=rTv=0。最小能量问题mina(t)J=21∫t0tfaTadt。
套用Hamilton函数法,状态变量
x=[rv]f(x)=[r−r3μr+a]
则Hamilton函数为
H=21aTa+λrTv+λvT(g(r)+a)
协态方程
λ˙rTλ˙vT=−∂r∂H=−λvT∂r∂g(r)=−∂v∂H=−λrT
对终端约束引入Lagrange乘数ν∈R1,查表得到横截条件
λr(tf)=νT∂r(tf)∂ψ=νvfλv(tf)=νT∂v(tf)∂ψ=νrf
最优控制
∂a∂H=a+λv=0(8)
则最优控制的控制律为a=−λv,这个式子最早由Lawden提出,被称为主矢量理论。代入控制,有12个未知变量,
r˙v˙λ˙rTλ˙vT=r=−r3μr−λv=−λvT∂r∂g(r)=−λrT
1个未知常数ν,边界条件共有13个,可以通过求解两点边值问题求解最优轨迹。
其他重要内容
Hamilton函数的性质
沿最优轨线,Hamilton函数对时间的全导数等于其对时间的偏导数:
dtdH=∂x∂HTx˙+∂λ∂HTλ˙+∂u∂HTU˙+∂t∂H(9)
考虑到最优轨线附近满足
∂x∂H∂u∂H∂λ∂H=λ˙=0=f=x˙
则公式(9)可证。
角点条件
控制分段连续时,对最上面定义的
Hˉ(x,x˙,λ,t)=L(x,x˙,t)−λT(f(x,x˙,t)−x˙)
由角点处的Weierstrass-Erdmann条件,有
HˉX˙∣∣ξ−0Hˉ−X˙THˉX˙∣∣∣ξ−0=HˉX˙∣∣ξ+0=Hˉ−X˙THˉX˙∣∣∣ξ+0
对标准形式的Hamilton函数H=L+λTf,以下条件等价
λ(ξ−0)H∣ξ−0=λ(ξ+0)=H∣ξ+0
即Hamilton函数连续,且协态变量连续。
参考文献
[1] 邢继祥. 最优控制应用基础[M]. 科学出版社, 2003.
[2] Bryson A E , Ho Y C ,Applied optimal control : optimization, estimation, and control[J]. IEEE Transactions on Systems Man & Cybernetics, 1975