最优控制的计算方法本章主要内容直接法间接法小结返回主目录在前面讨论变分法、极小值原理和动态规划时,我们列举了一些例子。为了易于说明问题,这些例子都是非常简单的,可以用手算来解决问题。但是在实际工作中所遇到的最优控制问题,一般都是很复杂的,必须用计算机求解。因此,最优控制的计算方法就变得十分重要了。这方面的内容十分丰富,由于篇幅所限,我们只介绍几种典型的算法。(无约束)(ii)哈密顿函数取极小的必要条件H0UHU(有约束)(7-2)或U),,,(),,,(min*****tUXHtUXHU由极小值原理可知,最优控制问题的解必须满足以下几个条件(iii)边界条件(包括横截条件)HXXH(i)正则方程(7-1)最优控制的计算方法一般是先求出满足上面三个条件中某两个的解,然后用合适的迭代计算形式逐次改变这个解,以达到满足剩下的另一个条件的解(即最优解)。通常把最优控制的计算方法分成两类:直接法和间接法。直接法它的特点是,在每一步迭代中,不一定要满足取极小的必要条件,而是逐步改善它,在迭代终了使它满足这个必要条件,而且,积分状态方程是从到,积分协态方程是从到,这样就避免了去寻找缺少的协态初值的困难。常用的直接法有梯度法,二阶梯度法,共轭梯度法。)(tUH0tft)(0t0tft间接法它的特点是,在每一步迭代中都要满足取极小的必要条件,而且要同时积分状态方程和协态方程,两种方程的积分都从到或从到。常用的间接法有边界迭代法和拟线性化法。H0t0tftft(一)梯度法7.1直接法这是一种直接方法,应用比较广泛。它的特点是:先猜测任意一个控制函数,它可能并不满足取极小的必要条件,然后用迭代算法根据梯度减小的方向来改善,使它最后满足必要条件。)(tUH)(tUH计算步骤如下:1.先猜测中的一个控制向量,是迭代步数,初始时。的决定要凭工程经验,猜得合理,计算收敛得就快。],[0ftt)()(0tUtUK0K0UK2.在第步,以估计值和给定的初始条件,从到顺向积分状态方程,求出状态向量。KKU)(0tX0tft)(tXK3.用、和横截条件求得的终端值,从到反向积分协态方程,求出协态向量。)(tK0tft)(ft)(tXK)(tUK4.表示在、、处取值。当这些量非最优值时,。0KgKKXKUKUH)(KKUHg)(计算哈密顿函数对的梯度向量KgUH5、是一个步长因子,它是待定的数。选择使指标达到极小。这是一维寻优问题,有很多现成的优化方法可用。如分数法,0.618法,抛物线法,立方近似法等。(7-3)表明迭代是沿着梯度的负方向进行的。KKKgKKKKgUU1修正控制向量(7-3)6、)()()(1KKKUJUJUJ计算是否满足下列指标(7-4)1KKε是指定小量,若满足则停止计算,否则,令,转步骤2。另一停止计算的标准是Kg(7-5)例7-1考虑下面的一阶非线性状态方程uxx210)0(x(7-6)用梯度法寻找最优控制使下面的指标最小1022)(21dtuxJ(7-7)解因自由,由横截条件得)1(x0)1(0哈密顿函数为uxuxH222)(21(7-8)协态方程为xxxH2(7-9)1、选初始估计。0)(0tu代入初始条件:,确定积分常数10)0(,0xt101c2、将代入状态方程(7-6)可得0)(0tudtxdx2(7-11)ctx1积分上式可得(7-12)11010)()(0ttxtx代入(7-12)式即可得(7-13)3.将代入协态方程(7-9),且由边界条件从t=1倒向积分可得)(0tx0)1(00)1(]121/)101(1[21)(020tt5.。这里选步长因子。如此继续下去,直至指标函数随迭代变化很小为止。]121/)101(1[21)()()(2001tuHtutu1K)()(00tuHuuH4.由图7-1用梯度法寻找最优控制图7-2最优状态的求解01)(1tu最优值)(0tuut10和最优值)('tx)(0txxt图7-1和图7-2表示了控制和状态的初始值和第一次迭代值,可以看到第一次迭代就几乎收敛到最优值,与最优值还有差异,而且一般说来愈接近最优值收敛愈慢)(tx)(1tu梯度法应用得比较多,它的优点是:(1)简单,编制程序容易;(2)计算稳定可靠。缺点是:(1)在接近最优解时,迭代收敛很慢,为改善收敛性可用共轭梯度法和二阶变分法等;(2)不能区分局部极小和全局极小;(3)对控制变量受约束,终端状态受约束的情况不能直接处理。对于这种有约束的情况可用约束梯度法或惩罚函数法加以处理。mibtuaiii,2,1)(约束梯度法可处理如下的不等式约束:(7-15)首先,对于任何控制,定义约束算子uCuˆiiiiiiiiiiiuibtubtuaatubtuatuCtu)(ˆ)(ˆ)(ˆ)(ˆ)(ˆ)((7-16)显然满足约束,即mitui2,1,)(满足约束,其中,再由用无约束的梯度法求解,在每一次迭代中得出,然后用代替,再进行下一次迭代。uˆTmuuu1uˆuCuuˆTmuuu]ˆˆ[ˆ1uCuuˆ(7-17)惩罚函数法可处理如下形式的约束:qituXgi,2,10),,((7-18)littXhffi,2,10)),(((7-19)这时,将性能指标增广为)(uJ).(uJ其中,,0,0iN0010)(iiiggg(7-21)fttqiliffiiiittXhNdtgtUXguJuJ01122)),(()(),,()()((7-20)显然,当满足约束时,中后两项为零。当不满足约束时,后两项将使增大,故称为惩罚函数。在迭代过程中,逐次增大和。显然当和很大时,所求得的的无约束最优控制近似于的有约束最优控制。)(uJ)(uJiNiN)(uJ)(uJ(二)共轭梯度法用共轭梯度法寻找最优控制时是沿着所谓共轭梯度向量的方向进行的。为了说明共轭梯度的意义,我们先从求函数极值问题的共轭梯度法开始,再推广到求泛函极值问题。1.求函数极值的共轭梯度法其中,),(,)(2121nTTnaaaaxxxX为常数,为正定阵。CQ是和的内积。要求寻找使取极值。XQXX)(XFQXXQXXT),((7-23)设是定义在空间中的二次指标函数)(XFnRCXaQXXXFT),(21)((7-22)定义则称和是共轭的。(单位阵)时,共轭就变为通常的正交。XYQIQ若中两个向量和满足nRXY0),(QYXQYXT(7-24)设向量,是两两共轭的,以为寻找方向,可得共轭梯度法的迭代寻优程序:KP,2,1,0KQKPKKKKPXX1(7-25)与梯度法不同处仅在于用共轭梯度代替负梯度。问题是如何产生共轭梯度方向。,2,1,0,KPKKKXFg)(KP值由和对共轭的关系来确定,即QKPK1KP1KKKKPgP(7-26)0),(1KKQPP(7-27)令,即初始时共轭梯度与梯度方向相反、大小相等。以后的共轭梯度可如下递归产生:00Pg),(),(0111KKKKKKQPPgQPP),(),(111KKKKKQPPQPg将(7-26)代入(7-27),得K称为共轭系数。),(),(111KKKKKQPPQPg故(7-28)用(7-28)式计算是不方便的,因为要用到二阶导数阵。由(7-22)和(7-23)知KQ分别为的第个和第个分量,右端表示由的第行第列元素构成的矩阵。计算这个二阶导数阵非常困难。为此,有必要推导不用来计算的公式。jixx,XijQijQKnjixxXFQji,1))((2(7-29)性质1若是空间中彼此共轭的向量,则它们是线性独立的。110,,,nPPPnRQ在这个推导中要用到共轭梯度的下列性质:证明:因为正定,上式对每一个成立,所以必须有与假设矛盾,这说明是线性独立的,它们构成了空间中的一组基向量。QjP1,2,1,0,0njCj110,,nPPPnR上式左端各项对取内积后有jQP100),(),(nijjjjiiQPPCQPPC(7-31)用反证法。若不线性独立,则必存在不全为零的常数使121,,,nCCC100niiiPC(7-30)其中,可这样来求:作内积1,1,0,niCi),(),),(10KKKKiniiKPQPCPPQCPQX=((7-33)1210),(),(nKPQPPQXCKKKK,,,从而按照这个性质,函数的极小点可用这组基来表示,即)(XF*XX10niiiPCX(7-32)性质2式中,。(7-34)说明,在处函数的梯度与前一步的寻找方向必正交。KXXKXFXF)()(1KXX)(XF1KgKP如果,则有0)(KKXFg0),(1KKgP(7-34)若不然,不妨先设。再设,即是最优步长。在附近选一个,将在处展开,保留一阶项后,有0),(1KKgP)(min0KKPXFKKKK0)(XFKKKKPXXX1)(KKKPXF证明:KKKTKKKKKKKPXFPXFPXF)()()()(0100),)(())((1010KKKKKTKKKPgPg(7-35)这与为极小相矛盾。)(KKKPXF若设则可取,同样得出矛盾,于是必有(7-34)成立。0),(1KKgPKK0性质3(7-36)说明,在处的梯度与以前各步的共轭梯度寻找方向都正交。)(XFKXXKg若,则必有0)(KKXFgKjPgjK10),(1(7-36)证明由(7-22)式所假定的二次函数,可得)(XFKKKQXaXFg)((7-38)101KjXXKjiiijK(7-37)得到111KKKKPXX重复使用设为极小点,则*XX0)(QXaXg(7-39)(7-38)减去(7-39)得)(XXQgKK(7-40)上式两边对作内积,得1jP(7-42)),(),(),(1111jiKjiijjjKPQPPgPg1KjiiijKQXPQQXg101KjPQgKjiiij(7-41)=(7-37)代入(7-40),得由性质2知再由与是共轭的定义可知(7-42)右端第二项也为零,,0),(1jjPg1,kjiPi1jPQKjPgjK10),(1因此(7-36)得证。但是线性无关的,它们构成中一组基,与所有基正交,而中只有个基,故。这说明处的梯度为零,即为二次函数的极小点。110,,,nPPPnRngnRn0ngnXnX)(XF如果取,则nKnjPgjn10),(1(7-43)如果一个算法能在有限步内求出二次函数的极小点,就称这个算法具有二阶收敛性或有限步收敛性。由此可见,在空间中,对二次函数用(7-25)式所示的共轭梯度法寻优,迭代至多步就可达到极小点。nR)(XFn性质4若,则0)(KKXFg,2,10),(1KggKK(7-44)证:),(),(),(012111KKKKKKKKggPggPg0),(),(121KKKKKggPg(7-44)得证。由性质3和(7-26)式知下面根据这四个性质来推出的一个简单的计算公式。在(7-41)中令,可导出K1Kj111,(),(KKKKKKQPgPgP),(),(),(1111KK