生成 on/off 个随机持续时间的信号 SIMULINK

Generate on/off signals of random duration SIMULINK

对于我的 SIMULINK 模型,我需要生成一个取值为 1 或 0 的信号。要生成它,我需要从指数分布中抽取一个数字,并将该数字用作信号保持为 0 的时间。一旦这个时间过去了,我必须从指数分布中得出一个新的数字,并将这个数字作为信号保持在 1 的时间,并重复这个过程,直到模拟结束。作为一个 SIMULINK 新手,我对这个问题感到很困惑,如果有任何解决方法的建议,我将不胜感激。

你有几个选择。

在 MATLAB 中,您可以提前生成所有样本(即在 运行 模拟之前)并使用它们创建合适的信号,然后将其用作模型的输入(使用 From Workspace块)。

或者,如果您需要在每个时间步进行采样,那么您必须使用 mdlGetTimeOfNextVarHit method. There is an example of doing something very similar on the Goddard Consulting web site called Square Wave with Jitter.

中的随机数编写一个 S-Function