→ゲインと位相
(→ゲインと位相) |
|||
(同じ利用者による、間の7版が非表示) | |||
3行目: | 3行目: | ||
=== ゲインと位相 === | === ゲインと位相 === | ||
安定な線形なシステムに正弦波入力を加えると,定常状態では出力も正弦波となる.出力の正弦波の周波数は入力と同じになるが,振幅の変化や位相差が発生する. | |||
入力の正弦波を<math>u(t)</math>,定常状態での出力を<math>y(t)</math>とし,それぞれ次式で表されるとする. | 入力の正弦波を<math>u(t)</math>,定常状態での出力を<math>y(t)</math>とし,それぞれ次式で表されるとする. | ||
64行目: | 64行目: | ||
=== 周波数応答関数 === | === 周波数応答関数 === | ||
システムのゲインと位相は,上記のように実際に正弦波信号を入力して調べなくても,システムの周波数応答関数(周波数伝達関数)から求めることができる.周波数応答関数とは,伝達関数のラプラス演算子<math>s</math>を<math>j \omega</math> | システムのゲインと位相は,上記のように実際に正弦波信号を入力して調べなくても,システムの周波数応答関数(周波数伝達関数)から求めることができる.周波数応答関数とは,伝達関数のラプラス演算子<math>s</math>を<math>j \omega</math>に置き換えたものである.周波数応答関数は角周波数<math>\omega</math>を含んだ複素関数であり,その絶対値と偏角がそれぞれゲインと位相に対応する. | ||
<math> | <math> | ||
250行目: | 250行目: | ||
ベクトル軌跡は周波数応答関数を<math>\omega = 0 \sim \infty</math>の範囲で複素平面上にそのままプロットしたものである.MATLAB(Octave)では複素数ベクトルを<tt>plot</tt>関数でプロットすると複素平面上で表されるので,それをそのまま利用できる.リストsample2_6がスクリプトの例であり,実行結果は図vector_loci_2_6である.なお,MATLAB(Octave)には<tt>nyquist</tt>関数が用意されており,それを利用してもベクトル軌跡を描くことができる. | ベクトル軌跡は周波数応答関数を<math>\omega = 0 \sim \infty</math>の範囲で複素平面上にそのままプロットしたものである.MATLAB(Octave)では複素数ベクトルを<tt>plot</tt>関数でプロットすると複素平面上で表されるので,それをそのまま利用できる.リストsample2_6がスクリプトの例であり,実行結果は図vector_loci_2_6である.なお,MATLAB(Octave)には<tt>nyquist</tt>関数が用意されており,それを利用してもベクトル軌跡を描くことができる. | ||
[[ファイル:vector_loci_2_6.png|thumb|図5 <math>\displaystyle \frac{1}{s^2 + 0.5s+ 1}</math>のベクトル軌跡]] | |||
sample2_6 二次遅れ系のベクトル軌跡を描くスクリプト | sample2_6 二次遅れ系のベクトル軌跡を描くスクリプト | ||
265行目: | 267行目: | ||
axis equal; %グラフの縦横比を1:1に指定 | axis equal; %グラフの縦横比を1:1に指定 | ||
grid('on'); | grid('on'); | ||
== 応用編 == | == 応用編 == | ||
284行目: | 283行目: | ||
</math> | </math> | ||
よって,むだ時間要素のボード線図を描くスクリプト例はリストsample2_7となる.実行結果は図6である. | |||
ここで,関数<tt>ones</tt>は指定したサイズで要素がすべて1の行列を生成する関数であり,関数<tt>size</tt>で周波数ベクトルの大きさを取り出して利用している. | ここで,関数<tt>ones</tt>は指定したサイズで要素がすべて1の行列を生成する関数であり,関数<tt>size</tt>で周波数ベクトルの大きさを取り出して利用している. | ||
[[ファイル:Bode_2_7.png|thumb|図6 むだ時間要素のボード線図(<math>L=1</math>)]] | |||
sample2_7 むだ時間要素のボード線図を描くスクリプト | sample2_7 むだ時間要素のボード線図を描くスクリプト | ||
311行目: | 314行目: | ||
ylabel('Phase (deg)'); | ylabel('Phase (deg)'); | ||
grid('on'); | grid('on'); | ||
=== 実験結果との重ね合わせの例 === | === 実験結果との重ね合わせの例 === | ||
322行目: | 319行目: | ||
実験科目や卒業研究などで,実験装置での実測結果と理論式から求めた理論曲線を比較する場面がよく出てくる.リストsample2_8は実験で求めた周波数応答と理論曲線を重ねて描くスクリプトの例である. | 実験科目や卒業研究などで,実験装置での実測結果と理論式から求めた理論曲線を比較する場面がよく出てくる.リストsample2_8は実験で求めた周波数応答と理論曲線を重ねて描くスクリプトの例である. | ||
実験による測定結果の周波数,ゲイン,位相をそれぞれ<tt>omega_e</tt>, <tt>gaindB_e</tt>, <tt>phase_e</tt>という変数に代入しておき,理論曲線と重ねている.この際,実験データの方はマーカーで示すべきであるので,<tt>semilog</tt>関数内で線類を指定している.また,関数<tt>legend</tt> | 実験による測定結果の周波数,ゲイン,位相をそれぞれ<tt>omega_e</tt>, <tt>gaindB_e</tt>, <tt>phase_e</tt>という変数に代入しておき,理論曲線と重ねている.この際,実験データの方はマーカーで示すべきであるので,<tt>semilog</tt>関数内で線類を指定している.また,関数<tt>legend</tt>でグラフに凡例を付け加えることができる.実行結果を図7に示す. | ||
[[ファイル:Bode_2_8.png|thumb|図7 実験結果と理論曲線を重ねる例]] | |||
357行目: | 356行目: | ||
grid('on'); | grid('on'); | ||
legend('Theoretical', 'Experimental'); | legend('Theoretical', 'Experimental'); | ||