Simulink バス機能
バスは、一緒に結束されるワイヤーのバンドルに似た、要素の集合を表します。バスにより、ブロック線図における線の複雑さと煩雑さが低減され、コンポーネントのインターフェイスの段階的な変更が容易になります。たとえば、コンポーネントのインターフェイスに要素を追加または削除する必要がある場合、端子を追加または削除するよりバスを変更するほうが簡単です。
この例では、以下を実行するのに役立つ Simulink® バス機能を紹介します。
バスを使用してブロック線図を整理する。
バス要素端子を使用してコンポーネント インターフェイスを簡略化する。
スマート編集により、一般的なバス ワークフローを合理化する。
BusCapabilities モデルを開いてコンパイルします。モデルをコンパイルするには、Simulink ツールストリップの [モデル化] タブで、[モデルの更新] をクリックします。
mdl = "BusCapabilities"; open_system(mdl); set_param(mdl, SimulationCommand="Update");

モデルをコンパイルするとライン スタイルが更新されます。モデルを開くと、バスのライン スタイルはスカラー信号と同じになります。モデルをコンパイルすると、各バスには 3 本の平行線を含むライン スタイルが設定されます。
バスを使用したブロック線図の整理
BusRouting サブシステムは、以下を実行する方法を示します。
Bus Creator ブロックを使用してバスを作成する。
Bus Assignment ブロックを使用してバス内の要素を置き換える。
Bus Selector ブロックを使用してバスから要素を抽出する。

各Bus Creatorブロックは入力を 1 つのバスにグループ化します。
BusCreator1は、sineおよびchirpという名前の信号を含むバスを作成します。出力バスの名前はsinusoidalです。BusCreator2は、pulseおよびsawという名前の信号を含むバスを作成します。出力バスの名前はnonsinusoidalです。BusCreator3は、sinusoidalおよびnonsinusoidalという名前のバスを含むバスを作成します。新しいバスのコンテキストでは、これらのバスは "入れ子のバス" と呼ばれます。BusCreator4は、pulseおよびsawという名前の別の信号を含むバスを作成します。
バスの階層を表示するには、バスをクリックします。次に、[信号] タブの [信号階層] を選択します。たとえば、BusCreator3 によって作成された最上位バスの階層を検査します。

Bus Assignmentブロックは、[Bus] 入力端子に接続されているバス内の 1 つ以上の要素を置き換えます。この例では、最上位バスが [Bus] 入力端子に接続されます。Bus Assignment ブロックは、constant という名前の信号を別の信号に置き換え、nonsinusoidal という名前のバスを別のバスに置き換えます。
Bus Selectorブロックは、入力端子に接続されているバスから 1 つ以上の要素を抽出します。この例では、Bus Selector ブロックは、nonsinusoidal.pulse、sinusoidal.sine、および constant として識別される信号を選択します。
選択された各信号は、信号の値を表示するシンクに接続されます。シミュレーションが開始すると、[Scope] ウィンドウに nonsinusoidal.pulse と sinusoidal.sine の値が表示され、Display ブロックに constant の値が表示されます。この動作を確認するには、モデルをシミュレーションします。
sim(mdl);


バス要素端子によるコンポーネント インターフェイスの簡略化
出力端子でバス階層を作成するために、BusOutput サブシステムは Out Bus Element ブロックを使用します。

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

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 番目の部分は要素のパスであり、各ドットは階層の別のレベルを示します。

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

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

端子を作成するために、In Bus Element ブロックまたは Out Bus Element ブロックをコピーして貼り付けることもできます。
In Bus Element ブロックのグループによってアクセスされるバス、または Out Bus Element ブロックのグループによって作成されるバスを表示するには、プロパティ インスペクターを開きます。次に、ブロックの 1 つを選択します。あるいは、ブロックの 1 つをダブルクリックします。
プロパティ インスペクターまたはダイアログ ボックスから、複数のアクションを実行できます。たとえば、次のようなことができます。
端子と要素の名前を変更する。
ブロックを追加して、または追加せずに、要素を追加する。
バスとその要素の属性を指定する。
ブロックの色を個別に変更する、バスごとに変更する、または選択して変更する。
出力端子の要素を並べ替える。

現在のブロック線図で In Bus Element ブロックのラベルと Out Bus Element ブロックのラベルを表示する方法を変更するには、In Bus Element ブロックまたは Out Bus Element ブロックをクリックし、省略記号をポイントして、次のいずれかのオプションを選択します。
展開された表記法 — ラベルには、端子名と要素のパスが表示されます (例:
Out1.sinusoidal.sine)。コンパクトな表記法 — ラベルには、リーフ要素名のみが表示されます。たとえば、
Out1.sinusoidal.sineはsineになります。ラベルをクリックすると、ラベルの両方の部分が表示され、編集可能になります。

この例ではサブシステム インターフェイスの In Bus Element ブロックと Out Bus Element ブロックを示していますが、これらのブロックはモデル インターフェイスでも同様に動作します。
スマート編集による一般的なバス ワークフローの合理化
スマート編集により、以下の操作を素早く実行できます。
入力端子と出力端子をバス要素端子に変換する。
入力および出力インターフェイスでバスを作成する。
ブロック出力からバスを作成する。
端子をバス ブロックに追加する。
バス要素端子をサブシステムおよび参照モデルに追加する。
端子を迅速に変換
PortConversion サブシステムには、バスで接続された 2 つのサブシステムが含まれています。最初のサブシステムには、Out Bus Element ブロックに変換する Bus Creator ブロックと Outport ブロックが含まれています。2 番目のサブシステムには、In Bus Element ブロックに変換する Inport ブロックと Bus Selector ブロックが含まれています。
最初のサブシステムで、Outport ブロックに接続されている Bus Creator ブロックをクリックします。表示される省略記号をポイントします。次に、アクション バーから [バス端子] を選択します。

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

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

このアクションは、選択された要素をバスにバンドルし、サブシステムで Inport ブロックと Outport ブロックを In Bus Element ブロックと Out Bus Element ブロックに置き換え、サブシステムの外部で接続を維持するために Bus Creator ブロックと Bus Selector ブロックを追加します。
ブロック出力でバスを作成するには、対応するブロックの周囲に選択ボックスをドラッグします。表示される省略記号をポイントします。次に、アクション バーから [バスの作成] を選択します。

このアクションは、選択したブロックからの入力を受け取る Bus Creator ブロックを挿入します。
端子を迅速に作成
PortCreation サブシステムは、Bus Creator ブロックに入力端子、Bus Selector ブロックに出力端子、および Subsystem ブロックにバス要素端子を作成するように設定されています。
要素をバスに追加するには、Bus Creator ブロックに線をドラッグします。バスから要素を選択するには、Bus Selector ブロックに線をドラッグし、使用可能な要素のリストから必要な要素を選択します。

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

参考
Bus Assignment | Bus Creator | Bus Selector | In Bus Element | Out Bus Element