ドキュメンテーション

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

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

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

  • ループ処理が向上する

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

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

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

  1. Simulink® エディターで、[解析][モデル アドバイザー][モデル アドバイザー] を選択します。

  2. Simulink ベクトルとして扱われるバス信号のチェックチェックを選択して実行します。

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

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

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

Bus to Vector ブロックの追加

バスを Mux (ベクトル) に明示的に変換するには、次のアプローチのいずれかを使用して 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 を使用する。

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

参考

ブロック

関連するトピック