你需要你的设计记住信号的过去值,所以你的设计需要一些持久的记忆。持久的记忆也叫状态。为离散时间模型获取内存的最简单方法是使用单位延迟或延迟块。
您希望在特定时间锁定一个信号值,因此您需要创建一个true/false信号,以指示当您希望发生闩锁时的值为true,而在其他时间为false。
然后,您可以使用一个开关块来控制是新的信号值进入延迟块还是延迟块输出反馈到自身。这个图显示了基本的思想,其中标记为使能的信号是真/假控制信号。
有一个微妙但重要的选择,是在一个单位延迟时间步长后获得锁存值还是立即获得零延迟。上面的图像将包含一个时间步长延迟。如果您需要零延迟,那么改变设计,将标记为Xnew的信号作为输出,而不是Xold。
因为你想要捕获信号的第一个值,你想要一个在模拟开始时为真,在那之后总是为假的启用信号。一个常数和良好的旧单位延迟可以做到这一点,如图所示。关键是单位延迟的第一个输出是它的初始条件为1。在此之后,延迟的输出将是它的先验输入,而先验输入总是0。
给出了一个同时具有单步延时和零步延时的模型。它与R2013a和更新版本一起工作。
注意,显示的延迟块是自定义示例,而不是Simulink提供的延迟块。万博1manbetx单击以选择这些自定义延迟块的每个块,然后执行Crtl-U查看其遮罩下是什么。那将会很有用。
这两组输出是这样的。
黄色信号是在特定时刻被捕捉到的信号。
绿色信号是锁存动作发生时的真-假控制信号。
品红色是捕获和保持的信号。
注意,所有块的采样时间是1秒。