Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab Simulink:如何将具有零持续时间值的基于事件的信号转换为基于时间的信号而不丢失信息_Matlab_Simulink - Fatal编程技术网

Matlab Simulink:如何将具有零持续时间值的基于事件的信号转换为基于时间的信号而不丢失信息

Matlab Simulink:如何将具有零持续时间值的基于事件的信号转换为基于时间的信号而不丢失信息,matlab,simulink,Matlab,Simulink,我有一个matlab功能块(不相关),其输入是他以前的输出(循环)。例如,如果在一个采样周期内,输出为X,则他在下一个采样周期内的输入将为X,依此类推 此图显示了我的模拟的简化。我为第一个循环初始化函数的输入 问题在于,matlab函数在第一个采样周期(零持续时间)内从反初始化块接收基于事件的信号,我必须将其转换为基于时间的信号(因此我可以应用单元延迟,以避免不适循环,并允许如前所述生成下一个输入)。因此,当我这样做时,我丢失了包含在基于事件的信号中的信息(由于持续时间值为零),循环不工作。

我有一个matlab功能块(不相关),其输入是他以前的输出(循环)。例如,如果在一个采样周期内,输出为X,则他在下一个采样周期内的输入将为X,依此类推

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

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


有什么办法吗?或者,用不同的方法解决这个问题?

我想到了两种方法

  • 初始条件可以在单位延迟块中设置,因此从简化的示例中不清楚为什么需要特定的初始化块

  • 您可以在MATLAB函数块内使用一个持久变量来维持从一个块执行到下一个块执行的状态(注意,由于它是事件驱动的,所以块可能不会在每个时间步被调用,只能在每个事件触发时被调用)