Scope display from Simulink within MATLAB GUI
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Craig Saunders
el 2 de Ag. de 2018
Comentada: Sara Nadeau
el 3 de Ag. de 2018
I'm looking to display live simulation data from a scope within a MATLAB figure/ UI I've created. I'm aware you're able to send Simulink data to the workspace and plot afterwards, however, I would like to see a 'live' plot in sync with the simulation.
I have a basic model which outputs variables such as 'speed', 'distance', 'fuel consumption' etc... and have made my GUI programmatically (not using GUIDE).
I'm aware 'event listeners' can be used to show 'live' simulation data within a GUI however I'm unsure of how to do this. I've seen an example which was rather complicated and difficult to follow.
I hope you can help! An example code would be very useful, I simply want to just display the data from some scopes I've set up within a GUI.
0 comentarios
Respuesta aceptada
Sara Nadeau
el 2 de Ag. de 2018
What version of Simulink do you have? If you have 18a, you can use the Data Access feature to specify a callback function to access logged signal data during simulation. You can write the callback function to update your MATLAB GUI.
This is a very simple example of a callback function that plots signal data in a MATLAB figure during simulation. The optional parameter is used to match the signal to its figure.
function plotSignals(y,time,sigNum)
figure(sigNum)
if isequal(sigNum,1)
marker = 'ro-';
elseif isequal(sigNum,2)
marker = 'go-';
else
marker = 'bo-';
end
hold on;
plot(time,y,marker);
end
To use this callback function to plot your signal data, right-click the logging badge for the signal you want to plot and select Properties. Specify the function name. This callback function uses simulation time, so you need to check the Include simulation time option. The function parameter is used to determine which plot data for a given signal should go to. With the Function parameter specified as 1, the signal x1 will be plotted on Figure 1 in red, according to the simple example callback function.
You can modify the callback function and the use of the optional parameter to suit your needs.
Hope one of these options helps!
2 comentarios
Sara Nadeau
el 3 de Ag. de 2018
Hey Craig,
For R2016a, I think your best bet may be the event listeners. Guy's blog post should help illustrate the process. The particular example deals with bus data. If your data isn't a bus, you can ignore the Setup a nonvirtual bus section. To access the block data, you would just need block.OutputPort(1).Data.
The other options for visualizing data during simulation are the Simulation Data Inspector and Dashboard blocks, including the Dashboard Scope block.
Prior to 17a, you need to mark signals specifically for streaming to the Simulation Data Inspector.
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!