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

Applying some mathematical operation to a signal in 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 都将替换为该值。

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

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

此致

检查以下内容,使用 9999

初始化 Memory

结果,

缩放结果,