Main Content

nyquist

周波数応答のナイキスト線図

説明

nyquist(sys) は、動的システム モデル sys の周波数応答のナイキスト線図を作成します。プロットは、システム応答の実数部と虚数部を周波数の関数として表示します。

nyquist は正と負の両方の周波数で構成される等高線をプロットします。プロットは、各分岐に対する周波数の増加の方向を示す矢印も表示します。nyquist は、システム ダイナミクスに基づいてプロットする周波数を自動的に決定します。

sys が多入力多出力 (MIMO) モデルである場合、nyquist はナイキスト線図の配列を生成し、各プロットは 1 組の I/O の周波数応答を示します。

sys が複素係数をもつモデルである場合、正と負の分岐は対称ではありません。

nyquist(sys1,sys2,...,sysN) は、複数の動的システムの周波数応答を同じプロット上にプロットします。すべてのシステムは入力数と出力数が同じでなければなりません。

nyquist(sys1,LineSpec1,...,sysN,LineSpecN) はプロット内の各システムの色、ライン スタイルおよびマーカーを指定します。

nyquist(___,w) は、w で指定された周波数のシステム応答をプロットします。

  • w が形式 {wmin,wmax} の cell 配列の場合、nyquistwmin から wmax の範囲の周波数で応答をプロットします。

  • w が周波数のベクトルの場合、nyquist はそれぞれの指定された周波数で応答をプロットします。ベクトル w には負と正の両方の周波数を含めることができます。

w は、前述の構文のすべての入力引数の組み合わせで使用できます。

[re,im,wout] = nyquist(sys) は、ベクトル wout の各周波数における周波数応答の実数部と虚数部を返します。関数はシステム ダイナミクスに基づいて wout の周波数を自動的に決定します。この構文はプロットを描画しません。

[re,im,wout] = nyquist(sys,w) は、w で指定された周波数での応答データを返します。

  • w が形式 {wmin,wmax} の cell 配列の場合、woutwmin から wmax の範囲の周波数を含みます。

  • w が周波数のベクトルである場合、wout = w です。

[re,im,wout,sdre,sdim] = nyquist(sys,w) は、同定されたモデル sys の周波数応答の実数部と虚数部の推定標準偏差も返します。w を省略すると、関数はシステム ダイナミクスに基づいて wout の周波数を自動的に決定します。

すべて折りたたむ

次の伝達関数を作成し、そのナイキスト応答をプロットします。

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

H = tf([2 5 1],[1 2 3]);
nyquist(H)

Figure contains an axes object. The axes object contains an object of type line. This object represents H.

関数 nyquist は、M-circle のグリッドを表示できます。これは定数閉ループ ゲインの等高線です。M-circle は複素数の軌跡として定義されます。ここで次の量は周波数全体で定数値です。

T(jω)=|G(jω)1+G(jω)|.

ここで、ω はラジアン/TimeUnit の周波数で、TimeUnit はシステム時間単位であり、G は定数ゲイン要件を満たす複素数の集合になります。

M-circle のグリッドを表示するには、プロットを右クリックして [グリッド] を選択します。あるいは、grid コマンドを使用します。

grid on

Figure contains an axes object. The axes object contains an object of type line. This object represents H.

指定された周波数範囲でナイキスト線図を作成します。周波数の特定の範囲でダイナミクスに焦点を合わせるときにこの方法を使用します。

H = tf([-0.1,-2.4,-181,-1950],[1,3.3,990,2600]);
nyquist(H,{1,100})

Figure contains an axes object. The axes object contains an object of type line. This object represents H.

cell 配列 {1,100} は、正の周波数分岐には周波数範囲 [1,100]、負の周波数分岐には [–100,–1] をナイキスト線図に指定します。負の周波数分岐は実数係数をもつモデルの対称性によって得られます。このように周波数の範囲を指定すると、関数は周波数応答データの中間点を選択します。

あるいは、周波数応答の評価とプロットに使用する周波数点のベクトルを指定します。

w = 1:0.1:30;
nyquist(H,w,'.-')

Figure contains an axes object. The axes object contains an object of type line. This object represents H.

nyquist は、指定された周波数で周波数応答をプロットします。

複数のシステムの周波数応答を同じナイキスト線図で比較します。

動的システムを作成します。

rng(0)
sys1 = tf(3,[1,2,1]);
sys2 = tf([2 5 1],[1 2 3]);
sys3 = rss(4);

すべてのシステムを表示するナイキスト線図を作成します。

nyquist(sys1,sys2,sys3)
legend('Location','southwest')

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent sys1, sys2, sys3.

入力引数 LineSpec を使って、ナイキスト線図に各システムのライン スタイル、色、またはマーカーを指定します。

sys1 = tf(3,[1,2,1]);
sys2 = tf([2 5 1],[1 2 3]);
nyquist(sys1,'o:',sys2,'g')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent sys1, sys2.

最初の LineSpec である 'o:' は、sys1 の応答に円形マーカー付き点線を指定します。2 番目の LineSpec である 'g' は、sys2 の応答に緑の実線を指定します。

SISO システムの周波数応答の実数部と虚数部を計算します。

周波数を指定しない場合、nyquist はシステム ダイナミクスに基づいて周波数を選択し、これを 3 番目の出力引数に返します。

H = tf([2 5 1],[1 2 3]);
[re,im,wout] = nyquist(H);

H は SISO モデルなので、最初の 2 つの次元 reim はどちらも 1 です。3 番目の次元は wout の周波数点の数です。

size(re)
ans = 1×3

     1     1   141

length(wout)
ans = 141

したがって、re の 3 番目の次元の各エントリは、wout の対応する周波数における応答の実数部を提供します。

この例では 2 出力、3 入力のシステムを作成します。

rng(0,'twister');
H = rss(4,2,3);

このシステムでは、nyquist が各 I/O チャネルの周波数応答を個別のプロットとして単一の Figure 内にプロットします。

nyquist(H)

Figure contains 6 axes objects. Axes object 1 with title From: In(1) contains an object of type line. This object represents H. Axes object 2 contains an object of type line. This object represents H. Axes object 3 with title From: In(2) contains an object of type line. This object represents H. Axes object 4 contains an object of type line. This object represents H. Axes object 5 with title From: In(3) contains an object of type line. This object represents H. Axes object 6 contains an object of type line. This object represents H.

1 ~ 10 ラジアンの 20 の周波数でこれらの応答の実数部と虚数部を計算します。

w = logspace(0,1,20);
[re,im] = nyquist(H,w);

reim は 3 次元配列で、最初の 2 つの次元は H の出力次元と入力次元に対応し、3 番目の次元は周波数の数です。たとえば、re の次元を確認します。

size(re)
ans = 1×3

     2     3    20

したがって、たとえば re(1,3,10) は、w 内の 10 番目の周波数で計算された、3 番目の入力から最初の出力への応答の実数部です。同様に、im(1,3,10) には同じ応答の虚数部が含まれています。

同定されたモデルの周波数応答の実数部と虚数部の標準偏差を計算します。このデータを使用して、応答の不確かさの 3σ プロットを作成します。

推定データ z2 を読み込みます。

load iddata2 z2;

データを使用して伝達関数モデルを特定します。tfest コマンドを使用するには System Identification Toolbox™ ソフトウェアが必要です。

sys_p = tfest(z2,2);

512 個の周波数のセット w について、周波数応答の実数部と虚数部の標準偏差を取得します。

w = linspace(-10*pi,10*pi,512);
[re,im,wout,sdre,sdim] = nyquist(sys_p,w);

reim は周波数応答の実数部と虚数部、sdresdim はそれぞれの標準偏差です。wout の周波数は、w で指定した周波数と同じです。

この標準偏差データを使用して、信頼領域に対応する 3σ プロットを作成します。

re = squeeze(re);
im = squeeze(im); 
sdre = squeeze(sdre);
sdim = squeeze(sdim);
plot(re,im,'b',re+3*sdre,im+3*sdim,'k:',re-3*sdre,im-3*sdim,'k:')
xlabel('Real Axis');
ylabel('Imaginary Axis');

Figure contains an axes object. The axes object contains 3 objects of type line.

複素係数をもつモデルと実数係数をもつモデルのナイキスト線図を同じプロット上に作成します。

rng(0)
A = [-3.50,-1.25-0.25i;2,0];
B = [1;0];
C = [-0.75-0.5i,0.625-0.125i];
D = 0.5;
Gc = ss(A,B,C,D);
Gr = rss(4);
nyquist(Gc,Gr)
legend('Complex-coefficient model','Real-coefficient model')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Complex-coefficient model, Real-coefficient model.

このナイキスト線図は常に、1 つは正の周波数、もう 1 つは負の周波数の 2 つの分岐を示します。矢印は各分岐に対する周波数の増加の方向を示します。複素係数をもつモデルの場合、2 つの分岐は対称ではありません。実数係数をもつモデルの場合、負の分岐は対称性によって得られます。

入力引数

すべて折りたたむ

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

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

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

    • 調整可能な制御設計ブロックの場合、関数は周波数応答データをプロットする処理と返す処理の両方においてモデルをその現在の値で評価します。

    • 不確かさをもつ制御設計ブロックの場合、関数はモデルのノミナル値とランダム サンプルをプロットします。出力引数を使用する場合、関数はノミナル モデルのみの周波数応答データを返します。

  • frd モデルなどの周波数応答データ モデル。このようなモデルの場合、関数はモデルで定義されている周波数での応答をプロットします。

  • idtf (System Identification Toolbox)idss (System Identification Toolbox)idproc (System Identification Toolbox) モデルなどの同定された LTI モデル。このようなモデルの場合、関数は信頼区間をプロットし、周波数応答の標準偏差を返すこともできます。応答の不確かさをもつ同定されたモデルのナイキスト線図の作成を参照してください。(同定されたモデルを使用するには System Identification Toolbox™ ソフトウェアが必要です)。

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

ライン スタイル、マーカー、色。1、2、または 3 文字の string または文字ベクトルとして指定します。文字が表示される順序は任意です。3 つの特性 (ライン スタイル、マーカーおよび色) をすべて指定する必要はありません。たとえば、ライン スタイルを省略してマーカーを指定した場合、プロットはラインなしでマーカーのみを表示します。この引数の設定の詳細については、関数 plot の入力引数 LineSpec を参照してください。

例: 'r--' は赤い破線を指定します。

例: '*b' は青いアスタリスク マーカーを指定します。

例: 'y' は黄色いラインを指定します。

周波数応答を計算およびプロットする周波数。cell 配列 {wmin,wmax} または周波数値のベクトルとして指定します。

  • w が形式 {wmin,wmax} の cell 配列の場合、関数は wmin から wmax の範囲の周波数で応答を計算します。

  • w が周波数のベクトルの場合、関数は指定された各周波数で応答を計算します。たとえば、logspace を使用すると、対数的に等間隔な周波数値の行ベクトルを生成できます。ベクトル w には正と負の両方の周波数を含めることができます。

プロットに対して周波数範囲 [wmin,wmax] を指定する場合、プロットには正の周波数 [wmin,wmax] と負の周波数 [–wmax,–wmin] の両方で構成される等高線が表示されます。

周波数はラジアン/TimeUnit 単位で指定します。ここで TimeUnit はモデルの TimeUnit プロパティです。

出力引数

すべて折りたたむ

システム応答の実数部。3 次元配列として返されます。この配列の次元は (システム出力数) × (システム入力数) × (周波数点数) です。

  • SISO システムの場合、re(1,1,k)w または woutk 番目の周波数における応答の実数部を提供します。例については、周波数応答の実数部と虚数部の取得を参照してください。

  • MIMO システムの場合、re(i,j,k)j 番目の入力から i 番目の出力への k 番目の周波数における応答の実数部を提供します。例については、MIMO システムのナイキスト線図を参照してください。

システム応答の虚数部。3 次元配列として返されます。この配列の次元は (システム出力数) × (システム入力数) × (周波数点数) です。

  • SISO システムの場合、im(1,1,k)w または woutk 番目の周波数における応答の虚数部を提供します。例については、周波数応答の実数部と虚数部の取得を参照してください。

  • MIMO システムの場合、im(i,j,k)j 番目の入力から i 番目の出力への k 番目の周波数における応答の虚数部を提供します。例については、MIMO システムのナイキスト線図を参照してください。

関数がシステム応答を返す周波数。列ベクトルとして返されます。入力引数 w を使用して周波数を指定する場合を除き、関数はモデル ダイナミクスに基づいて周波数値を選択します。

wout には複素係数をもつモデルの負の周波数値も含まれます。

周波数値は TimeUnit ごとのラジアンです。ここで、TimeUnitsysTimeUnit プロパティ値です。

各周波数点における応答の実数部の推定標準偏差。3 次元配列として返されます。sdre の次元は re と同じです。

sys同定された LTI モデルではない場合、sdre[] になります。

各周波数点における応答の虚数部の推定標準偏差。3 次元配列として返されます。sdim の次元は im と同じです。

sys同定された LTI モデルではない場合、sdim[] になります。

ヒント

  • 追加のプロット カスタマイズ オプションが必要な場合は、代わりに nyquistplot を使用します。

  • ナイキスト線図に特に適用される 2 つのズーム オプションは右クリック メニューから使用できます。

    • フル ビュー —ナイキスト線図の制約されていない分岐を切り取りますが、臨界点 (–1, 0) が含まれます。

    • ズーム オン (-1,0) — 臨界点付近 (–1, 0) をズームします。臨界点ズームにプログラム的にアクセスするには、zoomcp コマンドを使用します。詳細については、nyquistplot を参照してください。

  • ある周波数における実数値と虚数値を示すデータ マーカーをアクティブにするには、曲線上の任意の場所をクリックします。以下の図は、データ マーカーが表示された nyquist プロットを示しています。

バージョン履歴

R2006a より前に導入