Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ctrb

構文

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

説明

Co = ctrb(A,B) は以下の可制御性行列を返します。

Co=[BABA2BAn1B]

ここで A は n 行 n 列の行列であり、B は n 行 m 列の行列です。Co は n 行 nm 列で構成されています。

Co = ctrb(sys) は、状態空間 LTI オブジェクト sys の可制御行列を計算します。この構文は、次と等価です。

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

Co がフル ランク n の場合、システムは可制御です。

すべて折りたたむ

行列 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 ではないことを示します。したがって、システムは可制御ではありません。

制限

可制御行列のランクの推定は、悪条件 (ill-conditioned) です。つまり、丸め誤差とデータの誤差に容易に左右されます。この点は、次の簡単な例から明らかです。

A=[1δ01],B=[1δ]

δ0δ<eps である場合、このペアは可制御です。ここで、eps は相対的なマシン精度です。ctrb(A,B) は以下を返します。

[BAB]=[11δδ]

これは、フル ランクではありません。このような場合には、関数 ctrbf を使用してシステムの可制御性を判定することをお勧めします。

バージョン履歴

R2006a より前に導入

参考

|