ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

バスを入れ子にする

バスは任意の深さの入れ子にできます。入れ子のバスを作成するには、Bus Creator ブロックを使用します。Bus Creator ブロックへの入力がバスである場合、出力は入れ子のバスになります。入れ子のバス内で信号を選択するには、Bus Selector ブロックを使用します。

たとえば、次のモデルでは、バス信号 Bus3 は 2 つの信号である motor3motor4 を結合します。Bus2 信号は Bus3 バス信号と、motor1 信号および motor2 信号を結合します。Bus1 信号は Bus2 バス信号と motor5 信号を結合します。

すべての信号は、バスの生成も選択も行われなかったかのように、それぞれ別の ID を保持します。Bus Selector ブロックを使用すると、入れ子になったバスから個々の信号を選択できます。

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

バス定義の循環依存関係

入れ子型のバスにより、Bus CreatorBus Selector、およびバス対応ブロックのループが発生し、バスがそれ自体の要素として誤って含まれる可能性があります。その結果発生した循環定義は解決できないため、エラーの原因となります。

表示されるエラー メッセージでは、ループ状の構造体が存在すると判明した場所が指定されます。実際には 1 つの場所にエラーが発生しているのではなく、構造全体がエラーになります。それでもエラー メッセージで示された場所は、定義の循環のトレースを開始するために役立ちます。ただし、視覚的に調べただけでは、構造は明らかではない場合もあります。

  1. エラー メッセージで示された場所に関連する信号のラインを選択することから始めます。

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

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

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

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

参考

ブロック

関連するトピック