• 検索結果がありません。

2011

12

7

ハンドコードとの統合

既存の C ソースを Simulink に組み込むには?

• 自力で S-function を作って、 tlc ファイルをカスタマイズす るのは大変です。

• legacy_code() 関数がお勧めです。

– 2007 年にリリースされた、 MATLAB の標準機 能です。

御存知ですか?

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

73

legacy_code ( ( ( ( LCT ) ) ) )

• テンプレートにしたがって必要な項目を入力すれば、既 存の C ソースを S-function ブロックとして作成することが できます。

コマンドを書いて 実行すれば、

S-function

ブロックが作られる。

2011

12

7

legacy_code ( ( ( ( LCT ) ) ) )

• legacy_code() 関数を使って作成 したブロックは、シミュ レーションも実行でき、コード生成 もできます。

• S-function に対する詳しい知識が無くてもブロックを作 る事ができます。

ヘルプ参照先

http://www.mathworks.co.jp/help/toolbox/simulink/slref /legacy_code.html

MATLAB

コマンドラインに切り取って実行する)

web('C:/Program

Files/MATLAB/R2011b/toolbox/rtw/rtwdemos/html/ja/rtwde

mo_lct_filter_script.html', '-helpbrowser')

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

75

ハンドコードの活用

ハンドコードを活用する

S-function

ブロックを作った。

作ってモデル設計者に提供しただけでは、だめ。

• S-function

は通常のブロックと異なり、入力の型毎に沢山あり、

機能モデルエンジニアは当然、実装モデルエンジニアも使いこな すのは大変。

*****

コード生成ブロックと 入れ替える。

*****

***** *****

***** *****

***** *****

作っただけでは、使われない!

2011

12

7

自動コード専用ブロックの専用置換ツール

• 手作業でブロックを置き換えると、大変な工数が必要と なります。

• 専用の自動置き換えプログラムを作り、

「ボタン ボタン ボタン ボタンを を を押 を 押 押すだけ 押 すだけ すだけ」 すだけ 」 」 」で自動置き換えできる環境を用意 する。これが、工数削減のコツ。

ブロックと共に、

専用の自動置き換えツールを配布する

自動置換

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

77

ブロックライブラリの提供

例:タイマー

ブロックライブラリの提供は、

仕様意図が一目でわかる絵を表示。

場合によっては、設定用の専用

GUI

と 共に提供する。

2011

12

7

関数ブロック作成

GUI

数式を入力し、

数式が表示されたブロックを 自動的に作成する

GUI

を使って、

カスタムブロックを 自動生成する

こういった開発環境を改善するのが

MBD

開発環境エンジニアの仕事 工数削減+可視化の向上の

W

メリットメリットメリットメリット

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

79

改善用のツールはどうやって作るのか?

Simulink API を を使 を を 使 使 使います います います。 います 。 。 。

API 【 【 【 【 Application Program Interface 】 】 】 】

• Simulink API とは

MATLAB のコマンド操作にて、 Simulink の外部から

Simulink モデルを操作する事が可能なインターフェース

関数

Simulink

のヘルプに記載されています。

2011

12

7

Simulink API

知ってますか?

MATLAB のコマンドラインから

>>Simulink

>> open_system(' モデル名 .mdl') これも Simulink API です。

コマンドラインから Simulink のモデルを操作する インターフェースの関数です。

* legacy_code() は、 Simulink/ モデル構築系 API

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

81

簡単な

SimulinkAPI

活用例

要望: Constant ブロックの概要を表示したい。

• 人が実施すると、マウスをダブルクリックして、ブロック 注釈に、 " 概要 " を表示するように選択する。

• モデル内に数十個ブロックがあった場合、作業は一瞬 では終わりません。

特に最新バージョンは ウインドウの起動が遅い

ブロック注釈の追加

2011

12

7

MATLAB

コマンドラインに切り取って実行する)

modelH=get_param(bdroot,'Handle');

CblockH=find_system(modelH,'LookUnderMasks','all','type','block');

for n1=1:length(CblockH)

set_param(CblockH(n1),'AttributesFormatString','%<Description>');

ブロック注釈の自動追加

• Simulink API を使う場合、

わずか数行のプログラムを書いて、

実行すれば、

数秒で作業が終了する。

Simulink API は非常に便利

WEB

掲載予定

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

83

制御仕様書として見る場合は、仕様意図を読み取るのが主な目的 仕様意図が解る記述部分だけを表示する。(概要部分だけ)

実装用のモデルとして、チェックを行う場合は、実装に必要となる 情報を全て表示する必要がある。

ダブルクリックで

GUI

を開いて確認していては工数がかかる。

ブロックの説明を行うブロック注釈は、

プロセスの中で、表示の切り替えが必要

ブロック注釈の切り替え

関係ない表示が沢山あると 理解しにくい

必要な情報は全て 表示したい

相反する ニーズ

2011

12

7

ブロック注釈の切り替え

• プロセスの途中で、注釈の切り替えが必要

機能モデルのレビュー

実装モデルのレビュー

上記の2種類は、議論する内容が大きく異なり、

必要とする情報量が異なる。

ブロック注釈の表示は、プロセスによって切り替えが必要である。

ボタンを押すだけで切り替え可能な

環境を提供する。

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

85

概要の追加と日本語⇒英語

GUI

の提供

変換に使用するリスト

ブロックの概要はいつ書くのか?

Simulink

モデルを作る最初の段階で、サブシステム名を 日本語で書き込んで作っておきます。

そして、プロセスの途中で英語に置き換える。

という全体プロセスを考えます。

変換時に日本語を、ブロック概要に転記すれば良い。

2011

12

7

概要の追加と日本語⇔英語 変換

英語英語 英語英語 日本語日本語

日本語日本語

変換変換変換

変換リストリストリストリスト

機能を作りこむとき コード生成するとき

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

87

実際の

API

活用例

ガイドライン準拠

ガイドラインチェッカー

チェッカーのカスタマイズとは

2011

12

7

実際のモデル

• ブロックサイズはめちゃくちゃ

• アノテーションの表示はない

• 作ったサブシステムの名前が全て「 Subsystem? 」

ルール違反は、どうやって調べますか?

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

89

ルールのチェックは、モデルアドバイザー

ルールチェックは、純正ツール

モデルアドバイザーを使えます。

2011

12

7

ルール例:

MAAB

ルールのチェック項目

R2011b では、 MAAB ルールの

殆どがチェック可能となっている。

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

91

db_0042:Inport

ブロックの使用方法

NG OK Simulink

標準機能

モデルアドバイザーによる

MAAB

ルールチェック

標準ツールは、チェックが自動化できる。

ここまでは、

Simulink API

は必要ない。

自動チェック可能

2011

12

7

モデルアドバイザーのカスタマイズ

自動修正可能な場合は、

修正ボタンが表示される

カスタムルールは、

チェックだけでなく「「「「自動修正自動修正自動修正自動修正」」」」を追加できる

モデルアドバイザーは、

自作した専用カスタムルールを追加できる。

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

93

モデルアドバイザーのカスタマイズ

NG

OK

自動修正によって、単純作業は激減する。

チェッカーは、カスタマイズが必要です。

ボタンを押すだけで、自動修正

2011

12

7

ツールは自社用にカスタマイズ

• マスワークスは共通の基板部分だけを提供している。

• 各社ごとにプロセスの違い・考え方の違いで、ニーズが 異なる要求は、各社でカスタムツールを作り対応する。

そのための環境も合わせて提供するのが

「マスワークスの基本理念」。

• モデルアドバイザー

自動修正を必要とする場合

修正方法は自社専用のルールになるケースが多い

• Simulink Design Verifier

ブロックを置き換えるルールは各社で作る。

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

95

Simulink Design Verifier

(形式手法)

検査したい場所の考え方は 各社異なる。

Simulink Design Verifier は、

通常の仕組みの中に、ブロック置換用 の関数を呼び出す部分が用意

されている。

カスタマイズが前提!

2011

12

7

Simulink

でモデルを作るだけが

MBD

ではない

• Simulink でモデルを作成して、本当にメリットがあるの か?

• MBD は、開発環境構築まで含めて、 MBD

従来開発 制御設計 ソフトウェア 設計

試作

モデル設計 モデル設計

号口

開発環境を改善するツールの

併用により品質向上と、工数低減を 実現する。

キーワードは

「改善」

Simulink API

を使えば、効率アップ・自動化が可能です

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

97

MBD

エンジニアの仕事術まとめ

• 自動化はプロセスに依存する。

• 自動化は各社の規約に依存する。

プロセス全体を見て、ニーズにあったツールをニーズの あるプロセスに提供する。

次のプロセスにつなげる

次のプロセスでも活用する

• 例

カスタムブロックを作って提供するだけではだめ。

見栄えの向上、工数削減ができるツールと一緒に提供する

ブロック注釈の自動表示

何処のプロセスで、注釈として表示すべき物を記述させるのか 工程全体で、無駄のないように仕組みを考える。

プロセス全体の効率化

2011

12

7

最後に

2011

12

7

AISIN AW CO., LTD. All rights reserv ed. Do not reproduce or distribute.

スライド番号

99

開発環境改善活動を実施しよう

• MBD

成功は、開発環境の改善です。

開発環境を改善する専門チームを作る事をお勧めします。

ツール開発初期:

技術レベルの高い会社に協力してもらいましょう。

例えば、

マスワークス マスワークスマスワークス マスワークス

その他 (パートナーシッププログラムを参考にしてください)

http://www.mathworks.co.jp/products/connections/serv_task _matl_index_ja_JP.html

その後、自社の専門チームでレベルアップしましょう。

関連したドキュメント