Main Content

obsv

状態空間モデルの可観測性

    説明

    動的システムのすべての状態をシステムの出力から知ることができる場合、その動的システムは "可観測" と言われます。obsv は、可観測性行列を状態行列から、または状態空間行列から計算します。この行列を使用して、可観測性を判定できます。

    たとえば、Nx 個の状態、Ny 個の出力、および Nu 個の入力をもつ連続時間状態空間モデルを考えます。

    x˙=Ax+Buy=Cx+Du

    ここで、xu、および y はそれぞれ状態、入力、および出力を表し、ABC、および D は以下のサイズをもつ状態空間行列です。

    • ANxNx 列の実数値行列または複素数値行列。

    • BNxNu 列の実数値行列または複素数値行列。

    • CNyNx 列の実数値行列または複素数値行列。

    • DNyNu 列の実数値行列または複素数値行列。

    obsv により生成される可観測性行列 Ob=[CCACA2  :CAn1] がフル ランクの場合、すなわち、ランクが状態空間モデルの状態数と等しい場合、システムは可観測です。可観測性行列 Ob は、NxNxy 列です。例については、SISO 状態空間モデルの可観測性を参照してください。

    Ob = obsv(A,C) は、状態行列 A と状態から出力への行列 C を使用して、可観測性行列 Ob を返します。Ob がフル ランクの場合、すなわち、Ob のランクが状態数と等しい場合、システムは可観測です。

    Ob = obsv(sys) は、状態空間モデル sys の可観測性行列を返します。この構文は、次と等価です。

    Ob = obsv(sys.A,sys.C);

    すべて折りたたむ

    行列 A および行列 C を定義します。

    A = [1  1;
         4 -2];
    C = [-1 1;
         1 -1];

    可観測性行列を計算します。

    Ob = obsv(A,C);

    不可観測状態の数を判定します。

    unobsv = length(A) - rank(Ob)
    unobsv = 
    1
    

    不可観測状態は Ob がフル ランク 2 ではないことを示します。したがって、システムは可観測ではありません。

    この例では、2 つの状態をもつ次の SISO 状態空間モデルを考えます。

    A=[-1.5-210]B=[0.50]C=[01]D=1SISO State-Space Model

    次の状態空間行列で定義される SISO 状態空間モデルを作成します。

    A = [-1.5,-2;1,0];
    B = [0.5;0];
    C = [0,1];
    D = 1;
    sys = ss(A,B,C,D);

    可観測性行列を計算し、ランクを求めます。

    Ob = obsv(sys)
    Ob = 2×2
    
         0     1
         1     0
    
    

    可観測性行列のサイズは、行列 A および行列 C のサイズに依存します。たとえば、行列 A が NxNx 列の行列であり、行列 CNxNy 列の行列である場合、結果の行列 ObNxNxy 列になります。ここで、Nx は状態の数、Ny は出力の数です。

    rank(Ob)
    ans = 
    2
    

    可観測性行列 Ob のランクが状態の数と等しいため、システム sys は可観測です。

    あるいは、行列 A および行列 C のみを使用して、可観測性行列を求めることもできます。

    Ob = obsv(sys.A,sys.C);
    rank(Ob)
    ans = 
    2
    

    入力引数

    すべて折りたたむ

    状態行列。NxNx 列の行列として指定します。ここで Nx は状態の数です。

    状態から出力への行列。NyNx 列の行列として指定します。ここで Nx は状態の数、Ny は出力の数です。

    状態空間モデルまたは状態空間モデル配列。以下として指定します。

    • 状態空間 (ss) モデル オブジェクト (入力 ABC および D が数値行列の場合、または別のモデル オブジェクト タイプから変換する場合)。

    • 一般化状態空間モデル (genss) オブジェクト (1 つ以上の行列 ABC および Drealp パラメーターや一般化行列 (genmat) などの調整可能なパラメーターが含まれている場合)。関数は調整可能なパラメーターの現在の値を使用します。

    • 不確かさをもつ状態空間モデル (uss) オブジェクト (1 つ以上の入力 ABC および D に不確かさをもつ行列が含まれている場合)。関数は不確かさをもつパラメーターのノミナル値を使用します。不確かさをもつモデルを使用するには Robust Control Toolbox™ ソフトウェアが必要です。

    出力引数

    すべて折りたたむ

    可観測性行列。配列として返されます。sys の実体と、対応する配列は次のとおりです。

    • Nx 個の状態と Ny 個の出力をもつ単一の状態空間モデルである場合、結果の配列 ObNxNxy 列になります。

    • 状態空間モデルの配列 sys(:,:,j1,...,jN) である場合、ObN+2 個の次元をもつ配列、すなわち Ob(:,:,j1,...,jN) になります。

    制限

    • 可観測性のテストとして、可観測性行列のランクの計算は推奨されないため、obsv は制御設計において推奨されません。Ob は、多くの状態をもつほとんどのシステムで数値的に特異になります。この事実は、[1]の節 III に詳しく記載されています。

    参照

    [1] Paige, C. C. "Properties of Numerical Algorithms Related to Computing Controllability." IEEE Transactions on Automatic Control. Vol. 26, Number 1, 1981, pp. 130-138.

    バージョン履歴

    R2006a より前に導入