🎛️ 03. 状態フィードバックと極配置 / State Feedback & Pole Placement

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


状態空間モデルを使うことで、システムの応答特性(安定性・速度・減衰など)を極の配置で設計できます。
本節では、状態フィードバック制御極配置法(Pole Placement)の理論・設計手法を解説します。

Using a state-space model, you can design system dynamics (stability, speed, damping) by placing poles.
This section covers the theory and methods of state feedback control and pole placement.


🎯 学習目標 / Learning Goals

日本語 / Japanese English
状態フィードバック制御の構造を理解する Understand the structure of state feedback control
極配置による応答設計を理解する Learn to design response by pole placement
可制御性が極配置の前提条件であることを説明できる Explain controllability as a prerequisite
Pythonで極配置制御器を設計できる Implement pole placement controller in Python

📐 状態フィードバックとは? / What is State Feedback?

構造 / Structure

\[u(t) = -K x(t) + r(t)\]

✅ 閉ループ系の方程式 / Closed-loop Equation

オリジナル系:

\[\dot{x} = A x + B u\]

フィードバック $u = -Kx + r$ を代入:

\[\dot{x} = (A - BK) x + Br\]

🧠 極配置の目的 / Purpose of Pole Placement

日本語 / Japanese English
極は安定性・応答速度・減衰を決定 Poles determine stability, speed, damping
左半平面にあれば安定 Stable if in the left-half plane
原点近い → 遅い応答 Near origin → slow response
左に遠い → 高速応答(ただしゲイン大) Far left → fast response (high gain risk)
複素極の虚部 → 振動特性 Imaginary part of complex poles → oscillations

✅ 極配置可能な条件 / Condition for Pole Placement


📘 設計例 / Example

2次系:

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

目標極(例): $s = -2$, $s = -5$


🧪 Pythonでの極配置 / Pole Placement in Python

import numpy as np
import control

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

# 目標極 / Desired poles
desired_poles = [-2, -5]

# フィードバックゲイン計算 / Compute feedback gain
K = control.place(A, B, desired_poles)
print("Gain K:", K)

# 閉ループ系の確認 / Check closed-loop poles
A_cl = A - B @ K
print("Closed-loop eigenvalues:", np.linalg.eigvals(A_cl))

📈 ステップ応答で確認 / Step Response Check

C = np.array([[1, 0]])
D = np.array([[0]])
sys_cl = control.ss(A_cl, B, C, D)

import matplotlib.pyplot as plt
T, y = control.step_response(sys_cl)
plt.plot(T, y)
plt.title("Step Response of Closed-Loop System")
plt.grid(True)
plt.show()

💡 設計のヒント / Design Tips

日本語 / Japanese English
極を左に配置しすぎる → 高速だがゲイン大・ノイズ感度増加 Far left → fast but high gain & noise sensitivity
PID設計同様、速度・振動・安定性のバランス重要 Balance speed, oscillation, stability like PID
モデル精度・可制御性・最小位相性を確認 Verify model accuracy, controllability, minimum-phase

📚 参考資料 / References


⬅️ 前節 / Previous Section
可制御性と可観測性の基礎を解説します。
Covers the basics of controllability & observability.

➡️ 次節 / Next Section
オブザーバ設計と推定器の理論を解説します。
Covers observer design and estimation theory.

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