コマンド ラインからの応答プロットのカスタマイズ
コマンド ラインからのプロットのカスタマイズの概要
コマンド ラインからのプロットをカスタマイズするケース
コマンド ラインからどの応答プロットでもカスタマイズできます。多数のプロットを変更する場合に、コマンド ラインを使用すると便利です。たとえば、多数のプロットを生成するバッチ ジョブがある場合にすべてのプロットの x 軸の単位を変更するには、コードを数行入力するだけで済みます。
コマンド ラインからのプロットのカスタマイズ方法
Control System Toolbox™ アプリケーション プログラム インターフェイス (API) を使用して、コマンド ラインから応答プロットのオプションをカスタマイズします。
メモ
この節では、MATLAB® グラフィックス オブジェクトの基本的な知識があることを前提にしています。詳細については、グラフィックス オブジェクトを参照してください。
コマンド ラインからプロットをカスタマイズするには、次の手順に従います。
API のプロット用構文を使用して、プロット ハンドル (プロットの識別子) を取得します。
以下に例を示します。
h = stepplot(sys)
これで、ステップ応答プロットに対するプロット ハンドル
h
が出力されます。プロット ハンドルの取得の詳細は、プロット ハンドルの取得を参照してください。
プロット オプション ハンドル (設定可能なすべてのプロット オプションの識別子) を取得します。特定のプロットに対するプロット オプション ハンドルを取得するには、次のように入力します。
p = getoptions(h);
p
は、プロット ハンドルh
に対するプロット オプション ハンドルです。プロット オプション ハンドルの取得の詳細は、プロット オプション ハンドルの取得を参照してください。
関数
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 のプロットのコマンド bode
、rlocus
などは、すべてプロット ハンドルを内部で使用するため、API には応答プロットのハンドルを明示的に返す一連のコマンドがあります。これらの関数の名前はすべて "plot" で終わるため、わかりやすくなっています。次の表は、関数の一覧です。
プロット ハンドルを出力する関数
関数 | プロット |
---|---|
ボードの振幅と位相 | |
ハンケル特異値 | |
インパルス応答 | |
初期条件 | |
入力/出力の組み合わせに対する極/零点配置図 | |
任意の入力に対する時間応答 | |
ニコルス線図 | |
ナイキスト | |
極/零点 | |
根軌跡 | |
周波数応答の特異値 | |
ステップ応答 |
各応答プロットに対するプロット ハンドルを取得するには、表の関数を使用してください。以下に例を示します。
h = bodeplot(sys)
これで、プロット ハンドル h
が出力されます (ボード線図も描きます)。このハンドルを取得すると、プロット オブジェクト、この場合は、ボード線図のハンドルのメソッド setoptions
と getoptions
を使用して、プロットのプロパティを変更できます。
プロット オプション ハンドルの取得
プロット オプション ハンドルの概要
プロット ハンドルを取得した後、特定の応答プロットに対して設定可能なすべてのプロット プロパティを識別するには、プロット オプション ハンドルが必要です。プロット オプション ハンドルを作成するには、2 つの方法があります。
ハンドルの取得 - 関数
getoptions
を使用してハンドルを取得します。ハンドルの作成 -
<responseplot>
options
を使用してハンドルをインスタンス化します。詳細なリストは、プロット オプション ハンドルを作成するための関数を参照してください。
ハンドルの取得
関数 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 の既定値に設定できます。
次の表は、プロット オプション ハンドルを作成するための関数のリストです。
プロット オプション ハンドルを作成するための関数
関数 | 作成されるプロット オプション ハンドルのタイプ |
---|---|
| ボードの位相と振幅 |
| ハンケル特異値 |
| ニコルス線図 |
| ナイキスト線図 |
| 極/零点プロット |
| シグマ (特異値) プロット |
| 時間応答 (インパルス、ステップなど) |
変更可能なプロパティ
ユーザーが変更できる使用可能なプロパティと値の組み合わせを調べるには、次の形式を使用します。
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
プロパティと値のリファレンス
すべての応答プロットに共通するプロパティと値のペア
次の表は、すべての応答プロットに共通するプロパティと値のペアのリストです。
タイトル
プロパティ | 既定値 | 説明 |
---|---|---|
| なし |
|
| 8 |
|
| 標準 |
|
| 標準 |
|
| [0 0 0] |
|
X 軸ラベル
プロパティ | 既定値 | 説明 |
---|---|---|
| なし |
|
| 8 |
|
| 標準 |
|
| 標準 |
|
| [0 0 0] |
|
Y 軸ラベル
プロパティ | 既定値 | 説明 |
---|---|---|
| なし |
|
| 8 |
|
| 標準 |
|
| 標準 |
|
| [0 0 0] |
|
目盛りラベル
プロパティ | 既定値 | 説明 |
---|---|---|
| 8 |
|
| 標準 |
|
| 標準 |
|
| [0 0 0] |
|
グリッドと軸の範囲
プロパティ | 既定値 | 説明 |
---|---|---|
|
|
|
|
|
|
|
| 各エントリが |
|
|
|
|
| 各エントリが |
I/O のグループ化
プロパティ | 既定値 | 説明 |
---|---|---|
| なし |
応答に対する入力/出力のグループ化を指定します。 |
入力のラベル
プロパティ | 既定値 | 説明 |
---|---|---|
| 8 |
|
| 標準 |
|
| 標準 |
|
| [0 0 0] |
|
出力のラベル
プロパティ | 既定値 | 説明 |
---|---|---|
| 8 |
|
| 標準 |
|
| 標準 |
|
| [0 0 0] |
|
出力と入力の表示/非表示
プロパティ | 既定値 | 説明 |
---|---|---|
| {on} |
各入力チャネルの表示/非表示を指定する cell 配列。値がスカラーの場合は、スカラー拡張が適用されます。 |
| {on} |
各出力チャネルの表示/非表示を指定する cell 配列。値がスカラーの場合は、スカラー拡張が適用されます。 |
ボード線図
プロパティ | 既定値 | 説明 |
---|---|---|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| –180 |
|
|
|
|
|
|
|
|
|
|
| 0 |
|
|
|
位相応答に対し、位相の影響の調整を有効にできます。 |
| 0 |
|
| 0 |
|
ハンケル特異値
ニコルス線図
プロパティ | 既定値 | 説明 |
---|---|---|
|
| |
|
|
|
|
|
|
|
|
|
|
| double |
|
|
|
| –180 | double
|
| off | [on | off] |
| 0 | double |
| 0 | double |
ナイキスト線図
プロパティ | 既定値 | 説明 |
---|---|---|
|
| |
|
|
|
|
|
|
|
|
|
極/零点配置図
プロパティ | 既定値 | 説明 |
---|---|---|
|
| |
TimeUnits | seconds |
シグマ プロット
プロパティ | 既定値 | 説明 |
---|---|---|
|
| |
|
|
|
|
|
|
|
|
|
時間応答プロット
プロパティ | 既定値 | 説明 |
---|---|---|
|
|
プロット内のすべての応答の y スケールを正規化します。 |
|
|
整定時間のしきい値を指定します。 |
|
|
立ち上がり時間を定義するために使用する範囲を指定します。 |
| seconds |