Main Content

バス階層の変更

バスの階層を表示するには、関連する線を右クリックし、コンテキスト メニューの [信号階層] をクリックします。Bus Creator ブロック、Bus Assignment ブロック、Bus Selector ブロック、In Bus Element ブロックおよび Out Bus Element ブロックの [ブロック パラメーター] ダイアログ ボックスにバス階層も表示できます。

バス内の要素の階層を変更するために、以下を実行できます。

  • Bus Selector ブロックを使用してバスを構成要素に分離し、1 つ以上の Bus Creator ブロックを使用して要素を再構築します。

  • Out Bus Element ブロックについて、バス要素に対応するラベルの 2 番目の部分を編集します。signal1 という名前のバス要素があり、signal1NestedBus という名前の入れ子のバスに移動させるものとします。バス要素に対応するラベルの一部を signal1 から NestedBus.signal1 に変更します。

  • Out Bus Element ブロック パラメーター ダイアログ ボックスで、要素をクリックして別の階層レベルにドラッグします。

バス内の要素の次元を変更するには、次の手順を実行します。

  • Bus Creator ブロック パラメーター ダイアログ ボックスで、1 つの要素または隣接する複数の要素を選択して [上] または [下] ボタンをクリックします。

  • Out Bus Element ブロック パラメーター ダイアログ ボックスで、既存の階層レベル内にある要素をクリックしてドラッグします。

バス階層を変更する場合、Simulink® では、それにかかわるほとんどの複雑さが自動的に処理されます。たとえば、上流のバス階層の変更によって破損した、Bus Selector および Bus Assignment ブロックのパラメーター ダイアログ ボックスの選択肢は Simulink によって修正されます。既定では、関連する [バス選択を修復] コンフィギュレーション パラメーターは [警告と修復] に設定されます。モデルを更新すると、修復が行われます。

ヒント

バス内の要素の値を変更するには、Bus Assignment ブロックを使用します。詳細については、バス要素への信号値の代入を参照してください。

バスの循環依存関係の解決

バスを入れ子にすると、バスがそれ自体の要素であるブロックのループが発生する可能性があります。この循環定義は解決できないため、エラーの原因となります。ループをトレースするために、エラー メッセージで示された場所を使用できます。

  1. エラー メッセージで示された場所に関連する線を選択します。

  2. 線を右クリックし、[ソースへの信号を強調表示] または [接続先への信号を強調表示] を選択します。詳細については、信号の伝播元と伝播先の強調表示を参照してください。

  3. ループがなくなるまで、線の選択とソースと伝播先の強調表示を続けてください。

  4. モデルを再構成し、バスの循環定義を排除します。

問題は循環計算ではなく循環定義であるため、追加のブロックを挿入することで循環を止めることはできません。たとえば、Unit Delay ブロックを挿入して代数ループを中断する方法で、循環定義を修正することはできません。モデルを再構成し、バスの循環定義を排除しなければなりません。

参考

| |

関連するトピック