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

目次 MBD エンジニアのキャリア種別 モデリング編 要求表現 タイミングチャート 状態遷移図 状態遷移図の描き方 書き方のルール 教育方法 MBD 開発環境エンジニア編 MBD 開発環境の 改善 最後に スライド番号 2

N/A
N/A
Protected

Academic year: 2021

シェア "目次 MBD エンジニアのキャリア種別 モデリング編 要求表現 タイミングチャート 状態遷移図 状態遷移図の描き方 書き方のルール 教育方法 MBD 開発環境エンジニア編 MBD 開発環境の 改善 最後に スライド番号 2"

Copied!
102
0
0

読み込み中.... (全文を見る)

全文

(1)

2011

12

7

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

スライド番号

1

MBD

エンジニアの仕事術

アイシン・エィ・ダブリュ株式会社

技術本部 解析技術部

(2)

2011

12

7

目次

• MBD

エンジニアのキャリア種別

モデリング編

要求表現

タイミングチャート

状態遷移図

状態遷移図の描き方

書き方のルール

教育方法

• MBD

開発環境エンジニア編

– MBD

開発環境の「改善」

最後に

(3)

2011

12

7

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

スライド番号

3

アイシン・エィ・ダブリュ株式会社

基本情報

444-1192

愛知県安城市藤井町高根

10

番地

0566-73-1111

(代表)

本社所在地

連結

19,545

(2011

3

31

日現在)

単独

12,903

(2011

3

31

日現在)

従業員数

オートマチックトランスミッション、

ハイブリッドシステム、

カーナビゲーションシステム

主要製品

連結

8,545

億円

(2011

3

月期

)

単独

7,927

億円

(2011

3

月期

)

売上高

取締役社長 石川 勉

代表者

264

8,000

万円

資本金

1969

5

15

設立

アイシン・エィ・ダブリュ株式会社

社名

アイシン・エィ・ダブリュ

「本館」

(4)

2011

12

7

アイシン・エィ・ダブリュ 駆動系製品

FR

多段

FR

多段:

4

8

速ラインナップ

8速

A/T

:トヨタ自動車

(5)

2011

12

7

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

スライド番号

5

アイシン・エィ・ダブリュ 駆動系製品

FF

多段

FF

多段:

4

速~

6

速をラインナップ

6速

A/T

:ボルボ、オペル、

サーブ、ランドローバー、

プジョー、フォルクスワーゲン等

(6)

2011

12

7

アイシン・エィ・ダブリュ 駆動系製品

FR

ハイブリッドシステム

トヨタ自動車

FF CVT:

トヨタ自動車、マツダ等

FR

FF

がラインナップ

(7)

2011

12

7

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

スライド番号

7

カーナビゲーション

カーナビゲーションシステムは、

トヨタ自動車への純正カーナビが中心

その他

アウディ純正日本向け

• GM

純正北米向け

イクリプス市販日本向け

(8)

2011

12

7

NAVIelite

(9)

2011

12

7

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

スライド番号

9

自己紹介

経歴

• 1994

年 アイシン・エィ・ダブリュへ入社

FF5

A/T

の制御開発を担当

• 2002

MBD:HILS

装置の開発を担当

MATLAB/Simulink

を本格的に使い始める

• 2009

IPA

から

SEC

ジャーナル最優秀論文書受賞

近年は、

MBD

の教育を含め、

MBD

開発環境改善活動に従事

氏名:久保孝行

(10)

2011

12

7

自己紹介

(11)

2011

12

7

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

スライド番号

11

自己紹介

統合系プロジェクト

2010

年度、

2011

年度

モデルベース開発系の委員として活動

(12)

2011

12

7

Car Testing and Car Designing Japan 2012

2012

2

7,8,9

日開催

http://cartesting2012.jp/

(13)

2011

12

7

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

スライド番号

13

目次

• MBD

エンジニアのキャリア種別

モデリング編

要求表現

タイミングチャート

状態遷移図

状態遷移図の描き方

書き方のルール

教育方法

• MBD

開発環境エンジニア編

– MBD

開発環境の「改善」

(14)

2011

12

7

MBDと

V

プロセスの関係

HILS

制御装置

モデル

設計

設計

設計

設計

検証

検証

検証

検証

MILS

RCP

Code

制御

装置

モデル

制御対象モデル

実制御対象

実ECU

結合

機能保障

結合

機能保障

ハード

アクチュエータ

センサ

ハード

制御ソフト

Virtual World

Virtual World

Virtual World

Virtual World

Real World

Real World

Real World

Real World

ハート

ハート

ハート

ハード゙゙゙機能要求仕様書

機能要求仕様書

機能要求仕様書

機能要求仕様書

制御機能要求仕様書

制御機能要求仕様書

制御機能要求仕様書

制御機能要求仕様書

実車評価

MILS

HILS

RCP

ACG

実車評価

制御対象

制御対象

モデル

モデル

(15)

2011

12

7

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

スライド番号

15

アイシン

AW

版:

MBD

プロセス詳細

設計

設計

設計

設計

検証

検証

検証

検証

C

ソース

Model-Based Design

Model-Based

verification

適合

適合

適合

適合

制御対象

モデル設計

生成コードの

評価

モデルの

評価

要求検証

要求検証

要求検証

要求検証

制御対象モデル

機能モデル

テストモデル

実装モデル

要件

実装

設計

モデル

解析

Automatic

C-code generation

テスト

設計

一致性

検証

PILS

機能評価

機能評価

機能評価

機能評価

結合検査

結合検査

結合検査

結合検査

単体検査

単体検査

単体検査

単体検査

実機評価

実機評価

実機評価

実機評価

HILS

C

コード

静的解析

validation

MILS

要求分析

要求分析

要求分析

要求分析

RCP

制御

設計

機能評価

機能評価

機能評価

機能評価

verification

2

工程に分かれる

MBD

開発環境エンジニア

(16)

2011

12

7

アイシン

AW

MBD

エンジニア定義

• MBD

エンジニアとは、モデルベース開発に携わる

エンジニアのことである。

特徴

キャリア種別

制御対象(プラント)をモデリングする

エンジニアです。

プラントモデルエンジニア

Simulink

モデルを使った開発環境を改善する。

ツール作成や、ガイドラインの制定も行う。

MBD

開発環境エンジニア

ソフトウェアに関する高度なスキルと共に、

Simulink

からどの様なコードが出力されるの

か正しい知識を持ち、仕組みを知った上で

モデリングができる

Simulink

に対する高度なス

キルが必要。

実装モデルエンジニア

(制御モデル後半)

制御機能が実現されたモデルを作成する。

自動車、

A/T

などのドメインの知識と、制御に

対して高度なスキルを必要とする。

機能モデルエンジニア

(制御モデル前半)

(17)

2011

12

7

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

スライド番号

17

コントローラモデルの開発は

2

工程

分析

設計

検査

抽出

機能を作りこむスパイラル開発

最適な制御・機能を考える。

品質を作りこむスパイラル開発

仕様を変えず、バグ0を目指す

機能モデルを開発する工程

実装モデルを開発する工程

抽出

分析

設計

検査

目的:機能を増やす。

目的:品質を良くする。

矢印は外に

向かって

大きくなる。

矢印は

中心(ゴール)

向かっ行く。

(18)

2011

12

7

エンジニアのスキルの配分イメージ

機能モデル設計エンジニア

実装モデル設計エンジニア

ドメイン

Simulink

Simulink

ドメイン

ドメインの知識が重要

見栄えを良くするよりも、新たな機能開発を

重視する。

全体を見渡し、本当に必要な手段を

新たな発想を持って、開発できる事が重要

品質を確保する為に、

非常に高度なモデルスキルと

ソフトウェアスキルが必要である。

機能を増やすよりも品質を上げる

事に主眼を置ける人材が必要である。

ソフトウェア技術

求められるスキルよりは、性格の方が重要であると考えている。

(19)

2011

12

7

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

スライド番号

19

(20)

2011

12

7

目次

• MBD

エンジニアのキャリア種別

モデリング編

要求表現

タイミングチャート

状態遷移図

状態遷移図の描き方

書き方のルール

教育方法

• MBD

開発環境エンジニア編

– MBD

開発環境の「改善」

(21)

2011

12

7

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

スライド番号

21

要求理解:シナリオ作成へ

最初に、要求を理解し、要求を明確化します。

次に、制御モデルの設計が始まります。

まずは、要求を理解する。

それには、

シナリオを作る事

が効果的

シナリオを作るとは?

頭の中で仮想シミュレーションし、

やりたいことを実現すると、どの様になるのかを表現する。

その表現は、自然言語だけでなく、図や表を用いると良い。

(22)

2011

12

7

シナリオ作成と

UML

の関係

図を描く目的

要求を理解する。

理解した結果を示す。

ソフトウェアを作成するのに必要

だから、図・表を描く

抽出

分析

検査

要求段階では、

設計・分析で色々な図や表を使って

スパイラル的に工程が繰り返えされる

シナリオ表現の図とは? ⇒

UML

なのか?

UML

の図は、要求を理解し、ソフトウェアを作成するために必要な図として定義された。

図を書けば要求を理解できるのではない。

(23)

2011

12

7

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

スライド番号

23

シナリオ作成と

UML

の関係

決められた図・表を描けば、要求が理解でき、

ソフトウェアが作れる。

ケースバイケースで、要求を理解するために、

必要な図や表を使えば良い。

要求理解の為に

シナリオを作成する

それに、必要な図を使う。

必要な図は開発対象、

開発プロセスによって

異なる。

(24)

2011

12

7

シナリオ作成に有効な図は?

「時間変化によって、

出力値が変わる制御開発に適した図は?」

「タイミングチャート」

が最も活用しやすい。

シナリオ=ユースケース毎の

タイミングチャート

タイミングチャートを使って表したシナリオは、

テスト工程でも活用できる。

タイミングチャートは、入力に対する、あるべき振る舞いを定義する

(25)

2011

12

7

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

スライド番号

25

自動販売機を例題にする

入力:お金の種類:

50

円、

100

入力:ボタンの種類:

150

円ジュース購入ボタン、

200

ジュース購入ボタン

動作:お金を入れて、金額が満たされた状態で購入ボタ

ンを押すと、ジュースが購入できる。

(26)

2011

12

7

自動販売機の状態遷移例

まずは、どの様な流れになるのかシナリオを作る。

ユースケースを検討する。

150

円のジュース購入例

(合計

200

円投入:

50

円のおつり出力)

1. 50

円+

50

円+

50

円+

50

⇒ ジュース1購入

2. 50

円+

50

円+

100

⇒ ジュース1購入

まずは、ユースケース1について

タイミングチャートを描いてみよう。

(27)

2011

12

7

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

スライド番号

27

タイミングチャート例

50

100

150

円ジュース

200

円ジュース

150

円ジュース

50

ジュース出力

おつり

ユースケース1

時間

(28)

2011

12

7

シナリオ作成例:タイミングチャート

タイミングチャートの作成には、信号のレイヤに対して4

つの考え方が必要。

1次入力信号

想定するシステムへの直接の入力信号

2次入力信号あるいは中間信号

1次入力信号を用いて、作られた信号

出力信号を得るために、必要不可欠な中間信号

出力信号

想定するシステムの出力値

他への影響

システムの出力によって、他のモジュールが受ける影響

画面の枠を分けても良いし、混ぜて書いても良い。

観点として4つある事を意識する。

(29)

2011

12

7

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

スライド番号

29

タイミングチャート例

50

100

150

円ジュース

200

円ジュース

150

円ジュース

50

ジュース出力

おつり

総額

ユースケース1

時間

(30)

2011

12

7

タイミングチャート以外のシナリオ表現

状態遷移を使ったシナリオ作成例

(31)

2011

12

7

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

スライド番号

31

お金の組み合わせは、非常に多いので、タイミング

チャートでは数が多くなりすぎる。

状態遷移図を使うことで、複数のユースケースをまとめ

て表現できる。

状態遷移図を使ったシナリオ表現例

[50円]

[50円]

[50円]

意味

合計50円

意味

合計100円

意味

合計150円

意味

合計200円

[100円]

[ジュース1購入]

/ジュース1出力

返金50円

ユースケース1、ユースケース2を表現

ユースケース1

ユースケース2

[50円]

(32)

2011

12

7

ミーリーマシンを用いた状態遷移図の例

[50円]

[50円]

[50円]

意味

合計50円

意味

合計100円

[ジュース1購入]

意味

合計150円

/ジュース1出力

意味

合計200円

[100円]

[ジュース1購入]

[ジュース2購入]

/ジュース1出力

返金50円

/ジュース2出力

[100円]

[100円]

200

円投入までの全てのユースケースを

表現した状態遷移図

[50円]

(33)

2011

12

7

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

スライド番号

33

シナリオ表現としての状態遷移図

ユースケースが多すぎるものは、状態遷移図を使うこと

で、複数のユースケースをまとめた「シナリオ」を表現で

きます。これによって、全体の振る舞いが解り、仕様を

明確にする事ができる。

[50円]

[50円]

[50円]

意味

合計50円

意味

合計100円

[ジュース1購入]

意味

合計150円

/ジュース1出力

意味

合計200円

[100円]

[ジュース1購入]

[ジュース2購入]

/ジュース1出力

返金50円

/ジュース2出力

[100円]

[100円]

[50円]

質問:この状態遷移図は完成している。

だからコード生成しても良い。

(34)

2011

12

7

シナリオ表現としての状態遷移図

ユースケースが多すぎるものは、状態遷移図を使うこと

で、複数のユースケースをまとめた「シナリオ」を表現で

きます。これによって、全体の振る舞いが解り、仕様を

明確にする事ができる。

注意点

このような状態遷移図は、そのままソフトウェアとして

実装する事はできない。

もちろん形式手法によるチェックも意味がない。

理由は、この状態遷移図は、要求を理解するため描か

れた「シナリオ」だからです。

ここから、実装に必要な情報を抜き出す為の、「分析」

が必要である。

(35)

2011

12

7

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

スライド番号

35

状態遷移図の分析観点:

状態変数

状態変数には、記憶と状態の二つが混在していること

に気をつけるべきである。

記憶(無限個)

状態(有限個)

記憶:無限個

中身の量

(

××

ml)

中身の温度(℃)

発熱量(カロリー)

状態:有限個

空・満水

沸騰前・沸騰中・沸騰後

(36)

2011

12

7

状態遷移図の表現:記憶の例

状態遷移図(ミーリーチャート)はフリップフロップ(論理演算)の

振る舞い説明の為に作られたが、あくまで振る舞いを説明する

ためのものであり、コード生成を意識した表現方法ではない。

保持

0

0

0

1

(リセット)

0

1

0

1

0

(不定)

1

1

Q

R

S

出力

入力

(1,0)

(x,1)

Q1/0

Q2/1

ムーアーチャート

/0

(1,0)/1

(x,1)/0

Q1

Q2

(x,1)/0

(0,0)/0

(0,0)/1

Q=(!R)&&(S||Q)

真理値表や、論理演算

振る舞いを説明

変換

変換の方向に注意

(37)

2011

12

7

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

スライド番号

37

状態遷移図からコード生成

フリップフロップ回路の振る舞いを書いて、

最適化された論理演算が出力されるか?

コード生成する状態遷移図は、

記憶と状態を区別した物を対象とする。

Q=(!R)&&(S||Q)

(1,0)

(x,1)

Q1/0

Q2/1

ムーアーチャート

/0

(1,0)/1

(x,1)/0

Q1

Q2

ミーリーチャート

(x,1)/0

(0,0)/0

(0,0)/1

変換

最適化されたコードは自動生成されない

記憶

(38)

2011

12

7

状態遷移図の整理例

記憶(無限個)

状態(有限個)

金額の組み合わせや、ジュースの種類は、有限個と考

えるかも知れない。

しかし、両方共に、数の設定を増減することができるの

で、無限と考えるべきである。

金額やジュースの種類は、「記憶」に分類される項目で

あり、状態として扱ってはいけない。

つまり、シナリオで用意した以外にも、お金の組み合わ

せや、ジュースの種類があると判断すべきである。

(39)

2011

12

7

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

スライド番号

39

状態遷移図の分析観点:

システム

お金の投入毎処理するのか?

「お金が投入された」は、不定期なイベント

連続投入された場合は、高速な応答性が要求される。

状態遷移図のような高度な制御を、高速起動させるべき

ではない。

対応方法

投入金額を高速計算する部分を外部に作る。

状態遷移は、定期的に外部へ総額を問い合わせるだけ

にする。

正しい状態遷移図は

正しい、システム設計の元で成立する。

(40)

2011

12

7

AUTOSAR

ソフトウェアプラットフォームの概念

XX制御 コンポーネント XX制御 コンポーネント

何をアプリケーションとして

何をシステム側とするのか

構造的な設計思想が必要。

高負荷・低速・定期的な処理

不定期あるいは、高速な処理

(41)

2011

12

7

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

スライド番号

41

自動販売機の動作例

状態遷移の分析観点、記憶と状態の区別・システムの考え方を

前提に、自動販売機の「状態」を検討する。

この例では、「動作の異なるポイント」を状態と考えると、

3

つに

切り分けができる。

初期状態(待機)、ボタン待ち(ボタンを光らせる)、ジュースの

取り出し(排出)。

待機

排出

金額のチェック

[50円]

[50円]

[50円]

意味

合計50円

意味

合計100円

[ジュース1購入]

意味

合計150円

/ジュース1出力

意味

合計200円

[100円]

[ジュース1購入]

[ジュース2購入]

/ジュース1出力

返金50円

/ジュース2出力

[100円]

[100円]

[50円]

ボタン待ち

(42)

2011

12

7

タイマ成立

遷移条件2

初期状態

遷移先

返金

条件アクション

初期化

初期状態

排出終了

ジュースの取り出し

排出

ボタンが押される

&&

金額が満たされる

お金のカウント

コイン投入

遷移条件

1

遷移先

条件アクション

遷移条件1

遷移先

条件アクション

条件アクション

遷移先

遷移条件

1

表で整理して、状態遷移図へ

表を使って情報を整理し、状態遷移図へ変換する

仕様検討で使う状態遷移表は、

シンプルな物を使うべき。

必要最低限の事を表に書き込み、整理する。

思考速度を落とさないシンプルさが重要。

検証用(

)の表と、設計用(

)の表は異なる。

初期状態

排出

[

コイン投入

]

[

ボタン

]

ボタン待ち

[

タイマー

]

購入可能な

ジュースのライトを

点灯させる

(43)

2011

12

7

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

スライド番号

43

制御機能の追加

状態遷移図に対するタイミングチャート

150

円ジュース

200

円ジュース

150

円ジュース

50

ジュース出力

おつり

総額

ユースケース1

時間

可能

不可

ジュース1購入可能

コイン投入

ジュースのライト

消灯

点滅

点灯

抽出

分析

設計

検査

要求が育っていくスパイラル

(44)

2011

12

7

内容

重要度

種別

お金は、少なくとも、

50

円と

100

円が

使える。

システム要件

ジュースは

2

種類以上

システム要件

購入可能金額より多く入れた場合

は、お釣りが返却される

必須要件

機能要求

お金を入れて何もしないと、一定時

間でお金が返却される

必須要件

機能要求

購入金額が満たされ、購入可能に

到達したことが購入者に解るように

する。

希望要件

機能要求

システム要件

ボタンを押してから、

5

秒以内に

ジュースが取り出し口に来ている

必須要件

非機能要求

要求の整理と分析

要求・要件の整理は忘れずに

(45)

2011

12

7

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

スライド番号

45

MBD

エンジニアの「仕事の流れ」

シナリオを作る

頭の中で仮想シミュレーション

適切な時期に

PC

上のシミュレーションへ

Simulink

でモデリング!

(46)

2011

12

7

要求からモデリング

実現したい機能とシナリオの両方を設計し、

シミュレーションによって検証する。

要求検証表現を行っておく

詳細は、要求開発プロセス

WG

発行のガイドラインを参考にしましょう。

(47)

2011

12

7

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

スライド番号

47

要求分析の仕事術

要求を理解するにはシナリオを作る。

シナリオは、タイミングチャートが使いやすい

タイミングチャートは

4

つの観点が必要

タイミングチャートは、検証にも使える。

状態遷移図もシナリオ表現に使える

状態遷移図は、記憶と状態の区別が必要

状態遷移図は、システムの分析が必要

要求分析工程では、必要な図、表を書く。

決められた図、表を書くことから始まる事はない!

自然言語だけでは伝わらない部分が多いので、

図・表は積極的に活用しよう。

(48)

2011

12

7

目次

• MBD

エンジニアのキャリア種別

モデリング編

要求表現

タイミングチャート

状態遷移図

状態遷移図の描き方

書き方のルール

教育方法

• MBD

開発環境エンジニア編

– MBD

開発環境の「改善」

(49)

2011

12

7

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

スライド番号

49

状態遷移の書き方

状態遷移図は、さまざま書き方ができる。

そのため、他者からの理解度が極端に悪い図もかけて

しまう。

(自分だけが満足してる図)

しかし、書き方を限定することで、他者からの理解度を

上げる事ができる。

アイシン

AW

では、書き方を2種類に限定した。

– A

型:ウォーターフォール型状態遷移図

– B

型:多状態・多遷移

A

型、

B

型の書き方についての説明を行う。

(50)

2011

12

7

状態遷移図の記述ルール制定について

アイシン・エィ・ダブリュでは、

1995

年から状態遷移表を

用いた制御開発を行ってきた。当時から拡張された

意味論を使用しており、現在の

Stateflow

と同等である。

状態の階層化、並列化が可能

イニシャライズと通常実行の区別

遷移条件と条件アクションが使用可能

自己遷移、インナートランジションが使用可能

タイマーによる強制遷移が標準ルール

残念ながら、書けるだけで、自動コード生成ができない。

Stateflow

表⇒図:状態遷移図の描き方は、

15

年間の状態遷移に

関する設計的な考え方を継承している。

(51)

2011

12

7

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

スライド番号

51

A

型:ウォーターフォール型状態遷移図

状態は上から下に流れるように、記述する。

下へ遷移する条件は

左側へ記述する。

遷移条件は真ん中より

上側へ記述する。

遷移線よりも左側に

記述したほうが

全体のバランスが良い。

状態の大きさには意味は持たせない。

状態の大きさが状態の優先度を示したり、

状態の重要度を示す事はない。

初期

初期、中期、終了の3つに分けて図を描く

中期は、初期遷移から流れる

系統毎に並列に並べる。

終了

上へ遷移する条件は

右側へ記述する。

遷移条件は真ん中より

下側へ記述する。

遷移線よりも右側に記述したほうが

全体のバランスが良い。

リセット

制御は、不安定から安定へ⇒ウォータフォール同様、上流に戻すのはリスクがある

(52)

2011

12

7

B

型:多状態・多遷移

hasChange(ST)

状態変数をチェック

状態変数と一致した

状態へ遷移する

A

B

C

D

E

[ST==A]

[ST

==

B]

[ST

==

C]

[ST

==

D]

[ST

==

E]

2.遷移条件が多い場合は、

パラレルチャート化し、外へ出す。

function f1

function f2

function f3

function f4

function f5

{function f1}

{function f2}

{function f3}

{function f4}

{function f5}

[in(A)]

i[n(B)]

[in(C)]

[in(D)]

[in(E)]

1.インナートランジションを活用し

遷移線をまとめる。

(53)

2011

12

7

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

スライド番号

53

A,B

混在型:状態遷移図の描き方

状態遷移図は、

A

型ウォーターフォール型を基本に

多遷移の

B

型を組み合わせる事で全ての表現が可能。

(54)

2011

12

7

具体的な事例説明

拡張階層構造化状態遷移表設計手法

Ver2.0

P54

から

状態遷移表

(STM)

から状態遷移図へ変換する

(55)

2011

12

7

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

スライド番号

55

B

型を使った状態遷移表現

MainS 2 S0 S1 ON S2 S3 S4 S5 S6 S7 S8 S9 subCartMainS 1 function fcn_ S2 function f cn_ S3 function f cn_ S4 function f cn_ S5 function f cn_ S6 function f cn_ S7 function f cn_ S8 [Button==E1] [Button==E0] [Button==E2] [Button==E3] [Button==E4] 1

[hasChanged ( enum_ MainS) ]

2 1[enum_MainS==S3] 2 [enum_MainS==S4] 1 2 [enum_MainS==S5] 1 2 [enum_MainS==S6] 1 2 [enum_MainS==S7] 1 2 [enum_MainS==S8] 2 1 [enum_MainS==S9] [in( MainS.S2)] {fcn_ S2( ) ;} 1 2 [in(MainS.S3)] {f cn_ S3() ;} 1 2 [in(MainS.S4)] {f cn_ S4() ;} 1 2 [in(MainS.S5)] {f cn_ S5() ;} 1 2 [in(MainS.S6)] {f cn_ S6() ;} 1 2 [in(MainS.S7)] {f cn_ S7() ;} 1 2 [in(MainS.S8)] {f cn_ S8() ;} 1 2

1

2

STM

どおりの遷移条件を記載する

遷移しない場合も記述は、

何もしない事を示すために

記述だけ残す。

B

型は、状態遷移表

(STM)

1

1

で全てのケースを表現できる。

表の段階で、最適化されていれば、それを

B

型でそのまま表現できる。

本当は、⇒

9

も同一に描けるが、

録音は、特殊操作として分けた

E5

E6

E7

E8

E9

E5

E6

E7

E8

3

7

8

(56)

2011

12

7

A

型で表現:インナートランジション活用

(57)

2011

12

7

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

スライド番号

57

A

型で表現:状態の考え方がおかしい部分

状態遷移表の指定どおりに

変換すると、状態定義が

おかしいところがある。

外部から、子の状態へ直接遷移する

遷移ができる場合は、

状態の考え方がおかしい

状態内部は独立性が必要!

(58)

2011

12

7

A

型で表現:親子依存関係の見直し

親から子への直接遷移を防止した場合

赤枠の中に状態が8個

独立性を保持した状態遷移

ただし、状態数が多く、

同じような制御内容の状態が

複数個あるのがわかる。

(59)

2011

12

7

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

スライド番号

59

A

型で表現:状態変数の分析

「再生」、「早送り」、「逆送り」は、

速度が異なるだけで、

同じ「速度制御という状態」と定義

赤枠の中は、状態が2個

速度制御:遅

速度制御:早

同じボタンが押された時に

異なる動作をする場合「状態」が存在する。

と考えると、殆どのボタンは、

記憶として整理できる。

(60)

2011

12

7

実際の教育方法について

状態遷移図は、分析、整理する事で、

A

型、

B

型によって

表現が可能である。

状態遷移図の描き方を限定しても、ルールの徹底には

教育しかない。

しかし、描き方を制限するような教育は教え方を誤ると、

受けいれてもらえず、効果がでてこない。

(61)

2011

12

7

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

スライド番号

61

実際の教育方法について

教育内容を肯定的に受け入れさせる点を注意しなけれ

ばならない。

自らが書いた状態遷移図を、強制的にフォーマットに

従った書き方に変更させると、最初に自分が書いた図

の方が理解度が高いと感じるので、反感を買い、教育

効果が薄まってしまう。

フォーマットへの変換方法を指導する場合、他人が書い

た状態遷移図を共通フォーマットへ変換する演習を行う

べきである。

(62)

2011

12

7

演習例

問題点:

横型になっている。

状態の中にある状態へ

他の親から子へ直接遷移している。

修正点:

縦型に修正。

Waitは使用していないので、

削除する。

この教育では、状態遷移図の制御内容に関して、

内容を正確に理解する部分には力を入れない。

形の修正を学ぶところに力を入れる。

形を修正してから、状態の流れを理解してもらう。

(63)

2011

12

7

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

スライド番号

63

B

型適応例

変更前

先ほどの状態遷移図をよく見ると、

同一条件で状態変化しているので、

B

型で描けば、最小化される。

全ての状態へ遷移線があり、

ディフォルト遷移の場所がおかしい

標準フォーマットの教育

他人の作った状態遷移図を

標準フォーマットに修正する演習を繰り返す

A

A

B

B

C

C

C

B

A

(64)

2011

12

7

仕事術:記憶と状態の区別

入力信号から直接追いかけて作った状態遷移は、

記憶を扱っており、シナリオを表現している場合が多い。

先ほどの事例では、入力信号に対する「ボタンの役割」

を状態として定義しています。

教育用の例題は、「記憶」でかつ「シナリオ」を表現して

いるものが多い。(ツール教育の為だから)

正しい状態定義:出力の違いから考えたものが、正しい

状態定義になる事が多い。

先ほどの事例では、モーター速度やモータ電流の違い、

画面表示、音声の

On,off

等から

状態を考えます。

(65)

2011

12

7

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

スライド番号

65

仕事術:状態遷移の使い方まとめ

シナリオ表現として使われている場合がある。

シナリオ表現は、そのままでは、仕様ではない、自動生成して

も、ソフトウェアとして実装することはできない。

そこから、分析・最適化が必要である。

分析・最適化

記憶と、状態の区別する。

システムの明確化を行う。

図は、決まったフォーマットに統一する事を心がける。

インナートランジションを活用し、遷移線をまとめる。

パラレルチャートを活用し、状態数を削減する。

(66)

2011

12

7

出力

on-off

だから状態ではない

ライトの点灯の制御で

on-off

の状態を作らない。

ライトは

PWM

duty

比と周波数

で指定できる。

単なる数値

状態ではありません。

ハードウェアの構成と合わせて、考えましょう。

初期状態

排出

[

コイン投入

]

[

ボタン

]

ボタン待ち

[

タイマー

]

購入可能な

ジュースのライトを

点灯させる

duty

意味

0%

消灯

点滅

点灯

100%

50%

(67)

2011

12

7

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

スライド番号

67

MBD

エンジニアの仕事術

モデリング編 終了

アイシン・エィ・ダブリュ(株)

久保孝行

MBD

エンジニアの仕事術

MBD

開発環境エンジニア編へ

(68)

2011

12

7

目次

• MBD

エンジニアのキャリア種別

モデリング編

要求表現

タイミングチャート

状態遷移図

状態遷移図の描き方

書き方のルール

教育方法

• MBD

開発環境エンジニア編

– MBD

開発環境の「改善」

(69)

2011

12

7

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

スライド番号

69

MBD

エンジニアの仕事術

(70)

2011

12

7

MBD

の現実

• MBD

を実践すると、意外に作業時間が多い。

更に自動コード生成すると

RAM

ROM

も多い!

• Simulink

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

か?

制御設計

ソフトウェア

設計

モデル設計

モデル設計

現実の開発工数

YES

と答えられますか?

(71)

2011

12

7

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

スライド番号

71

MBD

開発環境エンジニアは何をするのか?

先の問題定義に対して、「キー」となるのが

MBD

開発環境エンジニアの存在です。

Q:MBD

開発環境エンジニアは何をするのか?

A:MBD

の開発環境を改善するのが仕事です。

自動コード生成用のカスマイズ例

S-function

ブロックの作成・提供について

(72)

2011

12

7

ハンドコードとの統合

既存の

C

ソースを

Simulink

に組み込むには?

自力で

S-function

を作って、

tlc

ファイルをカスタマイズす

るのは大変です。

• legacy_code()

関数がお勧めです。

– 2007

年にリリースされた、

MATLAB

の標準機

能です。

御存知ですか?

(73)

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

ブロックが作られる。

(74)

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')

(75)

2011

12

7

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

スライド番号

75

ハンドコードの活用

ハンドコードを活用する

S-function

ブロックを作った。

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

だめ

• S-function

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

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

すのは大変。

*****

コード生成ブロックと

入れ替える。

*****

*****

*****

*****

*****

*****

*****

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

(76)

2011

12

7

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

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

なります。

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

「ボタン

ボタン

ボタンを

ボタン

を押

押すだけ

すだけ

すだけ」

すだけ

で自動置き換えできる環境を用意

する。

これが、工数削減のコツ。

ブロックと共に、

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

自動置換

(77)

2011

12

7

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

スライド番号

77

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

例:タイマー

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

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

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

GUI

共に提供する。

(78)

2011

12

7

関数ブロック作成

GUI

数式を入力し、

数式が表示されたブロックを

自動的に作成する

GUI

を使って、

カスタムブロックを

自動生成する

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

MBD

開発環境エンジニアの仕事

工数削減+可視化の向上の

W

メリット

メリット

メリット

メリット

(79)

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

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

関数

(80)

2011

12

7

Simulink API

知ってますか?

MATLAB

のコマンドラインから

>>Simulink

>> open_system('

モデル名

.mdl')

これも

Simulink API

です。

コマンドラインから

Simulink

のモデルを操作する

インターフェースの関数です。

(81)

2011

12

7

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

スライド番号

81

簡単な

SimulinkAPI

活用例

要望:

Constant

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

人が実施すると、マウスをダブルクリックして、ブロック

注釈に、

"

概要

"

を表示するように選択する。

モデル内に数十個ブロックがあった場合、作業は一瞬

では終わりません。

特に最新バージョンは

ウインドウの起動が遅い

ブロック注釈の追加

(82)

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

掲載予定

(83)

2011

12

7

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

スライド番号

83

制御仕様書として見る場合は、仕様意図を読み取るのが主な目的

仕様意図が解る記述部分だけを表示する。(概要部分だけ)

実装用のモデルとして、チェックを行う場合は、実装に必要となる

情報を全て表示する必要がある。

ダブルクリックで

GUI

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

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

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

ブロック注釈の切り替え

関係ない表示が沢山あると

理解しにくい

必要な情報は全て

表示したい

相反する

ニーズ

(84)

2011

12

7

ブロック注釈の切り替え

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

機能モデルのレビュー

実装モデルのレビュー

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

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

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

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

環境を提供する。

(85)

2011

12

7

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

スライド番号

85

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

GUI

の提供

変換に使用するリスト

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

Simulink

モデルを作る最初の段階で、サブシステム名を

日本語で書き込んで作っておきます。

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

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

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

(86)

2011

12

7

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

英語

英語

英語

英語

日本語

日本語

日本語

日本語

変換

変換

変換

変換リスト

リスト

リスト

リスト

機能を作りこむとき

コード生成するとき

(87)

2011

12

7

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

スライド番号

87

実際の

API

活用例

ガイドライン準拠

ガイドラインチェッカー

(88)

2011

12

7

実際のモデル

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

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

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

Subsystem?

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

(89)

2011

12

7

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

スライド番号

89

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

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

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

(90)

2011

12

7

ルール例:

MAAB

ルールのチェック項目

R2011b

では、

MAAB

ルールの

(91)

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

は必要ない。

自動チェック可能

(92)

2011

12

7

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

自動修正可能な場合は、

修正ボタンが表示される

カスタムルールは、

チェックだけでなく

「自動修正

自動修正

自動修正

自動修正」

を追加できる

モデルアドバイザーは、

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

(93)

2011

12

7

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

スライド番号

93

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

NG

OK

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

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

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

参照

関連したドキュメント

現地法人または支店の設立の手続きとして、下記の図のとおり通常、最初にオーストラリア証

⑥ニューマチックケーソン 職種 設計計画 設計計算 設計図 数量計算 照査 報告書作成 合計.. 設計計画 設計計算 設計図 数量計算

「特定温室効果ガス年度排出量等(特定ガス・基準量)」 省エネ診断、ISO14001 審査、CDM CDM有効化審査などの業務を 有効化審査などの業務を

2012 年 3 月から 2016 年 5 月 まで.

図表 5-1-6 評価シート.. 検査方法基本設計 (奈留港に適合した寸法)工場試験結果追加試験結果対応内容

FSIS が実施する HACCP の検証には、基本的検証と HACCP 運用に関する検証から構 成されている。基本的検証では、危害分析などの

検証の実施(第 3 章).. 東京都環境局

適合 ・ 不適合 適 合:設置する 不適合:設置しない. 措置の方法:接続箱