gpt4 book ai didi

matlab - Simulink:同步和定时

转载 作者:行者123 更新时间:2023-12-02 08:32:32 27 4
gpt4 key购买 nike

为了模拟某些流程,我在获取自建模块的预定义工作顺序时遇到问题。

我如何确定,例如,A block 必须在 B block 和 C block 开始工作之前完成?

问题是,有些 block 会在其他 block 之后工作,而有些则不能。我必须承认,我对 Simulink 的使用经验并不多,无法按照时间顺序处理依赖时间的事情(尽管有 simulink 的基本知识)。

例如,应实现以下场景:

A -> B, C -> D, E, F

最主要的是,所有 block A-F 彼此之间没有逻辑关联,它们都做几件事。我的目标是在A完成后让B和C开始工作。 B和C完成后还有D/E/F。在这种情况下,“并行”这个词是错误的,这不必真正并行地计算。只是确保这符合预定的稳定顺序。

编辑:我的新想法是使用 matlab 工作区 als 缓冲区,这样我的 block A 就可以将其结果推送到工作区(通过“到工作区” block )。但现在我必须确保,在 A 将其信息推送到工作区之后, block B 和 C 可以读取 A 的结果(使用“来自工作区”)...如何做到这一点?

编辑2:这是一个屏幕截图,应该可以让一些人的想法更清晰: 正如“排序顺序”的文档所指的那样,设置似乎没问题(包括子系统计时)。但不幸的是问题仍然存在。变量“simin”是在写入之前从工作区加载的:(如您所见,显示屏显示“1”,这是不应该的。在模拟的第一次运行中,我得到一个异常,变量“simin”不存在。

如果您能帮助我解决我的问题,那就太好了。

你好,poeschron

最佳答案

因此,在您的示例中,如果您将 block A 用同一根电线连接到 B 和 C,则当 block A 完成时, block B 和 C 将并行工作。

编辑:我使用的 block 与您相同,但它对我有用。我认为你把事情过于复杂化了。设置模块优先级的方式与 Simulink 在没有优先级的情况下运行模块的方式没有什么不同。下面您可以看到我的设置和两个二进制显示器上的输出。

enter image description here

您在第一次运行时看到的错误是由于 Simulink 在执行第一个时间步之前才创建变量。当 Simulink 构建仿真时,它发现用作工作区输入的变量并未创建。

关于matlab - Simulink:同步和定时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4828888/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com