引言
經(jīng)典變分法是一種特別強(qiáng)大的工具,但是它要求控制量必須可導(dǎo)且無(wú)界,這在很多問(wèn)題中都是不成立的。著陸器的軟著陸,衛(wèi)星的姿態(tài)控制,等等。從主觀上都可以分析出來(lái),著陸器的軟著陸控制,肯定是先讓著陸器自由落體,然后從某一個(gè)高度開(kāi)始反向噴氣,最后落地一瞬間速度剛好為0。衛(wèi)星的姿態(tài)控制肯定是當(dāng)姿態(tài)有偏差時(shí),用最大力矩控制一次,然后讓衛(wèi)星通過(guò)慣性 “轉(zhuǎn)” 一段時(shí)間再反向最大力矩控制一次。這個(gè)過(guò)程控制量肯定是不可導(dǎo)的。
因此,有很多最優(yōu)控制問(wèn)題,不能用變分法解決。所以,極小值原理和動(dòng)態(tài)規(guī)劃是比變分法更強(qiáng)大的工具。本文將介紹這兩種理論,下一篇博客將給出變分法、極小值原理和動(dòng)態(tài)規(guī)劃在解決最優(yōu)控制問(wèn)題時(shí)的等價(jià)性推導(dǎo)。(當(dāng)然,前提是這個(gè)最優(yōu)控制問(wèn)題本身可以用三種方法去解決才行;如果某個(gè)問(wèn)題不能用變分法,那談等價(jià)性是沒(méi)有意義的。)
極小值原理
在計(jì)算和使用的時(shí)候,極小值原理和變分法的公式很相似,只不過(guò)在哈密頓函數(shù)上做了改變。因?yàn)? u u u 可能不可導(dǎo),所以就沒(méi)有 ? H ? u = 0 \frac{\partial H}{\partial u}=0 ?u?H?=0 了,而是用別的方程或不等式去約束。下面直接通過(guò)一個(gè)問(wèn)題的形式給出極小值原理。
問(wèn)題:
min
?
u
(
t
)
∈
Ω
J
=
φ
[
x
(
t
f
)
,
t
f
]
+
∫
t
0
t
f
L
[
x
(
t
)
,
u
(
t
)
,
t
]
d
t
s
.
t
.
x
˙
(
t
)
=
f
[
x
(
t
)
,
u
(
t
)
,
t
]
,
x
(
t
0
)
=
x
0
,
ψ
[
x
(
t
f
)
,
t
f
]
=
0
\begin{align} \begin{aligned} & \min_{u(t)\in\Omega}{J=\varphi\left[x(t_f),t_f\right]+\int_{t_0}^{t_f}{L\left[x(t), u(t), t\right]}dt}\\ & s.t.\quad \dot{x}(t)=f\left[x(t), u(t), t\right], x(t_0)=x_0,\psi\left[x(t_f), t_ f\right]=0 \end{aligned} \end{align}
?u(t)∈Ωmin?J=φ[x(tf?),tf?]+∫t0?tf??L[x(t),u(t),t]dts.t.x˙(t)=f[x(t),u(t),t],x(t0?)=x0?,ψ[x(tf?),tf?]=0???
由極小值原理,該問(wèn)題實(shí)現(xiàn)最優(yōu)控制的必要條件是:
- 最優(yōu)狀態(tài)
x
?
(
t
)
x^*(t)
x?(t) 和最優(yōu)協(xié)狀態(tài)
λ
?
(
t
)
\lambda^*(t)
λ?(t) 滿足正則方程 (這里與變分法是一樣的)
λ ˙ ? ( t ) = ? ? H ( x ? , u ? , λ ? , t ) ? x x ˙ ( t ) = ? H ( x ? , u ? , λ ? , t ) ? λ = f [ x ? ( t ) , u ? ( t ) , t ] \begin{align} \begin{aligned} \dot{\lambda}^*(t)&=-\frac{\partial H(x^*,u^*,\lambda^*,t)}{\partial x}\\ \dot{x}(t)&=\frac{\partial H(x^*,u^*,\lambda^*,t)}{\partial \lambda}=f\left[x^*(t),u^*(t), t\right] \end{aligned} \end{align} λ˙?(t)x˙(t)?=??x?H(x?,u?,λ?,t)?=?λ?H(x?,u?,λ?,t)?=f[x?(t),u?(t),t]???
其中, H ( x , u , λ , t ) = L [ x ( t ) , u ( t ) , t ] + λ T ( t ) f [ x ( t ) , u ( t ) , t ] H(x,u,\lambda,t)=L\left[x(t), u(t), t\right]+\lambda^T(t)f\left[x(t), u(t), t\right] H(x,u,λ,t)=L[x(t),u(t),t]+λT(t)f[x(t),u(t),t] 為哈密頓函數(shù)。 - 在最優(yōu)狀態(tài) 最優(yōu)控制 以及最優(yōu)協(xié)變量上,對(duì)應(yīng)的哈密頓函數(shù)取得最小值
Tips: 這里與變分法不一樣了,因?yàn)? ? H ? u = 0 \frac{\partial H}{\partial u}=0 ?u?H?=0 不一定成立。一方面,導(dǎo)數(shù)不一定存在;另一方面,極值點(diǎn)對(duì)應(yīng)的 u u u 不一定在容許控制范圍內(nèi)。
H ( x ? ( t ) , u ? ( t ) , λ ? ( t ) , t ) = min ? u ( t ) ∈ Ω H ( x ? ( t ) , u ( t ) , λ ? ( t ) , t ) \begin{align} \begin{aligned} H(x^*(t), u^*(t), \lambda^*(t) ,t)=\min_{u(t)\in\Omega}{H(x^*(t), u(t), \lambda^*(t) ,t)} \end{aligned} \end{align} H(x?(t),u?(t),λ?(t),t)=u(t)∈Ωmin?H(x?(t),u(t),λ?(t),t)??? - 邊界條件與橫截條件
x ? ( t 0 ) = x 0 ψ [ x ? ( t f ) , t f ] = 0 λ ? ( t f ) = ? φ ? x ( t f ) + ? ψ T ? x ( t f ) ? γ \begin{align} \begin{aligned} x^*(t_0) &= x_0\\ \psi\left[x^*(t_f), t_f\right] &= 0\\ \lambda^*(t_f) &= \frac{\partial \varphi}{\partial x(t_f)} + \frac{\partial \psi^T}{\partial x(t_f)}\cdot\gamma \end{aligned} \end{align} x?(t0?)ψ[x?(tf?),tf?]λ?(tf?)?=x0?=0=?x(tf?)?φ?+?x(tf?)?ψT??γ??? - 當(dāng)
t
f
t_f
tf? 自由時(shí),哈密頓函數(shù)還要滿足終端時(shí)刻的橫截條件
H ( t f ? ) = ? ? φ ? t f ? γ T ? ψ ? t f \begin{align} \begin{aligned} H(t_f^*)=-\frac{\partial \varphi}{\partial t_f} - \gamma^T\frac{\partial \psi}{\partial t_f} \end{aligned} \end{align} H(tf??)=??tf??φ??γT?tf??ψ????
下邊直接給出不同條件下的極小值原理的必要條件的表格:
t f t_f tf? 固定的情況
t f t_f tf? 自由的情況
動(dòng)態(tài)規(guī)劃
動(dòng)態(tài)規(guī)劃也可以用來(lái)解決最優(yōu)控制問(wèn)題,但是它最初是被設(shè)計(jì)用來(lái)解決多級(jí)決策問(wèn)題的。比如一個(gè)地圖,好多節(jié)點(diǎn),研究怎么走代價(jià)最小的問(wèn)題。它的公式看起來(lái)其實(shí)并不是像是控制領(lǐng)域的算法,更像是計(jì)算機(jī)領(lǐng)域的。它后來(lái)被擴(kuò)展到離散系統(tǒng)的最優(yōu)控制問(wèn)題,每一個(gè)時(shí)間步就是一次決策。比如一共 10 秒,每秒鐘 100 次,那么一共就是 1000 次決策,如果這1000次都是最優(yōu)的,那么最后結(jié)果一定是最優(yōu)的。
更進(jìn)一步地,如果已知從 960 步到 1000 步的最優(yōu)決策 u 960 ? 1000 ? u^*_{960-1000} u960?1000??,那么不論前邊 959 步怎么控制,只要到第 960 步的時(shí)候,從 960 步到 1000 步的最優(yōu)決策一定是 u 960 ? 1000 ? u^*_{960-1000} u960?1000??。這便是動(dòng)態(tài)規(guī)劃的核心:尋找最優(yōu)子問(wèn)題和重疊的子結(jié)構(gòu)。很多計(jì)算機(jī)領(lǐng)域的經(jīng)典問(wèn)題都可以用動(dòng)態(tài)規(guī)劃建模和解決。(漢諾塔,走臺(tái)階等等,不搞計(jì)算機(jī),不懂)
所以,一般情況下,基于動(dòng)態(tài)規(guī)劃的控制方法都是從后往前逆序求解的。先算第 1000 個(gè)最優(yōu)決策是啥,然后算第 999 個(gè),最后一步一步反推回第 1 個(gè)。仿真或者應(yīng)用的時(shí)候再?gòu)牡?1 個(gè)到第 1000 個(gè)順序執(zhí)行。典型的例子就是線性二次型最優(yōu)控制 (LQR),這種問(wèn)題是有解析解的。
當(dāng)然動(dòng)態(tài)規(guī)劃也有連續(xù)系統(tǒng)的版本,它就是大名鼎鼎的 HJB 方程。HJB 方程揭示了所有最優(yōu)控制問(wèn)題的本質(zhì),并且只要解出 HJB 方程,最優(yōu)控制問(wèn)題就解決了 (當(dāng)然前提是有解)。問(wèn)題就在于有很多非線性的最優(yōu)控制問(wèn)題,或者模型不確定的最優(yōu)控制問(wèn)題,我們明知道 HJB 方程的解存在且唯一,但就是找不到。由此也衍生出一個(gè)新興的控制方法 (理論):自適應(yīng)動(dòng)態(tài)規(guī)劃 (Adaptive Dynamic Programming),也叫近似動(dòng)態(tài)規(guī)劃 (Approximate Dynamic Programming)。它的另外一個(gè)名字比較接地氣:強(qiáng)化學(xué)習(xí)控制。只不過(guò)說(shuō)強(qiáng)化學(xué)習(xí)控制一般是從計(jì)算機(jī)的角度看這個(gè)問(wèn)題,說(shuō) ADP 一般是從控制理論的角度看這個(gè)問(wèn)題。扯遠(yuǎn)了…
連續(xù)系統(tǒng) HJB 方程的推導(dǎo)
最優(yōu)控制問(wèn)題與 (1) 中所描述的相同??紤]到動(dòng)態(tài)規(guī)劃中的 “時(shí)序逆推” 的概念,取
J
[
x
(
t
)
,
t
]
=
φ
[
x
(
t
f
)
,
t
f
]
+
∫
t
t
f
L
[
x
(
τ
)
,
u
(
τ
)
,
τ
]
d
τ
\begin{align} \begin{aligned} J\left[x(t), t\right] = \varphi\left[x(t_f), t_f\right] + \int_{t}^{t_f}{L\left[x(\tau), u(\tau), \tau\right]}d\tau \end{aligned} \end{align}
J[x(t),t]=φ[x(tf?),tf?]+∫ttf??L[x(τ),u(τ),τ]dτ???
記為從
t
t
t 時(shí)刻到
t
f
t_f
tf? 時(shí)刻的代價(jià)函數(shù),這個(gè)問(wèn)題最終的目的是要求出
J
[
x
0
,
t
0
]
J\left[x_0, t_0\right]
J[x0?,t0?]。
改寫 (6),得到
J
[
x
(
t
)
,
t
]
=
∫
t
t
+
δ
t
L
[
x
(
τ
)
,
u
(
τ
)
,
τ
]
d
τ
+
φ
[
x
(
t
f
)
,
t
f
]
+
∫
t
+
δ
t
t
f
L
[
x
(
τ
)
,
u
(
τ
)
,
τ
]
d
τ
=
∫
t
t
+
δ
t
L
[
x
(
τ
)
,
u
(
τ
)
,
τ
]
d
τ
+
J
[
x
(
t
+
δ
t
,
t
+
δ
t
)
]
\begin{align} \begin{aligned} J\left[x(t), t\right] &= \int_{t}^{t+\delta t}{L\left[x(\tau), u(\tau), \tau\right]}d\tau+\varphi\left[x(t_f), t_f\right] + \int_{t+\delta t}^{t_f}{L\left[x(\tau), u(\tau), \tau\right]}d\tau\\ &=\int_{t}^{t+\delta t}{L\left[x(\tau), u(\tau), \tau\right]}d\tau+J\left[x(t+\delta t, t+\delta t)\right] \end{aligned} \end{align}
J[x(t),t]?=∫tt+δt?L[x(τ),u(τ),τ]dτ+φ[x(tf?),tf?]+∫t+δttf??L[x(τ),u(τ),τ]dτ=∫tt+δt?L[x(τ),u(τ),τ]dτ+J[x(t+δt,t+δt)]???
上式右邊第一項(xiàng)應(yīng)用積分中值定理,第二項(xiàng)應(yīng)用 Taylor 展開(kāi),得到
J
[
x
(
t
)
,
t
]
=
∫
t
t
+
δ
t
L
[
x
(
τ
)
,
u
(
τ
)
,
τ
]
d
τ
+
J
[
x
(
t
+
δ
t
,
t
+
δ
t
)
]
=
L
[
x
(
t
+
α
δ
t
)
,
u
(
t
+
α
δ
t
)
,
t
+
α
δ
t
]
δ
t
+
J
[
x
(
t
)
,
t
]
+
?
J
T
?
x
δ
x
+
?
J
?
t
δ
t
=
L
[
x
(
t
+
α
δ
t
)
,
u
(
t
+
α
δ
t
)
,
t
+
α
δ
t
]
δ
t
+
J
[
x
(
t
)
,
t
]
+
?
J
T
?
x
d
x
(
t
)
d
t
δ
t
+
?
J
?
t
δ
t
\begin{align} \begin{aligned} J\left[x(t), t\right] &=\int_{t}^{t+\delta t}{L\left[x(\tau), u(\tau), \tau\right]}d\tau+J\left[x(t+\delta t, t+\delta t)\right]\\ &=L\left[x(t+\alpha\delta t), u(t+\alpha\delta t), t+\alpha\delta t\right]\delta t+J\left[x(t), t\right]\\ & + \frac{\partial J^T}{\partial x}\delta x + \frac{\partial J}{\partial t}\delta t\\ &=L\left[x(t+\alpha\delta t), u(t+\alpha\delta t), t+\alpha\delta t\right]\delta t+J\left[x(t), t\right]\\ &+ \frac{\partial J^T}{\partial x}\frac{dx(t)}{dt}\delta t + \frac{\partial J}{\partial t}\delta t \end{aligned} \end{align}
J[x(t),t]?=∫tt+δt?L[x(τ),u(τ),τ]dτ+J[x(t+δt,t+δt)]=L[x(t+αδt),u(t+αδt),t+αδt]δt+J[x(t),t]+?x?JT?δx+?t?J?δt=L[x(t+αδt),u(t+αδt),t+αδt]δt+J[x(t),t]+?x?JT?dtdx(t)?δt+?t?J?δt???
整理,得
L
[
x
(
t
+
α
δ
t
)
,
u
(
t
+
α
δ
t
)
,
t
+
α
δ
t
]
+
?
J
T
?
x
d
x
(
t
)
d
t
+
?
J
?
t
=
0
\begin{align} \begin{aligned} L\left[x(t+\alpha\delta t), u(t+\alpha\delta t), t+\alpha\delta t\right] + \frac{\partial J^T}{\partial x}\frac{dx(t)}{dt}+ \frac{\partial J}{\partial t}=0 \end{aligned} \end{align}
L[x(t+αδt),u(t+αδt),t+αδt]+?x?JT?dtdx(t)?+?t?J?=0???
令
δ
t
→
0
\delta t\rightarrow0
δt→0,并應(yīng)用最優(yōu)性原理,有
?
J
?
[
x
(
t
)
,
t
]
?
t
=
?
min
?
u
∈
Ω
{
L
[
x
(
t
)
,
u
(
t
)
,
t
]
+
[
?
J
?
?
x
]
T
f
[
x
,
u
,
t
]
}
\begin{align} \begin{aligned} \frac{\partial J^*\left[x(t), t \right]}{\partial t}=-\min_{u\in\Omega}{\left\{L\left[x(t), u(t), t\right] + \left[\frac{\partial J^*}{\partial x}\right]^Tf\left[x,u,t\right]\right\}} \end{aligned} \end{align}
?t?J?[x(t),t]?=?u∈Ωmin?{L[x(t),u(t),t]+[?x?J??]Tf[x,u,t]}???
此時(shí),定義哈密頓函數(shù)
H
[
x
(
t
)
,
u
?
[
x
(
t
)
,
?
J
?
?
x
,
t
]
,
?
J
?
?
x
,
t
]
=
min
?
u
∈
Ω
H
[
x
(
t
)
,
u
(
t
)
,
?
J
?
?
x
,
t
]
H\left[x(t), u^*\left[x(t), \frac{\partial J^*}{\partial x}, t\right], \frac{\partial J^*}{\partial x}, t\right]=\min_{u\in\Omega}{H\left[x(t), u(t), \frac{\partial J^*}{\partial x}, t\right]}
H[x(t),u?[x(t),?x?J??,t],?x?J??,t]=u∈Ωmin?H[x(t),u(t),?x?J??,t]
則,HJB 方程可以簡(jiǎn)寫如下:
H
[
x
(
t
)
,
u
?
[
x
(
t
)
,
?
J
?
?
x
,
t
]
,
?
J
?
?
x
,
t
]
+
?
J
?
?
t
=
0
\begin{align} \begin{aligned} H\left[x(t), u^*\left[x(t), \frac{\partial J^*}{\partial x}, t\right], \frac{\partial J^*}{\partial x}, t\right]+\frac{\partial J^*}{\partial t}=0 \end{aligned} \end{align}
H[x(t),u?[x(t),?x?J??,t],?x?J??,t]+?t?J??=0???
同時(shí)滿足邊界條件:
J
?
[
x
(
t
f
)
,
t
)
f
]
=
φ
[
x
(
t
f
)
,
t
f
]
J^*\left[x(t_f), t)f\right]=\varphi\left[x(t_f), t_f\right]
J?[x(tf?),t)f]=φ[x(tf?),tf?]文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-500993.html
至此,極小值原理與動(dòng)態(tài)規(guī)劃基本理論的學(xué)習(xí)筆記就結(jié)束了 (不放例題了,敲公式太麻煩了)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-500993.html
到了這里,關(guān)于最優(yōu)控制 3:最優(yōu)控制理論中的極小值原理與動(dòng)態(tài)規(guī)劃的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!