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

ベクトルとして使用されるバスの修正

ベクトル入力を要するブロックがバス入力を受け取ると、バスは暗黙的にベクトルとして扱われます。バスをベクトルとして使用しないようにモデルを設定すると、次のメリットがあります。

  • ループ処理が向上する

  • 編集およびコンパイル時の動作が一貫したものになる

モデル アドバイザーを使用したバスの修正

ベクトルとして使用されるバスを修正するとき、一般的に最も効率的な方法がモデル アドバイザーを使用することです。

  1. [モデル化] タブで [モデル アドバイザー] をクリックします。

  2. 最上位モデルを選択し、[OK] をクリックします。

  3. [タスク別][バスによる信号およびパラメーターのモデル化]ベクトルとして扱われるバス信号のチェックを選択します。

  4. [このチェックを実行] ボタンをクリックします。

    モデル アドバイザーは、ベクトルとして扱われるバスの事例をすべてレポートします。

  5. モデル アドバイザーの指示に従い、チェックによってレポートされたエラーを修正します。

モデル アドバイザーの使用についての詳細は、モデル アドバイザーを使用したモデルのチェックを参照してください。

Bus to Vector ブロックの追加

バスをベクトルに明示的に変換するには、次のアプローチのいずれかを使用して Bus to Vector ブロックを追加します。

  • ベクトルとして扱われるバスに Bus to Vector ブロックを挿入する。

  • ベクトルとして扱われるバスに Bus to Vector ブロックを自動的に挿入する関数 Simulink.BlockDiagram.addBusToVector を使用する。

たとえば、Gain ブロックへの入力としてバスを使用すると、モデル ex_bus_to_vector はそのバスをベクトルとして扱います。

この図は、同じモデルで Bus Creator ブロックの後に Bus to Vector ブロックを追加した状態を示しています。

Scope ブロックにはシミュレーション結果が示されます。

シミュレーション結果はいずれの場合も同じです。Bus to Vector ブロックはバーチャルで、シミュレーション結果、コード生成、パフォーマンスに影響を与えません。

モデルの再構成

ベクトル入力を要求するブロックにバスを送らないよう、ベクトル入力を要求するブロックのソースを手動で置き換えることができます。

たとえば、モデル ex_bus_to_vector では、Gain ブロックがベクトル信号を要求します。しかし、入力信号は、Bus Creator ブロックによって作成されたバスです。

Gain ブロックに必要なベクトル信号を提供するには、Bus Creator ブロックを Mux ブロックに置き換えます。

モデルの手動での再編成には、次のような課題があります。

  • モデル内の出現箇所をすべて特定するのは困難である。

  • モデルの多くの出現箇所を処理することは、時間がかかり、エラーが発生しやすい。

  • モデルを再構成してこの問題に対処する場合、モデルの他の要素を妨げる可能性がある。

バスからベクトルへの暗黙的な変換の特定

ベクトルとして扱われるバスを特定するには、次のようにします。

  • モデル アドバイザーの [ベクトルとして扱われるバス信号のチェック] チェックを使用する。

  • 関数 Simulink.BlockDiagram.addBusToVector を使用する。

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

参考

ブロック

関連するトピック