特集:制御工学の発展・応用を支えるソフトウェア・ベンチマーク問題
やってみよう制御系設計:制御工学の教育研究に役立つ CAD ソフト
南裕樹(大阪大学)
制御系設計で広く使われているソフトウェアはMATLABですが、そのライセンス費用は一部のユーザーにとっては高額であると感じられるかもしれません。そのため、MATLABの代替となるフリーまたはオープンソースの制御系CADソフトを探している方も多いでしょう。そのような方々のために、Scilab,GNU Octave,Python(Python-Control),Julia(JuliaControl)といったフリーまたはオープンソースの制御系CADソフトを紹介します。これらのソフトウェアは、基本的な制御系解析・設計を行うための専用コマンドが提供されており、MATLABと同様の機能を提供しています。しかし、「この中でどれを使うのがよいのか?」という質問に対しては、一概に答えることは難しいです。ユーザーのニーズや好みによって最適な選択は変わりますし、この問いに答えてしまうと、制御系CADをめぐる論争に発展する危険性があります。そこで、本解説では、制御系設計の例題を通して、それぞれのソフトウェアの使い方を少しだけ解説します。それぞれのソフトウェアの特性を理解し、自分に最適なソフトウェアを選ぶための参考にしていただければ幸いです。そして、この解説が、「無料ソフトで制御系設計をやってみよう!」という一歩を踏み出すきっかけになることを期待しています。
- Scilab
- Octave
- Python-control
- JuliaControl(ControlSystems.jl)
- Google colab でのPython-control の利用方法はこちら
- Scilabがwindows11(UTF8)で起動しない場合の対応策はこちら
- 例題1と例題2のコードリスト
- 制御系設計のサンプルコード(MATLAB, Python, Julia)
例題2で対象とした制御対象は,台車型倒立振子です。設計したフィードバックゲインで倒立振子がどのように振る舞うかをシミュレータで確認することができます。また,QとRの値を変えると制御性能が変化しますので,そのことを確認されるのもよいと思いますし,また,極配置法でフィードバックゲインを設計してもよいでしょう。
ゲイン(k1,k2,k3,k4)を設定し,[rest]→[start]でシミュレーション開始です。キーボードのdボタンを押すと,外乱(指で突く)を与えることができます。初期値や外乱の値も変えることができます。また,[save]を押すと,シミュレーションのデータをcsv形式で保存することができます。
https://ja.wolframalpha.com
transfer function of 1/(s(s+1)) と入力すると,それに関する情報を一覧で表示してくれます。伝達関数の特徴をざっと把握するときに役立つでしょう。
- 南,Pythonによる制御工学入門,オーム社(2019)
- 南,石川,制御系設計論,コロナ社(2021)
- みなみゆうきの制御塾(チャンネル登録よろしくお願いします)