2015-04-05 105 views
0

我在Matlab Simulink上创建了以下程序框图。当INPUT> = 0时OUT1 = 1 OUT2 = 0,当INPUT <为0时OUT1 = 0 OUT2 = 1但是它没有给出预期的结果。这是什么原因。任何建议,使其正常工作,将不胜感激。在MATLAB中使用if函数Simulink

enter image description here

+1

您的块没有连接。检查连接。 (你会发现它并不是一条直线 – thewaywewalk 2015-04-05 10:53:12

+1

没有它们已经连接在matlab simulink中if块和动作子系统之间用虚线表示的连接 – user2835684 2015-04-05 12:55:20

+0

如果连接到u1输入的常量值块给出了预期的结果,当常数变为正值或负值时,但当信号生成器块连接到输入u1时,它不起作用。 – user2835684 2015-04-05 12:59:08

回答

0

如果此功能块的东西没有工作。所以我想出了一种不同的方法来获得我想要的符号块的结果。解决方案发布如下。感谢大家的帮助。

enter image description here

0

在许多情况下的IF被转换成switch。你计算案例并选择预期的案例。在这里,您可以将常数[1 0]和常数[0 1]连接到第一个和第三个输入,并将解决方案中的符号块连接到第二个输入。

2

您看到的行为可以通过注意以下进行说明:

  • 从如果子系统输出的作用就像一个使能信号。
  • 默认情况下,如果(子)系统被禁用,则If Action Subsystem的输出端口设置为,其值为

这可以通过将输出端口(if动作子系统内)的参数对话框,并改变输出时禁用属性重置改变。您还需要将默认值更改为零。