第6章 最 优 控 制第6章 最 优 控 制 6.1 最优控制问题概述6.2 用变分法求解最优控制问题6.3 极小值原理6.4 用动态规划法求解最优控制问题6.5 线性二次型最优控制调节器6.6 MATLAB在系统最优控制中的应用第6章 最 优 控 制 6.1 最优控制问题概述最优控制问题概述6.1.1 引言引言 什么是最优控制呢?下面举例说明 例例6-1 飞船的月球软着陆问题飞船从宇宙中飞到月球表面,靠其发动机产生一与月球重力方向相反的推力f,赖以控制飞船实现软着陆(落到月球表面上时速度为零)要求选择一最好发动机推力程序f(t),使燃料消耗最少 解:解:如图6-1所示,设飞船质量为m,它的高度和垂直速度分别为h和v月球的重力加速度可视为常数g,飞船的自身质量及所带燃料分别为M和F第6章 最 优 控 制图6-1 飞船着陆示意图第6章 最 优 控 制 自t=0时刻开始飞船进入着陆过程其运动方程为其中k为一常数要求控制飞船从初始状态 出发,于某一时刻tf实现软着陆,即 h(tf)=0,v(tf)=0第6章 最 优 控 制控制过程中推力f(t)不能超过发动机所能提供的最大推力fmax,即 0≤f(t)≤fmax 满足上述限制,使飞船实现软着陆的推力程序f(t)不止一种,其中消耗燃料最少者才是最佳推力程序,问题可归结为求 J=m(tf)为最大的数学问题。
第6章 最 优 控 制6.1.2 最优控制问题的提法最优控制问题的提法 由上面的具体实例可知,为了解决最优控制问题,必须建立描述受控运动过程的运动方程,给出控制变量的允许取值范围,指定运动过程的初始状态和目标状态,并且规定一个评价运动过程品质优劣的性能指标通常,性能指标的好坏取决于所选择的控制函数和相应的运动状态系统的运动状态受到运动方程的约束,而控制函数只能在允许的范围内选取因此,从数学上看,最优控制问题可以表述为: 在运动方程和允许控制范围的约束下,对以控制函数和运动状态为变量的性能指标函数(称为泛函)求取极值(极大值或极小值)抽象为共同的数学模型,可以得到最优控制问题的一般性提法第6章 最 优 控 制 设动态系统的状态方程: (6-1) 初始状态: x(t0)=x0 目标集: x(tf)∈S 控制域: 性能指标: (6-2) 最优控制的问题就是: 从所有可供选择的允许控制中寻找一个最优控制u*(t),使状态x(t)由x(t0)经过一定时间转移到目标集S,并且沿此轨迹转移时,使相应的性能指标达到极值(极大或极小)。
dt第6章 最 优 控 制6.1.3 性能指标的分类性能指标的分类 最优控制问题可归结为求性能指标的极值问题指标函数(又称价值函数、目标函数、性能泛函)按照实际控制性能的要求大致可以分为: (1) 最短时间问题 (6-3) (2) 最小燃料消耗问题(6-4) (3) 最小能量控制问题(6-5)第6章 最 优 控 制 (4) 线性调节器问题 (6-6)或者有(6-7) (5) 状态跟踪器问题: 如果在过程中要求状态x(t)跟踪目标轨迹xd(t),有(6-8)第6章 最 优 控 制 (4) 、(5)两类性能指标统称为二次型性能指标,这是工程实践中应用最广的一类性能指标第6章 最 优 控 制 6.2 用变分法求解最优控制问题用变分法求解最优控制问题 变分法是研究用泛函求极值的一种数学方法下面先介绍一下泛函和变分6.2.1 泛函与变分泛函与变分 1. 泛函的基本定义泛函的基本定义 如果对于某个函数集合{x(t)}中的每一个函数x(t),变量J 都有一个值与之对应,则称变量J为依赖于函数x(t)的泛函,记作J[x(t)]可见,泛函为标量,可以理解为“函数的函数”。
第6章 最 优 控 制 例如: (其中,x(t)为连续可积函数)当x(t)=t时,有J=4.5;当x(t)=et时,有J=e3-1第6章 最 优 控 制 2. 泛函的变分泛函的变分 设J[x(t)]是线性赋泛空间Rn上的连续泛函,其增量可表示为 ΔJ[x]=J[x+δx]-J[x]=L[x,δx]+r[x,δx] (6-9)其中,L[x,δx]是关于δx的线性连续泛函,r[x,δx]是关于δx的高阶无穷小,则δJ=L[x,δx]称为泛函J[x(t)]的变分 所以泛函的变分等于(6-10)第6章 最 优 控 制 3. 泛函的极值泛函的极值 设J[x(t)]是性赋泛空间Rn上某个子集D中的线性连续泛函,x0∈D,若在x0的某邻域内有(6-11)如果在 时,均有(6-12)或则称J[x(t)]在x0处达到极大值或极小值 定理 定理6-1 设J[x(t)]是性赋泛空间Rn上某个开子集D中定义的可微泛函,且在x=x0处达到极值,则泛函J[x(t)]在x=x0处必有 (6-13)证明从略第6章 最 优 控 制 4. 欧拉方程欧拉方程 定理 定理6-2 设有如下泛函极值问题: (6-14)其中, 及x(t)在[t0,tf]上连续可微,t0和tf给定,已知x(t0)=x0,x(tf)=xf,则极值轨迹x*(t)满足如下欧拉方程: (6-15)及横截条件 (6-16)注意: 满足欧拉方程是必要条件,不是充分条件。
第6章 最 优 控 制 如果x代表一个控制系统的输出,那么积分式(6-16)就是系统全部性能的一个指标,而衡量性能的标准就在于使这个积分最小化由于控制问题多种多样,性能指标也有多种,变分问题也就各不相同对此,我们分别加以讨论第6章 最 优 控 制6.2.2 末值时刻固定、末值状态自由情况下的最优控制末值时刻固定、末值状态自由情况下的最优控制 非线性时变系统状态方程为 (6-17)其中,x为n维状态向量;u为r维控制向量;f为n维向量函数要求在控制空间中寻求一个最优控制向量u(t),使以下性能指标 (6-18)沿最优轨迹x(t)取极小值 引入拉格朗日乘子 (6-19)第6章 最 优 控 制将性能指标式(6-18)改写为其等价形式 (6-20)定义哈密顿函数(6-21)则(6-22)对式(6-22)中的第三项进行分部积分,得(6-23)当泛函J取极值时,其一次变分等于零,即δJ=0第6章 最 优 控 制 求出J的一次变分并令其为零 将上式改写成(6-24)由于λ(t)未加限制,可以选择λ(t)使上式中δx和δx(tf)的系数等于零于是有(6-25)第6章 最 优 控 制伴随方程(6-26)控制方程 (6-27)由于δu是任意的变分,根据变分法中的辅助引理,由式(6-27)得(6-28)值得说明的是式(6-25)和式(6-28)就是欧拉方程。
第6章 最 优 控 制因为(6-29)(6-30)如果令(6-31)简记成 (6-32)由欧拉方程得到第6章 最 优 控 制即(6-33)(6-34)可见式(6-33)和式(6-29)相同,式(6-34)和式(6-30)相同因此,式(6-25)和式(6-28)就是欧拉方程,而式(6-17)和式(6-26)就是横截条件 例 例6-2 已知系统状态方程 ,tf固定,x(tf)自由试写出为使 为最小值的欧拉方程和横截条件a,r为常数第6章 最 优 控 制 解: 解: 将状态方程代入J消去u,得到 其中根据 ,得到故极值条件的欧拉方程为第6章 最 优 控 制边界条件为 (1) x(0)=x0; (2) 由 ,得 联立求解上述方程可求出u*(t)和x*(t)第6章 最 优 控 制6.2.3 末值时刻和末端状态固定情况下的最优控制末值时刻和末端状态固定情况下的最优控制 非线性时变系统状态方程为 (6-35)其中,x为n维状态向量;u为r维控制向量;f为n维向量函数要求在控制空间中寻求一个最优控制向量u*,将系统从x(t0)转移到x(tf)使以下性能指标(6-36)沿最优轨迹x(t)取极小值。
引入哈密顿函数(6-37)第6章 最 优 控 制因为(6-38)于是(6-39)对式(6-39)右边第2项进行分部积分,可以得到(6-40)令性能指标J的一次变分等于零,得(6-41)第6章 最 优 控 制选择λ(t),使其满足 ,则(6-42)在末端状态固定情况下,δu不是任意的只有在系统能控的情况下,才有控制方程 例 例6-3 系统状态方程为 ,以x0和xf为边界,求u*(t)使下列性能泛函取最小值 第6章 最 优 控 制 解:解:将方程 代入性能泛函有在此 ,故欧拉方程可解得x(t)=C1et+C2e-t,将边界条件代入得x0=C1+C2xf=C1etf+C2e-tf解出积分常数第6章 最 优 控 制故极值曲线为极值控制曲线为第6章 最 优 控 制 6.3 极小值原理极小值原理 用变分法求解最优控制时,认为控制向量u(t)不受限制但是实际的系统,控制信号都是受到某种限制的本节介绍的最小值原理,是分析力学中哈密顿方法的推广,其突出优点是可用于控制变量受限制的情况,能给出问题中最优控制所必须满足的条件。
对于非线性定常系统的状态方程为(6-43)初始时刻t0,初始状态x(t0),末值时刻tf,末端状态x(tf)自由,且u(t)∈U第6章 最 优 控 制 性能指标为末值型性能指标 (6-44)令(6-45)则泛函极值存在的必要条件为伴随方程 (6-46)状态方程(6-47)则哈密顿函数H相对最优控制取极小值,即(6-48)第6章 最 优 控 制或者 (6-49) 对极小值原理有以下几点说明: (1) 极小值原理给出的只是最优控制应该满足的必要条件 (2) 极小值原理的结果与用变分法求解最优问题的结果相比,差别仅在于极值条件 (3) 这里给出了极小值原理,而在庞德里亚金著作中论述的是极大值原理因为求性能指标J的极小值与求-J的极大值等价 (4) 非线性时变系统也有极小值原理第6章 最 优 控 制 例 例6-4 有一转动系统,其方框图如图6-2所示在电机力矩u(t)作用下,系统由初始状态θ(0)=1,ω(0)=1开始,在T秒钟内使系统静止在原点,即θ(T)=0, ω(T)=0,求最短时间T其中力矩的约束条件为|u(t)|≤1 解:解: 这是一个时间最优控制问题。
取状态变量x1(t)=θ(t),x2(t)=ω(t),可得到系统状态方程为性能指标为第6章 最 优 控 制图6-2 转动系统方块图第6章 最 优 控 制端点条件为哈密顿函数为根据最小值原理,控制函数满足由上式可知,要使H取最小值,必须要让λ2u取负值即第6章 最 优 控 制伴随方程为 由最优控制规律可知u*(t)的符号最多改变一次,也可能不切换用相平面法分析系统的运动形态,可知系统的最优控制规律可以写成系统状态的函数,即第6章 最 优 控 制 6.4 用动态规划法求解最优控制问题用动态规划法求解最优控制问题 动态规划法是数学规划的一种,同样可用于控制变量受限制的情况,是一种很适合于在计算机上进行计算的比较有效的方法6.4.1 动态规划法的基本思想动态规划法的基本思想 在介绍理论之前,我们先研究一个走路的例子假设有人要从A点走到I点街道分布和走每条街道所花的时间如图6-3所示现要求选择一条路线走法,使用的时间最少这是一个最优控制问题第6章 最 优 控 制图6-3 街道分布图第6章 最 优 控 制 一种办法是将从A点到I点所有可能的走法都列出来,一共有六条,并且把每种走法用的时间进行比较,找出最短的。
这样做很直接,但当街道数目比较多时,这种方法很繁琐 第二个办法: 从最后一段开始,向前倒推当倒推到某一站时,计算该站到终点站的总里程,并选择里程最少的走法先求出与I相邻两点H点和F点走到I点所需的最短时间为1然后看从E点走到I点所需的最短时间这时要作一个抉择,要先横走还是先竖走,可以看出应该先横后竖,最短时间为4同样依次找出其余点,包括A点到I点的所需的最短时间第6章 最 优 控 制 第二个办法有两个特点: 第一,它把一个复杂的问题(即决定一条路线的选择问题)变成许多个简单的问题(即每次只决定横向走还是竖向走的问题),因此问题的求解变得简单容易了第二,它是从I点倒着往A点计算每个点到I点的最短时间都要算出来这两个特点就是动态规划法所依据的不变嵌入原理和最优性原理 不变嵌入原理的含义是: 为了解决一个特定的最优控制问题,而把原问题嵌入到一系列相似的但易于求解的问题中去对于一个多级最优控制过程来说,就是把原来的多级最优控制问题代换成一系列单级最优控制问题本例就是这样来解决的第6章 最 优 控 制6.4.2 最优性原理最优性原理 前面提到了最优性原理贝尔曼提出的最优性原理的含义是: 在一个多级决策问题中的最优决策具有这样的性质,不管初始级、初始状态和初始决策是什么,当把其中任何一级和这一级的状态再作为初始级和初始状态时,余下的决策对此必定构成一个最优决策。
如果将最优性原理应用到离散系统中,则系统状态方程为 (6-50)性能指标为 (6-51)第6章 最 优 控 制要求确定u(k),使性能指标最优,即J=opt 一般认为,第k级决策u(k)与第k级以及k以前各级状态x(k-i)和决策u(k-i)有关 (6-52)则以上函数称为策略函数如果记第6章 最 优 控 制则对于任意级k,有(6-53) 需要指出,最优性原理有两个基本假设: 一是J具有这样的性质,即现在和将来的决策u(k)不影响过去的状态x(k);二是存在状态反馈控制,即式(6-52),且x(k)可以获得无论直接测量或重构,根据x(k)立刻可以作出决策u(k)第6章 最 优 控 制6.4.3 用动态规划法求解离散系统最优控制问题用动态规划法求解离散系统最优控制问题 设系统状态方程为 (6-54)性能指标为 (6-55)寻求u(k)使J=min当u(k)不受限制时,可写出最优控制序列为 (6-56)第6章 最 优 控 制 例例6-5 已知一线性定常离散系统的状态方程为 x(k+1)=x(k)+u(k)初始状态为x(0),性能指标为寻求最优控制序列u(k),使J=min。
解 解: 运用动态规划法来求解,设N=2 (1) 从最后一级开始,即k=2,第6章 最 优 控 制 (2) 向前倒推一级,即k=1, 因为u(k)不受限制,故u*(1)可以通过下式求得第6章 最 优 控 制 (3) 再向前倒推一级,即k=0, 由 ,解得第6章 最 优 控 制 6.5 线性二次型最优控制调节器线性二次型最优控制调节器 与前面讲过的极点配置方法形成的调节器相比,二次型最优控制方法的优点是能够提供一套系统的方法,来计算状态反馈控制增益矩阵6.5.1 二次型最优调节器二次型最优调节器 考虑最优调节器问题,已知线性时变系统的状态方程为 (6-57)确定最优控制向量的矩阵K,使u=-Kx 设性能指标为 (6-58)寻找一个最优控制u*,使J取极小值第6章 最 优 控 制 如果线性时变系统是能控的,无限时间状态调节器问题一定有解,并且可以通过有限时间状态调节器的解,取tf→∞来获得采用状态反馈的方法可解出最优控制 (6-59)此时有(6-60)最优状态轨迹x*可由式(6-57)和式(6-60)求出最优性能指标(6-61)式(6-61)中的P(t)可由下式求出:(6-62)方程式(6-62)就是著名的黎卡提代数方程。
第6章 最 优 控 制 注意,当这个无限时间状态调节器满足以下条件时,状态反馈增益矩阵K才为常数矩阵 (1) 系统为线性定常系统 (2) 系统为能控 (3) 末值时刻tf→∞ (4) J中不含末值项,即F=0 (5) Q,R为正定阵第6章 最 优 控 制6.5.2 定常情况下二次型调节器的稳定性定常情况下二次型调节器的稳定性 通常用李亚普诺夫第二法来研究线性定常系统稳定性取Lyapunov函数 (6-63)假设 正定,所以V(x)正定 使 为正定对称阵的充要条件是: {A,D}能观测其中D是任意一个使DDT=Q成立的矩阵6-64)将式(6-60)代入式(6-64),并且考虑式(6-62),有(6-65)第6章 最 优 控 制 由于Q和R为正定阵,而 阵也为正定,则 为负定因此,定常情况下状态调节器平衡状态xe=0是渐近稳定的即使开环系统 是不稳定的,也不管Q阵和R阵如何选取,只要Q阵和R阵为正定的,则状态调节器总是渐近稳定的 例例6-6 考虑一阶系统 ,设二次型性能指标 ,求系统的状态反馈最优控制律 解解: 模型参数A=B=1,加权矩阵R=Q=1⇒ 第6章 最 优 控 制解出 。
由于要求对称正定解,故取 所以最优状态反馈控制律: 最优闭环系统: 最小值依赖系统的初始状态第6章 最 优 控 制 6.6 MATLAB在系统最优控制中的应用在系统最优控制中的应用6.6.1 线性二次型指标最优调节器的设计线性二次型指标最优调节器的设计 线性二次型最优调节器问题需要求解黎卡提方程,而该方程通常是比较难求解的 MATLAB最优控制工具箱中提供了lqr( )函数,可以用来依照给定加权矩阵设计线性二次型最优调节器该函数的调用格式为 [K,P]=lqr(A,B,Q,R)其中(A,B)为给定的对象状态方程模型,返回的向量K为状态反馈向量,P为黎卡提方程的解如果针对离散系统,控制规律K可以由dlqr( )函数求解,调用格式为 [K,S]=lqr(G,H,Q,R)第6章 最 优 控 制 从最优控制规律可以看出,控制的最优性完全取决于加权矩阵Q、R的选择如果Q、R选择不当,虽然可以求出最优解,但这样的“最优解”没有意义通常情况下,如果希望输入信号小,可选择较大的R矩阵,这样可以迫使输入信号变小,否则目标函数将增大,不能达到最优化的要求。
对多输入系统来说,如果希望第i个输入小些,则R的第i列的值应该选得大些;如果希望第j个状态变量的值比较小,则应该相应地将Q矩阵的第j列元素选择较大的值,这时最优化功能会迫使该变量变小第6章 最 优 控 制 例 例6-7 假设连续系统的状态方程模型参数为选择加权矩阵设计出系统的线性二次型指标最优调节器第6章 最 优 控 制 >>A=[2 0 4 1; 1 -2 -4 0; 1 4 3 0;2 -2 2 3]; B=[1 2; 0 1; 0 0; 0 0]; %输入连续系统模型 >>R=eye(2);Q=diag([1000 0 1000 500]); %输入加权矩阵 >>[K,P]=lqr(A,B,Q,R) %求线性二次型最优调节器这样直接得到状态反馈矩阵K与黎卡提方程的解析阵求出结果为 K = 21.7922 -16.6914 -2.1192 36.1480 26.8931 15.0992 81.1360 69.9160 P = 21.7922 -16.6914 -2.1192 36.1480 -16.6914 48.4820 85.3745 -4.3801 -2.1192 85.3745 655.4702 588.6683 36.1480 -4.3801 588.6683 948.9877第6章 最 优 控 制6.6.2 最优化工具使用简介最优化工具使用简介 最优化工具(Optimization Tool)是一个用于解决最优化问题的图形界面程序。
使用这个工具,可以从一系列解决方案中选择一个待求问题的方案如果你对待求问题足够熟悉的话,这个工具可以方便你选择优化方法、参数以及运行方案你也可以从工作空间中输入输出数据,产生M 文件来设置方案和参数这里介绍如何使用这个功能强大的优化工具程序 要使用这个工具,在MATLAB的命令窗口键入optimtool,就会显示如图6-4所示的窗口第6章 最 优 控 制图6-4 最优化工具界面第6章 最 优 控 制 最优控制工具箱中的最优化方法有多种,如fminbndFind、fmincon、fminimax、fminsearchFind等,默认是fmincon下面举例说明最优化工具的使用 例例6-8 考虑下列问题,找出最优解已知约束条件为第6章 最 优 控 制 下面用MATLAB解题: (1) 编写目标函数如下: function f = objfun(x) f = x(1)∧2+x(2)∧2; (2) 编写约束函数如下: function [c,ceq] = nonlconstr(x) c=[-x(1)∧2-x(2)∧2+1 -9*x(1)∧2-x(2)∧2+9 -x(1)∧2+x(2) -x(2)∧2+x(1)]; ceq=[ ];第6章 最 优 控 制 (3) 使用最优化工具设置和解决问题。
从命令窗口中打开最优化工具界面,选择在solvers中选择fmincon,改变Algorithm field为Medium scale在Objective function field 中填入已经编好的目标函数名称@objfun,以便调用objfun.m函数在Start point field 中输入[3;1],这是事先估计的最优解接下来定义约束,为了产生相等的约束条件,A field填入[-1 -1] ,在b field 中填入-1在Bounds中 Lower 后的空格里输入0.5,在Upper中输入Inf,以设置x1的限制在Nonlinear constraint function field 中填 @nonlconstr,用来调用nonlconstr.m 函数设置约束点击Start按钮,计算完成后,结果会显示在左下角Run solver and view results之中,如图6-5所示第6章 最 优 控 制图6-5 采用优化工具求最优化问题第6章 最 优 控 制 从结果可以看出,目标函数的最终值为2,是在[1 1]处取得的 最优控制工具箱中除了优化工具以外还有很多内容,这里就不再赘述。