メインコンテンツ

rlocus

動的システムの根軌跡

説明

[r,kout] = rlocus(sys) は、SISO モデル sys の根軌跡を計算し、フィードバック ゲイン k の結果のベクトルと対応する複素根の位置 r を返します。

根軌跡が滑らかになるように、rlocus は自動的に正のフィードバック ゲインの集合を選択します。

動的システムの根軌跡の詳細については、アルゴリズムを参照してください。

r = rlocus(sys,k) は、k で指定されたフィードバック ゲインに対応する閉ループ極を返します。

rlocus(___) は、前述のすべての入力引数の組み合わせについて、SISO モデル sys の根軌跡を既定のプロット オプションでプロットします。プロットをさらにカスタマイズするには、rlocusplot を使用します。

  • 複数の動的システムの根軌跡を同じプロット上にプロットするには、sys をモデルのコンマ区切りリストとして指定します。たとえば、rlocus(sys1,sys2,sys3) は 3 つのモデルの根軌跡を同じプロット上にプロットします。

  • プロット内の各システムの色、ライン スタイル、およびマーカーを指定するには、システムごとに LineSpec 値を指定します。たとえば、rlocus(sys1,LineSpec1,sys2,LineSpec2) は 2 つのモデルをプロットし、それらのプロット スタイルを指定します。LineSpec 値の指定の詳細については、rlocusplot を参照してください。

すべて折りたたむ

この例では、次の SISO 動的システムの根軌跡をプロットします。

sys(s)=2s2+5s+1s2+2s+3.

sys = tf([2 5 1],[1 2 3]);
rlocus(sys)

MATLAB figure

システムの極は x で表され、零点は根軌跡プロット上の o で表されます。生成された根軌跡プロット内のメニューを使用して、グリッド ラインの追加、ズーム インまたはズーム アウト、さらに、プロパティ エディターを起動してのプロットのカスタマイズができます。

プロットをさらにカスタマイズするには、rlocusplotを使用します。

この例では、次の 3 つの SISO モデルを含む sisoModels.mat について考えます。

  • sys1 - 伝達関数モデル

  • sys2 - 状態空間モデル

  • sys3 - 零点-極-ゲイン モデル

mat ファイルからモデルを読み込みます。

load('sisoModels.mat','sys1','sys2','sys3');

rlocus を使用して根軌跡プロットを作成し、各システムについて色を指定します。また、根軌跡プロットに凡例を追加します。

rlocus(sys1,'b',sys2,'k',sys3,'r')
hold on
legend('sys1','sys2','sys3')
hold off

MATLAB figure

図には、同じプロット内に 3 つすべてのシステムの根軌跡図が含まれています。プロットのカスタマイズのさらなる詳細については、rlocusplotを参照してください。

この例では、次の SISO 伝達関数モデルについて考えます。

sys(s)=3s2+19s3+7s2+5s+6

上記の伝達関数モデルと rlocus を使用して、閉ループ極と関連するフィードバック ゲイン値を抽出します。

sys = tf([3 0 1],[9 7 5 6]);
[r,k] = rlocus(sys)
r = 3×53 complex
102 ×

  -0.0094 + 0.0000i  -0.0104 + 0.0000i  -0.0105 + 0.0000i  -0.0106 + 0.0000i  -0.0107 + 0.0000i  -0.0108 + 0.0000i  -0.0109 + 0.0000i  -0.0111 + 0.0000i  -0.0112 + 0.0000i  -0.0113 + 0.0000i  -0.0115 + 0.0000i  -0.0117 + 0.0000i  -0.0119 + 0.0000i  -0.0121 + 0.0000i  -0.0124 + 0.0000i  -0.0126 + 0.0000i  -0.0129 + 0.0000i  -0.0132 + 0.0000i  -0.0135 + 0.0000i  -0.0139 + 0.0000i  -0.0143 + 0.0000i  -0.0148 + 0.0000i  -0.0152 + 0.0000i  -0.0158 + 0.0000i  -0.0163 + 0.0000i  -0.0170 + 0.0000i  -0.0177 + 0.0000i  -0.0184 + 0.0000i  -0.0192 + 0.0000i  -0.0201 + 0.0000i  -0.0211 + 0.0000i  -0.0222 + 0.0000i  -0.0233 + 0.0000i  -0.0246 + 0.0000i  -0.0259 + 0.0000i  -0.0274 + 0.0000i  -0.0290 + 0.0000i  -0.0307 + 0.0000i  -0.0326 + 0.0000i  -0.0346 + 0.0000i  -0.0368 + 0.0000i  -0.0392 + 0.0000i  -0.0418 + 0.0000i  -0.0446 + 0.0000i  -0.0476 + 0.0000i  -0.0508 + 0.0000i  -0.0543 + 0.0000i  -0.0582 + 0.0000i  -0.0623 + 0.0000i  -0.0667 + 0.0000i
   0.0008 + 0.0084i   0.0006 + 0.0083i   0.0006 + 0.0082i   0.0006 + 0.0082i   0.0006 + 0.0082i   0.0006 + 0.0082i   0.0005 + 0.0082i   0.0005 + 0.0082i   0.0005 + 0.0082i   0.0005 + 0.0081i   0.0005 + 0.0081i   0.0004 + 0.0081i   0.0004 + 0.0081i   0.0004 + 0.0080i   0.0004 + 0.0080i   0.0003 + 0.0080i   0.0003 + 0.0080i   0.0003 + 0.0079i   0.0002 + 0.0079i   0.0002 + 0.0078i   0.0002 + 0.0078i   0.0002 + 0.0078i   0.0001 + 0.0077i   0.0001 + 0.0077i   0.0001 + 0.0076i   0.0000 + 0.0076i   0.0000 + 0.0075i  -0.0000 + 0.0074i  -0.0000 + 0.0074i  -0.0000 + 0.0073i  -0.0001 + 0.0073i  -0.0001 + 0.0072i  -0.0001 + 0.0071i  -0.0001 + 0.0071i  -0.0001 + 0.0070i  -0.0001 + 0.0070i  -0.0001 + 0.0069i  -0.0001 + 0.0068i  -0.0001 + 0.0068i  -0.0001 + 0.0067i  -0.0001 + 0.0067i  -0.0001 + 0.0066i  -0.0001 + 0.0066i  -0.0001 + 0.0065i  -0.0001 + 0.0065i  -0.0001 + 0.0064i  -0.0001 + 0.0064i  -0.0001 + 0.0064i  -0.0001 + 0.0063i  -0.0001 + 0.0063i
   0.0008 - 0.0084i   0.0006 - 0.0083i   0.0006 - 0.0082i   0.0006 - 0.0082i   0.0006 - 0.0082i   0.0006 - 0.0082i   0.0005 - 0.0082i   0.0005 - 0.0082i   0.0005 - 0.0082i   0.0005 - 0.0081i   0.0005 - 0.0081i   0.0004 - 0.0081i   0.0004 - 0.0081i   0.0004 - 0.0080i   0.0004 - 0.0080i   0.0003 - 0.0080i   0.0003 - 0.0080i   0.0003 - 0.0079i   0.0002 - 0.0079i   0.0002 - 0.0078i   0.0002 - 0.0078i   0.0002 - 0.0078i   0.0001 - 0.0077i   0.0001 - 0.0077i   0.0001 - 0.0076i   0.0000 - 0.0076i   0.0000 - 0.0075i  -0.0000 - 0.0074i  -0.0000 - 0.0074i  -0.0000 - 0.0073i  -0.0001 - 0.0073i  -0.0001 - 0.0072i  -0.0001 - 0.0071i  -0.0001 - 0.0071i  -0.0001 - 0.0070i  -0.0001 - 0.0070i  -0.0001 - 0.0069i  -0.0001 - 0.0068i  -0.0001 - 0.0068i  -0.0001 - 0.0067i  -0.0001 - 0.0067i  -0.0001 - 0.0066i  -0.0001 - 0.0066i  -0.0001 - 0.0065i  -0.0001 - 0.0065i  -0.0001 - 0.0064i  -0.0001 - 0.0064i  -0.0001 - 0.0064i  -0.0001 - 0.0063i  -0.0001 - 0.0063i

k = 1×53

         0    0.4201    0.4542    0.4911    0.5309    0.5740    0.6205    0.6709    0.7253    0.7841    0.8477    0.9165    0.9908    1.0712    1.1581    1.2521    1.3536    1.4634    1.5822    1.7105    1.8493    1.9993    2.1614    2.3368    2.5263    2.7313    2.9529    3.1924    3.4514    3.7313    4.0340    4.3613    4.7151    5.0975    5.5111    5.9581    6.4415    6.9640    7.5289    8.1397    8.8000    9.5138   10.2856   11.1200   12.0220   12.9973   14.0516   15.1915   16.4238   17.7561

sys には 3 つの極が含まれているため、極 r の結果の配列のサイズは 3 行 53 列です。r の各列はベクトル k からのゲイン値に対応します。この例では、rlocus は自動的に 0 から無限大までの 53 の k の値を選択して、3 つの閉ループ極についての滑らかな軌跡を取得しました。

display(r(:,39))
  -3.2585 + 0.0000i
  -0.0145 + 0.6791i
  -0.0145 - 0.6791i
display(k(39))
    7.5289

たとえば、r(:,39) には、フィードバック ゲイン値 7.5289 についての上記の閉ループ極が含まれます。

この例では、次の SISO 伝達関数モデルについて考えます。

sys(s)=0.5s2-14s4+3s2+2

伝達関数モデルと必要なフィードバック ゲイン値のベクトルを定義します。この例では、0.5 ずつインクリメントして 1 から 8 まで変化する一連のゲイン値について考え、rlocus を使用して閉ループの極の位置を抽出します。

sys = tf([0.5 0 -1],[4 0 3 0 2]);
k = (1:0.5:5);
r = rlocus(sys,k);
size(r)
ans = 1×2

     4     9

sys には 4 つの閉ループ極が含まれるため、閉ループの極の位置を表す結果の配列 r のサイズは 4 行 9 列です。ここで、9 列は k で定義されている 9 つの特定のゲイン値に対応しています。

k の特定のゲイン値についての閉ループ極の軌跡を根軌跡プロット上で可視化することもできます。

rlocus(sys,k)

MATLAB figure

入力引数

すべて折りたたむ

動的システム。SISO 動的システム モデル、または動的システム モデルの配列として指定します。使用できる動的システムには次のようなものがあります。

  • tfzpkss モデルなどの連続時間または離散時間の数値 LTI モデル。

  • sparss モデルまたは mechss モデルなどのスパース状態空間モデル。

  • genssuss (Robust Control Toolbox) モデルなどの一般化された、あるいは不確かさをもつ LTI モデル。不確かさをもつモデルを使用するには Robust Control Toolbox™ ソフトウェアが必要です。

    • 調整可能な制御設計ブロックの場合、関数は応答をプロットするモデルをその現在の値で評価します。

    • 不確かさをもつ制御設計ブロックの場合、関数はモデルのノミナル値とランダム サンプルをプロットします。

  • idtf (System Identification Toolbox)idss (System Identification Toolbox)idproc (System Identification Toolbox) モデルなどの同定された LTI モデル。同定されたモデルを使用するには System Identification Toolbox™ ソフトウェアが必要です。

sys がモデルの配列である場合、プロットは同じ座標軸上に配列のすべてのモデルの応答を表示します。

極の位置に関連するフィードバック ゲイン値。ベクトルとして指定します。フィードバック ゲインは極の軌跡を定義し、それにより根軌跡プロットの形状に影響します。

出力引数

すべて折りたたむ

各フィードバック ゲイン値 kout に対応する sys の閉ループの極の位置。NM 列の配列として返されます。ここで、Nsys の閉ループ極の数、Mmax(length(k)) です。

極の位置に関連するフィードバック ゲイン値。ベクトルとして返されます。フィードバック ゲインは極の軌跡を定義し、それにより根軌跡プロットの形状に影響します。k がユーザーによって定義されていない場合、rlocus は、滑らかなプロットを作成できるように状況に応じて正のゲインの集合 k を選択します。

ヒント

  • 根軌跡プロットを対話的に作成する方法については、制御システム デザイナーを参照してください。

  • 根軌跡プロットの外観をカスタマイズする追加オプションには、rlocusplot を使用します。

  • rlocus を使用して作成されたプロットは、複数行のタイトルや、string 配列または文字ベクトルの cell 配列として指定されたラベルをサポートしません。複数行のタイトルやラベルを指定するには、newline 文字を含む単一の string を使用します。

    rlocus(sys)
    title("first line" + newline + "second line");

アルゴリズム

動的システムの根軌跡には、閉ループ極の軌跡がフィードバック ゲイン k の関数として格納されます (負のフィードバックと想定)。根軌跡は、フィードバック ゲインの変化が閉ループ極位置に及ぼす影響を調べるために使用されます。すると今度は、これらの位置から時間と周波数応答に関する間接的な情報を得ることができます。

rlocus を使用して、sys を次の図に示すように設定することにより、次のいずれかの "負の" フィードバック ループの根軌跡図を計算できます。

たとえば、sys が次で表される伝達関数である場合、

sys(s)=n(s)d(s)

閉ループの極は、次の方程式の根で表わせます。

d(s)+kn(s)=0

根軌跡プロットは、フィードバック ゲイン k が 0 から無限大まで変化するときの閉ループ極の軌跡を示します。

バージョン履歴

R2006a より前に導入

すべて展開する