Azzera filtri
Azzera filtri

pass a variable value from simulink to gui while running simulation

1 visualizzazione (ultimi 30 giorni)
I have a simulink model which generates the position of a link using simmechanics. I need to use this value for the gui graph, and live. Is there a solution to this problem, since simout is only post-execution?

Risposta accettata

Orion
Orion il 19 Nov 2014
you can send your signal in an interpreted matlab function (or a S-function).
In this function (an external .m that you wrote), the code is executed at every step time during the simulation.
so you just have to get the handle of your gui components (with findall) and update your button / graphs wth the input signals.
  6 Commenti
N/A
N/A il 20 Nov 2014
Got 1). Used the following code:
function y = MyExternalFcn(MyInput)
MyGuiHandle = findall(0,'Tag','figure1');
handles=guihandles(MyGuiHandle);
MyAxeHandle = handles.axes1;
hold on;
plot(MyInput(1),MyInput(2),'b+');
This does capture my GUI but there seems to be no output displayed. Also Simulink execution time is set to 'inf' but execution stops after giving the error: 'Error using test (line 10)'; line(10) is plot... . Am I missing something here?
Orion
Orion il 20 Nov 2014
I have no idea what your data are.
To debug your problem, just remember that you are using a Mfile.
So you can put a breakpoint at the line 10 (and others if you want), then start the simulation, and every time your Mfile is called, the simulation will pause and you'll be inside the function.
And then, this no longer Simulink, but classic Matlab debugging.

Accedi per commentare.

Più risposte (1)

N/A
N/A il 21 Nov 2014
function y = MyExternalFcn(MyInput)
% get the handle of your GUI and the handles structure
% get the handle of your GUI
% global MyGuiHandle MyAxesHandle
MyGuiHandle = findall(0,'Tag','figure100'); %Tag of Figure
% assignin('base','MyGuiHandle',MyGuiHandle);
handles=guihandles(MyGuiHandle);
MyAxesHandle = handles.axes1;
axes(MyAxesHandle)
plot(MyAxesHandle,MyInput(1),MyInput(2),'bo');
y = 1;

Categorie

Scopri di più su Simulink Functions in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by