python和simulink交互

在python与simulink交互时,无法从相应模块获取交互数据

img

img

给我一个Simulink 文件 我试一下, 网盘就行 在线等谢谢

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

文件有没

第22行代码修改为:

      # 如果使用 set_param 和 'start' 参数启动仿真,则必须使用 'stop' 参数来停止仿真。不使用 'stop' 参数会导致仿真仅在完成后才停止。
      # 暂停、继续和停止仿真。
     my_engine.set_param(env_name,'SimulationCommand','pause')
     my_engine.set_param(env_name,'SimulationCommand','continue')
     my_engine.set_param(env_name,'SimulationCommand','stop')
    
    # 修改代码
    sig = np.array(my_engine.get_param(env_name + '/F2/hout_2', 'RuntimeObject')).tolist()
     y.append(sig[-1])

    # 取值完, 启动仿真
    my_engine.set_param(env_name, 'SimulationCommand', 'start', nargout=0)

大概率是Python代码和Simulink模块中的数据类型不匹配的问题,因为错误中显示的是运算符无法使用,因此,我感觉应该是传入的参数中的变量的数据类型不对或者使用到的数据的数据类型与要求的不一致到的。建议重点检查下这个方面的问题。

模块没有正确连接到Simulink。请确保模块已连接到正确的Simulink模型,并且已正确配置连接参数。
模块没有正确配置。请确保模块已正确配置,包括输入和输出参数以及控制结构等。
模块中存在错误。请检查模块中是否存在错误,例如未定义的变量或函数等。
数据类型不匹配。请确保模块输出的数据类型与Simulink要求的数据类型匹配。
模块未激活。请确保模块已被正确激活,可以在Simulink中使用。

Simulink与Python之间的UDP通讯
可以参考下


Python如何与Matlab/Simulink交互 - 知乎 目录 ---- 前言 ---- 技术篇 1)Python与Matlab交互 2)Matlab与Simulink交互 3)Pyhton与Matlab/Simulink交互 --- 小结前言一年前,还没接触过Pyhton和Simulink,Matlab也只会写一些简单的计算脚本。如今使用P… https://zhuanlan.zhihu.com/p/392728491

基于new bing部分指引作答:
根据您提供的错误信息,看起来在与Simulink进行Python交互时出现了语法错误。根据错误消息中的追踪信息,问题可能出现在以下行:

sig = np.array(my_engine.eval('/F2/Constant11'))[-1]

请确保在此行中的语法是正确的,并且您已经正确导入了所需的模块。此外,还要确保Simulink模型中存在名为"F2"的系统和"Constant11"的信号。

另外,由于我无法直接访问您的代码和Simulink模型,我只能提供一般的建议。您可以尝试以下几点来解决问题:

1、检查Simulink模型的路径和信号名称是否正确。确保"/F2/Constant11"在模型中是有效的路径。
2、确保您已经正确安装并导入了必要的Python库,例如numpy和matlab.engine。
3、确保Simulink模型已经在MATLAB中打开并正在运行。
4、检查您的代码中是否存在其他语法错误或逻辑错误。