メインコンテンツ

Simulink モデルでの if-else ロジックの実装

R2026b

この例では、Simulink® モデルで if-else ロジックを実装する方法を示します。if-else ロジックを実装するには、IfブロックとIf Action Subsystemブロックを組み合わせて使用します。If ブロックが論理条件を評価し、その評価結果に基づいて、対応する If Action Subsystem が実行されます。モデル sldemo_ifsub では、一連の算術演算が正弦波に対して実行されます。パルス波を使用して定義された論理条件によって、任意の時点で実行される具体的な演算が決まります。

モデルを開きます。

if-else 条件

If ブロックは、if-else 条件を実装します。これらの条件は、パルス波信号の値をゼロと比較し、アクション信号を If Action Subsystem ブロックに送信します。Pulse Generator ブロックがパルス信号を生成します。

算術演算

パルス信号が正である場合、if 条件で指定されているように、Abs という名前の If Action Subsystem が有効になり、正弦波入力信号の絶対値が出力されます。

パルス信号の値がゼロの場合、else 条件で示されているように、Saturation という名前の If Action Subsystem が有効になります。サブシステムは、正弦波をそのまま渡すか、または正弦波の値がSaturationブロックで指定された飽和制限を超えているときは常に正弦波をクリップします。

2 つのサブシステムの出力が同時にアクティブになることはなく、Merge ブロックで 1 つの信号にマージされます。次に、出力信号は +2 でバイアスされます。

シミュレーションと結果

スコープには、入力の正弦波信号、パルス信号、および出力信号が表示されます。パルスがオンの場合 (値 1 で示される)、出力は正弦波の絶対値です。パルスがオフ (値 0) の場合、サブシステムは、正弦波をそのまま出力するか、または正弦波の値が Saturation ブロックで指定された制限を超えているときは常に正弦波をクリップします。いずれの場合も、出力は +2 でバイアスされます。

参考

| | | |

トピック