Main Content

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

バス エディター

バス オブジェクトの作成、変更、および管理

説明

バス エディターを使用すると、Simulink.Bus オブジェクトおよび Simulink.ConnectionBus オブジェクトと、それらに含まれる Simulink.BusElement オブジェクトまたは Simulink.ConnectionElement オブジェクトをインタラクティブに作成、変更、および管理できます。

[ソース] ペインには、利用可能なソース (MATLAB® ベース ワークスペースと開いているデータ ディクショナリ) が表示されます。作成したオブジェクトは選択したソースに格納されます。ツールストリップで、データ ディクショナリを作成するか開くことができます。MAT ファイル、関数、またはスクリプトによって定義されたオブジェクトをベース ワークスペースにインポートすることもできます。

対話型のテーブルには、階層やプロパティなどのオブジェクトに関する情報が表示されます。テーブルに表示する列を選択するには、ツールストリップの [列] リストを使用します。このテーブルを使用して次を行います。

  • コンテンツのフィルター — ユニバーサル フィルターまたは列固有のフィルターを入力します。

  • 値の変更 — テーブルで値をダブルクリックし、新しい値を入力します。バス オブジェクトとその要素のプロパティは、バス オブジェクトがデータ型として指定されている場所ではなく最上位レベルで編集します。

  • 要素の並べ替え — 要素を新しい位置にドラッグするか、ツールストリップの [上に移動] ボタンと [下に移動] ボタンを使用します。

  • 要素の切り取り、コピーおよび貼り付け — キーボード ショートカットまたはツールストリップの対応するボタンを使用します。

  • 要素の削除 — Delete キーを押すか、ツールストリップの [削除] ボタンをクリックします。バス オブジェクトを削除すると、それに含まれる要素オブジェクトも削除されます。削除したオブジェクトを指定するすべてのブロックを更新します。バス オブジェクトが使用されているモデル内の場所を確認するには、特定の変数を使用するブロックの検索を参照してください。

このテーブルでは、同じタイプの複数の選択オブジェクトを同時に編集できます。

[プロパティ インスペクター] ペインでは、オブジェクト 1 つずつに焦点を当ててそのプロパティを編集できます。サポートされていない値を入力すると、診断メッセージがこのペインに表示されます。

メモ

バス エディターでは、元に戻す操作ややり直す操作はサポートされていません。オブジェクトの作成、並べ替え、または削除による変更は、ベース ワークスペースですぐに有効になります。

バス エディターでは、オブジェクト定義を MAT ファイル (.mat) または関数 (.m) にエクスポートできます。また、Simulink.Bus オブジェクトから MATLAB 構造体または Simulink.Parameter オブジェクトを作成できます。これらのアクションはツールストリップの [共有] セクションにあります。

バス エディター を開く

  • Simulink® ツールストリップ: [モデル化] タブの [設計] ギャラリーで、[バス エディター] をクリックします。

  • MATLAB コマンド ウィンドウ: 「buseditor」と入力します。

  • モデル エクスプローラー: バス オブジェクトのダイアログ ボックスで [バス エディターを起動] をクリックします。

すべて展開する

Simulink.Bus オブジェクトをもつモデルのインターフェイスを定義するとします。この例では、インターフェイスは sinechirpconstantpulse、および saw という名前の信号を受信します。このインターフェイスがそのすべての信号をグループ化するようにします。そのグループ内で、このインターフェイスが正弦波信号と非正弦波信号をグループ化するようにします。

ベース ワークスペースまたはデータ ディクショナリにオブジェクトを作成できます。[ソース] ペインで、新しいオブジェクトを格納する場所を選択します。

  • データ ディクショナリを作成するには、バス エディターのツールストリップで [新規] をクリックします。ダイアログ ボックスで、データ ディクショナリの名前を指定します。次に、[保存] をクリックします。

  • データ ディクショナリを開くには、バス エディターのツールストリップで [開く] をクリックします。ダイアログ ボックスで、開くデータ ディクショナリを指定します。次に、[開く] をクリックします。

3 つの Simulink.Bus オブジェクトを作成します。

  1. ツールストリップの [追加] ギャラリーで、[バス] を 3 回クリックして 3 つの Bus オブジェクトを作成します。

  2. オブジェクトに interfacesinusoidal、および nonsinusoidal という名前を付けます。テーブルで各オブジェクト名をダブルクリックして新しい名前を入力するか、[プロパティ インスペクター] ペインを使用します。

Simulink.BusElement オブジェクトを Bus オブジェクトに追加します。

  1. interface という名前のオブジェクトを選択し、それに 3 つの BusElement オブジェクトを追加します。ツールストリップで [バス要素] を 3 回クリックします。

  2. 要素に constantsinusoidal_bus、および nonsinusoidal_bus という名前を付けます。テーブルで各オブジェクト名をダブルクリックして新しい名前を入力するか、[プロパティ インスペクター] ペインを使用します。

  3. 同様に、sinusoidal バス オブジェクトを選択し、それに sine および chirp という名前の 2 つの要素を追加します。

  4. nonsinusoidal バス オブジェクトを選択し、それに pulse および saw という名前の 2 つの要素を追加します。

バス内の要素はどれも、下位のバスを格納する別のバスとなることができます。その下位のバスもさらに下位のバスを格納でき、深さに制限はありません。このバス階層を再現するために、バス要素オブジェクトではバス オブジェクト データ型を指定できます。

sinusoidal および nonsinusoidal という名前の Bus オブジェクトを interface という名前の Bus オブジェクト内に入れ子にします。

  1. sinusoidal_bus という名前のオブジェクトの場合、[データ型]Bus: sinusoidal に設定します。

  2. nonsinusoidal_bus という名前のオブジェクトの場合、[データ型]Bus: nonsinusoidal に設定します。

interface という名前のオブジェクトが、コンポーネント インターフェイスの目的の階層と一致するようになりました。このオブジェクトをコンポーネント インターフェイスで指定するには、これを In Bus ElementInportOut Bus Element、および Outport ブロックのデータ型として指定します。

ベース ワークスペースまたはデータ ディクショナリでバス オブジェクトを作成または変更したら、後で使用するためにオブジェクトを保存します。これらのオブジェクトをブロックで指定する場合、オブジェクトはシミュレーションに必要になります。

バス エディターではバス オブジェクトは MAT ファイル (.mat)、MATLAB 関数 (.m)、またはデータ ディクショナリ (.sldd) に保存できます。

ベース ワークスペース内にあるオブジェクトを保存するには、次を行います。

  1. [ソース] ペインで、ベース ワークスペースを選択します。

  2. ツールストリップで、[エクスポート] ボタンの矢印をクリックします。次に、MAT ファイルを作成するオプションと MATLAB 関数を作成するオプションのいずれかを選択します。

    MATLAB 関数の場合は、オブジェクトを圧縮セル形式またはより読みやすいオブジェクト形式で保存できます。

  3. [エクスポート] ダイアログ ボックスで、ファイル名を指定して [保存] をクリックします。

あるいは、ベース ワークスペースからオブジェクトを切り取るかコピーします。次に、データ ディクショナリに貼り付けます。

データ ディクショナリ内にあるオブジェクトを保存するには、次を行います。

  1. [ソース] ペインで、変更したデータ ディクショナリを選択します。

  2. ツールストリップで [保存] をクリックします。あるいは、データ ディクショナリを右クリックして [変更の保存] を選択します。

バス エディターを使用して、複数のソースのバス オブジェクトを管理できます。

バス オブジェクトを関数、スクリプト、または MAT ファイルからインポートできます。

  1. ツールストリップで、[インポート] ボタンの矢印をクリックしていずれかのオプションを選択します。

  2. [ベース ワークスペースにインポート] ダイアログ ボックスで、バス オブジェクトを定義するファイルを選択して [開く] をクリックします。

インポートによって、バス オブジェクトだけでなく、ファイルの完全な内容が読み込まれます。テーブルには、利用可能なバス オブジェクトがアルファベット順に表示されます。

データ ディクショナリを開いてそのバス オブジェクトを管理することもできます。

  1. ツールストリップで [開く] をクリックします。

  2. [開く] ダイアログ ボックスで、バス オブジェクトを定義するデータ ディクショナリを選択して [開く] をクリックします。

フィルターを使用すると、バス要素が名前またはプロパティ値で迅速に見つかります。フィルターには検索用語または正規表現を指定できます。正規表現の詳細については、正規表現を参照してください。

double データ型の要素を迅速に見つけるには、[コンテンツのフィルター] ボックス、または [DataType] 列見出しをポイントして表示されるボタンをクリックし、その後表示される [Filter by DataType] ボックスに「double」と入力します。入力と同時に、テーブルは動的に更新され、フィルターと一致する名前またはプロパティ値をもつオブジェクトとその親のみが表示されます。比較では大文字小文字を区別しません。

バス エディターを使用して、ベース ワークスペースおよびデータ ディクショナリ内のバス オブジェクトを変更できます。

バス エディターで同じタイプの 1 つ以上のオブジェクトを編集するには、次を行います。

  1. 更新するオブジェクトを選択します。

    • 複数の連続していないオブジェクトを選択するには、Ctrl キーを押したまま各要素を選択します。

    • 複数の連続したオブジェクトを選択するには、Shift キーを押したまま最初と最後の要素を選択します。

    • すべてのオブジェクトを選択するには、まず 1 つのオブジェクトを選択します。次に、Ctrl + A キーを押します。

  2. 同じタイプのオブジェクトである選択したすべての要素について変更するプロパティ値をダブルクリックします。次に、新しい値を指定します。

    新しい値を確定すると、同じタイプのオブジェクトである選択したすべてのオブジェクトに変更が適用されます。

[プロパティ インスペクター] ペインでオブジェクトを 1 つずつ編集することもできます。

入れ子にされたバス オブジェクトの要素を編集するには、グレー表示の要素を右クリックし、[移動] を選択してその要素の編集可能なインスタンスに移動します。

要素を並べ替えるには、要素を選択して新しい位置にドラッグするか、ツールストリップの [上に移動] ボタンと [下に移動] ボタンを使用します。

フィルター処理後の表示の内容は、フィルター処理されていない表示と同様に編集できます。フィルターと一致しなくなった要素はテーブルに表示されなくなります。逆に、フィルター処理後のオブジェクトがバス エディター外の何らかのアクティビティによって変更されたために、現在のフィルターを通過した場合、オブジェクトは即座に表示されます。

操作は利用可能なオブジェクトにのみ影響します。フィルターで非表示にされたオブジェクトは、操作の影響を受けません。利用可能なすべてのオブジェクトで操作を行うには、フィルターをクリアします。

バス エディターを使用して、初期化用の MATLAB 構造体を作成できます。

temperature および pressure という名前の 2 つの要素を含む MyData という名前の Simulink.Bus オブジェクトがあるとします。

  • temperature — データ型が int16 の信号

  • pressure — データ型が Bus: PressureBus で、次元が [1 3] と指定されている入れ子にされたバス配列

PressureBus という名前の入れ子にされた Bus オブジェクトには、s1 および s2 という名前の 2 つの要素があります。

MyData bus object in the Bus Editor

MyData という名前の Bus オブジェクトを選択します。次に、ツールストリップで [MATLAB 構造体] をクリックします。

新しい MATLAB 構造体の名前と場所を指定します。

MATLAB 構造体は、各要素に対して初期条件 0 を指定します。

MyData_MATLABStruct = struct;
MyData_MATLABStruct.temperature = int16(0);
MyData_MATLABStruct.pressure = struct;
MyData_MATLABStruct.pressure(1).s1 = 0;
MyData_MATLABStruct.pressure(1).s2 = 0;
MyData_MATLABStruct.pressure(2).s1 = 0;
MyData_MATLABStruct.pressure(2).s2 = 0;
MyData_MATLABStruct.pressure(3).s1 = 0;
MyData_MATLABStruct.pressure(3).s2 = 0;

必要に応じて、構造体要素の初期条件を変更します。

MATLAB 構造体を使用して、Unit Delay ブロックなどのブロックの [初期条件] パラメーターを指定します。

バス配列を定義する最上位 Bus オブジェクトの MATLAB 構造体を作成するには、関数 Simulink.Bus.createMATLABStruct を使用します。

ヒント

  • バス オブジェクトは直接または間接的に自身を参照できません。循環構造を定義すると、バス エディターでは、循環構造を完結する要素の元のデータ型が維持されます。

  • バス エディターには関係のある列のみを表示してください。たとえば、Simulink.ConnectionBus オブジェクトを使用しない場合は、バス エディターのツールストリップで [列] をクリックし、[Type] をオフにします。

  • Bus Creator ブロックでバスを作成するモデルがある場合は、関数 Simulink.Bus.createObject を使用して、Simulink.Bus オブジェクトと Simulink.BusElement オブジェクトをそれぞれ個別に作成するのではなく、対応するオブジェクトを作成できます。

バージョン履歴

R2006a より前に導入

すべて展開する