Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

margin

ゲイン余裕、位相余裕、および交差周波数

説明

margin(sys) は、画面に sys のボード線図をプロットし、そのプロットのゲイン余裕と位相余裕を示します。ゲイン余裕はプロットに dB で表されます。

垂直の実線でゲイン余裕と位相余裕をマークします。垂直の破線は、位相余裕の測定される周波数 Wcp の位置と、ゲイン余裕の測定される周波数 Wcg の位置を示します。プロットのタイトルには、ゲイン余裕と位相余裕の振幅と位置が含まれます。

システムの GmPm は、次の図に示すように、1 つの負のフィードバックを sys に適用することによって形成された閉ループ システムの相対的安定性を示します。

Gm は、位相角が –180° (360°を法とする) の周波数 Wcg でループ ゲインを 1 にするために必要なゲイン分散量です。言い換えれば、ゲイン余裕は g が位相特性 –180°における周波数のゲインの場合、1/g です。同様に、位相余裕はループ ゲインが 1.0 のときの応答の位相と –180°との間の差です。振幅が 1.0 の周波数 Wcp は、"ユニティーゲイン周波数" または "ゲイン交差周波数" と呼ばれます。sys に複数の交差がある場合、margin は、ゲイン余裕が 0 dB に最も近く、位相余裕が 0°に最も近い周波数を示します。

通常、3 以上のゲイン余裕と 30°~ 60°の位相余裕の組み合わせでは、帯域幅と安定性の間のトレードオフが適切になります。ただし、一部の多変数システムでは、異なる周波数において、はるかに小さいゲインと位相の変動で安定性が失われることがあります。そのようなシステムについては、"ディスク余裕" の概念によって、より信頼性の高い実際のゲイン余裕と位相余裕の推定が得られます。ディスク余裕の詳細については、diskmargin (Robust Control Toolbox) を参照してください。

margin(sys,w) は周波数のベクトル w をラジアン/TimeUnit で使用して sys のボード応答をプロットします。sparss または mechss モデル オブジェクトなどのスパース モデルがある場合は、この構文を使用します。

[Gm,Pm,Wcg,Wcp] = margin(sys) は、sys のゲイン余裕 Gm (絶対単位)、位相余裕 Pm およびそれに対応する周波数 WcgWcp を返します。Wcg はゲイン余裕が測定される周波数で、–180°の位相交差周波数です。Wcp は位相余裕が測定される周波数で、0 dB のゲイン交差周波数です。これらの周波数はラジアン/TimeUnit で表され、TimeUnitsysTimeUnit プロパティで指定された単位になります。sys に複数の交差がある場合、margin は最小のゲイン余裕と位相余裕および対応する周波数を返します。

margin は、システムが内的に安定していない場合に警告を返します。つまり、システムが安定した閉ループでない場合、または開いている左半平面の外側に極-零点相殺がある場合です。

[Gm,Pm,Wcg,Wcp] = margin(mag,phase,w) は、周波数応答データからゲイン余裕と位相余裕を求めます。ゲイン データ mag は絶対単位で、位相データ phase は度単位で提供されます。周波数ベクトル w には任意の単位を指定でき、marginWcgWcp を同じ単位で返します。

[Gm,Pm] = margin(sys,J1,...,JN) は、モデル配列 sys の添字 (J1,...,JN) をもつエントリのゲイン余裕 Gm と位相余裕 Pm を返します。

すべて折りたたむ

この例では、連続伝達関数を作成します。

sys = tf(1,[1 2 1 0])
sys =
 
         1
  ---------------
  s^3 + 2 s^2 + s
 
Continuous-time transfer function.

ゲイン余裕と位相余裕をグラフィック表示します。

margin(sys)

Figure contains 2 axes objects. Axes object 1 with ylabel Magnitude (dB) contains an object of type line. This object represents sys. Axes object 2 with ylabel Phase (deg) contains an object of type line. This object represents sys.

タイトルに表示されるゲイン余裕 (6.02 dB) と位相余裕 (21.4 度) は垂直の実線でマークされています。垂直の破線は、ゲイン余裕の測定される周波数 Wcg の位置と、位相余裕の測定される周波数 Wcp の位置を示します。

この例では、離散時間の伝達関数を作成します。

sys = tf([0.04798 0.0464],[1 -1.81 0.9048],0.1)
sys =
 
   0.04798 z + 0.0464
  ---------------------
  z^2 - 1.81 z + 0.9048
 
Sample time: 0.1 seconds
Discrete-time transfer function.

ゲイン余裕、位相余裕、および周波数を計算します。

[Gm,Pm,Wcg,Wcp] = margin(sys)
Gm = 2.0518
Pm = 13.5634
Wcg = 5.4375
Wcp = 4.3547

この結果は、位相交差周波数 5.43 rad/s でゲインの変動が 2.05 (6.24 dB) を超えると、システムが不安定になることを示しています。同様に、ゲイン交差周波数 4.35 rad/s で位相の変動が 13.57 度を超えると、システムは安定性を失います。

この例では、w の周波数で測定された振幅 (m) および位相値 (p) で構成される、開ループ システムの周波数応答データを読み込みます。

load('openLoopFRD.mat','p','m','w');

ゲイン余裕と位相余裕を計算します。

[Gm,Pm,Wcg,Wcp] = margin(m,p,w)
Gm = 0.6249
Pm = 48.9853
Wcg = 1.2732
Wcp = 1.5197

この例では、倒立振子モデルを含む 3 行 3 列の配列が格納された invertedPendulumArray.mat を読み込みます。振子の質量は sys の単一の列に沿ってモデル間を移動するにつれて変化し、振子の長さは単一の行に沿って移動するにつれて変化します。質量の値には 100g、200g、300g、振子の長さには 3m、2m、1m がそれぞれ使用されます。

Column1Column2Column3Row1100g,3m100g,2m100g,1mRow2200g,3m200g,2m200g,1mRow3300g,3m300g,2m300g,1m

load('invertedPendulumArray.mat','sys');
size(sys)
3x3 array of transfer functions.
Each model has 1 outputs and 1 inputs.

配列内のすべてのモデルのゲイン余裕と位相余裕を見つけます。

[Gm,Pm] = margin(sys)
Gm = 3×3

    0.9800    0.9800    0.9800
    0.9800    0.9800    0.9800
    0.9800    0.9800    0.9800

Pm = 3×3

  -11.3798  -11.4118  -11.4433
  -11.4059  -11.4296  -11.4532
  -11.4228  -11.4410  -11.4592

margin は、GmPm の 2 つの配列を返し、その各エントリは sys の対応するエントリのゲイン余裕と位相余裕の値です。たとえば、重さ 100g、長さ 2m の振子のモデルの場合、ゲイン余裕と位相余裕はそれぞれ Gm(1,2)Pm(1,2) になります。

入力引数

すべて折りたたむ

動的システム。SISO 動的システム モデルまたは SISO 動的システム モデルの配列として指定します。使用できる動的システムには、tfzpksssparss または mechss モデルなどの連続時間または離散時間の数値 LTI モデルが含まれます。

sys が一般化状態空間モデル genss であるか、不確かさをもつ状態空間モデル uss である場合、margin は、sys の現在の値またはノミナル値のゲイン余裕と位相余裕を返します。sys がモデルの配列である場合、margin は、sys の添字 J1,...,JN に対応するモデルの GmPm を返します。モデル配列の詳細については、モデル配列を参照してください。

抽出するゲイン余裕と位相余裕をもつ配列内モデルのインデックス。正の整数として指定します。sys における配列の次元数と同じ数のインデックスを指定できます。たとえば、sys が動的システム モデルの 4 行 5 列の配列である場合、次のコマンドは配列のエントリ (2,3) の GmPm を抽出します。

[Gm,Pm] = margin(sys,2,3);

システム応答の振幅 (絶対単位)。3 次元配列として指定します。margin は SISO システムのみを受け入れるので、mag は 1 x 1 x N の配列となり、N は周波数点の数です。例については、振幅と位相のデータの取得を参照してください。

システム応答の位相 (度単位)。3 次元配列として指定します。margin は SISO システムのみを受け入れるので、phase は 1 x 1 x N の配列となり、N は周波数点の数です。例については、振幅と位相のデータの取得を参照してください。

システム応答の振幅値と位相値が取得される周波数。列ベクトルとして指定します。

出力引数

すべて折りたたむ

ゲイン余裕。スカラーまたは配列として返されます。動作は sys により異なります。

  • 単一のモデルの場合、Gm はスカラーとして返されます。

  • モデル配列の場合、Gmsys の各モデルのゲイン余裕からなる配列です。

Gm は、位相角が –180° (360°を法とする) の周波数 Wcg でループ ゲインを 1 にするために必要なゲイン分散量です。言い換えれば、ゲイン余裕は g が位相特性 –180°における周波数のゲインの場合、1/g です。sys に複数の交差がある場合、margin は 0 dB に最も近いゲイン余裕を返します。負のゲイン余裕はゲインの減少により安定性が失われていることを示し、正のゲイン余裕はゲインの増加により安定性が失われていることを示します。

ゲイン余裕 Gm は絶対単位で計算されます。ゲイン余裕は次のようにして dB で計算できます。

Gm_dB = 20*log10(Gm)

位相余裕。スカラーまたは配列として返されます。動作は sys により異なります。

  • 単一のモデルの場合、Pm はスカラーとして返されます。

  • モデル配列の場合、Pmsys の各モデルの位相余裕からなる配列です。

位相余裕はループ ゲインが 1.0 のときの応答の位相と –180°との間の差です。sys に複数の交差がある場合、margin は 0°に最も近い位相余裕を返します。

位相余裕 Pm は、度単位で表されます。

位相交差周波数。スカラーとして返されます。Wcg は、ゲイン余裕が測定される周波数で、これは –180°の位相交差周波数です。

Wcg はラジアン/TimeUnit で表され、TimeUnitsysTimeUnit プロパティで指定された単位になります。

ゲイン交差周波数。スカラーとして返されます。Wcp は、位相余裕が測定される周波数で、これは 0 dB のゲイン交差周波数です。

Wcp はラジアン/TimeUnit で表され、TimeUnitsysTimeUnit プロパティで指定された単位になります。

ヒント

  • margin(mag,phase,w) を使用する場合、margin は内挿に依存して余裕を近似します。このため、一般に結果の精度は低下します。たとえば、0 dB 交差が w 範囲内にない場合、margin は位相余裕 Inf を返します。したがって、解析モデル sys がある場合、[Gm,Pm,Wcg,Wcp] = margin(sys) を使用すると、よりロバストな方法で余裕を取得できます。

バージョン履歴

R2006a より前に導入