ボード線図のプログラム例

  プログラムは標準入力を使用して書かれていますので,ファイルから入力するときは,以下に示すように,リダイレクトを利用してください.

ruby test.rb < ファイル名

  伝達関数は,因数分解しても,しなくても,いずれの形でも入力可能です.データ例を 2 つ( data1 と data2 )添付しておきましたが,これらは以下の伝達関数に対する入力例です(同じ伝達関数です).

1/(1 + 11.1s + 11.1s2 + s3)  data1(因数分解してない)
1/((1+0.1s)(1+s)(1+10s))  data2(因数分解してある)

  具体的な入力データは以下のようになります.下線部が実際にデータを入れる箇所です.日本語で記述した部分(「ゲイン」,「位相」等)は,次に続くデータの説明ですのでどのように修正しても構いませんが,削除したり,または,複数の文(間に半角のスペースを入れる)にするようなことはしないでください.

  1. data1
    ゲイン gain 位相 phase
    周波数の下限と上限 0.01 100 分割数 100
    分子の表現方法 0 次数 0 係数(次数が低い順) 1.0
    分母の表現方法 0 次数 3 係数(次数が低い順) 1.0 11.1 11.1 1.0			
  2. data2
    ゲイン gain 位相 phase
    周波数の下限と上限 0.01 100 分割数 100
    分子の表現方法 1 次数 0 係数(次数が低い順) 1.0
    分母の表現方法 1 次数 3 係数(次数が低い順) 1.0 0.1 1.0 1.0 1.0 10.0			
  各データの詳細な説明は以下の通りです.

ゲイン gain 位相 phase

  ゲイン及び位相を出力するファイル名を入力します.必ず異なる名前にしてください.

周波数の下限と上限 0.01 100 分割数 100

  計算の対象とする周波数(ω)の下限と上限,及び,その間の分割数( n とする)を入力します.与えられた下限及び上限の対数をとり,その間を n 等分した周波数における値を計算します.なお,位相の値は,その前に計算した周波数からの変化を見て設定していますので,位相が ±180 度を超えるような周波数における値だけを計算すると正しい結果が得られません.

分母の表現方法 0

  分母の表現方法を入力します.0 を入力すると因数分解してない,また,1 を入力すると因数分解してあるとみなします.なお,この項を含め,以下の説明は分子に対しても同様です.

次数 3

  多項式の次数を入力します.

係数(次数が低い順) 1.0 11.1 11.1 1.0

  多項式の係数を入力します.0 次の項の係数から順に入力してください.因数分解してある場合は,カッコ内の 1 次式の係数をペアーにして次数分だけ入力してください.なお,この際も,0 次,1 次,0 次,1 次,・・・のように低い方の係数をペアーの最初にしてください.カッコの順番は任意です.