1、概述
例如,有甲乙两个仓库分别存有水泥 1500 包和 1800 包,有 A、B、C 三个工地,分别需要水泥 900 包、600 包和 1200 包。已知从甲库运送到 A、B、C 三个工地,每包水泥的运费分别是 1 元、2 元和4 元;从乙库运送到 A、B、C 三个工地,每包水泥的运费分别是 4 元、5 元和 9 元。应怎样发运这些水泥能使运费最省呢?这就是一个最优分配问题。
设从甲库运往 A、B、C 三个工地的水泥包数分别为
x
1
,
x
2
,
x
3
x_1,x_2,x_3
x1,x2,x3;从乙运往 A、B、C 三个工地的水泥包数分别为
x
4
,
x
5
,
x
6
x_4,x_5,x_6
x4,x5,x6,那么总运费
f
(
x
)
f(\pmb{x})
f(x) 将是
x
=
(
x
1
,
x
2
,
x
3
,
x
4
,
x
5
,
x
6
)
T
\pmb{x}=(x_1,x_2,x_3,x_4,x_5,x_6)^T
x=(x1,x2,x3,x4,x5,x6)T 的函数,即
f
(
x
)
=
x
1
+
2
x
2
+
4
x
3
+
4
x
4
+
5
x
5
+
9
x
6
f(\pmb{x})=x_1+2x_2+4x_3+4x_4+5x_5+9x_6
f(x)=x1+2x2+4x3+4x4+5x5+9x6
在最优化问题中,
f
(
x
)
f(\pmb{x})
f(x) 称为目标函数。最优化的任务在于确定
x
\pmb x
x,使
f
(
x
)
f(\pmb{x})
f(x) 为最小(或最大)值。但
x
\pmb x
x 的选取不是任意的,它要受到约束条件的限制,如:
x
1
+
x
2
+
x
3
≤
1500
x
4
+
x
5
+
x
6
≤
1800
x
1
+
x
5
=
900
x
2
+
x
5
=
600
x
3
+
x
6
=
1200
\begin{aligned} &x_1+x_2+x_3\leq1500\\ &x_4+x_5+x_6\leq 1800\\ &x_1+x_5=900\\ &x_2+x_5=600\\ &x_3+x_6=1200 \end{aligned}
x1+x2+x3≤1500x4+x5+x6≤1800x1+x5=900x2+x5=600x3+x6=1200
在本例中,目标函数
f
(
x
)
f(\pmb{x})
f(x) 和约束条件都是自变量
x
\pmb x
x 的一次函数,称为线性最优化问题。又因为约束条件存在不等式,故属具有不等式约束条件的线性最优化问题。考虑到甲库运往各工地的运费都较乙库的便宜,故应先尽甲库的水泥发送。因此,前两个不等式约束可变成等式约束,即
x
1
+
x
2
+
x
3
=
1500
x
4
+
x
5
+
x
6
=
1200
x
1
+
x
5
=
900
x
2
+
x
5
=
600
x
3
+
x
6
=
1200
\begin{aligned} &x_1+x_2+x_3=1500\\ &x_4+x_5+x_6= 1200\\ &x_1+x_5=900\\ &x_2+x_5=600\\ &x_3+x_6=1200 \end{aligned}
x1+x2+x3=1500x4+x5+x6=1200x1+x5=900x2+x5=600x3+x6=1200
从而本例是一个具有等式约束条件的最优化问题。
当然,目标函数和约束条件并不限于线性情况,而可能是变量的各种非线性函数。一般地,目标函数用
J
\pmb J
J 表示:
J
(
x
)
=
f
(
x
)
(1)
\pmb{J}(\pmb{x})=f(\pmb{x})\tag{1}
J(x)=f(x)(1)
约束条件为等式约束:
g
i
(
x
)
=
0
,
i
=
1
,
2
,
⋯
,
m
(2)
g_i(\pmb{x})=0,i=1,2,\cdots,m\tag{2}
gi(x)=0,i=1,2,⋯,m(2)
和不等式约束:
h
j
(
x
)
≤
0
,
j
=
1
,
2
,
⋯
,
l
(3)
h_j(\pmb{x})\leq 0,j=1,2,\cdots,l\tag{3}
hj(x)≤0,j=1,2,⋯,l(3)
那么,最优化任务,是要在(2)、(3)的约束条件下,寻求
x
\pmb x
x,使(1)的目标函数取最优(最大或最小)值。上述最优化问题,由于变量
x
\pmb x
x 与时间无关,或在所讨论的时间区间内为常数,因此属于静态最优化问题。在最优控制系统中,由于受控对象是一个动态系统,所有变量都是时间的函数,所以这是动态最优化问题。在动态最优化问题中,目标函数不再是普通函数,而是时间函数的函数,称为泛函。例如在时间定义域
[
t
0
,
t
f
]
[t_0,t_f]
[t0,tf] 上的目标泛函为:
J
=
∫
t
0
t
f
L
[
x
(
t
)
,
u
(
t
)
,
t
]
d
t
(4)
\pmb {J} = \int_{t_0}^{t_f}\pmb{L}[\pmb {x}(t),\pmb{u}(t),t ]\mathrm{d}t\tag{4}
J=∫t0tfL[x(t),u(t),t]dt(4)
基本约束条件是受控对象的状态方程,如:
x
˙
(
t
)
=
f
[
x
(
t
)
,
u
(
t
)
,
t
]
(5)
\dot{\pmb{x}}(t) = \pmb {f}[\pmb{x}(t),\pmb{u}(t),t]\tag{5}
x˙(t)=f[x(t),u(t),t](5)
式中, J \pmb J J 为标量泛函,对每个控制函数都有一个值与之对应; L \pmb L L 为标量函数,它是矢量 x ( t ) \pmb{x}(t) x(t) 和 u ( t ) \pmb{u}(t) u(t) 的函数; x ( t ) \pmb{x}(t) x(t) 为 n n n 维状态矢量; u ( t ) \pmb {u}(t) u(t) 为 r r r 维控制矢量; f \pmb f f 为 n n n 维矢量函数。
最优控制问题是要在满足式(5)的约束条件下寻求最优控制函数
u
(
t
)
\pmb{u}(t)
u(t),使式(4)的目标泛函取极值(最大或最小)。
求解动态最优化问题的方法主要有古典变分法,极小(大)值原理及动态规划法等。
应当指出,在求解动态最优化问题中,若将时域
[
t
0
,
t
f
]
[t_0,t_f]
[t0,tf] 分成许多有限区段,在每一分段内,将变量近似看作常量,那么动态最优化问题可近似按分段静态最优化问题处理,这就是离散时间最优化问题。
2、研究最优控制的前提条件
2.1 给出受控系统的动态描述,即状态方程
连续时间系统
x
˙
(
t
)
=
f
[
x
(
t
)
,
u
(
t
)
,
t
]
离散时间系统
x
(
k
+
1
)
=
f
[
x
(
k
)
,
u
(
k
)
,
k
]
(6)
\begin{aligned} &连续时间系统\quad \dot{\pmb{x}}(t)=f[\pmb{x}(t),\pmb{u}(t),t]\\ &离散时间系统\quad \pmb{x}(k+1)=f[\pmb{x}(k),\pmb{u}(k),k] \end{aligned}\tag{6}
连续时间系统x˙(t)=f[x(t),u(t),t]离散时间系统x(k+1)=f[x(k),u(k),k](6)
2.2 明确控制作用域
在工程实际问题中,控制矢量
u
(
t
)
\pmb{u}(t)
u(t) 往往不能在
R
r
\pmb{R}^r
Rr 空间中任意取值,而必须受到某些物理限制,例如,系统中的控制电压,控制功率不能取的任意大。即
u
(
t
)
\pmb {u}(t)
u(t) 要满足某些约束条件,记:
φ
j
(
x
,
u
)
≤
0
,
j
=
1
,
2
,
⋯
,
m
(
m
≤
r
)
(7)
\varphi_j(\pmb{x},\pmb{u})\leq 0,\quad j=1,2,\cdots,m(m\leq r)\tag{7}
φj(x,u)≤0,j=1,2,⋯,m(m≤r)(7)
这时,在
R
r
\pmb{R}^r
Rr 空间中,把所有满足上式的点
u
(
t
)
\pmb{u}(t)
u(t) 的集合,记作:
U
=
{
u
(
t
)
∣
φ
j
(
x
,
u
≤
0
)
}
(8)
U=\{\pmb{u}(t)|\varphi_j(\pmb{x},\pmb{u}\leq0)\}\tag{8}
U={u(t)∣φj(x,u≤0)}(8)
U
U
U 称为控制集。把满足
u
(
t
)
∈
U
(9)
\pmb{u}(t)\in U\tag{9}
u(t)∈U(9)
的 u ( t ) \pmb{u}(t) u(t) 称为容许控制。
2.3 明确初始条件
通常,最优控制系统的初始时刻
t
0
t_0
t0 是给定的。如果初始状态
x
(
t
0
)
\pmb{x}(t_0)
x(t0) 也是给定的,则称为固定始端。如果
x
(
t
0
)
\pmb{x}(t_0)
x(t0) 是任意的,则称自由始端。如果
x
(
t
0
)
\pmb{x}(t_0)
x(t0) 必须满足某些约束条件:
ρ
[
x
(
t
0
)
]
=
0
,
j
=
1
,
2
,
⋯
,
m
(
m
≤
n
)
(10)
\rho[\pmb{x}(t_0)]=0,j=1,2,\cdots,m(m\leq n)\tag{10}
ρ[x(t0)]=0,j=1,2,⋯,m(m≤n)(10)
相应的始端集为:
Ω
0
=
{
x
(
t
0
)
∣
ρ
[
x
(
t
0
)
]
=
0
}
(11)
\Omega_0=\{\pmb{x}(t_0)|\rho[\pmb{x}(t_0)]=0\}\tag{11}
Ω0={x(t0)∣ρ[x(t0)]=0}(11)
此时, x ( t 0 ) ∈ Ω 0 \pmb{x}(t_0)\in\Omega_0 x(t0)∈Ω0,则称为可变始端。
2.4 明确终端条件
类似于始端条件,固定终端是指终端时刻
t
f
t_f
tf 和终端状态
x
(
t
f
)
\pmb{x}(t_f)
x(tf) 都是给定的。
自由终端是在给定
t
f
t_f
tf 情况下,
x
(
t
f
)
\pmb{x}(t_f)
x(tf) 可以任意取值不受限制。
可变终端则是指
x
(
t
f
)
∈
Ω
f
\pmb{x}(t_f)\in\Omega_f
x(tf)∈Ωf 的情况。其中
Ω
f
=
{
x
(
t
f
)
∣
φ
j
[
x
(
t
f
)
]
=
0
}
(12)
\Omega_f=\{\pmb{x}(t_f)|\varphi_j[\pmb{x}(t_f)]=0\}\tag{12}
Ωf={x(tf)∣φj[x(tf)]=0}(12)
是由约束条件 φ j [ x ( t f ) ] = 0 \varphi_j[\pmb{x}(t_f)]=0 φj[x(tf)]=0 所形成的一个目标集。
2.5 给出目标泛函,即性能指标
对连续时间系统,一般表示为:
J
=
Φ
[
x
(
t
f
)
]
+
∫
t
0
t
f
L
[
x
(
t
)
,
u
(
t
)
,
t
]
d
t
(13)
\pmb{J}=\Phi[\pmb{x}(t_f)]+\int_{t_0}^{t_f}L[\pmb{x}(t),\pmb{u}(t),t]\mathrm{d}t\tag{13}
J=Φ[x(tf)]+∫t0tfL[x(t),u(t),t]dt(13)
对离散时间系统,一般表示为:
J
=
Φ
[
x
(
N
)
]
+
∑
k
=
k
0
N
−
1
L
[
x
(
k
)
,
u
(
k
)
,
k
]
(14)
\pmb{J}=\Phi[\pmb{x}(N)]+\sum_{k=k_0}^{N-1}L[\pmb{x}(k),\pmb{u}(k),k]\tag{14}
J=Φ[x(N)]+k=k0∑N−1L[x(k),u(k),k](14)
上述形式的性能指标由两部分组成,等式右边第一项反映对终端性能的要求,例如对目标的允许误差、脱靶情况等,称为终端指标函数;第二项中 L L L 为状态控制过程中对动态品质及能量或燃料消耗的要求等,称为动态指标函数。
最优控制问题,就是从可供选择的容许控制集 U U U 中,寻求一个控制矢量 u ( t ) \pmb{u}(t) u(t),使受控系统在时间域 [ t 0 , t f ] [t_0,t_f] [t0,tf] 内,从初态 x ( t 0 ) \pmb{x}(t_0) x(t0) 转移到终态 x ( t f ) \pmb{x}(t_f) x(tf) 时,性能指标 J J J 取最小(大)值。满足上述条件的控制 u ( t ) \pmb{u}(t) u(t) 称为最优控制 u ⋆ ( t ) \pmb{u}^\star(t) u⋆(t)。在 u ⋆ ( t ) \pmb{u}^\star(t) u⋆(t) 作用下状态方程的解,称为最优轨线 x ⋆ ( t ) \pmb{x}^\star(t) x⋆(t)。沿最优轨线 x ⋆ ( t ) \pmb{x}^\star(t) x⋆(t),使性能指标 J J J 所达到的最优值,称为最优指标 J ⋆ J^\star J⋆。
按线性二次型性能指标设计的系统,因为是线性控制率,便于工程上实现,所以在实践中获得成功的应用。线性二次型性能指标的一般形式为:
J
=
1
2
x
T
(
t
f
)
Q
0
x
(
t
f
)
+
1
2
∫
t
0
t
f
[
x
T
(
t
)
Q
1
x
(
t
)
+
u
T
(
t
)
Q
2
u
(
t
)
]
d
t
和
J
=
1
2
x
T
(
N
)
Q
0
(
N
)
x
(
N
)
+
1
2
∑
k
=
k
0
N
−
1
[
x
T
(
k
)
Q
1
(
k
)
x
(
k
)
+
u
T
(
k
)
Q
2
(
k
)
u
(
k
)
]
J=\dfrac{1}{2}\pmb{x}^T(t_f)Q_0\pmb{x}(t_f)+\dfrac{1}{2}\int_{t_0}^{t_f}[\pmb{x}^T(t)Q_1\pmb{x}(t)+\pmb{u}^T(t)Q_2\pmb{u}(t)]\mathrm{d}t\\[2ex] 和\quad J=\dfrac{1}{2}\pmb{x}^T(N)Q_0(N)\pmb{x}(N)+\dfrac{1}{2}\sum_{k=k_0}^{N-1}[\pmb{x}^T(k)Q_1(k)\pmb{x}(k)+\pmb{u}^T(k)Q_2(k)\pmb{u}(k)]
J=21xT(tf)Q0x(tf)+21∫t0tf[xT(t)Q1x(t)+uT(t)Q2u(t)]dt和J=21xT(N)Q0(N)x(N)+21k=k0∑N−1[xT(k)Q1(k)x(k)+uT(k)Q2(k)u(k)]
式中, Q 0 , Q 1 , Q 2 Q_0,Q_1,Q_2 Q0,Q1,Q2 和 Q 0 ( N ) , Q 1 ( k ) , Q 2 ( k ) Q_0(N),Q_1(k),Q_2(k) Q0(N),Q1(k),Q2(k) 称为加权矩阵。