無料で始める制御工学講座⑤ 線形化と状態空間表現

制御工学
この記事は約7分で読めます。

状態空間表現とは

多入力多出力のシステムを考えたい

さて、これまでは暗に1入力1出力のシステムを考えてきました。

ただ現実には、複数の入出力を持つシステムはたくさんあります。

例えば、自動車の運転ではドライバーからの入力がハンドル操作とアクセル操作で少なくとも2つあり、これらに対する出力も駆動力、舵角など複数考えられます。

こうしたシステムの場合、複数の微分方程式が連立した形で表されるので、行列で微分方程式を表現したほうが分かりやすくなります。

行列による微分方程式の記述

そもそも行列ってどんなものやったっけ?という方のために、軽く例題を使って説明します。

例えば、下記のように、バネ定数\(k\)のバネ、粘性係数\(\gamma\)のダンパ、質量\(m\)の重りを持つマスバネダンパ系と呼ばれるモデルを考えてみます。

クルマのサスペンションもだいたいこんな構造ですね。

ここで入力として上から力\(u\)をかけるものとし、さらに状態変数をバネの変位\(x\)、変化速度\(v\)と置くと、下記の関係式が得られます。

$$ \begin{array}  m \ddot{x}&=&-\gamma v -kx+u\\ \dot{x}&=&v \end{array}$$

1つの2階線形微分方程式で書けるのに、何でわざわざ2つに式を分けたんや?と思われるかもしれませんが、実はこれがミソです。

ここで、状態変数を
$$\mathbf{x}:=\left[\begin{matrix} x\\v \end{matrix}\right]$$

というベクトルで定義してやると、上の微分方程式は下記のように表すことができます。

$$\dot{\mathbf{x}}=\left[\begin{matrix}0&&1\\ -\frac{k}{m}&&-\frac{\gamma}{m}\end{matrix}\right]\mathbf{x}+\left[\begin{matrix} 0\\\frac{1}{m}\end{matrix}\right]u$$

ここで、

$$\mathbf{A}:=\left[\begin{matrix}0&&1\\ -\frac{k}{m}&&-\frac{\gamma}{m}\end{matrix}\right]$$
$$\mathbf{B}:=\left[\begin{matrix} 0\\\frac{1}{m}\end{matrix}\right]$$

とおくと、結局、この系の挙動は

$$\dot{\mathbf{x}}=\mathbf{Ax}+\mathbf{B}u$$
という、1階の線形微分方程式の形で表すことができます。

すると、1階の線形微分方程式同様、その初期値応答は

$$\mathbf{x}(t)=e^{\mathbf{A}t}\mathbf{x}(0)$$
と表すことができます。

しれっと行列の指数関数というものが出てきていますが、定義は下記のとおりです。

$$e^{\mathbf{A}}=\sum_{n=0}^\infty\frac{\mathbf{A}^n}{n!}$$
まぁ、正直、手計算するのでなければ覚えてなくても差し支えありません。

状態空間表現

行列を使うと、連立微分方程式を1階の線形微分方程式として考えることができるというのを上で述べました。

状態空間表現は複数の内部状態や入出力をベクトルとして扱い、行列を使ってシンプルに表現したものです。

すなわち、状態変数を\(\mathbf{x}\in\mathbb{R}^n\)、入力を\(\mathbf{u}\in\mathbb{R}^m\)、出力を\(\mathbf{y}\in\mathbb{R}^l\)とおくと、行列\(\mathbf{A},\mathbf{B},\mathbf{C},\mathbf{D}\)を用いて

$$ \begin{array}  \dot{\mathbf{x}}&=&\mathbf{Ax}+\mathbf{Bu}\\ \mathbf{y}&=&\mathbf{Cx}+\mathbf{Du}\end{array}$$

と表現されます。1つ目の式を状態方程式、2つ目を出力方程式ともいいます。

先ほどのマスバネダンパ系では状態方程式が導出されたわけですが、例えば、変位\(x\)と変化速度\(v\)がどちらも観測できる場合は、

$$\mathbf{C}=\left[\begin{matrix}1&&0\\ 0&&1\end{matrix}\right]$$
として出力方程式を立てられますし、変位\(x\)の情報しか得られない場合には、

$$\mathbf{C}=\left[\begin{matrix}1&&0\end{matrix}\right]$$

として出力方程式が立てられます。

状態方程式は制御対象の物理的構造で決まりますが、出力方程式は、制御対象のどの情報が得られるか(どこにセンサがついているか)で決まります。

ここまでのまとめ

  • 状態空間表現では、複数の内部状態や入出力を持つシステムを表現できる
  • 行列を使って表現することで、1階の線形微分方程式として表現できる
  • 状態方程式は制御対象の物理的構造で決まり、出力方程式は観測できる情報(センサの位置や種類)などで決まる

本日のまとめ

制御対象を数理モデル化する際の考え方である線形化と、複数の入出力を持つシステムの表現方法である状態空間表現について書きました。

次回は、状態空間表現から伝達関数を求めることもできるのでその辺の話と、システムの構造的に制御可能かどうか(可制御性)、欲しい情報が得られるかどうか(可観測性)という性質について書いていこうと思います。

参考図書

基本的な行列計算の話は、下記のページでおさらいできます。

旧課程(-2012年度)高等学校数学C/行列 - Wikibooks

ただ、より詳しく正確に理解するには線形代数の知識が不可欠なので、下記の本も助けになるかと思います。

Comments