メインコンテンツ

bodemag

R2026b

周波数応答の、振幅のみのボード線図

説明

bodemag を使用すると、振幅のみの線図を生成し、動的システムの振幅周波数応答を可視化できます。

より包括的でカスタマイズ可能なプロット関数については、bodeplot を参照してください。

振幅と位相のデータを取得するには、bode を参照してください。

bodemag(sys) は、動的システム モデル sys の周波数応答のボード振幅プロットを作成します。プロットは、システム応答の振幅 (dB 単位) を周波数の関数として表示します。プロットする周波数は、システム ダイナミクスに基づいて bodemag 関数で自動的に決定されます。

sys が多入力多出力 (MIMO) モデルである場合、bodemag は、各プロットが 1 組の I/O の周波数応答を示すボード振幅プロットの配列を生成します。

sys が複素係数をもつモデルである場合、次のようになります。

  • 対数周波数スケールで、プロットは、1 つは正の周波数、もう 1 つは負の周波数の 2 つの分岐を示します。プロットは、各分岐に対する周波数値の増加の方向を示す矢印も表示します。複素係数をもつモデルのボード線図を参照してください。

  • 線形周波数スケールで、プロットは、周波数値 0 を中心とする対称な周波数範囲をもつ 1 つの分岐を示します。

例

bodemag(sys1,sys2,...,sysN) は、複数の動的システムの周波数応答を同じプロット上に描画します。すべてのシステムの入力と出力の数は同じでなければなりません。

例

bodemag(sys1,LineSpec1,...,sysN,LineSpecN) は、プロット内の各システムの色、ライン スタイルおよびマーカーを指定します。

例

bodemag(___,w) は、w で指定された周波数のシステム応答をプロットします。周波数範囲または周波数のベクトルを指定できます。この構文は、前述の構文のすべての入力引数の組み合わせで使用できます。

例

bodemag(___,Name=Value) は、1 つ以上の名前と値の引数を使用して応答プロパティを指定します。たとえば、bodemag(sys,LineWidth=1) はプロット ラインの幅を 1 に設定します。

  • 複数のシステムの応答をプロットする場合、指定した名前と値の引数はすべての応答に適用されます。

  • 次の名前と値の引数は、他の入力引数で指定された値をオーバーライドします。

    • FrequencySpec — w を使用して指定された周波数値をオーバーライドします。

    • Color — LineSpec を使用して指定された色をオーバーライドします。

    • MarkerStyle — LineSpec を使用して指定されたマーカー スタイルをオーバーライドします。

    • LineStyle — LineSpec を使用して指定されたライン スタイルをオーバーライドします。

bp = bodemag(___) は、ボード振幅応答をプロットし、対応するチャート オブジェクトを返します。応答プロットの外観と動作をカスタマイズするには、ドット表記を使用してチャート オブジェクトのプロパティを変更します。

例

すべて折りたたむ

次の連続時間 SISO 動的システムのボード振幅プロットを作成します。

H(s)=s2+0.1s+7.5s4+0.12s3+9s2

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

MATLAB figure

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

指定の周波数範囲でボード振幅プロットを作成します。周波数の特定の範囲でダイナミクスに焦点を合わせるときにこの方法を使用します。

H = tf([-0.1,-2.4,-181,-1950],[1,3.3,990,2600]);
bodemag(H,{1,100})
grid on

MATLAB figure

cell 配列 {1,100} は、ボード振幅プロットに最小および最大の周波数値を指定します。このように周波数の範囲を指定すると、関数は周波数応答データの中間点を選択します。

あるいは、周波数応答の評価とプロットに使用する周波数点のベクトルを指定します。

w = [1 5 10 15 20 23 31 40 44 50 85 100];
bodemag(H,w,'.-')
grid on

MATLAB figure

bodemag は、指定された周波数のみで周波数応答をプロットします。

連続時間システムの周波数応答の振幅を、同一のボード線図にある等価な離散化システムと比較します。

連続時間動的システムと離散時間動的システムを作成します。

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
Hd = c2d(H,0.5,'zoh');

両方のシステムの応答を表示するボード振幅プロットを作成します。

bodemag(H,Hd)

MATLAB figure

離散時間システムのボード振幅プロットには、システムのナイキスト周波数をマークする垂直線が含まれます。

入力引数 LineSpec を使って、ボード振幅プロットに各システムの色、ライン スタイル、またはマーカーを指定します。

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
Hd = c2d(H,0.5,'zoh');
bodemag(H,'r',Hd,'b--')

MATLAB figure

最初の LineSpec 引数である 'r' は、H の応答に赤の実線を指定します。2 番目の LineSpec 引数である 'b--' は、Hd の応答に青の破線を指定します。

この例では 2 出力、3 入力のシステムを作成します。

rng(0,'twister'); % For reproducibility
H = rss(4,2,3);

このシステムでは、bodemag が各 I/O チャネルの振幅のみの周波数応答を個別のプロットとして単一の Figure 内にプロットします。

bodemag(H)

MATLAB figure

入力引数

すべて折りたたむ

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

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

  • sparss モデルまたは mechss モデルなどのスパース状態空間モデル。

  • genss や uss (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"星形六角形
色説明
"r"赤
"g"緑
"b"青
"c"シアン
"m"マゼンタ
"y"黄色
"k"黒
"w"白

応答を計算する周波数。次のいずれかの値として指定します。

  • 形式 {wmin,wmax} の cell 配列 — wmin から wmax の範囲の周波数で応答を計算します。wmax が sys のナイキスト周波数より大きい場合、応答はナイキスト周波数までしか計算されません。

  • 周波数のベクトル — 指定された各周波数で応答を計算します。たとえば、logspace を使用すると、対数的に等間隔な周波数値の行ベクトルを生成できます。ベクトル w には正と負の両方の周波数を含めることができます。

  • [] — システム ダイナミクスに基づいて自動的に周波数を選択します。

複素係数をもつモデルでは、プロットに対して周波数範囲 [wmin,wmax] を指定する場合、次のようになります。

  • 対数周波数スケールで、プロット周波数範囲は [wmin,wmax] に設定され、プロットは、1 つは正の周波数 [wmin,wmax]、もう 1 つは負の周波数 [–wmax,–wmin] の 2 つの分岐を示します。

  • 線形周波数スケールで、プロット周波数範囲は [–wmax,wmax] に設定され、プロットは、周波数値 0 を中心とする対称な周波数範囲をもつ 1 つの分岐を示します。

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

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: bodemag(sys,LegendDisplay="off") は、プロット凡例から sys の応答を非表示にします。

応答を計算する周波数。次のいずれかの値として指定します。

  • 形式 {wmin,wmax} の cell 配列 — wmin から wmax の範囲の周波数で応答を計算します。wmax が sys のナイキスト周波数より大きい場合、応答はナイキスト周波数までしか計算されません。

  • 周波数のベクトル — 指定された各周波数で応答を計算します。たとえば、logspace を使用すると、対数的に等間隔な周波数値の行ベクトルを生成できます。ベクトル FrequencySpec には正と負の両方の周波数を含めることができます。

  • [] — システム ダイナミクスに基づいて自動的に周波数を選択します。

複素係数をもつモデルでは、プロットに対して周波数範囲 [wmin,wmax] を指定する場合、次のようになります。

  • 対数周波数スケールで、プロット周波数範囲は [wmin,wmax] に設定され、プロットは、1 つは正の周波数 [wmin,wmax]、もう 1 つは負の周波数 [–wmax,–wmin] の 2 つの分岐を示します。

  • 線形周波数スケールで、プロット周波数範囲は [–wmax,wmax] に設定され、プロットは、周波数値 0 を中心とする対称な周波数範囲をもつ 1 つの分岐を示します。

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

応答名。string または文字ベクトルとして指定します。string として保存されます。

応答の可視性。次の logical オン/オフ値のいずれかとして指定します。

  • "on"、1、または true — 応答をプロットに表示します。

  • "off"、0、または false — 応答をプロットに表示しません。

値は、matlab.lang.OnOffSwitchState 型の on/off の logical 値として保存されます。

凡例に応答をリストするオプション。次の logical オン/オフ値のいずれかとして指定します。

  • "on"、1、または true — 凡例に応答をリストします。

  • "off"、0、または false — 凡例に応答をリストしません。

値は、matlab.lang.OnOffSwitchState 型の on/off の logical 値として保存されます。

マーカー スタイル。次のいずれかの値として指定します。名前と値の引数を使用してマーカー スタイルを指定すると、LineSpec を使用して指定したマーカー スタイルがオーバーライドされます。

マーカー説明
"none"マーカーなし
"o"円
"+"プラス記号
"*"アスタリスク
"."点
"x"x 印
"_"水平線
"|"垂直線
"s"正方形
"d"菱形
"^"上向き三角形
"v"下向き三角形
">"右向き三角形
"<"左向き三角形
"p"星形五角形
"h"星形六角形

プロットの色。RGB 3 成分または 16 進数のカラー コードとして指定します。RGB 3 成分として保存されます。名前と値の引数を使用して色を指定すると、LineSpec を使用して指定した色がオーバーライドされます。

一般的な色を名前で指定することもできます。次の表に、そうした色とそれに対応する RGB 3 成分および 16 進数のカラー コードをリストします。

色の名前RGB 3 成分16 進数のカラー コード

"red" または "r"

[1 0 0]#FF0000

"green" または "g"

[0 1 0]#00FF00

"blue" または "b"

[0 0 1]#0000FF

"cyan" または "c"

[0 1 1]#00FFFF

"magenta" または "m"

[1 0 1]#FF00FF

"yellow" または "y"

[1 1 0]#FFFF00

"black" または "k"

[0 0 0]#000000

"white" または "w"

[1 1 1]#FFFFFF

ライン スタイル。次のいずれかの値として指定します。名前と値の引数を使用してライン スタイルを指定すると、LineSpec を使用して指定したライン スタイルがオーバーライドされます。

ライン スタイル説明
"-"実線
"--"破線
":"点線
"-."一点鎖線
"none"ラインなし

マーカー サイズ。正のスカラーとして指定します。

ラインの幅。正のスカラーとして指定します。

系列インデックス。正の整数または "none" として指定します。

既定では、SeriesIndex プロパティは、応答がチャートに追加された順序に対応する数値です (1 から始まります)。MATLAB® はこの数値を使用して、応答に色、ライン スタイル、またはマーカーを自動的に割り当てるためのインデックスを計算します。チャート内の応答で SeriesIndex の数値が同じであるものは、色、ライン スタイル、およびマーカーも同じになります。

SeriesIndex 値 "none" は、応答がインデックス方式を利用しないことを示します。

出力引数

すべて折りたたむ

チャート オブジェクト。BodePlot オブジェクトとして返されます。プロットの外観と動作をカスタマイズするには、ドット表記を使用してこのオブジェクトのプロパティを変更します。詳細については、BodePlot Properties を参照してください。

アルゴリズム

ソフトウェアは周波数応答を次のように計算します。

  1. 動的システムの零点-極-ゲイン (zpk) 表現を計算します。

  2. システムの各入出力チャネルに対する零点-極-ゲイン データに基づいて周波数応答のゲインと位相を評価します。

    • 連続時間システムの場合、bodemag 関数は、虚軸 s = jω 上の周波数応答を評価します。その際、正の周波数だけを考慮します。

    • 離散時間システムの場合、bodemag 関数は、単位円上の周波数応答を評価します。解釈の効率を上げるため、コマンドは単位円の上半分を次のようにパラメーター化します。

      z=ejωTs, 0≤ω≤ωN=πTs,

      ここで、Ts はサンプル時間、ωN はナイキスト周波数です。ソフトウェアは、相当する連続時間周波数 ω を x 軸変数として使用します。H(ejωTs) が周期的で周期 2ωN なので、bodemag 関数は応答をナイキスト周波数 ωN までしかプロットしません。sys が、サンプル時間が指定されていない離散時間モデルである場合、bodemag 関数は Ts = 1 を使用します。

代替機能

また、bodeplot を使用して、振幅のみの周波数応答を作成することもできます。これを行うには、bodeplot チャート オブジェクトの PhaseVisible プロパティを "off" に設定します。

bp = bodeplot(sys);
bp.PhaseVisible = "off";

バージョン履歴

R2012a で導入

すべて展開する