How can I access the value of a signal in Simulink during real-time simulation via the MATLAB base workspace?

12 Ansichten (letzte 30 Tage)
I am using MATLAB to programmatically run a Simulink simulation. 
​This is my code:
model = gcs open_system(model); set_param(model,'StopTime','Inf'); set_param(model,'SimulationCommand','start')
I would like to access the value of a Simulink signal via the MATLAB base workspace while the simulation is running.
How can I access the value of a specific Simulink signal via the MATLAB base workspace in real-time?

Akzeptierte Antwort

MathWorks Support Team
MathWorks Support Team am 20 Dez. 2024
You can use a MATLAB Function block in Simulink with the "assigin" function to write the value of a signal to the MATLAB base workspace in real-time: 
  1. Connect the input of the MATLAB Function block to the output of the signal you want to access, and ensure the output of the MATLAB Function block continues along the original signal path.
  2. The body of the MATLAB function block should contain the following code, where "data" is the name of the signal being written to the base workspace:
    function y = fcn(u) coder.extrinsic('assignin') assignin('base','data',u) y = u;
For an example of how this MATLAB Function block would be placed in a Simulink model to access a signal's value in real-time, please see the screenshots below:

Weitere Antworten (0)

Kategorien

Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by