主要内容

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

非バーチャル バスのバス配列へのグループ化

"バス配列"とは、要素が非バーチャル バスである配列です。

バス配列を使用すると、以下を実現できます。

  • 複数のバスの処理に使用するアルゴリズムを集中管理することで保守作業を軽減する。

  • バス配列と共に 对于每个子系统を使用するなどにより、同じタイプの複数のバスの反復処理を効率化する。

  • バス配列を使用するモデルの部分を再構成することなく、処理されるバスの数を変更する。

  • 分配ブロックや选择器ブロックなどの組み込みブロックを使用して,その他の型の配列のようにバス配列を操作する。バス配列を使用すると,構造体信号のパックおよびアンパックを管理するカスタムs函数を作成する必要がなくなります。

  • C構造体の配列をもつコードが生成され、構造体の配列を使用するレガシ Cコードと統合できる。このアプローチによって、インデックス構造体で对于ループを使用することで、金宝app模拟®計算のための配列へのインデックス付けが簡略化されます。

たとえば、多チャネルのシステム (通信システムなど) をバス配列としてモデル化できます。すべてのチャネルは同じデータ型であり、各チャネルの値は異なる場合があります。

バス配列を使用する複数の方法を示すモデルについては、バス配列のモデル化を参照してください。

バス配列の要件

バス配列に統合されているバスはすべて、以下でなければなりません。

  • 非バーチャルである

  • 同じ金宝app模拟总线オブジェクト データ型 (つまり、同一の名前、階層、およびバス要素の属性) を指定する

  • 可変サイズの信号またはフレームベースの信号がない

非バーチャル バスの作成の詳細については、非バーチャル バスの作成を参照してください。

どのブロックがバス配列をサポートするかの詳細については、バス対応ブロックを参照してください。

非バーチャル バスからのバス配列の作成

向量串联ブロックまたは 矩阵连接ブロックを使用して、非バーチャル バスをバス配列にグループ化できます。模拟では、非バーチャル バスはスカラーとして取り扱われます。金宝appしたがって、バス要素のデータ型にかかわらず、次のブロックのいずれかを使用できます。

次のブロックのいずれかを使用してバス配列を作成するには、次のようにします。

  1. バス配列にグループ化するすべての非バーチャル バスのための金宝app模拟总线オブジェクト データ型を 1.つ定義します。

  2. 向量串联ブロックまたは 矩阵连接ブロックの [ブロック パラメーター] ダイアログ ボックスで、[入力数]を、バス配列に含めるバスの数に設定します。指定した入力端子の数がブロック アイコンに表示されます。

  3. 非バーチャル バスをブロックの入力に接続します。

ブロックの出力はバス配列です。

モデル例を開いてコンパイルします。モデルをコンパイルするには、金宝app模拟ツールストリップの[モデル化]タブで、[モデルの更新]または[実行]をクリックします。モデルをコンパイルするとライン スタイルが更新されます。ライン スタイルを使用してバス配列を視覚的に識別できます。

非バーチャル バスからバス配列を作成する方法を示すため、モデルでは次のものが使用されます。

  • 同じ公共汽车オブジェクト データ型 (总线:总线对象) をもつ 2.つの非バーチャル バスを作成するための 2.つの总线生成ブロック。

  • 2.つの非バーチャル バスを 1.つのバス配列にグループ化するための、[入力数]2.に設定された向量级联、矩阵级联ブロック。

バス配列から要素を選択する方法を示すため,モデルでは次のものが使用されます。

  • ダイアログ ボックスで指定された[インデックス]に基づいてバス配列から1つのバスを抽出するための选择器ブロック。バス配列はその要素にインデックスベースのアクセスを提供する連結された信号なので、选择器ブロックは索引向量(对话框)[インデックス オプション]で使用します。

  • 名前ベースのアクセスを使用して非バーチャル バスの要素を抽出する总线选择器ブロック。

[信号の次元]情報のオーバーレイは、バス配列に 2.つのバスが含まれていることを示しています。[信号の次元]のオーバーレイを有効にするには、金宝app模拟のツールストリップの[デバッグ]タブで[情報のオーバーレイ]、[信号の次元]を選択します。

MATLAB構造体からのバス配列の作成

常数ブロックを使用して、定数値のバス要素をもつバス配列を簡潔に表すことができます。この手法によって、特にモデルがさまざまなパラメーター値でアルゴリズムを繰り返す場合に、モデル内のラインの数およびモデルで使用される変数の数を削減できます。

常数ブロックで次のように指定します。

  • [定数値]を MATLAB構造体の配列、または MATLAB構造体の配列を指定する金宝appSimulink.参数オブジェクトとして

  • [出力データ型]金宝app模拟总线オブジェクトとして

出力データ型が公共汽车オブジェクトの場合にのみ、常数ブロックで MATLAB®構造体がサポートされます。

常量结构数组という名前の構造体の配列を定義します。それぞれの構造体を、抵消获得、および门槛の同じ要素で構成します。

常量结构数组(1)。偏移量=197;常量结构数组(1)。增益=4.32;常量结构数组(1)。阈值=795.68;常量结构数组(2)。偏移量=158;常量结构数组(2)。增益=3.83;常量结构数组(2)。阈值=1039.77;

多くの要素をもつバス階層用の構造体の配列を作成する場合は、関数金宝appSimulink.Bus.CreateMataLabStructの使用を検討してください。

対応する公共汽车オブジェクト データ型を定義します。

金宝appSimulink.Bus.createObject(常量结构数组)

新しい公共汽车オブジェクトは既定の名前slBus1を使用します。

[定数値]常量结构数组に、[出力データ型]总线:slBus1に設定された 常数ブロックを含むモデル例を開いてシミュレーションします。

开放式系统(“ArrayOfBusesFromStructModel”)模拟(“ArrayOfBusesFromStructModel”);

常数ブロックの出力はバス配列です。

对于每个子系统ブロックは、配列内の各非バーチャル バスについて、定数値を反復して処理します。サブシステムの内容は、端子に接続するバス配列ではなく、非バーチャル バスを表示します。

参考

ブロック

関連するトピック