Simulinkで条件分岐を実装する際、"Multiport Switch"と"Switch Case"はどのように使い分けるべきですか?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 18 Fév 2026 à 0:00
Réponse apportée : MathWorks Support Team
le 18 Fév 2026 à 23:47
Simulinkモデルで条件分岐を行いたいと考えていますが、"Multiport Switch"ブロックと"Switch Case"ブロックのどちらを使うべきか迷っています。それぞれの違いや、選択する際のポイントについて教えてください。
Réponse acceptée
MathWorks Support Team
le 18 Fév 2026 à 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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Ports and Subsystems dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!