このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
バスからベクトルへの変換の管理
この例では、バスからベクトルへの暗黙的な変換を特定して管理する方法を示します。
バスを受け入れないブロックにおいて、バスがベクトルに暗黙的に変換されることがあります。バスがベクトルとして扱われている場合、バス要素にはアクセスできなくなります。
ベクトルに変換できないバスもあります。詳細については、Bus to Vectorを参照してください。
バスからベクトルへの暗黙的な変換の特定
モデル ex_bus_to_vector
を開いてシミュレーションを実行します。
バスを受け入れるには、Gain ブロックでバスをベクトルに暗黙的に変換します。
ベクトルとして扱われるバスをシミュレーションの実行前に特定するには、関数 Simulink.BlockDiagram.addBusToVector
を使用します。
[blocks] = Simulink.BlockDiagram.addBusToVector('ex_bus_to_vector')
### Processing block diagram 'ex_bus_to_vector' ### Number of blocks left that are connected to a bus being used as a vector: 2 ### Done processing block diagram 'ex_bus_to_vector' blocks = 1x2 struct array with fields: BlockPath InputPort LibPath
ベクトルとして扱われるバスをシミュレーションの実行中に特定するには、[ベクトルとして扱われるバス信号] コンフィギュレーション パラメーターを [warning
] または [error
] に設定します。[ベクトルとして扱われるバス信号] の既定の設定は [none
] であり、ブロックでバスがベクトルに暗黙的に変換されたときに警告やエラーのメッセージは生成されません。
バスからベクトルへの変換の明示的な定義
バスをベクトルに暗黙的に変換する Bus to Vector ブロックを挿入するには、reportOnly
を false
に設定して関数 Simulink.BlockDiagram.addBusToVector
を使用します。reportOnly
を false
に設定して関数 Simulink.BlockDiagram.addBusToVector
を使用すると、モデルが保存されます。この例では、モデル ex_bus_to_vector
の書き込み可能なコピーを作成するために関数 save_system
を使用しています。
save_system('ex_bus_to_vector','ex_bus_to_vector_blocks');
[blocks,busToVectors] = Simulink.BlockDiagram.addBusToVector('ex_bus_to_vector_blocks',true,false);
Gain ブロックでバスからベクトルへの暗黙的な変換が実行されなくなります。挿入した Bus to Vector ブロックで明示的に変換が実行されます。
Bus to Vector ブロックはバーチャルであり、シミュレーション結果、コード生成、パフォーマンスには影響しません。
関数 Simulink.BlockDiagram.addBusToVector
を使用すると、それ以外のバスからベクトルへの暗黙的な変換は返されません。
[blocks] = Simulink.BlockDiagram.addBusToVector('ex_bus_to_vector_blocks')
###No buses used as vectors left to process blocks = 1x0 empty struct array with fields: BlockPath InputPort MixedAttributes
バスからベクトルへの許容される変換を Bus to Vector ブロックで指定することで、予期しない変換を特定しやすくなります。コンフィギュレーション パラメーター [ベクトルとして扱われるバス信号] を [warning
] または [error
] に設定すると、バスからベクトルへの予期しない変換が行われたときに通知されます。