1. 最適制御問題
1.1 問題設定
システム $\dot{\mathbf{x}} = A\mathbf{x} + B\mathbf{u}$ に対し、評価関数:
$$J = \int_0^\infty (\mathbf{x}^T Q \mathbf{x} + \mathbf{u}^T R \mathbf{u}) dt$$
を最小化する制御入力 $\mathbf{u}(t)$ を求める。
1.2 重み行列の意味
- $Q$:状態の偏差に対するペナルティ(正半定値)
- $R$:制御入力に対するペナルティ(正定値)
2. LQR(Linear Quadratic Regulator)
2.1 最適制御則
最適な制御入力は状態フィードバックの形:
$$\mathbf{u}^* = -K\mathbf{x} = -R^{-1}B^T P \mathbf{x}$$
2.2 リッカチ方程式
$P$ は代数リッカチ方程式(ARE)の正定値解:
$$A^T P + PA - PBR^{-1}B^T P + Q = 0$$
2.3 最適コスト
$$J^* = \mathbf{x}_0^T P \mathbf{x}_0$$
3. 重み行列の選び方
3.1 基本的な考え方
- $Q$ が大きい → 状態を素早くゼロへ
- $R$ が大きい → 制御入力を節約
3.2 ブライソンの経験則
$$Q_{ii} = \frac{1}{x_{i,\max}^2}, \quad R_{jj} = \frac{1}{u_{j,\max}^2}$$
許容される最大値の逆2乗で正規化。
3.3 対角行列の場合
$$Q = \begin{bmatrix} q_1 & 0 \\ 0 & q_2 \end{bmatrix}, \quad R = r$$
4. LQRの性質
4.1 閉ループの安定性
$(A, B)$ が可安定、$(A, Q^{1/2})$ が可検出ならば、閉ループ系は漸近安定。
4.2 ロバスト性
LQR制御器は以下を保証:
- ゲイン余裕:∞ dB〜-6 dB(0.5倍〜∞倍)
- 位相余裕:±60°以上
4.3 リターン差等式
$$[I + K(jωI - A)^{-1}B]^*R[I + K(jωI - A)^{-1}B] \geq R$$
5. 計算方法
5.1 数値解法
MATLAB: `[K, P] = lqr(A, B, Q, R)`
Python (scipy): `K, P, E = lqr(A, B, Q, R)`
5.2 反復解法
リッカチ方程式の数値解法:
- 固有値分解法
- ニュートン法
- 不変部分空間法
6. 有限時間LQR
$$J = \mathbf{x}(t_f)^T S \mathbf{x}(t_f) + \int_0^{t_f} (\mathbf{x}^T Q \mathbf{x} + \mathbf{u}^T R \mathbf{u}) dt$$
時変リッカチ方程式を後退積分で解く。
7. まとめ
- LQRは二次評価関数を最小化する最適制御
- 解は状態フィードバック $\mathbf{u} = -R^{-1}B^T P \mathbf{x}$
- 代数リッカチ方程式を解いて $P$ を求める
- 自動的にロバスト性が保証される
- 重み $Q, R$ の調整で応答特性を設計