最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

コマンド ラインからの応答プロットのカスタマイズ

コマンド ラインからのプロットのカスタマイズの概要

コマンド ラインからのプロットをカスタマイズするケース

コマンド ラインからどの応答プロットでもカスタマイズできます。多数のプロットを変更する場合に、コマンド ラインを使用すると便利です。たとえば、多数のプロットを生成するバッチ ジョブがある場合にすべてのプロットの x 軸の単位を変更するには、コードを数行入力するだけで済みます。

コマンド ラインからのプロットのカスタマイズ方法

Control System Toolbox™ アプリケーション プログラム インターフェイス (API) を使用して、コマンド ラインから応答プロットのオプションをカスタマイズします。

メモ:

この節では、MATLAB® グラフィックス オブジェクトの基本的な知識があることを前提にしています。詳細については、グラフィックス オブジェクト (MATLAB)を参照してください。

コマンド ラインからプロットをカスタマイズするには、次の手順に従います。

  1. API のプロット用構文を使用して、プロット ハンドル (プロットの識別子) を取得します。

    次に例を示します。

    h = stepplot(sys)
    

    これで、ステップ応答プロットに対するプロット ハンドル h が出力されます。

    プロット ハンドルの取得の詳細は、プロット ハンドルの取得を参照してください。

  2. プロット オプション ハンドル (設定可能なすべてのプロット オプションの識別子) を取得します。特定のプロットに対するプロット オプション ハンドルを取得するには、次のように入力します。

    p = getoptions(h);
    

    p は、プロット ハンドル h に対するプロット オプション ハンドルです。

    プロット オプション ハンドルの取得の詳細は、プロット オプション ハンドルの取得を参照してください。

  3. 関数 setoptions、およびプロット ハンドル、プロット オプション ハンドルを使用して、プロットのオプションにアクセスして変更します。

メモ

関数 setoptions で、プロット オプション ハンドルの代わりにプロパティと値の組み合わせを指定しても、プロットをカスタマイズできます。この場合は、コードが 1 行だけになります。

コマンド ラインからボード線図の単位を変更

この例では、ボード線図の単位を rad/s から Hz に変更する方法を説明します。

システムを作成し、システムの応答のボード線図を生成します。プロットは既定の単位、rad/s を使用します。

sys = tf(4,[1 0.5 4]);
h = bodeplot(sys);

bodeplot コマンドは、プロットのプロパティの変更に使用できるプロット ハンドルを返します。

単位を Hz に変更します。

p = getoptions(h);
p.FreqUnits = 'Hz';
setoptions(h,p)

x 軸ラベルは、単位の変更を反映するように更新されます。

コマンド ラインからプロットをカスタマイズするその他の例については、コマンド ラインからプロットをカスタマイズする例を参照してください。

プロット ハンドルの取得

プログラミングで応答プロットを操作するには、プロット ハンドルが必要です。このハンドルは、応答プロット オブジェクトに対する識別子です。Control System Toolbox のプロットのコマンド boderlocus などは、すべてプロット ハンドルを内部で使用するため、API には応答プロットのハンドルを明示的に返す一連のコマンドがあります。これらの関数の名前はすべて "plot" で終わるため、わかりやすくなっています。次の表は、関数の一覧です。

プロット ハンドルを出力する関数

関数

プロット

bodeplot

ボード線図 (ゲインと位相)

hsvplot

ハンケル特異値

impulseplot

インパルス応答

initialplot

初期条件

iopzplot

入力/出力の組み合わせに対する極/零点配置図

lsimplot

任意の入力に対する時間応答

nicholsplot

ニコルス線図

nyquistplot

ナイキスト線図

pzplot

極/零点

rlocusplot

根軌跡

sigmaplot

周波数応答の特異値

stepplot

ステップ応答

各応答プロットに対するプロット ハンドルを取得するには、表の関数を使用してください。たとえば、

h = bodeplot(sys)

これで、プロット ハンドル h が出力されます (ボード線図も描きます)。このハンドルを取得すると、プロット オブジェクト、この場合は、ボード線図のハンドルのメソッド setoptionsgetoptions を使用して、プロットのプロパティを変更できます。

プロット オプション ハンドルの取得

プロット オプション ハンドルの概要

プロット ハンドルを取得した後、特定の応答プロットに対して設定可能なすべてのプロット プロパティを識別するには、プロット オプション ハンドルが必要です。プロット オプション ハンドルを作成するには、2 つの方法があります。

ハンドルの取得

関数 getoptions では、プロット ハンドルからプロット オプション ハンドルを取得します。

p=getoptions(h) % Returns plot options handle p for plot handle h.

関数 getoptions は、プロパティの名前を入力引数として指定する場合に、そのプロパティ名に関連するプロパティ値が出力されます。

property_value=getoptions(h,PropertyName) % Returns a property 
                                          % value.

ハンドルの作成

次の形式の関数を使用すると、既定のプロット オプション ハンドルを作成できます。

<responseplot>options

次に例を示します。

p=bodeoptions;

これで、ボード線図に対するハンドルをインスタンス化できます。既定値のリストは、プロパティと値のリファレンスを参照してください。

この既定値を Control System Toolbox の既定値に設定する場合は、関数に cstprefs を渡します。次に例を示します。

p = bodeoptions('cstprefs');

これで、ボード線図のプロパティ/値のペアを Control System Toolbox の既定値に設定できます。

次の表は、プロット オプション ハンドルを作成するための関数のリストです。

プロット オプション ハンドルを作成するための関数

関数

作成されるプロット オプション ハンドルのタイプ

bodeoptions

ボード線図 (位相とゲイン)

hsvoptions

ハンケル特異値

nicholsoptions

ニコルス線図

nyquistoptions

ナイキスト線図

pzoptions

極/零点プロット

sigmaoptions

シグマ (特異値) プロット

timeoptions

時間応答 (インパルス、ステップなど)

変更可能なプロパティ

ユーザーが変更できる使用可能なプロパティと値の組み合わせを調べるには、次の形式を使用します。

help <responseplot>options

たとえば、

help bodeoptions

これらのどのパラメーターも関数 setoptions を使用して変更できます。次のトピックでは、さまざまな応答プロットを変更する例を示します。

応答プロットに対するプロパティ/値の組み合わせの詳細なリストは、プロパティと値のリファレンスを参照してください。

コマンド ラインからプロットをカスタマイズする例

プロット オプション ハンドルの操作

プロット オプション ハンドルを操作する基本的な方法は、2 とおりあります。

  • ドット表記 - ハンドルを MATLAB 構造体のように取り扱います。

  • プロパティと値の組み合わせ - 関数 setoptions の入力引数として、プロパティと値の組み合わせを明示的に指定します。

一部の例では、ドット表記の方法と、プロパティ/値の組み合わせを使用する方法の両方を示します。たとえば、システムに対しては次のように入力します。

sys = tf(1,[1 1]);

プロットの単位の変更

次のように、ボード線図の周波数単位を rad/s からヘルツに変更します。これを行うには、プロット ハンドルからオプション p を抽出し、オプションを編集して、それらをプロットに割り当て直します。

h = bodeplot(sys);
p = getoptions(h); 
p.FreqUnits = 'Hz'; 
setoptions(h,p)

あるいは、p を抽出せずに、h のオプションを直接設定します。

setoptions(h,'FreqUnits','Hz')

既存のプロット オプション ハンドルを使用してプロットを作成

次のように、2 番目のプロットをカスタマイズするには、既存のプロット オプション ハンドルを使用できます。

h1 = bodeplot(sys);
p1 = getoptions(h1);
h2 = bodeplot(sys,p1);

または、次を使用します。

h1 = bodeplot(sys);
h2 = bodeplot(sys2);
setoptions(h2,getoptions(h1))

既定のプロット オプション ハンドルの作成

次のコードを使用して、プロット オプション ハンドルをインスタンス化します。

p = bodeoptions;

周波数の単位を変更し、この変更を sys に適用します。

p.FreqUnits ='Hz';
h = bodeplot(sys,p);

構造体と同様にドット表記を使用

プロパティに値を割り当て、複数のプロット プロパティを一括変更するには、常にドット表記を使用できます。

h1 = bodeplot(sys);
p1 = getoptions(h1);
p1.FreqUnits = 'Hz';
p1.Title.String  =  'My Title';
setoptions(h1,p1)

関数 setoptions にプロパティの組み合わせを設定

ドット表記を使用する代わりに、関数 setoptions を使用して、周波数の単位をプロパティ/値の組み合わせとして指定します。

h1 = bodeplot(sys)
setoptions(h1,'FreqUnits','Hz')

単位が rad/s からヘルツに変更されたことを確認します。

getoptions(h1,'FreqUnits') % Returns frequency units for h1.
ans =

Hz

プロパティと値のリファレンス

すべての応答プロットに共通するプロパティ/値の組み合わせ

次の表は、すべての応答プロットに共通するプロパティ/値の組み合わせのリストです。

タイトル

プロパティ既定値

説明

Title.String

なし

'My Response Plot' などのプロット タイトル

Title.FontSize

8

Double

Title.FontWeight

標準

[light | normal | demi]

Title.FontAngle

標準

[normal | italic | oblique]

Title.Color

[0 0 0]

1-by-3 RGB vector

X 軸ラベル

プロパティ

既定値

説明

XLabel.String

なし

'Input Frequency' などの X 軸ラベル

Xlabel.FontSize

8

Double

Xlabel.FontWeight

標準

[light | normal | demi]

XLabel.FontAngle

標準

[normal | italic | oblique]

Xlabel.Color

[0 0 0]

1-by-3 RGB vector

Y 軸ラベル

プロパティ既定値

説明

YLabel.String

なし

'Control Signal Magnitude' などの Y 軸ラベル

Ylabel.FontSize

8

Double

Ylabel.FontWeight

標準

[light | normal | demi]

YLabel.FontAngle

標準

[normal | italic | oblique]

Ylabel.Color

[0 0 0]

1-by-3 RGB vector

目盛りラベル

プロパティ

既定値

説明

TickLabel.FontSize

8

Double

TickLabel.FontWeight

標準

[light | normal | demi]

TickLabel.FontAngle

標準

[normal | italic | oblique]

Ticklabel.Color

[0 0 0]

1-by-3 RGB vector

グリッドと軸の範囲

プロパティ

既定値

説明

grid

off

[on | off]

Xlim

{[]}

XLimMode プロパティが manual に設定される場合に、x 軸の範囲を指定する 1 x 2 の double の cell 配列。XLim プロパティがスカラーの場合は、スカラー拡張が適用されます。スカラーでない場合は、cell 配列の長さは、プロットに対する列の数 (システムの入力数) に等しくなければなりません。1 行 2 列の double は、xmax が xmin より大きい値を取る組み合わせ [xmin, xmax] でなければなりません。

XLimMode

{'auto'}

各エントリが 'auto' または 'manual' のいずれかである cell 配列です。これらのエントリは、対応する軸の x 軸の範囲モードを指定します。XLimMode プロパティが manual に設定される場合は、範囲は XLim プロパティで指定する値に設定されます。XLim プロパティがスカラーの場合は、スカラー拡張が適用されます。スカラーでない場合は、cell 配列の長さは、プロットに対する列の数 (システムの入力数) に等しくなければなりません。

YLim

{[]}

YLimMode プロパティが manual に設定される場合は、y 軸の範囲を指定する 1 x 2 の double の cell 配列。YLim プロパティがスカラーの場合は、スカラー拡張が適用されます。スカラーでない場合は、cell 配列の長さは、プロットに対する行の数 (システムの出力数) に等しくなければなりません。1 x 2 の double cell 配列は ymax が ymin より大きい値を取る組み合わせ [ymin, ymax] でなければなりません。

YLimMode

{'auto'}

各エントリが 'auto' または 'manual' のいずれかである cell 配列です。これらのエントリは、対応する軸の y 軸の範囲モードを指定します。YLimMode プロパティが manual に設定される場合は、範囲は YLim プロパティで指定する値に設定されます。YLim プロパティがスカラーの場合は、スカラー拡張が適用されます。スカラーでない場合は、cell 配列の長さは、プロットに対する行の数 (システムの出力数) に等しくなければなりません。

I/O のグループ化

プロパティ

既定値

説明

IOGrouping

なし

[none | inputs | outputs | all]

応答に対する入力/出力のグループ化を指定します。

入力のラベル

プロパティ

既定値

説明

InputLabels.FontSize

8

Double

InputLabels.FontWeight

標準

[light | normal | demi]

InputLabels.FontAngle

標準

[normal | italic | oblique]

InputLabels.Color

[0 0 0]

1-by-3 RGB vector

出力のラベル

プロパティ

既定値

説明

OutputLabel.FontSize

8

Double

OutputLabels.FontWeight

標準

[light | normal | demi]

OutputLabels.FontAngle

標準

[normal | italic | oblique]

OutputLabels.Color

[0 0 0]

1-by-3 RGB vector

出力と入力の表示/非表示

プロパティ

既定値

説明

InputVisible

{on}

[on | off]

各入力チャネルの表示/非表示を指定する cell 配列。値がスカラーの場合は、スカラー拡張が適用されます。

OutputVisible

{on}

[on | off]

各出力チャネルの表示/非表示を指定する cell 配列。値がスカラーの場合は、スカラー拡張が適用されます。

ボード線図

プロパティ

既定値

説明

FreqUnits

rad/s

 使用可能なオプション

FreqScale

log

[linear | log]

MagUnits

dB

[db | abs]

MagScale

linear

[linear | log]

PhaseUnits

deg

[rad | deg]

PhaseWrapping

off

[on | off]

PhaseWrapping'on' に設定すると、PhaseWrappingBranch プロパティで指定された値で、プロットによって累積位相がラップされます。

PhaseWrappingBranch

–180

Double

PhaseWrapping'on' に設定された場合に、プロットによって累積位相がラップされる位相値。

MagVisible

on

[on | off]

PhaseVisible

on

[on | off]

MagLowerLimMode

auto

[auto | manual]

MagLowerLim プロパティにより、ゲインの下限の指定を有効にできます。

MagLowerLim

0

Double

MagLowerLimMode プロパティを manual に設定すると、ゲインの下限を指定できます。

PhaseMatching

off

[on | off]

位相応答に対し、位相の影響の調整を有効にできます。

PhaseMatchingFreq

0

Double

PhaseMatchingValue

0

Double

ハンケル特異値

プロパティ

既定値

説明

Yscale

linear

[linear | log]

AbsTol

0

Double

詳細は、hsvdstabsepを参照してください。

RelTol

1*e-08

Double

詳細は、hsvdstabsepを参照してください。

Offset

1*e-08

Double

詳細は、hsvdstabsepを参照してください。

ニコルス線図

プロパティ

既定値

説明

FreqUnits

rad/s

 使用可能なオプション

MagUnits

dB

[dB | abs]

PhaseUnits

deg

[rad | deg]

MagLowerLimMode

auto

[auto | manual]

MagLowerLim

0

double

PhaseWrapping

off

[on | off]

PhaseWrapping'on' に設定すると、PhaseWrappingBranch プロパティで指定された値で、プロットによって累積位相がラップされます。

PhaseWrappingBranch

–180

double

PhaseWrapping'on' に設定された場合に、プロットによって累積位相がラップされる位相値。

PhaseMatching

off

[on | off]

PhaseMatchingFreq

0

double

PhaseMatchingValue

0

double

ナイキスト線図

プロパティ

既定値

説明

FreqUnits

rad/s

 使用可能なオプション

MagUnits

dB

[dB | abs]

PhaseUnits

deg

[rad | deg]

ShowFullContour

on

[on | off]

極/零点配置図

プロパティ

既定値

説明

FreqUnits

rad/s

 使用可能なオプション

TimeUnitsseconds

 使用可能なオプション

シグマ プロット

プロパティ

既定値

説明

FreqUnits

rad/s

 使用可能なオプション

FreqScale

log

[linear | log]

MagUnits

dB

[dB | abs]

MagScale

linear

[linear | log]

時間応答プロット

プロパティ

既定値

説明

Normalize

off

[on | off]

プロット内のすべての応答の y スケールを正規化します。

SettleTimeThreshold

0.02

Double

整定時間のしきい値を指定します。 0.02 = 2%.

RiseTimeLimits

[0.1, 0.9]

1-by-2 double

立ち上がり時間を定義するために使用する範囲を指定します。[0.1, 0.9] は 10% から 90% です。

TimeUnits

seconds

 使用可能なオプション