讀取Simulink中Dataset類型的數據


http://files.cnblogs.com/files/pursuiting/%E5%80%92%E7%AB%8B%E6%91%86%E6%8E%A7%E5%88%B6%E7%B3%BB%E7%BB%9F%E7%9A%84Simulink%E4%BB%BF%E7%9C%9F.pdf

在這篇文章中,針對倒立擺系統進行的Simulink建模,模型截圖如下:

 

在MATLAB(R2016b)中運行該模型后,MATLAB工作空間中會有類型為Dataset的logsout變量,下面是讀取並顯示其中數據的MATLAB代碼:

1 % 讀取Simulink.SimulationData.Dataset中的數據
2 data = logsout.get(1).Values.Data;
3 t = data(:, 1);                                     %時間
4 theta = data(:, 2);                                 %角度
5 dtheta = data(:, 3);                                %角速度
6 speed = data(:, 5);                                 %速度
7 createfigure(t, theta * 200, dtheta * 400, speed);

 

createfigure.m中的代碼如下:

 1 function createfigure(XData1, YData1, YData2, YData3)
 2 %CREATEFIGURE(XDATA1, YDATA1, YDATA2, YDATA3, PARENT1)
 3 %  XDATA1:  line xdata
 4 %  YDATA1:  line ydata
 5 %  YDATA2:  line ydata
 6 %  YDATA3:  line ydata
 7 %  PARENT1:  text parent
 8 
 9 %  由 MATLAB 於 30-Nov-2016 09:53:51 自動生成
10 
11 % 創建 figure
12 figure('Tag','ScopePrintToFigure','Color',[1 1 1],...
13     'OuterPosition',[221 63 927 650]);
14 
15 % uicontainer 當前不支持代碼生成,請輸入正確輸入語法對應的 'doc uicontainer'
16 % 可以使用 GUIDE 來為 uicontainer 生成代碼。有關詳細信息,請輸入 'doc guide'
17 % uicontainer(...);
18 
19 % uicontainer 當前不支持代碼生成,請輸入正確輸入語法對應的 'doc uicontainer'
20 % 可以使用 GUIDE 來為 uicontainer 生成代碼。有關詳細信息,請輸入 'doc guide'
21 % uicontainer(...);
22 
23 % uipanel 當前不支持代碼生成,請輸入正確輸入語法對應的 'doc uipanel'
24 % 可以使用 GUIDE 來為 uipanel 生成代碼。有關詳細信息,請輸入 'doc guide'
25 % uipanel(...);
26 
27 % 創建 axes
28 axes1 = axes('ColorOrder',...
29     [1 1 0.0666666666666667;0.0745098039215686 0.623529411764706 1;1 0.411764705882353 0.16078431372549;0.392156862745098 0.831372549019608 0.0745098039215686;0.717647058823529 0.274509803921569 1;0.0588235294117647 1 1;1 0.0745098039215686 0.650980392156863],...
30     'Tag','DisplayAxes1_RealMag');
31 hold(axes1,'on');
32 
33 % 創建 hgtransform
34 hgtransform('HitTest','off','Matrix',[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]);
35 
36 % 創建 hgtransform
37 hgtransform('HitTest','off','Matrix',[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]);
38 
39 % 創建 hgtransform
40 hgtransform('HitTest','off','Matrix',[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]);
41 
42 % 創建 line
43 line(XData1,YData1,'DisplayName','Gain2','Tag','DisplayLine1',...
44     'Marker','square',...
45     'Color',[1 1 0.0666666666666667]);
46 
47 % 創建 line
48 line(XData1,YData2,'DisplayName','Gain3','Tag','DisplayLine2','LineWidth',2,...
49     'Color',[0.0745098039215686 0.623529411764706 1]);
50 
51 % 創建 line
52 line(XData1,YData3,'DisplayName','Demux/5','Tag','DisplayLine3',...
53     'Marker','*',...
54     'Color',[1 0.411764705882353 0.16078431372549]);
55 
56 % 創建 xlabel
57 xlabel(' ');
58 
59 % 取消以下行的注釋以保留坐標軸的 X 范圍
60 % xlim(axes1,[0 400]);
61 % 取消以下行的注釋以保留坐標軸的 Y 范圍
62 % ylim(axes1,[-176.00008 280.22712]);
63 % 取消以下行的注釋以保留坐標軸的 Z 范圍
64 % zlim(axes1,[-1 1]);
65 box(axes1,'on');
66 % 設置其余坐標軸屬性
67 set(axes1,'ClippingStyle','rectangle','FontSize',8,'GridAlpha',0.4,...
68     'GridColor',[0.686274509803922 0.686274509803922 0.686274509803922],...
69     'TickLabelInterpreter','none','XColor',[0 0 0],'XGrid','on','YColor',...
70     [0 0 0],'YGrid','on','ZColor',[0 0 0]);
View Code

所得圖像如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM