Main Content

ctrb

状態空間モデルの可制御性

    説明

    動的システムを駆動する制御信号を有限時間内に任意の状態に適用することが可能な場合、その動的システムは "可制御" と言われます。この特性は "可到達性" とも呼ばれます。ctrb は、可制御性行列を状態行列から、または状態空間モデルから計算します。この行列を使用して、可制御性を判定することができます。

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

    x˙=Ax+Buy=Cx+Du

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

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

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

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

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

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

    Co = ctrb(A,B) は、状態行列 A と入力から状態への行列 B を使用して、可制御性行列 Co を返します。Co がフル ランクの場合、すなわち、Co のランクが状態数と等しい場合、システムは可制御です。

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

    Co = ctrb(sys.A,sys.B);

    すべて折りたたむ

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

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

    可制御性行列を計算します。

    Co = ctrb(A,B);

    非可制御状態の数を特定します。

    unco = length(A) - rank(Co)
    unco = 
    1
    

    非可制御状態は Co がフル ランク 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);

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

    Co = ctrb(sys)
    Co = 2×2
    
        0.5000   -0.7500
             0    0.5000
    
    

    可制御性行列のサイズは、行列 A および行列 B のサイズに依存します。たとえば、行列 A が NxNx 列の行列であり、行列 B が NxNu 列の行列である場合、結果の行列 CoNxNxu 列になります。ここで、Nx は状態の数、Nu は入力の数です。

    rank(Co)
    ans = 
    2
    

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

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

    Co = ctrb(sys.A,sys.B);
    rank(Co)
    ans = 
    2
    

    入力引数

    すべて折りたたむ

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

    入力から状態への行列。NxNu 列の行列として指定します。ここで Nx は状態の数、Nu は入力の数です。

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

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

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

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

    出力引数

    すべて折りたたむ

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

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

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

    参照

    [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 より前に導入