ユースケースをさらに分析することで、制御システムの構造および振る舞いの構成を定義します。2 つの重要なシステムが、SysML ブロック (ControlSystem ブロックと SystemUnderControl ブロック) として指定されています。内部ブロック図を使用して、構造設計を作成します。
ControlSystem ブロックと SystemUnderControl ブロックはシステム・コンテキストを形成し、開始点の「外部フロー」内部ブロック図で定義されます。ControlSystem ブロックと SystemUnderControl ブロックはパーツ (cs と s) として表記され、閉ループの制御システム内で結合されています。
「外部フロー」内部ブロック図の検索ブラウザーで、と展開し、「外部フロー」をダブルクリックしてダイアグラムを開きます。
このダイアグラムを使用して、SystemUnderControl ブロックと ControlSystem ブロックの接続、およびこれら 2 つのシステム間での熱と温度のフローを指定します。SysML では、このような接続は、コンテキスト内のブロック・インスタンス間で指定する必要があります。そうすることで、コンテキスト・ブロックを使用してコンテキストを定義することが可能になり、パーツが SystemUnderControl ブロックと ControlSystem ブロックのインスタンスとなります。
開始点の外部フロー・ダイアグラムには、入力側の接続
(熱) が指定されていますが、出力側の接続 (温度) が欠落しています。
フロー・ポートを介したブロックの接続
「外部フロー」内部ブロック図の閉ループ設計を実行するには、次の手順を行います。
フロー属性名、出力、およびタイプ degC
がダイアグラムのフロー矢印の隣に表示されます。
アクティビティー図での振る舞いの分析開始点のアクティビティー図を開くには、次の手順を実行します。
- ブラウザーで「FunctionalAnalysisPkg」を開きます。
- 「OperateSystem」アクティビティーをダブルクリックします。これで、そのアクティビティーのアクティビティー図が開きます。
このアクティビティーは、evPower イベントを待機することから始まります。
イベントを受信すると、同時に制御のフローが次の 2 つのパスに分割されます。
- パス a1 では、evMode イベントを受信すると、振る舞いは 2 つのモード (加熱が有効な標準モードと加熱が無効な待機モード) で交互に行われます。
- パス a2 では、システムが温度を維持しようとします (加熱が無効になっている場合は温度は維持されません)。
「割り込み可能領域」がシステムの電源をオフにするために割り込み可能な振る舞いのサブセットを定義し、アクティビティーを終了します。
アクション・ピンとパラメーターの追加
温度のアクション・ピンおよび関連するパラメーターを追加するには、次の手順を実行します。
- 「アクション・ピン」ツール
を選択します。「Maintain temperature」アクションにアクション・ピンを追加します。
- 新規のアクション・ピンについて、「フィーチャー」ウィンドウを使用して、名前を「temperature」に、タイプを「TypesPkg」の値タイプから選択した「degC」に、方向を「In」にそれぞれ設定します。
- 「アクティビティー・パラメーター」ツール
を選択します。熱パラメーターの近くにあるダイアグラム・フレームの右側にアクティビティー・パラメーターを追加して、アクティビティーに追加します。
- 新規のアクティビティー・パラメーターの「フィーチャー」ウィンドウで、名前に temperature を入力し、タイプに「TypesPkg」から「degC」を選択し、方向を「In」に設定します。「OK」をクリックします。
- ダイアグラムで、名前に合致するようにパラメーターのシンボルを展開します。
- 「オブジェクト・フロー」ツール
を選択し、温度のアクティビティー・パラメーターを温度のアクション・ピンに接続します。
作成されたアクティビティー図は、次の例のようになります。