我正在使用Simulink从跌落测试中实时收集数据 . Simulink工作得很好,但我的愿景是让一个Matlab(v.7.10)脚本运行模拟进行多次试验,而不必在滴之间运行到计算机 . 这也允许我在保存之前预处理数据 . 这两个程序都可以单独运行,但我不能让Simulink在脚本中正常运行 . 使用 sim()
返回错误消息:
Cannot perform command line simulation of 'acc_DAC' in external mode.
使用 set_param(sys, 'SimulationCommand', 'start')
启动模拟,但不会阻止脚本 . 该脚本继续并返回错误,因为它本应该让我自己走得那么远 .
Simulink运行直到测量到冲击,然后停止并将加速度计数据输出到工作区 . 我要问的是:
A)有没有办法运行外部实时模拟?
B)是否有一种很好的方法可以让Matlab等待Simulink完成,或者变量存在,而不会暂停Simulink?
2 回答
您可以尝试检查正在运行的模型的
SimulationStatus
,并循环直到它显示stopped
,尽管您有机会进入无限循环 .就像是
以上内容不适用于任何模拟模式,但可以在外部模式下工作 .
经过一周摆弄定时器和事件回调后,我发现如果可能的话,这是非常困难的 . 最终我创建了两个函数,一个用于启动模拟,另一个用于处理第一个的数据输出 . 我必须手动运行它们,但对我来说这不是什么大不了的事 . 希望这会对某人有所帮助!