为了模拟一些过程,我在获取自建模块的预定义工作顺序时遇到了问题。
我怎么能确定,例如 Block A 必须在 Block B 和 C 开始工作之前完成?
问题是,有些块应该在其他块之后工作,而有些则不能。我必须承认我没有太多使用 Simulink 的经验来做与时间相关的事情(尽管有 simulink 的基本知识)。
例如,应实现此场景:
A -> B, C -> D, E, F
主要的是,所有块 AF 彼此之间没有逻辑关联,它们都做几件事。我的目标是在 A 完成后让 B 和 C 开始工作。B和C完成后的D/E/F。在这种情况下,“并行”这个词是错误的词,这不必真正并行计算。只要确保这符合预先定义的稳定顺序。
编辑: 我的新想法是使用 matlab 工作区 als 缓冲区,因此我的块 A 可以将其结果推送到工作区(通过“到工作区”块)。但是现在我必须确保,在 A 将其信息推送到工作区之后,块 B 和 C 可以读取 A 的结果(使用“从工作区”)......怎么做?
Edit2:
这是一个截图,应该让一些想法更清楚:
正如“排序顺序”的文档所指,设置似乎没问题(包括子系统时间)。但不幸的是问题仍然存在。变量“simin”在写入之前从工作区加载:(如您所见,显示屏显示“1”,这是不应该的。在模拟的第一次运行中,我得到一个异常,变量“simin”不存在。
如果你能帮助我解决我的问题,那就太好了。
问候,波斯克伦