状態空間 (制御理論)
状態空間（じょうたいくうかん、）あるいは状態空間表現（じょうたいくうかんひょうげん、）は、制御工学において、物理的システムを入力と出力と状態変数を使った一階連立微分方程式で表した数学的モデルである。入力、出力、状態は複数存在することが多いため、これらの変数はベクトルとして表され、行列形式で微分代数方程式を表す（力学系が線形で時不変の場合）。状態空間表現は時間領域の手法であり、これを使うと複数の入力と出力を持つシステムをコンパクトにモデル化でき、解析が容易になる。周波数領域では、formula_1 個の入力と formula_2 個の出力があるとき、システム全体を現すには formula_3 個のラプラス変換を書かなければならない。周波数領域の手法とは異なり、状態空間表現では、線形性と初期値がゼロという制限は存在しない。「状態空間」は、その次元軸が個々の状態変数に対応することから名づけられている。システムの状態はこの空間内のベクトルとして表現される。
状態変数は、任意の時点でシステム全体の状態を表せるシステム変数群の最小の部分集合である。状態変数群は線形独立でなければならない。すなわち、ある状態変数を別の状態変数群の線形結合で表すことはできない。システムを表現するのに必要な状態変数の最小個数 formula_4 は、一般にそのシステムを定義する微分方程式の次数に等しい。システムが伝達関数形式で表されるとき、状態変数の最小個数は伝達関数を適切に約分したときの分母の次数に等しい。状態空間実現（state space realization）を伝達関数形式に変換することで、システムについての内部情報を失う可能性があるが、状態空間実現では不安定なはずなのに安定しているシステムを説明できることがある。電気回路では、状態変数の数は回路内のエネルギー蓄積部品（コンデンサやコイル）の個数と同じであることが多い（常にそうとは限らない）。
formula_1 個の入力変数、formula_2 個の出力変数、formula_4 個の状態変数の状態空間表現の一般形は次のようになる。
(t) = A(t) \mathbf{x}(t) + B(t) \mathbf{u}(t)
ここで、
(t) := {d\mathbf{x}(t) \over dt}.
formula_9 を「状態ベクトル」、formula_10 を「出力ベクトル」、formula_11 を「入力（または制御）ベクトル」、formula_12 を「状態行列」、formula_13 を「入力行列」、formula_14 を「出力行列」、formula_15 を「直達行列」と呼ぶ。単純化するため、formula_15 は零行列とされることが多い。すなわち、システムには直達項（feedthrough term）が無いものとして扱う。なお、この一般形式では全ての行列は時変とみなされ、その要素は時と共に変化するものとされている。時変数 formula_17 は連続的（formula_18）でも離散的（formula_19）でもよい。後者の場合は時変数を formula_20 で表すことが多い。時変か時不変か、連続か離散かによって、状態空間モデルの表現は以下のように変化する。
システムのさまざまな特性（可制御性、可観測性、安定性）は、行列 A、B、CとDに決められる。
連続時不変状態空間モデルの伝達関数は、次のように導出できる。
まず、次の式
のラプラス変換を求める。
次に formula_21 に着目すると次のように変形できる。
これを使って、出力方程式の formula_21 を置き換える。
となる。伝達関数 formula_23 はシステムの出力と入力の比であるから、次のようになる。
従って、上で求めた formula_24 で置き換えれば formula_25 が約分され、次の式が得られる。
式の中には、formula_26がformula_27 の行列式であり、formula_28がformula_27の余因子行列である。
formula_23 は明らかに formula_2 formula_32formula_1 の次元を持ち、全体で formula_34 個の要素から成る。従って、個々の入力に対して formula_2 個の伝達関数があり、それぞれが個々の出力に対応している。そのため、複数入力/複数出力システムでは状態空間表現の方が好まれる。
なお、formula_26は特性多項式と呼ばれる。その多項式の根（固有値）から、システムの伝達関数の極が得られる。それらの極を使って、そのシステムの安定性を解析できる。formula_37 の分子にあるゼロも同様に、システムが最小位相かどうかの判定に使うことができる。
formula_38を計算するため、下記のアルゴリズムがある。
その中には、
または
最後の等式は、前の演算の精度を検査することができる。
プロパーな伝達関数（「厳密にプロパー」ではない）の実現も容易に得られる。その場合伝達関数を、厳密にプロパーな部分と定数部分という2つの部分に分割するというトリックを用いる。
厳密にプロパーな伝達関数は上述した方法で正準状態空間実現に変換できる。定数の状態空間実現が formula_39 であることは明らかである。以上から、行列 "A", "B", "C" の状態空間実現は厳密にプロパーな部分から得られ、行列 "D" は定数部分から得られる。
もう少し判りやすくするため、例を挙げて説明する。
この伝達関数から、次の可制御実現が得られる。
出力が入力に直接依存している点に注意されたい。これは伝達関数の formula_40 定数部分によるものである。
従って、状態の可制御性（controllability）条件は、許容範囲内の入力で、ある有限の時間をかければ状態をある初期値から特定の値へと変化させることが可能であることを暗に示している。連続時不変状態空間モデルが制御可能（controllable）であるとは、次が成り立つ場合である。
可観測性（observability）とは、システムの外部出力を観測することでシステムの内部状態を推測可能かどうかの尺度である。システムの可観測性と可制御性は数学的な双対である。
連続時不変状態空間モデルが観測可能（observable）であるとは、次が成り立つ場合である。
なお、Rankとは行列内の線形独立な列の数である。
厳密にプロパー（strictly proper）な伝達関数は、次のようにして容易に状態空間に変換可能である。
伝達関数を展開して分子と分母の全ての係数を明らかにする。これは、次のような形式になる。
これらの係数を以下のように直接に状態空間モデルに挿入できる。
formula_41
この状態空間実現を可制御正準形式（controllable canonical form）と呼ぶ。「可制御」とされるのは、得られるモデルが可制御であることが保証されているためである。
伝達関数の係数を使って、次のような正準形式も構築可能である。
formula_42
この状態空間実現を可観測正準形式（observable canonical form）と呼ぶ。「可観測」とされるのは、得られるモデルが可観測であることが保証されているためである。
安定性については、外部的な安定に関するBIBO安定性があり、内部的な安定に関するリアプノフ安定性と漸近安定性など平衡状態の安定性もある。非線形システムの平衡状態は唯一ではないが、線形システムの状態行列A(t)が可逆的であるとき平衡状態がformula_43しかない。
BIBO安定性はシステムの零状態応答を着目し、平衡状態の安定性はシステムの零入力応答を着目する。なお、リアプノフ安定性は、力学系の安定性理論の基礎である。安定性の判定には、状態行列Aとの密接な関係がある。
BIBO安定性は、入力は有界するとき出力は必ず有界であること。これは、不安定な極がゼロによって打ち消される場合と考えられる。
システムをプロパーな伝達関数formula_44としてモデル化するとき、BIBO安定の必要十分条件は、システムの極が全部複素平面の左平面になければならないこと、または極が全部負の実部を持つこと。
状態空間の原点はリアプノフ安定の平衡状態である上に、次を満たすformula_45が存在すれば、状態空間の原点は時刻formula_46の漸近安定状態という。
formula_47はformula_46と関係ないとき、状態空間の原点は"一様漸近安定"状態という。
LTIシステムが漸近安定する必要十分条件は、システムの固有値（Aの固有値）がすべて負の実部を持つ。典型的なフィードバックは、出力に行列 "K" をかけたものをシステムの入力とする。
system: formula_49
"K" 内の値には制限はないので、負の値することで容易にネガティブ・フィードバック（負帰還）となる。負の符号は単に表記上の問題であって、式にそれが現われなくとも最終的な結果には何の影響もない。
(t) = A \mathbf{x}(t) + B \mathbf{u}(t)
formula_50
この式の入力をフィードバックに置き換えると次の式になる。
(t) = A \mathbf{x}(t) + B K \mathbf{y}(t)
formula_51
出力方程式を formula_52 について解き、その結果を状態方程式に当てはめると次のようになる。
(t) = \left(A + B K \left(I - D K\right)^{-1} C \right) \mathbf{x}(t)
formula_53
この場合の利点は、formula_54 の固有値分解を使って "K" を適切に設定することで "A" の固有値を制御できる点である。これは、開ループ系が制御可能であるか、または "A" の不安定な固有値を "K" を適切に設定することで安定にできるということを前提としている。
比較的一般的な単純化として、"D" を除去し、"C" を単位元にすると、次のような式が得られる。
(t) = \left(A + B K \right) \mathbf{x}(t)
formula_55
こうすると、固有値分解は formula_56 についてのみ行えばよい。
フィードバックに加えて、入力 formula_57 がある場合、formula_58 となる。
(t) = A \mathbf{x}(t) + B \mathbf{u}(t)
formula_50
この式に当てはめると、次のようになる。
(t) = A \mathbf{x}(t) - B K \mathbf{y}(t) + B \mathbf{r}(t)
formula_60
出力方程式を formula_52 について解き、その結果を状態方程式に当てはめると次のようになる。
(t) = \left(A - B K \left(I + D K\right)^{-1} C \right) \mathbf{x}(t) + B \left(I - K \left(I + D K\right)^{-1}D \right) \mathbf{r}(t)
formula_62
比較的一般的な単純化として、"D" を除去すると、次のような式が得られる。
(t) = \left(A - B K C \right) \mathbf{x}(t) + B \mathbf{r}(t)
formula_63
古典的な線形システムとして、一次元の移動する物体を考える。壁にバネで繋がれた物体が水平な平面上を移動する場合、ニュートン力学では次の式で表される。
ここで
この場合の状態方程式は次のようになる。
(t) \\ \mathbf{\dot{x_2}}(t) \end{matrix} \right] = \left[ \begin{matrix} 0 & 1 \\ -\frac{k_2}{m} & -\frac{k_1}{m} \end{matrix} \right] \left[ \begin{matrix} \mathbf{x_1}(t) \\ \mathbf{x_2}(t) \end{matrix} \right] + \left[ \begin{matrix} 0 \\ \frac{1}{m} \end{matrix} \right] \mathbf{u}(t)
formula_71
ここで、
可制御性を評価すると、次のようになる。
したがって、formula_68 についても formula_70 についてもフルランクである。
可観測性を評価すると、次のようになる。
したがって、フルランクである。以上から、このシステムは制御可能で、かつ観測可能である。
より普遍的な状態空間モデルの形式は次のように表される。
(t) = \mathbf{f}(t, x(t), u(t))
formula_78
1つ目が状態方程式、2つ目が出力方程式である。formula_79 が状態と入力の線形な組合せなら、前述のような行列で表現できる。関数の引数である formula_67 は、入力のないシステムでは省略できる。
古典的な非線形システムとして、力を加えない単純な振り子を考える。
ここで、
すると、状態方程式は次のようになる。
ここで、
状態方程式は、次のようにも書き表せる。
システムの平衡/安定点は formula_90 のときであり、従って振り子の平衡点は以下が成り立つ場合である。
ここで "n" は整数である。