Main Content

自動バス変換の特定

合成信号の要件や制限に準拠するために、Simulink® は非表示の Bus to Vector ブロックと Signal Conversion ブロックをモデルに追加する場合があります。これらの追加により、時間がかかり、エラーが発生しやすいモデルの手動による変換やリファクタリングの回避に役立ちます。

バスからベクトルへの変換

ブロックがベクトルを要求しているにもかかわらずバーチャル バスを受け取る場合、非表示の Bus to Vector ブロックはバスをベクトルに変換する場合があります。Bus to Vector ブロックはバーチャルであり、シミュレーション結果、コード生成またはパフォーマンスには影響しません。ただし、バスがベクトルとして扱われると、バスの要素にアクセスできなくなります。

バスがベクトルとして扱われるときに警告またはエラーを受け取るには、[ベクトルとして扱われるバス信号] コンフィギュレーション パラメーターをそれぞれ [警告] または [エラー] に設定します。これらの設定により、潜在的な問題は、バスを必要とする下流ブロックではなく、ソースで特定できるようになります。

ベクトルとして使用されるバスを修正するには、次の手順を実行します。

バーチャルおよび非バーチャル バスの変換

シミュレーションまたはコード生成の前にブロック線図を更新する場合、Simulink はバーチャル バスを非バーチャル バスに、または非バーチャル バスをバーチャル バスに自動的に変換することがあります。たとえば、Simulink では、次の場合にバスが暗黙的に変換されます。

  • S-Function ブロックなどのブロックまたは Stateflow® チャートはバーチャル バスを受け取りますが、必要とするのは非バーチャル バスです。

  • 参照モデルは非バーチャル バスを受け取りますが、対応する Inport ブロックではバーチャル バスを指定します。

  • ルートレベルの Outport ブロックは非バーチャル バスを受け取りますが、バーチャル バスを指定します。

Simulink は、非表示の Signal Conversion ブロックをモデルの必要な箇所に挿入します。Simulink.Bus オブジェクトがバーチャル バスに対して指定されていない場合、非バーチャル バスへの変換は失敗し、エラーが発生します。

Bus to Vector ブロックとは異なり、Signal Conversion ブロックは出力バスの構造体に影響しません。

既定では、In Bus Element ブロックと Out Bus Element ブロックが、バスからバスの仮想性を継承します。バーチャル バスまたは非バーチャル バスのいずれかを指定すると、バスの仮想性が自動的に変換されずにエラーが発生します。

参考

ブロック

関連する例

詳細