インターフェイスと要件リンクを使用したアーキテクチャ モデルの作成
このトピックでは、System Composer™ を使用してロボット アームのアーキテクチャ モデルを作成し、ポートでインターフェイスを定義し、コンポーネントに要件リンクを追加する方法を学習します。
次の方法を学びます。
System Composer を起動する。
ロボット アームのセンサー、軌跡の計画、およびその動きを表すアーキテクチャ コンポーネントを追加する。
データ交換を表すポートと接続を作成する。
データの構造を表すデータ インターフェイスを定義する。
モデル要素から要件への接続を表す要件リンクを管理する。
System Composer で要件をリンク、トレース、管理するには、Requirements Toolbox™ のライセンスが必要です。
System Composer におけるモデルベース システムズ エンジニアリング ワークフローの詳細については、アーキテクチャ モデルを使用したシステムの構成と解析を参照してください。
システムの視覚的な表現
アーキテクチャ設計の実装は、コンポーネントとそれらの接続を使用してシステムを視覚的に表現することから始めます。アーキテクチャ モデルを作成し、システム コンポーネントを表現し、それらの間の接続を描画します。
アーキテクチャ モデルの作成
MATLAB® コマンド ウィンドウで次のコマンドを入力します。
systemcomposer
Simulink® のスタート ページが System Composer で開きます。
[アーキテクチャ モデル] をクリックします。

System Composer には、システムズ エンジニアリングやソフトウェア アーキテクチャのモデル化のさまざまなドメインに対応するアーキテクチャ モデルのテンプレートが用意されています。[アーキテクチャ モデル] と [ソフトウェア アーキテクチャ モデル] などがあります。構造的な機能はいずれのアーキテクチャ モデルでも同じで、ドメインとプラットフォームに固有の制約が一部含まれています。アーキテクチャ テンプレートの詳細については、Choose Architecture Template for System Designを参照してください。
新しい空のアーキテクチャ モデル キャンバスが開きます。左下隅のバッジと左側のコンポーネント パレットでアーキテクチャ モデルを特定できます。

アーキテクチャ モデルのヘッダーをダブルクリックし、
untitledをRobotDesignなどの説明的なモデル名に変更します。一般に、モデルの名前はアーキテクチャを構築するシステムを反映したものにします。
モデルを保存します。
コンポーネントの描画
位置をセンサーで検知し、ロボットがモーションを使用して到達する必要がある位置までの経路を軌跡の計画で計算する、モバイル ロボット アームを設計します。このようなシステムのアーキテクチャ モデルは、Sensors、Trajectory Planning、および Motion の 3 つの主要コンポーネントで構成できます。System Composer では、これらのコンポーネントを 3 つの Component ブロックを使用して表現できます。
Component ブロック
を左側のパレットからクリックしてドラッグします。
コンポーネントの名前を
Sensorsに変更します。同じ手順に従って
Trajectory PlanningコンポーネントとMotionコンポーネントを作成します。
ポートと接続の作成
パワー、エネルギー、データ、または表現する他の任意の情報の流れを記述して、コンポーネント間の接続の作成を開始できます。情報を提供する側か使用する側のコンポーネントでポートを作成し、2 つのコンポーネントポートをバインドするコネクタを作成して情報の流れを表します。
ポートはコンポーネントのいずれの辺にも追加でき、入力方向または出力方向のどちらかにすることができます。ポートを作成するには、コンポーネントの辺にカーソルを合わせます。クリックして放すとポートのオプションが表示されます。Input、Output、または Physical のいずれかを選択してポートを作成します。そのポートを流れる情報を表す名前を使用してポートの名前を変更します。
Sensors コンポーネントの下の辺に出力ポートを作成します。名前を SensorData に変更します。

クリックして SensorData 出力ポートから
Motionコンポーネントに線をドラッグします。コンポーネントの辺に入力ポートが作成されたことを確認したら、ポインターを放します。既定では、新しいポートの名前は接続元ポートと同じになります。SensorData の線の角を分岐アイコン
が表示されるまでポイントします。右クリックして分岐線を Trajectory Planningコンポーネントにドラッグします。
次の図に示すように接続を完成させます。

アーキテクチャ モデルのルート レベルにも、システムとその環境との相互作用を記述するポートを含めることができます。この例では、ロボットのターゲット位置はロボット自体とは別の外部のコンピューターから与えられます。この関係を入力ポートで表します。
アーキテクチャ モデルの左端をクリックし、ポートの名前を「TargetPosition」と入力します。
TargetPosition 入力ポートから
Trajectory Planningコンポーネントに線をドラッグして、アーキテクチャ ポートをコンポーネントに接続します。アーキテクチャ ポートとの間の接続はタグとして表示されます。
データ インターフェイスの編集
データ インターフェイスを定義して、接続とそれに関連付けられているポートを完全に指定できます。データ インターフェイスは、さまざまな次元、単位、データ型をもつ複数のデータ要素で構成できます。ポートを接続するときに整合性をチェックするために、コンポーネントの設計時に未接続のポートにインターフェイスを関連付けることもできます。
属性を使用してデータ インターフェイスを構成し、コンポーネント間のポートを介した情報の流れを指定します。データ インターフェイスは、整数値を送るような単純なものもありますが、数値の集合、列挙、数値と文字列の組み合わせ、または他の事前定義されたインターフェイスのバンドルにすることもできます。
Sensors コンポーネントと Motion コンポーネントの間のデータ インターフェイスを考えてみます。センサー データは以下で構成されています。
2 つのモーターからの位置データ
2 つのセンサーからの障害物近接データ
データの鮮度を取得するタイム スタンプ
インターフェイス エディターを開くには、[モデル化] 、 [インターフェイス エディター] に移動します。
ボタンをクリックしてデータ インターフェイスを追加します。インターフェイスに sensordataという名前を付けます。データ インターフェイスは、コンポーネント ポートとは別に名前が付けられて定義されてからポートに割り当てられます。
Sensorsコンポーネントの SensorData 出力ポートをクリックします。インターフェイス エディターで、sensordataを右クリックして [選択したポートに割り当て] を選択します。もう一度
sensordataをクリックすると、SensorData の 3 つのポートが強調表示され、接続されたポートがそのインターフェイスに関連付けられていることが示されます。
選択したデータ インターフェイスにデータ要素を追加します。
ボタンをクリックしてデータ要素を追加し、timestampという名前を付けます。データ要素を追加するボタンをクリックして、仕様に従ってデータ インターフェイスへのデータ要素の追加を続けます。
名前 タイプ 単位 timestampdoublesecondsdirection1doubledegreesdirection2doubledegreesdistance1doublemetersdistance2doublemetersposition1doubledegreesposition2doubledegreesインターフェイス エディターでデータ要素のプロパティを編集します。表でデータ要素に対応するセルをクリックし、仕様に示されているとおりに単位を追加します。
ボタンの横のドロップダウン リストをクリックして、データ インターフェイスをデータ ディクショナリに保存します。データ ディクショナリを使用すると、一連のインターフェイスをまとめて管理してモデル間で共有できます。たとえば、設計の後半で外部のコンピューターを独立したアーキテクチャ モデルとしてモデル化することにした場合、このモデルと Robotモデルで同じデータ ディクショナリを共有できます。ここでは、ディクショナリはRobotDDとして保存されています。
コンポーネントの分解
コンポーネントはそれぞれ独自のアーキテクチャをもつことができます。コンポーネントをダブルクリックして、そのサブコンポーネントに分解します。
Trajectory Planningコンポーネントをダブルクリックします。エクスプローラー バーと [モデル ブラウザー] に、モデルの階層構造におけるコンポーネントの位置が示されます。
このコンポーネントでは、まず
sensordataインターフェイスの一部であるモーターの位置データを使用して、理想的な位置と速度のコマンドを計算します。その後、同じインターフェイスの障害物までの距離の情報を処理し、このモーション コマンドをいくつかの安全規則に従って条件付けします。Motion ControlコンポーネントとSafety RulesコンポーネントをTrajectory Planningアーキテクチャの一部として追加します。TargetPosition ポートを
Motion Controlコンポーネントにドラッグします。Command 出力ポートをMotion Controlに追加し、Safety Rulesコンポーネントに線をドラッグします。SensorData ポートからMotion ControlコンポーネントとSafety Rulesコンポーネントに線をドラッグします。
ロボット アームのアーキテクチャ モデル
センサー、モーション アクチュエータ、およびプランニング アルゴリズムで構成されるロボット アームのアーキテクチャ モデルを開きます。System Composer を使用してインターフェイスを確認し、このモデルの要件を管理できます。

要件リンクの管理
システムズ エンジニアリング プロセスには要件が不可欠です。要件には、システム全体の機能に関係するものもあれば、パワー、サイズ、重量などの性能面に関係するものもあります。上位レベルの要件を下位レベルの要件に分解し、追加の要件を派生させることは、システム全体のアーキテクチャを定義するうえで非常に重要です。たとえば、ロボット コントローラーの消費パワーの要件はロボットの全体の消費パワーから決まります。
システムの要素を含む要件の割り当てとトレースのために、System Composer は Requirements Toolbox と完全に統合します。適切な要件を派生させるために、コンポーネント、ポート、またはコネクタを含むシステムの要素について、プロパティ (パワーなど) の解析と指定が必要になることがあります。たとえば、システムの総コストが検討対象である場合は unitPrice プロパティが必要です。
要件は System Composer の要件パースペクティブから Requirements Toolbox を使用して管理します。[アプリ] 、 [要件マネージャー] に移動します。詳細については、Simulink での要件の表示とリンク (Requirements Toolbox)を参照してください。

要件のトレーサビリティを強化するには、アーキテクチャのコンポーネントとポートに要件をリンクします。要件パースペクティブでコンポーネントをクリックすると、リンクされている要件が強調表示されます。逆に、要件をクリックすると、リンクされているコンポーネントが表示されます。リンクを直接作成するには、コンポーネントまたはポートに要件をドラッグします。