メインコンテンツ

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

sectorplot

周波数の関数としてのセクター インデックスの計算またはプロット

説明

sectorplot(H,Q) は動的システム H と指定されたセクター行列 Q の相対セクター インデックスをプロットします。これらのインデックスはセクター境界がどの程度満たされているか (1 未満のインデックス) または違反されているか (指定された周波数で 1 より大きいインデックス) によって測定します。(セクター インデックスの意味の詳細についてはセクター境界とセクター インデックスについてを参照してください。) sectorplotH のダイナミクスに基づいて自動的に周波数の範囲と点の数を選択します。

次の式を正の部分と負の部分への対称行列 Q の直交分解にします。

Q=W1W1TW2W2T,W1TW2=0.

セクター インデックスのプロットは、W2TH に固有の安定した逆行列がある場合にのみ意味があります。この場合、セクター インデックスは次の式の特異値です。

(W1TH(jω))(W2TH(jω))1.

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

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

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

sectorplot(H1,H2,...,HN,Q) は、同じプロット上で複数の動的システム H1,H2,...,HN のセクター インデックスをプロットします。

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

sectorplot(___,w) は、w で指定された周波数のセクター インデックスをプロットします。周波数範囲または周波数のベクトルを指定できます。

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

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

[index,wout] = sectorplot(H,Q) はベクトル wout の各周波数でセクター インデックスを返します。出力 index は行列です。値 index(:,k) はセクター インデックスを周波数 w(k) で降順で返します。この構文はプロットを描画しません。

index = sectorplot(H,Q,w)w で指定される周波数でセクター インデックスを返します。

すべて折りたたむ

セクター インデックスをプロットして、次のように定義されるセクター内に G(s)=(s+2)/(s+1) の I/O 軌跡が収まる周波数を可視化します。

S={(y,u):0.1u2<uy<10u2}.

U/Y 領域では、このセクターは次の図の影付きの領域になります。

このセクターの Q 行列は次のようになります。

a = 0.1;  
b = 10; 
Q = [1 -(a+b)/2 ; -(a+b)/2 a*b];

軌跡 y(t)=Gu(t) は、すべての T > 0 について次が成り立つとき、セクター S 内にあります。

0.10Tu(t)2<0Tu(t)y(t)dt<100Tu(t)2dt.

周波数領域では、同じ条件を以下のように表すことができます。

(G(jω)1)HQ(G(jω)1)<0.

任意の周波数において G がこの条件を満たしているか違反しているかを確認するには、H = [G;1] のセクター インデックスをプロットします。

G = tf([1 2],[1 1]); 
sectorplot([G;1],Q)

MATLAB figure

プロットは、すべての周波数でセクター インデックスが 1 未満であることを示しています。したがって、G(s) の軌跡はすべての周波数において指定したセクター Q の範囲内に収まります。

特定のセクターについて、2 出力 2 入力システムのセクター プロットを調べます。システム H1 を読み込み、セクター Q を定義します。

load("sectorExampleSystem.mat","H1")
Q = [-5.12   2.16  -2.04   2.17
      2.16  -1.22  -0.28  -1.11
     -2.04  -0.28  -3.35   0.00
      2.17  -1.11   0.00   0.18];

プロットを作成します。

sectorplot(H1,Q)

MATLAB figure

H は 2 行 2 列なので、セクター プロットには 2 本のラインがあります。セクター インデックスの最大値は約 0.5 rad/s より低いところと、3 rad/s 前後の狭い帯域内で 1 を超えています。したがって、HQ で表されるセクター境界を満たしていません。

複素係数をもつモデルと実数係数をもつモデルの相対セクター インデックスを同じプロット上に作成します。

複素係数をもつシステムを作成します。

A = [-3.50,-1.25-0.25i;2,0];
B = [1;0];
C = [-0.75-0.5i,0.625-0.125i];
D = 0.5;
Hc = [ss(A,B,C,D);1];

実数係数をもつシステムを読み込みます。

load("sectorExampleSystem.mat","Hr")

両方のシステムの相対セクター インデックスをプロットします。

Q = [1 0.1;0.1 -1];
sectorplot(Hc,Hr,Q)
legend("Complex-coefficient model","Real-coefficient model", ...
    Location="southwest");

MATLAB figure

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

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

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

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

sectorplot(Hc,Hr,Q,opt)
legend("Complex-coefficient model","Real-coefficient model", ...
    Location="southwest");

MATLAB figure

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

入力引数

すべて折りたたむ

セクター境界に対して解析するモデル。tf モデル、ss モデル、または genss モデルなどの動的システム モデルとして指定します。H は連続または離散のどちらにすることもできます。H が調整可能なブロックまたは不確かさをもつブロックを含む一般化モデルの場合、sectorplotH の現在のノミナル値を解析します。

線形システム G のすべての I/O 軌跡 (u(t),y(t) が特定のセクターにあるかどうかを解析するには、H = [G;I] を使用します。ここで I = eyes(nu) のとき、nuG の入力の数です。

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

セクターの形状。次のように指定します。

  • 定数のセクター形状の場合は行列。Q は 1 辺が ny の対称正方行列です。ここで、nyH の出力数です。

  • 周波数依存のセクター形状の場合は LTI モデル。QQ(s)’ = Q(–s) を満たします。つまり、Q(s) は各周波数でエルミート行列と評価されます。

行列 Q は適切に定義された円錐セクターを表すために不定でなければなりません。不定行列には、正と負両方の固有値があります。

詳細については、セクター境界とセクター インデックスについてを参照してください。

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

  • 形式 {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 にある値と同数の列と、H にある入力と同数の行が含まれます。このため、値 index(:,k) はセクター インデックスを周波数 w(k) で降順で返します。

たとえば、G が 3 入力 3 出力システム、Q が適切なセクター行列、w が 1 行 30 列の周波数のベクトルの場合、次の構文は 3 行 30 列の行列 index を返します。

H = [G;eyes(3)]
index = sectorplot(H,Q,w);

エントリ index(:,k) には H の 3 つのセクター インデックスが周波数 w(k) で降順で含まれます。

詳細については、セクター境界とセクター インデックスについてを参照してください。

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

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

バージョン履歴

R2016a で導入