Main Content

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

Bus to Vector

バーチャル バスをベクトルに変換

  • Bus to Vector block

ライブラリ:
Simulink / Signal Attributes
HDL Coder / Signal Attributes

説明

Bus to Vector ブロックはバーチャル バスをベクトルに変換します。Bus to Vector ブロックは、バスからベクトルへの暗黙的な変換を明示的な変換に置き換える場合にのみ使用します。

バスを受け入れないブロックにおいて、バスがベクトルに暗黙的に変換されることがあります。バスがベクトルとして扱われている場合、バス要素にはアクセスできなくなります。ベクトルとして使用されるバスを特定して修正するには、モデル アドバイザー チェック [ベクトルとして扱われるバス信号のチェック] または関数 Simulink.BlockDiagram.addBusToVector を使用します。

すべて展開する

予期しない変換を特定しやすくするには、バスからベクトルへの許容される変換を Bus to Vector ブロックで指定します。

ex_bus_to_vector モデルを開いてシミュレートします。

model = "ex_bus_to_vector";
load_system(model);
sim(model);
open_system(model);

モデルは正常にシミュレートされています。ただし、Gain ブロックへの入力がバスですが、出力はベクトルです。Gain ブロックがバスをベクトルに暗黙的に変換しています。

バスをベクトルに暗黙的に変換する Bus to Vector ブロックを挿入するには、3 番目の引数を false に設定して関数 Simulink.BlockDiagram.addBusToVector を使用します。

3 番目の引数を false に設定して関数 Simulink.BlockDiagram.addBusToVector を使用すると、モデルが保存されます。この例では、ex_bus_to_vector モデルのコピーを作成するために関数 save_system を使用しています。

model1 = 'ex_bus_to_vector_blocks';
save_system(model,model1)

[blocks,busToVectors] = ...
    Simulink.BlockDiagram.addBusToVector(model1,true,false)
### Processing block diagram 'ex_bus_to_vector_blocks'
### Number of blocks left that are connected to a bus being used as a vector: 2
### Successfully inserted Bus to Vector Blocks in model. Preparing to save model and/or libraries
### To eliminate modeling errors in the future, please enable strict bus modeling by setting the 'Bus signal treated as vector' diagnostic in the Configuration parameter dialog, Diagnostic/Connectivity tab to 'error'
### Done processing block diagram 'ex_bus_to_vector_blocks'
blocks=1×2 struct array with fields:
    BlockPath
    InputPort
    LibPath

busToVectors = 2x1 cell
    {'ex_bus_to_vector_blocks/Bus to Vector' }
    {'ex_bus_to_vector_blocks/Bus to Vector1'}

Gain ブロックでバスからベクトルへの暗黙的な変換が実行されなくなります。挿入した Bus to Vector ブロックで明示的に変換が実行されます。

端子

入力

すべて展開する

入力バスは、スカラーまたは 1 次元で構成されているか、同じデータ型、信号タイプ、サンプリング モードをもつ行ベクトルまたは列ベクトルで構成されていなければなりません。入力が非バス信号の場合、ブロックで変換は行われません。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated
複素数のサポート: あり

出力

すべて展開する

出力ベクトルの次元は入力バス要素の次元によって決まります。入力のバスが行ベクトルまたは列ベクトルを含んでいる場合、ブロックの出力は対応する行ベクトルまたは列ベクトルになります。それ以外の場合は、出力は 1 次元ベクトルになります。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated
複素数のサポート: あり

ブロックの特性

データ型

Boolean | bus | double | enumerated | fixed point | half | integer | single

直達

いいえ

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

ヒント

  • ベクトルとして扱われるバスをシミュレーションの実行中に特定するには、[ベクトルとして扱われるバス信号] コンフィギュレーション パラメーターを [警告] または [エラー] に設定します。[ベクトルとして扱われるバス信号] の既定の設定は [なし] であり、ブロックでバスがベクトルに暗黙的に変換されたときに警告やエラーのメッセージは生成されません。

  • R2007a より前のバージョンの Simulink®[名前を付けて保存] を使用してモデルを保存すると、各 Bus to Vector ブロックが、何も出力しない null サブシステムに置き換えられます。モデルを使用する前に、Bus to Vector ブロックを含むために使用したが null サブシステムによって割り込まれた各パスを再接続するか、別の方法で修正します。

拡張機能

バージョン履歴

R2007a で導入