メインコンテンツ

bodeplot

動的システムのボード周波数応答をプロット

    説明

    bodeplot 関数は、動的システム モデルのボードの振幅と位相をプロットし、BodePlot チャート オブジェクトを返します。プロットをカスタマイズするには、ドット表記を使用してチャート オブジェクトのプロパティを変更します。詳細については、コマンド ラインでの線形解析プロットのカスタマイズを参照してください。

    周波数応答データを取得するには、bode 関数を使用します。

    作成

    説明

    bp = bodeplot(sys) は、動的システム モデル sys のボードの振幅と位相をプロットし、対応するチャート オブジェクトを返します。

    sys が多入力多出力 (MIMO) モデルである場合、bodeplot 関数は、各プロットが 1 つの入出力ペアの周波数応答を示すボード線図のグリッドを作成します。

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

    • 対数周波数スケールで、プロットは、1 つは正の周波数、もう 1 つは負の周波数の 2 つの分岐を示します。プロットは、各分岐に対する周波数値の増加の方向を示す矢印も表示します。

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

    bp = bodeplot(sys1,sys2,...,sysN) は、複数の動的システム sys1,sys2,…,sysN の周波数応答を同じ線図上にプロットします。

    bp = bodeplot(sys1,LineSpec1,...,sysN,LineSpecN) は、指定された各システムのボード応答のライン スタイル、マーカー タイプ、および色を設定します。

    bp = bodeplot(___,w) は、w で指定された周波数のシステム応答をプロットします。周波数範囲または周波数のベクトルを指定できます。w を前述の任意の構文で使用できます。

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

    bp = bodeplot(parent,___) は、FigureTiledChartLayout などの指定された親グラフィックス コンテナーにボード応答をプロットし、Parent プロパティを設定します。指定された開いている Figure にプロットを作成する場合、または App Designer でアプリを作成する場合に、この構文を使用します。

    入力引数

    すべて展開する

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

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

    • sparss モデルまたは mechss モデルなどのスパース状態空間モデル。スパース モデルに対して、周波数グリッド w を指定しなければなりません。

    • genssuss (Robust Control Toolbox) モデルなどの一般化された、あるいは不確かさをもつ LTI モデル。不確かさをもつモデルを使用するには Robust Control Toolbox™ ソフトウェアが必要です。

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

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

    • frd モデルなどの周波数応答データ モデル。このようなモデルの場合、関数はモデルで定義されている周波数での応答をプロットします。

    • 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 の範囲の周波数で応答を計算します。wmaxsys のナイキスト周波数より大きい場合、応答はナイキスト周波数までしか計算されません。

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

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

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

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

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

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

    ボード線図オプション。bodeoptions オブジェクトとして指定します。これらのオプションを使用してボード線図の外観をカスタマイズできます。plotoptions に指定する設定は、現在の MATLAB セッションの基本設定をオーバーライドします。

    親グラフィックス コンテナー。次のいずれかのオブジェクトとして指定します。

    • Figure

    • TiledChartLayout

    • UIFigure

    • UIGridLayout

    • UIPanel

    • UITab

    parentAxes または UIAxes オブジェクトとして指定することもできます。これにより、プロットの親が、指定された axes オブジェクトの親に設定されます。

    プロパティ

    すべて展開する

    メモ

    ここには一部のプロパティのみを示します。完全な一覧は、BodePlot Properties を参照してください。

    モデル応答。BodeResponse オブジェクト、またはそのようなオブジェクトの配列として指定します。このプロパティを使用して、プロット内の各応答の動的システム モデルまたは外観を変更します。各 BodeResponse オブジェクトには次のプロパティがあります。

    応答のソース データ。次のフィールドをもつ構造体として指定します。

    動的システム。SISO または MIMO 動的システム モデルか、動的システム モデルの配列として指定します。

    最初にプロットを作成すると、Modelsys に指定した値と一致します。

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

    • 形式 {wmin,wmax} の cell 配列 — wmin から wmax の範囲の周波数で応答を計算します。

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

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

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

    最初にプロットを作成するときには、次のようになります。

    • FrequencySpec は、w に指定した値と一致します。

    • w を指定しない場合、FrequencySpec は空であり、周波数はシステム ダイナミクスに基づいて選択されます。

    応答名。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 値として保存されます。

    マーカー スタイル。次のいずれかの値として指定します。

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

    プロットの色。RGB 3 成分または 16 進数のカラー コードとして指定します。RGB 3 成分として保存されます。

    あるいは、一般的な色を名前で指定することもできます。次の表に、そうした色とそれに対応する 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

    ライン スタイル。次のいずれかの値として指定します。

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

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

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

    プロットに表示する応答の特性。次のプロパティをもつ CharacteristicsManager オブジェクトとして指定します。

    振幅プロットのピーク応答の可視性。次のプロパティをもつ CharacteristicOption オブジェクトとして指定します。

    ピーク応答の可視性。次の logical on/off 値のいずれかとして指定します。

    • "on"1、または true — ピーク応答を表示します。

    • "off"0、または false — ピーク応答を表示しません。

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

    すべての安定余裕の可視性。次のプロパティをもつ CharacteristicOption オブジェクトとして指定します。

    マージンの可視性。次の logical on/off 値のいずれかとして指定します。

    • "on"1、または true — マージンを表示します。

    • "off"0、または false — マージンを表示しません。

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

    最小安定余裕の可視性。次のプロパティをもつ CharacteristicOption オブジェクトとして指定します。

    マージンの可視性。次の logical on/off 値のいずれかとして指定します。

    • "on"1、または true — マージンを表示します。

    • "off"0、または false — マージンを表示しません。

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

    同定されたモデルの信頼領域。次のプロパティをもつ CharacteristicOption オブジェクトとして指定します。

    信頼領域の可視性。次の logical オン/オフ値のいずれかとして指定します。

    • "on"1、または true — 信頼領域を表示します。

    • "off"0、または false — 信頼領域を表示しません。

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

    信頼領域で表示する標準偏差の数。正のスカラーとして指定します。

    依存関係

    ConfidenceRegion は、同定されたモデルでのみサポートされます。これには System Identification Toolbox ソフトウェアが必要です

    周波数の単位。次のいずれかの値として指定します。

    • "Hz"

    • "rad/s"

    • "rpm"

    • "kHz"

    • "MHz"

    • "GHz"

    • "rad/nanosecond"

    • "rad/microsecond"

    • "rad/millisecond"

    • "rad/minute"

    • "rad/hour"

    • "rad/day"

    • "rad/week"

    • "rad/month"

    • "rad/year"

    • "cycles/nanosecond"

    • "cycles/microsecond"

    • "cycles/millisecond"

    • "cycles/hour"

    • "cycles/day"

    • "cycles/week"

    • "cycles/month"

    • "cycles/year"

    依存関係

    既定では、応答にはプロットされた線形システムの周波数単位が使用されます。ツールボックスの基本設定を指定することで、既定の単位をオーバーライドできます。詳細については、線形解析プロットのツールボックス基本設定の指定を参照してください。

    周波数スケール。"log" または "linear" として指定します。

    依存関係

    既定の周波数スケールは、ツールボックスの基本設定によって決まります。詳細については、線形解析プロットのツールボックス基本設定の指定を参照してください。

    振幅単位。次のいずれかの値として指定します。

    • "dB" — デシベル

    • "abs" — 絶対値

    依存関係

    • MagnitudeScale"log" であるときに MagnitudeUnit"dB" に設定すると、ソフトウェアにより自動的に MagnitudeScale"linear" に変更されます。

    • 既定の振幅単位は、ツールボックスの基本設定によって決まります。詳細については、線形解析プロットのツールボックス基本設定の指定を参照してください。

    振幅のスケール。"log" または "linear" として指定します。

    依存関係

    • MagnitudeUnit"dB" に設定されている場合、MagnitudeScale"log" に設定することはサポートされていません。

    • 既定の振幅のスケールは、ツールボックスの基本設定によって決まります。詳細については、線形解析プロットのツールボックス基本設定の指定を参照してください。

    位相単位。次のいずれかの値として指定します。

    • "deg" — 度

    • "rad" — ラジアン

    依存関係

    既定の位相単位は、ツールボックスの基本設定によって決まります。詳細については、線形解析プロットのツールボックス基本設定の指定を参照してください。

    振幅プロットを表示するオプション。次の logical on/off 値のいずれかとして指定します。

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

    • "off"0、または false — 振幅プロットを非表示にします。

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

    位相プロットを表示するオプション。次の logical on/off 値のいずれかとして指定します。

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

    • "off"0、または false — 位相プロットを非表示にします。

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

    位相ラッピングを有効にするオプション。次の logical on/off 値のいずれかとして指定します。

    • "on"1、または true — 位相ラッピングを有効にします。応答に表示される位相は、PhaseWrappingBranch で定義される範囲内にラップされます。

    • "off"0、または false — 位相ラッピングを無効にします。

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

    依存関係

    • 既定の位相ラッピングの構成は、ツールボックスの基本設定によって決まります。詳細については、線形解析プロットのツールボックス基本設定の指定を参照してください。

    • 位相ラッピングと位相マッチングの両方を有効にしている場合、ソフトウェアでは位相マッチングの後に位相ラッピングが実行されます。

    位相ラッピングの範囲の下限。度単位のスカラー値として指定します。位相ラッピングの範囲は [B,B+360) であり、BPhaseWrappingBranch と等しくなります。

    依存関係

    位相マッチングを有効にするオプション。次の logical on/off 値のいずれかとして指定します。

    • "on"1、または truePhaseMatchingFrequency に指定された周波数において、PhaseMatchingValue に指定された値に位相応答が 一致するように、位相マッチングを有効にします。残りの位相応答は、同じ位相プロファイルを維持するようにシフトされます。

    • "off"0、または false — 位相マッチングを無効にします。

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

    依存関係

    位相ラッピングと位相マッチングの両方を有効にしている場合、ソフトウェアでは位相マッチングの後に位相ラッピングが実行されます。

    位相マッチング周波数。スカラーとして指定します。

    依存関係

    PhaseMatchingEnabled"off" の場合、この値は無視されます。

    位相マッチング応答値。スカラーとして指定します。

    依存関係

    PhaseMatchingEnabled"off" の場合、この値は無視されます。

    最小ゲインを有効にするオプション。次の logical on/off 値のいずれかとして指定します。

    • "on"1、または true — プロット時の最小ゲインを MinimumGainValue プロパティ値に設定します。

    • "off"0、または false — システム ダイナミクスに基づいて、プロットするときの最小ゲインを自動的に設定します。

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

    依存関係

    既定の最小ゲインの構成は、ツールボックスの基本設定によって決まります。詳細については、線形解析プロットのツールボックス基本設定の指定を参照してください。

    プロットの最小ゲイン値。スカラーとして指定します。

    依存関係

    依存関係

    チャートの可視性。次の logical オン/オフ値のいずれかとして指定します。

    • "on"1、または true — チャートを表示します。

    • "off"0、または false — チャートを削除せずに非表示にします。チャートが表示されていない場合でも、チャートのプロパティにアクセスできます。

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

    入力と出力のペアのグループ化。次のいずれかの値として指定します。

    • "none" — 入力も出力もグループ化しません。

    • "inputs" — 入力のみをグループ化します。

    • "outputs" — 出力のみをグループ化します。

    • "all" — すべての入力と出力のペアをグループ化します。

    入力を表示するオプション。次の logical オン/オフ値のいずれか、またはそのような値の配列として指定します。

    • "on"1、または true — 対応する入力を表示します。

    • "off"0、または false — 対応する入力を非表示にします。

    InputVisible は、プロットされたシステムに複数の入力がある場合は配列です。既定では、すべての入力がプロットに表示されます。

    値は、matlab.lang.OnOffSwitchState 型のオン/オフ logical 値またはそのような値の配列として保存されます。

    出力を表示するオプション。次の logical オン/オフ値のいずれか、またはそのような値の配列として指定します。

    • "on"1、または true — 対応する出力を表示します。

    • "off"0、または false — 対応する出力を非表示にします。

    OutputVisible は、プロットされたシステムに複数の出力がある場合は配列です。既定では、すべての出力がプロットに表示されます。

    値は、matlab.lang.OnOffSwitchState 型のオン/オフ logical 値またはそのような値の配列として保存されます。

    オブジェクト関数

    addResponseAdd dynamic system response to existing response plot
    showConfidence (System Identification Toolbox)同定されたモデルの応答プロットで信頼領域を表示する

    すべて折りたたむ

    この例では、プロット ハンドルを使用して周波数単位を Hz に変更し、位相プロットをオフにします。

    5 つの状態をもつランダムな状態空間モデルを生成し、チャート オブジェクト bp を使用してボード線図を作成します。

    rng("default")
    sys = rss(5);
    bp = bodeplot(sys);

    MATLAB figure

    チャート オブジェクトを変更することにより、単位を Hz に変更し、位相プロットを非表示にします。

    bp.FrequencyUnit = "Hz";
    bp.PhaseVisible = "off";

    MATLAB figure

    チャート オブジェクトを変更すると、ボード線図は自動的に更新されます。

    この例では、タイトルに 15 ポイントの赤いテキストを使用し、カスタム タイトルを設定するボード線図を作成します。bodeoptions を使用してプロットのプロパティを指定すると、指定したプロパティにより MATLAB セッションの基本設定がオーバーライドされます。このため、プロットが生成される MATLAB セッションの基本設定にかかわらず、プロットの外観が同じになります。

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

    opts = bodeoptions;

    次に、オプション セット opts の必要なプロパティを変更します。opt.Title は構造体であるため、その構造体のフィールドと値を指定することにより、プロットのタイトルのプロパティを指定します。

    opts.Title.FontSize = 15;
    opts.Title.Color = [1 0 0];
    opts.Title.String = 'System Frequency Response';
    opts.FreqUnits = 'Hz';

    次に、オプション セット opts を使用してボード線図を作成します。

    bodeplot(tf(1,[1,1]),opts);

    MATLAB figure

    opts は固定のオプション セットで始まるため、プロットの結果は MATLAB セッションのツールボックスの基本設定に依存しません。

    この例では、次の連続時間 SISO 動的システムのボード線図を作成します。次に、グリッドをオンにし、プロットの名前を変更して、周波数スケールを変更します。

    sys(s)=s2+0.1s+7.5s4+0.12s3+9s2.Continuous-time SISO dynamic system

    伝達関数 sys を作成します。

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

    ボード線図を作成します。返されたチャート オブジェクトを変更することにより、プロットのプロパティを指定します。

    bp = bodeplot(sys);
    bp.FrequencyScale = "linear";
    title("Bode Plot of Transfer Function");
    grid on

    MATLAB figure

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

    この例では、3 つの入力、3 つの出力および 3 つの状態をもつ MIMO 状態空間モデルについて考えます。周波数スケールが線形のボード線図を作成し、周波数の単位を Hz に指定して、グリッドをオンにします。

    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.
    

    ボード線図を作成し、対応するチャート オブジェクトを返します。

    bp = bodeplot(sys_mimo);

    チャート オブジェクトのプロパティを更新することにより、プロットをカスタマイズします。

    bp.FrequencyScale = "linear";
    bp.FrequencyUnit = "Hz";
    grid on

    MATLAB figure

    チャート オブジェクトのプロパティを変更すると、ボード線図が自動的に更新されます。MIMO モデルの場合、bodeplot はボード線図の配列を生成し、各プロットは 1 組の I/O の周波数応答を表示します。

    この例では、1 ラジアン/秒における位相が 150 度になるように、システム応答の位相を一致させます。

    まず、チャート オブジェクト bp を使用して、伝達関数のボード線図を作成します。

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

    MATLAB figure

    位相マッチングを有効にし、位相マッチングの周波数と値を設定します。

    bp.PhaseMatchingEnabled = "on"; 
    bp.PhaseMatchingFrequency = 1; 
    bp.PhaseMatchingValue = 150;

    MATLAB figure

    最初のボード線図では、周波数 1 rad/s における位相が -45 度です。1 rad/s における位相がほぼ 150 度になるように位相マッチング オプションを設定すると、2 番目のボード線図が生成されます。ただし、位相は -45 + N*360 のみになります (ここで N は整数)。したがって、プロットは許容される最も近い位相、具体的には 315 度 (すなわち 1*360-45=315oEquation of how the allowable phase is calculated) に設定されます。

    この例では、同定された 2 つの状態空間モデル (2 つおよび 6 つの状態と、2 σ の信頼領域をもつ) の周波数応答を比較します。

    同定された状態空間モデルのデータを読み込み、n4sid を使用して 2 つのモデルを推定します。n4sid を使用するには、System Identification Toolbox™ のライセンスが必要です。

    load iddata1
    sys1 = n4sid(z1,2); 
    sys2 = n4sid(z1,6);

    2 つのシステムのボード線図を作成します。

    bodeplot(sys1,'r',sys2,'b');
    legend('sys1','sys2');

    MATLAB figure

    プロットから、両方のモデルがデータに約 70% 適合していることを確認します。ただし、sys2 は周波数応答でより高い不確かさを示しており、特にナイキスト周波数の近傍で見られます。ここで、linspace を使用して周波数のベクトルを作成し、周波数ベクトル w を使用してボード応答をプロットします。

    w = linspace(8,10*pi,256);
    bp = bodeplot(sys1,sys2,w);
    legend('sys1','sys2');

    位相マッチングを有効にし、信頼領域の標準偏差を指定して、信頼領域を表示します。

    bp.PhaseMatchingEnabled = "on";
    bp.Characteristics.ConfidenceRegion.NumberOfStandardDeviations = 2;
    bp.Characteristics.ConfidenceRegion.Visible = "on";

    MATLAB figure

    また、showconfidence コマンドを使用して、ボード線図に信頼領域を表示することもできます。

    showConfidence(bp)
    

    この例では、入力/出力データから同定されたパラメトリック モデルの周波数応答を、同じデータを使用して同定されたノンパラメトリック モデルと比較します。データに基づいて、パラメトリック モデルとノンパラメトリック モデルを同定します。

    データを読み込み、tfestspa を使用して、パラメトリック モデルとノンパラメトリック モデルをそれぞれ作成します。

    load iddata2 z2;
    w = linspace(0,10*pi,128);
    sys_np = spa(z2,[],w);
    sys_p = tfest(z2,2);

    spatfest には System Identification Toolbox™ ソフトウェアが必要です。モデル sys_np はノンパラメトリックと同定されたモデルであり、sys_p はパラメトリックと同定されたモデルです。

    両方のシステムを含むボード線図を作成します。このプロットの位相マッチングを有効にします。

    bp = bodeplot(sys_p,sys_np,w);
    bp.PhaseMatchingEnabled = "on";
    grid on
    legend('Parametric Model','Non-Parametric model');

    MATLAB figure

    ヒント

    • bodeplot を使用して作成されたプロットは、string 配列または文字ベクトルの cell 配列として指定された、複数行のタイトルやラベルをサポートしません。複数行のタイトルやラベルを指定するには、newline 文字を含む単一の string を使用します。

      bodeplot(sys)
      title("first line" + newline + "second line");

    アルゴリズム

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

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

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

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

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

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

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

    バージョン履歴

    R2006a より前に導入

    すべて展開する