9-1. 可制御性、可観測性(演習)

離散時間システムの可制御、可観測条件

連続時間システムの状態方程式が、$$\frac{dx}{dt} = \begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix} x + \begin{bmatrix} 0 \\1 \end{bmatrix} u \\ y = \begin{bmatrix} 1 & 0 \end{bmatrix} x$$のとき、これを離散時間システムにしたとき、可制御、可観測となるための条件を求める。

$$F = \begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix} , \;\;\;\;\;\; g = \begin{bmatrix} 0 \\1 \end{bmatrix}$$なので、散サンプリング時間を\(T\)として、$$A = e^{FT} = \mathcal{L}^{-1} [(sI - F)^{-1}] = \mathcal{L}^{-1} \left[ \frac{1}{s^2 +1} \begin{bmatrix} s & 1 \\ -1 & s \end{bmatrix} \right] = \begin{bmatrix} \cos T & \sin T \\ -\sin T & \cos T \end{bmatrix} \\ b=\int_0^T e^{F \tau} d \tau \cdot g = \begin{bmatrix} 1 - \cos T \\ \sin T \end{bmatrix}$$従って、離散時間システムの状態方程式は、$$x(k+1) = \begin{bmatrix} \cos T & \sin T \\ -\sin T & \cos T \end{bmatrix} x(k) + \begin{bmatrix} 1 - \cos T \\ \sin T \end{bmatrix} u(k) \\ y(k) = \begin{bmatrix} 1 & 0 \end{bmatrix} x(k)$$となる。このシステムの可制御行列は、$$W = [b, \; Ab] = \begin{bmatrix} 1 - \cos T & 1 + \cos T - 2 \cos^2 T \\ \sin T & (2 \cos T-1) \sin T \end{bmatrix}$$であり、$$\left| W \right | = (1 - \cos T)(2 \cos T -1) \sin T - \sin T (1 + \cos T - 2 \cos^2 T) = 2\sin T( \cos T -1)$$となる。\(|W| \neq 0\)が可制御条件で、$$T = 2 n \pi \;\;\;\; (n = 0 , 1 , 2 , \cdots)$$のとき\(|W| = 0\)となる。従って、サンプリング時間\(T\)が\(T \neq 2 n \pi\)のとき可制御となる。
同様に、可観測行列は$$V = \begin{bmatrix} c \\ cA \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ \cos T & \sin T \end{bmatrix}$$であり、$$\left|V \right| = \sin T$$となる。\(|V| \neq 0\)が可観測条件で、$$T = 2 n \pi \;\;\;\; (n = 0 , 1 , 2 , \cdots)$$ のとき\(|V|=0\)となる。従って、サンプリング時間\(T\)が\(T \neq 2 n \pi\)のとき可観測となる。

Scilabによる離散時間システムの可制御、可観測のチェック

//9-1. 可制御、可観測のチェック
clear; e=%e;
//連続時間システムの定義
F=[0 1; -1 0];
g=[0 ; 1];
c=[1 0];
//離散時間システム の定義
T=2%pi;
A = e^(FT);
b=[1-cos(T) ; sin(T)];

Co = cont_mat(A,b); /*可制御行列の生成*/
ac=det(Co); /*可制御行列の行列式計算*/
Ob = obsv_mat(A,c); /*可観測行列の生成*/
ab=det(Ob); /*可観測行列の行列式計算*/

\(T=2 \pi\)のときのScilabスクリプトの実行結果は、以下のようになる。
--> ac
ac =6.660D-47
--> ab
ab =-1.110D-15
\(ac\)(可制御行列の行列式)、\(ab\)(可観測行列の行列式)とも\(0\)と見なせるので、不可制御、不可観測と判定できる。

※一般的に状態方程式のシステム行列(\(A\))の次元は大きい(\(n\)が3以上)ので、可制御行列、可観測行列の行列式を手計算で求めることは大変である。従って、Scilabなどのツールを利用することが現実的である。重要なポイントは、可制御、可観測のシステム構造を理解することである。

パルス伝達関数の可制御、可観測の条件

パルス伝達関数が、$$G(z) = \frac{b_1 z + b_2}{z^2 + a_1 z + a_2}$$のシステムの可制御条件、可観測条件を求める。

パルス伝達関数\(G(z)\)から、可制御正準形を求める。$$G(z) =\frac{Y(z)}{U(z)} = \frac{b_1 z + b_2}{z^2 + a_1 z + a_2} = \frac{b_1 z^{-1} + b_2 z^{-2}}{1 + a_1 z^{-1} + a_2 z^{-2}}$$なので、$$Y(z) = (b_1 z^{-1} + b_2 z^{-2})X(z) \\ X(z) = \frac{1}{1 + a_1 z^{-1} + a_2 z^{-2}} U(z)$$さらに、$$(1 + a_1 z^{-1} + a_2 z^{-2}) X(z) = U(z) \\ X(z) = U(z) - ( a_1 z^{-1} + a_2 z^{-2}) X(z) $$逆Z変換すると、$$y(k) = b_1 x(k-1) + b_2 x(k-2) \\ x(k) = u(k) - a_1 x(k-1) - a_2 x(k-2)$$となる。ここで、\(x_1(k) = x(k-2) ,\;\;\; x_2(k) = x(k-1)\)とおくと、$$x_1(k+1) = x(k-1) = x_2(k) \\ x_2(k+1) = x(k)$$なので、$$\begin{bmatrix} x_1(k+1) \\ x_2(k+1) \end{bmatrix} = \begin{bmatrix} 0 & 1 \\ -a_2 & -a_1 \end{bmatrix} \begin{bmatrix} x_1(k) \\ x_2(k) \end{bmatrix} + \begin{bmatrix} 0 \\1 \end{bmatrix} u(k) \\ y(k) = \begin{bmatrix} b_2 & b_1 \end{bmatrix} \begin{bmatrix} x_1(k) \\ x_2(k) \end{bmatrix} $$の可制御正準形で表せる。システム行列\(A\)と出力行列\(c\)は、$$A = \begin{bmatrix} 0 & 1 \\ -a_2 & -a_1 \end{bmatrix}, \;\;\;\; c = \begin{bmatrix} b_2 & b_1 \end{bmatrix} $$なので、 可観測行列は、$$V = \begin{bmatrix} c \\ cA \end{bmatrix} = \begin{bmatrix} b_2 & b_1 \\ -a_2 b_1 & b_2 - a_1 b_1 \end{bmatrix}$$となる。これより、可観測条件は、$$|V| = b_2(b_2 - a_1 b_1) + a_2 b_1^2 \neq 0$$ となることである。
一方、$$(z^2 + a_1 z + a_2) Y(z) =(b_1 z + b_2) U(z) ,\;\;\;\; (1 + a_1 z^{-1} + a_2 ^{-2}) Y(z) = (b_1 z^{-1} + b_2 z^{-2})U(z)$$より、$$Y(z) = (b_1 z^{-1} + b_2 z^{-2})U(z) - (a_1 z^{-1} + a_2 z^{-2})Y(z)$$と表せる。逆Z変換すると、$$y(k) = b_1 u(k-1) + b_2 u(k-2) - a_1 y(k-1) - a_2 y(k-2)$$となる。ここで、\(x_2(k) = y(k)\)とおくと、$$x_2(k) = b_1 u(k-1) - a_1 x_2(k-1) + b2 u(k-2) -a_2 x_2(k-2) , \;\;\; x_2(k+1) =b_1 u(k) - a_1 x_2(k) +b_2 u(k-1) - a_2 x_2(k-1)$$となり、さらに、\(x_1(k) = -a_2 x_2(k-1) +b_2 u(k-1)\)とおくと、$$\begin{bmatrix} x_1(k+1) \\ x_2(k+1) \end{bmatrix} = \begin{bmatrix} 0 & - a_2 \\ 1 & - a_1 \end{bmatrix} \begin{bmatrix} x_1(k) \\ x_2(k) \end{bmatrix} + \begin{bmatrix} b_2 \\ b_1 \end{bmatrix} u(k) \\ y(k) = \begin{bmatrix} 0 & 1 \end{bmatrix} \begin{bmatrix} x_1(k) \\ x_2(k) \end{bmatrix} $$の可観測正準形で表せる。システム行列\(A\)と入力行列\(b\)は、$$A = \begin{bmatrix} 0 & - a_2 \\ 1 & - a_1 \end{bmatrix} , \;\;\; b= \begin{bmatrix} b_2 \\ b_1 \end{bmatrix} $$なので、可制御行列は、$$W = \begin{bmatrix} b & Ab \end{bmatrix} = \begin{bmatrix} b_2 & -a_2b_1 \\ b_1 & b_2 - a_1 b_1 \end{bmatrix}$$となる。これより、可制御条件は、$$|W| = b_2(b_2 - a_1 b_1) + a_2 b_1^2 \neq 0$$ となることである。これは可観測条件と一致している。
\(G(z)\)の極は、$$p = \frac{-a_1 \pm \sqrt{a_1^2 - 4a_2}}{2}$$であり、零点は、$$z = -\frac{b_2}{b_1}$$である。極零点が等しい場合、$$\frac{-a_1 \pm \sqrt{a_1^2 - 4a_2}}{2} = -\frac{b_2}{b_1}$$なので、\(b_2^2 + a_2 b_1^2 - a_1 b_1 b_2 = 0\)となり、これは、不可制御不可観測の条件と一致している。つまり、可制御可観測の条件は、伝達関数の極零相殺が起こらないことと等価といえる。