e-tipsmemo

ごった煮

ScilabのXcosの導入と紹介

なんか制御的なことが勉強したくなったときに、
数式を簡単にいじるツールと言えばMatlabがよく挙げられる。
しかもブロック図をGUIで作成し、シミュレーションもできるsimulinkもとても強力なツールで非常に魅力的。

しかしながら、Matlab は基本料金1万/年+使用するパッケージ数*数千円という便利にするためのコストが少なからずかかり、
お手軽入門とはなかなかいかない。


そこでそういったツールがないかを探したり本屋にいったりしたところ、
Scilab+XcosというMatlab+simulinkを真似たツールが”無料”で使用できるそうなのでこれで制御的なところを学習してみたいと思った。

Scilab + Xcos

メインでほしいのはXcosのグラフィカルなブロック図作成+シミュレーション機能であるが、それはScilabをインストールすることによって、
同時についてくる。
なのでScilabをインストールする。
Scilab 6.1.1 | ESI Group

Xcosの起動

Scilab (Desktop) を起動して、Applications->Xcosで、
まるでsimulinkのようなGUIアプリケーションが起動する。

しかもMatlab to Scilab Translatorなるものもあるし。

Xcosを使用

Palette Browserから何とか以下の3つを探し出し、
ドラッグアンドドロップでおいて、接続する。

各ブロックにパラメーターを入力する。

ブロック名 パラメーター
Event clock generator Period 0.01
CSCOPE Refresh period 4
Sine wave generator Amplitude
Frequency
5
%pi*2

Simulation


シミュレーションのセットアップをして。
Simulation-->Startで実行される。
スコープの結果が自動的に表示されるはず。

振幅5、周期1sのSin波が、サンプリング周波数 = 0.01sで表示されているはず。

オペアンプっぽいモデルのシミュレーション

  • 入力Sin波そのまま
  • ゲイン60dB、カットオフ1Hzのオペアンプ(の伝達関数)接続
  • それに100倍になるように、反転増幅回路を組んだ時

のブロック図となっている。

これのシミュレーション結果は

2つ目の出力は、帯域が足りていないので10000倍のゲインは出ていないことがわかる。
3つ目で、ゲインを抑えるかわりに、帯域が広く使えるので、しっかり100倍になっている。(さらに反転している)

TNJ-062 : ブロック線図で考えるOP アンプDC サーボ回路の低域カットオフ周波数(前編)学びそびれた自動制御理論から意外と解析が難しい回路にアプローチする | アナログ・デバイセズ

感想

simulinkもそうだったが、こういうブロック図作成アプリケーションでの信号線の結線UIがなかなか操作しずらい上に、いい感じのルートを通ってくれないのがちょっと残念。(あんまり本質ではないが。)

あとこのブロック図から入出力信号を設定して、ボード線図を書きたかった。
できないらしいのでステップ入力とかを入れてScilabで計算するしかないらしい。
(simulinkではできた)