Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1© 2018 The MathWorks, Inc.
MBD実践のためのMathWorksツール&サービス活用法~ How to use MBD ~
MathWorks Japan
アプリケーションエンジニアリング部(制御)
シニアアプリケーションエンジニア
大越 亮二
2
はじめに
本Webセミナーの対象者
製品開発にMBDの適用を検討されている方(対象エリア: 主に制御ソフトウェア開発領域)
MBD主要プロセスの実施項目および
MathWorksツールの使いどころを知りたい方(対象フェーズ:モデル作成、モデル検証、コード生成)
本Webセミナーでお伝えしたいこと
MBDの概要および
MATLAB®プロダクトを使った
モデル作成・検証・コード生成の基本フロー
3
アジェンダ
▪ モデルベースデザイン(MBD)の概要
▪ MBD成熟度とMBDリファレンスワークフロー
▪ リファレンスワークフローに沿ったMBD主要タスクのアクション項目
▪ まとめ
4
システム製品(*1)開発を取り巻く環境
1. 複雑化する機能とそれに伴う内部構造➢ 級数的に増加を続けるソフトウェア量➢ 拡大するネットワーク化
2. 短期化する開発期間➢ 24ヶ月⇒18ヶ月⇒12ヶ月…➢ 迫られる開発コスト抑制
3. 生き残りと直結する品質問題➢ 企業損益に直結するリコール負担➢ 死守すべきブランド価値
*1) H/WとS/W双方により機能する製品と定義
5
モデルベースデザイン(MBD)のコンセプト
▪ 開発対象を数式モデルとして表現し、シミュレーションを活用して研究・開発を行う手法
アクチュエータ
センサー
物理システム
制御対象
制御器+-
S1
S2S3
PID+-
if (..)x = …
elsex =
機械 電気 油圧 etc.
目標値
制御入力偏差
制御量
6
実装
従来型開発プロセスにおける課題~後工程からの大きな手戻りの発生~
システム設計
制御設計機能設計
ソフトウェア設計
単体検証
機能検証
システム検証
ハードウェア ソフトウェア
HW設計
結合検証
SW仕様書をもとにしたソフトウェア開発
ソフトウェア詳細設計
机上でのシステムレベル制御アルゴリズム検討
SW仕様書の作成
各工程間で後戻り
紙ベースの仕様書▪ 曖昧な記述
▪ 要求仕様の誤解や不整合を誘発
▪ 仕様ミスのチェックが困難
ハンドコーディング▪ 大規模化による開発長期化
▪ プログラマ依存の品質
実機テストの問題▪ 検証作業の前倒しが困難で手戻
り多発
▪ ハード/ソフトの協調設計・全体最適化の工数大
▪ テストの自動化・繰り返しが困難
▪ 実験・計測・再現が困難なケース(極限テストや異常テスト、センサ設置不可なケース等)
コントローラー
コードベースでのSW検証作業
SW仕様書からのハンドコーディング作業
7
結合検証
実装
MBDにおける開発プロセス~シミュレーション技術による早期段階での品質向上~
システム設計
制御設計機能設計
ソフトウェア設計
単体検証
機能検証
システム検証
ハードウェア ソフトウェア
HW設計
ソフトウェア詳細設計
モデルによるシステムレベルシミュレーション
モデルによるSWコントローラシミュレーション
より詳細なシミュレーション
ソースコード自動生成
実機/仮想環境/モデル等による多様なシミュレーション/検証
ツールによる効率的なSW検証作業
シミュレーション活用▪ 機能要求の妥当性確認
▪ 要求仕様の誤解や不整合の発見
▪ 仕様ミスの早期発見
▪ 量子化誤差の確認
シミュレーションによる早期段階での品質向上
自動コード生成▪ ソフト開発効率化
▪ ソフト品質の安定化
▪ プログラマ工数削減
▪ コードの動作保証・性能評価
▪ 仕様とコードの一致性確保
機能検証▪ 仮想環境による多様なシミュ
レーションおよび検証
▪ 再現困難な状況下での検証
▪ テスト実行の自動化による試験業務の効率化
8
モデルベースデザイン(MBD)のねらい
モデルを使った早期検証でQCTの向上・両立を図る
QCT = Quality,Cost,Time
工程
工数
従来開発(実機試験中心)
設計
実機検証
▪ 不具合修正コストが高い後工程にテストが集中
▪ 設計抜け漏れが起こり易い
工程
工数
MBD
設計+
仮想試作・検証
実機検証
▪ 不具合修正コストが低い開発上流にテストを前倒し
▪ 設計抜け漏れを早期に発見・修正
9
アジェンダ
▪ モデルベースデザイン(MBD)の概要
▪ MBD成熟度とMBDリファレンスワークフロー
▪ リファレンスワークフローに沿ったMBD主要タスクのアクション項目
▪ まとめ
10
実装
MBDにおける開発プロセス定義
システム設計
制御設計機能設計
ソフトウェア設計
単体検証
機能検証
システム検証
ハードウェア ソフトウェア
HW設計
結合検証
モデルによるシステムレベルシミュレーション
ソフトウェア開発プロセス
ソフトウェア詳細設計
MBD主要プロセス
モデル作成
モデル検証
コード生成
11
MBDリファレンスワークフローと成果物(モデル)
モデルによる設計 自動生成コードによる実装
✓ MBDリファレンスワークフローは、TÜV SÜD(認証機関)により事前認証されています。
MBDリファレンスワークフローは、“モデルによる設計+自動生成コードによる実装” からなります。また、モデルの検証結果はコードの検証に再利用できます。
モデル検証 コード検証
要求仕様モデル
プラントモデル
詳細制御モデル
実装モデル成果物(モデル)
12
MathWorksの考えるMBD成熟度
Requirements-BasedV&V
(requirements-based algorithm development and testing, requirements
modeling)
モデリングを要求/設計/検証に使用
Model Verification & Validation(simulation-based analysis ofrequirements)
要求に合っているか否かをPC上で書くモデルベース検証(H/Wを使わない)早期検証
System Verification & Validation(re-use of requirements-based tests and results comparisons between simulation and real-time environments)
モデルベース検証で使ったテストベンチを実機で使う
Fully-leveraged Model-Based Design(requirements-based design, development, and deployment of production hardware/software)
要求設計検証実装に至るまで全てモデルで実施
System Simulation(algorithm models and plant models)
プラント使ったシステムレベルの制御設計
System Modeling(closed-loop simulation of algorithms and plant models)
プラントとコントローラーをPC上でシミュレーション
System Prototyping(real-time closed-loop simulation of algorithms and/or plant models)
コントローラー/プラントをリアルタイム環境でシミュレーション
Model-Based Development(real-time closed-loop system simulation with production algorithms on target hardware)
自動コード生成したECUでHILSを動かす
Algorithm Modeling(algorithm models, no plant models)
制御系設計
Design Modeling(open-loop simulation of algorithms)
コントローラーのシミュレーションのみに使用
Design Prototyping(real-time open-loop simulation of algorithms)
コントローラーをリアルタイム環境(実機)で検証RCP(Rapid Cont. PT)
Model-Based Programming(automatic production code generationfrom algorithm models)
コントローラーモデルから自動生成量産実装
SimulationSILS
Real-Time TestingHILS/PILS
Production量産実装
自動コード生成をどこまで利用しているかCode Generation Adoption
Modeling &
Sim
ula
tion A
doption
モデ
ル・シ
ミュレ
ーシ
ョン
をどこ
まで
使って
いる
か
13
MathWorksの考えるMBD成熟度~MBD主要タスクがカバーする範囲~
Requirements-BasedV&V
(requirements-based algorithm development and testing, requirements
modeling)
モデリングを要求/設計/検証に使用
Model Verification & Validation(simulation-based analysis ofrequirements)
要求に合っているか否かをPC上で書くモデルベース検証(H/Wを使わない)早期検証
System Verification & Validation(re-use of requirements-based tests and results comparisons between simulation and real-time environments)
モデルベース検証で使ったテストベンチを実機で使う
Fully-leveraged Model-Based Design(requirements-based design, development, and deployment of production hardware/software)
要求設計検証実装に至るまで全てモデルで実施
System Simulation(algorithm models and plant models)
プラント使ったシステムレベルの制御設計
System Modeling(closed-loop simulation of algorithms and plant models)
プラントとコントローラーをPC上でシミュレーション
System Prototyping(real-time closed-loop simulation of algorithms and/or plant models)
コントローラー/プラントをリアルタイム環境でシミュレーション
Model-Based Development(real-time closed-loop system simulation with production algorithms on target hardware)
自動コード生成したECUでHILSを動かす
Algorithm Modeling(algorithm models, no plant models)
制御系設計
Design Modeling(open-loop simulation of algorithms)
コントローラーのシミュレーションのみに使用
Design Prototyping(real-time open-loop simulation of algorithms)
コントローラーをリアルタイム環境(実機)で検証RCP(Rapid Cont. PT)
Model-Based Programming(automatic production code generationfrom algorithm models)
コントローラーモデルから自動生成量産実装
SimulationSILS
Real-Time TestingHILS/PILS
Production量産実装
自動コード生成をどこまで利用しているかCode Generation Adoption
Modeling &
Sim
ula
tion A
doption
モデ
ル・シ
ミュレ
ーシ
ョン
をどこ
まで
使って
いる
か
① モデル作成(+検証)② シミュレーション
③ 自動コード生成④ 実機への組込実装
14
MBD主要タスクの実施項目とメリット
大項目 中項目 実施項目 メリット
モデル作成(M
)
仕様整理M1. ソフトウェア要求仕様の整理
シミュレーション活用• 機能要求の妥当性確認
• 要求仕様の誤解や不整合の発見
• 仕様ミスの早期発見
• 量子化誤差の確認
M2. ソフトウェア要求仕様の可視化と詳細化
モデル作成・
シミュレーション
M3. アーキテクチャーモデルの作成
M4. コンポーネントおよび詳細設計モデルの作成とシミュレーション
M5. コード生成モデルの作成とシミュレーション
モデル検証(V
)
モデル検証
V1. 単体レベルモデルの検証(Verification)
機能検証• 要求シナリオ下での機能検証作業
• ツールによる効率的なモデル検証作業
• ツールによるモデルカバレッジ測定および補完
• 仮想環境による多様なシミュレーションおよび検証
• 再現困難な状況下での検証
• テスト実行の自動化による試験業務の効率化V2. 統合レベルモデルの検証(Validation)
コード生成(C
)
コード作成 C1. 自動コード生成(設定含む)自動コード生成• ソフト開発効率化
• ソフト品質の安定化
• プログラマ工数削減
• コードの動作保証・性能評価
• 仕様とコードの一致性確保コード検証 C2. Back to Back(B2B)検証など ※モデルとコードの一致性確認
15
MBD主要タスクの実施項目と適用可能なMATLABプロダクト
大項目 中項目 実施項目 MATLABプロダクト
モデル作成(M
)
仕様整理M1. ソフトウェア要求仕様の整理
--M2. ソフトウェア要求仕様の可視化と詳細化
モデル作成・
シミュレーション
M3. アーキテクチャーモデルの作成 • MATLAB®
• Simulink®
• Stateflow®
• Fixed-Point Designer™• Simulink Test™
M4. コンポーネントおよび詳細設計モデルの作成とシミュレーション
M5. コード生成モデルの作成とシミュレーション
モデル検証(V
)
モデル検証
V1. 単体レベルモデルの検証(Verification)• Simulink Requirements™• Simulink Check™• Simulink Coverage™• Simulink Design Verifier™• Simulink Report Generator™• Simulink Test™
V2. 統合レベルモデルの検証(Validation)
コード生成(C
)
コード作成 C1. 自動コード生成(設定含む) • Embedded Coder™(前提 MATLAB Coder™ / Simulink Coder™)
コード検証 C2. Back to Back(B2B)検証など ※モデルとコードの一致性確認※PILS実施の際には、別途エミュレーターソフトが必要(対象マイコンにより有償、無償のケースあり)
16
A社様プロジェクト実践例:MBD主要タスクを約10カ月で体験
➢ 下記はMBD初めてのお客様によるMBD初期立ち上げプロジェクトの例
➢ MBD主要タスクを実践頂いた上で、その後の展開にむけた課題出しを目的とした– ※プロジェクト対象機能については、事前に検討のうえ選定
4月 5月 6月 7月 8月 9月 10月 11月 12月
M1.
要求仕
様の整
理
中間レビュー
M5:コード生成モ
デルの作成および
シミュレーション
M2.要求
仕様の可
視化と詳
細化
M3: アー
キテク
チャーモデ
ルの作成
V1. 単体レベルモデルの検証C1. 自動コード
生成
C2. モデルと
コードの一致性
検証
M4: コンポーネントおよ
び詳細設計モデルの作
成とシミュレーション
V2 統
合レベ
ルモデル
の検証
中間レビュー
最終レビューおよ
び振り返り
MBD主要タスクを約10か月で体験頂いた例
モデル作成 モデル検証 コード生成
17
▪ モデルベースデザイン(MBD)の概要
▪ MBD成熟度とMBDリファレンスワークフロー
▪ リファレンスワークフローに沿ったMBD主要タスクのアクション項目
▪ まとめ
アジェンダ
18
MBD主要タスクのアクション項目~モデル作成フェーズ(要求整理)~
要求仕様書
ソフトウェア要求仕様の整理と可視化
19
ソフトウェア要求仕様の作成の流れ(例)
ソフトウェアに求められた機能の具体的な実現方法を定義します
• システム要求分析で洗い出した「ソフトウェア要求」の実現手段を決め、ソフトウェアとしての振る舞いを具体的に定義します
• さらに、仕様を可視化すれば、レビューにおける第三者の理解を助けます (可視化は仕様の見直しにも有効です)
ソフトウェア要求仕様の定義
仕様の可視化
システム要求分析
補助資料(タイミングチャート,状態遷移図, ・・・)
第三者レビュー
ソフトウェア要求仕様
システム要求分析
ソフトウェア要求分析
ソフトウェア要求(FTA, FMEA, ・・・などの分析結果)
20
例題:ドアロック制御ソフト開発
ドアロック制御
車両走行時に自動ロック
緊急時に自動ロック解除
21
ソフトウェア要求仕様の可視化(例)~タイミングチャート・制御構成図など~
タイミングチャート
複数の入力信号の関係や振る舞いを時間軸に書き表す。
制御構成図
要求を実現するために必要な機能および各機能間の信号のつながりを明確にする
分割した機能が持つ入力と状態に着目して、入出力期待値を作成する。
22
インターフェースと信号の定義
使用するインターフェースと信号を明確に定義します① 他制御で作成されている信号 : 定義情報を継承する
② 他制御で作成されていない信号 : 作成方法(演算処理)等を踏まえ、新たに定義する
インターフェースと信号の定義例
基本的に①は入力信号、②は、出力信号 および内部信号に該当します
23
MBD主要タスクのアクション項目~モデル作成フェーズ(仕様モデル作成)~
要求仕様書
ソフトウェア要求仕様を実現するモデルの作成
実行可能な仕様モデル
モデリング
24
スケルトンモデルの作成
制御構成図にしたがって、サブシステムとInport・Outportを配置します
• ロジックの作りこみ前に処理を明確に定義できるので、ロジック作成中に構成が意図せず変わってしまうことを防止で
きます
制御構成図
ドア自動ロックシステムのスケルトンモデル
25
制御ロジックの作成(モデル化)
入出力期待値・タイミングチャートなどの設計資料を実現するためのロジックを検討し、スケルトンモデルを制御モデルとして作りこんでいきます
DLockDGN が True になった場合は、いかなる条件が成立しても、True を維持する
タイマカウント中に指令値が変更された場合は、カウントをリセットする
▪ Simulink®:ブロック線図モデリング
▪ Stateflow®:状態遷移図/表/フローチャート
26
MBD主要タスクのアクション項目~モデル作成フェーズ(詳細設計モデル作成)~
要求仕様書
詳細データ型設定モデルの作成
実行可能な仕様モデル
コード生成用の詳細設計モデル
モデリング
27
SWの詳細データ型設定モデルの設計および評価
詳細データ型設定モデルのテストハーネスモデル
設計モデルのテストハーネスモデル
シミュレーション・データ・インスペクター
処理結果の比較
固定小数点設計前後のモデル比較によって量子化誤差の影響を確認します
– シミュレーション・データ・インスペクターで誤差を可視化できます
▪ Fixed-Point Designer ™ :固定小数点設計
28
シミュレーションによる機能動作確認
シミュレーションでタイミングチャートどおりに動作することを確認します
• 意図したタイミングで意図した出力へと切り替わるか?が本動作確認の観点です
• タイミングチャートなどの入力信号パターンをモデルに入力します(この作業にはSignal Builderが利用できます)
シミュレーションでタイミングチャートどおりに動作していることを確認する
タイミングチャートの信号を数値化してSignal Builderに取り込む
29
MBD主要タスクのアクション項目~モデル検証フェーズ~
モデルの単体検証および統合検証
実行可能な仕様モデル
モデリング
モデルレベルの単体検証と統合検証
モデルレベルの設計レビューと静的解析
要求仕様書コード生成用の詳細設計モデル
30
Model Advisor を利用した自動チェック
Model Advisorのエラー検出結果
入力ポート名とその信号ラベルが異なっているモデル
機械的に判断可能なモデリングルールは Model Advisorでチェックできます
• 目視によるチェック漏れを防ぐには、ツールによる自動チェックが有効です
• チェック結果をレポートとして生成することで、モデリングガイドラインに準拠したモデルで
あることを第三者に証明できます
▪ Simulink® :モデルアドバイザー、モデリングガイドライン提供
▪ Simulink Check™ :モデルアドバイザー拡張
– MAAB/ISO26262/IEC61508/DO178C用ルール
– 自作ルール追加
31
レポートを利用したマニュアルチェック
Model Advisorで機械的にチェックできない項目は、Report Generatorでリスト化します
• チェックすべき項目がリスト化されていれば、設計者のチェック漏れは防止できます
• さらにチェック結果は、レポートとして残るので、第三者がチェック漏れ・設計者の判断の
妥当性を確認するためのレビュー資料としても使用できます
レポート生成
Report Generatorチェックリスト
マニュアルチェックの観点(例):• モデルの入力は既存の制御(別プログラム)で作成されているか?• 入力信号は既存の制御で定義されている情報と同じか?• モデルの出力信号は、既存の制御で作成されていないか?
チェック済みのものはマークをつける(チェックリストとして活用する)
▪ Simulink Report Generator™ :レポート生成、Webビュー生成
32
モデルカバレッジの測定と分析
▪ モデルカバレッジ分析
– モデル構造に基づき分析します。
– シミュレーション時に収集されたデータを
動的に分析します。
▪ モデルカバレッジ分析結果
– モデルの中に直接表示します。
– HTML形式のレポート(モデル要素へ
のリンクを含む)を作成します。
Decision カバレッジCondition カバレッジMC/DCLookup table カバレッジSignal range カバレッジ
測定可能なカバレッジの種類
モデルカバレッジの測定と分析は、Simulink Coverageのカバレッジ測定機能を利用できます。
▪ Simulink Coverage ™ :モデルカバレッジ測定
33
未達箇所へのテスト生成
▪ SLDVのテスト生成の「既存のテストケース」 もしくは 「既存のカバレッジデータ」を活用します。
– 既存のテストケース:入力データを含んだ保存したMATファイル
– 既存のカバレッジデータ:カバレッジ測定結果を保存したcvtファイル
既存テストケースを含むMATファイルを指定
カバレッジデータを指定
既存テストケースの追加(拡張)イメージ
テストケース拡張時のSLDVの設定
既存のテストケース
追加するテストケース
追加後のテストケース
+
=
▪ Simulink Design Verifier ™ :テストケース自動生成、モデル静的解析等
34
MBD主要タスクのアクション項目~コード生成フェーズ~ 自動コード生成用設定
およびコード生成
実行可能な仕様モデル
モデリング
モデルレベルの単体検証と統合検証
モデルレベルの設計レビューと静的解析
要求仕様書コード生成用の詳細設計モデル
コード生成
生成したCコード
35
Simulink Data Objectの設定およびコード生成
Simulink Data Objectの設定によって、生成コードにグローバル変数等の定義方法を指定できます
Simulink Data Objectの設定GUI
ワークスペースに定義されたSimulink Data Object
コード生成
▪ Embedded Coder®:
量産/組み込みコード自動生成
36
MBD主要タスクのアクション項目~コード生成フェーズ~ モデルとコードの一致性
確認(B2Bテスト)
実行可能な仕様モデル
モデリング
モデルレベルの単体検証と統合検証
モデルレベルの設計レビューと静的解析
要求仕様書コード生成用の詳細設計モデル
コード生成
生成したCコード
オブジェクトコード
モデルとコードの等価テスト
コンパイルとリンク
意図しない機能の抑止
37
コード検証
生成コードの検証は下記の項目を実施します
– モデルと生成コードの一致性の確認(Back2Back Test)
– 生成コードのコードカバレッジの確認
– 生成コードの静的解析(Polyspace)
SIL/PILブロックの利用によるBack2Backテスト コードカバレッジ計測の設定
▪ Embedded Coder®:量産/組み込みコード自動生成
▪ Polyspace Bug Finder™:
軽量なバグ検出・コード規約・メトリクス解析
38
▪ モデルベースデザイン(MBD)の概要
▪ MBD成熟度とMBDリファレンスワークフロー
▪ リファレンスワークフローに沿ったMBD主要タスクのアクション項目
▪ まとめ
アジェンダ
39
MBD実現のための3ステップとMathWorksが提供するサービス
➢目的:実業務への試用➢実現手段:ツールの使用方法習得➢主担当者:エンドユーザ
Step1:
『使う』
Step2:
『活用する』
Step3:
『展開する』
時間
業務貢献度 ➢目的:プロジェクトでのROIの実証
➢実現手段:業務に特化したツールの独自開発、社内ルール・ワークフローの策定、システム設計・検証プロセスの改善➢主担当者:推進責任者
➢目的:MBDによる業務遂行の実証➢実現手段:ツールの活用方法の確立とMBD開発プロセスの策定➢主担当者:プロセス改善担当
MathWorks技術トレーニングサービス
MBD立ち上げ支援サービス( MBD Jump Start )
MBDプロセス構築支援サービス
MBDプロセスアセスメントサービス
MathWorksコンサルティングサービス
40
まとめ
▪ 本Webセミナーの説明内容の振り返り
✓モデルベースデザイン(MBD)の概要および
制御部のソフトウェアに対するMBDの主要プロセス
(モデル作成/モデル検証/コード生成)の基本ワークフローを紹介。
▪ MATLABプロダクトの強み
✓SimulinkをはじめとしたMATLABプロダクトは、この基本フローを網羅して効率的
に作業が行える環境を提供。
✓QCTの向上を目的とした製品開発へのMBD取り組みを促進。
製品開発におけるMBD適用に際し、MATLABプロダクトを是非ご活用下さい。
41
関連情報
▪ 製品紹介ページ
– Stateflow (ロジックベースの制御)https://jp.mathworks.com/products/stateflow.html
– Embedded Coder (組込みシステム用C/C++コードの生成)https://jp.mathworks.com/products/embedded-coder.html
– Simulink Check (モデリング標準への準拠性を検証)https://jp.mathworks.com/products/simulink-check.html
– Simulink Coverage (モデルおよび生成コードのテストカバレッジを測定)https://jp.mathworks.com/products/simulink-coverage.html
– Simulink Design Verifier (設計エラーの特定、テストケースの生成)https://jp.mathworks.com/products/sldesignverifier.html
– Simulink Test (統合・単体テスト管理とテストの自動化)https://jp.mathworks.com/products/sldesignverifier.html
– その他のプロダクトhttps://jp.mathworks.com/products.html
42
関連情報
▪ オンデマンドWebセミナー
– 今からはじめるSimulink入門https://jp.mathworks.com/videos/introduction-to-simulink-120092.html
– Stateflowで状態遷移設計をより便利にhttps://jp.mathworks.com/videos/introduction-of-stateflow-106650.html
– 制御モデルを活用した量産/組込みソフト開発ソリューションhttps://jp.mathworks.com/videos/embedded-production-software-
development-by-model-based-design-107673.html
– Simulink Testでモデルのテスト実行・管理をより便利にhttps://jp.mathworks.com/videos/model-test-and-test-management-made-
easy-with-simulink-test-101294.html
43
関連情報
▪ 無料製品評価版 (30日間)https://www.mathworks.co.jp/programs/trials/trial_request.html
▪ 技術トレーニングサービス (有償)http://www.mathworks.co.jp/services/training/index.html
44
© 2018 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders.
Accelerating the pace of engineering and science