如果Simulink中的语句块累积了最后的真值

时间:2017-08-20 16:16:10

标签: simulink

如果Simulink中的语句与编程语言不同,它会累积最后一个真值,直到它再次出现。

从这里可以看出,当随机值低于0.5(如果是条件)时,输出dos不会给出零,正如人们通常期望的if语句。

enter image description here

使用if的正确方法是什么? (最好我不想放饱和度和matlab函数)

3 个答案:

答案 0 :(得分:2)

Out子系统中的If Action块在禁用时具有holdreset输出的属性。默认是保持;你想要它重置。您还需要指定0作为初始条件,这是它重置的原因。

答案 1 :(得分:1)

到目前为止,我可以使用基本的matlab函数做到这一点;

function y = fcn(u)

    if u>0
        y = u;
    else
        y = 0;
    end
end

但我想知道这将是一种使用if block的正确方法。

答案 2 :(得分:1)

将“操作子系统”中的“阻止”属性更改为“重置”,看起来它已被“保持”状态。在您当前的实施中