Access Data in to APP DESIGNER from Simulink 'To Workspace' block.
조회 수: 14 (최근 30일)
이전 댓글 표시
I wanted to run a Simulink model in External mode and I am new to App Designer. To begin with I started working in Normal mode. Here is the example:
My Simulink Model: with sine wave Amplitude Variable as 'Const';

App Desiner Model:
This has two Numeric Edit Fields(Amplitude, Duration), one Axis for plotting and start button.

Callback fn code when the start button is pushed is below:
assignin("base", 'Const',app.AmplitudeEditField.Value);
simout = sim("AppDesignSetup.slx",'StopTime', num2str(app.DurationEditField.Value));
plot(app.UIAxes,simout.SineVal.Time, simout.SineVal.Data);
I get no error and also the output graph
NOW MY PROBLEM::
when I try same way to run a external mode model, Matlab suggested me to use 'set_param' to run a model in external mode.
So, to learn about 'set_param' , I started with the same model in Normal Mode with the callback fn code :
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');
plot(app.UIAxes, out.SineVal.Time,out.SineVal.Data);
In this the program runs perfectly until the 'plot' command. The Simulink model runs perfectly and get an 'out' struct.
But I'm unable to access it. Someone please help me with this.
댓글 수: 0
답변 (2개)
Fangjun Jiang
2021년 5월 4일
Use set_param() to set 'SimulationMode' and
then still run simout = sim("AppDesignSetup.slx")
so it will force the log of simulation result before plot() is run.
댓글 수: 2
Fangjun Jiang
2021년 5월 4일
For external mode, you need to control it through 'connect','disconnect','stop' and then check the data.
참고 항목
카테고리
Help Center 및 File Exchange에서 General Applications에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!