zoukankan      html  css  js  c++  java
  • 读取Simulink中Dataset类型的数据

    https://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

    所得图像如下:

  • 相关阅读:
    jdk动态代理
    HTML+JavaScript实现在一个下拉框中多选,然后提交到另外一个下拉框中的效果
    Top中是如何取到Linux内核中的Hertz的?以及CPU使用率到底是怎么算出来的?
    C语言中的负数是如何表示的?
    Learning Python第二版笔记-Chapter 3 How to run your program
    Learning Python第二版笔记-Chapter 4 Numbers
    Learning Python第二版笔记-Chapter 1 & 2
    Firefox中的document.all的替代方案From EasyCluster support Firefox
    Linux下共享库中的全局变量,静态变量是否只有一份?
    C和C++编程中static关键字的含义-修饰函数和变量
  • 原文地址:https://www.cnblogs.com/pursuiting/p/6117364.html
Copyright © 2011-2022 走看看