2014-01-14 27 views
2

我有一个matlab功能块(这是不相关的),其输入是他以前的输出(循环)。例如,如果在样本期间输出为X,则他在下一个样本期间的输入将为X,依此类推。Simulink:如何将基于事件的信号与零持续时间值转换为基于时间的信号而不会丢失信息

Simulink model simplificated

此图像显示我的模拟的简化。我为第一个循环初始化函数的输入。

问题是matlab函数在第一个采样周期(零持续时间)内从de初始化块接收基于事件的信号,我必须将其转换为基于时间的信号(这样我可以应用单位延迟来避免inifite循环,并允许如前所述生成下一个输入)。所以,当我这样做时,我失去了基于事件的信号中包含的信息(由于零持续时间值),并且循环不起作用。 如果在基于时间的域(图像的绿色部分)中有一种方法初始化循环,那么在第一个采样时间内,它不是零持续时间信号,它可以避免这个问题。

有没有办法做到这一点?或者,对这个问题采取不同的方法?

回答

2

两种方法来介意

  1. 初始条件可以在单位延迟块设置,那么为什么你需要特定的初始化块它不是从简单的例子清楚。

  2. 你可以在MATLAB函数模块中使用一个持久变量来保持从一个块到另一个块的执行状态(注意,由于它是事件驱动的,块可能不会在每个时间步调用,只有在每个事件triggger)。

相关问题