MATLAB Engine API for Python: changing parameters of the running simulation
19 views (last 30 days)
Show older comments
Hello, I am using the MATLAB Engine API for Python. I have a shared engine in a Python script and then another Python script connected to this shared engine. I would like to ask whether it is possible to change the parameter of the running simulation from Simulink using set_param command. It looks like my following solution does not work. The "set_param" command in the 2nd script is waiting until "sim()" command from the 1st script is finished. Thanks in advance.
Python script 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')")
Python script 2:
import matlab.engine
eng = matlab.engine.connect_matlab('my_sim123')
eng.eval("set_param('scheme123/PID', 'P', '15')",nargout=0)
0 Comments
Answers (1)
Bo Li
on 24 Jul 2017
This looks related how you run the simulation. Instead of running "sim", you may use set_parm to star the simulation like following:
eng.set_param('scheme123', 'SimulationCommand', 'start', nargout=0)
0 Comments
See Also
Categories
Find more on Call MATLAB from Python in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!