万博1manbetx在Simulink块中获取指定值

11次浏览(最近30天)
一个
一个 2021年9月5日
编辑: 安迪·巴特利特 2021年9月7日
是否有一个块可以从信号中获得初始值或指定值?
如果有一种方法可以从指定的索引中找到值,请告诉我。
6个评论
一个
一个 2021年9月6日
很抱歉造成混乱。
一个,这是正确的。我想取一个波形在特定时间的值,并使用这个值(固定值)作为另一个块的输入。
b.我把index写成了一个图像来表示值的顺序,比如M行N列。我认为这个用法是错误的。所以,请不要担心。
我认为如果我可以指定值的任意顺序,例如从波形中获得第一个输出值,这将是有用的。

登录评论。

接受的答案

保罗
保罗 2021年9月6日
在某个特定时间获取信号的值并随后保存它的一个选项是将它通过一个触发子系统传递,在该子系统中,触发器信号基于您希望获取该值的时间。是这样的:

答案(1)

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

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!