平田氏の著書「実践ロバスト制御」をPython-Controlを使ってやってみようという話。
今まで,ロバスト制御を試してみたいと思いつつ,なかなか難解なので挫折していた。
なぜ挫折してしまうかというと,以下のような要因がある。
- 数学的に難解
- 理解するための前提知識が多い
- 自分の使いたい用途で,解けるための条件を満たさないかも
- そんなに難しいのに,結果を見ると古典制御に比べてイマイチそう
だが,平田氏の著書↓が大変わかりやすく,タイトル通り「実践」的である。これならできそうと思わせてくれたので再チャレンジしようとしている。
ただ問題があり,この本はMATLABのRobust Control Toolboxを前提としており,それが使えない。MATLABは制御分野でデファクト・スタンダードとなっているために値段が下がらず,高い。かつてのWindowsのようだ。個人向けのMATLAB Homeというもあるが,心意気次第ではギリギリ出せる,というくらいの価格設定で,Simulinkのブロック数制限などもあり,気持ちよく使える感じではない。(実は私もだいぶ前に買って使っているのだが,Robust Control Toolboxは買っておらず,追加するには,1年間の保守期間を過ぎているのでMATLABやControl System Toolboxももう一度買わないといけないのでやめた)。MATLAB高すぎ問題を解決すべく,同等のフリーソフトを作ろうとする試みは「Octave」「Scilab」「FreeMat」など昔から多数あったが,なかなか牙城を崩せずにいた。が,最近,「Python-Control」がかなり有望である。Simulinkの機能はないが,MATLABの機能はかなり揃っており,関数名などもMATLABと互換性の高いMATLAB Compatibility Module↓というのがあり,上記の本で必要なControl System ToolboxやRobust Control Toolboxの機能もほぼ揃いそうである。
MATLAB Compatibility Module — Python Control Systems Library 0.6d documentation
上記の本のサンプルプログラムを無料のPython-Controlに移植して確認しながら勉強していこうと思う。誰かの参考になるかもしれないので途中経過をブログに書きながらやってみる。
ロバスト制御の実用性について,私は少し懐疑的である。本の通り試すだけでなく古典制御と比較してメリットがあるのかも論じてみたい。
私は制御理論は本で勉強することが多いが,いざ学んだ理論を実際に応用しようとするとギャップを感じることも多い。PID制御などの基礎的な話はすでにネットに情報が溢れているので書かないつもりだが,重要度の割に語られ足りてないと感じる話もあるので,気が向いたらそういう話も織り交ぜてみよう。