MATLAB/Simulink 特別セミナー in 仙台

午後半休をもらってMathWorks社のセミナー*1に参加してきました。本セミナーのサブタイトルは「データ解析から組み込みシステム開発まで」で、参加人数は50名ほどでした。

MATLAB: 製品概要と解析機能の紹介

MATLABSimulinkを使って何ができるのか、その一例をデモンストレーションしてくれました。はじめに紹介してくれたのは「数独」を解くソルバーを簡単に実装出来る事でした。この例では「問題」をテキストデータとして読み込んでいました。しかし、このテキストデータは手入力したのではなく、紙に印刷された数独の問題をWebカメラで撮影して、画像処理を行う事で数字を読み取っていたのです。さらに、解いた結果をWebカメラの動画像に重ねて表示させていました。確かにプログラミングをすれば実現できますが、これだけ高度な処理を手軽に実装出来てしまうのがMATLABの威力と言えるでしょう。

MATLABは以下の機能を持ちます。

  • 計算(統計解析、信号処理、制御系、他数学上の計算多数)
  • グラフィックス(例として3次元のMRIデータの可視化)
  • プログラミング(強力な構文解析機能により非効率なコードの指摘もしてくれる)

これらを組み合わせてインタラクティブな開発・解析が可能になります。また、MATLAB外とのデータのやりとりも柔軟に行えます。

  • プログラムのコンパイル、データのエクスポート
  • データのインポート(音声、画像、動画、バイナリ、テキスト、Excel、データベース、独自の読み込み関数)

MATLABによる統計解析入門

統計解析のフレームワーク

問題 → データ収集・管理 → 調査・解析 → モデリング・シミュレーション → 回答

のようになっています。MATLABのStatistics Toolboxは2〜3番目をサポートしています。

本公演で以下のデモンストレーションが行われました。

  • 複数のExcelファイルをインポートし、マージする
  • SQLのように必要なデータだけを抽出
  • ヒストグラムやその他グラフなどに反映
  • 分散分析や回帰モデルもお手の物
  • これらを簡単な操作だけで動的に処理できる
  • これらの実行結果はHTML形式やPDF形式として出力出来る。つまり実行した物がそのままレポートになる。

MBD概論−現場における取り組み事例紹介−

MATLABを利用したMBD(モデルベース開発、Model Base Development)の利点の紹介がありました。

電子制御システムの複雑度は年々増すばかりで、開発能力が追いつきません。従来の「物造り」から「機能造り」へと進化しているとも言えます。

  • 実行可能な仕様書:MATLABモデリングを行うと、モデルを実行する事が出来ます。つまり、仕様段階でのバグはここで明らかになります。また、仕様の羅列ではなく実行可能で、グラフィカルな仕様書なので他分野の開発者からの指摘もしやすい利点があります。
  • 自動化:コード生成、テストケースの生成、テストの実行を自動化できます。これにより人為的ミスを最小限に抑える事が出来ます。
  • コンカレント(同時並行)に開発可能:動く状態でモデリングされているので、例えば、制御系の開発と機構の開発は平行して行えます。これは納期の短縮につながります。
  • 個人開発から組織開発へ:前者では個人にスキルやノウハウが蓄積し、会社組織には蓄積しません。MBDではモデルが設計資産として残ります。

一方でMBDを展開する際の壁もあります。

  • リスクばかりが目につく(新しい物への抵抗が現場に根強い)
  • プロジェクト立ち上げ時の負荷が大きい(評価段階での負荷は小さくなる)

これらの要因で導入が難しい場合には、先行トライプロジェクトチームを作り、小さい開発から取り組んでもらいたいとの事です。

組込み制御システム開発を加速するモデルベースデザイン

DCモータの位置決め制御問題を例にモデルベースデザインの紹介が行われた。ワークフローは

  1. プラントモデリング(設計課題の理解)
  2. コントローラデザイン(設計課題の解決)
  3. リアルタイムテスト(設計課題の検証)

となっています。

プラントモデリングの方法として

  1. 第一原理モデリング(ホワイトボックスモデリング
  2. システム同定ブラックボックスモデリング
  3. パラメータ推定(グレーボックスモデリング

1.では物理法則を出発点としてシステムをモデリングするので、対象に関する深い理解が必要ですが高い精度を実現可能です。一方2.では対象を理解する必要は無く、手軽にモデリングが可能ですが精度は劣ります。3.は支配方程式は分かっているが、パラメータが不明な場合に用いられるので労力も精度も中間に位置します。

コントローラデザインとして、以下の手順での開発例を紹介されました。

  1. プラントモデルの解析
  2. 補償器の設計*2
  3. 補償器の応答特性のチューニング
  4. 補償器の離散化
  5. パラメータの再チューニング
  6. フォールトトレランスロジックの設計

MATLABはリアルタイムなテスト環境も実現します。制御系の設計をした後には実機での検証が必要です。MATLABをコントローラとしてそのまま実機に接続、同時にテスト出来ます。MATLABは計測器等とのインターフェースも容易に行えます。実機の動作結果をコントローラの設計にフィードバックし、直ちに動作検証を行う事も可能です。

*1:http://www.mathworks.co.jp/company/events/seminars/seminar50758.html

*2:メモし忘れたので後で修正するかもしれません