在图片中,显示了我的Simulink模型的一部分。
它的工作原理如下:
Data
是从 serialport 发送的内容。当我开始
模拟,如果有数据发送,Data
具有它的值。什么时候
没有发送任何数据,Data
发送0作为输出。
Status
为1,当有
没有发送任何数据。
我想要它做的是:"如果 serialport 中有任何数据,请给出
y
已发送数据的值。如果没有发送数据,请保持y
为
之前的值"。
所以我添加了自己的用户定义函数
function y = fcn(u,x)
if (x == 0)
y = y;
else
y = u;
end
end
但这给了我一个错误,说y
没有定义。
如何在没有任何用户定义的功能的情况下实现这个简单的解决方案?有人可以,弄清楚吗?提前谢谢。
答案 0 :(得分:2)
我没有编写这个函数,而是使用一个启用的子系统,其中包含库中的默认设置(其中没有块)。当enable为零时,保持输出。
答案 1 :(得分:0)
编辑:“不等于实际上是”〜=“,如另一条评论中所述。
在我看来,你的功能定义中缺少括号:
function [y] = fcn(u,x)
if (x == 0)
y = y;
else
y = u;
end
end
它的微调,但我认为可以做得更漂亮一点。 这是我未经测试的版本:
function [y] = fcn(u,x)
//% "!=" means "not equal"
//% So when x isn't 0 the amount of u is added to y
if (x != 0)
y = u;
end
end