MATLAB Answers

MATLAB Engine API for Python: changing parameters of the running simulation

22 views (last 30 days)
Peter Sabol
Peter Sabol on 19 Mar 2017
Answered: Bo Li on 24 Jul 2017
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

Sign in to comment.

Answers (1)

Bo Li
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

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!