古典制御(伝達関数)では 1 入力 1 出力(SISO)中心だったが、 状態空間法では多入力多出力(MIMO)系や高次元系を統一的に扱える。
基本形: \[ \dot{x}(t) = A x(t) + B u(t), \quad y(t) = C x(t) + D u(t) \] ここで
高次の微分方程式 \[ a_n y^{(n)} + \cdots + a_1 \dot{y} + a_0 y = b_m u^{(m)} + \cdots + b_0 u \] を、状態変数 \[ x_1 = y,\quad x_2 = \dot{y},\quad \dots,\quad x_n = y^{(n-1)} \] のように定義すると、1階の連立微分方程式として書ける。
伝達関数から機械的に状態空間モデルを構成する方法として、 可制御正準形・可観測正準形などがある。
入力 0 のとき: \[ \dot{x}(t)=A x(t) \] 解は \[ x(t) = e^{At} x(0) \] で与えられる(行列指数関数)。
入力 \(u(t)\) があるとき: \[ x(t) = e^{At}x(0) + \int_0^t e^{A(t-\tau)} B u(\tau)\,d\tau \]
行列 \(A\) の固有値 \(\lambda_i\) の実部がすべて負なら、系は漸近安定: \[ \mathrm{Re}(\lambda_i)<0\ \forall i \]
「入力 \(u(t)\) をうまく選ぶことで、任意の状態へ到達できるかどうか」の性質。
状態空間モデル \[ \dot{x}=Ax+Bu \] に対して、 \[ \mathcal{C} = \bigl[\,B,\ AB,\ A^2B,\ \dots,\ A^{n-1}B\,\bigr] \] を可制御行列と呼ぶ。
\[ \mathrm{rank}(\mathcal{C})=n \] であれば系は可制御である。
出力 \(y(t)\) を時間的に観測することで、状態 \(x(t)\) を一意に推定できるかどうか。
\[ \mathcal{O} = \begin{bmatrix} C \\ CA \\ CA^2 \\ \vdots \\ CA^{n-1} \end{bmatrix} \]
\[ \mathrm{rank}(\mathcal{O}) = n \] であれば系は可観測である。
状態フィードバック: \[ u(t) = -K x(t) + r(t) \] ここで \(K\) はフィードバックゲイン行列。
\[ \dot{x} = (A-BK)x + B r \] 閉ループ系の行列 \(A_{cl}=A-BK\) の固有値(極)を 適切な位置に配置するように \(K\) を設計する(極配置)。
極配置が可能であるためには、系が可制御であることが必要条件。
実際にはすべての状態成分を直接測れないことが多い。 そこで、出力 \(y(t)\) と入力 \(u(t)\) から状態を推定する 「ソフトウェア上の仮想センサ」がオブザーバ。
推定状態 \(\hat{x}(t)\) を \[ \dot{\hat{x}} = A\hat{x} + Bu + L(y - \hat{y}),\quad \hat{y} = C\hat{x} \] に従って計算する。 ここで \(L\) はオブザーバゲイン。
誤差 \(e = x - \hat{x}\) は \[ \dot{e} = (A-LC)e \] に従う。 よって、行列 \(A-LC\) の固有値を左半平面に配置するように \(L\) を選べば、 推定誤差は 0 に収束する。
オブザーバ設計が可能であるためには、系が可観測であることが必要。
現実の制御則では \[ u(t) = -K \hat{x}(t) + r(t) \] のように、推定状態 \(\hat{x}\) を用いてフィードバックを行う。
「可制御であり、かつ可観測であれば」 状態フィードバックゲイン \(K\) とオブザーバゲイン \(L\) を 独立に設計してもよい、というのが分離原理。