MATLAB EXPO 2010( #matlabexpo )参加メモ

東京ミッドタウンで開催されたMATLAB EXPO 2010に参加して
きたので,今回はそのメモを.

聞いた講演は下記のもの

  • 10:10-10:50 Keynote1 基調講演
    • MathWorks Vice President of Marketing Richard Rovner 氏
  • 10:50-10:50 Keynote2 日立グループにおける組込みソフトウェア開発力強化の取組み
    • 株式会社 日立製作所 モノづくり技術事業部 組込みシステム改革戦略センタ センタ長 小泉 忍 氏
  • 13:00-13:50 B2 MATLAB“アンド”Simulinkによるモデルベースデザイン
  • 14:10-15:00 D3 制御モデルの固定小数点設計&Cコード生成
    • MathWorks Japan アプリケーションエンジニアリング部 山本 順久 氏
  • 15:30-16:20 C4 様々な開発段階における統合的モデルベース開発
    • 株式会社いすゞ中央研究所 取締役 西村 輝一 氏
  • 16:40-17:30 F5 静的コード検証によるソフトウェア品質確保
    • MathWorks Japan アプリケーションエンジニアリング部 渡辺 繁 氏


各講演の簡単なまとめ

  • 10:10-10:50 Keynote1 基調講演
    • 今年度のMATLABファミリーの強化点の紹介.強化点は下記のとおり.
      • マルチコア・クラスタ対応の追加
      • ストリーム処理を実現するSystemObjectの追加
      • テスト・検証機能強化
      • コード生成機能強化
  • 10:50-10:50 Keynote2 日立グループにおける組込みソフトウェア開発力強化の取組み
    • 下記4つの視点と活動による強化の取り組みの紹介.
      • 視点:Process, Architecture, Design, Education
      • 活動:
        • 1.プロセス整備
        • 2.プラットフォーム化
        • 3.MBD
        • 4.SPL
        • 上記と並行して,技術者教育.
  • 13:00-13:50 B2 MATLAB“アンド”Simulinkによるモデルベースデザイン
    • マルチドメインシステムモデリングに向けたSystemObejects機能やデジアナモデル,状態遷移機能やコード生成機能に関する紹介と説明.
  • 14:10-15:00 D3 制御モデルの固定小数点設計&Cコード生成
    • Simulinkの固定小数点利用容易化ツールSimulink Fixed Pointの紹介と機能の説明.
  • 15:30-16:20 C4 様々な開発段階における統合的モデルベース開発
    • いすゞ中央研究所での研究開発費削減を端とする,シミュレーション強化の流れとそれによっておきたことの講演.
  • 16:40-17:30 F5 静的コード検証によるソフトウェア品質確保
    • コードの静的検証ツールPolySpaceの紹介と機能の説明.


そして,毎回のごとく,誤字脱字勘違いだらけの
まとまっていないメモ

■開催の挨拶
MathWorks Japan社長 梨澤 利隆 氏

  • 毎月満足度調査実施中
  • 製造業へのアシストとして,何か1つでも持って帰れれば.

■keynote1:「技術およびモデルベースデザインにおけるイノベーション
□まとめ
複雑化するシステムに対して,計算機パワーとシステム工学を用いて開発をアシストする.そのために,今年度
MATLABに,
・マルチコア・クラスター対応の追加,
・ストリーム処理を実現するSystemObjectの追加.
・テスト・検証機能強化,
・コード生成機能強化,
の機能追加,強化をおこなった.


□詳細

  • SUBARUのMBD導入の流れ
    • 制御シミュレーション:99年以前
    • HILS:99年くらい
    • PRD:02年くらい
    • 仕様:03年くらい
    • ACG:05年くらい
  • embedded Market Comparing embedded development outcome with
    • スケジュール遅延プロジェクト
      • MBD利用時:44%
      • MBD未利用時:50%
    • 平均遅延期間(月)
      • MBD利用時:1.6
      • MBD未利用時:2.8
      • MBD利用時:307
      • MBD未利用時:423
  • データの増大
    • 2009年:0.8ZB
    • 2020年:35ZB
    • 44倍になるとみられている.
    • 航空機は1フライトで20GBのテストデータが作成される.
      • これらを利用した処理を行うために,処理量の増加が求められる.
  • 設計のトレンド
    • データの洪水
    • マルチコアCPUによるDesktopPCの処理能力向上
    • GPUアシスト(クラスタ)による処理能力の向上
      • CUDAのユーザー数は1年で4倍の540万人に.
  • 設計のトレンドに対してMATLABとしては,
    • マルチコアCPU環境を容易に利用するためにParallel Computing Toolboxを容易
    • クラスタ環境を容易に利用するためにDistribute Computing Toolboxを容易
  • GPU利用に関して,下記の項目をMATLAB/Simulink R2010bでサポートしている.
    • GPUの組み込み関数
    • MATLAB変換
    • CUDAコードの実行
  • 従来のMATLAB/Simulinkではバッチ処理がメインでストリーム処理は面倒であったが,R2010aのバージョンからストリームをSystem Objectとしてセットアップし,ループ処理を記述ことで処理が実現できるようになった.
    • 現在は3つのToolBoxで対応している.
  • 組み込みCPUの利用量は100倍くらい増加している.
    • 現在では,60億デバイスがソフトウェアを実行している.
    • バイス数は,6年前の6倍で増加し,今後4年間で2倍の140億になるとみられている.
    • ラプターのコード量は200万行,プレミアムカーのコード量は2000万行程度.
  • 下記によるコード量の増加に対して,モデルベースデザインで対処する.
    • システムの複雑化
    • 組み込みCPUの増加
    • システムのシステムの考慮
  • INCOSEのシステム工学の定義
    • 統合,構造化
  • モデルは下記のものを詳細<->抽象させて考えねばならない.
    • 抽象度(詳細モデル<->抽象モデル)
      • これを実現するのが,MATLABファミリー
    • ドメイン(単一ドメイン<->複数ドメイン)
      • これを実現するのが,Simulink/Stateflow
    • 対応シナリオ数(単一シナリオ<->複数シナリオ)
  • テスト・検証
    • 要求のリンクとトレーサビリティ
    • RealTimeWorkshop Embedded Coder(RTW-EC)がISO26262 TUV. SUDによる認証取得
    • Simulink Design Verifierによるカバレッジ検証
    • PolySpaceによる形式検証(抽象解釈による検証)
      • メトリクス機能がR2010bから利用可能に.
  • 2010年のコード生成に関するトピック
    • AUTOSARを満たす自動コード生成の実現(カンファレンスにおいて)
    • HDLアドバイザーをHDL Coderに機能追加した.
    • 構造化テキストをPLC Coderから出力可能にした.(R2010a以降から)
      • 出力はIEC61131準拠
      • 1つのモデルから自動コード生成とIEC61131の出力をおこない,手動比較することによるテストも出来る.
  • MBDのトレーニングが広まってきた.
    • 海外大学における授業の開始
    • JMMABにおける教育検討
    • ETロボコン
    • 教材のWEB公開開始
  • レーニングにより,
    • MBD人口を増やす
    • MBDを発展させる


■keynote2:「日立グループにおける組込みソフトウェア開発力強化の取組み」

  • 実世界系のものは実験したくとも条件が作れないことがある.
    • 壊れた時やありえない入力・環境の時など
  • そんな中でも信頼性の要求は高まっている.
  • ソフトウェア開発力強化の取り組みは,マイコンがあらゆる場所で利用されるようになったため,同じ問題があちこちで勃発するのを事前に防ぐためにはじめた.
  • 強化の取り組みとしては4つの視点と活動を行なっている.
    • 視点
      • Process:開発プロセスの「見える化」により,はじめて改善が可能になる.
      • Architecture:ソフトウェアのを再利用しやすいように,アーキテクチャを再構造化する.
      • Design:設計・開発技法:アーキテクチャをきっちりしないと,技法は入れにくい.
      • Education:技術者教育:個人ではなく,組織としてどのようにしていくのかPDCAを回していく.
    • 活動
      • 1.プロセス整備
      • 2.プラットフォーム化
      • 3.MBD
      • 4.SPL
      • 上記と並行して,技術者教育.
  • MBDは,従来の開発V字プロセスにおける手戻りを,開発初期:設計フェーズだけで発生させることにより,手戻り工数を削減する.また,自動コード生成や検証の自動化などにより工数をさらに削減する.
  • 今後の展開
    • モータ・インバータをコアに,自動車関係以外の家電や産業機器へ広げていく.


■B2:「MATLAB"アンド"Simulinkによるモデルベースデザイン」
□現在のMBD

  • Medrad:血管造影剤注入ポンプの安全性事例
    • DSPおよびACGにより実現
    • デジタルフィルタにも利用
    • 結果:FDAとれた.また,産業賞もとれた.設計期間数ヶ月短縮.
  • 航空宇宙・防衛,自動車以外でも利用され,効果で出てくるようになっている.
  • FDAなど第3者機関も,開発プロセスの信頼性や開発された製品の品質を認めている.
  • MBD開発プロセスは制御,信号処理のいずれにも適用可能

MATLABへの要望の変化は?

  • 新しいテクノロジーへの対応
  • 実現手段は多様化・複雑化
  • 安全性・品質への厳しい要求

それらに向かって,

  • マルチドメインシステムモデリング
    • 物理的な構造のモデル化
    • システム機能の分析・モデル化
    • システム全体(機構・機能)をモデル化することで,速度などをシミュレーションできるようになる.
    • 異なる技術ドメインを組み合わせた検討が必要
  • MBDは設計時の誤りが下流に流れて大きく手戻るのを防ぐことがポイント
    • 研究・要件定義の檀家と設計プロセスがつながっていない.
    • エンジニアがそれぞれ異なるドメインの設計ツールを使用し,フローがつながっていない.
    • システム統合テストにならないと発覚しない
      • 検証コスト増,手戻り高い,開発遅れ.
    • 実行可能な仕様書をつくることで,ギャップを減らす.
    • ざっくりとした統合モデルからシミュレーションで詳細なモデルに作りこんでいく.
    • 最終的に各ドメインごとの実装を行う.C,VHDLなど
    • テストにも役立てる
  • 実行可能な仕様書のコンポーネントを個々に実装していくことが多い.
  • ポイントは異なる技術ドメインを1つの環境でシミュレーションなどできるようにする.
  • モデルと実機の架け橋も大事.

□マルチドメインシステムモデリング

  • システム設計ツールに必要な機能
    • アーキテクチャの表現
      • 並列,共有リソースの記述
      • データフロー
      • 物理的な接続
    • タイミング情報
    • 処理
  • 上記に対応したものがSimulink
    • すなわち,Simulinkがシステム全体の設計に使える.
  • System Objects
    • 250以上のストリーミング処理アルゴリズム利用可能
    • 固定小数点サポート
    • MATLAB環境のプログラム再利用による効率化
    • 緊密な連携統合
  • アナデジ混在環境
  • stateflow/simeventsによるSimulinkモデルの拡張
    • simevents
      • 離散的なイベント発生表現可能に.
        • パケット到着など
  • テスト&検証
    • 協調シミュレーション
      • Cadence Virtuoso Co-sim
      • EDA Simu Link
    • 実機での協調シミュレーション
      • Data Acquisition toolbox
      • ほか2つ
  • 富士通ラボの40Gbpsの光関係デバイスの開発で利用された
  • Nujiraにおける高効率パワアンプ開発への適用


■D3:「制御モデルの固定小数点設計&Cコード生成」

  • 固定小数点
    • 整数型で実数値を表現したもの
    • 安価なデバイスへの実装のため,高速処理・省電力化のために利用する
    • 量子化誤差,演算誤差,オーバーフローの発生あり.設計に時間がかかる
  • Simulink Fixed Point
    • 固定小数点型を追加
    • 型の一括切り替え
    • 生成コード中でのオートスケーリング
  • デモ
    • サイン波をData Type Conversionで変換するもの.
    • 電圧→角度変換処理の固定小数点化
    • シミュレーションの効果
      • 固定小数点化の影響をすぐ評価
      • 中間結果を簡単に表示できる
  • RTW-EC
    • ANSI-C/ISO/GNUに準拠
    • ユーザ定義情報追加可能
    • 固定小数点化したため,変数が整数化
    • スケーリング合わせの計算が自動生成
    • オーバーフロー対策
    • Target Function Lib.
      • 特定処理をターゲット固有関数としてコード生成
      • 処理速度向上/メモリ節約/コーディングルールー対応容易化
  • 固定小数点化設計プロセス
    • 電制スロットル制御の固定小数点化
      • モータ制御コントローラーでの固定小数点
  • 固定小数点化のプロセスの目的
    • 精度劣化評価(誤差・タイミングずれ最小)
    • RAM/ROM評価(生成コードで確認)
    • 処理性能評価(生成コードで確認)
  • 固定小数点化プロセス
    • 固定小数点設定前準備
      • 固定小数点出来るのかできないのか確認
        • ブロックサポートテーブル
        • 固定小数点アドバイザー
  • 固定小数点設定前準備
    • コンフィグパラメータ→ハードウェア設定
    • コード生成やシミュレーションにも影響を与える
  • 入出力の固定小数点設定
    • あらかじめわかっていることは手動で入力する.
      • スロットル開度やPWMカウンターの型設定.
  • 中間演算の固定小数点設定
    • 入出力は決まっているが,中間は決めていかねばならない.
    • 手動設計容易:代数計算
    • 手動設計困難:積分値が過去の入力に依存するため最大値,最小値が難しい.
    • 最大値,最小値を用いたオートスケーリング:範囲内におさまる最高精度のスケーリングを計算
    • シミュレーション喧嘩を利用したオートスケーリング:倍精度の結果に合うように分解能をチューニング
    • オートスケーリング容易化・型の切り替え,結果の比較容易化ためにFixedのツールがある.
  • シミュレーション検証
    • 浮動小数点と固定小数点を切り替えて両者を比較(FixedPoint)
  • コード生成前準備
    • コード生成時の変数や定数の情報の設定.(データオブジェクト)
  • 生成コード単体検証
    • モデルとコードに同じ入力を行って,同じ出力となるか確認する.
    • SILS, PILSを切り替えて利用可能
    • SILSとしては,Data Inspectorで両者の出力をためて,比較可能.
    • PILSパートナーとかとの組み合わせ


■C4:「様々な開発段階における統合的モデルベース開発の勧め」

  • モデルベース開発物語
  • 2003年くらいにいすゞ株価30円位と危ない状態に.
    • 研究費削減.
    • 研究費削減がモデルベース開発のきっかけ.
  • CAE60作戦:シミュレーションで試作品の60%削減を狙う.
    • シミュレーション屋と実験屋に高い壁があった.
    • 事前検討の重要性を実感できた.
    • シミュレーションはコンピュータ上の実験なので,実験屋のノウハウをいかすのが望ましい.
    • 60%削減すると,実験屋には余裕ができる.
    • シミュレーションの精度が大幅に向上したように見えた
      • 変なところが実験屋の感覚でわかったため.
    • ただし,課題はあった.
  • カムレスシステム;シミュレーションによる検討
    • 実験ができないから油圧モデルをつくらざろうえなかった,
    • 3Dの境界条件などをモデルに組み込むことができたり,構造解析などと連携ができた.
  • 統合的CAE
    • 実験屋はモノが出来ると制御装置がすぐほしくなった.制御開発との連携の重要度が増した.
    • シミュレーションだけで1年以上つくっていた.
      • シミュレーションで動かないものが実機で動くわけがない.
      • シミュレーションで動いたものが実機で1発で動いてしまった.そのため,制御が欲しくなった.
    • プラントモデルがないと制御モデル評価できないが,プラントモデルは作る気がでない.
      • カムレスモデルは高いだけあって,良いプラントモデルとできた.
      • そのため,制御屋さんがモデルをつくりはじめた.
    • ControlDesk,AutoBox, RapidPro
    • ちゃんとしたプラントモデルがあればモデル作れることがわかった.
  • エンジンのモデル,特に燃焼モデルはできていなかった.
    • リアルタイムくらいの速さで,10%誤差くらいの精度となるようにつくった.
  • 1D,3Dなどのモデルやモデルの周期(燃焼系は高速に,冷却系はゆっくりでOK)を組み合わせてつくっていく.→これが「統合的モデルベース開発」
    • 精度を検証する意味でも3Dの解析などする.
  • モデルは諦めが肝心.また使う人に何ができて何ができないことを名確認することが重要.
    • NOXを確認するためだけに精度をたかめ,燃費は諦めるモデルを作成した.
  • プラントモデルを作ることがMBDのはじめ.
    • 制御屋さんがプラントを考えるということは,制御屋が企画を考えることをできる.実際には難しいので,連携が大切.
  • TESS:統合エンジンシミュレーションシステム
    • 実機の2倍くらいの時間がかかる.ちょっと時間かかる感じ.
  • エンジンシステムの選定が複雑になりすぎて,考えても漏れが出るようになった.
    • 機械でサポートしないと漏れる.
  • 機械によってたくさん試験結果が出るので,それを見て使う人達は忙しくなっているのではないか.
  • 制度の良いモデルを作るのが理想.それを考えるとプロが作るのが良いのではないか.
  • AutoBox載せた車が取得している.走っている.
  • 実験・計測とモデルを併用する.
    • モデルによる実験の絞り込み
    • 実験の一部をモデルに置き換える.
    • 精度の悪いモデルを実験に置き換える.
    • モデルベース開発の結果を実機に載せ,実験した後の結果を再びモデルに載せ,後処理などを評価する.
  • 統合的MBDはあらゆるものづくりにおいて重要であり,効率向上とイノベーションを生むものである.
    • モデル化で基本を知り,統合化で全体を知る.
    • モデルで知識共有すれば,文化の違いがモデルでつながる.
  • モデルベース計測により,精度と効率の最適化が可能となる.
  • 課題として,レベルの違いなどがある.


■F5:「静的コード検証によるソフトウェア品質確保」

  • 品質について
    • 狭義の信頼性
  • Polyspaceについて
  • ISO/IEC9126 ソフトウェア品質特性
    • 信頼性
    • 他6つ
  • 狭義の信頼性
    • 動作するか.
      • 欠陥があるが動作しなくはない.
        • ←ではなく,正しく書かれていることを保証する.
      • Ariane5:64bit変数を16bit変数に代入して,爆発.
    • 障害が発生しないか.
  • ランタイムエラー
    • 配列外アクセス
    • 未割り当て領域アクセス
    • NULL参照
    • 算術オーバーフロー
    • ゼロ除算
    • など
  • ランタイムエラーが存在しない品質確保への尺度は?
  • 静的テストは動的テストよりも20倍効果的である.
  • 静的テスト
    • コードレビュー
    • メトリクス
    • コーティングルール
    • バグ検出ツール

 これらでも,信頼性の確保は難しい.

  • 一般的な方法では,血管が表面kしない限り潜在しつつける.
  • 抽象解釈(Abstract Interprelation)
    • 1970年代以降
    • プログラムのふるまいを安全側に近似し検査
  • PolySpace
    • 抽象解釈にもとづくランタイムエラーを証明
    • 入力:C, C++. Adaコード
    • 出力:演算箇所ごとの検査結果
      • OK:緑,NG:赤,到達しない:グレー,証明しきれない:オレンジ
  • ランタイムエラーゼロへの尺度
    • ゴール:ランタイムエラーの存在しないソースコード
    • NGが存在せず,到達しないところや証明しきれないところをレビューしたコード
  • PolySpace
    • リポジトリの状態をグラフ表示機能あり
      • ブラウザから見られるようになっている
  • 品質基準としての取り組み
    • Software Quality objectivesプロジェクト
    • "Software Quality objectives for source code"
      • WEBよりダウンロード可
    • フランス自動車OEMとサプライヤ感のランタイムエラーフリーのコードを中陰とするソフトウェア品質基準作りに向けた取り組み
  • ドキュメントテンプレートの概要
    • メトリクス測定について,コーディングルールの準拠について,ランタイムエラーのレビューについてとレベルごとの品質
  • 現状
    • ドキュメントテンプレート2,0利用可能
      • ダウンロード可能
    • R2010bでサポートしている.