Main Content

nyquistplot

追加のプロット カスタマイズ オプションをもつナイキスト線図

    説明

    nyquistplot では、nyquist よりも広範囲のプロット カスタマイズ オプションを使用して、動的システム モデルのナイキスト線図をプロットできます。nyquistplot を使用してプロット ハンドルを取得し、それを使用して軸座標のラベル、軸座標の範囲、軸座標の単位の変更など、プロットをカスタマイズできます。nyquistplot を使用して、座標軸ハンドルで表される既存の座標軸のセット上にナイキスト線図を描画することもできます。プロット ハンドルを使用して既存のナイキスト線図をカスタマイズするには、次の手順に従います。

    1. プロット ハンドルを取得

    2. getoptions を使用してオプション セットを取得

    3. setoptions を使用してプロットを更新し、必要なオプションを変更

    詳細については、コマンド ラインからの応答プロットのカスタマイズ (Control System Toolbox)を参照してください。既定のオプションを使用してナイキスト線図を作成するか、周波数応答データの標準偏差、実数部と虚数部を抽出するには、nyquist を使用します。

    h = nyquistplot(sys) は、動的システム モデル sys のナイキスト線図をプロットし、プロットのプロット ハンドル h を返します。getoptions コマンドと setoptions コマンドを使ってプロットをカスタマイズするために、このハンドル h を使用できます。sys が多入力多出力 (MIMO) モデルである場合、nyquistplot はナイキスト線図のグリッドを生成し、各プロットは 1 組の I/O の周波数応答を示します。

    h = nyquistplot(sys1,sys2,...,sysN) は、複数の動的システム sys1,sys2,…,sysN のナイキスト線図を同じプロット上にプロットします。この構文を使用するには、すべてのシステムで入力数と出力数が同じでなければなりません。

    h = nyquistplot(sys1,LineSpec1,...,sysN,LineSpecN) は各システムのナイキスト線図に対するライン スタイル、マーカー タイプ、および色を設定します。この構文を使用するには、すべてのシステムで入力数と出力数が同じでなければなりません。

    h = nyquistplot(___,w) は、w の周波数で指定された周波数のナイキスト線図をプロットします。

    • w が形式 {wmin,wmax} の cell 配列の場合、nyquistplotwmin から wmax の範囲の周波数でナイキスト線図をプロットします。

    • w が周波数のベクトルの場合、nyquistplot はそれぞれの指定された周波数でナイキスト線図をプロットします。

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

    対数間隔の周波数ベクトルを作成するためには、logspace を参照してください。

    h = nyquistplot(AX,___) は、ハンドル AX をもつ現在の Figure の Axes オブジェクトにナイキスト線図をプロットします。

    h = nyquistplot(___,plotoptions) は、plotoptions で指定されたオプション セットを使用してナイキスト線図をプロットします。これらのオプションを使用して、コマンド ラインからナイキスト線図の外観をカスタマイズすることができます。plotoptions に指定する設定は、nyquistplot を実行する MATLAB® セッションの基本設定をオーバーライドします。したがって、ローカルの基本設定にかかわらず、同じ外観の複数のプロットを生成するスクリプトを記述する場合、この構文が有用です。

    すべて折りたたむ

    この例では、プロット ハンドルを使用して位相単位をラジアンに変更し、グリッドをオンにします。

    5 つの状態をもつランダムな状態空間モデルを生成し、プロット ハンドル h をもつナイキスト線図を作成します。

    rng("default")
    sys = rss(5);
    h = nyquistplot(sys);

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

    位相単位をラジアンに変更して、グリッドをオンにします。そのためには、setoptions を使用してプロット ハンドル h のプロパティを編集します。

    setoptions(h,'PhaseUnits','rad','Grid','on');

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

    setoptions を呼び出すと、ナイキスト線図は自動的に更新されます。

    または、nyquistoptions コマンドを使用して、必要なプロット オプションを指定することもできます。最初に、ツールボックス基本設定に基づいてオプション セットを作成します。

    plotoptions = nyquistoptions('cstprefs');

    位相単位をラジアンに設定してグリッドを有効にすることで、オプション セットのプロパティを変更します。

    plotoptions.PhaseUnits = 'rad';
    plotoptions.Grid = 'on';
    nyquistplot(sys,plotoptions);

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

    同じオプション セットを使用して、同じカスタマイズを使用する複数のナイキスト線図を作成できます。独自のツールボックス基本設定によっては、得られるプロットはこのプロットの外観と異なる場合があります。明示的に設定したプロパティ (この例では、PhaseUnits および Grid) のみが、ツールボックス基本設定をオーバーライドします。

    動的システム モデルのナイキスト線図を作成し、そのプロットにハンドルを保存します。

    sys = tf(100,[1,2,1]);
    h = nyquistplot(sys);

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

    プロットのタイトルを "Nyquist Plot of sys" に変更します。これを行うには、getoptions を使用して、プロット ハンドル h から既存のプロット オプションを抽出します。

    opt = getoptions(h)
    opt =
    
                             FreqUnits: 'rad/s'
                              MagUnits: 'dB'
                            PhaseUnits: 'deg'
                       ShowFullContour: 'on'
              ConfidenceRegionNumberSD: 1
        ConfidenceRegionDisplaySpacing: 5
                            IOGrouping: 'none'
                           InputLabels: [1x1 struct]
                          OutputLabels: [1x1 struct]
                          InputVisible: {'on'}
                         OutputVisible: {'on'}
                                 Title: [1x1 struct]
                                XLabel: [1x1 struct]
                                YLabel: [1x1 struct]
                             TickLabel: [1x1 struct]
                                  Grid: 'off'
                             GridColor: [0.1500 0.1500 0.1500]
                                  XLim: {[-20 100]}
                                  YLim: {[-80 80]}
                              XLimMode: {'auto'}
                              YLimMode: {'auto'}
    

    Title オプションは、いくつかのフィールドから成る構造体です。

    opt.Title
    ans = struct with fields:
             String: 'Nyquist Diagram'
           FontSize: 11
         FontWeight: 'bold'
          FontAngle: 'normal'
              Color: [0 0 0]
        Interpreter: 'tex'
    
    

    Title 構造体の String フィールドを変更し、setoptions を使用して変更をプロットに適用します。

    opt.Title.String = 'Nyquist Plot of sys';
    setoptions(h,opt)

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

    動的システムのナイキスト周波数応答をプロットします。プロット ハンドルに変数名を割り当ててアクセス可能にし、さらに操作を行えるようにします。

    sys = tf(100,[1,2,1]);
    h = nyquistplot(sys);

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

    臨界点 (–1,0) にズームインします。これを対話的に行うには、プロットで右クリックし、[ズーム オン (-1,0)] を選択します。あるいは、プロット ハンドル h 上で zoomcp コマンドを使用します。

    zoomcp(h)

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

    次数 2 および 6 の同定された状態空間モデルの周波数応答と 50 番目の周波数サンプルごとに表示される 1-std の標準偏差信頼領域を比較します。

    同定されたモデル データを読み込み、n4sid を使用して状態空間モデルを推定します。次に、ナイキスト線図をプロットします。

    load iddata1
    sys1 = n4sid(z1,2); 
    sys2 = n4sid(z1,6);
    w = linspace(10,10*pi,256);
    h = nyquistplot(sys1,sys2,w);

    Figure contains an axes object. The axes object with title From: u1 To: y1 contains 2 objects of type line. These objects represent sys1, sys2.

    両方のモデルは、データを約 76%近似します。しかし sys2 では、プロットに示されるように、周波数応答の不確かさが特にナイキスト周波数近くで高くなります。このことを確認するには、ナイキスト応答が表示されている点のサブセットに信頼領域を表示します。

    setoptions(h,'ConfidenceRegionDisplaySpacing',50,...
                 'ShowFullContour','off');

    Figure contains an axes object. The axes object with title From: u1 To: y1 contains 2 objects of type line. These objects represent sys1, sys2.

    信頼領域の表示を有効にするには、プロットを右クリックして [特性][信頼領域] を選択します。

    この例では、3 つの入力、3 つの出力および 3 つの状態をもつ MIMO 状態空間モデルについて考えます。ナイキスト線図を作成し、等高線の一部のみを表示して、グリッドをオンにします。

    MIMO 状態空間モデル sys_mimo を作成します。

    J = [8 -3 -3; -3 8 -3; -3 -3 8];
    F = 0.2*eye(3);
    A = -J\F;
    B = inv(J);
    C = eye(3);
    D = 0;
    sys_mimo = ss(A,B,C,D);
    size(sys_mimo)
    State-space model with 3 outputs, 3 inputs, and 3 states.
    

    プロット ハンドル h を使ってナイキスト線図を作成し、利用可能なオプションのリストに対して getoptions を使用します。

    h = nyquistplot(sys_mimo);

    Figure contains 9 axes objects. Axes object 1 with title From: In(1) contains an object of type line. This object represents sys\_mimo. Axes object 2 contains an object of type line. This object represents sys\_mimo. Axes object 3 contains an object of type line. This object represents sys\_mimo. Axes object 4 with title From: In(2) contains an object of type line. This object represents sys\_mimo. Axes object 5 contains an object of type line. This object represents sys\_mimo. Axes object 6 contains an object of type line. This object represents sys\_mimo. Axes object 7 with title From: In(3) contains an object of type line. This object represents sys\_mimo. Axes object 8 contains an object of type line. This object represents sys\_mimo. Axes object 9 contains an object of type line. This object represents sys\_mimo.

    p = getoptions(h)
    p =
    
                             FreqUnits: 'rad/s'
                              MagUnits: 'dB'
                            PhaseUnits: 'deg'
                       ShowFullContour: 'on'
              ConfidenceRegionNumberSD: 1
        ConfidenceRegionDisplaySpacing: 5
                            IOGrouping: 'none'
                           InputLabels: [1x1 struct]
                          OutputLabels: [1x1 struct]
                          InputVisible: {3x1 cell}
                         OutputVisible: {3x1 cell}
                                 Title: [1x1 struct]
                                XLabel: [1x1 struct]
                                YLabel: [1x1 struct]
                             TickLabel: [1x1 struct]
                                  Grid: 'off'
                             GridColor: [0.1500 0.1500 0.1500]
                                  XLim: {3x1 cell}
                                  YLim: {3x1 cell}
                              XLimMode: {3x1 cell}
                              YLimMode: {3x1 cell}
    

    setoptions を使用して必要なカスタマイズでプロットを更新します。

    setoptions(h,'ShowFullContour','off','Grid','on');

    Figure contains 9 axes objects. Axes object 1 with title From: In(1) contains an object of type line. This object represents sys\_mimo. Axes object 2 contains an object of type line. This object represents sys\_mimo. Axes object 3 contains an object of type line. This object represents sys\_mimo. Axes object 4 with title From: In(2) contains an object of type line. This object represents sys\_mimo. Axes object 5 contains an object of type line. This object represents sys\_mimo. Axes object 6 contains an object of type line. This object represents sys\_mimo. Axes object 7 with title From: In(3) contains an object of type line. This object represents sys\_mimo. Axes object 8 contains an object of type line. This object represents sys\_mimo. Axes object 9 contains an object of type line. This object represents sys\_mimo.

    setoptions を呼び出すと、ナイキスト線図は自動的に更新されます。MIMO モデルの場合、nyquistplot はナイキスト線図の配列を生成し、各プロットは 1 組の I/O の周波数応答を表示します。

    入力引数

    すべて折りたたむ

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

    • tf (Control System Toolbox)zpk (Control System Toolbox)ss (Control System Toolbox) モデルなどの連続時間または離散時間の数値 LTI モデル。

    • sparss (Control System Toolbox) モデルまたは mechss (Control System Toolbox) モデルなどのスパース状態空間モデル。スパース モデルに対して、周波数グリッド w を指定しなければなりません。

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

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

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

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

    • idtfidssidproc モデルなどの同定された LTI モデル。

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

    ライン スタイル、マーカー、色。記号を含む文字ベクトルまたは string として指定します。記号が表示される順序は任意です。3 つの特性 (ライン スタイル、マーカーおよび色) をすべて指定する必要はありません。たとえば、ライン スタイルを省略してマーカーを指定した場合、プロットはラインなしでマーカーのみを表示します。

    例: '--or' は円形マーカー付きの赤い破線

    ライン スタイル説明
    -実線
    --破線
    :点線
    -.一点鎖線
    マーカー説明
    'o'
    '+'プラス記号
    '*'アスタリスク
    '.'
    'x'x 印
    '_'水平線
    '|'垂直線
    's'正方形
    'd'菱形
    '^'上向き三角形
    'v'下向き三角形
    '>'右向き三角形
    '<'左向き三角形
    'p'星形五角形
    'h'星形六角形
    説明

    y

    黄色

    m

    マゼンタ

    c

    シアン

    r

    g

    b

    w

    k

    ターゲット座標軸。Axes または UIAxes オブジェクトとして指定します。座標軸を指定せず、現在の座標軸が直交座標軸の場合、nyquistplot は現在の座標軸上でプロットします。

    ナイキスト線図のオプション セット。NyquistPlotOptions オブジェクトとして指定します。このオプション セットを使用してナイキスト線図の外観をカスタマイズできます。nyquistoptions を使用して、オプション セットを作成します。plotoptions に指定する設定は、nyquistplot を実行する MATLAB セッションの基本設定をオーバーライドします。したがって、ローカルの基本設定にかかわらず、同じ外観の複数のプロットを生成するスクリプトを記述する場合、plotoptions が有用です。

    利用可能なオプションのリストについては、nyquistoptions を参照してください。

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

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

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

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

    出力引数

    すべて折りたたむ

    プロット ハンドル。handle オブジェクトとして返されます。getoptions および setoptions を使用してナイキスト線図のプロパティを取得および設定するには、ハンドル h を使用します。利用可能なオプションのリストについては、コマンド ラインからの応答プロットのカスタマイズ (Control System Toolbox)"プロパティと値のリファレンス" の節を参照してください。

    ヒント

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

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

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

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

    バージョン履歴

    R2012a で導入