How do I plot Simulink signal values saved to the MATLAB workspace on an axes?

조회 수: 506 (최근 30일)
I have to plot a signals in a MATLAB gui.
With Simulink I make a simulation and I save the signal in the workspace. I want to plot that signal in a gui axes but I dont know what I have to do.

채택된 답변

Arnaud Miege
Arnaud Miege 2011년 5월 31일
I assume you run the Simulink model from the MATLAB GUI using the sim command. The data from your Scope will end up in the GUI (caller) workspace rather than the base workspace. So you should be able to plot it using something like:
plot(ScopeData.time, ScopeData.signals.values)
You may need to specify the handle of the axis on which to plot the data.
Also have a look at this technical solution.
HTH,
Arnaud
  댓글 수: 5
Ali Osman
Ali Osman 2015년 9월 1일
Thanks, worked. BUT How to draw a realtime?
Mohammad Ali Sharifian
Mohammad Ali Sharifian 2024년 4월 4일 15:10
Real time? When you run simulink, it executes the signals and blocks, with a 'To workspace' block you can save the real time data to MATLAB workspace and then plot it wherever you want.

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

추가 답변 (7개)

Walter Roberson
Walter Roberson 2011년 5월 31일
Are you using a "To Workspace" block? If so then when you look at the variable, what class() and size() is it? And what kind of plot are you thinking of?
  댓글 수: 6
Walter Roberson
Walter Roberson 2011년 5월 31일
Though before that you might need to add
ScopeData = evalin('base', ScopeData);
in order to import the data from the base workspace in to the workspace of the current function.

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


Nuno Agualusa
Nuno Agualusa 2012년 1월 28일
Hi,
I'm facing the same problem, but with a small diference. I'm running the simulink from GUI, but when the simulation finish doesn't apear a variable 'simout' in my base workspace. So i can´t plot the result on axes. I'm using a variable block in simulink, to get all the data to worspace. The only way that i found to get a variable in base workspace, is to run the simulation manualy in simulink.
what can i do to solve this situation?
Thank you very much.
Nuno
  댓글 수: 2
Kaustubha Govind
Kaustubha Govind 2012년 1월 30일
How are you running the SIM command? You might want to set 'DstWorkspace' to 'current' to make sure that Simulink uses your GUI function workspace as the destination workspace.
Nuno Agualusa
Nuno Agualusa 2012년 1월 30일
yes, the running command that i used is:
[tempo_simulacao]=evalin('base','tempo_sim');
[timeVector,stateVector,outputVector]=sim('Sistema_s_Atraso_SelfTuning',tempo_simulacao);
The problem is when a simulation ends i can't plot in my GUI axes the result of the simulation..and this action has to be peformed only trought out GUI.

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


erhan
erhan 2013년 11월 30일
I want set guı axes from scope value. Can you give example ?

yati j
yati j 2016년 10월 9일
편집: Walter Roberson 2016년 10월 9일
Hello, Could u suggest me any tutorial or any solution to this
  • i have my motor dc to run
  • when the dc motor run/rotate, maybe a graph pop-up which is read my motor speed or relevant to the rotation
  • i dont know the connection btween component
  • i dont know how to draw the simulink
i've read and watched a lot of tutorial.
Thank You.

tran xuanminh
tran xuanminh 2017년 7월 26일
편집: Walter Roberson 2017년 7월 26일
>>plot(ScopeData.time,ScopeData.signals.values);
>>grid on;
??? >>plot(ScopeData.time,ScopeData.signals.values);
|
Error: Unexpected MATLAB operator.
please coment my erro, thanks
  댓글 수: 3
Pallavi Chaturvedi
Pallavi Chaturvedi 2022년 7월 21일
how to use plot when each signal value has 3 dimesions ,plot style [1,1,1].
Mohammad Ali Sharifian
Mohammad Ali Sharifian 2024년 4월 4일 15:16
use this for plotting dimension 1 of signal will work:
plot(ScopeData.time,ScopeData.signals.values(1,:));
or maybe this (I can't remmember):
plot(ScopeData.time,ScopeData.signals.values(:,1));
for dimension 2,3 of signal, simply use 2,3 instead of 1.

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


Mohammad Ali Sharifian
Mohammad Ali Sharifian 2024년 4월 4일 15:20
편집: Mohammad Ali Sharifian 2024년 4월 4일 15:21
If you are working on a simulink file then using m-file codes for plotting is not a good idea. I recommend pasting your m-file codes in simulink at: model properties>callbacks>stop fcn
This way when you run your simulink, the results will be plotted automatically. see plotting codes here:

Jasmine Poppick
Jasmine Poppick 2024년 4월 26일 19:28
Starting in R2024a, you can use App Designer to interactively create an app for a Simulink model, which includes the capability to easily and performantly visualize signal data in the app using the new time scope UI component.
In addition, you can:
  • Add UI components configured specifically to interact with your model, such as a simulation start/stop control and a simulation progress bar.
  • Tune model variables from the app while the simulation runs by connecting UI components to variables.
For more information, see Create App for Simulink Model.

카테고리

Help CenterFile Exchange에서 Scopes and Data Logging에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by