Modeling Forum 2015

組込みシステムの設計実装へのモデルカタログの活用

仙台高等専門学校

情報システム工学科

力武克彰, 新村祐太(豊橋技科大), 菊池雄太郎(仙台高専)

概要「組込み分野のためのUMLモデルカタログ(*)」のモデルを実装してみました。
(* 以下、モデルカタログと呼びます)2

概要
モデルカタログ：目標制御モデル

モデルカタログより引用
3

概要

実装：目標制御モデル

4

Agenda• モデルカタログとは？
• 今回やったこと• 目標制御モデルの実装
• まとめ

5

モデルカタログとは？

6

組込みモデリング部会• 活動目的» 組込み分野におけるUMLモデリングによる開発を促進するため、お手本となるべきモデルの流通化を目指す» モデリングによる開発の生産性の向上» 技術者のモデリングスキルの向上• 活動内容» 組込み分野のためのUMLモデルカタログの作成» 「小さなモデル」の作成 ⇒ ワークショップ

7

組込み分野のためのUMLモデルカタログ
組込み分野でモデリングする全ての人に捧げるモデル集
http://www.umtp-japan.org/modules/introduction1/index.php?id=47&tmid0=24

組込み分野のさまざまなモデルを集めたカタログ• 様々な製品、機能、部品に対してお手本となるようなUMLモデルを提供» モデル解説書(pdf)» Enterprise Architectのモデルファイル

8

モデルカタログ掲載モデル• 製品編» ある製品を実現するようなもの– インライン装置、エアコン、など(5製品)• 機能編» 多くの製品に共通して搭載されるような機能– 認証、自己診断• 部品編» 汎用的でライブラリとして使用できる部品– 目標制御、プログラム更新機能
9各モデルの構成• 一つの要求仕様(製品、機能、部品)に対して複数のモデルを掲載» 異なるコンセプトに基づくモデル• 分析モデル、PIM設計モデルまでを掲載• PSM設計モデルは未掲載
PIM: Platform Independent Model
PSM: Platform Specified Model

モデルカタログよりモデルカタログより引用
10

モデル解説書• モデル解説書例：部品編 目標制御
» 要求仕様– ユースケース図、ユースケース記述、用語集などで記述» モデル一覧» モデルのコンセプト» 分析モデル– 静的モデル：クラス図、オブジェクト図、等– 動的モデル：ステートマシン図、シーケンス図、等» PIMモデル– 静的モデル– 動的モデル11

モデルカタログの適用範囲

モデルカタログより引用
12

今回やったこと13

モデルカタログの適用範囲

モデルカタログでは未提供

14

モデルカタログへの不安
要求分析

モデルカタログで提供

分析モデル作成

PIM作成
PSM作成

プラットフォームを意識しない抽象的なモデル

プラットフォームに依存する具体的なモデル

実装

モデルカタログ未提供• PSMをどのように作ればいいのか分からない• 開発事例が無く、システムを実現出来るか分からない
15

カタログ提供モデルの実装
カタログ提供モデルを使って組込みシステムの開発を行い、モデルの実装事例を提供する• 対象モデル：» [部品編] 目標制御モデル

モデルカタログより引用
16目標制御モデルの実装

17目標制御モデル(モデルカタログ)• 目標制御» 制御対象の計測値が目標値となるように制御する方式– 例) エアコンの室内温度の調整» 非常に汎用的なモデル

モデルカタログより引用
18

目標制御モデル(モデルカタログ)• 分析モデル(静的モデル)» 制御器、操作器、制御対象、計測器がそのままモデル要素へ

モデルカタログより引用
19

目標制御モデル(モデルカタログ)• 分析モデル(動的モデル)

モデルカタログより引用
20

目標制御モデル(モデルカタログ)
• PIM

操作器

計測器

<<interface>>
タイマータスク

制御器

制御対象<<interface>>
制御対象リスナー

タイマー

制御方式

制御パラメータ範囲» 各クラスのメソッドの詳細化» タイマによる制御呼出しの検討» 例外的状況への対応の検討(範囲クラス)

21

目標制御モデル(モデルカタログ)

外部監視システム

タイマー<<enumeration>>
制御状態

タイマータスク範囲

制御対象リスナー

周期的な動作

制御対象

計測器

制御器

操作器

制御方式

制御パラメータ

入出力制御のアルゴリズム

22実装対象のハードウェア
ETロボコン走行体(LEGO MINDSTORMS NXT)
• インターフェース» サーボモータ（両車輪、尻尾）» 各種センサ（光センサ等）• ファームウェア» leJOS-NXJ– Java» nxtOSEK

2つの開発
プラットフォーム– C/C++環境

23

開発システムライントレース走行システム• システム構成要素» 輝度値制御» 速度制御3つのドメイン» 尻尾角度制御» (曲率半径制御)

1つの目標制御モデルのPIMから、3ドメイン×2プラットフォームのPSMを作成、実装
24

PIMのドメインへの適用
汎用的な目標制御モデルの言葉を、各ドメイン(輝度値制御、走行速度制御、尻尾角度制御)の言葉に置き換える。
計測器

光センサ

+ 計測する() : 計測値+ 輝度値を計測する() : int

目標制御PIM

輝度値制御PIM» 計測器とは？

» 計測器:光センサ» 何を計測するのか？

» 計測するもの:輝度値» 計測値のデータ型は？

» 計測値のデータ型:int型
25

PSMの作成

各プラットフォームへの適用
輝度値制御器

輝度値制御器

輝度値制御器<<interface>>
車輪モータ

車輪モータ

nxtOSEK車輪モータ

LeJOS-NXJ車輪モータ<<API>>
ecrobot_interface
MotorPort輝度値制御PIM
1.
2.

抽象クラスをどう実装するか？
操作器はどのように操作を行うか？

leJOS-NXJ版
輝度値制御PSM

nxtOSEK版
輝度値制御PSM

1.

継承して実装1.

除去して実装2.

操作APIを持つクラスの利用2.

操作APIを持つライブラリの利用
26

leJOS-NXJ版 輝度値制御システムPSM(静的)プラットフォーム依存部
LightValCtrl-LejosInterfaces
LightValCtrl-Timer

MotorPort

LightSensor

LejosWheelMotor

LejosLightValEncoder

LightValCtrlTimer

LightValCtrl-Listener
LightValListenerTargetControl-Common<<interface>><<interface>>
Actuator
Measurement<<interface>>
TimerTask

Controller

ControlledObject<<interface>>
SystemListener

CtrlMethod

CtrlMethodParmCtrlRange

LightValCtrl-Algorithm
PIDLightValCtrl

OnOffLightValCtrl

PIDLightValCtrlParm

OnOffLightValCtrlParm

27

nxtOSEK版 輝度値制御システムPSM(静的)LightValCtrl-Listener
LightValListener

LightValCtrl-Common
LightValCtrl

LightValCtrl-Algorithm
PIDLightValCtrl

PIDLightValCtrlParm

LightVal

LightValRange

LightValCtrl-nxtOSEKInterfaces
nxtWheelMotor

nxtLightValEncoder<<API>>
ecrobot_interface

プラットフォーム依存部
28

leJOS-NXJ版輝度値制御システムPSM(動的)分析モデルのシーケンス図を基に作成。
実際には、ソースコード⇔PSM間での修正

29

実装・動作検証30

実装・動作検証
輝度値制御(ライントレース)
700680660
640620

輝度値 600
580
560

540
520
500
01000

2000

3000

4000

5000

6000

7000

8000

時間[ms]
制御方式：PID制御
制御対象：輝度値 0~1023
操作量 ：旋回量 -100~100
Kp = 1.85, Ki =0.03[1/s], Kd = 0.03[s]31実装・動作検証
尻尾角度制御
9080
70
60

角度[度]

50
40

30
20

10001000

2000

3000

4000

5000

6000

7000

8000

時間[ms]

制御方式：P制御
制御対象：尻尾角度
操作量 ：モータ出力 0~100
Kp = 1.85[1/度]32他のハードウェアでの実装• DONKEYロボットキット((株)北斗電子)• MPU

ルネサスM16C/Tiny• OS無し• 開発言語：C, アセンブラ• 計測器» ロータリエンコーダ• 操作器» 車輪DCモータ（左右一つずつ）» PWM駆動

nxtOSEK版 速度制御システムPSMとほぼ同じモデルで、モータ回転速度制御を実装可
33

目標制御モデルの実装までの流れ
1. カタログを読み込む(特に要求分析、分析モデル)»

前提条件、制約条件、モデルの意図の理解»

用語の整理・統一

2. PIMをドメインへ適用する(PIMの変更)»

目標制御モデルの構造はほぼそのまま利用可能

3. 各プラットフォームに適応したPSMの作成»

目標制御モデルではPIMにおいて、プラットフォームに関連するところ、しないところが明確に分かれている

4. プログラムの実装»(可能であれば)ツールの利用＋シーケンス図の活用
34