9. 離散時間システムの構造

システムの構造で重要な、可到達性、可制御性、可観測性について説明する。

可到達性、可制御性

離散時間システム\(x(k+1)=Ax(k)+bu(k)\) において、原点\(x(0)=0\)から、時刻\(n\)において任意の状態\(x(n)\) に到達する入力列\(\{u(k)\}\)が存在するとき、可到達であるという。

離散時間システム\(x(k+1)=Ax(k)+bu(k)\) において、任意の初期状態\(x(0)\)から有限時間で原点へ推移させる入力列\(\{u(k)\}\)が存在するとき、可制御であるという。

離散時間系の解

*状態方程式の解:
離散時間系の状態方程式の解は、逐次計算により次のように求められる。
$$x(1) = Ax(0) + bu(0)$$ $$x(2) =Ax(1) + bu(1)=A\{Ax(0) + bu(0)\} + bu(1) = A^2 x(0) + Abu(0) + bu(1)$$ $$\vdots$$ $$x(n) = A^n x(0) + A^{n-1}bu(0) + \cdots + bu(n-1)$$ よって、一般解は $$x(k) = A^k x(0) + \sum_{i=0}^{k-1} A^{k-i-1} b u(i) \;\;\;\; \cdots (1)$$ と表せる。

*Z変換による解:
離散時間系の状態方程式をZ変換すると、$$z X(z) - z x(0) = A X(z) + bU(z)$$よって、$$X(z) = (zI - A)^{-1} z x(0) + (zI - A)^{-1} bU(z)$$となる。これを逆Z変換すると\(x(k)\)が求まるので、\((1)\)式と比較して、$$ \mathcal{Z}^{-1} \{(zI -A)^{-1} z \} = A^{k}$$ $$\mathcal{Z}^{-1} \{ (zI - A)^{-1} bU(z)\} = \sum_{i=0}^{k-1} A^{k-i-1} b u(i)$$となることがわかる。

可到達条件

離散時間系の状態方程式の一般解は\((1)\)式なので、\(n\)における状態変数\(x(n)\)は、$$x(n) = A^n x(0) + A^{n-1}bu(0) + A^{n-2}bu(1) + \cdots + Abu(n-2) + bu(n-1)$$ $$=A^n x(0) + \begin{bmatrix} b & Ab & \cdots & A^{n-2}b & A^{n-1}b \end{bmatrix} \begin{bmatrix} u(n-1) \\ u(n-2) \\ \vdots \\ u(1) \\ u(0) \end{bmatrix}$$となる。従って、行列$$W= \begin{bmatrix} b & Ab & \cdots & A^{n-2}b & A^{n-1}b \end{bmatrix} $$が正則(逆行列が存在する)であれば、入力$$\begin{bmatrix} u(n-1) \\ u(n-2) \\ \vdots \\ u(1) \\ u(0) \end{bmatrix} = W^{-1} \left[x(n) - A^n x(0)\right]$$が求まる。すなわち、任意の初期状態\(x(0)\)から任意の状態\(x(n)\)へ高々\(n\)ステップで推移させる入力列\(\{u(k)\}\)が存在することになる。このときシステムは可到達である。

この結果から、システムが可到達であるための条件は、$$W = \begin{bmatrix} b & Ab & \cdots & A^{n-2}b & A^{n-1}b \end{bmatrix} \;\;\;\; (n \times n)$$の逆行列が存在することである。つまり、$$ {rank}\; W = n \;\;\; または、|W| \ne 0$$が成立すればよい。この行列\(W\)を可到達行列という。

可制御条件

可制御とは、任意の初期状態\(x(0)\)から、少なくとも\(n\)ステップで原点\(x(n)=0\)へ推移する入力列\(\{u(k)\}\)が存在することであるから、式\((1)\)から、$$0 = A^n x(0) + A^{n-1}bu(0) + A^{n-2}bu(1) + \cdots + Abu(n-2) + bu(n-1)$$ となればよい。ここで、行列\(A\)が正則であると\(A^{-1}\)が存在するので、両辺に\(A^{-n}\)をかけると$$ A^{-1}bu(0) + A^{-2}bu(1) + \cdots + A^{-n+1}bu(n-2 )+ A^{-n}bu(n-1) = -x(0)$$となるので、$$-x(0) =\begin{bmatrix} A^{-1}b & A^{-2}b & \cdots & A^{-n+1}b & A^{-n}b \end{bmatrix} \begin{bmatrix} u(0) \\ u(1) \\ \vdots \\ u(n-1) \end{bmatrix}$$であり、これが成立するための入力列\({u(k)}\)は、$$R=\begin{bmatrix} A^{-1}b & A^{-2}b & \cdots & A^{-n+1} b & A^{-n}b \end{bmatrix} $$ とおくと、$$\begin{bmatrix} u(0) \\ u(1) \\ \vdots \\ u(n-2) \\ u(n-1) \end{bmatrix} = -R^{-1} x(0)$$ で求まる。つまり、\(R\)が正則であることが必要である。\(R\)に\(A^n\)をかけると$$A^n R= \begin{bmatrix} A^{n-1}b & A^{n-2}b & \cdots & Ab &b \end{bmatrix} $$となり、可到達の条件\(W\)と同じものが得られ、結局、離散時間系の可制御条件は、\(A\)が正則であれば可到達条件と同一になる。
なお、離散化システムでは、\(A=e^{FT}\)であるから、行列\(A\)は常に正則であるので、可制御条件と可到達条件は同一になる。

※連続時間系の離散化

説明を簡単にするため、一入力一出力の連続時間系を考える。状態方程式は、$$\dot{x}(t) = F x(t) + g u(t) \;\;\; \cdots (2)$$で、\(x(t)\)は\(n\)次元の状態変数ベクトル、\(u(t)\)は入力でスカラー、\(F\)は\((n \times n)\)のシステム行列、\(g\)は\(n \times 1\)の入力行列とする。出力方程式は、$$y(t) = c x(t)$$で、\(c\)は\(1 \times n\)の出力行列、\(y(t)\)は出力でスカラーとする。離散化を考えるので入力\(u(t)\)を零次ホールドされた信号とする。$$u(t) = u(kT) \;\;\;\; (kT \le t \lt (k+1)T)$$ \((2)\)式の解は(詳細な導出は「LTIシステムの応答(微分方程式の一般解)」を参照)、$$x(t) = e^{Ft}x_0 + \int_{0}^{t} e^{F(t-\tau)} g u(\tau) d\tau$$なので、\(t=(k+1)T\)とおくと、$$x[(k+1)T] = e^{FT}x(kT) + \int_{kT}^{(k+1)T} e^{F [(k+1)T- \tau] } g u(\tau) d \tau $$となる。さらに、入力\(u(t)=u(kT)\)なので、$$ x[(k+1)T] = e^{FT}x(kT) + \int_{kT}^{(k+1)T} e^{F [(k+1)T- \tau] } g d \tau\cdot u(kT)$$となる。\(x(kT) = x(k) , \;\;\; u(kT) = u(k)\)と略記すると、$$x(k+1) = A x(k) + b u(k) \;\;\;\;\;\ y(k) = c x(k)$$となり、$$A =e^{FT} \;\;\;\; b=\int_0^T e^{F\tau} g d\tau$$となる。このことから、連続時間系のシステム行列\(F\)が正則か非正則かに関わらず、離散時間系のシステム行列\(A=e^{FT}\)は正則である。

可観測性

離散時間システムを$$x(k+1) = Ax(k) \;\;\;\; y(k) = cx(k)$$(入力\(u(k)\)に依らないので、\(u(k)=0\)とする。)として、出力系列\(y(0), y(1),y(2),\cdots\)から、初期状態\(x(0)\)を一意に決定できるとき、システムは可観測という。また、\(x(k) = A^{k}x(0)\)なので、初期状態\(x(0)\)が決定できるということは、すべての\(k\)に対する\(x(k)\)が決定できることを意味する。
\(x(k) = A^{k}x(0)\)より、$$y(k) = c A^{k} x(0) \;\;\;\; (k=0,1,2, \cdots)$$ これを\(k= 0,1,2, \cdots , n-1\)で考えると、$$\begin{bmatrix} y(0) \\ y(1) \\ \vdots \\ y(n-1) \end{bmatrix} = \begin{bmatrix} c \\ cA \\ \vdots \\ cA^{n-1} \end{bmatrix} x(0)$$ 可観測行列$$V = \begin{bmatrix} c \\ cA \\ \vdots \\ cA^{n-1} \end{bmatrix} \;\;\;\; (n \times n)$$とすると、\(V\)が正則(逆行列が存在する)であれば、$$x(0) = V^{-1}\begin{bmatrix} y(0) \\ y(1) \\ \vdots \\ y(n-1) \end{bmatrix}$$とでき、\(x(0)\)が一意に決定できる。

可観測条件

離散時間システムが可観測であるための必要十分条件は、\(V\)の逆行列が存在すること、すなわち$$ {rank}\; V = n \;\;\; または、|V| \ne 0$$が成立すればよい。

Scilabによる可制御、可観測の判定

Scilabの関数を使えば、容易に可制御、可観測が判定できる。システム行列\(A\)、入力行列\(b\)、出力行列\(c\)を定義すれば、Scilabの関数で可制御行列、可観測行列を計算できる。また、それらの行列のランクを求めたり、行列式を計算することで可制御性、可観測性を判定できる。

//可制御、可観測
clear;
//離散時間システム の定義
A = [0 1 0; 0 0 1; 0 0.4 0.3];
b = [0; 0; 1];
c=[1 0 0];
Co = cont_mat(A,b); /*可制御行列の生成*/
nc=rank(Co); /*可制御行列のランク*/
ac=det(Co); /*可制御行列の行列式計算*/
Ob = obsv_mat(A,c); /*可観測行列の生成*/
nb=rank(Ob); /*可観測行列のランク*/
ab=det(Ob); /*可観測行列の行列式計算*/

9. 離散時間システムの構造” に対して2件のコメントがあります。

コメントは受け付けていません。