この記事ではシステムの状態方程式表現(状態空間実現, State-Space Realization)についてまとめます。状態方程式に基づく制御において数理モデルの導出は最初のステップです。状態方程式の表現について説明した動画は最下部に置いております。ここでは、状態方程式表現に関する式の説明と制御システムの分類、状態空間表現の導出方法(モデル化、常微分方程式・伝達関数からの変換)について述べます。
なお、状態フィードバック制御の全体像は次の記事でまとめています。
なぜ状態方程式が必要なのか?
制御工学を学ぶ際、多くの方が最初に伝達関数による表現を学びます。しかし、実際の制御システムでは状態方程式表現が不可欠となる場面が数多くあります。例えば産業用ロボットアームでは、複数のモータ(入力)と複数の関節角度(出力)が相互に影響し合う多入力多出力システムとなり、単一入力単一出力を前提とした伝達関数ではシステム全体の挙動を適切に表現することができません。
また、状態方程式は現代制御理論の基盤となっています。最適制御(LQR)、状態フィードバック制御、カルマンフィルタ、モデル予測制御といった手法は、いずれも状態方程式表現を前提としています。これらの手法により、従来の古典制御では困難だった多変数制御や、直接測定できない内部状態の推定・制御が可能になります。
さらに近年のAI・IoT時代において、機械学習との融合など、先端技術においても状態方程式が基礎となっています。このように状態方程式表現は、単なる数学的表現ではなく、実際のシステム制御において不可欠なツールです。
状態空間実現
それではシステムの状態方程式表現について説明していきます。状態方程式表現は制御工学において重要な制御対象のモデル表現形式です。ここでまず状態方程式の主な記号について説明していきます。

tは時間であり、応答を表すグラフの横軸で用いることになります。x は状態ベクトル、uは制御入力、yは制御出力です。
状態方程式では状態ベクトルを使ってシステムのダイナミクスを表現します。n がシステムのは次数であり、この次数が状態ベクトルの要素数に対応します。また A,B,C はそれぞれ行列とベクトルであり Aは n次の正方行列です。
Bは入力が1個の場合は n次 の縦ベクトル、入力が複数の場合は行列形式になります。Cは出力が一つの場合はn 次の横ベクトル複数の出力がある場合は行列になります。
そして状態方程式は左辺に状態ベクトルの微分、右辺にAx+Buという以下の形で表現されます。
![]()
図ではn が3の例も示しています 。n が3の場合には、状態の要素数は3つになり、 A 行列は3×3の行列(ここでは可制御正準形)、B と C はそれぞれベクトル形式になります。状態ベクトルが縦長のベクトルなのでその微分値も縦長のベクトルになります。(以下は n = 3の例)

なお、本記事では連続時間状態方程式について説明していますが、離散時間の状態方程式もあり、以下の形式で記述されます。

状態方程式の分類(時不変,時変,非線形)
次に状態方程式表現における制御システムの分類について説明します。
まず線形システムというのは先ほど示したようなA, B, C行列によって特徴づけられる形式になります。そして線形時不変システムと書いた場合は、この A, B, Cがそれぞれ固定の行列ベクトルとなっている場合を指しています。他方、線形時変システムという時にはこの A, B, C がそれぞれ時間の関数になっている場合を示しています。
基本的に線形システムといわれた時には線形時不変システムと思っておおよそ間違いないです。
次に非線形システムですが、非線形システムは一般的に図の下部ような形式で書かれます。このような形式で書けるものには線形システムのこの構造も含みますが、一般的に上部のシステムとは別形式で表します。

またこの非線形システムの中でも分類があります。右辺が f(x) + g(x)uと書かれている、uに関してアフィンな構造を持っている形式は非線形制御の分野で広く利用されている形式です。この他、ハンマシュタイン型非線形システムなどがあります。
数理モデリング
次に制御対象の状態方程式表現によるモデル化について考えます。通常、制御対象のモデルを求める際には2種類の方法を用います。ひとつは物理法則などから数理モデルを求める方法。もう一つは入力uと出力yのデータ列の組み合わせを利用することによって、数理モデルを求める方法です。これはシステム同定と呼ばれています。これらの手法によって、A, B, C のそれぞれの行列およびベクトルを求めることになります。

状態方程式と常微分方程式
次に2階の常微分方程式を状態方程式に変換する、変換の手法について説明します。
まずこのような常微分方程式を与えられた場合、z を状態のうちの1つ 、z の時間微分の状態のうちの2つ目、と定義すると、状態方程式表現は図のように可制御正準形と呼ばれる形式として求まります。
ただし、ここでは出力として z を用いた場合には、C = [1 0]となります。これが仮に z の時間微分値を出力信号としたい場合には、C = [0 1] とすれば良いです。

状態方程式と伝達関数
最後に伝達関数を状態方程式に変換するケースを紹介したいと思います。
例えばこのように伝達関数が与えられているときに、一つのアプローチとしてはこれを部分分数分解し、対角正準系呼ばれる一つの状態方程式表現に変換する方法があります。
部分分数展開することで 1/(s + a)の係数と、1/(s + b)の係数のそれぞれが求まります。求まった値はγ1、γ2としています
A,B,C の行列は図のように得られます。ここでは2次の例を示していますがより高次元の場合にも同じような流れでモデルを状態空間表現として得ることが可能です。

部分分数分解については次の記事で詳しく説明しています。
状態変数の選択例
状態方程式を作る際に重要なのが状態変数の選び方です。状態変数は、システムの動的な振る舞いを完全に記述するために必要な最小限の変数を選びます。以下に代表的な例を示します。
機械系(質量-バネ-ダンパ系)
状態変数:位置、
速度
2階微分方程式 を1階の連立微分方程式に変換するため、位置とその1階微分である速度を状態変数とします。
電気系(RLC回路)
状態変数:コンデンサ電圧
、
インダクタ電流
エネルギー蓄積素子(コンデンサ、インダクタ)に蓄えられるエネルギーを表す変数を選びます。これらは不連続に変化できないため、状態変数として適しています。
化学プロセス(タンクの液面制御)
状態変数:タンク内液面高さ、
温度
制御したい物理量(液面高さ、温度)そのものを状態変数とします。これにより、制御目標との関係が明確になります。
状態変数は物理的意味を持つ量を選ぶことで、制御系設計時の重み設定やゲイン調整が直感的に行えます。
状態方程式表現に関する動画・関連記事
以下は、状態方程式表現に関する動画になります。
本記事では、数理モデルの一つとして状態空間表現について述べました。状態空間表現の特徴や、分類、常微分方程式や伝達関数からの状態方程式の導出について説明しました。
次の記事では、状態方程式表現・状態空間表現されたモデルの可制御性、可観測性について説明しています。
モデルパラメータの入出力データからの導出にはシステム同定法が用いられます。
関連ブログ記事 (blog.control-theory.com)
- 状態フィードバック制御・状態方程式に基づく制御のまとめ — 極配置法・LQR・積分型サーボ系
- システムの可制御性・可観測性について — 状態方程式の基本性質
- システム同定による制御対象の数理モデル導出 — データからのモデル導出
- 部分分数分解:逆ラプラス変換や対角正準形の導出に利用
- ブロック線図 — 伝達関数のブロック線図表現
- ラウス・フルビッツの安定判別法 — 極を求めずに安定性を判別
- モデル誤差抑制補償器(MEC)の実装ガイド — モデル誤差に対するロバスト性向上
- Stability of State Equations(状態方程式の安定性)(in English) — 固有値・リアプノフ安定性
- Controllability and Observability(可制御性と可観測性)(in English)
- Discretization of Continuous-Time Control Systems(in English) — 連続時間系から離散時間系への変換
研究Webページ (www.control-theory.com)
動画ポータル
自己紹介
岡島 寛 (熊本大学工学部情報電気工学科准教授)
制御工学の研究をしています。モデル誤差抑制補償器,状態推定,量子化制御など
研究室HP
岡島研究室(システム制御 control-theory.com)
English Web Page
Hiroshi Okajima (Control Engineering control-theory.com)
制御動画ポータルサイト
制御工学チャンネル(伝達関数・状態方程式・MATLABなど)
電気動画ポータルサイト
YouTube