ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

バス配列を使用するためのモデルの変換

バス配列を使用するようにモデルを変換する理由は複数あります (バス配列の利点を参照)。たとえば、以下の場合です。

  • モデルは Simulink® でサポートされるバス配列 (R2010b で導入) 以前に開発されており、同じ種類の処理を実行する多くのサブシステムを含んでいる。

  • モデルの複雑度が増した。

一般的な変換方法

ここでは、バスを含むモデルをバス配列を使用するモデルに変換するための一般的な方法を紹介します。使用する方法は、モデルによって異なります。これらの技法の詳細は、バス配列へのバスの統合およびモデルでのバス配列の使用を参照してください。

このワークフローは、設定済みのサンプル モデルを参照しています。この例では、オリジナルのモデル化パターンと、バス配列を使用する新しいモデリング パターンを示しています。

オリジナルのモデル化パターンの説明

  • 変換するターゲット バス信号は MainBus という名前で、それぞれ BusObject タイプの 3 つの要素をもっています。

  • ScalarAlgorithm1ScalarAlgorithm2ScalarAlgorithm3 サブシステムは、各バス要素で実行されるアルゴリズムをカプセル化しています。サブシステムはすべて同じ内容です。

  • Bus Selector ブロックは、MainBus の各要素を選択してサブシステムを駆動します。

オリジナルのモデル化パターンの構成は、以下の 2 つの理由で非効率です。

  • 処理するバスの各要素に対して、アルゴリズムをカプセル化するサブシステムのコピーが作成されます。

  • 別の要素を MainBus に追加するには、バス オブジェクト定義および Bus Selector ブロックの変更、およびサブシステムの追加が必要です。これらの変更はそれぞれエラーの原因となる可能性があります。

バス配列を使用するようにオリジナルのモデル化パターンを変換するには、次の手順に従います。

  1. 変換の対象となるターゲット バスおよび関連のアルゴリズムを指定します。通常、ターゲット バス信号はバスのバスで、各要素バス信号が同じタイプです。

    • 変換するバスは、非バーチャル バスでなければなりません。ターゲット バスのすべての要素が同じサンプル時間をもつ場合 (またはサンプル時間が継承された場合) は、バーチャル バスを非バーチャル バスに変換できます。

    • ターゲット バスには変数次元およびフレームベースの要素を含めることはできません。

  2. Concatenate ブロックを使用してバス信号のオリジナル バスをバス配列に変換します。

    例では、新しいモデル化パターンは Vector Concatenate ブロックを使用して、MainBus 信号を作成する Bus Creator ブロックを置き換えます。Vector Concatenate ブロックの出力は、バス配列で、バス信号のタイプは BusObject です。新しいモデルは、ラッパー バス信号 (MainBus) を排除します。

  3. アルゴリズム サブシステムの同一コピーを、スカラー アルゴリズムをカプセル化する 1 つの For Each Subsystem ですべて置き換えます。バス配列の信号を For Each Subsystem に接続します。

    新しいモデルは、オリジナル モデルで MainBus 信号の要素を分離する Bus Selector ブロックを排除します。

  4. 入力バス配列の信号で反復し、出力バス信号を連結するように For Each Subsystem ブロックを設定します。

    For Each Subsystem 内のスカラー アルゴリズムは、連続状態を保持できません。付加的な制限事項の詳細は、For Each Subsystem ブロックのドキュメンテーションを参照してください。

関連するトピック