ドキュメンテーション

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

バーチャル信号

バーチャル信号について

バーチャル信号とは、他の信号またはその一部を視覚的に表す信号です。バーチャル信号は、単に視覚的なものであり、機能的および数学的な意味はありません。したがって、モデルをシミュレーションするときは無視されます。また、生成コードでは存在しません。Mux ブロックなどの一部のブロックでは、常にバーチャル信号が生成されます。一方、バーチャル信号または非バーチャル信号のいずれかを生成する Bus Creator ブロックのような信号もあります。

バーチャル信号の非バーチャル コンポーネントは、領域と呼ばれます。1 つのバーチャル信号に同じ領域が複数回含まれている場合もあります。たとえば、同じ非バーチャル信号が Mux ブロックの 2 つの入力端子に接続されている場合、ブロックは領域を 2 つ含む 1 つのバーチャル信号を出力します。領域は、最終的な動作によって情報が複製された場合でも、2 つの異なる非バーチャル信号で生成された場合は別々に動作します。

バス信号は、バーチャルにも非バーチャルにもできます。詳細については、バーチャル バスと非バーチャル バスを参照してください。

Mux 信号

Simulink® Mux は、2 つ以上のスカラー信号またはベクトル信号を 1 つの信号線に視覚的に結合するバーチャル信号です。Simulink Mux は、複数のデータ ストリームを 1 つのチャネルに結合するハードウェア マルチプレクサーではありません。信号は、Simulink Mux によって機能的な意味では結合されません。すなわち、Mux は仮想的にのみ存在しており、その唯一の目的はモデルの外観を単純化することです。Mux を使用しても、シミュレーションまたは生成コードには影響しません。

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

Simulink ドキュメンテーションには、"Mux"、"ベクトル"、および "幅の広い信号" が記載されており (同義的に扱う場合もあります)、これら 3 つの用語はすべて、Simulink のダイアログ ボックスのラベルおよび API 名に表示されます。この専門用語は、多くのベクトル信号が非バーチャルで、Mux とは異なるため、紛らわしい場合があります。混同を避けるため、用語「Mux」は特にバーチャル ベクトルを指すものと定義します。

Mux は、"バーチャル" なベクトル信号です。Mux の構成信号は、視覚的なものを除くすべての条件でそれぞれ独立しています。また、Vector Concatenate ブロックを使用して、スカラー信号とベクトル信号を "非バーチャル" なベクトル信号に結合することもできます。Vector Concatenate ブロックの信号出力は通常の連続するベクトルで、異なる信号から作成されたことから特別なプロパティは継承しません。

異なるデータ型をもつ可能性のある構成要素の信号を維持しながら合成信号を作成するには、Mux ブロックではなく Bus Creator ブロックまたは Out Bus Element ブロックを使用します。詳細については、合成信号手法を参照してください。

Mux の使用

Signal Routing ライブラリは Mux を実装するための 2 つのバーチャル ブロックを提供します。

Mux

複数の入力信号を組み合わせて 1 つの Mux (バーチャル ベクトル) 信号にします。

Demux

Mux (バーチャル ベクトル) 信号の値を抽出して出力します。

Mux 信号を実装するには、以下のようにします。

  1. Signal Routing ライブラリから Mux ブロックおよび Demux ブロックを選択します。

  2. Mux ブロック [入力数] と Demux ブロック [出力数] のブロック パラメーターを目的の値に設定します。

  3. 必要に応じて、Mux ブロック、Demux ブロック、およびその他のブロックを接続し、目的の信号を実行します。

次の図は、Mux ブロックに入力され、Mux 信号として Demux ブロックに送信され、別々の信号として出力される 3 つの信号を示しています。

見た目の複雑さを減らすために、ブロック名を非表示にできます。この例では、このモデルが、[情報表示][信号と端子][非スカラー ラインを太く表示] オプションが有効になっている状態でビルドされているため、ブロックを接続する Mux 信号を表すラインは、幅が広くなっています。詳細については、信号属性の表示を参照してください。

Mux ブロックに対しては、スカラー信号、ベクトル信号および Mux 信号を組み合わせて入力することもできます。出力 Mux の信号は、Mux ブロックに入力された順序で表示されます。いくつかの段階では複数の Mux ブロックを使用して Mux を作成できますが、作成されるモデルは、構成要素の信号が信号の Mux ブロックを使用して結合された場合と同様にフラットで、階層構造にはなりません。

Mux ブロックに入力されるすべての信号の値のデータ型は同じでなければなりません。

Demux ブロックで入力信号内の値よりも多くの値を出力しようとすると、エラーが発生します。Demux ブロックでは、入力 Mux 内の値よりも少ない値を出力したり、Mux ブロックに入力されたスカラーとベクトルとは別のスカラーとベクトルに出力される値をグループ化できます。ただし、Demux ブロックはこれらの値の順序を再変更することはできません。詳細については、Demux を参照してください。

メモ

バスの作成およびアクセスのために Mux ブロックおよび Demux ブロックを使用しないでください。

関連するトピック