跳轉到

06.1 變分法與 Pontryagin 最大值原理#

本章導讀#

前面章節問「怎麼穩」;最佳控制問「怎麼最好」—— 最快登月、最少油耗、最短時間停車。 1956 年 Pontryagin 的最大值原理給出最佳控制的必要條件,是變分法的推廣。

淺顯說明#

微積分找「函數的最小值」(一個數),變分法找「路徑的最小值」(一條曲線)。 最佳控制再進一步:找「決策序列的最小值」(控制量 \(u(t)\) 怎麼隨時間變)。

就像最速降線問題(Bernoulli 問:什麼曲線讓彈珠滑得最快?), 最佳控制問:什麼控制策略讓火箭最省油?

正規理論#

最佳控制問題#

系統 \(\dot x = f(x, u)\) ,代價泛函:

\[ J = \varphi(x(t_f)) + \int_0^{t_f} L(x, u)\, dt \]
  • \(\varphi\) :終端代價(如誤差平方), \(L\) :運行代價(如油耗)。
  • 目標:找 \(u(t)\) 使 \(J\) 最小, \(u \in U\) (允許控制集合,可能受限)。

變分法路線(無約束時)#

引入協態變數(costate) \(\lambda\) ,定義 Hamiltonian:

\[ \mathcal{H}(x, u, \lambda) = L(x, u) + \lambda^T f(x, u) \]

最佳解的必要條件(歐拉–拉格朗日式的推廣):

\[ \dot x = \frac{\partial \mathcal{H}}{\partial \lambda} = f(x, u) \quad\text{(狀態方程)} \]
\[ \dot\lambda = -\frac{\partial \mathcal{H}}{\partial x} \quad\text{(協態方程)} \]
\[ \frac{\partial \mathcal{H}}{\partial u} = 0 \quad\text{(控制最佳條件)} \]

Pontryagin 最大值原理#

控制受限( \(u \in U\) )時, \(\partial\mathcal{H}/\partial u = 0\) 可能無內點解。 Pontryagin 的推廣:

最佳控制 \(u^*\) 必使 Hamiltonian 在 \(U\) 上最大化/最小化:

\[ > u^* \in \arg\min_{u \in U} \mathcal{H}(x^*, u, \lambda^*) > \]

(協態方程與終端條件 \(\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\) 是線性函數, 至多變號一次。解:先全速後退、再全速前進(或反過來),中間切換一次。

直觀:要最快到目的地,油門只有全踩與全煞——沒有「溫柔駕駛」的餘地。

歷史典故#

習題#

  1. 最短時間爬升: \(\dot x_1 = x_2\) 、 \(\dot x_2 = u\) , \(|u| \le 1\) ,從 \((0,0)\) 到 \((0,1)\) 。 說明最佳策略。
  2. 證明: \(\mathcal{H}\) 對 \(u\) 線性且 \(U = [-1, 1]\) 時,最佳控制必在 \(\pm 1\) 。