メインコンテンツ

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(G1,G2,...,GN,___) は、同じプロット上で複数の動的システム G1,G2,...,GN の受動性インデックスをプロットします。

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

passiveplot(___,type) は、指定されたタイプの値に応じて、入力、出力、または I/O 受動性インデックスをプロットします。

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

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

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

passiveplot(___,type,w,plotoptions) は、任意の順序で指定された typew、および plotoptions の任意の組み合わせについて、受動性インデックスをプロットします。

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

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)

MATLAB figure

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

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

passiveplot(G,"input")

MATLAB figure

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

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");

MATLAB figure

相互接続されているシステムの入力受動性インデックスは、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");

MATLAB figure

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

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

opt = sectorplotoptions;
opt.FreqScale = "Linear";

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

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

MATLAB figure

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

入力引数

すべて折りたたむ

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

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

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

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

  • "output" — 出力受動性インデックス (出力フィードバック受動性)。G が最小位相の場合、この値は、連続時間では s = 、離散時間では 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 = 、離散時間では s = e の場合です。

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

インデックスを計算およびプロットする周波数。次のいずれかとして指定します。

  • 形式 {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 プロパティです。

ライン スタイル、マーカー、色。記号を含む string または文字ベクトルとして指定します。記号は任意の順序で表記できます。3 つの特性をすべて指定する必要はありません。たとえば、マーカーを指定してライン スタイルを省略した場合、プロットはラインなしでマーカーのみを表示します。

例: '--or' は、円マーカーをもつ赤い破線です。

ライン スタイル説明
"-"実線
"--"破線
":"点線
"-."一点鎖線
マーカー説明
"o"
"+"プラス記号
"*"アスタリスク
"."
"x"x 印
"_"水平線
"|"垂直線
"s"正方形
"d"菱形
"^"上向き三角形
"v"下向き三角形
">"右向き三角形
"<"左向き三角形
"p"星形五角形
"h"星形六角形
説明
"r"
"g"
"b"
"c"シアン
"m"マゼンタ
"y"黄色
"k"
"w"

受動性インデックス プロットのオプション。sectorplotoptions を使用して作成した SectorPlotOptions オブジェクトとして指定します。これらのオプションを使用してプロットの外観をカスタマイズできます。plotoptions に指定する設定は、現在の MATLAB セッションの基本設定をオーバーライドします。

出力引数

すべて折りたたむ

周波数の関数としての受動性インデックス。行列として返されます。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 で導入