Simulink - MATLAB-我在Simulink中有一个带有if语句的matlab功能块,只执行了这个if语句的两个动作中的一个,为什么?

时间:2017-07-26 10:40:38

标签: matlab if-statement simulink

我在simulink块中有以下功能。它将xi和xihat的值作为输入,并评估xihat是否应该更新。我还想输出是否有更新,因此如果更新xihat,则变量update取值为1,如果不更新则取-1。当我运行Simulink程序时,我得到了xihat的预期值(当绘制时,数据类似于xi但具有阶梯式外观)。但是,对于所有模拟时间,up的值为-1。这与xihat的值更新这一事实并不一致。我甚至包含了一个disp(' yes')来显示何时执行if语句。简而言之,当条件为肯定时,应该更新xihat并且应该为1分配并且仅执行前者。这怎么可能?

我试图在matlab脚本中使用相同的数据运行这个完全相同的函数,然后运行完美,并且与xihat一致。我附上了块所在子系统的图像。

我还尝试更改变量名称,更改语句的顺序,输出条件等,似乎没有任何帮助。

带有MAtlab块的Simulink子系统。:

enter image description here

0 个答案:

没有答案