このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Simulink.Bus オブジェクト データ型でのバス プロパティの指定
バスは Simulink.Bus
オブジェクトと関連付けることができます。このオブジェクトは、バスを検証するために Simulink® が使用するプロパティを指定します。Bus
オブジェクトは、バーチャル バスではオプションですが、非バーチャル バスでは必須です。
Bus
オブジェクトでは、それが格納する信号の値とは異なり、バスのアーキテクチャ上のプロパティのみが指定されます。たとえば、Bus
オブジェクトではバス内の要素の数、それらの要素の順序、要素の入れ子構造の有無とその方法、および構成要素の信号のデータ型は指定できますが、信号値は指定できません。
Bus
オブジェクトは、C における構造定義に似ています。つまり、Bus オブジェクトは、バスのメンバーを定義しますが、バスは作成しません。Bus
オブジェクトはケーブル コネクタにも似ています。コネクタはすべてのピンとそれらの構成を定義し、接続可能なワイヤのタイプを制御します。同様に、Bus
オブジェクトは関連付けられたバスに必要な信号の構成とプロパティを定義します。
Simulink.Bus オブジェクト ワークフロー
モデルで Bus
オブジェクトを使用するには、次のタスクを実行します。多くの場合は対話形式で行います。
Simulink.Bus オブジェクトを使用するかどうかの判定
以下のモデリング構成では Bus
オブジェクトを使用しなければなりません。
非バーチャル バス
バス入力または出力を含む Stateflow® チャート
外部コードとの S-Function またはレガシ コード ツール インターフェイス
Bus
オブジェクトは、複数のブロックと関連付けることができます。一部のブロックでは、ブロックにバス入力またはバス出力がある場合、Bus
オブジェクトの指定が必要です。詳細については、バス対応ブロックを参照してください。
Bus
オブジェクトがブロックに対する信号の入力または出力を管理する場合、信号は、オブジェクトによって指定されたとおりのプロパティをもつバスでなければなりません。誤差があるとエラーが発生します。
Bus Creator または In Bus Element ブロック パラメーターを使用してバスのプロパティを指定した場合、そのバスからの下流のすべてのブロックが同じプロパティを継承します。
Bus Creator ブロック パラメーターを使用してバーチャル バスを定義し、制限されたエラー チェックを実行できます。バスでエラー チェックを実行するには、Bus
オブジェクトをそのバスに関連付けます。Bus
オブジェクトを使用してバスのエラーをチェックすることは、再利用可能で共有可能なモデル コンポーネントを作成する際に重要です。
モデルとバスの生成コード間の対応関係のトレースを容易にするには、非バーチャル バスを使用します。非バーチャル バスに対して生成されたコードは、構造を生成します。非バーチャル バスにより、いくつかのバスの複数のコピーが生成される場合があります。
Simulink.Bus オブジェクトの管理方法の決定
Bus
オブジェクトは次の場所に保存できます。
データ ディクショナリ
関数
MAT ファイル
データベース ファイルまたはその他の外部ファイル
Bus
オブジェクトを保存しない場合、そのBus
オブジェクトを使用するモデルを再度開くときに、Bus
オブジェクトを再作成しなければなりません。
Bus
オブジェクトのストレージの場所によって、メリットも異なります。
場所 | 使用法に関する注意事項 |
---|---|
データ ディクショナリ | 大きなモデルのコンポーネント化に使用します。 ベース ワークスペースからデータ ディクショナリに保存する場合は、 データ ディクショナリに保存する前に、データ ディクショナリに移行する前の考慮事項を参照してください。 |
関数 | トレーサビリティとモデルの差別化に MATLAB® を使用する場合に使用します。 |
MAT ファイル | より高速な |
データベース ファイルまたはその他の外部ファイル | バス インターフェイス情報と外部データ ソースに保存された設計ドキュメントの比較に使用します。 |
Simulink.Bus オブジェクトの作成と指定
Bus
オブジェクトを対話的に作成または編集するために、型エディターまたはモデル エクスプローラーを使用します。これらのツールで作成された Bus
オブジェクトは最初にベース ワークスペースまたはデータ ディクショナリに保存されます。バス階層を可視化してインポートやエクスポートなどの機能にアクセスするには、型エディターを使用します。更新するオブジェクトのタイプが複数ある場合、モデル エクスプローラーを使用します。モデル エクスプローラーでは、Simulink.Parameter
オブジェクトなど、追加のタイプのオブジェクトを更新できます。
Bus
オブジェクトをプログラムで作成および編集するには、プログラムによる Simulink バス オブジェクトの作成を参照します。Bus
オブジェクトは最初にベース ワークスペース、データ ディクショナリ、または関数のいずれかに保存されます。
Bus
オブジェクトを作成し、その属性を指定したら、オブジェクトが提供するバス定義を使用する必要のあるブロックにそれを関連付けることができます。ブロックをバスに関連付けるには、[ブロック パラメーター] ダイアログ ボックスで、[出力データ型] または [データ型] を [バス: <object name>]
に設定し、<object name>
を Bus
オブジェクト名で置き換えます。
Bus
オブジェクトの定義前または定義後のいずれかに、ブロックのデータ型として Bus
オブジェクトを指定できます。ただし、モデルをシミュレートする前に、Bus
オブジェクトと対応するバスに、同じ数のバス要素が同じ順序で含まれていなければなりません。また、Bus
オブジェクトおよび対応するバス内の各要素が同じデータ型と次元をもたなければなりません。
モデルの開発中に、バスを変更して Bus
オブジェクトと一致させるか、Bus
オブジェクトを変更してバスと一致させることができます。
Bus
オブジェクトを変更しない場合は、次を実行できます。
バスの変更に一致する
Bus
オブジェクトを作成し、変更されたバスが接続されるブロックに対して新しいBus
オブジェクトを使用する。バスの変更を元に戻して、バスが関連付けられている
Bus
オブジェクトと引き続き一致するようにする。
Simulink.Bus オブジェクトの保存
ベース ワークスペースに保存されている Bus
オブジェクトを保存するには、ベース ワークスペースの内容を保存するどの MATLAB 方法でも使用できます。ただし、結果のファイルには、Bus
オブジェクトだけでなく、ベース ワークスペース内のすべての内容が含まれます。
Bus
オブジェクトはさまざまな場所に保存できます。
場所 | ファイルの作成方法 | ファイルの内容 |
---|---|---|
データ ディクショナリ | Simulink データ ディクショナリを使用するモデルの移行を参照してください。 | モデルで使用される Bus オブジェクトとその他のベース ワークスペース変数 |
関数 | 関数Type Editorまたは Simulink.Bus.save を使用します。 | Bus オブジェクト |
MAT ファイル | Type Editorを使用します。 | Bus オブジェクト |
データベース ファイルまたはその他の外部ファイル | C コード構造体 ( | Bus オブジェクト |
保存された Bus
オブジェクトを変更する場合は、それらのオブジェクトを再度保存して変更を維持しなければなりません。
Simulink.Bus オブジェクトからモデルへのマッピング
モデルのシミュレーションを実行する前に、モデルが使用するすべての Bus
オブジェクトをモデルが使用するベース ワークスペースまたはデータ ディクショナリに読み込まなければなりません。モデルにおける自動化と整合性を確保するためには、Bus
オブジェクトからモデルへのマッピングが重要です。
モデルが必要とするすべての
Bus
オブジェクトを特定することで、モデルを実行する前にそれらのオブジェクトを確実に読み込むことができます。Bus
オブジェクトを使用するすべてのモデルを特定することで、Bus
オブジェクトの変更がBus
オブジェクトを使用するモデルにおける予期しない変化の原因にならないことを確認できます。
モデルの実行前に必要な Bus
オブジェクトの読み込みを行うには、次を検討してください。
プロジェクト — プロジェクトを開くタイミングで実行されるファイルを設定すると、
Bus
オブジェクトを定義するファイルが自動的に読み込みまたは実行されます。詳細については、プロジェクト管理を参照してください。データ ディクショナリ — 1 つ以上のモデルの変数をもつ
Bus
オブジェクトおよびその他のオブジェクトを格納します。モデル間で
Bus
オブジェクトを共有するには、各モデルをディクショナリにリンクし、共通の参照ディクショナリを作成してオブジェクトを格納します。例については、参照ディクショナリを使用したディクショナリ データの分割を参照してください。データベース — マッピング情報をデータベースなどの外部データ ソースで取得します。
モデル コールバック —
PreLoadFcn
などのモデル コールバックを使用して、Bus
オブジェクトを定義するファイルを読み込みまたは実行します。詳細については、モデル コールバックを参照してください。モデルで少数の
Bus
オブジェクトしか使用しない場合は、ファイルを読み込むのではなく、Bus
オブジェクトのコードをコールバックに直接コピーすることを検討してください。
開いているモデルで Bus
オブジェクトが使用されている場所を確認するには、特定の変数を使用するブロックの検索を参照してください。
ヒント
厳密な標準の命名規則を使用すると、Bus
オブジェクトの使用をマッピングするのに役立ちます。たとえば、アクチュエータ制御関数に必要なモデルおよびデータについて考えます。モデルの名前を Actuator
とし、入力端子に Actuator_bus_in
、出力端子に Actuator_bus_out
という名前をそれぞれ付けると、Bus
オブジェクトとモデル間の接続が明確になります。
ただこの方法では、あるモデルからの出力が直接別のモデルに送られる場合、問題が発生することがあります。その場合、命名に不一致があるとエラーになります。