Main Content

passiveplot

受動性インデックスの周波数の関数としての計算またはプロット

説明

passiveplot(G) は、動的システム G の相対受動性インデックスを周波数の関数としてプロットします。I + G が最小位相の場合、相対受動性インデックスは (I - G)(I + G)^-1 の特異値です。最大特異値で、各周波数の相対的な超過 (R < 1) または不足 (R > 1) を測定します。受動性インデックスの意味の詳細については、getPassiveIndex を参照してください。

passiveplot は周波数範囲と、G のダイナミクスに基づくプロットのポイント数を自動的に選択します。

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

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

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

passiveplot(G,type) は、type の値によって入力、出力または I/O 受動性インデックスをそれぞれ 'input''output' または 'io' にプロットします。

passiveplot(___,w)w によって指定される周波数の受動性インデックスをプロットします。

  • w が形式 {wmin,wmax} の cell 配列の場合、passiveplot は受動性インデックスを wmin から wmax の範囲の周波数でプロットします。

  • w が周波数のベクトルである場合、passiveplot はそれぞれの指定された周波数で受動性インデックスをプロットします。ベクトル w には負と正の両方の周波数を含めることができます。

この構文では、前述の任意の入力引数の組み合わせで使用できます。

passiveplot(G1,G2,...,GN,___) は、同じプロット上で複数の動的システム G1,G2,...,GN の受動性インデックスをプロットします。プロットする周波数を指定するために、この構文を type 入力引数または w、もしくは両方とともに使用することもできます。

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

passiveplot(___,plotoptions) は、plotoptions で指定されたオプション セットを使用して受動性インデックスをプロットします。これらのオプションを使用して、コマンド ラインからプロットの外観をカスタマイズできます。plotoptions に指定する設定は、passiveplot を実行する MATLAB® セッションの基本設定をオーバーライドします。したがって、ローカルの基本設定にかかわらず、同じ外観の複数のプロットを生成するスクリプトを記述する場合、この構文が有用です。

[index,wout] = passiveplot(G) および [index,wout] = passiveplot(G,type) は、各周波数での受動性インデックスをベクトル wout で返します。出力 index は行列です。値 index(:,k) は受動性インデックスを周波数 w(k) で降順で返します。この構文はプロットを描画しません。

index = passiveplot(G,w) および index = passiveplot(G,type,w) は、w によって指定された周波数での受動性インデックスを返します。

すべて折りたたむ

相対受動性インデックスを、システム G=(s+2)/(s+1) の周波数の関数としてプロットします。

G = tf([1 2],[1 1]); 
passiveplot(G)

Figure contains an axes object. The axes object contains an object of type line. This object represents G.

このプロットは、相対受動性インデックスがすべての周波数で 1 未満であることを示します。したがって、システム G は受動的です。

同じシステムの入力受動性インデックスをプロットします。

passiveplot(G,'input')

Figure contains an axes object. The axes object contains an object of type line. This object represents G.

入力受動性インデックスはすべての周波数で正の値です。したがって、システムは入力で厳密に受動的です。

2 つの動的システムおよびそれらの直列相互接続の入力受動性インデックスをプロットします。

G1 = tf([5 3 1],[1 2 1]);
G2 = tf([1 1 5 0.1],[1 2 3 4]);
H = G2*G1;

passiveplot(G1,'r',G2,'b--',H,'gx','input')
legend('G1','G2','G2*G1')

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent G1, G2, G2*G1.

相互接続されているシステムの入力受動性インデックスは、1 rad/s 付近で 0 未満に減少します。このプロットは、2 つの受動システムの直列相互接続は必ずしも受動的ではないことを示します。ただし、受動性は受動システムの並列相互接続またはフィードバック相互接続用に保持されます。

複素係数モデルと実数係数モデルの相対受動性インデックスを同じプロット上にプロットします。

A = [-3.50,-1.25-0.25i;2,0];
B = [1;0];
C = [-0.75-0.5i,0.625-0.125i];
D = 0.5;
Gc = ss(A,B,C,D);
Gr = tf([1 5 10],[1 10 5]);
passiveplot(Gc,Gr)
legend('Complex-coefficient model','Real-coefficient model','Location','southeast')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Complex-coefficient model, Real-coefficient model.

対数周波数スケールで、プロットは、複素係数をもつモデルに対して、1 つは右向き矢印を使った正の周波数、もう 1 つは左向き矢印を使った負の周波数の 2 つの分岐を示します。両方の分岐で、矢印は周波数の増加の方向を示します。実数係数をもつモデルのプロットには常に、矢印をもたない 1 つの分岐のみが含まれます。

プロットする周波数スケールを線形に設定します。

opt = sectorplotoptions;
opt.FreqScale = 'Linear';

インデックスをプロットします。

passiveplot(Gc,Gr,opt)
legend('Complex-coefficient model','Real-coefficient model')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Complex-coefficient model, Real-coefficient model.

線形周波数スケールで、プロットは周波数値 0 を中心とする対称な周波数範囲をもつ 1 つの分岐を示します。複素係数モデルとともに応答をプロットする場合、プロットは実数係数モデルの負の周波数応答も示します。

入力引数

すべて折りたたむ

受動性について解析するモデル。tf モデル、ss モデル、genss モデルなどの動的システム モデルとして指定します。入力数と出力数が等しい場合、G は MIMO にすることができます。G は連続または離散のどちらにすることもできます。G が調整可能なブロックまたは不確かさをもつブロックを含む一般化モデルの場合、passiveplot は現在の G のノミナル値の受動性を評価します。

G がモデル配列の場合、passiveplot は同じプロット内の配列にあるすべてのモデルの受動性インデックスをプロットします。出力引数を使用して受動性データを取得する場合、G は単一モデルでなければなりません。

受動性インデックスのタイプ。次のいずれかとして指定します。

  • 'input' —入力受動性インデックス (入力フィードフォワード受動性)。この値は、連続時間では s = jω、離散時間では s = e についての (G(s)+G(s)H)/2 の最小の固有値です。

  • 'output' —出力受動性インデックス (出力フィードバック受動性)。G が最小位相の場合、この値は、連続時間では s = jω、離散時間では s = e についての (G(s)1+G(s)H)/2 の最小の固有値です。

  • 'io' — 組み合わされた I/O 受動性インデックス。I + G が最小位相の場合、この値は以下のように最大の τ(ω) となります。

    G(s)+G(s)H>2τ(ω)(I+G(s)HG(s)),

    これは、連続時間では s = jω、離散時間では s = e の場合です。

これらのインデックスの詳細については、受動性および受動性インデックスについてを参照してください。

インデックスを計算およびプロットする周波数。cell 配列 {wmin,wmax} または周波数値のベクトルとして指定します。

  • w が形式 {wmin,wmax} の cell 配列の場合、関数は wmin から wmax の範囲の周波数でインデックスを計算します。

  • w が周波数のベクトルの場合、関数は指定された各周波数でインデックスを計算します。たとえば、logspace を使用すると、対数的に等間隔な周波数値の行ベクトルを生成できます。

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

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

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

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

ライン スタイル、マーカー、色。1、2、または 3 文字の string または文字ベクトルとして指定します。文字が表示される順序は任意です。3 つの特性 (ライン スタイル、マーカーおよび色) をすべて指定する必要はありません。たとえば、ライン スタイルを省略してマーカーを指定した場合、プロットはラインなしでマーカーのみを表示します。この引数の設定の詳細については、関数 plot の入力引数 LineSpec を参照してください。

例: 'r--' は赤い破線を指定します。

例: '*b' は青いアスタリスク マーカーを指定します。

例: 'y' は黄色いラインを指定します。

受動性インデックス プロットのオプション セット。SectorPlotOptions オブジェクトとして指定します。このオプション セットを使用してプロットの外観をカスタマイズできます。sectorplotoptions を使用して、オプション セットを作成します。plotoptions に指定する設定は、passiveplot を実行する MATLAB セッションの基本設定をオーバーライドします。したがって、ローカルの基本設定にかかわらず、同じ外観の複数のプロットを生成するスクリプトを記述する場合、plotoptions が有用です。

利用可能なオプションのリストについては、sectorplotoptions を参照してください。

出力引数

すべて折りたたむ

周波数の関数としての受動性インデックス。行列として返されます。index には、指定した受動性インデックスのタイプか、周波数を指定した場合は w の周波数、指定しない場合は wout の周波数で計算された受動性インデックスのタイプが含まれます。index には w または wout にある値と同数の列と、以下が含まれます。

  • 入力、出力または組み合わされた I/O 受動性インデックスの 1 つの行。

  • 相対受動性インデックスについて、G にある入力または出力と同じ数の行。

たとえば、G は 3 入力、3 出力システムであり、w は 1 行 30 列の周波数のベクトルであるとします。すると、次の構文は 3 行 30 列の行列 index を返します。

index = passiveplot(G,w);

エントリ index(:,k) には G の相対受動性インデックスが周波数 w(k) で降順で含まれます。

インデックスが計算される周波数。ベクトルとして返されます。関数は、周波数範囲と点数をモデルのダイナミクスに基づいて自動的に選択します。

wout には複素係数をもつモデルの負の周波数値も含まれます。

バージョン履歴

R2016a で導入