Simulinkで条件分岐を実装する際、"Multiport Switch"と"Switch Case"はどのように使い分けるべきですか?
조회 수: 5 (최근 30일)
이전 댓글 표시
MathWorks Support Team
2026년 2월 18일 0:00
답변: MathWorks Support Team
2026년 2월 18일 23:47
Simulinkモデルで条件分岐を行いたいと考えていますが、"Multiport Switch"ブロックと"Switch Case"ブロックのどちらを使うべきか迷っています。それぞれの違いや、選択する際のポイントについて教えてください。
채택된 답변
MathWorks Support Team
2026년 2월 18일 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が必要なため、モデルの階層(レイヤー)が深くなる。
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Ports and Subsystems에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!