状態空間モデルを使うことで、システムの応答特性(安定性、速度、減衰など)を極の配置によって設計できます。本節では、状態フィードバック制御と極配置法(pole placement)の理論と設計手法を学びます。
制御入力を状態に基づいてフィードバックする構造:
\[u(t) = -K x(t) + r(t)\]これにより、閉ループ系の極(固有値)を任意に配置することが可能になります。
オリジナル系:
\[\dot{x} = A x + B u\]制御入力 $u = -Kx + r$ を代入すると:
\[\dot{x} = (A - BK) x + Br\]2次系:
\[A = \begin{bmatrix} 0 & 1 \\\\ -2 & -3 \end{bmatrix}, \quad B = \begin{bmatrix} 0 \\\\ 1 \end{bmatrix}\]目標極(例): $s = -2$, $s = -5$
control.place()
)import numpy as np
import control
A = np.array([[0, 1], [-2, -3]])
B = np.array([[0], [1]])
# 目標極
desired_poles = [-2, -5]
# フィードバックゲイン計算
K = control.place(A, B, desired_poles)
print("Gain K:", K)
# 閉ループ系の確認
A_cl = A - B @ K
print("Closed-loop eigenvalues:", np.linalg.eigvals(A_cl))
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()
• 極を左に配置しすぎると速くなるが、過大ゲインやノイズ感度上昇のリスク
• PID設計と同様、速度・振動・安定性のトレードオフを意識
• 最小位相系・可制御性・モデル精度が重要
• 「現代制御理論入門」森北出版
• Ogata, Modern Control Engineering
• Python: control.place(), control.ss(), step_response()