量産ソフト開発向け
量産ソフト開発向け
量産ソフト開発向け
量産ソフト開発向けの
の
の
の
モデルベースデザイン環境構築
モデルベースデザイン環境構築
モデルベースデザイン環境構築
モデルベースデザイン環境構築
MathWorks Japan アプリケーションエンジニアリング部 アプリケーションエンジニアリング部アプリケーションエンジニアリング部 アプリケーションエンジニアリング部 アプリケーションエンジニア アプリケーションエンジニアアプリケーションエンジニア アプリケーションエンジニア 加藤 加藤加藤 加藤 久久久久浩浩浩浩アジェンダ
アジェンダ
アジェンダ
アジェンダ
1.
はじめに
はじめに
はじめに
はじめに
2.
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
3.
(例)ドアロック制
(例)ドアロック制御システム開発
(例)ドアロック制
(例)ドアロック制
御システム開発
御システム開発
御システム開発
4.
モデルベースデザイン環境構築
モデルベースデザイン環境構築
モデルベースデザイン環境構築
モデルベースデザイン環境構築
5.
まとめ
まとめ
まとめ
まとめ
モデルからコード生成、仕様変更をすぐに反映!
モデルからコード生成、仕様変更をすぐに反映!
モデルからコード生成、仕様変更をすぐに反映!
モデルからコード生成、仕様変更をすぐに反映!
生成コードの検証結果を利用可能!
生成コードの検証結果を利用可能!
生成コードの検証結果を利用可能!
生成コードの検証結果を利用可能!
モデルベースデザイン(
モデルベースデザイン(
モデルベースデザイン(
モデルベースデザイン(MBD)の理想的な姿
)の理想的な姿
)の理想的な姿
)の理想的な姿
システム開発
システム開発
システム開発
システム開発
(シミュレーション環境)
(シミュレーション環境)
(シミュレーション環境)
(シミュレーション環境)
ソフト開発
ソフト開発
ソフト開発
ソフト開発
(実装
(実装
(実装
(実装環境
環境
環境
環境)
)
)
)
MATLAB®ファイルファイルファイルファイル/ Simulink®モデルモデルモデルモデル 組み込みターゲット( 組み込みターゲット(組み込みターゲット( 組み込みターゲット(Cコード)コード)コード)コード) 仕様書 仕様書仕様書 仕様書 検証データ検証データ検証データ検証データ MATLAB®ファイルファイルファイルファイル/ Simulink®モデルモデルモデルモデル 仕様書& 仕様書& 仕様書& 仕様書& 検証データ 検証データ 検証データ 検証データ + + + +モデルモデルモデルモデル 検証結果 検証結果 検証結果 検証結果 + + + +システム開発
システム開発
システム開発
システム開発
(シミュレーション環境)
(シミュレーション環境)
(シミュレーション環境)
(シミュレーション環境)
ソフト開発
ソフト開発
ソフト開発
ソフト開発
(実装
(実装
(実装
(実装環境
環境
環境
環境)
)
)
)
MATLABファイルファイルファイル/ファイル Simulinkモデルモデルモデルモデル機能
機能
機能
機能モデルと実装モデル
モデルと実装モデル
モデルと実装モデル
モデルと実装モデルが
が
が
がシームレスにつながらない!
シームレスにつながらない!
シームレスにつながらない!
シームレスにつながらない!
生成コードのサイズや構造が
生成コードのサイズや構造が
生成コードのサイズや構造が
生成コードのサイズや構造がC言語の開発環境に合わない!
言語の開発環境に合わない!
言語の開発環境に合わない!
言語の開発環境に合わない!
組み込みターゲット( 組み込みターゲット( 組み込みターゲット( 組み込みターゲット(Cコード)コード)コード)コード)MBDに取り組んだユーザー様の声
に取り組んだユーザー様の声
に取り組んだユーザー様の声
に取り組んだユーザー様の声
仕様書 仕様書仕様書 仕様書 検証データ検証データ検証データ検証データ MATLABファイルファイルファイルファイル/ Simulinkモデルモデルモデルモデル 仕様書& 仕様書& 仕様書& 仕様書& 検証データ 検証データ 検証データ 検証データ + + + +モデルモデルモデルモデル 検証結果 検証結果 検証結果 検証結果 + + + + 生成コード 生成コード 生成コード 生成コード本講演では
本講演では
本講演では
本講演では..
実装を想定した
実装を想定した
実装を想定した
実装を想定した
モデリングのテクニック
モデリングのテクニック
モデリングのテクニック
モデリングのテクニック
と
と
と
と
開発環境の構築方法
開発環境の構築方法
開発環境の構築方法
開発環境の構築方法
についてご紹介します
についてご紹介します
についてご紹介します
についてご紹介します
システム
システム
システム
システム開発
開発
開発
開発
(
(
(
(機能
機能
機能
機能モデル
モデル
モデル
モデル)
)
)
)
ソフト開発
ソフト開発
ソフト開発
ソフト開発
(実装モデル)
(実装モデル)
(実装モデル)
(実装モデル)
共通の認識
共通の認識
共通の認識
共通の認識
なぜモデルにギャップが出てしまうのか?
なぜモデルにギャップが出てしまうのか?
なぜモデルにギャップが出てしまうのか?
なぜモデルにギャップが出てしまうのか?
ドメインに違いがあることを認識する
ドメインに違いがあることを認識する
ドメインに違いがあることを認識する
ドメインに違いがあることを認識する
システム開発
ソフト開発
全体
全体
全体
全体を
を
を
を見渡した
見渡した
見渡した
見渡した
最適な
最適な
最適な
最適な
制御方法
制御方法
制御方法
制御方法
流用性、効率性
流用性、効率性
流用性、効率性
流用性、効率性
を考慮した
を考慮した
を考慮した
を考慮した
実装方法
実装方法
実装方法
実装方法
アプリケーション アプリケーション アプリケーション アプリケーション ミドルウェア ミドルウェアミドルウェア ミドルウェア デバイスドライバ デバイスドライバ デバイスドライバ デバイスドライバ スケジューラ スケジューラスケジューラ スケジューラ ハードウェア ハードウェアハードウェア ハードウェア ハードウェア ハードウェア ハードウェア ハードウェア アプリケーション アプリケーションアプリケーション アプリケーション デバイスドライバ デバイスドライバ デバイスドライバ デバイスドライバ
なぜ生成コード
なぜ生成コード
なぜ生成コード
なぜ生成コードの
の
の
の実装に苦労するか?
実装に苦労するか?
実装に苦労するか?
実装に苦労するか?
コード生成に適したソフトウェアの階層構造を選択する
コード生成に適したソフトウェアの階層構造を選択する
コード生成に適したソフトウェアの階層構造を選択する
コード生成に適したソフトウェアの階層構造を選択する
階層間の結合度が低い構造
階層間の結合度が高い構造
右側のような整理されたソフトウェアの階層構造が
右側のような整理されたソフトウェアの階層構造が
右側のような整理されたソフトウェアの階層構造が
右側のような整理されたソフトウェアの階層構造が
実装を想定したモデリングにするには?
実装を想定したモデリングにするには?
実装を想定したモデリングにするには?
実装を想定したモデリングにするには?
信号 信号 信号 信号 信号 信号 信号 信号 パラ パラ パラ パラメータメータメータメータ 四則演算子 四則演算子四則演算子 四則演算子 比較 比較比較 比較演算子演算子演算子演算子 論理演算子 論理演算子 論理演算子 論理演算子 モデリング モデリング モデリング モデリング以外に以外に以外にコンフィギュレーションと以外にコンフィギュレーションとコンフィギュレーションとコンフィギュレーションと信号・信号・信号・信号・パラメータが影響パラメータが影響パラメータが影響パラメータが影響しますしますしますします このモデルからどんなコードが生成 このモデルからどんなコードが生成 このモデルからどんなコードが生成 このモデルからどんなコードが生成 されるかイメージしてみてください されるかイメージしてみてください されるかイメージしてみてください されるかイメージしてみてくださいコンフィギュレーションの違い
コンフィギュレーションの違い
コンフィギュレーションの違い
コンフィギュレーションの違い
信号 信号信号 信号とパラメーターとパラメーターとパラメーターとパラメーター – コード生成コード生成コード生成コード生成 チェックなし チェックありデータ設定
データ設定
データ設定
データ設定の
の
の
の違い
違い
違い
違い
信号とパラメーター 信号とパラメーター信号とパラメーター 信号とパラメーター – ベースワークスペースベースワークスペースベースワークスペースベースワークスペース カスタム オートメッセージ
メッセージ
メッセージ
メッセージ
システム開発
システム開発
システム開発
システム開発
と
と
と
と
ソフト開発
ソフト開発
ソフト開発
ソフト開発
の間で
の間で
の間で
の間で
共通のモデリングルール
共通のモデリングルール
共通のモデリングルール
共通のモデリングルール
をもとに
をもとに
をもとに
をもとに
モデル
モデル
モデル
モデルをうまく育てて
をうまく育てて
をうまく育てていきましょう
をうまく育てて
いきましょう
いきましょう
いきましょう
システム開発
システム開発
システム開発
システム開発
ソフト開発
ソフト開発
ソフト開発
ソフト開発
C/C++
実装環境にも 実装環境にも 実装環境にも 実装環境にも 配慮した設計 配慮した設計 配慮した設計 配慮した設計 実装環境における 実装環境における 実装環境における 実装環境における 制約条件のフィードバック 制約条件のフィードバック制約条件のフィードバック 制約条件のフィードバック共通ルール
共通ルール
共通ルール
共通ルール
アジェンダ
アジェンダ
アジェンダ
アジェンダ
1.
はじめに
はじめに
はじめに
はじめに
2.
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
3.
(例)ドアロック制
(例)ドアロック制御システム開発
(例)ドアロック制
(例)ドアロック制
御システム開発
御システム開発
御システム開発
4.
モデルベースデザイン環境構築
モデルベースデザイン環境構築
モデルベースデザイン環境構築
モデルベースデザイン環境構築
5.
まとめ
まとめ
まとめ
まとめ
新しい機能
新しい機能
新しい機能
新しい機能
?
?
?
?
新しいツール
新しいツール
新しいツール
新しいツール
?
?
?
?
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャと
と
と
とは?
は?
は?
は?
モデルアーキテクチャ
階
層
化
階
層
化
階
層
化
階
層
化
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
化化化化
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
実
行
実
行
実
行
実
行
のののの
制
御
制
御
制
御
制
御
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
ポイント
ポイント
ポイント
ポイント
どこまで想定してモデルをつくるか
どこまで想定してモデルをつくるか
どこまで想定してモデルをつくるか
どこまで想定してモデルをつくるか
大規模システムをモデリングする
大規模システムをモデリングする
大規模システムをモデリングする
大規模システムをモデリングする際の重要な開発タスク
際の重要な開発タスク
際の重要な開発タスク
際の重要な開発タスク
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
階
層
化
階
層
化
階
層
化
階
層
化
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
化化化化
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
実
行
実
行
実
行
実
行
のののの
制
御
制
御
制
御
制
御
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
Step1:階層化
:階層化
:階層化
:階層化
MAAB(JMAAB) Modeling Style Guide : jc_0301 周期・イベントで 周期・イベントで 周期・イベントで 周期・イベントで 分割してから 分割してから 分割してから 分割してから 機能を配置する 機能を配置する 機能を配置する 機能を配置する ソフト開発向き ソフト開発向き ソフト開発向き ソフト開発向き 機能 機能 機能 機能で分割してで分割してで分割してで分割して から周期・イベント から周期・イベント から周期・イベント から周期・イベント を配置する を配置する を配置する を配置する システム システム システム システム開発向き開発向き開発向き開発向き
Simulinkモデルの
モデルの
モデルの階層化
モデルの
階層化
階層化
階層化
JMAAB(
(
(※
(
※
※
※
)のスタイルガイドを活用しよう
)のスタイルガイドを活用しよう
)のスタイルガイドを活用しよう
)のスタイルガイドを活用しよう
ソフトウェア
ソフトウェア
ソフトウェア
ソフトウェアの
の
の階層化
の
階層化
階層化
階層化
コード生成の対象を明確にしよう
コード生成の対象を明確にしよう
コード生成の対象を明確にしよう
コード生成の対象を明確にしよう
ターゲット依存型
ターゲット依存型
ターゲット依存型
ターゲット依存型
モデル化・コード生成対象として モデル化・コード生成対象として モデル化・コード生成対象として モデル化・コード生成対象として I / Oや周辺や周辺や周辺ソフト呼び出しもや周辺ソフト呼び出しもソフト呼び出しも含むソフト呼び出しも含む含む含むターゲット非依存型
ターゲット非依存型
ターゲット非依存型
ターゲット非依存型
モデル化・コード生成対象は モデル化・コード生成対象は モデル化・コード生成対象は モデル化・コード生成対象は アプリケーション アプリケーション アプリケーション アプリケーションのみのみのみのみEmbedded Coder™
Simulink®モデルから組み込みに適したコードを生成するオプション製品 アプリケーション アプリケーションアプリケーション アプリケーション ミドルウェア ミドルウェア ミドルウェア ミドルウェア デバイスドライバ デバイスドライバ デバイスドライバ デバイスドライバ スケジューラ スケジューラ スケジューラ スケジューラ ハードウェア ハードウェア ハードウェア ハードウェア2つの方法があります
ターゲット依存
ターゲット依存
ターゲット依存
ターゲット依存 / 非依存型の比較
非依存型の比較
非依存型の比較
非依存型の比較
Embedded Coder™
ターゲット非依存型
ターゲット非依存型
ターゲット非依存型
ターゲット非依存型
ターゲット依存型
ターゲット依存型
ターゲット依存型
ターゲット依存型
I / O グローバル変数 / 引数 専用ブロックを提供 他ソースとの結合 手動 自動 ビルド 手動 自動 特徴 量産用コード開発向き (ターゲット非依存アプリ) MCUを用いた制御実験向き (On Target RCP) 注意点 手動の手間がかかる 対応ターゲットが限定される基本はこちら
基本はこちら
基本はこちら
基本はこちら
対応ターゲットリスト: http://www.mathworks.co.jp/hardware-support/index.htmlカスタマイズや工夫で
カスタマイズや工夫で
カスタマイズや工夫で
カスタマイズや工夫で
ギャップの解消が可能
ギャップの解消が可能
ギャップの解消が可能
ギャップの解消が可能
ターゲットに合わせたコード生成製品を提供
ターゲットに合わせたコード生成製品を提供
ターゲットに合わせたコード生成製品を提供
ターゲットに合わせたコード生成製品を提供
Simulink Coder
™
RCP/HILSC
Embedded Coder
™
MCU/DSPC/C++
HDL Coder
™
FPGA/ASICHDL
Simulink
PLC Coder
™
PLCST
MATLAB Coder
™
MATLABMEX
C
Simulink/Stateflowモデル MATLABファイル組み込み
組み込み
組み込み
組み込み・量産
・量産
・量産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モデル
Simulinkと
と
とStateflow のコンテンツプレビュー
と
のコンテンツプレビュー
のコンテンツプレビュー
のコンテンツプレビュー
サブシステム・リファレンスモデル・ Stateflowチャートおよびサブチャート の内部を視覚的に判別 各システムに対して個別に有効化が 可能 デフォルトではコンテンツプレビューは 無効 階層システム内部を表示 階層システム内部を表示階層システム内部を表示 階層システム内部を表示 見やすく 見やすく見やすく 見やすくなったなったなったなったSimulinkモデルモデルモデルモデルStep2:コンポーネント化
2:コンポーネント化
2:コンポーネント化
2:コンポーネント化
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
階
層
化
階
層
化
階
層
化
階
層
化
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
化化化化
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
実
行
実
行
実
行
実
行
のののの
制
御
制
御
制
御
制
御
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コンポーネント化する時の考慮点
コンポーネント化する時の考慮点
コンポーネント化する時の考慮点
コンポーネント化する時の考慮点
6つの
つの
つの観点から検討しよう
つの
観点から検討しよう
観点から検討しよう
観点から検討しよう
効率性
効率性
効率性
効率性
シミュレーション速度、資源の使用率移植性
移植性
移植性
移植性
流用の度合い、別環境との組み合わせ使用性
使用性
使用性
使用性
理解しやすさ、習得しやすさ保守性
保守性
保守性
保守性
複数人による作業、変更に必要な労力信頼性
信頼性
信頼性
信頼性
テストのしやすさ、網羅的なテストデータ 0 2 4 6 8 0 0.2 0.4 0.6 0.8 1 Step Response Time (seconds) A m p litu d e 2 2.5 3 0 0.2 0.4 0.6 0.8 1機能性
機能性
機能性
機能性
機能の実装度合い、トレーサビリティーC
Simulinkにおけるコンポーネント化の例
におけるコンポーネント化の例
におけるコンポーネント化の例
におけるコンポーネント化の例
各ブロックの特性
各ブロックの特性
各ブロックの特性
各ブロックの特性を理解し
を理解し
を理解し使い分けしよう
を理解し
使い分けしよう
使い分けしよう
使い分けしよう
Virtualサブシステムブロック
– 視覚的な階層単位視覚的な階層単位視覚的な階層単位視覚的な階層単位 – シミュレーション実行時には、階層を維持しないAtomicサブシステムブロック
– 内部に含まれるブロック群を、 一つ 一つ一つ 一つの単位との単位との単位として実行の単位として実行して実行して実行Modelブロック
– 別別モデルファイルを参照別別モデルファイルを参照モデルファイルを参照モデルファイルを参照 – 実行時にはDLL化(アクセラレータモード時) – モデルのビルド時、変更がある参照ファイル のみビルド可能モデルの一括切り替え
モデルの一括切り替え
モデルの一括切り替え
モデルの一括切り替え
システムの一部を設計対象ごとに切り替えたい
– Variant機能でモデルまたはサブシステムの切り替え可能 – 大きなモデルの場合には切り替えミスを防止コンポーネント化
コンポーネント化
コンポーネント化
コンポーネント化のまとめ
のまとめ
のまとめ
のまとめ
Virtual
サブシステム
サブシステム
サブシステム
サブシステム
ブロック
ブロック
ブロック
ブロック
視覚的な階層
視覚的な階層
視覚的な階層
視覚的な階層
Atomic
サブシステム
サブシステム
サブシステム
サブシステム
ブロック
ブロック
ブロック
ブロック
トレーサビリティ、生成されるコードの
トレーサビリティ、生成されるコードの
トレーサビリティ、生成されるコードの
トレーサビリティ、生成されるコードの
モジュール化、予測可能な実行
モジュール化、予測可能な実行
モジュール化、予測可能な実行
モジュール化、予測可能な実行
Model
ブロック
ブロック
ブロック
ブロック
並行開発、単体テスト、
並行開発、単体テスト、
並行開発、単体テスト、
並行開発、単体テスト、
複数レベルの階層、拡張性、流用性
複数レベルの階層、拡張性、流用性
複数レベルの階層、拡張性、流用性
複数レベルの階層、拡張性、流用性
Step3
3
3:インターフェース
3
:インターフェース
:インターフェース
:インターフェース
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
階
層
化
階
層
化
階
層
化
階
層
化
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
化化化化
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
実
行
実
行
実
行
実
行
のののの
制
御
制
御
制
御
制
御
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
Simulinkにおけるインターフェース例
におけるインターフェース例
におけるインターフェース例
におけるインターフェース例
Cコードで例えると変数や定数のようなもの
コードで例えると変数や定数のようなもの
コードで例えると変数や定数のようなもの
コードで例えると変数や定数のようなもの
Numerical Data Events Global Data Parametersデータディクショナリによるインターフェース定義
データディクショナリによるインターフェース定義
データディクショナリによるインターフェース定義
データディクショナリによるインターフェース定義
モデルファイルとデータファイルを分割
モデルファイルとデータファイルを分割
モデルファイルとデータファイルを分割
モデルファイルとデータファイルを分割しよう
しよう
しよう
しよう
• Simulink.Signal – Simulink信号を定義
• Simulink.Parameter – Simulinkパラメーターを定義
モデル (アルゴリズム、システム ダイナミクスなど) .mdl,.slx 名前 説明 値 ストレージ クラス データ型 .m,.mat信号の定義方法
信号の定義方法
信号の定義方法
信号の定義方法
グローバルデータの記述方法を検討
グローバルデータの記述方法を検討
グローバルデータの記述方法を検討
グローバルデータの記述方法を検討しよう
しよう
しよう
しよう
データストアメモリ
データストアメモリ
データストアメモリ
データストアメモリ
信号線
信号線
信号線
信号線
モデル例 読書き順序 優先度指定 Simulinkが決める順序 利点 結線 / スルー処理の省力化 同一変数の読み書きが得意 データフローの明確化 注意点 多用するとデータフローが 不明瞭 結線 / スルー処理が大変 (特に大規模モデル)データフロー層はブロック線図(信号線)
ストラクチャ層は信号線 or データストアメモリ
コード
コード
コード
コード生成用
生成用
生成用モデルの作成
生成用
モデルの作成
モデルの作成
モデルの作成 / リファクタリング
リファクタリング
リファクタリング
リファクタリング
コード生成をサポートしているブロックに限定しよう
コード生成をサポートしているブロックに限定しよう
コード生成をサポートしているブロックに限定しよう
コード生成をサポートしているブロックに限定しよう
基本的なチェックポイント
基本的なチェックポイント
基本的なチェックポイント
基本的なチェックポイント
シミュレーション時にエラーが無いか? 離散時間で動作するか? コード生成に対応した ブロックか? 適切なデータ型を 設定しているか? 代数ループが無いか? 効率的なコードが 生成されるか? etc. ブロックサポートテーブルで確認可能 (Xが対応していることを示します)Step4:実行の制御
4:実行の制御
4:実行の制御
4:実行の制御
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
階
層
化
階
層
化
階
層
化
階
層
化
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
化化化化
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
実
行
実
行
実
行
実
行
のののの
制
御
制
御
制
御
制
御
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
サブシステムの呼び出しタイミング
サブシステムの呼び出しタイミング
サブシステムの呼び出しタイミング
サブシステムの呼び出しタイミング
Cコードで例えると関数呼び出しのようなもの
コードで例えると関数呼び出しのようなもの
コードで例えると関数呼び出しのようなもの
コードで例えると関数呼び出しのようなもの
void task_init(void) { ... // 初期化初期化初期化初期化 (t=0のみのみのみ)のみ } void task_diag(void) { ... // 診断診断診断診断制御制御制御制御(2ms) } void task_logic(void) { ... // ロック制御ロック制御ロック制御ロック制御 (4ms) } tasks.c実行
実行
実行
実行順序
順序
順序
順序の定義方法
の定義方法
の定義方法
の定義方法
呼び出し方法の
呼び出し方法の
呼び出し方法の
呼び出し方法の特性を
特性を
特性を
特性を理解し使い分けしよう
理解し使い分けしよう
理解し使い分けしよう
理解し使い分けしよう
ファンクションコール
ファンクションコール
ファンクションコール
ファンクションコール
トリガー
トリガー
トリガー
トリガー
モデル例 読書き順序 スケジューラが決める順序 Simulinkが決める順序 利点 スケジューラの実行順序通りに 呼び出し モデルに処理の順番が定義される 注意点 スケジューラの実行順序が支配的 Simulinkの実行順序が支配的トリガ層はファンクションコール or トリガー
ストラクチャ層は信号線 or データストアメモリ
関数モデルのエクスポート
関数モデルのエクスポート
関数モデルのエクスポート
関数モデルのエクスポート
モデルはシミュレーションもしくは コード生成用のためのリファレンス モデルとして使用可能 生成コードには各関数呼び出し 入力ポート用メソッドとモデルの 初期化メソッドが含まれる 生成コードの手動編集の必要無く ラピットプロトタイピングとコード 生成が可能 void trigger_1ms(void) { … } いままで参照モデル(子モデル) いままで参照モデル(子モデル)いままで参照モデル(子モデル) いままで参照モデル(子モデル) の中にあったスケジューラーを の中にあったスケジューラーをの中にあったスケジューラーを の中にあったスケジューラーを 外に出せるようになった 外に出せるようになった 外に出せるようになった 外に出せるようになった 外部アプリケーション 外部アプリケーション 外部アプリケーション 外部アプリケーションへエクスポートするへエクスポートするへエクスポートするへエクスポートする ため ため ためためFunction Call Subsystemからからからから コード生成
コード生成 コード生成 コード生成
Step5
5
5:コンフィギュレーション
5
:コンフィギュレーション
:コンフィギュレーション
:コンフィギュレーション
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
階
層
化
階
層
化
階
層
化
階
層
化
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
コ
ン
ポ
ー
ネ
ン
ト
化化化化
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
イ
ン
タ
ー
フ
ェ
ー
ス
実
行
実
行
実
行
実
行
のののの
制
御
制
御
制
御
制
御
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コ
ン
フ
ィ
ギ
ュ
レ
ー
シ
ョ
ン
コード
コード
コード
コード生成用のコンフィギュレーション
生成用のコンフィギュレーション
生成用のコンフィギュレーション
生成用のコンフィギュレーション
コード
コード
コード
コード生成
生成
生成
生成アドバイザーで設定をチェックしよう
アドバイザーで設定をチェックしよう
アドバイザーで設定をチェックしよう
アドバイザーで設定をチェックしよう
①通常ert.tlcに設定 ④設定が組み込みコード生成に 向いているか一括チェック ③目的の設定 ②コード生成 アドバイザー起動Simulink コンフィギュレーションセット
コンフィギュレーションセット
コンフィギュレーションセット
コンフィギュレーションセット
目的
目的
目的
目的にあった
にあった
にあった
にあったコンフィギュレーションを選択しデータで管理しよう
コンフィギュレーションを選択しデータで管理しよう
コンフィギュレーションを選択しデータで管理しよう
コンフィギュレーションを選択しデータで管理しよう
Simulink.ConfigSet
シミュレーション用
シミュレーション用
シミュレーション用
シミュレーション用
の設定
の設定
の設定
の設定
(連続系)
(連続系)
(連続系)
(連続系)
コード
コード
コード
コード生成用
生成用
生成用
生成用
の設定
の設定
の設定
の設定
(離散系)
(離散系)
(離散系)
(離散系)
データディクショナリ
データディクショナリ
データディクショナリ
データディクショナリにコンフィギュレーションを定義
にコンフィギュレーションを定義
にコンフィギュレーションを定義
にコンフィギュレーションを定義
参照コンフィギュレーションで参照モデルへ伝播しよう
参照コンフィギュレーションで参照モデルへ伝播しよう
参照コンフィギュレーションで参照モデルへ伝播しよう
参照コンフィギュレーションで参照モデルへ伝播しよう
①参照コンフィギュレーションに設定 ④一括で伝播 ③伝播をクリック ②参照モデルへ伝播モデルアーキテクチャのまとめ
モデルアーキテクチャのまとめ
モデルアーキテクチャのまとめ
モデルアーキテクチャのまとめ
モデリング
モデリング
モデリング
モデリングする
する
する際の重要
する
際の重要
際の重要な開発
際の重要
な開発
な開発
な開発タスクです!
タスクです!
タスクです!
タスクです!
Step1
1
1:階層化
1
階層化
階層化
階層化
構造の指針を明確にする構造の指針を明確にする構造の指針を明確にする構造の指針を明確にするStep2:コンポーネント化
2:コンポーネント化
2:コンポーネント化
2:コンポーネント化
流用、派生に強い部品にする流用、派生に強い部品にする流用、派生に強い部品にする流用、派生に強い部品にするStep3:インターフェース
3:インターフェース
3:インターフェース
3:インターフェース
モデルとデータの影響度を低くするモデルとデータの影響度を低くするモデルとデータの影響度を低くするモデルとデータの影響度を低くするStep4:実行の制御
4:実行の制御
4:実行の制御
4:実行の制御
処理の処理のタイミング処理の処理のタイミングタイミングタイミングを明確するを明確するを明確するを明確するStep5
5
5:コンフィギュレーション
5
:コンフィギュレーション
:コンフィギュレーション
:コンフィギュレーション
コード生成コード生成用コード生成コード生成用用の設定を統一する用の設定を統一するの設定を統一するの設定を統一するアジェンダ
アジェンダ
アジェンダ
アジェンダ
1.
はじめに
はじめに
はじめに
はじめに
2.
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
モデルアーキテクチャ
3.
(例)ドアロック制
(例)ドアロック制御システム開発
(例)ドアロック制
(例)ドアロック制
御システム開発
御システム開発
御システム開発
4.
モデルベースデザイン環境構築
モデルベースデザイン環境構築
モデルベースデザイン環境構築
モデルベースデザイン環境構築
5.
まとめ
まとめ
まとめ
まとめ
(例)ドアロック制御システム開発
(例)ドアロック制御システム開発
(例)ドアロック制御システム開発
(例)ドアロック制御システム開発
250 CAN messages with 2500 individual signalsドアロック制御要求
ドアロック制御要求
ドアロック制御要求
ドアロック制御要求
車両走行時に自動ロックする車両走行時に自動ロックする車両走行時に自動ロックする車両走行時に自動ロックする 緊急時に自動ロック解除する緊急時に自動ロック解除する緊急時に自動ロック解除する緊急時に自動ロック解除するドアロック制御システムの構成
ドアロック制御システムの構成
ドアロック制御システムの構成
ドアロック制御システムの構成
ドアロック位置情報 ドアロック位置情報 ドアロック位置情報 ドアロック位置情報 s1 s2 s3 車速情報 車速情報車速情報 車速情報 エンジン情報 エンジン情報 エンジン情報 エンジン情報 エアバック情報 エアバック情報 エアバック情報 エアバック情報 ドアロック ドアロック ドアロック ドアロックドアロック
ドアロック
ドアロック
ドアロック機能
機能
機能
機能
車両情報とドアロック位置情報により 車両情報とドアロック位置情報により車両情報とドアロック位置情報により 車両情報とドアロック位置情報により走行中と判断した場合走行中と判断した場合走行中と判断した場合走行中と判断した場合はははは 自動ロック 自動ロック自動ロック 自動ロックする。する。する。する。停車中と判断した場合停車中と判断した場合停車中と判断した場合停車中と判断した場合はははは自動アンロック自動アンロック自動アンロック自動アンロックする。する。する。する。診断
診断
診断
診断機能
機能
機能
機能
車両情報とドアロック位置情報により、 車両情報とドアロック位置情報により、 車両情報とドアロック位置情報により、 車両情報とドアロック位置情報により、緊急時と判断した場合緊急時と判断した場合緊急時と判断した場合緊急時と判断した場合はははは 自動アンロック 自動アンロック 自動アンロック 自動アンロックする。する。する。する。 制御 制御制御 制御 指令値 指令値 指令値 指令値システム システム システム システムアーキテクチャアーキテクチャアーキテクチャアーキテクチャ ソフトアーキテクチャ ソフトアーキテクチャ ソフトアーキテクチャ ソフトアーキテクチャ Special Device Drivers Input Drivers Output Drivers Comm Drivers
Application
Door Lock Component Diagnosis Component Scheduler/Operating Systemアーキテクチャへのマッピング
アーキテクチャへのマッピング
アーキテクチャへのマッピング
アーキテクチャへのマッピング
段階的に詳細化する
段階的に詳細化する
段階的に詳細化する
段階的に詳細化する
コード生成対象モデル コード生成対象モデル コード生成対象モデル コード生成対象モデルドアロック制御
ドアロック制御
ドアロック制御
モデルアーキテクチャを導入したコントローラモデル
モデルアーキテクチャを導入したコントローラモデル
モデルアーキテクチャを導入したコントローラモデル
モデルアーキテクチャを導入したコントローラモデル
インターフェース インターフェース インターフェース インターフェース 実行の実行実行実行の制御のの制御制御制御 コンポーネント化コンポーネント化コンポーネント化コンポーネント化 インターフェースインターフェースインターフェースインターフェースコード実装を想定したモデリングをシステム開発段階から
コード実装を想定したモデリングをシステム開発段階から
コード実装を想定したモデリングをシステム開発段階から
コード実装を想定したモデリングをシステム開発段階から検討
検討
検討
検討
制
制
制
制御モデル階層:
御モデル階層:
御モデル階層:Type A(トップ層、トリガ層)
御モデル階層:
(トップ層、トリガ層)
(トップ層、トリガ層)
(トップ層、トリガ層)
ト ッ プ ト ッ プ ト ッ プ ト ッ プ 層層層層 ト リ ガ ト リ ガ ト リ ガ ト リ ガ 層層層層 スケジューラ タスクサブシステム 入出力はデータストアメモリ (グローバル変数) 初期化 (t=0のみ) ロック制御 (2ms) 診断制御 (4ms)ス ト ラ ク チ ャ ス ト ラ ク チ ャ ス ト ラ ク チ ャ ス ト ラ ク チ ャ 層層層層
制
制
制
制御モデル階層:
御モデル階層:
御モデル階層:
御モデル階層:Type A(ストラクチャ層、データフロー層)
(ストラクチャ層、データフロー層)
(ストラクチャ層、データフロー層)
(ストラクチャ層、データフロー層)
入出力はデータストアメモリ (グローバル変数) モデル参照 デ ー タ フ ロ ー デ ー タ フ ロ ー デ ー タ フ ロ ー デ ー タ フ ロ ー モ デ ル モ デ ル モ デ ル モ デ ル 参 照 参 照 参 照 参 照 ス ト ラ ク チ ャ ス ト ラ ク チ ャ ス ト ラ ク チ ャ ス ト ラ ク チ ャ 層層層層 診断モード制御 データ判定 処理ロジックドアロック制
ドアロック制
ドアロック制
ドアロック制御システム例題のまとめ
御システム例題のまとめ
御システム例題のまとめ
御システム例題のまとめ
コード実装を想定したモデリングルールを整備しよう
コード実装を想定したモデリングルールを整備しよう
コード実装を想定したモデリングルールを整備しよう
コード実装を想定したモデリングルールを整備しよう
共通ルールによるモデリングの品質向上
仕様摺合せの前倒しによる手戻り削減
実装制約のフィードバックによる開発の効率化
システム開発段階からコード実装
システム開発段階からコード実装
システム開発段階からコード実装
システム開発段階からコード実装を想定
を想定
を想定
を想定し
し
し
し
モデリングすることのメリット
モデリングすることのメリット
モデリングすることのメリット
モデリングすることのメリット
その他の階層化例
その他の階層化例
その他の階層化例
その他の階層化例
AUTOSARのソフトウェアレイヤーと高い親和性
のソフトウェアレイヤーと高い親和性
のソフトウェアレイヤーと高い親和性
のソフトウェアレイヤーと高い親和性
Com-plex Drivers MicrocontrollerMicrocontroller Abstraction Layer Services Layer
Application Layer
Runtime Environment(((RTE)(
ECU Abstraction Layer
A p p li c a ti o n S W C o m p o n e n ts B a s ic S o ft w a re E C U R e s o u rc e s
Simulinkモデル
モデル
モデル
モデル⇒
⇒
⇒
⇒
コード生成
コード生成
コード生成
コード生成
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 Kit 1)via AUTOSAR PSP