在python与simulink交互时,无法从相应模块获取交互数据
给我一个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中使用。
基于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、检查您的代码中是否存在其他语法错误或逻辑错误。