- Set values to the constant blocks u1 and u2 from Python.
- Run the Simulink model.
- Retrieve the outputs x1 and x2 from the MATLAB workspace back to Python.
Python can't send value to simulink constant block
9 次查看(过去 30 天)
显示 更早的评论
This is my simulink. I want to send the value from my python to constant block of u1 and u2, then the x1 and x2 will send the output to my python. Please ignore u2, cuz still in testing phase.
this is part of my python code, the set control action is used to send the value to u1 and u2 in simulink. This is the issue where the simulink cant access to the value sent from python. The output dont have issue.
Here is the output, as shown above the output x1 is showing 1.0 which shows that the constant block is not deliver the input values from python.
SO is there anyway to solve this issue? anything i need to check or set in the simulink? or any website or code I can refer to? any help or recommendation will be appreaciate. Thank you very much.
0 个评论
采纳的回答
Ayush Singh
2024-7-8
编辑:Ayush Singh
2024-7-8
Hi Yeow,
I am assuming you want to assign values to constant blocks u1 and u2 from Python and extract values of x1 and x2 after some simulation on your model.
In order to achieve the workflow mentioned by you there are roughly 3 steps can follow:
Start the MATLAB engine
eng = matlab.engine.start_matlab()
Load the Simulink model
eng.load_system(model_name, nargout=0)
Set values to the constant blocks u1 and u2
eng.set_param(f'{model_name}/u1', 'Value', str(u1), nargout=0)
eng.set_param(f'{model_name}/u2', 'Value', str(u2), nargout=0)
Run the Simulink model
eng.set_param(model_name,SimulationCommand="start")
Wait for the simulation to finish
eng.set_param(model_name,SimulationCommand="stop")
Retrieve the outputs x1 and x2
x1 = eng.eval('out.x1', nargout=1)
x1_data =x1.Data
x2 = eng.eval('out.x2', nargout=1)
x2_data =x2.Data
The above steps/code might not be exactly according to your coding structure but is a rough idea/implementation on how you can achieve the desired workflow.
I hope it helps you to get started!
0 个评论
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Call MATLAB from Python 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!