我需要从外部应用程序控制Simulink控制方案,用Python编写 . 我需要做的是逐步完成模拟,并在每一步检索输出,让Python应用程序确定新的输入集 . 这是固定的时间段 . 有没有办法做到这一点?我承认我很难用matlab脚本来实现这个目标,更不用说Python了 . 这可行吗?如果没有,有没有办法将Python模块插入simulink方案?
谢谢
EDIT: THIS IS HOW I MANAGED TO SOLVE IT
为了逐步运行模拟,我用时钟,关系运算符和断言块创建了这个块结构
其中Tmp是每次暂停的时间戳 . 断言块包含以下指令:
Tmp=get_param(bdroot,'SimulationTime'),set_param(bdroot,'SimulationCommand','pause')
这样,模拟在每个步骤之后暂停,即(clockTime-Tmp)= timeStep .
现在,我创建一个启动模拟的Python脚本(请参阅接受的答案)并按如下方式迭代:
#While the simulation is running
while eng.get_param('simpleTest','SimulationStatus')!=('stopped' or 'terminating'):
if eng.get_param('simpleTest','SimulationStatus')=='paused':
#do your evaluations and operations
eng.set_param('simpleTest','SimulationCommand','update',nargout=0) #if you have updated any simulation parameters
eng.set_param('simpleTest','SimulationCommand','continue',nargout=0)
这对我来说似乎很好,但如果有更好的选择,请告诉我 .