システムとモデリング

SysML, Matlab/Simulink,他モデリング全般について。たまにプロジェクトマネジメント。

SysML練習 温水タンクモデル 要求・振る舞い・構造のモデル化

 

 

2017年最後の投稿になります。前々回投稿した↓の温水タンクモデルのフローから、SysMLの要求図、アクティビティー図、ブロック定義図を作成していきます。

 

f:id:Otepipi:20171226195735p:plain

温水タンクモデルフロ-

まずは要求図からです。

 

f:id:Otepipi:20171231202106p:plain

温水タンクモデル要求図

要求図はまずフロー図に記入のあったテキスト"熱交換器出口の製品果汁ジュースの温度が25℃→40℃±2℃になるように温水タンクの温水温度を電気ヒーターでコントロールする。電気ヒーターはon/offのみで制御し出力一定とする。"をオリジナルステートメントとして記述し、そこから要素分解する形で「熱交換器」「熱交換器の熱媒」「電気ヒーター」の要件をまとめています。また、それらの要件から導出される形で要求「2重管式熱交換器」「温度計測」「電気ヒーターのコントロール」を作り出しています。

【疑問点】

 今回は2重管式熱交換器を採用したが、プレート&フレームでも多管式熱交換器でも良かった。このように『requirement「熱交換器」から導出される熱交換器の種類が多数あり、その中で2重管式をたまたま採用した』ということをモデル上で表現するにはどうしたら良いのか?

 

また、振る舞い図としてアクティビティ図を作成した。

f:id:Otepipi:20171231202501p:plain

アクティビティ図

振る舞いを表現する図の種類としてはアクティビティ図の他にシーケンス図や状態機械図も存在する。なぜアクティビティ図を使用したかというと
①熱のinput/outputを明示したかったから
②アクティビティ図を書いたことがなかった
からである。熱の収支を明示する上でアクティビティ図は有効であった。しかしながらこのシステムは「電気ヒーターが作動している状態」と「作動していない状態」の2つの状態にわけられるシステムであるので、状態機械図でも良かったかもしれない。
結局、振る舞い図でアクティビティ・シーケンス・状態機械をどう使い分けるかはまだ自分の中で確立できていない。

【疑問点】

 上記のアクティビティ図だと「電熱器作動」を通過しなければ「温水の混合」が発生しないことになっている。ただ、実際の制御では電熱器の作動/非作動に関わらず「温水の混合」は行われる。これをアクティビティ図でどう表現するか?

 また、製品温度と目標値を比較し、以下であれば電熱器を作動させる制御を点線の制御線で引いているが、これで書き方は正しいか? 温度という要素が明示されていないので、どこかで間違っているはず。適切な書き方が知りたい。

 

また、最後は構造を表すブロック定義図です。

f:id:Otepipi:20171231202113p:plain

ブロック定義図

 システムを温水タンク・ポンプ・制御器・熱交換器に分解しています。制御器が温度センサの温度を参照し、電気ヒーターを動かします。またポンプも動かします。

【疑問点】
 上記のような制御器の動作をブロック定義図で表現するにはどうすればいいか?明らかにキャプションなしの参照では説明不足である。

 

 やはりダイアグラムを書いてみると、色々疑問が出てきますね。これを一つ一つ地道に潰していきたいと思います。次回はこの温水タンクモデルをsimulinkで実装していきます。