Main Content

Simulink.BlockDiagram.addBusToVector

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

説明

[destBlocks,busToVectorBlocks,ignoredBlocks] = Simulink.BlockDiagram.addBusToVector(model) は、ベクトルとして暗黙的に使用されたバス信号をモデル内で検索して検索結果を返しますが、ライブラリ ブロックは除外されます。

[destBlocks,busToVectorBlocks,ignoredBlocks] = Simulink.BlockDiagram.addBusToVector(model,includeLibs) はモデルを検索し、includeLibstrue の場合は、ベクトルとして暗黙的に使用されたバス信号の検索ライブラリ ブロックに含まれます。

[destBlocks,busToVectorBlocks,ignoredBlocks] = Simulink.BlockDiagram.addBusToVector(model,includeLibs,reportOnly) はモデルを検索し、reportOnlyfalse の場合、検索対象となるブロック内でベクトルとして使用される各バスに Bus to Vector ブロックが挿入されます。この挿入によって、バスがベクトルとして暗黙的に使用される代わりに、バスがベクトルへ明示的に変換されます。信号のソース ブロックと宛先ブロックは変更されません。

Simulink.BlockDiagram.addBusToVectorBus to Vector ブロックをモデルまたはライブラリに追加する場合、ブロック線図の保存されたコピーが変更されます。

Simulink.BlockDiagram.addBusToVector がライブラリ ブロックを変更する場合、変更はライブラリを使用するすべてのモデル内の各ブロックに影響を与えます。

[destBlocks,busToVectorBlocks,ignoredBlocks] = Simulink.BlockDiagram.addBusToVector(model,includeLibs,reportOnly,strictOnly) はモデルを検索し、strictOnlytrue の場合、これらのブロックのいずれかに送られるベクトルとして暗黙的に使用される入力バス信号がないことを、関数がチェックします。これらのブロックはバーチャル バス信号を取ることはできませんが、非バーチャル バス信号は受け入れることができます。

  • Delay

  • Selector

  • Assignment

  • Vector Concatenate

  • Reshape

  • Permute Dimensions

すべて折りたたむ

モデル ex_bus_to_vector は正常にシミュレートされていますが、Gain ブロックへの入力がバスであり、出力はベクトルです。Gain ブロックがバスをベクトルに暗黙的に変換しています。

モデルを開きます。

openExample('simulink/ConvertBusSignalToAVectorExample',...
'supportingFile','ex_bus_to_vector.slx')

ベクトルとして扱われるバスを特定します。

[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 = 

  1×2 struct array with fields:

    BlockPath
    InputPort
    LibPath

Simulink.BlockDiagram.addBusToVector[ベクトルとして扱われるバス信号] コンフィギュレーション パラメーターの関係を理解するには、バスからベクトルへの変換の管理を参照してください。

モデル ex_bus_to_vector は正常にシミュレートされていますが、Gain ブロックへの入力がバスであり、出力はベクトルです。Gain ブロックがバスをベクトルに暗黙的に変換しています。

モデルを開きます。

openExample('simulink/ConvertBusSignalToAVectorExample',...
'supportingFile','ex_bus_to_vector.slx')

Bus to Vector ブロックを挿入します。

reportOnlyfalse に設定して関数 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[ベクトルとして扱われるバス信号] コンフィギュレーション パラメーターの関係を理解するには、バスからベクトルへの変換の管理を参照してください。

入力引数

すべて折りたたむ

モデル名またはハンドル。文字ベクトル、string スカラー、または数値スカラーとして指定します。

データ型: double | char | string

ライブラリ ブロックの検索。false または true として指定します。

  • false — モデル内のブロックのみ検索します。

  • true — ライブラリ ブロックで、ベクトルとして暗黙的に使用されるバス信号を検索します。

2 番目の引数として指定します。

データ型: logical

モデルを変更せずに結果をレポートするかどうかを選択します。false または true として指定します。

  • false — ベクトルとして暗黙的に使用されるバス信号の Bus to Vector ブロックを挿入してモデルを更新します。

  • true — 検索結果をレポートしますが、モデルは変更しません。

3 番目の引数として指定します。引数 modelincludeLibs も指定します。

データ型: logical

ベクトルとして暗黙的に使用される入力バス信号をチェックします。非バーチャルなバス信号は受け入れることができるが、バーチャルなバス信号は受け入れることができないブロックを送ります。false または true として指定します。strictOnlytrue の場合、これらのブロックのいずれかに送られるベクトルとして暗黙的に使用される入力バス信号がないことを、関数がチェックします。これらのブロックはバーチャル バス信号を取ることはできませんが、非バーチャル バス信号は受け入れることができます。

  • Delay

  • Selector

  • Assignment

  • Vector Concatenate

  • Reshape

  • Permute Dimensions

4 番目の引数として指定します。引数 modelincludeLibs および reportOnly も指定しなければなりません。

データ型: logical

出力引数

すべて折りたたむ

バスをベクトルとして扱う、バスに接続されているブロック。構造体の配列として返されます。配列内の各構造体には次のフィールドが含まれています。

  • BlockPath — 文字ベクトル。バスに接続するブロックのパスを指定します。

  • InputPort — 整数。バスに接続する入力端子を指定します。

  • LibPath — ブロックがライブラリ ブロック インスタンスで、includeLibstrue の場合、値はソース ライブラリ ブロックのパスです。そうでない場合、LibPath は空 ([]) です。

関数によって追加される Bus to Vector ブロック。cell 配列として指定します。reportOnlyfalse に設定される場合、cell 配列には、ベクトルとして使用されるバスを置き換えるために追加された各 Bus to Vector ブロックへのパスが含まれます。そうでない場合、busToVectorBlocks は空 ([]) です。

関数で Bus to Vector ブロックを挿入できない状況。構造体の配列として指定します。配列内の各構造体には次のフィールドが含まれています。

  • BlockPath — 文字ベクトル。バスに接続するブロックのパスを指定します。

  • InputPort — 整数。バスに接続する入力端子を指定します。

これらの状況は、入力バーチャル バス信号が、属性の異なる要素で構成されているため、Bus to Vector を挿入できない場合に起こります。

ヒント

  • この関数を実行する前に、次を行います。

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

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

  • reportOnlyfalse に設定して関数を呼び出す前にモデルとライブラリのバックアップを取ります。

  • すべてのモデル内のブロックの変更結果をプレビューするには、includeLibstrue に設定し、reportOnlytrue に設定した Simulink.BlockDiagram.addBusToVector を呼び出します。次に、出力引数 destBlocks で返される情報を調べます。

バージョン履歴

R2007a で導入