为了模拟一些过程,我遇到了一个问题,即如何获得自行建模块的预定义工作顺序。我该如何确保例如A块必须在B和C块开始工作之前完成?
问题在于有些块应该在其他块之后工作,而有些则不应该。我必须承认,在处理时间相关事物方面,我对Simulink没有太多经验(尽管有基本的Simulink知识)。
例如,应该实现这种情况:
重点是,所有的A-F模块之间没有逻辑关联,它们都做了几件事。我的目标是在A完成后使B和C开始工作。在B和C完成后,D/E/F再开始工作。 在这种情况下,“parallel”一词是错误的,这并不一定要真正地并行计算。只需确保它符合预定义的稳定顺序即可。
编辑: 我的新想法是使用Matlab工作区作为缓冲区,所以我的A块可以通过“to workspace”块将其结果推送到工作区。但现在我必须确保B和C块可以在A将其信息推送到工作区后读取其结果(使用“From workspace”)...如何做到这一点?
问题在于有些块应该在其他块之后工作,而有些则不应该。我必须承认,在处理时间相关事物方面,我对Simulink没有太多经验(尽管有基本的Simulink知识)。
例如,应该实现这种情况:
A -> B, C -> D, E, F
重点是,所有的A-F模块之间没有逻辑关联,它们都做了几件事。我的目标是在A完成后使B和C开始工作。在B和C完成后,D/E/F再开始工作。 在这种情况下,“parallel”一词是错误的,这并不一定要真正地并行计算。只需确保它符合预定义的稳定顺序即可。
编辑: 我的新想法是使用Matlab工作区作为缓冲区,所以我的A块可以通过“to workspace”块将其结果推送到工作区。但现在我必须确保B和C块可以在A将其信息推送到工作区后读取其结果(使用“From workspace”)...如何做到这一点?
编辑2:
这里有一张截图,可以让一些人更清楚地理解:
根据“排序顺序”的文档,设置似乎是正确的(包括子系统的时间)。但不幸的是问题仍然存在。变量“simin”在被写入之前就从工作区加载了 :( 如您所见,显示器显示“1”,而它不应该这样做。在模拟的第一次运行中,我会收到一个异常,即变量“simin”不存在。
如果您能帮助我解决问题,那将非常好。
问候,poeschlorn