第12回:最適レギュレータ(LQR)

Linear Quadratic Regulator

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$ の調整で応答特性を設計