主要内容

在 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 执行子系统被激活,它输出正弦波输入信号的绝对值。

如果脉冲信号值为零,如 else 条件所示,则激活名为 Saturation 的 If Action Subsystem。该子系统或者按原样传递正弦波,或者在每当正弦波值超出在 Saturation 模块中指定的饱和界限时对其进行削波。

两个子系统的输出从不同时激活,而是通过 Merge 模块合并为一个信号。然后,用 +2 对输出信号进行偏置。

仿真和结果

示波器显示输入正弦波信号、脉冲信号以及输出信号。当脉冲开启(由值 1 指示)时,输出是正弦波的绝对值。当脉冲关闭(值为 0)时,子系统或者按原样输出正弦波,或者在每当正弦波值超出在 Saturation 模块中指定的界限时对其进行削波。在每种情况下,都用 +2 对输出进行偏置。

另请参阅

| | | |

主题