06.1 變分法與 Pontryagin 最大值原理#
本章導讀#
前面章節問「怎麼穩」;最佳控制問「怎麼最好」—— 最快登月、最少油耗、最短時間停車。 1956 年 Pontryagin 的最大值原理給出最佳控制的必要條件,是變分法的推廣。
淺顯說明#
微積分找「函數的最小值」(一個數),變分法找「路徑的最小值」(一條曲線)。 最佳控制再進一步:找「決策序列的最小值」(控制量 \(u(t)\) 怎麼隨時間變)。
就像最速降線問題(Bernoulli 問:什麼曲線讓彈珠滑得最快?), 最佳控制問:什麼控制策略讓火箭最省油?
正規理論#
最佳控制問題#
系統 \(\dot x = f(x, u)\) ,代價泛函:
- \(\varphi\) :終端代價(如誤差平方), \(L\) :運行代價(如油耗)。
- 目標:找 \(u(t)\) 使 \(J\) 最小, \(u \in U\) (允許控制集合,可能受限)。
變分法路線(無約束時)#
引入協態變數(costate) \(\lambda\) ,定義 Hamiltonian:
最佳解的必要條件(歐拉–拉格朗日式的推廣):
Pontryagin 最大值原理#
控制受限( \(u \in U\) )時, \(\partial\mathcal{H}/\partial u = 0\) 可能無內點解。 Pontryagin 的推廣:
最佳控制 \(u^*\) 必使 Hamiltonian 在 \(U\) 上最大化/最小化:
(協態方程與終端條件 \(\lambda(t_f) = \nabla\varphi(x(t_f))\) 同時成立。)
Bang-bang 控制#
若 \(\mathcal{H}\) 對 \(u\) 是線性的( \(\mathcal{H} = \cdots + \lambda^T b\,u\) ), 最佳解在 \(U\) 的邊界跳來跳去——全速前進或全速倒退,bang-bang 控制: 如冰箱壓縮機只有開/關、火箭推力只有全開/全關。
簡易範例:最短時間停車#
質點 \(\dot x_1 = x_2\) , \(\dot x_2 = u\) , \(|u| \le 1\) , 從 \(x(0) = (0, 0)\) 到 \(x(t_f) = (1, 0)\) ,最短時間 \(t_f\) 。
Hamiltonian: \(\mathcal{H} = 1 + \lambda_1 x_2 + \lambda_2 u\) (時間最小問題取 \(L = 1\) )。
最佳控制最小化 \(\mathcal{H}\) 對 \(u\) : \(u^* = -\operatorname{sign}(\lambda_2)\) ——bang-bang!
協態方程: \(\dot\lambda_1 = 0\) , \(\dot\lambda_2 = -\lambda_1\) ,故 \(\lambda_2\) 是線性函數, 至多變號一次。解:先全速後退、再全速前進(或反過來),中間切換一次。
直觀:要最快到目的地,油門只有全踩與全煞——沒有「溫柔駕駛」的餘地。
歷史典故#
- 1956 年 Pontryagin 提出最大值原理,見 1956-Pontryagin最大值原理.md—— 蘇聯學派用拓撲方法攻克控制受限的難題,與美國的 Bellman 雙雄並立。
- 變分法的根源(最速降線、Euler–Lagrange)見 ../../微積分/1744-Euler變分法.md。
習題#
- 最短時間爬升: \(\dot x_1 = x_2\) 、 \(\dot x_2 = u\) , \(|u| \le 1\) ,從 \((0,0)\) 到 \((0,1)\) 。 說明最佳策略。
- 證明: \(\mathcal{H}\) 對 \(u\) 線性且 \(U = [-1, 1]\) 時,最佳控制必在 \(\pm 1\) 。