Main Content

sigmaplot

追加のプロット カスタマイズ オプションを使用して周波数応答の特異値をプロットする

説明

sigmaplot では、sigma よりも広範囲のプロット カスタマイズ オプションを使用して、動的システム モデルの周波数応答の特異値 (SV) をプロットできます。sigmaplot を使用してプロット ハンドルを取得し、それを使用して軸座標のラベル、軸座標の範囲、軸座標の単位の変更など、プロットをカスタマイズできます。sigmaplot を使用して、座標軸ハンドルで表される既存の座標軸のセット上に SV プロットを描画することもできます。プロット ハンドルを使用して既存の SV プロットをカスタマイズするには、次の手順に従います。

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

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

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

詳細については、コマンド ラインからの応答プロットのカスタマイズを参照してください。既定のオプションを使用して SV プロットを作成するか、周波数応答データを抽出するには、sigma を使用します。

h = sigmaplot(sys) は、動的システム モデル sys の周波数応答の特異値 (SV) をプロットし、プロットのプロット ハンドル h を返します。getoptions コマンドと setoptions コマンドを使ってプロットをカスタマイズするために、このハンドル h を使用できます。

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

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

h = sigmaplot(___,w) は、w の周波数で指定された周波数の特異値をプロットします。

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

  • w が周波数のベクトルの場合、sigmaplot はそれぞれの指定された周波数で特異値をプロットします。

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

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

h = sigmaplot(___,type) は、type 引数に基づいて変更された特異値応答をプロットします。type は、以下のように指定します。

  • 1 は周波数応答 H-1 の SV をプロットします。ここで H は sys の周波数応答です。

  • 2 は周波数応答 I+H の SV をプロットします。

  • 3 は周波数応答 I+H-1 の SV をプロットします。

"正方システム"、つまり入力と出力が同数のシステムに使用できるのは type 引数のみです。

h = sigmaplot(AX,___) は、ハンドル AX をもつ現在の Figure の Axes オブジェクトに特異値をプロットします。

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

すべて折りたたむ

たとえば、プロット ハンドルを使用して周波数単位を Hz に変更し、グリッドをオンにします。

5 つの状態をもつランダムな状態空間モデルを生成し、プロット ハンドル h をもつシグマ プロットを作成します。

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

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

setoptions(h,'FreqUnits','Hz','Grid','on');

setoptions を呼び出すと、シグマ プロットは自動的に更新されます。

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

p = sigmaoptions('cstprefs');

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

p.FreqUnits = 'Hz';
p.Grid = 'on';
sigmaplot(sys,p);

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

この例では、タイトルに 15 ポイントの赤いテキストを使用するシグマ プロットを作成します。このプロットは、それを生成する MATLAB セッションの基本設定にかかわらず、外観が同じになります。

最初に、sigmaoptions を使用して既定のオプション セットを作成します。

plotoptions = sigmaoptions;

次に、オプション セット plotoptions の必要なプロパティを変更します。

plotoptions.Title.FontSize = 15;
plotoptions.Title.Color = [1 0 0];
plotoptions.FreqUnits = 'Hz';
plotoptions.Grid = 'on';

次に、オプション セット plotoptions を使用してシグマ プロットを作成します。

h = sigmaplot(tf(1,[1,1]),plotoptions);

plotoptions は固定のオプション セットで開始されるため、プロットの結果は MATLAB セッションのツールボックス基本設定とは独立したものになります。

この例では、次の連続時間 SISO 動的システムのシグマ プロットを作成します。次に、グリッドをオンにして、プロットの名前を変更し、周波数スケールを変更します。

sys(s)=s2+0.1s+7.5s4+0.12s3+9s2.Continuous-time SISO dynamic system

伝達関数 sys を作成します。

sys = tf([1 0.1 7.5],[1 0.12 9 0 0]);

次に、sigmaoptions を使用してオプション セットを作成し、必要なプロット プロパティを変更します。

plotoptions = sigmaoptions;
plotoptions.Grid = 'on';
plotoptions.FreqScale = 'linear';
plotoptions.Title.String = 'Singular Value Plot of Transfer Function';

カスタムのオプション セット plotoptions を使用してシグマ プロットを作成します。

h = sigmaplot(sys,plotoptions);

sigmaplot はシステム ダイナミクスに基づいてプロット範囲を自動的に選択します。

この例では、3 つの入力、3 つの出力および 3 つの状態をもつ MIMO 状態空間モデルについて考えます。線形周波数スケール、周波数単位 Hz を使ってシグマ プロットを作成し、グリッドをオンにします。

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 = sigmaplot(sys_mimo);

p = getoptions(h)
p =

        FreqUnits: 'rad/s'
        FreqScale: 'log'
         MagUnits: 'dB'
         MagScale: 'linear'
       IOGrouping: 'none'
      InputLabels: [1x1 struct]
     OutputLabels: [1x1 struct]
     InputVisible: {0x1 cell}
    OutputVisible: {0x1 cell}
            Title: [1x1 struct]
           XLabel: [1x1 struct]
           YLabel: [1x1 struct]
        TickLabel: [1x1 struct]
             Grid: 'off'
        GridColor: [0.1500 0.1500 0.1500]
             XLim: {[1.0000e-03 1]}
             YLim: {[-25 15]}
         XLimMode: {'auto'}
         YLimMode: {'auto'}

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

setoptions(h,'FreqScale','linear','FreqUnits','Hz','Grid','on');

setoptions を呼び出すと、シグマ プロットは自動的に更新されます。

この例では、入力/出力データから同定されたパラメトリック モデルの周波数に対する SV を、同じデータを使用して同定されたノンパラメトリック モデルと比較します。データに基づいて、パラメトリック モデルとノンパラメトリック モデルを同定します。

データを読み込み、tfest および spa をそれぞれ使用してパラメトリック モデルとノンパラメトリック モデルを作成します。

load iddata2 z2;
w = linspace(0,10*pi,128);
sys_np = spa(z2,[],w);
sys_p = tfest(z2,2);

spatfest には System Identification Toolbox™ ソフトウェアが必要です。モデル sys_np はノンパラメトリックと同定されたモデルで、sys_p はパラメトリックと同定されたモデルです。

グリッドをオンにするオプション セットを作成します。次に、このオプション セットを使用して両方のシステムを含むシグマ プロットを作成します。

plotoptions = sigmaoptions;  
plotoptions.Grid = 'on';
h = sigmaplot(sys_p,'b--',sys_np,'r--',w,plotoptions);
legend('Parametric Model','Non-Parametric model');

次の 2 つの入力、2 つの出力の動的システムについて考えます。

H(s)=[03ss2+s+10s+1s+52s+6].

H(s) および I + H(s) の特異値応答をプロットします。プロット オプション セットを使用して適切なタイトルを設定します。

H = [0, tf([3 0],[1 1 10]) ; tf([1 1],[1 5]), tf(2,[1 6])];
opts1 = sigmaoptions;
opts1.Grid = 'on';
opts1.Title.String = 'Singular Value Plot of H(s)';
h1 = sigmaplot(H,opts1);

入力 2 を使用してタイプ I + H(s) の変更された SV をプロットします。

opts2 = sigmaoptions;
opts2.Grid = 'on';
opts2.Title.String = 'Singular Value Plot of I+H(s)';
h2 = sigmaplot(H,[],2,opts2);

入力引数

すべて折りたたむ

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

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

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

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

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

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

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

  • idtf (System Identification Toolbox)idss (System Identification Toolbox)idproc (System Identification Toolbox) モデルなどの同定された LTI モデル。このようなモデルの場合、関数は信頼区間をプロットし、周波数応答の標準偏差を返すこともできます。(同定されたモデルを使用するには System Identification Toolbox™ ソフトウェアが必要です。)

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

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

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

y

黄色

m

マゼンタ

c

シアン

r

g

b

w

k

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

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

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

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

変更された特異値をプロットするオプション。次のオプションのいずれかとして指定します。

  • 1 は周波数応答 H-1 の SV をプロットします。ここで H は sys の周波数応答です。

  • 2 は周波数応答 I+H の SV をプロットします。

  • 3 は周波数応答 I+H-1 の SV をプロットします。

"正方システム"、つまり入力と出力が同数のシステムに使用できるのは type 引数のみです。

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

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

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

出力引数

すべて折りたたむ

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

バージョン履歴

R2006a より前に導入