필터 지우기
필터 지우기

What's the fastest way to send out data from Simulink during simulation?

조회 수: 7 (최근 30일)
Enzo Yacometti
Enzo Yacometti 2022년 12월 19일
편집: Enzo Yacometti 2022년 12월 27일
Hello everyone, I'm looking for the fastest way to send out Simulink data to Python during simulation. As a way of sampling the simulation in a "real time" manner.
I've tried MQTT publishing with Industrial Communication Toolbox but the delay is 0.5s on average (which is too much for my application, RL training). Also running the get_param command from Python takes about 0.3s.
Is there a way to obtain a signal's data "on the go" with minimal delay from Simulink to Python? Even if data is lost from time to time. I'm interested in speed more than security level.
Thank you!

답변 (1개)

Vijay
Vijay 2022년 12월 26일
편집: Vijay 2022년 12월 26일
Data is passed by value from MATLAB to python so, if your data is large, it will take time. However, you mentioned you need to sample a signal from SIMULINK.
You can do the following
  1. Write the instantaneous value of signal in a workspace variable using toworkspace block.
  2. Using matlabengine api from python read that variable.
Sample code:
Import matlab.engine
eng = matlab.engine.connect_matlab();
while True
Val = eng.workspace[instantaneousSinglaValue];
#do soemthing with val
Use the link for further information
Hope that helps!
  댓글 수: 1
Enzo Yacometti
Enzo Yacometti 2022년 12월 27일
편집: Enzo Yacometti 2022년 12월 27일
Thanks but I can't read the data from the "To Workspace" block during simulation. I understand it only saves the data to workspace once the simulation is over. The only solution for reading data during simulation seems to be using RunTime objects, or did I misunderstand your first step?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Call MATLAB from Python에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by