最优控制的计算方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17
2、共轭梯度法
(2) 用共轭梯度法解最优控制问题
求解最优控制问题的直接法是用迭代方法逐步改善控制
量u(t),使它最后满足哈密顿函数H 取极小的必要条件,故 梯度向量为
gK
g
K
(t)
( H u
) u (t )u K
(t )
(
H
u
)K
这里梯度向量 g K (t) 是时间的函数,向量时间函数的内积定
20
2、共轭梯度法
例 设系统状态方程为
x1 u
x2
(1
u ) x1
u
1 2
u
2
性能指标
J x2 (1)
x1 (0)
1 2
x2 (0) 0
要求用共轭梯度法决定最优控制 u(t) ,使 J 最小。
解
哈密顿函数为
H
1u
2[(1 u)x1
u
1 u2 2
协态方程为
1
H x1
2 (1 u)
&2
H x2
相等。以后的共轭梯度可如下递归产生:
P K g K K P K 1
K值由 PK 和 PK1对Q 共轭的关系来确定,即
(P K , QP K 1 ) 0
于是,得 0 (P K , QP K 1 ) (g K K P K 1, QP K 1 )
(g K , QP K 1 ) K (P K 1 , QP K 1 )
第j列元素构成的矩阵。计算这个二阶导数阵非常困难。为此,
有必要推导不用Q来计算K 的公式。
通过推导(略),可得 K (g K , g K ) g K 2
(g K 1 , g K 1 ) g K 1 2
上式计算K,只用到F(X)在XK和XK1两处的梯度,因此非常方
便。上式对二次函数是精确的,对非二次函数,它只是一个 近似公式。
2
最优控制的计算方法
直接法的特点是,在每一步迭代中,U(t)不一定要满足H 取极小的必要条件,而是逐步改善它,在迭代终了使它满足这 个必要条件,而且,积分状态方程是从t0到tf ,积分协态方程
是从tf到t0,这样就避免了去寻找缺少的协态初值(t0)的困难。
常用的直接法有梯度法,二阶梯度法,共轭梯度法。 间接法的特点是,在每一步迭代中都要满足H取极小的必
由
J
x2 (1)
1 2
49 0
12
97 ( 0 )2
24
J 49 97 0 0 0 12 12
可求得 0的最优值为
0
49 97
于是 u1(t) 49 (t 5)
97 2
由
1
[1
49 97
(t
5)] 2
积分上式可得
最优控制的计算方法
一、直接法 二、间接法
1
最优控制的计算方法
在前面讨论变分法、极小值原理和动态规划时,我 们列举了一些例子。为了易于说明问题,这些例子都是 非常简单的,可以用手算来解决问题。但是在实际工作 中所遇到的最优控制问题,一般都是很复杂的,必须用 计算机求解。
因此,最优控制的计算方法就变得十分重要了。这 方面的内容十分丰富,由于篇幅所限,我们只介绍几种 典型的算法。
gK
7
1、梯度法
例、考虑下面的一阶非线性状态方程
x x2 u x(0) 10
用梯度法寻找最优控制使下面的指标最小
J 1
1
(
x
2
u 2 )dt
20
解:哈密顿函数为
H 1 (x2 u 2 ) x2 u
2
协态方程为 H x 2x
x
因x(1)自由,由横截条件得 0 (1) 0
8
10
1、梯度法
u
右图表示了控制和 状态的初始值和第一次
最优值
迭代值,可以看到第一
u1 (t )
次迭代 x(t) 就几乎收敛
u 0 (t)
到最优值,u1(t) 与最
优值还有差异,而且一
0
1t
图a 用梯度法寻找最优控制
x
般说来愈接近最优值收
敛愈慢。
10
x 0 (t)
x ' (t)和最优值
图b 最优状态的求解
2
5) 2
1 [ 0 (t
2
5 )]2 2
1 0 (t2 t 15) ( 0 )2 (t3 13t2 15 t 25)
2
2
4
24 4 8
x12 (t)
t 2
0 (t3
6
t2 2
15 t) ( 0 )2 (t 4
4
8
13 t 3 12
15 t 2 8
25 t) 8
24
2、共轭梯度法
5
1、梯度法
3、用UK(t)、XK(t)和横截条件求得的终端值(tf),从tf 到t0反向积分协态方程,求出协态向量K(tf)。
4、计算哈密顿函数H对U的梯度向量
gK
@(
H U
)
K
H
( U
)
K
表示在
U
K、X
K、K
处取值。当这些量非最优值
时, g K 0。
6
1、梯度法
5、修正控制向量 U K 1 U K K g K K 是一个步长因子,它是待定的数。选择 K 使指标达
t
11
1、梯度法
梯度法应用得比较多,它的优点是: (1)简单,编制程序容易; (2)计算稳定可靠。 缺点是: (1)在接近最优解时,迭代收敛很慢,为改善收敛性 可用共轭梯度法和二阶变分法等; (2)不能区分局部极小和全局极小; (3)对控制变量受约束,终端状态受约束的情 况不能 直接处理。对于这种有约束的情况可用约束梯度法或惩罚函 数法加以处理。
要条件,而且要同时积分状态方程和协态方程,两种方程的积 分都从从t0到tf或从tf到t0 。常用的间接法有边界迭代法和拟线 性化法。
3
最优控制的计算方法
由极小值原理可知,最优控制问题的解必须满足以下几
个条件:
(i)正则方程 X H
H
X
(ii)哈密顿函数H取极小的必要条件
H 0 ( U无约束) U
23
2、共轭梯度法
x1 (t)
0
(t
5) 2
x1(0)
1 2
x&2 (t
)
[1
0
(t
5 2
)]x11
(t
)
0
(t
5 2
)
1 2
[
0
(t
5 2
)]2
x2 (0) 0
积分得 x&1(t)
x11 (t )
0(t2
2
5 2
t)
1 2
x&2 (t)
[1 0 (t
5)][ 0 (t2
2Leabharlann Baidu
2
5 2
t)
1] 0 (t
或
min H (X *, *,U ,t) H (X *, *,U *,t) ( U有约束)
U
(iii)边界条件(包括横截条件)
最优控制的计算方法一般是先求出满足上面三个条件中
某两个的解,然后用合适的迭代计算形式逐次改变这个解, 以达到满足剩下的另一个条件的解(即最优解)。
4
一、直接法
1、梯度法 这是一种直接方法,应用比较广泛。它的特点是:先猜 测任意一个控制函数U(t),它可能并不满足H 取极小的必要 条件,然后用迭代算法根据H 梯度减小的方向来改善U(t), 使它最后满足必要条件。 计算步骤如下: 1、先猜测[t0, tf]中的一个控制向量UK(t)=U0(t),K是迭代 步数,初始时K=0。U0 的决定要凭工程经验,猜得合理,计 算收敛得就快 2、在第K步,以估计值UK和给定的初始条件X(t0),从t0 到tf 顺向积分状态方程,求出状态向量XK(t)。
义为
g K (t), g K (t)
tf
g K (t) T g K (t)dt
g K (t) 2
t0
除了这些以外,其它在形式上与求函数极值的共轭梯度
法一样。
18
2、共轭梯度法
共轭梯度法求最优控制步骤为
(1) 设已求出第K步估计的控制函数u K (t), u 0 (t)可任选。
(2) 以 X (t0 ) 为初值,从 t0 到 t f 积分状态方程,得出状态 轨迹 X K (t)。
2
0用一维寻优来决定。将 u1 代入状态方程和协态方程
x1 (t)
0
(t
5 2
)
x&2 (t
)
[1
0
(t
5 2
)]x11
(t
)
0
(t
5 2
)
1 2
[
0
(t
5 2
)]2
状态方程 x&1 u
x1(0)
1 2
x&2
(1
u)
x1
u
1 2
u
2
x2 (0) 0
协态方程 &1 (1 u) 1(1) 0
2 (t) 1
(3) 以 (t f )为终值,从 t f 到 t0 反向积分协态方程,求得 协态轨迹 K (t) 。
(4) 计算梯度向量
gK
H ( u )uuk
(5) 计算共轭系数
g K (t) 2
K
g K 1 (t) 2
0=0
(6) 计算共轭梯度 P K g K K P K 1 P 0=-g 0
19
故
K
(g K , QPK1 ) (P K1, QPK1 )
K 称为共轭系数。
15
2、共轭梯度法
K的计算是不方便的,因为要用到二阶导数阵Q。而
Q (2F(X )) 1 i, j n xi x j
F(X ) 1 (X ,QX ) aT X C 2
( X ,QX ) X T QX
xi , x j 分别为X 的第i个和第j个分量,右端表示由Q 的第i行
设向量 PK ,K 0, 1, 2, 是两两Q共轭的,以 PK 为
寻找方向,可得共轭梯度法的迭代寻优程序:
X K1 X K K P K
与梯度法不同处仅在于用共轭梯度PK代替负梯度gK =
(F/X)K。问题是如何产生共轭梯度方向PK , K 0,1, 2,L 。
14
2、共轭梯度法
令 P0 g0,即初始时共轭梯度与梯度方向相反、大小
t=1倒向积分可得
0 (t) 1 [1 (110t)2 /121]
2
0 (1) 0
4、由 H u ,得 (H )0 0 (t)
u
u
5、 u1(t) u0 (t) (H )0 1 [1 (1 10t)2 /121]
u
2
这里选步长因子 K 1 。如此继续下去,直至指标函数随
迭代变化很小为止。
x1 0, x2 x1, 1 2 , 2 1
积分可得
x10
(t)
1 2
,
x20
(t)
1 2
t,
10 (t) t 1
22
2、共轭梯度法
梯度向量
g 0 (t)
( H u
)0
(1
2 x1
2
2u)0
10
02 x10
02
t
1
1 2
1
5 2
t
共轭梯度 P0 g 0 t 5 。
2
(2) K=1时的计算 u1(t) u 0 (t) 0 P0 0 (t 5)
16
2、共轭梯度法
将共轭梯度法求F(X)的极小解的算式归纳如下:
(a) 计算梯度
gK
(
F X
)
K
(b) 计算共轭系数
K g K 2 g K 1 2
0=0
(c) 计算共轭梯度 P K g K K P K 1, P0 g 0
(d) 递推逼近极值点解
K用一维寻优决定。
X K1 X K K P K
12
2、共轭梯度法 用共轭梯度法寻找最优控制时是沿着所谓共轭梯度向量 的方向进行的。为了说明共轭梯度的意义,我们先从求函数 极值问题的共轭梯度法开始,再推广到求泛函极值问题。 (1) 求函数极值的共轭梯度法 设F(X)是定义在Rn空间中的二次指标函数
F(X ) 1 (X ,QX ) aT X C 2
1、梯度法
1、选初始估计 u 0 (t) 0 。
2、将u 0 (t) 0 代入状态方程可得
积分上式可得
dx dt x2 1 t c x
代入初始条件: x(0) 10 ,确定积分常数 c 1 10
可得 x(t) x0 (t) 10 10t 1
9
1、梯度法
3、将 x 0 (t)代入协态方程,且由边界条件 0 (1) 0 从
2、共轭梯度法
(7) 计算控制函数
u K 1 (t) u K (t) K P K 用一维寻优决定 K ,即
J u K K PK min J u K PK 0
(8) 当满足下面的不等式
J (u K1 ) J (u K )
J (u K ) 停止计算。否则令 K K 1 ,回到步骤2。
其中, X (x1 x2 xn )T , aT (a1 a 2 an ), C为常数, Q为正定阵。 ( X ,QX ) X T QX 是X和QX的内积。
要求寻找X使F(X)取极值。
13
2、共轭梯度法
定义:若Rn中两个向量X和Y满足
( X , QY ) X T QY 0
则称X和Y是Q共轭的。Q = I(单位阵)时,共轭就变为通常 的正交。
到极小。这是一维寻优问题,有很多现成的优化方法可用。 如分数法,0.618法,抛物线法,立方近似法等。上式表明 迭代是沿着梯度 g K 的负方向进行的。
6、计算是否满足下列指标
J (U K1 ) J (U K )
J (U K ) 是指定小量,若满足则停止计算,否则,令 K K 1,
转步骤2。另一停止计算的标准是
0
2 (t) c
21
2、共轭梯度法
横截条件
1 (1)
x1 (1)
J x1 (1)
0
2
(1)
J x2 (1)
1
c 1
故协态方程化为 &1 (1 u) 1(1) 0
状态方程
2 (t) 1
(1) K=0时的计算
x&1 u
x1(0)
1 2
x&2
(1
u)
x1
u
1 2
u
2
x2 (0) 0
选 u 0 (t) 0 ,代入状态方程和协态方程,可求得