Main Content

initialplot

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

    説明

    initialplot では、initial よりも広範囲のプロット カスタマイズ オプションを使用して初期条件応答をプロットできます。initialplot を使用してプロット ハンドルを取得し、それを使用して軸座標のラベル、軸座標の範囲、軸座標の単位の変更など、プロットをカスタマイズできます。initialplot を使用して、座標軸ハンドルで表される既存の座標軸のセット上に初期条件応答をプロットすることもできます。プロット ハンドルを使用して既存のプロットをカスタマイズするには、次のようにします。

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

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

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

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

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

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

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

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

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

    h = initialplot(AX,___) は、ハンドル AX をもつ現在の Figure の Axes オブジェクトに状態の初期条件応答をプロットします。

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

    すべて折りたたむ

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

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

    rng("default")
    sys = rss(5);
    x0 = [1,2,3,4,5];
    h = initialplot(sys,x0);

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

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

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

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

    plotoptions = timeoptions('cstprefs');

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

    plotoptions.TimeUnits = 'minutes';
    plotoptions.Grid = 'on';
    h = initialplot(sys,x0,plotoptions);

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

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

    sys(s)=[03ss2+s+10s+1s+52s+6].MIMO system

    初期条件プロットは状態空間モデルに対してのみサポートされているため、sys を状態空間形式に変換します。

    sys = ss([0, tf([3 0],[1 1 10]) ; tf([1 1],[1 5]), tf(2,[1 6])]);
    size(sys)
    State-space model with 2 outputs, 2 inputs, and 4 states.
    

    結果の状態空間モデルには 4 つの状態があります。そのため、初期条件ベクトルに 4 つの要素を与えます。

    x0 = [0.3,0.25,1,4];

    timeoptions を使用してプロット オプション セットを作成し、グリッドをオンにします。初期条件プロットを作成する前に、適切なタイトルを与えます。

    plotoptions = timeoptions;
    plotoptions.Grid = 'on';
    plotoptions.Title.String = 'Initial Condition Plot of MIMO System sys(s)';
    h = initialplot(sys,x0,plotoptions);

    この例では、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 を使用します。

    x0 = [0.35,0.1,4];
    h = initialplot(sys_mimo,x0);

    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: {0x1 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: {[0 400]}
                            YLim: {3x1 cell}
                        XLimMode: {'auto'}
                        YLimMode: {3x1 cell}
    

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

    setoptions(h,'Grid','on','GridColor',[1 0 0]);

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

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

    initialplot は状態空間モデルのみをサポートしているため、最初に、zpk モデルを ss モデルに変換します。

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

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

    plotoptions = timeoptions;

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

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

    これで、オプション セット plotoptions を使用して初期条件応答プロットを作成します。

    h = initialplot(sys,x0,tFinal,plotoptions);

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

    この例では、3 つの動的システムの初期条件応答をプロットし、プロット ハンドルを使用してグリッドを有効にします。

    まず、3 つのモデルを作成し、初期条件を与えます。

    rng('default');
    sys1 = rss(4); 
    sys2 = rss(4);
    sys3 = rss(4);
    x0 = [1,1,1,1];

    3 つのモデルの初期条件応答をプロットします。

    t = 0:0.1:5;
    h = initialplot(sys1,'r--',sys2,'b',sys3,'g-.',x0,t);
    legend('sys1','sys2','sys3')

    プロット ハンドルを使用してグリッドを有効にします。

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

    入力引数

    すべて折りたたむ

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

    • 状態空間 ss モデル。

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

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

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

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

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

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

    状態の初期条件。sys の状態の数と同じサイズのベクトルとして指定します。

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

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

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

    y

    黄色

    m

    マゼンタ

    c

    シアン

    r

    g

    b

    w

    k

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

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

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

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

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

    ターゲット座標軸。Axes オブジェクトとして指定します。座標軸を指定せず、現在の座標軸が直交座標軸の場合、initialplot は現在の座標軸上でプロットします。初期条件応答のプロットの作成時に AX を使用して特定の座標軸にプロットします。

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

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

    出力引数

    すべて折りたたむ

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

    バージョン履歴

    R2006a より前に導入