Posted at

Octaveで制御工学のための環境を作る

More than 1 year has passed since last update.


この記事について


  • 制御工学の勉強にOctave使う必要が出てきたので環境構築方法を簡単にメモ.

  • 出力したインパルス応答の値がなんかおかしかったのでそれについてもメモ(未解決).


環境

今回は以下の環境に制御工学用の環境構築を行った.


  • Windows10 Bash on Ubuntu on Windows

  • Octave 3.8.1


手順

まず,controlパッケージの最新版 (2016.12.24時点では3.0.0) をwgetにより取得する.

$ wget https://downloads.sourceforge.net/octave/control-3.0.0.tar.gz

次に,Octaveを起動してcontrolをインストールする.Octaveはsudoで起動しないとパッケージインストール時にPermission Denied喰らうので注意.

$ sudo octave

octave> pkg install -global control-3.0.0.tar.gz

For information about changes from previous versions of the control package, run 'news control'.というメッセージが出てきたらインストール完了.

下記コマンドでパッケージを読み込むことができる.

octave> pkg load control

Octaveを起動するたびにパッケージの読み込みを行うのは面倒くさいので,ホームディレクトリに以下のような内容の.octavercファイルを作成しておくと便利.


.octaverc

pkg load control



テスト

以下のように定義した伝達関数$G(s)$のインパルス応答$g(t)$をプロットしてみる.

G(s) = \frac{1}{s^2 + 5s + 6}

Octaveのコードと出力結果は以下の通り.

octave> G = tf([1], [1, 5, 6])

octave> impulse(G)

impulse_test.png

解析解は $g(t) = e^{-2t} - e^{-3t}$ なんだけどグラフが微妙に違う…?