73
1 © 2013 The MathWorks, Inc. 量産ソフト開発向け 量産ソフト開発向け 量産ソフト開発向け 量産ソフト開発向けの モデルベースデザイン環境構築 モデルベースデザイン環境構築 モデルベースデザイン環境構築 モデルベースデザイン環境構築 MathWorks Japan アプリケーションエンジニアリング部 アプリケーションエンジニアリング部 アプリケーションエンジニアリング部 アプリケーションエンジニアリング部 アプリケーションエンジニア アプリケーションエンジニア アプリケーションエンジニア アプリケーションエンジニア 加藤 加藤 加藤 加藤 久 久浩

量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

1© 2013 The MathWorks, Inc.

量産ソフト開発向け量産ソフト開発向け量産ソフト開発向け量産ソフト開発向けののののモデルベースデザイン環境構築モデルベースデザイン環境構築モデルベースデザイン環境構築モデルベースデザイン環境構築

MathWorks Japan

アプリケーションエンジニアリング部アプリケーションエンジニアリング部アプリケーションエンジニアリング部アプリケーションエンジニアリング部

アプリケーションエンジニアアプリケーションエンジニアアプリケーションエンジニアアプリケーションエンジニア

加藤加藤加藤加藤 久久久久浩浩浩浩

Page 2: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

2

アジェンダアジェンダアジェンダアジェンダ

1. はじめにはじめにはじめにはじめに

2. モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャ

3. (例)ドアロック制(例)ドアロック制(例)ドアロック制(例)ドアロック制御システム開発御システム開発御システム開発御システム開発

4. モデルベースデザイン環境構築モデルベースデザイン環境構築モデルベースデザイン環境構築モデルベースデザイン環境構築

5. まとめまとめまとめまとめ

Page 3: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

3

モデルからコード生成、仕様変更をすぐに反映!モデルからコード生成、仕様変更をすぐに反映!モデルからコード生成、仕様変更をすぐに反映!モデルからコード生成、仕様変更をすぐに反映!

生成コードの検証結果を利用可能!生成コードの検証結果を利用可能!生成コードの検証結果を利用可能!生成コードの検証結果を利用可能!

モデルベースデザイン(モデルベースデザイン(モデルベースデザイン(モデルベースデザイン(MBD)の理想的な姿)の理想的な姿)の理想的な姿)の理想的な姿

システム開発システム開発システム開発システム開発(シミュレーション環境)(シミュレーション環境)(シミュレーション環境)(シミュレーション環境)

ソフト開発ソフト開発ソフト開発ソフト開発(実装(実装(実装(実装環境環境環境環境))))

MATLAB®ファイルファイルファイルファイル/

Simulink®モデルモデルモデルモデル

組み込みターゲット(組み込みターゲット(組み込みターゲット(組み込みターゲット(Cコード)コード)コード)コード)仕様書仕様書仕様書仕様書 検証データ検証データ検証データ検証データ

MATLAB®ファイルファイルファイルファイル/

Simulink®モデルモデルモデルモデル

仕様書&仕様書&仕様書&仕様書&

検証データ検証データ検証データ検証データ

++++モデルモデルモデルモデル

検証結果検証結果検証結果検証結果

++++

生成コード生成コード生成コード生成コード

Page 4: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

4

システム開発システム開発システム開発システム開発(シミュレーション環境)(シミュレーション環境)(シミュレーション環境)(シミュレーション環境)

ソフト開発ソフト開発ソフト開発ソフト開発(実装(実装(実装(実装環境環境環境環境))))

MATLABファイルファイルファイルファイル/

Simulinkモデルモデルモデルモデル

機能機能機能機能モデルと実装モデルモデルと実装モデルモデルと実装モデルモデルと実装モデルががががシームレスにつながらない!シームレスにつながらない!シームレスにつながらない!シームレスにつながらない!

生成コードのサイズや構造が生成コードのサイズや構造が生成コードのサイズや構造が生成コードのサイズや構造がC言語の開発環境に合わない!言語の開発環境に合わない!言語の開発環境に合わない!言語の開発環境に合わない!

組み込みターゲット(組み込みターゲット(組み込みターゲット(組み込みターゲット(Cコード)コード)コード)コード)

MBDに取り組んだユーザー様の声に取り組んだユーザー様の声に取り組んだユーザー様の声に取り組んだユーザー様の声

仕様書仕様書仕様書仕様書 検証データ検証データ検証データ検証データ

MATLABファイルファイルファイルファイル/

Simulinkモデルモデルモデルモデル

仕様書&仕様書&仕様書&仕様書&

検証データ検証データ検証データ検証データ

++++モデルモデルモデルモデル

検証結果検証結果検証結果検証結果

++++

生成コード生成コード生成コード生成コード

Page 5: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

5

本講演では本講演では本講演では本講演では..

実装を想定した実装を想定した実装を想定した実装を想定したモデリングのテクニックモデリングのテクニックモデリングのテクニックモデリングのテクニックとととと開発環境の構築方法開発環境の構築方法開発環境の構築方法開発環境の構築方法についてご紹介しますについてご紹介しますについてご紹介しますについてご紹介します

システムシステムシステムシステム開発開発開発開発((((機能機能機能機能モデルモデルモデルモデル))))

ソフト開発ソフト開発ソフト開発ソフト開発(実装モデル)(実装モデル)(実装モデル)(実装モデル)

共通の認識共通の認識共通の認識共通の認識

Page 6: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

6

なぜモデルにギャップが出てしまうのか?なぜモデルにギャップが出てしまうのか?なぜモデルにギャップが出てしまうのか?なぜモデルにギャップが出てしまうのか?

ドメインに違いがあることを認識するドメインに違いがあることを認識するドメインに違いがあることを認識するドメインに違いがあることを認識する

システム開発 ソフト開発

全体全体全体全体をををを見渡した見渡した見渡した見渡した最適な最適な最適な最適な制御方法制御方法制御方法制御方法

流用性、効率性流用性、効率性流用性、効率性流用性、効率性を考慮したを考慮したを考慮したを考慮した実装方法実装方法実装方法実装方法

Page 7: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

7

アプリケーションアプリケーションアプリケーションアプリケーション

ミドルウェアミドルウェアミドルウェアミドルウェア

デバイスドライバデバイスドライバデバイスドライバデバイスドライバ

スケジューラスケジューラスケジューラスケジューラ

ハードウェアハードウェアハードウェアハードウェアハードウェアハードウェアハードウェアハードウェア

アプリケーションアプリケーションアプリケーションアプリケーション

デバイスドライバデバイスドライバデバイスドライバデバイスドライバ

なぜ生成コードなぜ生成コードなぜ生成コードなぜ生成コードのののの実装に苦労するか?実装に苦労するか?実装に苦労するか?実装に苦労するか?

コード生成に適したソフトウェアの階層構造を選択するコード生成に適したソフトウェアの階層構造を選択するコード生成に適したソフトウェアの階層構造を選択するコード生成に適したソフトウェアの階層構造を選択する

階層間の結合度が低い構造階層間の結合度が高い構造

右側のような整理されたソフトウェアの階層構造が右側のような整理されたソフトウェアの階層構造が右側のような整理されたソフトウェアの階層構造が右側のような整理されたソフトウェアの階層構造がモデルから生成したコード実装に適しています。モデルから生成したコード実装に適しています。モデルから生成したコード実装に適しています。モデルから生成したコード実装に適しています。

Page 8: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

8

実装を想定したモデリングにするには?実装を想定したモデリングにするには?実装を想定したモデリングにするには?実装を想定したモデリングにするには?

信号信号信号信号

信号信号信号信号

パラパラパラパラメータメータメータメータ

四則演算子四則演算子四則演算子四則演算子比較比較比較比較演算子演算子演算子演算子

論理演算子論理演算子論理演算子論理演算子

モデリングモデリングモデリングモデリング以外に以外に以外に以外にコンフィギュレーションとコンフィギュレーションとコンフィギュレーションとコンフィギュレーションと信号・信号・信号・信号・パラメータが影響パラメータが影響パラメータが影響パラメータが影響しますしますしますします

このモデルからどんなコードが生成このモデルからどんなコードが生成このモデルからどんなコードが生成このモデルからどんなコードが生成されるかイメージしてみてくださいされるかイメージしてみてくださいされるかイメージしてみてくださいされるかイメージしてみてください

Page 9: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

9

コンフィギュレーションの違いコンフィギュレーションの違いコンフィギュレーションの違いコンフィギュレーションの違い信号信号信号信号とパラメーターとパラメーターとパラメーターとパラメーター – コード生成コード生成コード生成コード生成

チェックなしチェックあり

Page 10: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

10

データ設定データ設定データ設定データ設定のののの違い違い違い違い信号とパラメーター信号とパラメーター信号とパラメーター信号とパラメーター – ベースワークスペースベースワークスペースベースワークスペースベースワークスペース

カスタム オート

Page 11: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

11

メッセージメッセージメッセージメッセージ

システム開発システム開発システム開発システム開発ととととソフト開発ソフト開発ソフト開発ソフト開発の間での間での間での間で

共通のモデリングルール共通のモデリングルール共通のモデリングルール共通のモデリングルールをもとにをもとにをもとにをもとに

モデルモデルモデルモデルをうまく育ててをうまく育ててをうまく育ててをうまく育てていきましょういきましょういきましょういきましょう

システム開発システム開発システム開発システム開発 ソフト開発ソフト開発ソフト開発ソフト開発

C/C++

実装環境にも実装環境にも実装環境にも実装環境にも配慮した設計配慮した設計配慮した設計配慮した設計

実装環境における実装環境における実装環境における実装環境における制約条件のフィードバック制約条件のフィードバック制約条件のフィードバック制約条件のフィードバック

共通ルール共通ルール共通ルール共通ルール

Page 12: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

12

アジェンダアジェンダアジェンダアジェンダ

1. はじめにはじめにはじめにはじめに

2. モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャ

3. (例)ドアロック制(例)ドアロック制(例)ドアロック制(例)ドアロック制御システム開発御システム開発御システム開発御システム開発

4. モデルベースデザイン環境構築モデルベースデザイン環境構築モデルベースデザイン環境構築モデルベースデザイン環境構築

5. まとめまとめまとめまとめ

Page 13: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

13

新しい機能新しい機能新しい機能新しい機能????

新しいツール新しいツール新しいツール新しいツール????

モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャととととは?は?は?は?

モデルアーキテクチャ

階層化

階層化

階層化

階層化

コンポーネント

コンポーネント

コンポーネント

コンポーネント化化 化化

インターフェース

インターフェース

インターフェース

インターフェース

実行

実行

実行

実行のの のの制御

制御

制御

制御

コンフィギュレーション

コンフィギュレーション

コンフィギュレーション

コンフィギュレーション

ポイントポイントポイントポイントどこまで想定してモデルをつくるかどこまで想定してモデルをつくるかどこまで想定してモデルをつくるかどこまで想定してモデルをつくるか

大規模システムをモデリングする大規模システムをモデリングする大規模システムをモデリングする大規模システムをモデリングする際の重要な開発タスク際の重要な開発タスク際の重要な開発タスク際の重要な開発タスク

Page 14: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

14

モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャ

階層化

階層化

階層化

階層化

コンポーネント

コンポーネント

コンポーネント

コンポーネント化化 化化

インターフェース

インターフェース

インターフェース

インターフェース

実行

実行

実行

実行のの のの制御

制御

制御

制御

コンフィギュレーション

コンフィギュレーション

コンフィギュレーション

コンフィギュレーション

Step1:階層化:階層化:階層化:階層化

Page 15: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

15

MAAB(JMAAB) Modeling Style Guide : jc_0301

周期・イベントで周期・イベントで周期・イベントで周期・イベントで分割してから分割してから分割してから分割してから機能を配置する機能を配置する機能を配置する機能を配置する

ソフト開発向きソフト開発向きソフト開発向きソフト開発向き

機能機能機能機能で分割してで分割してで分割してで分割してから周期・イベントから周期・イベントから周期・イベントから周期・イベントを配置するを配置するを配置するを配置する

システムシステムシステムシステム開発向き開発向き開発向き開発向き

Simulinkモデルのモデルのモデルのモデルの階層化階層化階層化階層化JMAAB((((※※※※)のスタイルガイドを活用しよう)のスタイルガイドを活用しよう)のスタイルガイドを活用しよう)のスタイルガイドを活用しよう

※Japan MBD Automotive Advisory Board :

日本の自動車業界におけるMATLABユーザが、MBDの推進のために設立したユーザ会

Page 16: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

16

ソフトウェアソフトウェアソフトウェアソフトウェアのののの階層化階層化階層化階層化

コード生成の対象を明確にしようコード生成の対象を明確にしようコード生成の対象を明確にしようコード生成の対象を明確にしよう

ターゲット依存型ターゲット依存型ターゲット依存型ターゲット依存型

モデル化・コード生成対象としてモデル化・コード生成対象としてモデル化・コード生成対象としてモデル化・コード生成対象としてI / Oや周辺や周辺や周辺や周辺ソフト呼び出しもソフト呼び出しもソフト呼び出しもソフト呼び出しも含む含む含む含む

ターゲット非依存型ターゲット非依存型ターゲット非依存型ターゲット非依存型

モデル化・コード生成対象はモデル化・コード生成対象はモデル化・コード生成対象はモデル化・コード生成対象はアプリケーションアプリケーションアプリケーションアプリケーションのみのみのみのみ

Embedded Coder™Simulink®モデルから組み込みに適したコードを生成するオプション製品

アプリケーションアプリケーションアプリケーションアプリケーション

ミドルウェアミドルウェアミドルウェアミドルウェア

デバイスドライバデバイスドライバデバイスドライバデバイスドライバ

スケジューラスケジューラスケジューラスケジューラ

ハードウェアハードウェアハードウェアハードウェア

2つの方法があります

Page 17: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

17

ターゲット依存ターゲット依存ターゲット依存ターゲット依存 / 非依存型の比較非依存型の比較非依存型の比較非依存型の比較

Embedded Coder™

ターゲット非依存型ターゲット非依存型ターゲット非依存型ターゲット非依存型 ターゲット依存型ターゲット依存型ターゲット依存型ターゲット依存型

I / O グローバル変数 / 引数 専用ブロックを提供

他ソースとの結合 手動 自動

ビルド 手動 自動

特徴量産用コード開発向き(ターゲット非依存アプリ)

MCUを用いた制御実験向き(On Target RCP)

注意点 手動の手間がかかる 対応ターゲットが限定される

基本はこちら基本はこちら基本はこちら基本はこちら

対応ターゲットリスト:

http://www.mathworks.co.jp/hardware-support/index.html

カスタマイズや工夫でカスタマイズや工夫でカスタマイズや工夫でカスタマイズや工夫でギャップの解消が可能ギャップの解消が可能ギャップの解消が可能ギャップの解消が可能

Page 18: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

18

ターゲットに合わせたコード生成製品を提供ターゲットに合わせたコード生成製品を提供ターゲットに合わせたコード生成製品を提供ターゲットに合わせたコード生成製品を提供

Simulink Coder™

RCP/HILS

C

Embedded Coder™

MCU/DSP

C/C++

HDL Coder™

FPGA/ASIC

HDL

Simulink

PLC Coder™

PLC

ST

MATLAB Coder™

MATLAB

MEX

C

Simulink/StateflowモデルMATLABファイル

Page 19: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

19

組み込み組み込み組み込み組み込み・量産・量産・量産・量産C/C++コードを生成コードを生成コードを生成コードを生成

Embedded Coder™

生成コード検証生成コード検証生成コード検証生成コード検証

各種ターゲット各種ターゲット各種ターゲット各種ターゲット/

評価ボードへのビルド評価ボードへのビルド評価ボードへのビルド評価ボードへのビルドOn Target RCP

Software In the Loop Simulation

.c

.c++

効率的なコードを生成効率的なコードを生成効率的なコードを生成効率的なコードを生成

Processor In the Loop Simulation

MATLABファイル� ANSI-C/ISO-C/GNU-C準拠準拠準拠準拠

�整数・浮動小数点・整数・浮動小数点・整数・浮動小数点・整数・浮動小数点・

固定小数点演算対応固定小数点演算対応固定小数点演算対応固定小数点演算対応((((Fixed-Point Designer™が必要)が必要)が必要)が必要)

�定数定数定数定数/変数(変数(変数(変数(ROM/RAM)設定)設定)設定)設定

Simulink/Stateflowモデル

Page 20: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

20

SimulinkととととStateflowのコンテンツプレビューのコンテンツプレビューのコンテンツプレビューのコンテンツプレビュー

� サブシステム・リファレンスモデル・Stateflowチャートおよびサブチャート

の内部を視覚的に判別

� 各システムに対して個別に有効化が可能

� デフォルトではコンテンツプレビューは無効

階層システム内部を表示階層システム内部を表示階層システム内部を表示階層システム内部を表示

見やすく見やすく見やすく見やすくなったなったなったなったSimulinkモデルモデルモデルモデル

Page 21: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

21

Step2:コンポーネント化2:コンポーネント化2:コンポーネント化2:コンポーネント化

モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャ

階層化

階層化

階層化

階層化

コンポーネント

コンポーネント

コンポーネント

コンポーネント化化 化化

インターフェース

インターフェース

インターフェース

インターフェース

実行

実行

実行

実行のの のの制御

制御

制御

制御

コンフィギュレーション

コンフィギュレーション

コンフィギュレーション

コンフィギュレーション

Page 22: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

22

コンポーネント化する時の考慮点コンポーネント化する時の考慮点コンポーネント化する時の考慮点コンポーネント化する時の考慮点

6つのつのつのつの観点から検討しよう観点から検討しよう観点から検討しよう観点から検討しよう

効率性効率性効率性効率性シミュレーション速度、資源の使用率

移植性移植性移植性移植性流用の度合い、別環境との組み合わせ

使用性使用性使用性使用性理解しやすさ、習得しやすさ

保守性保守性保守性保守性複数人による作業、変更に必要な労力

信頼性信頼性信頼性信頼性テストのしやすさ、網羅的なテストデータ

0 2 4 6 80

0.2

0.4

0.6

0.8

1Step Response

Time (seconds)

Amplitude

2 2.5 30

0.2

0.4

0.6

0.8

1

機能性機能性機能性機能性機能の実装度合い、トレーサビリティー

C

Page 23: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

23

Simulinkにおけるコンポーネント化の例におけるコンポーネント化の例におけるコンポーネント化の例におけるコンポーネント化の例

各ブロックの特性各ブロックの特性各ブロックの特性各ブロックの特性を理解しを理解しを理解しを理解し使い分けしよう使い分けしよう使い分けしよう使い分けしよう

� Virtualサブシステムブロック– 視覚的な階層単位視覚的な階層単位視覚的な階層単位視覚的な階層単位

– シミュレーション実行時には、階層を維持しない

� Atomicサブシステムブロック– 内部に含まれるブロック群を、

一つ一つ一つ一つの単位との単位との単位との単位として実行して実行して実行して実行

� Modelブロック– 別別別別モデルファイルを参照モデルファイルを参照モデルファイルを参照モデルファイルを参照

– 実行時にはDLL化(アクセラレータモード時)

– モデルのビルド時、変更がある参照ファイル

のみビルド可能

Page 24: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

24

モデルの一括切り替えモデルの一括切り替えモデルの一括切り替えモデルの一括切り替え

� システムの一部を設計対象ごとに切り替えたい– Variant機能でモデルまたはサブシステムの切り替え可能

– 大きなモデルの場合には切り替えミスを防止

Page 25: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

25

コンポーネント化コンポーネント化コンポーネント化コンポーネント化のまとめのまとめのまとめのまとめ

Virtual

サブシステムサブシステムサブシステムサブシステムブロックブロックブロックブロック

視覚的な階層視覚的な階層視覚的な階層視覚的な階層

Atomic

サブシステムサブシステムサブシステムサブシステムブロックブロックブロックブロック

トレーサビリティ、生成されるコードのトレーサビリティ、生成されるコードのトレーサビリティ、生成されるコードのトレーサビリティ、生成されるコードのモジュール化、予測可能な実行モジュール化、予測可能な実行モジュール化、予測可能な実行モジュール化、予測可能な実行

Model

ブロックブロックブロックブロック並行開発、単体テスト、並行開発、単体テスト、並行開発、単体テスト、並行開発、単体テスト、

複数レベルの階層、拡張性、流用性複数レベルの階層、拡張性、流用性複数レベルの階層、拡張性、流用性複数レベルの階層、拡張性、流用性

Page 26: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

26

Step3333:インターフェース:インターフェース:インターフェース:インターフェース

モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャ

階層化

階層化

階層化

階層化

コンポーネント

コンポーネント

コンポーネント

コンポーネント化化 化化

インターフェース

インターフェース

インターフェース

インターフェース

実行

実行

実行

実行のの のの制御

制御

制御

制御

コンフィギュレーション

コンフィギュレーション

コンフィギュレーション

コンフィギュレーション

Page 27: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

27

Simulinkにおけるインターフェース例におけるインターフェース例におけるインターフェース例におけるインターフェース例

Cコードで例えると変数や定数のようなものコードで例えると変数や定数のようなものコードで例えると変数や定数のようなものコードで例えると変数や定数のようなもの

Numerical Data

Events

Global Data

Parameters

Page 28: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

28

データディクショナリによるインターフェース定義データディクショナリによるインターフェース定義データディクショナリによるインターフェース定義データディクショナリによるインターフェース定義

モデルファイルとデータファイルを分割モデルファイルとデータファイルを分割モデルファイルとデータファイルを分割モデルファイルとデータファイルを分割しようしようしようしよう

•Simulink.Signal – Simulink信号を定義•Simulink.Parameter – Simulinkパラメーターを定義

モデル(アルゴリズム、システムダイナミクスなど)

.mdl,.slx

名前

説明値

ストレージ クラスデータ型

.m,.mat

Page 29: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

29

信号の定義方法信号の定義方法信号の定義方法信号の定義方法

グローバルデータの記述方法を検討グローバルデータの記述方法を検討グローバルデータの記述方法を検討グローバルデータの記述方法を検討しようしようしようしよう

データストアメモリデータストアメモリデータストアメモリデータストアメモリ 信号線信号線信号線信号線

モデル例

読書き順序 優先度指定 Simulinkが決める順序

利点結線 / スルー処理の省力化同一変数の読み書きが得意

データフローの明確化

注意点多用するとデータフローが不明瞭

結線 / スルー処理が大変(特に大規模モデル)

データフロー層はブロック線図(信号線)

ストラクチャ層は信号線 or データストアメモリ

Page 30: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

30

コードコードコードコード生成用生成用生成用生成用モデルの作成モデルの作成モデルの作成モデルの作成 / リファクタリングリファクタリングリファクタリングリファクタリング

コード生成をサポートしているブロックに限定しようコード生成をサポートしているブロックに限定しようコード生成をサポートしているブロックに限定しようコード生成をサポートしているブロックに限定しよう

基本的なチェックポイント基本的なチェックポイント基本的なチェックポイント基本的なチェックポイント

� シミュレーション時にエラーが無いか?

� 離散時間で動作するか?

� コード生成に対応したブロックか?

� 適切なデータ型を設定しているか?

� 代数ループが無いか?

� 効率的なコードが生成されるか?

� etc.

ブロックサポートテーブルで確認可能(Xが対応していることを示します)

*MATLABコマンドウィンドウでshowblockdatatypetableとタイプする

Page 31: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

31

Step4:実行の制御4:実行の制御4:実行の制御4:実行の制御

モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャ

階層化

階層化

階層化

階層化

コンポーネント

コンポーネント

コンポーネント

コンポーネント化化 化化

インターフェース

インターフェース

インターフェース

インターフェース

実行

実行

実行

実行のの のの制御

制御

制御

制御

コンフィギュレーション

コンフィギュレーション

コンフィギュレーション

コンフィギュレーション

Page 32: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

32

サブシステムの呼び出しタイミングサブシステムの呼び出しタイミングサブシステムの呼び出しタイミングサブシステムの呼び出しタイミング

Cコードで例えると関数呼び出しのようなものコードで例えると関数呼び出しのようなものコードで例えると関数呼び出しのようなものコードで例えると関数呼び出しのようなもの

void task_init(void) {... // 初期化初期化初期化初期化 (t=0のみのみのみのみ)}

void task_diag(void) {... // 診断診断診断診断制御制御制御制御(2ms)}

void task_logic(void) {... // ロック制御ロック制御ロック制御ロック制御 (4ms)}

tasks.c

Page 33: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

33

実行実行実行実行順序順序順序順序の定義方法の定義方法の定義方法の定義方法

呼び出し方法の呼び出し方法の呼び出し方法の呼び出し方法の特性を特性を特性を特性を理解し使い分けしよう理解し使い分けしよう理解し使い分けしよう理解し使い分けしよう

ファンクションコールファンクションコールファンクションコールファンクションコール トリガートリガートリガートリガー

モデル例

読書き順序 スケジューラが決める順序 Simulinkが決める順序

利点スケジューラの実行順序通りに呼び出し

モデルに処理の順番が定義される

注意点 スケジューラの実行順序が支配的 Simulinkの実行順序が支配的

トリガ層はファンクションコール or トリガー

ストラクチャ層は信号線 or データストアメモリ

Page 34: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

34

関数モデルのエクスポート関数モデルのエクスポート関数モデルのエクスポート関数モデルのエクスポート

� モデルはシミュレーションもしくは

コード生成用のためのリファレンスモデルとして使用可能

� 生成コードには各関数呼び出し

入力ポート用メソッドとモデルの初期化メソッドが含まれる

� 生成コードの手動編集の必要無く

ラピットプロトタイピングとコード生成が可能

void trigger_1ms(void) {

}

いままで参照モデル(子モデル)いままで参照モデル(子モデル)いままで参照モデル(子モデル)いままで参照モデル(子モデル)の中にあったスケジューラーをの中にあったスケジューラーをの中にあったスケジューラーをの中にあったスケジューラーを

外に出せるようになった外に出せるようになった外に出せるようになった外に出せるようになった外部アプリケーション外部アプリケーション外部アプリケーション外部アプリケーションへエクスポートするへエクスポートするへエクスポートするへエクスポートするためためためためFunction Call Subsystemからからからからコード生成コード生成コード生成コード生成

Page 35: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

35

Step5555:コンフィギュレーション:コンフィギュレーション:コンフィギュレーション:コンフィギュレーション

モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャ

階層化

階層化

階層化

階層化

コンポーネント

コンポーネント

コンポーネント

コンポーネント化化 化化

インターフェース

インターフェース

インターフェース

インターフェース

実行

実行

実行

実行のの のの制御

制御

制御

制御

コンフィギュレーション

コンフィギュレーション

コンフィギュレーション

コンフィギュレーション

Page 36: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

36

コードコードコードコード生成用のコンフィギュレーション生成用のコンフィギュレーション生成用のコンフィギュレーション生成用のコンフィギュレーション

コードコードコードコード生成生成生成生成アドバイザーで設定をチェックしようアドバイザーで設定をチェックしようアドバイザーで設定をチェックしようアドバイザーで設定をチェックしよう

①通常ert.tlcに設定

④設定が組み込みコード生成に向いているか一括チェック

③目的の設定

②コード生成アドバイザー起動

Page 37: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

37

Simulink コンフィギュレーションセットコンフィギュレーションセットコンフィギュレーションセットコンフィギュレーションセット

目的目的目的目的にあったにあったにあったにあったコンフィギュレーションを選択しデータで管理しようコンフィギュレーションを選択しデータで管理しようコンフィギュレーションを選択しデータで管理しようコンフィギュレーションを選択しデータで管理しよう

Simulink.ConfigSet

シミュレーション用シミュレーション用シミュレーション用シミュレーション用の設定の設定の設定の設定(連続系)(連続系)(連続系)(連続系)

コードコードコードコード生成用生成用生成用生成用の設定の設定の設定の設定(離散系)(離散系)(離散系)(離散系)

Page 38: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

38

データディクショナリデータディクショナリデータディクショナリデータディクショナリにコンフィギュレーションを定義にコンフィギュレーションを定義にコンフィギュレーションを定義にコンフィギュレーションを定義

参照コンフィギュレーションで参照モデルへ伝播しよう参照コンフィギュレーションで参照モデルへ伝播しよう参照コンフィギュレーションで参照モデルへ伝播しよう参照コンフィギュレーションで参照モデルへ伝播しよう

①参照コンフィギュレーションに設定

④一括で伝播

③伝播をクリック

②参照モデルへ伝播

Page 39: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

39

モデルアーキテクチャのまとめモデルアーキテクチャのまとめモデルアーキテクチャのまとめモデルアーキテクチャのまとめ

モデリングモデリングモデリングモデリングするするするする際の重要際の重要際の重要際の重要な開発な開発な開発な開発タスクです!タスクです!タスクです!タスクです!

� Step1111:階層化階層化階層化階層化

� 構造の指針を明確にする構造の指針を明確にする構造の指針を明確にする構造の指針を明確にする

� Step2:コンポーネント化2:コンポーネント化2:コンポーネント化2:コンポーネント化

� 流用、派生に強い部品にする流用、派生に強い部品にする流用、派生に強い部品にする流用、派生に強い部品にする

� Step3:インターフェース3:インターフェース3:インターフェース3:インターフェース

� モデルとデータの影響度を低くするモデルとデータの影響度を低くするモデルとデータの影響度を低くするモデルとデータの影響度を低くする

� Step4:実行の制御4:実行の制御4:実行の制御4:実行の制御

� 処理の処理の処理の処理のタイミングタイミングタイミングタイミングを明確するを明確するを明確するを明確する

� Step5555:コンフィギュレーション:コンフィギュレーション:コンフィギュレーション:コンフィギュレーション

� コード生成コード生成コード生成コード生成用用用用の設定を統一するの設定を統一するの設定を統一するの設定を統一する

Page 40: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

40

アジェンダアジェンダアジェンダアジェンダ

1. はじめにはじめにはじめにはじめに

2. モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャ

3. (例)ドアロック制(例)ドアロック制(例)ドアロック制(例)ドアロック制御システム開発御システム開発御システム開発御システム開発

4. モデルベースデザイン環境構築モデルベースデザイン環境構築モデルベースデザイン環境構築モデルベースデザイン環境構築

5. まとめまとめまとめまとめ

Page 41: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

41

(例)ドアロック制御システム開発(例)ドアロック制御システム開発(例)ドアロック制御システム開発(例)ドアロック制御システム開発

250 CAN

messages

with 2500

individual

signals

ドアロック制御要求ドアロック制御要求ドアロック制御要求ドアロック制御要求

�車両走行時に自動ロックする車両走行時に自動ロックする車両走行時に自動ロックする車両走行時に自動ロックする

�緊急時に自動ロック解除する緊急時に自動ロック解除する緊急時に自動ロック解除する緊急時に自動ロック解除する

Page 42: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

42

ドアロック制御システムの構成ドアロック制御システムの構成ドアロック制御システムの構成ドアロック制御システムの構成

ドアロック位置情報ドアロック位置情報ドアロック位置情報ドアロック位置情報

s1 s2

s3

車速情報車速情報車速情報車速情報

エンジン情報エンジン情報エンジン情報エンジン情報

エアバック情報エアバック情報エアバック情報エアバック情報

ドアロックドアロックドアロックドアロック

ドアロックドアロックドアロックドアロック機能機能機能機能車両情報とドアロック位置情報により車両情報とドアロック位置情報により車両情報とドアロック位置情報により車両情報とドアロック位置情報により走行中と判断した場合走行中と判断した場合走行中と判断した場合走行中と判断した場合はははは自動ロック自動ロック自動ロック自動ロックする。する。する。する。停車中と判断した場合停車中と判断した場合停車中と判断した場合停車中と判断した場合はははは自動アンロック自動アンロック自動アンロック自動アンロックする。する。する。する。

診断診断診断診断機能機能機能機能車両情報とドアロック位置情報により、車両情報とドアロック位置情報により、車両情報とドアロック位置情報により、車両情報とドアロック位置情報により、緊急時と判断した場合緊急時と判断した場合緊急時と判断した場合緊急時と判断した場合はははは自動アンロック自動アンロック自動アンロック自動アンロックする。する。する。する。

制御制御制御制御

指令値指令値指令値指令値

Page 43: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

43

システムシステムシステムシステムアーキテクチャアーキテクチャアーキテクチャアーキテクチャ

ソフトアーキテクチャソフトアーキテクチャソフトアーキテクチャソフトアーキテクチャ

Special

Device

Drivers

Input

Drivers

Output

Drivers

Comm

Drivers

Application

Door Lock

Component

Diagnosis

Component

Scheduler/Operating System

アーキテクチャへのマッピングアーキテクチャへのマッピングアーキテクチャへのマッピングアーキテクチャへのマッピング段階的に詳細化する段階的に詳細化する段階的に詳細化する段階的に詳細化する

コード生成対象モデルコード生成対象モデルコード生成対象モデルコード生成対象モデル

Page 44: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

44

ドアロック制御ドアロック制御ドアロック制御ドアロック制御ソフトソフトソフトソフト仕様仕様仕様仕様書書書書

Page 45: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

45

モデルアーキテクチャを導入したコントローラモデルモデルアーキテクチャを導入したコントローラモデルモデルアーキテクチャを導入したコントローラモデルモデルアーキテクチャを導入したコントローラモデル

インターフェースインターフェースインターフェースインターフェース インターフェースインターフェースインターフェースインターフェース実行実行実行実行のののの制御制御制御制御 コンポーネント化コンポーネント化コンポーネント化コンポーネント化

コード実装を想定したモデリングをシステム開発段階からコード実装を想定したモデリングをシステム開発段階からコード実装を想定したモデリングをシステム開発段階からコード実装を想定したモデリングをシステム開発段階から検討検討検討検討

Page 46: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

46

制制制制御モデル階層:御モデル階層:御モデル階層:御モデル階層:Type A(トップ層、トリガ層)(トップ層、トリガ層)(トップ層、トリガ層)(トップ層、トリガ層)

トップ

トップ

トップ

トップ層層 層層

トリガ

トリガ

トリガ

トリガ層層 層層

スケジューラ タスクサブシステム

入出力はデータストアメモリ

(グローバル変数)

初期化

(t=0のみ)ロック制御

(2ms)診断制御

(4ms)

Page 47: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

47

ストラクチャ

ストラクチャ

ストラクチャ

ストラクチャ層層 層層

制制制制御モデル階層:御モデル階層:御モデル階層:御モデル階層:Type A(ストラクチャ層、データフロー層)(ストラクチャ層、データフロー層)(ストラクチャ層、データフロー層)(ストラクチャ層、データフロー層)

入出力はデータストアメモリ

(グローバル変数)

モデル参照

データフロー

データフロー

データフロー

データフロー層層 層層

モデル

モデル

モデル

モデル参照

参照

参照

参照

ストラクチャ

ストラクチャ

ストラクチャ

ストラクチャ層層 層層

診断モード制御

データ判定

処理ロジック

Page 48: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

48

ドアロック制ドアロック制ドアロック制ドアロック制御システム例題のまとめ御システム例題のまとめ御システム例題のまとめ御システム例題のまとめ

コード実装を想定したモデリングルールを整備しようコード実装を想定したモデリングルールを整備しようコード実装を想定したモデリングルールを整備しようコード実装を想定したモデリングルールを整備しよう

�共通ルールによるモデリングの品質向上

�仕様摺合せの前倒しによる手戻り削減

�実装制約のフィードバックによる開発の効率化

システム開発段階からコード実装システム開発段階からコード実装システム開発段階からコード実装システム開発段階からコード実装を想定を想定を想定を想定ししししモデリングすることのメリットモデリングすることのメリットモデリングすることのメリットモデリングすることのメリット

Page 49: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

49

その他の階層化例その他の階層化例その他の階層化例その他の階層化例

AUTOSARのソフトウェアレイヤーと高い親和性のソフトウェアレイヤーと高い親和性のソフトウェアレイヤーと高い親和性のソフトウェアレイヤーと高い親和性

Com-

plex

Drivers

Microcontroller

Microcontroller Abstraction Layer

Services Layer

Application Layer

Runtime Environment((((RTE)

ECU Abstraction Layer

Ap

pli

cati

on

SW

Co

mp

on

en

tsB

asic

So

ftw

are

EC

U

Reso

urc

es

Simulinkモデルモデルモデルモデル⇒⇒⇒⇒コード生成コード生成コード生成コード生成

Page 50: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

50

MathWorks のののの サポートサポートサポートサポート

AUTOSAR Target Production Package(ATPP)

� AUTOSAR プレミアムメンバー

� ワーキンググループへ積極的に参加

� AUTOSARコード生成は、

Embedded Coder (EC)で対応

� 追加ライセンスコスト不要

� 他の AUTOSARツールベンダー とツールの

相互利用性をメンテナンスする関係を構築

� サポートAUTOSAR バージョン:

MATLAB

Release

AUTOSAR Release

R2013b 2.1, 3.0, 3.1, 3.2, 4.0

R2013a 2.1, 3.0, 3.1, 3.2, 4.0

R2012b 2.1, 3.0, 3.1, 3.2, 4.0

R2012a 2.1, 3.0, 3.1, 3.2, 4.0

R2011b 2.0, 2.1, 3.0, 3.1, 3.2

R2011a 2.0, 2.1, 3.0, 3.1

R2010b 2.0, 2.1, 3.0, 3.1

R2010a 2.0, 2.1, 3.0. 3.11)

R2009b 2.0, 2.1, 3.0

R2009a 2.0, 2.1, 3.0

R2008b 2.0, 2.1

R2008a 2.0, 2.1

R2006b - 07b:

AUTOSAR Demonstrator Kit1) via AUTOSAR PSP

http://www.mathworks.com/automotive/standards/autosar.html

Page 51: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

51

アジェンダアジェンダアジェンダアジェンダ

1. はじめにはじめにはじめにはじめに

2. モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャ

3. (例)ドアロック制(例)ドアロック制(例)ドアロック制(例)ドアロック制御システム開発御システム開発御システム開発御システム開発

4. モデルベースデザイン環境構築モデルベースデザイン環境構築モデルベースデザイン環境構築モデルベースデザイン環境構築

5. まとめまとめまとめまとめ

Page 52: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

52

フォルダの整理フォルダの整理フォルダの整理フォルダの整理

モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャにににに沿って沿って沿って沿ってファイルファイルファイルファイルを整理しようを整理しようを整理しようを整理しよう

作業ディレクトリの派生ファイル

データデータデータデータ ドキュメントドキュメントドキュメントドキュメント ライブラリライブラリライブラリライブラリ

モデルモデルモデルモデル

プロジェクトプロジェクトプロジェクトプロジェクト

Page 53: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

53

構成管理構成管理構成管理構成管理

Simulink® プロジェクト(プロジェクト(プロジェクト(プロジェクト(Simulinkの標準機能の標準機能の標準機能の標準機能 2011b以降)以降)以降)以降)

モデルに関わる成果物をプロジェクトとして一括管理モデルに関わる成果物をプロジェクトとして一括管理モデルに関わる成果物をプロジェクトとして一括管理モデルに関わる成果物をプロジェクトとして一括管理

� Simulink モデルに関連するファイル

– 作成物

� Simulinkモデル(.mdl), データファイル(.mat)、パラメータ設定ファイルなど(.m), S-Functionソースファイル

– 成果物

� シミュレーション結果、生成コード、ログファイル、レポート、仕様書

– プロジェクトに関連して定義したアクションセット

� セットアップコード、モデルのオープン、シミュレーション、ビルド、シャットダウン

Page 54: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

54

変更管理変更管理変更管理変更管理

Simulink Report Generator™

etcCh5.mdl /Rev3 (変更済み変更済み変更済み変更済み)

startup.m /Rev2

etcCh5.mdl /Rev1

startup.m /Rev1

etcCh5.mdl /Rev1

startup.m /Rev2

etcCh5.mdl /Rev3

startup.m /Rev2

etcCh5.mdl /Rev4

startup.m /Rev2

リビジョン 1 リビジョン 2 リビジョン 3 リビジョン 4

何が変更されましたか?リポジトリ

Page 55: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

55

リビジョンの比較リビジョンの比較リビジョンの比較リビジョンの比較 – XML ファイルファイルファイルファイル変化点が一目瞭然変化点が一目瞭然変化点が一目瞭然変化点が一目瞭然

機能上の変更

機能外の変更

変更前変更前変更前変更前 変更後変更後変更後変更後

Page 56: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

56

プロジェクトにおける依存解析グラフの強化プロジェクトにおける依存解析グラフの強化プロジェクトにおける依存解析グラフの強化プロジェクトにおける依存解析グラフの強化

� 改善されたファイル依存解析グラフ

� ハイライトできる項目:

– 依存関係

– ファイル型

– 参照型

– ラベル

� 例:

– レビューすべきラベルを持つ全てのファイルを

ハイライト

– 全てのSimulinkモデルのハイライト

– 全てのMATLABファイルの表示

ファイル依存・関連付けファイル依存・関連付けファイル依存・関連付けファイル依存・関連付け・・・・消失の消失の消失の消失の可視化可視化可視化可視化

Page 57: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

57

モデルベースデザイン環境モデルベースデザイン環境モデルベースデザイン環境モデルベースデザイン環境構築のために構築のために構築のために構築のために

Simulink APIを使って効率化しようを使って効率化しようを使って効率化しようを使って効率化しよう

� Simulink APIとは?– Simulink環境をコマンド・関数を用いて操作するためのプログラミング

インターフェースのこと ←Simulinkの標準機能

ユーザユーザユーザユーザの手数の手数の手数の手数をををを最小限に最小限に最小限に最小限に抑えたい抑えたい抑えたい抑えたい

ユーザに不必要なユーザに不必要なユーザに不必要なユーザに不必要な設定項目の利用を設定項目の利用を設定項目の利用を設定項目の利用を制限したい制限したい制限したい制限したい

統一したルールの統一したルールの統一したルールの統一したルールのもとでのモデリングもとでのモデリングもとでのモデリングもとでのモデリング環境を環境を環境を環境を構築したい構築したい構築したい構築したい

Page 58: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

58

Simulink APIの代表例の代表例の代表例の代表例

� find_system

– モデル上のブロック・信号線などを探索

� get_param

– ブロック/モデルの設定値を取得

� set_param

– ブロック/モデルの設定値を更新

� add_line

– ブロック間を結線

� add_block

– モデル中にブロックを配置

� sim

– シミュレーションを実行

MATLAB/Simulinkヘルプ

Page 59: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

59

アジェンダアジェンダアジェンダアジェンダ

1. はじめにはじめにはじめにはじめに

2. モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャ

3. (例)ドアロック制(例)ドアロック制(例)ドアロック制(例)ドアロック制御システム開発御システム開発御システム開発御システム開発

4. モデルベースデザイン環境構築モデルベースデザイン環境構築モデルベースデザイン環境構築モデルベースデザイン環境構築

5. まとめまとめまとめまとめ

Page 60: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

60

②②②②人材育成人材育成人材育成人材育成

• 必要機能の整理、モデリングルール• ツールチェーンの選定と構築• 自動化、構成管理、変更管理

• MBD啓蒙活動• トレーニングの体系化(ユーザ/Mgr.)• 技術スキルマップ、ノウハウ共有

①①①①環境構築環境構築環境構築環境構築

モデルベースデザイン(モデルベースデザイン(モデルベースデザイン(モデルベースデザイン(MBD)成功のポイント)成功のポイント)成功のポイント)成功のポイント3つのつのつのつのキーファクターキーファクターキーファクターキーファクター

③③③③業務への適用業務への適用業務への適用業務への適用• パイロットプロジェクトの選定• MBDプロセスの策定• 部門責任者の承認

Page 61: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

61

まとめまとめまとめまとめ

モデルベースデザイン(モデルベースデザイン(モデルベースデザイン(モデルベースデザイン(MBD)で)で)で)で製品の品質を向上しましょう製品の品質を向上しましょう製品の品質を向上しましょう製品の品質を向上しましょう

Key Points

� モデルアーキテクチャモデルアーキテクチャモデルアーキテクチャモデルアーキテクチャによるによるによるによるルール化と環境構築ルール化と環境構築ルール化と環境構築ルール化と環境構築

モデルベースデザイン成功のためにモデルベースデザイン成功のためにモデルベースデザイン成功のためにモデルベースデザイン成功のために弊社弊社弊社弊社の技術サービスをの技術サービスをの技術サービスをの技術サービスをご活用ご活用ご活用ご活用くださいくださいくださいください

トレーニング、コンサルティングトレーニング、コンサルティングトレーニング、コンサルティングトレーニング、コンサルティング、、、、etc

Page 62: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

62

関連情報の紹介:関連情報の紹介:関連情報の紹介:関連情報の紹介:

本講演ではカバーしきれなかった内容がたくさんあります本講演ではカバーしきれなかった内容がたくさんあります本講演ではカバーしきれなかった内容がたくさんあります本講演ではカバーしきれなかった内容がたくさんあります

� MathWorksオンデマンドオンデマンドオンデマンドオンデマンドWebセミナーセミナーセミナーセミナー– コード自動生成ソリューションのご紹介コード自動生成ソリューションのご紹介コード自動生成ソリューションのご紹介コード自動生成ソリューションのご紹介

http://www.mathworks.co.jp/videos/auto-code-generation-solutions-82325.html

Simulinkモデルのコンポーネントベース設計と構成モデルのコンポーネントベース設計と構成モデルのコンポーネントベース設計と構成モデルのコンポーネントベース設計と構成

http://www.mathworks.co.jp/videos/simulink-model-component-based-design-and-control-system-82320.html

– AUTOSARに対するに対するに対するに対するMathWorksソリューションソリューションソリューションソリューション概要概要概要概要

http://www.mathworks.co.jp/videos/autosar-and-mathworks-solution-82333.html

� MathWorks技術トレーニングサー技術トレーニングサー技術トレーニングサー技術トレーニングサービビビビスススス– Embedded Coderによる量産向けコードによる量産向けコードによる量産向けコードによる量産向けコード生成生成生成生成

– Simulinkでのでのでのでのモデルのモデルのモデルのモデルの管理管理管理管理およびおよびおよびおよび検証検証検証検証

– MATLABによるによるによるによるSimulinkモデル開発環境モデル開発環境モデル開発環境モデル開発環境のののの自動化自動化自動化自動化

http://www.mathworks.co.jp/services/training/courses/(*オンサイトによるカスタマイズトレーニングも可能です)*オンサイトによるカスタマイズトレーニングも可能です)*オンサイトによるカスタマイズトレーニングも可能です)*オンサイトによるカスタマイズトレーニングも可能です)

� 技術技術技術技術資料資料資料資料– JMAABガイドラインガイドラインガイドラインガイドライン関連関連関連関連http://jmaab.mathworks.jp/

– MATLAB/Simulinkドキュメンテーションセンタードキュメンテーションセンタードキュメンテーションセンタードキュメンテーションセンター

http://www.mathworks.co.jp/jp/help/

Page 63: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

63

関連講演関連講演関連講演関連講演

� E4 15:30–16:20

– モーター・モーション制御モデルベースデザイン実践

「リアルタイムテスト」編

� E5 16:40–17:30

– モーター・モーション制御モデルベースデザイン実践

「組み込みコード生成」編

� G5 16:40–17:30

– アセスメントによるモデルベースデザインプロセス改善

Page 64: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

64

ご清聴ありがとうございました

© 2013 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.

Page 65: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

65

本日本日本日本日のののの資料ダウンロードのご案内資料ダウンロードのご案内資料ダウンロードのご案内資料ダウンロードのご案内

� 本日の資料は、1週間以内にメールでダウンロードサイトをご案内します

Page 66: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

66

評価版評価版評価版評価版

� 30日間無料評価版お申込み– http://www.mathworks.co.jp/trialrequest

www.mathworks.co.jp/trialrequest/

Page 67: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

67

テクニカルサポートテクニカルサポートテクニカルサポートテクニカルサポート

リソース� 100名を超えるサポートエンジニア

– 北米、欧州、アジアで現地サポート

� 総合的な製品に特化したWebサポート

リソース

高い顧客満足度� 24時間以内に70%問題解決

� 80%のお客様が80-100%の満足度と回答

利用方法� お問い合わせフォーム

http://www.mathworks.co.jp/support/contact_us/

� MATLABヘルプメニュー:MathWorksサポート要求の送信(R2011a~)

www.mathworks.co.jp/support/

MATLABデスクトップからサポートリクエストを起動

Page 68: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

68

イベントスケジュールイベントスケジュールイベントスケジュールイベントスケジュール

� 各分野に特化した無料セミナーを開催

– 無料セミナー

– Webセミナー

� ライブ

� オンデマンド

www.mathworks.co.jp/events/

Page 69: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

69

トレーニング・コンサルティングトレーニング・コンサルティングトレーニング・コンサルティングトレーニング・コンサルティング サービスサービスサービスサービス

投資 効果

トレーニングトレーニングトレーニングトレーニング サービスサービスサービスサービス� MathWorks製品の機能を短期間で、

かつ最大限に習得していただけるような多種多様な教育カリキュラムを提供します。

コンサルティングコンサルティングコンサルティングコンサルティング サービスサービスサービスサービス

� お客様のプロジェクトを成功させるため、お客様のモデル・データを使った、MathWorksならではの

コンサルティング・サービスを提供します。投資対効果の最大化投資対効果の最大化投資対効果の最大化投資対効果の最大化

VS.

Page 70: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

70

初級

制御システム制御システム制御システム制御システム設計設計設計設計

プラントモデルプラントモデルプラントモデルプラントモデル

設計設計設計設計

ソフトウェアソフトウェアソフトウェアソフトウェア

設計設計設計設計

PSCC/AUTOS

SLEC/SLHL

MBC SLMB/SLDV

SLEX SLEX SLEX

SLPM-S/SLPM-M/

SLPM-P

SLCT SLCT SLAI

V-pro V-pro

SLRT

SLSF-A SLSF-A

SLBE-A SLBE-A SLBE-A

MLBE-A MLBE-A MLBE-A

必須必須必須必須 推奨推奨推奨推奨 選択選択選択選択

中級

上級

コードコードコードコード コース名コース名コース名コース名

MLBE-A 自動車分野向けMATLAB基礎

SLBE-A 自動車分野向け Simulink 基礎

SLSF-A 自動車分野向け Stateflow基礎

SLRT Simulink Coder基礎

SLCT MATLAB と Simulink による制御設計

SLPM-S Simscapeによるマルチドメインシステム

の物理モデリング

SLPM-M SimMechanicsによるの力学系の物理

モデリング

SLPM-P SimPowerSystems(開発中)

MBC Model –Based Calibration

SLEX Simulink とC言語のインタフェース

SLAI Simulink/Stateflow API

SLMB Simulink でのモデルの管理と検証

SLDV Simulink Design Verifier (開発中)

SLEC Embedded Coderによる

量産向けコード生成

AUTOS AUTOSAR(0.5 day)

SLHL HDL Coder によるHDLコード生成

PSCC Polyspaceによる静的コード検証

V-pro V-プロセス実習(オンサイトのみ)MathWorks トレーニングコース

http://www.mathworks.co.jp/services/training/courses/

MathWorksが提が提が提が提供する供する供する供するMBDサポートサポートサポートサポートトレーニング(参考)トレーニング(参考)トレーニング(参考)トレーニング(参考) 制御設計制御設計制御設計制御設計/組み込み組み込み組み込み組み込み系コースマップ系コースマップ系コースマップ系コースマップ

Page 71: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

71

Connections Program

300以上のパートナー

� プロダクトパートナー

– MATLAB/Simulink をベース

にした製品、インタフェースを持つ製品

� サービスパートナー

– MathWorks 製品を用いた

トレーニングやコンサルティングサービス

Book Program

26言語で1400冊以上のMATLAB/Simulink関連書籍

� ウェブでの書籍紹介

� 執筆時のサポート

Page 72: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

72

MATLAB CentralMATLAB/Simulinkユーザのオープンコミュニティーユーザのオープンコミュニティーユーザのオープンコミュニティーユーザのオープンコミュニティー

� File Exchange

� ニュースグループ

� ブログ

� MATLAB Answers

www.mathworks.com/matlabcentralBased on February 2009 data

Page 73: 量産ソフト開発向けの モデルベースデザイン環境構築€¦ · 2 アジェンダ 1. はじめに 2. モデルアーキテクチャ 3. (例)ドアロック制御システム開発

73

お問い合わせお問い合わせお問い合わせお問い合わせ

� 営業部へのお問い合わせ– http://www.mathworks.co.jp/contact_us/

� テクニカルサポート– http://www.mathworks.co.jp/support/contact_us/

本日はご参加ありがとうございました。

© 2013 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.