ドキュメンテーション

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

Simulink.BlockDiagram.addBusToVector

バスを Vector ブロックに追加してバーチャル バス信号をベクトル信号に変換

構文

[DstBlocks, BusToVectorBlocks] = Simulink.BlockDiagram.addBusToVector('model')
[DstBlocks, BusToVectorBlocks] = Simulink.BlockDiagram.addBusToVector('model', includeLibs)
[DstBlocks, BusToVectorBlocks] = Simulink.BlockDiagram.addBusToVector('model', includeLibs, reportOnly)

説明

[DstBlocks, BusToVectorBlocks] = Simulink.BlockDiagram.addBusToVector('model') は、ベクトルとして暗黙に使用されたバス信号をモデル内で検索して検索結果を返しますが、ライブラリ ブロックは除外されます。この関数を実行する前に、以下のことを行わなければなりません。

  1. [シミュレーション]、[モデル コンフィギュレーション パラメーター]、[診断]、[接続性]、[バス]、[Mux ブロックをバス信号の作成に使用][エラー] に設定します。または、それと等価の set_param (model, 'StrictBusMsg', 'ErrorLevel1') を実行します。

  2. モデルのコンパイルをエラーなく実行します。

  3. モデルを保存します。

[DstBlocks, BusToVectorBlocks] = Simulink.BlockDiagram.addBusToVector('model', includeLibs) は、includeLibsfalse の場合、[DstBlocks, BusToVectorBlocks] = Simulink.BlockDiagram.addBusToVector(model) と等価です。

includeLibstrue の場合、この関数はライブラリ ブロックを除外せずに検索します。

[DstBlocks, BusToVectorBlocks] = Simulink.BlockDiagram.addBusToVector('model', includeLibs, reportOnly) は、reportOnlytrue の場合、[DstBlocks, BusToVectorBlocks] = Simulink.BlockDiagram.addBusToVector(model, includeLibs) と等価です。

reportOnlyfalse の場合、検索対象となるブロック内でベクトルとして使用される各バスに Bus to Vector ブロックが挿入されます。ライブラリ ブロックを検索するかどうかは includeLibs で指定します。この挿入によって、バスがベクトルとして暗黙的に使用される代わりに、バスがベクトルへ明示的に変換されます。信号の発生元と目的ブロックは、この挿入により変化しません。

Simulink.BlockDiagram.addBusToVector がBus to Vector ブロックをモデルまたはライブラリに追加する場合、関数は、ブロック線図の保存されたコピーを不可逆的に変更します。reportOnlyfalse と指定して、関数を呼び出す前にモデルとライブラリのバックアップを取ってください。

Simulink.BlockDiagram.addBusToVector がライブラリ ブロックを変更する場合、変更はライブラリを使用する各 Simulink® モデル内の各ブロックに影響を与えます。すべてのモデル内でのブロックへの変更の影響を見るには、Simulink.BlockDiagram.addBusToVectorincludeLibs = truereportOnly = true を指定して実行し、DstBlocks に返される情報を調べます。

入力引数

model

モデル名またはハンドル

includeLibs

Boolean。ライブラリ ブロックを検索する (true) か、最上位モデルのみを検索する (false) かを指定します。

既定値: false

reportOnly

Boolean。モデルを変更する (false) か、レポートを生成するだけ (true) かを指定します。

既定値: true

出力引数

DstBlocks

バスに接続され、バスをベクトルとして取り扱うブロックに関する情報を含む配列または構造体。そのようなブロックが存在しない場合は、配列の長さは 0 です。配列内の各構造体は、以下のフィールドを含みます。

BlockPath

文字列。バスに接続するブロックのパスを指定します。

InputPort整数。バスに接続する入力端子を指定します。
LibPathブロックがライブラリ ブロックで、includeLibstrueの場合は、ソース ライブラリ ブロックのパス。そうでない場合は、LibPath は空 ([]) です。

BusToVectorBlocks

reportOnlyfalse で、model がベクトルとして使われるバスを含む場合は、モデルに追加された Bus to Vector ブロックのパスを含むセル配列。そうでない場合は、BusToVectorBlocks は空 ([]) です。

ヒント

Mux として使用されるバーチャル バスに関する警告とエラーは、Simulink.BlockDiagram.addBustoVector を使用して、Bus to Vector ブロックを Mux として使用されるバーチャル バス信号に挿入することによって排除できます。詳細は、「バスと Mux の混在の防止」を参照してください。

以下のモデルは、正常にシミュレートされていますが、Gain ブロックへの入力がバスであり、出力はベクトルです。そのため、Gain ブロックはブロックをベクトルとして利用します。

このモデルが現在のモデルとして開いている場合は、以下のコマンドにより暗黙的な変換を除去することができます。

Simulink.BlockDiagram.addBusToVector(gcs, false, false)

モデルをリビルドおよびシミュレートすると、以下の結果を得ます。

Gain ブロックは、バスをベクトルに暗黙的に変換しません。挿入された Bus to Vector ブロックは、変換を明示的に実行します。両方のモデルでシミュレーション結果が同じであることに注目してください。Bus to Vector ブロックはバーチャルで、シミュレーション結果、コード生成、パフォーマンスに影響を与えません。

この情報は役に立ちましたか?