nichols
動的システムのニコルス応答
説明
[
は、動的システム モデル mag
,phase
,wout
] = nichols(sys
)sys
の周波数応答を計算し、ベクトル wout
の各周波数での応答の振幅と位相を返します。関数はシステム ダイナミクスに基づいて wout
の周波数を自動的に決定します。
nichols(___)
は、sys
の周波数応答のニコルス線図をプロットします。プロットは、システム応答の振幅 (dB 単位) と位相 (度単位) を周波数の関数として表示します。ニコルス線図のグリッド ラインを既存の SISO ニコルス線図に重ね合わせる場合は、ngrid
を使用します。プロットをさらにカスタマイズするには、nicholsplot
を使用します。
複数の動的システムの応答を同じプロット上にプロットするには、
sys
をモデルのコンマ区切りリストとして指定します。たとえば、nichols(sys1,sys2,sys3)
は 3 つのモデルの応答を同じプロット上にプロットします。プロット内の各システムの色、ライン スタイル、およびマーカーを指定するには、システムごとに
LineSpec
値を指定します。たとえば、nichols(sys1,LineSpec1,sys2,LineSpec2)
は 2 つのモデルをプロットし、それらのプロット スタイルを指定します。LineSpec
値の指定の詳細については、nicholsplot
を参照してください。
例
ニコルス グリッド ライン付きのニコルス応答
次のシステムのニコルス グリッド ライン付きのニコルス応答をプロットします。
H = tf([-4 48 -18 250 600],[1 30 282 525 60]); nichols(H) ngrid
指定された周波数のニコルス線図
指定された周波数範囲でニコルス線図を作成します。周波数の特定の範囲でダイナミクスに焦点を合わせるときにこの方法を使用します。
H = tf([-0.1,-2.4,-181,-1950],[1,3.3,990,2600]); nichols(H,{1,100})
cell 配列 {1,100}
は、ニコルス線図に最小および最大の周波数値を指定します。このように周波数の範囲を指定すると、関数は周波数応答データの中間点を選択します。
あるいは、周波数応答の評価とプロットに使用する周波数点のベクトルを指定します。
w = 1:0.5:100;
nichols(H,w,'.-')
nichols
は、指定された周波数のみで周波数応答をプロットします。
複数の動的システムのニコルス線図
連続時間システムの周波数応答を、同一のニコルス線図にある等価な離散化システムと比較します。
連続時間動的システムと離散時間動的システムを作成します。
H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
Hd = c2d(H,0.5,'zoh');
両方のシステムを表示するニコルス線図を作成します。
nichols(H,Hd)
ラインの属性を指定したニコルス線図
入力引数 LineSpec
を使って、ニコルス線図に各システムのライン スタイル、色、またはマーカーを指定します。
H = tf([1 0.1 7.5],[1 0.12 9 0 0]); Hd = c2d(H,0.5,'zoh'); nichols(H,'r',Hd,'b--')
最初の LineSpec
である 'r'
は、H
の応答に赤の実線を指定します。2 番目の LineSpec
である 'b--'
は、Hd
の応答に青の破線を指定します。
ニコルス応答の振幅と位相データ
SISO システムの周波数応答の振幅と位相を計算します。
周波数を指定しない場合、nichols
はシステム ダイナミクスに基づいて周波数を選択し、これを 3 番目の出力引数に返します。
H = tf([1 0.1 7.5],[1 0.12 9 0 0]); [mag,phase,wout] = nichols(H);
H
は SISO モデルなので、最初の 2 つの次元 mag
と phase
はどちらも 1 です。3 番目の次元は wout
の周波数点の数です。
size(mag)
ans = 1×3
1 1 110
length(wout)
ans = 110
したがって、mag
の 3 番目の次元の各エントリは、wout
の対応する周波数における応答の振幅を提供します。
MIMO システムのニコルス線図
この例では 2 出力、3 入力のシステムを作成します。
rng(0,'twister');
H = rss(4,2,3);
このシステムでは、nichols
が各 I/O チャネルの周波数応答を個別のプロットとして単一の Figure 内にプロットします。
nichols(H)
1 ~ 10 ラジアンの 20 の周波数でこれらの応答の振幅と位相を計算します。
w = logspace(0,1,20); [mag,phase] = nichols(H,w);
mag
と phase
は 3 次元配列で、最初の 2 つの次元は H
の出力次元と入力次元に対応し、3 番目の次元は周波数の数です。たとえば、mag
の次元を確認します。
size(mag)
ans = 1×3
2 3 20
したがって、たとえば mag(1,3,10)
は、w
内の 10 番目の周波数で計算された、3 番目の入力から最初の出力への応答の振幅です。同様に、phase(1,3,10)
には同じ応答の位相が含まれています。
複素係数をもつモデルのニコルス線図
複素係数をもつモデルと実数係数をもつモデルのニコルス線図を同じプロット上に作成します。
rng(0) 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 = rss(7); nichols(Gc,Gr) legend('Complex-coefficient model','Real-coefficient model','Location','southwest')
ans = Legend (Complex-coefficient model, Real-coefficient model) with properties: String: {'Complex-coefficient model' 'Real-coefficient model'} Location: 'southwest' Orientation: 'vertical' FontSize: 9 Position: [0.1491 0.1564 0.3785 0.0789] Units: 'normalized' Use GET to show all properties
複素係数をもつモデルの場合、nichols
には正と負の両方の周波数で構成される等高線が表示されます。実数係数をもつモデルの場合、複素係数をもつモデルが存在していても、プロットには正の周波数のみが表示されます。曲線をクリックして、正と負の周波数に対応するセクションと値をさらに調査できます。
入力引数
sys
— 動的システム
動的システム モデル | モデル配列
動的システム。SISO または MIMO 動的システム モデルか、動的システム モデルの配列として指定します。使用できる動的システムには次のようなものがあります。
sparss
モデルまたはmechss
モデルなどのスパース状態空間モデル。スパース モデルに対して、周波数グリッドw
を指定しなければなりません。genss
やuss
(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
がモデルの配列である場合、プロットは同じ座標軸上に配列のすべてのモデルの応答を表示します。
w
— 周波数
{wmin,wmax}
| ベクトル | []
周波数応答を計算およびプロットする周波数。cell 配列 {wmin,wmax}
または周波数値のベクトルとして指定します。
w
が形式{wmin,wmax}
の cell 配列の場合、関数はwmin
からwmax
の範囲の周波数で応答を計算します。w
が周波数のベクトルの場合、関数は指定された各周波数で応答を計算します。たとえば、logspace
を使用すると、対数的に等間隔な周波数値の行ベクトルを生成できます。ベクトルw
には正と負の両方の周波数を含めることができます。[]
— システム ダイナミクスに基づいて自動的に周波数を選択します。
複素係数をもつモデルでは、プロットに対して周波数範囲 [wmin,wmax] を指定する場合、プロットには正の周波数 [wmin,wmax] と負の周波数 [–wmax,–wmin] の両方で構成される等高線が表示されます。
周波数はラジアン/TimeUnit
単位で指定します。ここで TimeUnit
はモデルの TimeUnit
プロパティです。
出力引数
mag
— システム応答の振幅
3 次元配列
システム応答の振幅 (絶対単位)。3 次元配列として返されます。この配列の次元は (システム出力数) × (システム入力数) × (周波数点数) です。
SISO システムの場合、
mag(1,1,k)
はw
またはwout
でk
番目の周波数における応答の振幅を提供します。例については、ニコルス応答の振幅と位相データを参照してください。MIMO システムの場合、
mag(i,j,k)
はj
番目の入力からi
番目の出力へのk
番目の周波数における応答の振幅を提供します。例については、MIMO システムのニコルス線図を参照してください。
振幅を絶対単位からデシベルに変換するには、次を使用します。
magdb = 20*log10(mag)
phase
— システム応答の位相
3 次元配列
システム応答の位相 (度単位)。3 次元配列として返されます。この配列の次元は (出力数) × (入力数) × (周波数点数) です。
SISO システムの場合、
phase(1,1,k)
はw
またはwout
のk
番目の周波数で応答の位相を提供します。例については、ニコルス応答の振幅と位相データを参照してください。MIMO システムの場合、
phase(i,j,k)
はj
番目の入力からi
番目の出力へのk
番目の周波数における応答の位相を提供します。例については、MIMO システムのニコルス線図を参照してください。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)