Simulinkで条​件分岐を実装する際、​"Multiport Switch"と"Switch Case"はどのように使い分けるべきですか?

4 views (last 30 days)
Simulinkモデルで条件分岐を行いたいと考えていますが、"Multiport Switch"ブロックと"Switch Case"ブロックのどちらを使うべきか迷っています。それぞれの違いや、選択する際のポイントについて教えてください。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 18 Feb 2026 at 0:00
Multiport SwitchとSwitch Caseは、Simulinkモデルにおいてどちらも条件分岐に使用されますが、その根本的な役割(信号の選択か、処理の実行制御か)が大きく異なります。
Multiport SwitchとSwitch Caseの主な違い
最も大きな違いは、「計算済みの信号を切り替える(Multiport Switch)」か、「特定のサブシステムの実行自体を制御する(Switch Case)」かという点にあります。
以下に各々のブロックについて詳細をまとめます。
Multiport Switch:
役割: 制御入力に基づいて、複数のデータ入力信号の中から1つを選択して出力に渡す「信号ルーティング」ブロックです
このブロック自体は単に信号を選択するだけなので、入力端子に接続されている信号の計算(上流のブロックの処理)は、その信号が選択されているかどうかにかかわらず、通常はシミュレーションのステップごとに実行されます。そのため、重い計算を複数並べてMultiport Switchで切り替える構成にすると、すべての計算が常に走ることになり、処理が遅くなる可能性があります。
メリット: 
・レイヤーが深くならず、モデルがシンプルになる。
・固定小数点やBooleanなど多様なデータ型が使える。
デメリット:
・スイッチの前にすべての入力信号が計算されるため、複雑な計算を切り替える場合は無駄が生じる可能性がある。
Switch Case:
役割: Switch Case Action Subsystemと組み合わせて、サブシステムの実行自体を制御します(switch文のようなロジック)
 Switch Case Action Subsystemを使用すると、条件に合致したサブシステムのみが実行されます。合致しないケースの処理は実行されないため、計算リソースを節約でき、処理速度の面で有利になります。
メリット:
・実行制御が可能なため、選択されていないケースのサブシステムは実行されず、計算負荷を抑えられる。
・標準的なCのswitch文に近い構造を持つ。
デメリット: 
・Action Subsystemが必要なため、モデルの階層(レイヤー)が深くなる。

More Answers (0)

Tags

No tags entered yet.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!