この記事について
- 制御工学の勉強に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)
解析解は $g(t) = e^{-2t} - e^{-3t}$ なんだけどグラフが微妙に違う…?