メインコンテンツ

Simulink バス機能

バスは、一緒に結束されるワイヤーのバンドルに似た、要素の集合を表します。バスにより、ブロック線図における線の複雑さと煩雑さが低減され、コンポーネントのインターフェイスの段階的な変更が容易になります。たとえば、コンポーネントのインターフェイスに要素を追加または削除する必要がある場合、端子を追加または削除するよりバスを変更するほうが簡単です。

この例では、以下を実行するのに役立つ Simulink® バス機能を紹介します。

  • バスを使用してブロック線図を整理する。

  • バス要素端子を使用してコンポーネント インターフェイスを簡略化する。

  • スマート編集により、一般的なバス ワークフローを合理化する。

BusCapabilities モデルを開いてコンパイルします。モデルをコンパイルするには、Simulink ツールストリップの [モデル化] タブで、[モデルの更新] をクリックします。

mdl = "BusCapabilities";
open_system(mdl);
set_param(mdl, SimulationCommand="Update");

BusCapabilities model with three areas that each contain one or more Subsystem blocks

モデルをコンパイルするとライン スタイルが更新されます。モデルを開くと、バスのライン スタイルはスカラー信号と同じになります。モデルをコンパイルすると、各バスには 3 本の平行線を含むライン スタイルが設定されます。

バスを使用したブロック線図の整理

BusRouting サブシステムは、以下を実行する方法を示します。

  • Bus Creator ブロックを使用してバスを作成する。

  • Bus Assignment ブロックを使用してバス内の要素を置き換える。

  • Bus Selector ブロックを使用してバスから要素を抽出する。

BusRouting subsystem

Bus Creatorブロックは入力を 1 つのバスにグループ化します。

  • BusCreator1 は、sine および chirp という名前の信号を含むバスを作成します。出力バスの名前は sinusoidal です。

  • BusCreator2 は、pulse および saw という名前の信号を含むバスを作成します。出力バスの名前は nonsinusoidal です。

  • BusCreator3 は、sinusoidal および nonsinusoidal という名前のバスを含むバスを作成します。新しいバスのコンテキストでは、これらのバスは "入れ子のバス" と呼ばれます。

  • BusCreator4 は、pulse および saw という名前の別の信号を含むバスを作成します。

バスの階層を表示するには、バスをクリックします。次に、[信号] タブの [信号階層] を選択します。たとえば、BusCreator3 によって作成された最上位バスの階層を検査します。

Bus hierarchy in which the top bus contains a nested bus named sinusoidal, a signal named constant, and a nested bus named nonsinusoidal

Bus Assignmentブロックは、[Bus] 入力端子に接続されているバス内の 1 つ以上の要素を置き換えます。この例では、最上位バスが [Bus] 入力端子に接続されます。Bus Assignment ブロックは、constant という名前の信号を別の信号に置き換え、nonsinusoidal という名前のバスを別のバスに置き換えます。

Bus Selectorブロックは、入力端子に接続されているバスから 1 つ以上の要素を抽出します。この例では、Bus Selector ブロックは、nonsinusoidal.pulsesinusoidal.sine、および constant として識別される信号を選択します。

選択された各信号は、信号の値を表示するシンクに接続されます。シミュレーションが開始すると、[Scope] ウィンドウに nonsinusoidal.pulsesinusoidal.sine の値が表示され、Display ブロックに constant の値が表示されます。この動作を確認するには、モデルをシミュレーションします。

sim(mdl);

A Display block shows the value of constant at the end of the simulation. A Scope block receives simulation data from nonsinusoidal.pulse and sinusoidal.sine.

バス要素端子によるコンポーネント インターフェイスの簡略化

出力端子でバス階層を作成するために、BusOutput サブシステムは Out Bus Element ブロックを使用します。

Subsystem with five Out Bus Element blocks

Out Bus Elementブロックは、Outport ブロックに接続された Bus Creator ブロックのように動作します。各 Out Bus Element ブロックには、出力を識別するラベルがあります。たとえば、ラベルが Out1.sinusoidal.sine の Out Bus Element ブロックは、Out1 という名前の出力端子で sinusoidal という名前の入れ子のバスに sine という名前の要素を作成します。

入力端子からバス要素を抽出するために、BusInput サブシステムは In Bus Element ブロックを使用します。

Subsystem with three In Bus Element blocks

In Bus Elementブロックは、Bus Selector ブロックに接続された Inport ブロックに似ています。各 In Bus Element ブロックには、入力を識別するラベルがあります。たとえば、ラベルが In1.sinusoidal.sine の In Bus Element ブロックは、In1 という名前の入力端子から sinusoidal という名前の入れ子のバス内の sine という名前の要素を選択します。

バス要素端子では部分的選択がサポートされます。サブシステムの入力端子は 5 つの要素を含むバスを受け取りますが、サブシステムは 3 つの要素のみを使用します。この柔軟性により、同じ入力端子の異なる要素を使用するバリアントを作成できます。

In Bus Element ブロックまたは Out Bus Element ブロックに対応する入力または出力を変更するには、ブロック ラベルを編集します。ラベルの最初の部分は端子名です。ラベルの 2 番目の部分は要素のパスであり、各ドットは階層の別のレベルを示します。

GIF that demonstrates label editing

バスを受け取るサブシステム入力端子の場合は、使用可能な要素のリストから選択します。

GIF that demonstrates selecting a different element from a subsystem input port

端子を作成したり、既存の端子にブロックを追加したりするには、In Bus Element ブロックまたは Out Bus Element ブロックを右クリックしてドラッグします。次に、[新しい端子][新規要素]、または [複製] を選択します。出力要素へのオーバーラップする書き込みを防ぐため、Out Bus Element ブロックでは複製は無効にされています。

GIF that shows the menu that opens when you right-click and drag an Out Bus Element block

端子を作成するために、In Bus Element ブロックまたは Out Bus Element ブロックをコピーして貼り付けることもできます。

In Bus Element ブロックのグループによってアクセスされるバス、または Out Bus Element ブロックのグループによって作成されるバスを表示するには、プロパティ インスペクターを開きます。次に、ブロックの 1 つを選択します。あるいは、ブロックの 1 つをダブルクリックします。

プロパティ インスペクターまたはダイアログ ボックスから、複数のアクションを実行できます。たとえば、次のようなことができます。

  • 端子と要素の名前を変更する。

  • ブロックを追加して、または追加せずに、要素を追加する。

  • バスとその要素の属性を指定する。

  • ブロックの色を個別に変更する、バスごとに変更する、または選択して変更する。

  • 出力端子の要素を並べ替える。

GIF that demonstrates Property Inspector actions for an output bus element port

現在のブロック線図で In Bus Element ブロックのラベルと Out Bus Element ブロックのラベルを表示する方法を変更するには、In Bus Element ブロックまたは Out Bus Element ブロックをクリックし、省略記号をポイントして、次のいずれかのオプションを選択します。

  • 展開された表記法 — ラベルには、端子名と要素のパスが表示されます (例: Out1.sinusoidal.sine)。

  • コンパクトな表記法 — ラベルには、リーフ要素名のみが表示されます。たとえば、Out1.sinusoidal.sinesine になります。ラベルをクリックすると、ラベルの両方の部分が表示され、編集可能になります。

GIF that toggles between expanded and compact notation

この例ではサブシステム インターフェイスの In Bus Element ブロックと Out Bus Element ブロックを示していますが、これらのブロックはモデル インターフェイスでも同様に動作します。

スマート編集による一般的なバス ワークフローの合理化

スマート編集により、以下の操作を素早く実行できます。

  • 入力端子と出力端子をバス要素端子に変換する。

  • 入力および出力インターフェイスでバスを作成する。

  • ブロック出力からバスを作成する。

  • 端子をバス ブロックに追加する。

  • バス要素端子をサブシステムおよび参照モデルに追加する。

端子を迅速に変換

PortConversion サブシステムには、バスで接続された 2 つのサブシステムが含まれています。最初のサブシステムには、Out Bus Element ブロックに変換する Bus Creator ブロックと Outport ブロックが含まれています。2 番目のサブシステムには、In Bus Element ブロックに変換する Inport ブロックと Bus Selector ブロックが含まれています。

最初のサブシステムで、Outport ブロックに接続されている Bus Creator ブロックをクリックします。表示される省略記号をポイントします。次に、アクション バーから [バス端子] を選択します。

GIF that demonstrates Bus Ports action for Bus Creator and Outport blocks

2 番目のサブシステムで、Inport ブロックに接続されている Bus Selector ブロックをクリックします。表示される省略記号をポイントします。次に、アクション バーから [バス端子] を選択します。

GIF that demonstrates Bus Ports action for Bus Selector and Inport blocks

バスを迅速に作成

BusCreation サブシステムは、サブシステム インターフェイスとブロック出力でバスを作成するように設定されます。

サブシステム インターフェイスでバスを作成するには、対応する線の周囲に選択ボックスをドラッグします。表示される省略記号をポイントします。次に、アクション バーから [バスの作成] を選択します。

GIF that demonstrates Create Bus action for subsystem inputs and outputs

このアクションは、選択された要素をバスにバンドルし、サブシステムで Inport ブロックと Outport ブロックを In Bus Element ブロックと Out Bus Element ブロックに置き換え、サブシステムの外部で接続を維持するために Bus Creator ブロックと Bus Selector ブロックを追加します。

ブロック出力でバスを作成するには、対応するブロックの周囲に選択ボックスをドラッグします。表示される省略記号をポイントします。次に、アクション バーから [バスの作成] を選択します。

GIF that demonstrates Create Bus action for three source blocks

このアクションは、選択したブロックからの入力を受け取る Bus Creator ブロックを挿入します。

端子を迅速に作成

PortCreation サブシステムは、Bus Creator ブロックに入力端子、Bus Selector ブロックに出力端子、および Subsystem ブロックにバス要素端子を作成するように設定されています。

要素をバスに追加するには、Bus Creator ブロックに線をドラッグします。バスから要素を選択するには、Bus Selector ブロックに線をドラッグし、使用可能な要素のリストから必要な要素を選択します。

GIF that demonstrates port sprouting for Bus Creator and Bus Selector blocks

バス要素端子をサブシステムまたはモデルに追加するには、Subsystem ブロックまたは Mode ブロックの端をクリックします。次に、[入力バス端子の作成] または [出力バス端子の作成] 選択します。

GIF that demonstrates bus element port sprouting for a Subsystem block

参考

| | | |

トピック