👁️ 04. オブザーバ設計と状態推定 / Observer Design & State Estimation

Note: 数式が正しく表示されない場合は GitHub版 を参照してください。


状態フィードバック制御を行うには、すべての状態 $x(t)$ を把握する必要があります。
しかし、実システムでは一部の状態しか直接測定できない場合が多くあります。
そこで、出力 $y(t)$ から状態 $x(t)$ を推定する仕組みが「オブザーバ(Observer)」です。

To apply state feedback control, all states $x(t)$ must be known.
In real systems, only part of the state may be directly measured.
Thus, an observer estimates $x(t)$ from the output $y(t)$.


🎯 学習目標 / Learning Goals

日本語 / Japanese English
オブザーバ(状態推定器)の構造を理解 Understand observer structure
フルオーダーオブザーバの設計式を説明 Explain full-order observer design
極配置により推定誤差収束を設計 Design estimation error convergence via pole placement
Pythonでオブザーバを設計・検証 Design & verify observers in Python

👁️ オブザーバの基本構造 / Basic Structure

オブザーバ(推定器)の状態方程式:

\[\dot{\hat{x}} = A \hat{x} + B u + L(y - \hat{y}), \quad \hat{y} = C \hat{x}\]
項目 意味 / Meaning
$\hat{x}$ 推定状態ベクトル / Estimated state vector
$L$ オブザーバゲイン / Observer gain
$y - \hat{y}$ 出力誤差(推定誤差)/ Output estimation error

✅ 誤差系のダイナミクス / Error Dynamics

推定誤差 $e = x - \hat{x}$ とすると:

\[\dot{e} = (A - LC)e\]

📘 設計例 / Design Example

対象システム / Target system:

\[A = \begin{bmatrix} 0 & 1 \\\\ -2 & -3 \end{bmatrix}, \quad B = \begin{bmatrix} 0 \\\\ 1 \end{bmatrix}, \quad C = \begin{bmatrix} 1 & 0 \end{bmatrix}\]

目標極 / Desired poles: $s = -5$, $s = -6$


🧪 Pythonによるオブザーバ設計 / Observer Design in Python

import numpy as np
import control

A = np.array([[0, 1], [-2, -3]])
C = np.array([[1, 0]])

# 目標極 / Desired poles
observer_poles = [-5, -6]

# オブザーバゲイン L 計算 / Compute observer gain L
L = control.place(A.T, C.T, observer_poles).T
print("Observer Gain L:")
print(L)

🔄 オブザーバ+制御器の統合構造 / Combined Structure

状態フィードバックが推定値 $\hat{x}(t)$ を使用する場合:

\[u(t) = -K \hat{x}(t) + r(t)\]
      +----------+     +----------+
r ───►│  -Kx̂ + r │     │ Observer │
      └────┬─────┘     └────┬────┘
           │               │
           ▼               ▼
         [Plant] ◄─────── y = Cx

⚠️ 設計のポイント / Design Notes

日本語 / Japanese English
$A - LC$ の極は制御系より左側(高速収束)に配置 Place $A - LC$ poles further left for faster convergence
制御の2~5倍の速さが目安 2–5× faster than control loop
可観測性がないと設計不可 Not possible if system is not observable
control.obsv(A, C) で検査可能 Check with control.obsv(A, C)

📚 参考資料 / References


⬅️ 前節 / Previous Section
状態フィードバックと極配置の理論を解説します。
Covers state feedback and pole placement theory.

📚 この章のREADMEへ / Back to Part 2 README
現代制御理論の全体構成と教材一覧に戻ります。
Return to the full Part 2 structure and materials list.