メインコンテンツ

nyquistplot

R2026b

動的システムのナイキスト応答のプロット

    説明

    nyquistplot 関数は、動的システム モデルのナイキスト応答をプロットします。プロットをカスタマイズするには、NyquistPlot オブジェクトを返し、ドット表記を使用して変更します。詳細については、コマンド ラインでの線形解析プロットのカスタマイズを参照してください。

    ナイキスト応答データを取得するには、nyquist 関数を使用します。

    nyquistplot(sys) は、動的システム モデル sys のナイキスト応答をプロットします。

    sys が多入力多出力 (MIMO) モデルである場合、nyquistplot 関数は、各プロットが 1 つの入出力ペアの周波数応答を示すナイキスト線図のグリッドを作成します。

    例

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

    例

    nyquistplot(sys1,LineSpec1,...,sysN,LineSpecN) は、各システムのナイキスト線図のライン スタイル、マーカー タイプ、および色を設定します。

    例

    nyquistplot(___,w) は、w で指定された周波数の応答をプロットします。周波数範囲または周波数のベクトルを指定できます。w は、前述の構文の任意の入力引数の組み合わせで使用できます。

    例

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

    例

    nyquistplot(___,Name=Value) は、1 つ以上の名前と値の引数を使用して応答プロパティを指定します。たとえば、nyquistplot(sys,LineWidth=1) はプロット ラインの幅を 1 に設定します。 (R2026a 以降)

    • 複数のシステムの応答をプロットする場合、指定した名前と値の引数はすべての応答に適用されます。

    • 次の名前と値の引数は、他の入力引数で指定された値をオーバーライドします。

      • FrequencySpec — w を使用して指定された周波数値をオーバーライドします。

      • Color — LineSpec を使用して指定された色をオーバーライドします。

      • MarkerStyle — LineSpec を使用して指定されたマーカー スタイルをオーバーライドします。

      • LineStyle — LineSpec を使用して指定されたライン スタイルをオーバーライドします。

    nyquistplot(parent,___) は、Figure や TiledChartLayout などの指定された親グラフィックス コンテナーにナイキスト応答をプロットし、Parent プロパティを設定します。指定された開いている Figure にプロットを作成する場合、または App Designer でアプリを作成する場合に、この構文を使用します。

    np = nyquistplot(___) は、ナイキスト応答をプロットし、対応するチャート オブジェクトを返します。応答プロットの外観と動作をカスタマイズするには、ドット表記を使用してチャート オブジェクトのプロパティを変更します。

    例

    すべて折りたたむ

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

    5 つの状態をもつランダムな状態空間モデルを生成し、チャート オブジェクト np を使用してナイキスト線図を作成します。

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

    MATLAB figure

    位相単位をラジアンに変更し、グリッドをオンにします。これを行うには、チャート オブジェクトのプロパティを編集します。

    np.PhaseUnit = "rad";
    grid on;

    MATLAB figure

    チャート オブジェクトを変更すると、ナイキスト線図は自動的に更新されます。

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

    plotoptions = nyquistoptions("cstprefs");

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

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

    MATLAB figure

    ツールボックスの基本設定によっては、取得したプロットの外観がこのプロットと異なって見える場合もあります。明示的に設定したプロパティのみ (この例では PhaseUnits と Grid) が、ツールボックスの基本設定をオーバーライドします。

    動的システム モデルのナイキスト線図を作成し、対応するチャート オブジェクトを作成します。

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

    MATLAB figure

    プロット タイトルのテキストを変更します。

    np.Title.String = "Nyquist Plot of sys";

    MATLAB figure

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

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

    MATLAB figure

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

    zoomcp(h)

    MATLAB figure

    同定された次数 2 と次数 6 の状態空間モデルの周波数応答を、周波数サンプル 50 個ごとにレンダリングされるそれらの 1-std 信頼領域と共に比較します。

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

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

    MATLAB figure

    どちらのモデルも、データに約 76% 適合しています。ただし、線図に示すように、sys2 は周波数応答でより高い不確かさを示しています。この不確かさは、特にナイキスト周波数の近傍で見られます。これを確認するには、ナイキスト応答が表示されている点のサブセットにおける信頼領域を表示します。

    np.ShowNegativeFrequencies = "off";
    np.Characteristics.ConfidenceRegion.DisplaySampling = 50;
    np.Characteristics.ConfidenceRegion.Visible = "on";

    MATLAB figure

    あるいは、線図を右クリックして [特性]、[信頼領域] を選択し、信頼領域の表示をオンにします。

    この例では、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.
    

    チャート オブジェクト np をもつナイキスト線図を作成します。

    np = nyquistplot(sys_mimo);

    MATLAB figure

    線図で負の周波数データを非表示にします。

    np.ShowNegativeFrequencies = "off";

    MATLAB figure

    チャート オブジェクトを変更すると、ナイキスト線図は自動的に更新されます。MIMO モデルの場合、nyquistplot はナイキスト線図の配列を生成し、各プロットは 1 組の I/O の周波数応答を表示します。

    入力引数

    すべて折りたたむ

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

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

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

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

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

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

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

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

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

    例: '--or' は、円マーカーをもつ赤い破線です。

    ライン スタイル説明
    "-"実線
    "--"破線
    ":"点線
    "-."一点鎖線
    マーカー説明
    "o"円
    "+"プラス記号
    "*"アスタリスク
    "."点
    "x"x 印
    "_"水平線
    "|"垂直線
    "s"正方形
    "d"菱形
    "^"上向き三角形
    "v"下向き三角形
    ">"右向き三角形
    "<"左向き三角形
    "p"星形五角形
    "h"星形六角形
    色説明
    "r"赤
    "g"緑
    "b"青
    "c"シアン
    "m"マゼンタ
    "y"黄色
    "k"黒
    "w"白

    応答を計算する周波数。次のいずれかとして指定します。

    • 形式 {wmin,wmax} の cell 配列 — wmin から wmax の範囲の周波数で応答を計算します。wmax が sys のナイキスト周波数より大きい場合、応答はナイキスト周波数までしか計算されません。

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

    • [] — システム ダイナミクスに基づいて自動的に周波数を選択します。

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

    ナイキスト線図のオプション。nyquistoptions オブジェクトとして指定します。これらのオプションを使用してナイキスト線図の外観をカスタマイズできます。plotoptions に指定する設定は、現在の MATLAB セッションの基本設定をオーバーライドします。

    親グラフィックス コンテナー。次のいずれかのオブジェクトとして指定します。

    • Figure

    • TiledChartLayout

    • UIFigure

    • UIGridLayout

    • UIPanel

    • UITab

    名前と値の引数

    すべて折りたたむ

    オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

    例: nyquistplot(sys,LegendDisplay="off") は、プロット凡例から sys の応答を非表示にします。

    応答を計算する周波数。次のいずれかの値として指定します。

    • 形式 {wmin,wmax} の cell 配列 — wmin から wmax の範囲の周波数で応答を計算します。wmax が sys のナイキスト周波数より大きい場合、応答はナイキスト周波数までしか計算されません。

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

    • [] — システム ダイナミクスに基づいて自動的に周波数を選択します。

    複素係数をもつモデルでは、プロットに対して周波数範囲 [wmin,wmax] を指定する場合、次のようになります。

    • 対数周波数スケールで、プロット周波数範囲は [wmin,wmax] に設定され、プロットは、1 つは正の周波数 [wmin,wmax]、もう 1 つは負の周波数 [–wmax,–wmin] の 2 つの分岐を示します。

    • 線形周波数スケールで、プロット周波数範囲は [–wmax,wmax] に設定され、プロットは、周波数値 0 を中心とする対称な周波数範囲をもつ 1 つの分岐を示します。

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

    応答名。string または文字ベクトルとして指定します。string として保存されます。

    応答の可視性。次の logical オン/オフ値のいずれかとして指定します。

    • "on"、1、または true — 応答をプロットに表示します。

    • "off"、0、または false — 応答をプロットに表示しません。

    値は、matlab.lang.OnOffSwitchState 型の on/off の logical 値として保存されます。

    凡例に応答をリストするオプション。次の logical オン/オフ値のいずれかとして指定します。

    • "on"、1、または true — 凡例に応答をリストします。

    • "off"、0、または false — 凡例に応答をリストしません。

    値は、matlab.lang.OnOffSwitchState 型の on/off の logical 値として保存されます。

    マーカー スタイル。次のいずれかの値として指定します。名前と値の引数を使用してマーカー スタイルを指定すると、LineSpec を使用して指定したマーカー スタイルがオーバーライドされます。

    マーカー説明
    "none"マーカーなし
    "o"円
    "+"プラス記号
    "*"アスタリスク
    "."点
    "x"x 印
    "_"水平線
    "|"垂直線
    "s"正方形
    "d"菱形
    "^"上向き三角形
    "v"下向き三角形
    ">"右向き三角形
    "<"左向き三角形
    "p"星形五角形
    "h"星形六角形

    プロットの色。RGB 3 成分または 16 進数のカラー コードとして指定します。RGB 3 成分として保存されます。名前と値の引数を使用して色を指定すると、LineSpec を使用して指定した色がオーバーライドされます。

    一般的な色を名前で指定することもできます。次の表に、そうした色とそれに対応する RGB 3 成分および 16 進数のカラー コードをリストします。

    色の名前RGB 3 成分16 進数のカラー コード

    "red" または "r"

    [1 0 0]#FF0000

    "green" または "g"

    [0 1 0]#00FF00

    "blue" または "b"

    [0 0 1]#0000FF

    "cyan" または "c"

    [0 1 1]#00FFFF

    "magenta" または "m"

    [1 0 1]#FF00FF

    "yellow" または "y"

    [1 1 0]#FFFF00

    "black" または "k"

    [0 0 0]#000000

    "white" または "w"

    [1 1 1]#FFFFFF

    ライン スタイル。次のいずれかの値として指定します。名前と値の引数を使用してライン スタイルを指定すると、LineSpec を使用して指定したライン スタイルがオーバーライドされます。

    ライン スタイル説明
    "-"実線
    "--"破線
    ":"点線
    "-."一点鎖線
    "none"ラインなし

    マーカー サイズ。正のスカラーとして指定します。

    ラインの幅。正のスカラーとして指定します。

    系列インデックス。正の整数または "none" として指定します。

    既定では、SeriesIndex プロパティは、応答がチャートに追加された順序に対応する数値です (1 から始まります)。MATLAB はこの数値を使用して、応答に色、ライン スタイル、またはマーカーを自動的に割り当てるためのインデックスを計算します。チャート内の応答で SeriesIndex の数値が同じであるものは、色、ライン スタイル、およびマーカーも同じになります。

    SeriesIndex 値 "none" は、応答がインデックス方式を利用しないことを示します。

    出力引数

    すべて折りたたむ

    チャート オブジェクト。NyquistPlot オブジェクトとして返されます。プロットの外観と動作をカスタマイズするには、ドット表記を使用してこのオブジェクトのプロパティを変更します。詳細については、NyquistPlot Properties を参照してください。

    ヒント

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

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

      • ズーム オン (-1,0) — 臨界点付近 (-1,0) をズームします。プログラムから臨界点ズームにアクセスするには、zoomcp コマンドを使用します。

    バージョン履歴

    R2006a より前に導入

    すべて展開する