ギャラクシースーパーはてなブログ

ギャラクシースーパーはてなブログ

ギャラクシースーパーノヴァ子の日記だお

【現代制御】可制御性

はじめに

現代制御,面白いですよね. と言っても私は大人になってから社会人の教養として雰囲気を嗜んだだけなので,教科書を読みながら(フーン...そうなんだ...)程度の感想とともにスルーしてしまっているところが結構あります. 大人になってから独学したので...と言い訳しましたが,それ自体は理解の精度に対して本質的ではなく,仮に大学で履修していたとしても似たようなものだっただろうという気もします.

現代制御では線形時不変システムの可制御性を,可制御行列と呼ばれる正方行列の正則性を調べることによって判定することができます. 教科書によっては「可制御行列がフルランクであれば可制御」,もしくは「可制御行列の行列式が非零であれば可制御」といった書かれ方をされている本がありますが,どれも同じことです(えっ,という方は線形代数の教科書を読み返しましょう). 可制御行列を用いて可制御性が判定できることの証明は,易しい入門書では説明が省略されていることもあります.備忘録としてまとめておきます.

参考書籍

例題で学ぶ現代制御の基礎(Amazon)

この本は必要な情報のまとまりも良く,個人的に読みやすいと感じています.

線形時不変システムの状態空間表現

さて,1入力1出力である線形時不変システムを考える. 状態方程式と出力方程式は \begin{align} \dot{\boldsymbol{x}}(t)&=\boldsymbol{A}\boldsymbol{x}(t)+\boldsymbol{b}u(t) \\ y(t)&=\boldsymbol{c}^T\boldsymbol{x}(t) \end{align} である.ここで状態 \boldsymbol{x}(t) \boldsymbol{b}および \boldsymbol{c} n次元のベクトルであって, \boldsymbol{A} n\times n行列. 状態方程式の解は \begin{align} \boldsymbol{x}(t)=e^{\boldsymbol{A}t} \boldsymbol{x}_{0}+ \int_0 ^{t} e^{\boldsymbol{A}(t-\tau)} \boldsymbol{b} u(\tau) d\tau \end{align} です.

可制御性とその判定方法

システムが可制御であるとは,制御入力を与えることによって有限の時間で任意の初期状態から目標とする状態へ変化させられることを意味する. 可制御であるかどうかは, n\times nの正方行列 
\begin{bmatrix}
\boldsymbol{b} \ \boldsymbol{Ab} \ \cdots \ \boldsymbol{A}^{n-1}\boldsymbol{b}
\end{bmatrix}
が正則であるかどうかによって判定可能. この行列を可制御行列と呼ぶ.

なぜ可制御性の判定となるのか

必要性

システムが可制御であれば,可制御行列が正則となることを示す. 可制御であるシステムでは,適当な制御入力 u(t)を与えることで,ある時刻 t_fにて \boldsymbol{x}(t_f)=\boldsymbol{x}_fとなるから,

\begin{align} \boldsymbol{x}(t _ f) &=\boldsymbol{x} _ f =e^{\boldsymbol{A}t _ f} \boldsymbol{x} _ 0 + \int _ 0 ^{t _ f} e^{\boldsymbol{A}(t _ f-\tau)} \boldsymbol{b} u(\tau) d\tau \\ e^{\boldsymbol{A}t _ f} \boldsymbol{x} _ 0 - \boldsymbol{x} _ f &=-\int _ 0 ^{t _ f} e^{\boldsymbol{A}(t _ f-\tau)} \boldsymbol{b} u(\tau) d\tau \end{align}

ここで,行列指数関数の性質として, \left(e^{\boldsymbol{A}t _ f} \right)^{-1}= e^{-\boldsymbol{A}t _ f}であることに注意する.これを使って上式を書き換えると, \begin{align} \boldsymbol{x} _ 0 - e^{-\boldsymbol{A}t _ f}\boldsymbol{x} _ f &=-e^{-\boldsymbol{A}t _ f}\int _ 0 ^{t _ f} e^{\boldsymbol{A}(t _ f-\tau)} \boldsymbol{b} u(\tau) d\tau \\ &=-\int _ 0 ^{t _ f} e^{-\boldsymbol{A}t _ f+\boldsymbol{A}(t _ f-\tau)} \boldsymbol{b} u(\tau) d\tau \\ &=-\int _ 0 ^{t _ f} e^{-\boldsymbol{A}\tau} \boldsymbol{b} u(\tau) d\tau \end{align} となる.

また,行列指数関数は適当な時間関数を係数として n個の項の和に展開できる. \begin{align} e^{\boldsymbol{A}t} = r _ 0 (t) \boldsymbol{I} + r _ 1 (t) \boldsymbol{A} + \cdots + r _ {n-1}(t)\boldsymbol{A}^{n-1} \\ e^{-\boldsymbol{A}t} = r _ 0 (-t) \boldsymbol{I} + r _ 1 (-t) \boldsymbol{A} + \cdots + r _ {n-1}(-t)\boldsymbol{A}^{n-1} \end{align} これを使って \begin{align} \boldsymbol{x} _ 0 - e^{-\boldsymbol{A}t _ f}\boldsymbol{x} _ f &=-\int _ 0 ^{t _ f} \left(r _ 0 (-\tau) \boldsymbol{I} + r _ 1 (-\tau) \boldsymbol{A} + \cdots + r _ {n-1}(-\tau)\boldsymbol{A}^{n-1} \right) \boldsymbol{b} u(-\tau) d\tau \\ &= \left( -\int _ 0 ^{t _ f} r _ 0 (-\tau) \boldsymbol{b} u(\tau) d\tau \right) + \cdots + \left( -\int _ 0 ^{t _ f} r _ {n-1} (-\tau) \boldsymbol{A}^{n-1} \boldsymbol{b} u(\tau) d\tau \right) \\ &= s _ 0 \boldsymbol{b}+ \cdots + s _ {n-1} \boldsymbol{A}^{n-1} \boldsymbol{b} \\ &= \begin{bmatrix} \boldsymbol{b} & \boldsymbol{A}\boldsymbol{b} & \cdots & \boldsymbol{A}^{n-1}\boldsymbol{b} \end{bmatrix} \begin{bmatrix} s _ 0 \\ s _ 1 \\ \vdots \\ s _ {n-1} \end{bmatrix} = \boldsymbol{U}_c \boldsymbol{s} \end{align} と書ける.ただし,途中で \begin{align} s _ i = -\int _ 0 ^{t _ f} r _ i (-\tau) u(\tau) d\tau \end{align} とおいた.

\begin{align} \boldsymbol{x} _ 0 - e^{-\boldsymbol{A}t _ f}\boldsymbol{x} _ f &= \boldsymbol{U}_c \boldsymbol{s} \end{align} ここで登場した \boldsymbol{A} \boldsymbol{b}で構成されている行列 \boldsymbol{U} _ cが可制御行列である. 上式の左辺は n次元ベクトルであり, \boldsymbol{s}も同じく n次元ベクトルであるから,この可制御行列はフルランクでなければならない. (可制御行列が非正則,すなわちランク落ちしていると,右辺の次元は nよりも小さくなり等式が成立しない.)

十分性

可制御行列が正則であれば,システムが可制御であることを示す.

(つづく)