メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

インターフェイスと要件リンクを使用したアーキテクチャ モデルの作成

このトピックでは、System Composer™ を使用してロボット アームのアーキテクチャ モデルを作成し、ポートでインターフェイスを定義し、コンポーネントに要件リンクを追加する方法を学習します。

次の方法を学びます。

  • System Composer を起動する。

  • ロボット アームのセンサー、軌跡の計画、およびその動きを表すアーキテクチャ コンポーネントを追加する。

  • データ交換を表すポートと接続を作成する。

  • データの構造を表すデータ インターフェイスを定義する。

  • モデル要素から要件への接続を表す要件リンクを管理する。

System Composer で要件をリンク、トレース、管理するには、Requirements Toolbox™ のライセンスが必要です。

System Composer におけるモデルベース システムズ エンジニアリング ワークフローの詳細については、アーキテクチャ モデルを使用したシステムの構成と解析を参照してください。

システムの視覚的な表現

アーキテクチャ設計の実装は、コンポーネントとそれらの接続を使用してシステムを視覚的に表現することから始めます。アーキテクチャ モデルを作成し、システム コンポーネントを表現し、それらの間の接続を描画します。

アーキテクチャ モデルの作成

  1. MATLAB® コマンド ウィンドウで次のコマンドを入力します。

    systemcomposer

    Simulink® のスタート ページが System Composer で開きます。

  2. [アーキテクチャ モデル] をクリックします。

    Accessing a new System Composer architecture model from the Simulink start page.

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

    新しい空のアーキテクチャ モデル キャンバスが開きます。左下隅のバッジと左側のコンポーネント パレットでアーキテクチャ モデルを特定できます。

    A new untitled architecture model in System Composer.

  3. アーキテクチャ モデルのヘッダーをダブルクリックし、untitledRobotDesign などの説明的なモデル名に変更します。一般に、モデルの名前はアーキテクチャを構築するシステムを反映したものにします。

    Renamed architecture model called 'Robot'.

  4. モデルを保存します。

コンポーネントの描画

位置をセンサーで検知し、ロボットがモーションを使用して到達する必要がある位置までの経路を軌跡の計画で計算する、モバイル ロボット アームを設計します。このようなシステムのアーキテクチャ モデルは、SensorsTrajectory Planning、および Motion の 3 つの主要コンポーネントで構成できます。System Composer では、これらのコンポーネントを 3 つの Component ブロックを使用して表現できます。

  1. Component ブロック component block icon を左側のパレットからクリックしてドラッグします。

    Click and drag a component from the left-side palette to add it to the architecture model.

  2. コンポーネントの名前を Sensors に変更します。

  3. 同じ手順に従って Trajectory Planning コンポーネントと Motion コンポーネントを作成します。

    An architecture model called 'Robot' with three components

ポートと接続の作成

パワー、エネルギー、データ、または表現する他の任意の情報の流れを記述して、コンポーネント間の接続の作成を開始できます。情報を提供する側か使用する側のコンポーネントでポートを作成し、2 つのコンポーネントポートをバインドするコネクタを作成して情報の流れを表します。

ポートはコンポーネントのいずれの辺にも追加でき、入力方向または出力方向のどちらかにすることができます。ポートを作成するには、コンポーネントの辺にカーソルを合わせます。クリックして放すとポートのオプションが表示されます。InputOutput、または Physical のいずれかを選択してポートを作成します。そのポートを流れる情報を表す名前を使用してポートの名前を変更します。

  1. Sensors コンポーネントの下の辺に出力ポートを作成します。名前を SensorData に変更します。

    'Robot' architecture model with a downward facing output port below the 'Sensors' component called 'Sensor Data'.

  2. クリックして SensorData 出力ポートから Motion コンポーネントに線をドラッグします。コンポーネントの辺に入力ポートが作成されたことを確認したら、ポインターを放します。既定では、新しいポートの名前は接続元ポートと同じになります。

  3. SensorData の線の角を分岐アイコン branch icon が表示されるまでポイントします。右クリックして分岐線を Trajectory Planning コンポーネントにドラッグします。

    'Robot' architecture model with a 'Sensor Data' connection out-port from the 'Sensors' component connected to two in-ports into the 'Trajectory Planning' and 'Motion' components.

  4. 次の図に示すように接続を完成させます。

    To the 'Robot' architecture model, add a 'Motion Command' connection from the 'Trajectory Planning' component to the 'Motion' component, and an 'Encoder' connection from the 'Motion' component to the 'Sensors' component.

アーキテクチャ モデルのルート レベルにも、システムとその環境との相互作用を記述するポートを含めることができます。この例では、ロボットのターゲット位置はロボット自体とは別の外部のコンピューターから与えられます。この関係を入力ポートで表します。

  1. アーキテクチャ モデルの左端をクリックし、ポートの名前を「TargetPosition」と入力します。

  2. TargetPosition 入力ポートから Trajectory Planning コンポーネントに線をドラッグして、アーキテクチャ ポートをコンポーネントに接続します。アーキテクチャ ポートとの間の接続はタグとして表示されます。

    Final 'Robot' model has an architecture port connected from the 'Trajectory Planning' component to the 'Target Position' input port.

データ インターフェイスの編集

データ インターフェイスを定義して、接続とそれに関連付けられているポートを完全に指定できます。データ インターフェイスは、さまざまな次元、単位、データ型をもつ複数のデータ要素で構成できます。ポートを接続するときに整合性をチェックするために、コンポーネントの設計時に未接続のポートにインターフェイスを関連付けることもできます。

属性を使用してデータ インターフェイスを構成し、コンポーネント間のポートを介した情報の流れを指定します。データ インターフェイスは、整数値を送るような単純なものもありますが、数値の集合、列挙、数値と文字列の組み合わせ、または他の事前定義されたインターフェイスのバンドルにすることもできます。

Sensors コンポーネントと Motion コンポーネントの間のデータ インターフェイスを考えてみます。センサー データは以下で構成されています。

  • 2 つのモーターからの位置データ

  • 2 つのセンサーからの障害物近接データ

  • データの鮮度を取得するタイム スタンプ

  1. インターフェイス エディターを開くには、[モデル化][インターフェイス エディター] に移動します。

  2. add interface ボタンをクリックしてデータ インターフェイスを追加します。インターフェイスに sensordata という名前を付けます。

    データ インターフェイスは、コンポーネント ポートとは別に名前が付けられて定義されてからポートに割り当てられます。

  3. Sensors コンポーネントの SensorData 出力ポートをクリックします。インターフェイス エディターで、sensordata を右クリックして [選択したポートに割り当て] を選択します。

    もう一度 sensordata をクリックすると、SensorData の 3 つのポートが強調表示され、接続されたポートがそのインターフェイスに関連付けられていることが示されます。

    Model with three 'Sensor Data' ports highlighted in purple.

  4. 選択したデータ インターフェイスにデータ要素を追加します。add data element ボタンをクリックしてデータ要素を追加し、timestamp という名前を付けます。

  5. データ要素を追加するボタンをクリックして、仕様に従ってデータ インターフェイスへのデータ要素の追加を続けます。

    名前タイプ単位
    timestampdoubleseconds
    direction1doubledegrees
    direction2doubledegrees
    distance1doublemeters
    distance2doublemeters
    position1doubledegrees
    position2doubledegrees
  6. インターフェイス エディターでデータ要素のプロパティを編集します。表でデータ要素に対応するセルをクリックし、仕様に示されているとおりに単位を追加します。

    save to data dictionary ボタンの横のドロップダウン リストをクリックして、データ インターフェイスをデータ ディクショナリに保存します。データ ディクショナリを使用すると、一連のインターフェイスをまとめて管理してモデル間で共有できます。たとえば、設計の後半で外部のコンピューターを独立したアーキテクチャ モデルとしてモデル化することにした場合、このモデルと Robot モデルで同じデータ ディクショナリを共有できます。ここでは、ディクショナリは RobotDD として保存されています。

    The Robot DD dictionary with interface named 'sensor data' and interface elements named 'time stamp', 'direction 1', direction 2', distance 1', distance 2', 'position 1', and 'position 2.

コンポーネントの分解

コンポーネントはそれぞれ独自のアーキテクチャをもつことができます。コンポーネントをダブルクリックして、そのサブコンポーネントに分解します。

  1. Trajectory Planning コンポーネントをダブルクリックします。エクスプローラー バーと [モデル ブラウザー] に、モデルの階層構造におけるコンポーネントの位置が示されます。

    The inside of the 'Trajectory Planning' component shows three architecture ports called 'Target Position, 'Sensor Data', and 'Motion Command'.

    このコンポーネントでは、まず sensordata インターフェイスの一部であるモーターの位置データを使用して、理想的な位置と速度のコマンドを計算します。その後、同じインターフェイスの障害物までの距離の情報を処理し、このモーション コマンドをいくつかの安全規則に従って条件付けします。

  2. Motion Control コンポーネントと Safety Rules コンポーネントを Trajectory Planning アーキテクチャの一部として追加します。

    TargetPosition ポートを Motion Control コンポーネントにドラッグします。Command 出力ポートを Motion Control に追加し、Safety Rules コンポーネントに線をドラッグします。SensorData ポートから Motion Control コンポーネントと Safety Rules コンポーネントに線をドラッグします。

    Port connections for the 'Trajectory Planning' component.

ロボット アームのアーキテクチャ モデル

センサー、モーション アクチュエータ、およびプランニング アルゴリズムで構成されるロボット アームのアーキテクチャ モデルを開きます。System Composer を使用してインターフェイスを確認し、このモデルの要件を管理できます。

要件リンクの管理

システムズ エンジニアリング プロセスには要件が不可欠です。要件には、システム全体の機能に関係するものもあれば、パワー、サイズ、重量などの性能面に関係するものもあります。上位レベルの要件を下位レベルの要件に分解し、追加の要件を派生させることは、システム全体のアーキテクチャを定義するうえで非常に重要です。たとえば、ロボット コントローラーの消費パワーの要件はロボットの全体の消費パワーから決まります。

システムの要素を含む要件の割り当てとトレースのために、System Composer は Requirements Toolbox と完全に統合します。適切な要件を派生させるために、コンポーネント、ポート、またはコネクタを含むシステムの要素について、プロパティ (パワーなど) の解析と指定が必要になることがあります。たとえば、システムの総コストが検討対象である場合は unitPrice プロパティが必要です。

要件は System Composer の要件パースペクティブから Requirements Toolbox を使用して管理します。[アプリ][要件マネージャー] に移動します。詳細については、Simulink での要件の表示とリンク (Requirements Toolbox)を参照してください。

Requirements perspective showing requirement list and requirement links on components in the model.

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

参考

トピック