Main Content

impulseplot

追加のプロット カスタマイズ オプションを使用してインパルス応答をプロットする

説明

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

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

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

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

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

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

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

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

h = impulseplot(___,tFinal) は、t = 0 から最終時間 t = tFinal までのインパルス応答をシミュレーションします。sysTimeUnit プロパティで指定されるシステム時間単位で tFinal を指定します。サンプル時間を指定しない離散時間システム (Ts = -1) では、impulseplottFinal を、シミュレートするサンプリング間隔の数として解釈します。

h = impulseplot(___,t) は、時間ベクトル t を使用してインパルス応答をシミュレーションします。sysTimeUnit プロパティで指定されるシステム時間単位で t を指定します。

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

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

すべて折りたたむ

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

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

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

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

setoptions(h,'TimeUnits','minutes','Grid','on');

setoptions を呼び出すと、インパルス プロットは自動的に更新されます。

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

plotoptions = timeoptions('cstprefs');

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

plotoptions.TimeUnits = 'minutes';
plotoptions.Grid = 'on';
impulseplot(sys,plotoptions);

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

この例では、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 = impulseplot(sys_mimo)

h =

	resppack.timeplot
p = getoptions(h)
p =

                   Normalize: 'off'
         SettleTimeThreshold: 0.0200
              RiseTimeLimits: [0.1000 0.9000]
                   TimeUnits: 'seconds'
    ConfidenceRegionNumberSD: 1
                  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,'Grid','on','GridColor',[1 0 0]);

setoptions を呼び出すと、インパルス プロットは自動的に更新されます。MIMO モデルの場合、impulseplot はプロットのグリッドを生成し、各プロットは 1 組の I/O のインパルス応答を表示します。

パラメトリックと同定されたモデルのインパルス応答をノンパラメトリック (実測) モデルのステップ応答と比較し、3-σ の信頼領域も表示します。(同定されたモデルには、System Identification Toolbox™ ソフトウェアが必要です。)

サンプル データからパラメトリックおよびノンパラメトリック モデルを同定します。

load iddata1 z1
sys1 = ssest(z1,4); 
sys2 = impulseest(z1);

両方の同定されたモデルのインパルス応答をプロットします。プロット ハンドルを使用して、3-σ の信頼領域を表示します。

t = -1:0.1:5;
h = impulseplot(sys1,'r',sys2,'b',t);
showConfidence(h,3)
legend('parametric','nonparametric')

ノンパラメトリック モデル sys2 で不確かさが高まっているのがわかります。

この例では、次の零点-極-ゲイン モデルのインパルス応答を調べて、インパルス プロットを tFinal = 15 秒に制限します。タイトルに 15 ポイントの青いテキストを使用します。このプロットは、それを生成する MATLAB セッションの基本設定にかかわらず、外観が同じになります。

sys = zpk(-1,[-0.2+3j,-0.2-3j],1)*tf([1 1],[1 0.05]);
tFinal = 15;

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

plotoptions = timeoptions;

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

plotoptions.Title.FontSize = 15;
plotoptions.Title.Color = [0 0 1];

ここで、オプション セット plotoptions を使用してインパルス応答プロットを作成します。

h = impulseplot(sys,tFinal,plotoptions);

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

入力引数

すべて折りたたむ

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

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

  • sparss モデルまたは mechss モデルなどのスパース状態空間モデル。スパース モデルを使用する場合は最終時間 tFinal を指定しなければなりません。

  • 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 がモデルの配列である場合、この関数は同じ座標軸上に配列のすべてのモデルのインパルス応答をプロットします。

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

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

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

y

黄色

m

マゼンタ

c

シアン

r

g

b

w

k

インパルス応答の計算の最終時間。スカラーとして指定します。sysTimeUnit プロパティで指定されるシステム時間単位で tFinal を指定します。サンプル時間を指定しない離散時間システム (Ts = -1) では、impulseplottFinal を、シミュレートするサンプリング間隔の数として解釈します。

インパルス応答のシミュレーションの時間。ベクトルとして指定します。sysTimeUnit プロパティで指定されるシステム時間単位で時間ベクトル t を指定します。時間ベクトルは、実数で有限でなければなりません。また、単調増加で等間隔の時間サンプルを含まなければなりません。

時間ベクトル t は次のとおりです。

  • t = Tinitial:Tsample:Tfinal (離散時間システムの場合)。

  • t = Tinitial:dt:Tfinal (連続時間システムの場合)。ここでは、dt は連続時間システムの離散近似のサンプル時間です。

ターゲット座標軸。Axes オブジェクトとして指定します。座標軸を指定せず、現在の座標軸が直交座標軸の場合、impulseplot は現在の座標軸上でプロットします。インパルス プロットの作成時に AX を使用して特定の座標軸にプロットします。

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

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

出力引数

すべて折りたたむ

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

バージョン履歴

R2006a より前に導入