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

合成信号のタイプ

モデルの見た目の複雑さを減らすために、信号を合成信号に結合できます。合成信号に含まれる信号を "要素" と呼びます。要素はそれぞれ別の ID を保持しているため、合成信号からそれらを抽出できます。

合成信号の要素には、合成信号のタイプに応じて、名前またはインデックでアクセスできます。

  • インデックスベースの合成信号は、ステージで作成したかどうかに関係なく、フラットです。すべての入力信号が同じデータ型をもつようにします。

  • 名前ベースの合成信号では、信号階層が可能です。これらの信号は一般的に "バス" と呼ばれます。

    メモ

    Simulink® バスは、タイ ラップで結束されるワイヤーのバンドルに似ています。Simulink バスは、コンピューター ハードウェア アーキテクチャのバスなどのハードウェア バスと似ていません。

    すべてのブロックでバスが受け入れられるわけではなく、バスをベクトルに暗黙的に変換するブロックもあります。どのブロックがどのバスのタイプをサポートするかについては、バス対応ブロックを参照してください。バスからベクトルへの暗黙の変換の確認方法については、バスからベクトルへの変換の管理を参照してください。

信号を合成信号にグループ化する場合に、シミュレーションおよびコードの生成に影響するかどうかを決定できます。

  • "バーチャル" 合成信号は、2 つ以上の信号線を 1 つの信号線に結合して、モデルの外観を簡素化します。バーチャル合成信号は機能的な意味ではグループ化されないため、シミュレーションやコードの生成には影響しません。

  • "非バーチャル" 合成信号は、外観および機能的に信号をグループ化して、シミュレーションとコードの生成両方に影響します。

モデルは、これらの合成信号のタイプを組み合わせて使用できます。

合成信号の機能インデックスベースのアクセス名前ベースのアクセス
外観のグループ化

Mux 信号

バーチャル バス

機能のグループ化

連結された信号

非バーチャル バス

合成信号のタイプをライン スタイルで識別できます。

ライン スタイル合成信号のタイプ
バーチャル バス
非バーチャル バス
[非スカラー信号] 情報のオーバーレイが有効な場合の非スカラー信号 (インデックスベースの合成信号を含む)
非バーチャル バスを含むインデックスベースの合成信号

バーチャル バス

モデルには、信号 ab、および c を含むバーチャル バスが表示されます。

Bus Creator ブロックは、サブシステムまたはモデル内にバーチャル バスを作成します。Bus Selector ブロックは、要素名を指定して、サブシステムまたはモデル内のバスの要素を抽出します。

このモデルは、サブシステムの境界を通過する等価のバーチャル バスを示しています。

Out Bus Element ブロックは、サブシステムまたはモデル インターフェイスでバーチャル バスを作成します。In Bus Element ブロックは、要素名を指定して、サブシステムまたはモデル インターフェイスでバスの指定された要素を抽出します。

バーチャル バスは次の目的で使用できます。

  • サンプル レートの異なるバス要素を含めること

  • 参照モデルが一部のバス要素のみを使用する場合に、モデル参照の境界を越えること

バーチャル バスは非バーチャル バスに比べ簡単に使用することができ、効率も上がります。バーチャル バスは、要素に直接アクセスすることで、シミュレーションや生成されたコードで非バーチャル バスよりも迅速に実行されます。バーチャル バスがテスト ポイントに関連付けられている場合でも、生成されたコードにバーチャル バスの要素のみ表示されます。

バーチャル バスのプロパティを指定および検証するには、Simulink.Bus オブジェクトを指定できます。

一部のモデリング機能には、MATLAB Function ブロックや Stateflow® チャートなど非バーチャル バスが必要です。

非バーチャル バス

モデルには、信号 ab、および c を含む非バーチャル バスが表示されます。

Bus Creator ブロックは、サブシステムまたはモデル内に非バーチャル バスを作成します。Bus Selector ブロックは、要素名を指定して、サブシステムまたはモデル内のバスの要素を抽出します。

サブシステムまたはモデル インターフェイス内の非バーチャル バスの場合は、Outport ブロックおよび Inport ブロックを使用します。

非バーチャル バスは次の目的で使用できます。

  • Scope ブロックでバス信号を表示および記録。

  • バス配列の構成。

  • バス データが MATLAB Function ブロックまたは Stateflow チャートの境界を越えるように設定。

  • S-Function を介した外部コードとのインターフェイス接続。

  • バス データを生成された C コードの構造体としてパッケージ化。

Simulink.Bus オブジェクトでは、非バーチャルにするバスを定義しなければなりません。バス オブジェクトは、バスのアーキテクチャのプロパティのみ指定します。たとえば、バス オブジェクトで要素名、階層、順序、データ型を指定できます。バス オブジェクトでは、バス内の信号の値は指定されません。詳細については、バス オブジェクトでのバス プロパティの指定を参照してください。

バーチャル バスはバス オブジェクトを指定できるため、[非バーチャル バスとして出力] パラメーターも選択すると、バスは非バーチャルになります。

非バーチャル バスのすべての要素は、関連付けらているバス オブジェクトで継承サンプル時間が指定されている場合でも、同じサンプル時間を使用しなければなりません。Rate Transition ブロックを使って個々の信号のサンプル時間、またはバス内のすべての信号のサンプル時間を変更することができます。

バスのタイプによって、生成されたコードの効率性、サイズおよび可読性に大きな違いが生じる可能性があります。生成されたコードは非バーチャル バスを構造体として表します。構造体は、モデルとコード間の対応関係を追跡するのに役立ちます。非バーチャル バスのコードを生成すると、いくつかのバスの複数のコピーが生成される場合があります。バスを使用するモデルのコードを生成する場合は、バス信号の効率的なコードの生成 (Simulink Coder)を参照してください。生成されたコードでのバーチャル バスと非バーチャル バスの違いの例については、バスのコードの生成を参照してください。

連結された信号

このモデルは、入力行列を並べて配置する連結された信号を示しています。

Matrix Concatenate ブロックは、連結された信号を作成します。要素は、このブロックの設定方法に応じて、ベクトルまたは行列になります。Selector ブロックは、指定されたインデックスに基づいて信号を抽出します。抽出された信号は、入力信号とは異なる方法でグループ化できます。

連結された信号を数学演算で使用できます。

Vector Concatenate ブロックまたは Matrix Concatenate ブロックで信号をグループ化するには、信号のデータ型が同じでなければなりません。データ型がバス オブジェクトの場合、入力は非バーチャル バスでなければなりません。

連結された非バーチャル バスは、"バス配列" とも呼ばれます。バス配列では、すべての要素が、同じバス オブジェクトを使用してプロパティを指定する非バーチャル バスです。バス配列は MATLAB® の構造体の配列と同等です。バス配列を使用して、マルチチャネル システムをモデル化することができます。すべてのチャネルは同じプロパティをもちますが、各チャネルの値は異なる場合があります。

このモデルでは、Vector Concatenate ブロックがバス配列を作成しています。

バス配列の詳細については、バス配列へのバスの統合を参照してください。

Mux 信号

このモデルは、3 つの入力信号を並べて配置する Mux 信号を示しています。

Mux ブロックは、Mux 信号を作成します。Demux ブロックはすべての信号を抽出し、入力信号と異なる方法でグループ化できます。例については、Demux ブロックを使用したベクトル要素の抽出を参照してください。Selector ブロックは、指定されたインデックスに基づいて信号を抽出します。抽出された信号は、入力信号とは異なる方法でグループ化できます。

Mux 信号は、通常の連続するベクトルが使用可能であれば、どこでも使用できます。たとえば、Mux 信号で計算を実行できます。計算を実行すると、値が連続するベクトルに存在する場合と同様に Mux 信号の各構成値が影響を受けます。複数のベクトルに対して計算を実行するために Mux 信号を使用することによって、連続するストレージに別々の値をコピーするオーバーヘッドが回避できます。Mux ブロックを使用して、関数呼び出しのベクトルを作成することもできます。

Mux ブロックの入力信号は、スカラー、ベクトル、Mux 信号の任意の組み合わせにできますが、データ型は同じでなければなりません。出力 Mux の信号は、Mux ブロックの入力信号と同じ順序で表示されます。いくつかの段階では複数の Mux ブロックを使用してステージで Mux 信号を作成できますが、単一の Mux ブロックを使用するときと同様に結果はフラットになります。

関連するトピック