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 基調講演
- 10:50-10:50 Keynote2 日立グループにおける組込みソフトウェア開発力強化の取組み
- 下記4つの視点と活動による強化の取り組みの紹介.
- 視点:Process, Architecture, Design, Education
- 活動:
- 1.プロセス整備
- 2.プラットフォーム化
- 3.MBD
- 4.SPL
- 上記と並行して,技術者教育.
- 下記4つの視点と活動による強化の取り組みの紹介.
- 13:00-13:50 B2 MATLAB“アンド”Simulinkによるモデルベースデザイン
- 14:10-15:00 D3 制御モデルの固定小数点設計&Cコード生成
- 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のテストデータが作成される.
- これらを利用した処理を行うために,処理量の増加が求められる.
- 設計のトレンドに対してMATLABとしては,
- マルチコアCPU環境を容易に利用するためにParallel Computing Toolboxを容易
- クラスタ環境を容易に利用するためにDistribute Computing Toolboxを容易
- 従来のMATLAB/Simulinkではバッチ処理がメインでストリーム処理は面倒であったが,R2010aのバージョンからストリームをSystem Objectとしてセットアップし,ループ処理を記述ことで処理が実現できるようになった.
- 現在は3つのToolBoxで対応している.
- 組み込みCPUの利用量は100倍くらい増加している.
- 下記によるコード量の増加に対して,モデルベースデザインで対処する.
- システムの複雑化
- 組み込みCPUの増加
- システムのシステムの考慮
- INCOSEのシステム工学の定義
- 統合,構造化
- モデルは下記のものを詳細<->抽象させて考えねばならない.
- テスト・検証
- 2010年のコード生成に関するトピック
- AUTOSARを満たす自動コード生成の実現(カンファレンスにおいて)
- HDLアドバイザーをHDL Coderに機能追加した.
- 構造化テキストをPLC Coderから出力可能にした.(R2010a以降から)
- 出力はIEC61131準拠
- 1つのモデルから自動コード生成とIEC61131の出力をおこない,手動比較することによるテストも出来る.
- MBDのトレーニングが広まってきた.
- 海外大学における授業の開始
- JMMABにおける教育検討
- ETロボコン
- 教材のWEB公開開始
- トレーニングにより,
- MBD人口を増やす
- MBDを発展させる
■keynote2:「日立グループにおける組込みソフトウェア開発力強化の取組み」
- 実世界系のものは実験したくとも条件が作れないことがある.
- 壊れた時やありえない入力・環境の時など
- そんな中でも信頼性の要求は高まっている.
- ソフトウェア開発力強化の取り組みは,マイコンがあらゆる場所で利用されるようになったため,同じ問題があちこちで勃発するのを事前に防ぐためにはじめた.
- 強化の取り組みとしては4つの視点と活動を行なっている.
- 今後の展開
- モータ・インバータをコアに,自動車関係以外の家電や産業機器へ広げていく.
■B2:「MATLAB"アンド"Simulinkによるモデルベースデザイン」
□現在のMBD
- 航空宇宙・防衛,自動車以外でも利用され,効果で出てくるようになっている.
- FDAなど第3者機関も,開発プロセスの信頼性や開発された製品の品質を認めている.
- MBD開発プロセスは制御,信号処理のいずれにも適用可能
□MATLABへの要望の変化は?
それらに向かって,
- マルチドメインシステムモデリング
- 物理的な構造のモデル化
- システム機能の分析・モデル化
- システム全体(機構・機能)をモデル化することで,速度などをシミュレーションできるようになる.
- 異なる技術ドメインを組み合わせた検討が必要
- MBDは設計時の誤りが下流に流れて大きく手戻るのを防ぐことがポイント
- システム設計ツールに必要な機能
- アーキテクチャの表現
- 並列,共有リソースの記述
- データフロー
- 物理的な接続
- タイミング情報
- 処理
- アーキテクチャの表現
- 上記に対応したものがSimulink
- すなわち,Simulinkがシステム全体の設計に使える.
- アナデジ混在環境
- stateflow/simeventsによるSimulinkモデルの拡張
- simevents
- 離散的なイベント発生表現可能に.
- パケット到着など
- 離散的なイベント発生表現可能に.
- simevents
- コード生成
- テスト&検証
- 協調シミュレーション
- Cadence Virtuoso Co-sim
- EDA Simu Link
- 実機での協調シミュレーション
- Data Acquisition toolbox
- ほか2つ
- 協調シミュレーション
■D3:「制御モデルの固定小数点設計&Cコード生成」
- Simulink Fixed Point
- 固定小数点型を追加
- 型の一括切り替え
- 生成コード中でのオートスケーリング
- デモ
- サイン波をData Type Conversionで変換するもの.
- 電圧→角度変換処理の固定小数点化
-
- シミュレーションの効果
- 固定小数点化の影響をすぐ評価
- 中間結果を簡単に表示できる
- シミュレーションの効果
-
- 固定小数点化したため,変数が整数化
- スケーリング合わせの計算が自動生成
- オーバーフロー対策
-
- Target Function Lib.
- 特定処理をターゲット固有関数としてコード生成
- 処理速度向上/メモリ節約/コーディングルールー対応容易化
- 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
- リポジトリの状態をグラフ表示機能あり
- ブラウザから見られるようになっている
- リポジトリの状態をグラフ表示機能あり
- 品質基準としての取り組み
- ドキュメントテンプレートの概要
- メトリクス測定について,コーディングルールの準拠について,ランタイムエラーのレビューについてとレベルごとの品質
- 現状
- ドキュメントテンプレート2,0利用可能
- ダウンロード可能
- R2010bでサポートしている.
- ドキュメントテンプレート2,0利用可能