→周波数応答(ボード線図)のプロット
200行目: | 200行目: | ||
==== <tt>bode</tt>関数を利用した方法 ==== | ==== <tt>bode</tt>関数を利用した方法 ==== | ||
MATLABのControl System Toolboxに含まれる<tt>bode</tt> | MATLABのControl System Toolboxに含まれる<tt>bode</tt>関数を利用すると,簡単にボード線図を描画できる.リストsample2_4にスクリプト例を,図3に実行結果のグラフを示す.なお,この例では変数<tt>omega</tt>で周波数ベクトルを指定しているが,省略することもできる.その場合は<tt>bode</tt>関数が自動的に周波数範囲を設定して描画する. | ||
sample2_4 <tt>bode</tt>関数を利用したボード線図の描画スクリプト | sample2_4 <tt>bode</tt>関数を利用したボード線図の描画スクリプト | ||
214行目: | 214行目: | ||
bode(sys, omega); | bode(sys, omega); | ||
[[ファイル:Bode_2_4.png|thumb| | [[ファイル:Bode_2_4.png|thumb|図3 <math>\displaystyle \frac{1}{s^2 + 0.5s+ 1}</math>のBode線図(<tt>bode</tt>関数利用)]] | ||
リストsample2_4の例のように<tt>bode</tt>関数単体でグラフまで描画するが,ゲイン線図だけを描画したい時や,実験結果と重ねてグラフ化したい時などは,次のように,<tt>bode</tt>関数の左辺に変数をおくと,グラフ表示は行わず周波数応答の計算結果だけが得られる(ゲインは絶対値,位相は度の単位). | リストsample2_4の例のように<tt>bode</tt>関数単体でグラフまで描画するが,ゲイン線図だけを描画したい時や,実験結果と重ねてグラフ化したい時などは,次のように,<tt>bode</tt>関数の左辺に変数をおくと,グラフ表示は行わず周波数応答の計算結果だけが得られる(ゲインは絶対値,位相は度の単位). | ||
221行目: | 221行目: | ||
これを利用したスクリプト例をリストsample2_5に示す.これはボード線図のゲイン線図だけをプロットする例である.実行結果を図4に示す. | |||
なお,<tt>bode</tt>関数が多入出力に対応しているため,MATLABの場合左辺の変数<tt>gain</tt>と<tt>phase</tt>は3次元の行列として出力される(対象システム1入力1出力であっても).よって,<tt>plot</tt>関数で使用する前にこのスクリプト例のように<tt>squeeze</tt>関数で1次元ベクトルに変換する必要があるので注意する. | なお,<tt>bode</tt>関数が多入出力に対応しているため,MATLABの場合左辺の変数<tt>gain</tt>と<tt>phase</tt>は3次元の行列として出力される(対象システム1入力1出力であっても).よって,<tt>plot</tt>関数で使用する前にこのスクリプト例のように<tt>squeeze</tt>関数で1次元ベクトルに変換する必要があるので注意する. | ||
244行目: | 244行目: | ||
grid( 'on'); | grid( 'on'); | ||
[[ファイル:Bode_2_5.png|thumb| | [[ファイル:Bode_2_5.png|thumb|図4 <math>\displaystyle \frac{1}{s^2 + 0.5s+ 1}</math>のBode線図(<tt>bode</tt>関数利用,ゲイン線図のみ)]] | ||
=== 周波数応答(ベクトル軌跡)のプロット === | === 周波数応答(ベクトル軌跡)のプロット === |