Code Error When Trying to Plot Scope to Matlab Graph
조회 수: 8 (최근 30일)
이전 댓글 표시
What would cause the code "plot(ScopeData.time,ScopeData.signals.values,'or')" to have an error and how to fix it. This is my code:
x0 = -1;
A = -2;
B = 1;
C = 1;
D = 0;
t = linspace(0,10);
u = 2 +3*sin(3*t);
[y,~]=lsim(A,B,C,D,u,t,x0);
plot(t,y);
hold on
plot(ScopeData.time,ScopeData.signals.values,'or');
xlabel('time(s)');
ylabel('x(t)');
legend('lsim','simulink','Location','northwest');
This is my Simulink

댓글 수: 4
Aghamarsh Varanasi
2020년 3월 17일
편집: Aghamarsh Varanasi
2020년 3월 17일
Hi Kassandra,
You are trying to plot ScopeData. ScopeData, which seems to be a structure, doesn't seem to be defined in the current scope. Could you please share your Simulink (.slx) file, pertaining to your model.
채택된 답변
Aghamarsh Varanasi
2020년 3월 18일
Hi Kassandra,
It seems that you want to plot the Simulink Scope Data in MATLAB. Data Import/Export from Simulink can be set using the Configuration Parameters dialogue box. You could open the dialogue box from Simulation > Model Configuration Parameters, or press Ctrl+E. In the Data Import/Export Tab, you can select the variable in which you want to export the Simulink data. By default, the data is exported into a variable named ‘out’.
Hence your matlab code would be,
x0 = -1;
A = -2;
B = 1;
C = 1;
D = 0;
t = linspace(0,10);
u = 2 +3*sin(3*t);
[y,~]=lsim(A,B,C,D,u,t,x0);
plot(t,y);
hold on
xlabel('time(s)');
ylabel('x(t)');
legend('lsim','simulink','Location','northwest');
%The output of simulink is stored in a variable 'out'
%Access Scope data from out variable
time = out.ScopeData.time;
signals = out.ScopeData.signals.values;
plot(time, signals, '*g');
Make sure that you simulate the Simulink model before running the MATLAB Code.
Hope this helps.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 View and Analyze Simulation Results에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!