状態空間表現と現代制御
伝達関数では届かない多入力多出力や内部状態を、状態方程式で一気に扱えます。可制御性・極配置・オブザーバまで、なぜ設計できるのかを原理から掴めます。
- 1.状態方程式 x' = Ax + Bu, y = Cx + Du は系の内部状態ベクトルを直接記述する。安定性は A の固有値(極)の実部が全て負かどうかで決まる。
- 2.可制御性は入力で全状態を動かせるか、可観測性は出力から全状態を復元できるかを問う。可制御性・可観測性行列がフルランクなら成立し、状態フィードバック u = -Kx の極配置が可能になる。
- 3.状態が直接測れないときはオブザーバ(状態推定器)で x̂ を作る。分離定理により、フィードバック極と推定器極は独立に設計してよい。
伝達関数の限界と状態空間の発想
古典制御は入力と出力の関係を伝達関数(ラプラス変換の比)で表し、周波数特性や安定性を論じます。しかしこの見方は系を「入力を入れると出力が出る箱」として外から眺めるだけで、箱の内部で何が起きているかを陽に扱いません。多入力多出力(MIMO)の系や、内部に隠れた振る舞いを持つ系では、この外部記述だけでは設計が行き詰まります。
現代制御(modern control)の出発点は、系を内部状態ベクトル x で記述し直すことです。状態とは「ある時刻での値と、それ以降の入力が決まれば、将来の挙動を一意に定めるのに必要十分な情報」で、力学系ならば位置と速度、電気回路ならばコンデンサ電圧とインダクタ電流などが該当します。状態を並べたベクトルの時間微分を、状態自身と入力の一次結合で書いたものが状態方程式です。
状態方程式(連続時間・線形時不変):
x'(t) = A x(t) + B u(t) … 状態方程式
y(t) = C x(t) + D u(t) … 出力方程式
x : 状態ベクトル(n 次元) A : システム行列 (n×n)
u : 入力ベクトル(m 次元) B : 入力行列 (n×m)
y : 出力ベクトル(p 次元) C : 出力行列 (p×n)
D : 直達行列 (p×m, 多くの系で 0)
一本の高階微分方程式は、各階の導関数を状態成分に割り当てることで、この一階の連立方程式(ベクトル形式)へ必ず変換できます。n 階の系は n 個の状態を持ち、系の次数と状態ベクトルの次元が一致します。
A の固有値が系の運命を決める
入力を止めた(u = 0)ときの解は x(t) = exp(A t) x(0) で、行列指数関数 exp(A t) が状態を時間発展させます。この振る舞いを支配するのが行列 A の固有値です。固有値 λ に対する解の成分は exp(λ t) の形で伸縮するため、安定性は固有値の実部の符号で決まります。
固有値 λ = σ + jω による自由応答の成分:
exp(λ t) = exp(σ t) · ( cos(ω t) + j sin(ω t) )
σ < 0 → 振幅が減衰(安定)
σ = 0 → 振幅が一定(限界安定)
σ > 0 → 振幅が発散(不安定)
伝達関数の「極」は、状態空間では A の固有値に対応します。したがって漸近安定の条件は「A の全固有値の実部が負」、すなわち全ての極が複素平面の左半面にあることです。離散時間系 x[k+1] = A x[k] + B u[k] では判定が変わり、固有値の絶対値が全て 1 未満(単位円の内側)であることが安定条件になります。
同じ入出力関係を持つ系でも、状態変数の取り方は無数にあります。正則な変換行列 T で座標を z = T x と置き換えると、(A, B, C) は (T A T⁻¹, T B, C T⁻¹) に変わりますが、固有値・可制御性・可観測性・入出力特性は不変です。これを相似変換と呼び、対角正準形や可制御正準形など、目的に応じて扱いやすい表現を選べます。逆に「状態」に物理的意味を求めすぎないことも大切です。
可制御性 ── 入力で全状態を動かせるか
状態フィードバック設計に踏み込む前に、そもそも入力 u で状態 x を意のままに動かせるのかを問う必要があります。これが可制御性(controllability)です。厳密には「任意の初期状態から任意の目標状態へ、有限時間で移せるか」という性質で、判定には可制御性行列 Uc を使います。
可制御性行列(n 次元系):
Uc = [ B , A B , A² B , … , A^(n-1) B ]
rank(Uc) = n ⇔ 系は可制御
直感的には、入力の効き方 B と、それが系のダイナミクス A によって各方向へ波及していく様子(A B, A² B, …)を積み上げ、それらが状態空間の全 n 方向を張れるかを見ています。フルランクに満たなければ、入力をどう与えても決して動かせない状態の方向(不可制御部分空間)が残ります。
可観測性 ── 出力から全状態を読めるか
もう一つの柱が可観測性(observability)です。これは「出力 y の時間履歴だけから、初期状態 x(0) を一意に決定できるか」という性質で、後述のオブザーバが成立する前提になります。判定には可観測性行列 Uo を用います。
可観測性行列(n 次元系):
Uo = [ C ; C A ; C A² ; … ; C A^(n-1) ] (縦に積む)
rank(Uo) = n ⇔ 系は可観測
可制御性行列を横に並べたのに対し、可観測性行列は C, C A, … を縦に積みます。フルランクでなければ、出力にまったく影響を与えない状態方向(不可観測部分空間)が存在し、その成分は外から見分けられません。可制御性と可観測性は、行列の転置を通じて数学的に双対な関係にあり、一方の結果を他方に読み替えられます。
| 性質 | 問い | 判定条件 | 成立しないと |
|---|---|---|---|
| 可制御性 | 入力で全状態を動かせるか | rank(Uc) = n | 極配置できない方向が残る |
| 可観測性 | 出力から全状態を復元できるか | rank(Uo) = n | 推定できない状態が残る |
| 安定性 | 自由応答が減衰するか | A の固有値の実部が全て負 | 状態が発散する |
可制御でない、あるいは可観測でないモードは、伝達関数を作る過程で分子・分母の共通因子として約分され、外部記述から消えます。伝達関数が安定に見えても、約分で隠れた不安定モードが内部に残っていれば系は実際には発散し得ます。状態空間で内部を直接見ることの意義がここにあります(可制御かつ可観測な部分だけが伝達関数に現れる、というカルマンの正準分解)。
状態フィードバックと極配置
系が可制御なら、状態を測って入力に戻す状態フィードバック u = -K x を組めます。これを状態方程式へ代入すると、閉ループの挙動は次のようにまとまります。
状態フィードバック u = -K x を代入:
x' = A x + B u = A x + B(-K x) = (A - B K) x
→ 閉ループのシステム行列は A - B K
→ その固有値(閉ループ極)は K の選び方で決まる
つまりゲイン行列 K を調整すれば、閉ループ極 A - B K の固有値を望みの位置へ動かせます。これが極配置(pole placement)です。応答を速くしたければ極を左(負の方向)へ遠ざけ、振動を抑えたければ虚軸から離した実軸寄りに置く、といった設計が可能になります。
重要な定理として、系が可制御であることと、状態フィードバックで閉ループ極を任意の位置に配置できることは等価です。可制御でなければ、動かせない極が固定されたまま残ります。単入力系ではアッカーマンの公式で K を陽に計算でき、多入力系や最適性を課す場合は最適レギュレータ(LQR)で二次形式の評価関数を最小化する K を求めます。
閉ループ極を左半面の遠くへ置けば応答は速くなりますが、そのぶんゲイン K が大きくなり、入力 u が飽和したり、モデル誤差やノイズへの感度が悪化します。速応性と入力の大きさ・ロバスト性はトレードオフです。極配置は「どこにでも置ける」からこそ、置き場所の妥当性が設計者の腕の見せどころになります。LQR は評価関数を通じてこのバランスを系統的に扱う枠組みです。
オブザーバ ── 測れない状態を推定する
状態フィードバックは全状態 x が測定できる前提でした。しかし実際にはセンサの数やコストの制約で、測れるのは出力 y = C x の一部だけということが普通です。そこで、モデルと出力から状態を推定する仕組みがオブザーバ(状態推定器、observer)です。
素朴には、同じ A, B を使ったモデルを並走させて推定値 x̂ を計算すればよさそうですが、初期値のずれやモデル誤差が残ると推定はいつまでも実状態に追いつきません。そこで実出力 y と推定出力 C x̂ の差を訂正項として注入します。これがルーエンバーガ・オブザーバです。
ルーエンバーガ・オブザーバ:
x̂' = A x̂ + B u + L ( y - C x̂ )
~~~~~~~~~~~~~~ 出力の予測誤差で訂正
L : オブザーバゲイン行列(p 列ぶんの補正の強さ)
推定誤差を e = x - x̂ と定義してその時間微分を取ると、入力 u の項が打ち消し合い、誤差の従うダイナミクスがきれいに現れます。
推定誤差 e = x - x̂ のダイナミクス:
e' = x' - x̂' = (A - L C) e
→ 誤差は A - L C の固有値で減衰する
→ 系が可観測なら L で固有値を任意配置でき、e → 0 を保証できる
つまり可観測性はオブザーバ極 A - L C を自由に置くための条件であり、可制御性が状態フィードバック極を置く条件だったことと、転置を介してちょうど対をなします。実状態が測れなくても、推定した x̂ を使って u = -K x̂ とすれば、フィードバック制御が実現できます。
分離定理 ── 設計を2つに切り分けられる
推定値でフィードバックを組むと、閉ループには「制御の極(A - B K)」と「推定の極(A - L C)」が混ざり、互いに干渉して設計が難しくなりそうに見えます。しかし線形時不変系では、状態 x と誤差 e を並べた拡大系の行列がブロック三角形になり、全体の固有値が2つの集合の和に分離します。
拡大系 [x ; e] の固有値:
固有値の集合 = eig(A - B K) ∪ eig(A - L C)
~~~~~~~~~~~~ ~~~~~~~~~~~~
状態FBの極 オブザーバの極
→ 両者は互いに影響しない(分離定理 / separation principle)
これが分離定理です。実務上の意味は大きく、状態フィードバックゲイン K(極配置や LQR)とオブザーバゲイン L(極配置やカルマンフィルタ)を完全に独立に設計してよいことを保証します。設計指針として、オブザーバの収束は制御応答より十分速くしておく(A - L C の極を A - B K の極より左に置く)ことで、推定の遅れが制御性能を損なわないようにします。
- 安定条件: 連続時間は A の固有値の実部が全て負、離散時間は固有値の絶対値が全て 1 未満。
- 可制御性/可観測性:
Uc = [B, AB, …, Aⁿ⁻¹B]、Uo = [C; CA; …; CAⁿ⁻¹]がフルランク。両者は双対。 - 極配置の可否: 可制御 ⇔ 状態フィードバックで閉ループ極を任意配置できる。可観測 ⇔ オブザーバ極を任意配置できる。
- 閉ループ行列: 状態フィードバックで
A - B K、オブザーバ誤差でA - L C。 - 分離定理:
KとLは独立に設計可。全極は両者の固有値の和集合。
まとめ
現代制御は、系を伝達関数という外部記述ではなく、内部状態ベクトルの状態方程式 x' = Ax + Bu で捉え直すところから始まります。要点は、(1) 安定性は行列 A の固有値(極)の実部が全て負かどうかで決まること、(2) 入力で全状態を動かせるか(可制御性)と出力から全状態を復元できるか(可観測性)を可制御性・可観測性行列のランクで判定すること、(3) 可制御なら状態フィードバック u = -Kx で閉ループ極 A - B K を任意に配置でき(極配置)、(4) 状態が測れなくてもオブザーバで x̂ を推定し、可観測なら誤差の極 A - L C を自由に置けること、(5) 分離定理により制御ゲイン K と推定ゲイン L を独立に設計してよいこと。この枠組みは、電力変換器の制御(/power/)から組込みシステムの信号処理(/programming/)まで、内部状態を持つあらゆる動的システムの設計基盤になります。
信号処理・制御 Article
状態空間表現と現代制御を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
制御工学
比較で見る軸
難易度: advanced / カテゴリ: 信号処理・制御 / タグ数: 5
導入後に効く点
可制御性は入力で全状態を動かせるか、可観測性は出力から全状態を復元できるかを問う。可制御性・可観測性行列がフルランクなら成立し、状態フィードバック u = -Kx の極配置が可能になる。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- 信号処理・制御
- タグ数
- 5
判断チェックリスト
- 自社の用途が「制御工学 / 状態空間」に近いか確認する。
- 強みである「状態方程式 x' = Ax + Bu, y = Cx + Du は系の内部状態ベクトルを直接記述する。安定性は A の固有値(極)の実部が全て負かどうかで決まる。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。