在SIMULINK中对信号应用一些数学运算

时间:2017-12-05 12:51:44

标签: simulink

美好的一天,

我需要在SIMULINK的一些数学运算中提供一些帮助。我有一个来自街区的信号。信号始终具有前几个条目 为9999。然后,下一个条目是0200之间的值,例如:100。之后,所有其他剩余条目将返回9999。这始终是信号的本质,除了值100可能会在不同的模拟中更改其值或位置,但它始终具有一个或多个9999值,以及之后的所有其他条目也是9999

这是来自块的信号的一个例子:

S=[9999 75 9999 9999 9999]

另一个例子:

S=[9999 9999 9999 100 9999 9999 9999 9999 9999]

我想将此信号传递给SIMULINK中的另一个块或MATLAB函数,以便一旦读取值(第一个示例中的75或第二个示例中的100),它将永远保留直到模拟结束。

因此,第一个例子的期望输出是:

Y=[9999 75 75 75 75]

第二个例子是:

Y=[9999 9999 9999 100 100 100 100 100 100]

所有剩余的9999都被该值替换。

我尝试将MATLAB函数与一些if-else语句一起使用。此外,我尝试使用延迟和比较块,但我无法获得所需的输出。

是否有使用MATLAB函数或使用某些SIMULINK块的解决方案?

此致

1 个答案:

答案 0 :(得分:0)

检查以下内容,并使用Memory

初始化9999阻止

enter image description here

和结果,

enter image description here

缩放结果,

enter image description here