MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の...

27
1 © 2014 The MathWorks, Inc. MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充

Transcript of MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の...

Page 1: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

1© 2014 The MathWorks, Inc.

MATLAB/Simulink検証製品の最新動向と活用術

MathWorks

伊藤泰充

Page 2: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

2

日本はMBDの最前線

日本におけるMBDの特徴

日本人としての特性

– 個々人がプロセス全体の最適化を図ろうとする

– 開発プロセスをきっちりと構築しようとする

– 組織的な活動を得意とする

JMAABによる活動とその成果物の浸透

特に検証分野においてMBDの積極利用が顕著

Page 3: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

3

なぜモデル検証を利用するのか?

MBDの効用• データフローの可視化による理解のしやすさ、再利用性の向上• シミュレーションによるバーチャル世界での実現性の早期確認• 自動コード生成による実装工数の短縮

開発プロセスを改善することによる狙い• 高品質の確保• 開発工数の削減→ 開発の中で最も工数を要する検証工程の改善がカギとなる

検証ツール導入によって期待される恩恵• 検証のフロントローディングによる不具合の早期発見• 自動化による不要な手作業工数の削減• 検査点数の拡大

Page 4: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

4

本講演におけるVプロセス

要求

要求モデル

実装モデル

オブジェクト

要求とモデルの一致性検証

モデルとオブジェクトの一致性検証

モデル検証

Page 5: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

5

Simulink®検証製品の概要と新機能

Page 6: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

6

Simulink検証製品

Simulink® Verification and Validation™

– モデルカバレッジ測定

– 要求トレーサビリティの確保

– モデルアドバイザのカスタマイズと業界標準チェック

要求

要求モデル

実装モデル

オブジェクト

Simulink® Design Verifier™

– テストケースの自動生成

– プロパティ証明

– 設計エラー検出

Page 7: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

7

モデルカバレッジ測定

シミュレーション時に達成されたモデルの網羅度を定量的に測定– 判定カバレッジ

– 条件カバレッジ

– MCDCカバレッジ

– Lookup Tableカバレッジ

– 信号範囲カバレッジ

– ユーザ定義カバレッジ

要求

要求モデル

実装モデル

オブジェクトテスト信号

test1

test2

test3

test4

Simulink Verification and Validation

Page 8: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

8

テストケースの自動生成

モデルカバレッジを満たすテストケースを自動生成

判定カバレッジ

条件カバレッジ

MCDCカバレッジ

ユーザ定義カバレッジ

要求

要求モデル

実装モデル

オブジェクトSimulink Design Verifier

Page 9: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

9

プロパティ証明

制御モデルに対し、その振る舞うべき条件(検証式)を定義することによって、(時系列を含めた)あらゆるモデル入力に対するその条件の成立性を証明する機能

要求

要求モデル

実装モデル

オブジェクトSimulink Design Verifier

Page 10: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

10

設計エラー検出

次の設計エラーの有無を証明し、反例があれば生成する

デッドロジック

整数オーバーフロー

ゼロ除算

指定された最小/最大中間値をチェック

範囲外配列アクセス

要求

要求モデル

実装モデル

オブジェクトSimulink Design Verifier

Page 11: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

11

近年に追加された主な新機能

Simulink Verification and Validation (カバレッジ関連)

モデルカバレッジフィルタ (R2011a)

整数オーバーフローで飽和カバレッジ(R2012a)

カバレッジ測定結果のWebView対応 (R2014a)

Simulink Design Verifier

テスト自動生成エンジンが非線形演算に強化 (R2011a)

R2011b+をWebリリース

設計エラー検出が設計Min/Maxに対応 (R2011b)

設計エラー検出がデッドロジックに対応 (R2012a)

設計エラー検出が範囲外配列アクセスに対応 (R2013a)

解析状況を解析中にハイライト表示(R2013b)

パラメータ設定を簡便化するGUI (R2014a)

Page 12: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

12

Simulink Design Verifier

Simulink Verification and Validationの日本語化

R2014a

Page 13: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

13

Simulink検証製品の有効活用術

Page 14: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

14

モデルカバレッジ測定によりテスト網羅度の定量化

上流工程から、モデルのカバレッジ測定を行い、受け入れ基準を設けることにより、品質を見える化する

例:

要求モデル・結合レベル 判定カバレッジ100%

実装モデル・単体レベル MCDCカバレッジ100%

期待値との一致比較により上流での

高品質の確保につながる

要求

要求モデル

実装モデル

オブジェクトSimulink Verification and Validation

Page 15: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

15

自動テストと手動テストの使い分け #1

要求とモデルの一致性検証において

要求

要求モデル

実装モデル

オブジェクト

手動テストと自動テストのハイブリッド

– 主要な振る舞いはテスト+期待値を

手動にて作成する

– 手動テストで網羅されないパスを自動テスト

で生成する

自動テストを主に利用する場合

– 短時間に高いカバレッジのテストケースを生成可能

– 生成されたテストケースに対してシミュレーション結果が期

待値通りかを確認 (自動生成されたテストは必ずしも想

定されるシナリオに従わない)

Page 16: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

16

自動テストと手動テストの使い分け #2

モデルとコード(オブジェクト)一致性検証について

→ 期待値はシミュレーション結果となる

自動テストをフルに活用可能

上位モデルに利用したテストを再利用

過去モデルで利用したテストを再利用 要求

要求モデル

実装モデル

オブジェクト

Page 17: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

17

手動テストの記述方法ExcelからSignalBuilderへのインポート

Excel上で設計したテストケースをSimulinkに取り込み可能

– 入力対して期待値を与える

Simulink

Page 18: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

18

形式検証ツールの有効活用 #1

Simulink Design Verifierは、Simulinkモデルを変換し、数理論理学を基にする形式手法エンジンによってその解析を行う

特徴

到達性・非到達性に関して証明を行うことができる

条件の組み合わせに対して強力であり網羅性が高い

複数エンジンが内部で利用され最適化されている

弱点

エンジンの厳密さゆえ、どのようなモデルに対しても解が収束する訳では無い

Simulink Design Verifier

Page 19: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

19

形式検証ツールの有効活用 #2

条件判断部と計算部をできるだけ分ける

条件判断を行う部分と、その結果に応じた計算を行う部分をできるだけ分けたアーキテクチャを採用する

Simulink Design Verifier

Page 20: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

20

形式検証ツールの有効活用 #3

単体レベルから適用を始める

いきなり大規模モデルに適用しても、「思ったように結果が得られない」で終わるケース

対処方法:

単体レベルから適用を行う

単体テストの積み上げを大規模モデルのテストに活用する

slvnvextractコマンドによりアトミックサブシステムの切り出

しが可能

Simulink Design Verifier

Page 21: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

21

形式検証ツールの有効活用 #4

ツールの特性を理解し、対処する

非線形演算の例– 浮動小数点同士の乗算 (x*y)

– 浮動小数点除算 (c/z)

– 浮動小数点変数→整数キャスト

対処方法:

– 「テストスイートの最適化」に Nonlinear Extended を用

いる(テスト生成の場合)

– 浮動小数点を数点の代表値に固定する

Simulink Design Verifier

Page 22: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

22

形式検証ツールの有効活用 #5

タイマー・カウンタに対する対処

タイマー・カウンタは、ボトルネックの代表格

対処方法:

タイマーカウント値の縮小化例:ステップサイズ:1ms、1,3,10秒のタイマー → ステップサイズを0.5秒にして解析を行う

タイマー・カウンタは単体検証で保証し、スタブ化する

「既存テストケースを拡張する」を利用し、タイマー・カウンタ部分は手動テストとして与える(テスト生成の場合)

Simulink Design Verifier

Page 23: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

23

「既存テストケースを拡張する」を利用

「既存テストケースを拡張する」を利用することで、手動で作成したテストケースを再利用し、拡張することが可能

sldvlogsignalsコマンドを利用し作成

既存テストケースの最終ステップ状態からも解析が行われるSimulink Design Verifier

Page 24: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

24

MCDCカバレッジを超える網羅度のテスト

Test Objectiveブロック、sldv.test関数(Stateflow, MATLAB Function内)によりカスタムテストを生成可能

ブロック置換機能等によりTest Objectiveの自動埋め込み

Simulink Design Verifier

Page 25: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

25

最新バージョンでの自動テスト生成結果を量産バージョンで利用

量産向けにバージョンは固定したい

担保したい部分はシミュレーション結果と生成コード

テストケース自身は量産バージョンと独立して考えることも可能

対処方法:

テスト自動生成を最新バージョンで行い、テストケースを含むデータファイル(MAT-ファイル)を量産バージョンで取り込み、利用する

slvnvmakeharness コマンドを参照

Simulink Design Verifier

Page 26: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

26

APIの利用による自動化

MBDプロセスは各社様々

アプリケーション、開発環境・サイクル、ビジネスモデルなどによる

手作業を最小化するためにAPIを利用して定型作業を自動化

将来のツールの進化に沿ったカスタマイズが求められる

→ MathWorksコンサルティングサービスの活用

MBD環境構築エンジニアの育成

「MATLABによるSimulink開発環境の自動化」トレーニングを利用することで基礎を習得可能→ 担当営業までお問い合わせ下さい

Page 27: MATLAB/Simulink検証製品の 最新動向と活用術 · MATLAB/Simulink検証製品の 最新動向と活用術 MathWorks 伊藤泰充. 2 日本はMBDの最前線 日本におけるMBDの特徴

27

まとめ検証ツール有効活用のポイント

自動化

– テストケース作成

– テストシミュレーション→判定→レポートの自動実行

– APIを利用した開発環境の構築

再利用

– 上流テストを下流テストで再利用

ツールの利点/弱点を理解し、いいとこ取りをする