MATLAB/Simulink 特別セミナー in 仙台
午後半休をもらってMathWorks社のセミナー*1に参加してきました。本セミナーのサブタイトルは「データ解析から組み込みシステム開発まで」で、参加人数は50名ほどでした。
MATLAB: 製品概要と解析機能の紹介
MATLABとSimulinkを使って何ができるのか、その一例をデモンストレーションしてくれました。はじめに紹介してくれたのは「数独」を解くソルバーを簡単に実装出来る事でした。この例では「問題」をテキストデータとして読み込んでいました。しかし、このテキストデータは手入力したのではなく、紙に印刷された数独の問題をWebカメラで撮影して、画像処理を行う事で数字を読み取っていたのです。さらに、解いた結果をWebカメラの動画像に重ねて表示させていました。確かにプログラミングをすれば実現できますが、これだけ高度な処理を手軽に実装出来てしまうのがMATLABの威力と言えるでしょう。
MATLABは以下の機能を持ちます。
これらを組み合わせてインタラクティブな開発・解析が可能になります。また、MATLAB外とのデータのやりとりも柔軟に行えます。
MATLABによる統計解析入門
統計解析のフレームワークは
問題 → データ収集・管理 → 調査・解析 → モデリング・シミュレーション → 回答
のようになっています。MATLABのStatistics Toolboxは2〜3番目をサポートしています。
本公演で以下のデモンストレーションが行われました。
MBD概論−現場における取り組み事例紹介−
MATLABを利用したMBD(モデルベース開発、Model Base Development)の利点の紹介がありました。
電子制御システムの複雑度は年々増すばかりで、開発能力が追いつきません。従来の「物造り」から「機能造り」へと進化しているとも言えます。
- 実行可能な仕様書:MATLABでモデリングを行うと、モデルを実行する事が出来ます。つまり、仕様段階でのバグはここで明らかになります。また、仕様の羅列ではなく実行可能で、グラフィカルな仕様書なので他分野の開発者からの指摘もしやすい利点があります。
- 自動化:コード生成、テストケースの生成、テストの実行を自動化できます。これにより人為的ミスを最小限に抑える事が出来ます。
- コンカレント(同時並行)に開発可能:動く状態でモデリングされているので、例えば、制御系の開発と機構の開発は平行して行えます。これは納期の短縮につながります。
- 個人開発から組織開発へ:前者では個人にスキルやノウハウが蓄積し、会社組織には蓄積しません。MBDではモデルが設計資産として残ります。
一方でMBDを展開する際の壁もあります。
- リスクばかりが目につく(新しい物への抵抗が現場に根強い)
- プロジェクト立ち上げ時の負荷が大きい(評価段階での負荷は小さくなる)
これらの要因で導入が難しい場合には、先行トライプロジェクトチームを作り、小さい開発から取り組んでもらいたいとの事です。
組込み制御システム開発を加速するモデルベースデザイン
DCモータの位置決め制御問題を例にモデルベースデザインの紹介が行われた。ワークフローは
- プラントモデリング(設計課題の理解)
- コントローラデザイン(設計課題の解決)
- リアルタイムテスト(設計課題の検証)
となっています。
プラントモデリングの方法として
1.では物理法則を出発点としてシステムをモデリングするので、対象に関する深い理解が必要ですが高い精度を実現可能です。一方2.では対象を理解する必要は無く、手軽にモデリングが可能ですが精度は劣ります。3.は支配方程式は分かっているが、パラメータが不明な場合に用いられるので労力も精度も中間に位置します。
コントローラデザインとして、以下の手順での開発例を紹介されました。
- プラントモデルの解析
- 補償器の設計*2
- 補償器の応答特性のチューニング
- 補償器の離散化
- パラメータの再チューニング
- フォールトトレランスロジックの設計
MATLABはリアルタイムなテスト環境も実現します。制御系の設計をした後には実機での検証が必要です。MATLABをコントローラとしてそのまま実機に接続、同時にテスト出来ます。MATLABは計測器等とのインターフェースも容易に行えます。実機の動作結果をコントローラの設計にフィードバックし、直ちに動作検証を行う事も可能です。
*1:http://www.mathworks.co.jp/company/events/seminars/seminar50758.html
*2:メモし忘れたので後で修正するかもしれません