二维数据使用To Workspace输出到工作空间并绘制图像

二维数据使用To Workspace输出到工作空间并绘制图像

问题需求

  1. 如上图所示, 状态变量 x 1 ˙ , x 2 ˙ \dot{x_1}, \dot{x_2} x1˙,x2˙经过积分器后是一个二维向量;
  2. 现在需要将 x 1 , x 2 x_1, x_2 x1,x2输出到工作空间并绘制 ( x 1 , x 2 ) (x_1, x_2) (x1,x2).

To Workspace模块

To Workspace 模块将连接到其输入端口的数据从 Simulink®模型记录到工作区.

添加该模块到Simulink模块中

To Workspace模块相关参数

  1. 变量名称(Variable name): 仿真结束后, MATLAB工作区将会生成一个变量out.simout
  1. 将数据点限制为最后(Limit data points to last)

    • inf表示保存所有仿真数据;
    • 如果填写数字1000, 表示只保存最后1000个数据点;
    • 当仿真时间很长, 数据很多, 而前面的数据没有必要时, 可以设置该参数;
  2. 抽取(Decimation)

    • 设置为1, 表示不抽样, 每1个数据保存1个;
    • 如果设置为10, 则表示, 每10个数据保存1个;
    • 如果数据量太大, 该操作可以降采样;
  3. 保存格式(Save format)

    • MATLAB有四种数据保存格式:
      • Structure With Time 带时间的结构体
      • Structure 结构体
      • Array 数组
      • Timeseries 时间序列

数据保存格式可详见

To Workspace

MATLAB四种存储结构
Structure With Time
matlab 复制代码
simout.time
simout.signals.values
Structure
matlab 复制代码
simout.signals.values
Array
matlab 复制代码
simout
Timeseries
matlab 复制代码
simout.Time
simout.Data
  1. 将数据记录为 fi 对象

    • 只有在使用Fixed Point定点数时才有意义
  2. 采样时间

    • -1表示基层输入信号的采样时间;

使用To Workspace接收二维数据得到的结果

out.simout.Data是一个三维数据, 需要转化为一维数据才可以进行绘图操作

matlab 复制代码
% 将三维数据压缩为1维数据
x1 = squeeze(out.simout.Data(1,1,:));
x2 = squeeze(out.simout.Data(2,1,:));

plot(x1, x2)

绘制结果如下所示

相关推荐
Evand J14 小时前
【MATLAB例程12】永磁同步电机基于增广无迹卡尔曼滤波的未知负载转矩在线观测
开发语言·matlab
分享资料1 天前
MATLAB 中分号 (;)的作用
matlab
Evand J2 天前
【PMSM例程11】永磁同步电机(PMSM)基于UKF的转速与转子位置估计。附下载链接
算法·matlab·卡尔曼滤波·永磁同步电机·ukf·pmsm·位置估计
严肃小白兔3 天前
优秀 MATLAB 作者、书籍推荐:国外经典教材与技术资源整理
matlab
熊猫_豆豆4 天前
buck-boost电路MATLAB仿真
matlab·电路·电力电子技术
逆向编程5 天前
MATLAB高级数据结构:cell、struct与table深度应用
开发语言·数据结构·matlab
星夜离尘565 天前
MATLAB 刚体坐标变换:点、方向和逆变换为什么不能混用
matlab
Evand J5 天前
【PMSM滤波例程2】PMSM未知负载转矩观测EKF。MATLAB例程(负载增广EKF与实际仿真结果)。附下载链接
开发语言·matlab·电机
机器学习之心6 天前
基于贝叶斯物理信息神经网络的矿产预测与不确定性量化,MATLAB代码及复现报告
人工智能·神经网络·matlab·贝叶斯物理信息神经网络
Evand J6 天前
【PMSM例程4】PMSM电阻辨识与模型补偿EKF,MATLAB例程。附下载链接,包运行成功
开发语言·matlab·电机·ekf·卡尔曼·pmsm