0
我正在使用MATLAB Engine API for Python
。我在Python脚本中有一个共享引擎,然后连接到这个共享引擎的另一个Python脚本。我想问一下使用set_param
命令是否可以从Simulink中更改正在运行的仿真参数。它看起来像我的以下解决方案不起作用。第二个脚本中的set_param
命令正在等待,直到来自第一个脚本的sim()
命令完成。提前致谢。用于Python的MATLAB引擎API:更改运行仿真的参数
1日脚本:
import matlab.engine
eng = matlab.engine.start_matlab()
eng.eval("matlab.engine.shareEngine('my_sim123')")
eng.eval("load_system('scheme123')",nargout=0)
eng.eval("sim('scheme123')")
第二脚本:
import matlab.engine
eng = matlab.engine.connect_matlab('my_sim123')
eng.eval("set_param('scheme123/PID', 'P', '15')",nargout=0)
更新:我试图用set_param('scheme123', 'SimulationCommand','Start')
代替,但出现下列错误:“您不能使用set_param运行模拟在一个没有显示的MATLAB会话中。“有没有其他方法可以改变运行求和的参数而不显示?
我试图用'eng.set_param(“scheme123”,“SimulationCommand”,“开始”,nargout = 0)'代替,但出现下列错误:“你不能使用set_param在没有显示的MATLAB会话中运行模拟。”有没有其他方法可以改变运行求和的参数而不显示? – user3618276
您需要在桌面打开时启动MATLAB引擎:'matlab.engine.start_matlab(' - desktop')'。我不相信你有任何其他选择。您也可以使用'-minimize'和'-nosplash'来避免显示桌面上的文字。 –