How to plot a Simulink Desktop Real-Time model output in an App Designer app?

38 views (last 30 days)
Nagendra Vankadari
Nagendra Vankadari on 12 Jun 2021
Commented: Ankit on 30 Jun 2021
I need to create an app that runs a Simulink Desktop Real-Time model and plots the output in the app. The model has a Analog Input block connected to a scope. For having the signal output to the workspace, I configured the scope properties --> logging and checked 'log data to workspace'.
In the app, I am having an UIAxes for plotting the simulation output.
Eventhough I am capable of running the model using 'set_param' command, I am unable to plot the output in the UIAxes.
Any information will be helpful and thanks in advance.

Accepted Answer

Ankit
Ankit on 14 Jun 2021
Hi Nagendra,
There are different ways to acheive and one solution you can find in the below link:
let me know if you are looking for this
4 Comments
Ankit
Ankit on 30 Jun 2021
functionvarargout = plotApp(varargin)
persistentplotting
hf = findall(0,'-property','tag');
ht = get(hf,'tag');
[a,b] = ismember('plotAxes',ht);
ifa
plotting = hf(b);
end
rto1 = get_param('AppDesignSetup/Scope','RuntimeObject');
Y1 = rto1.InputPort(1).Data;
X1 = get_param('AppDesignSetup','SimulationTime');
plot(plotting, X1,Y1,'.');
hold(plotting,'on');
%guidata(hf)
drawnow
App Code View:
functionStartButtonPushed(app, event)
app.UIAxes.Tag ='plotAxes';
cla(app.UIAxes);
load_system("AppDesignSetup.slx")
set_param('AppDesignSetup/Sine','Amplitude',...
num2str(app.AmplitudeEditField.Value));
set_param('AppDesignSetup','StopTime',num2str(app.DurationEditField.Value));
set_param('AppDesignSetup',“SimulationMode”,'normal');
set_param('AppDesignSetup','SimulationCommand','start');
end
I already shared you the documentation for this. Hence I would request you next time please follows the steps provided in the answer and documentation.
Wish you all the best.

Sign in to comment.

More Answers (0)