二维数据使用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)

绘制结果如下所示

相关推荐
EW Frontier7 小时前
GRAIL-SCML:一种几何正则化自适应集成似然的波达方向估计算法【附MATLAB代码】
matlab·自适应·宽带·doa估计·波达方向估计·几何正则化·窄带
程高兴9 小时前
三相维也纳整流器仿真Simulink(解决过零畸变问题)
matlab
通信仿真爱好者9 小时前
第【70】期--noma与ofdma在无线网络中的性能对比分析--MATLAB完整代码
matlab·非正交多址接入·noma·ofdma
爱吃提升1 天前
MATLAB impulse函数脉冲响应完整实操教程
开发语言·matlab
不会C语言的男孩1 天前
第八章:MATLAB 与 Simulink 交互
simulink
逆向编程1 天前
MATLAB rlocus函数根轨迹完整实操教程
开发语言·matlab
@陈小鱼1 天前
MATLAB+Python:基于小样本卷积神经网络的 PPG 血压预测
人工智能·python·机器学习·matlab·脉搏波·血压·一维卷积神经网络
2zcode2 天前
项目文档:基于MATLAB图像处理的乳腺癌辅助检测系统设计与实现
图像处理·人工智能·matlab
逆向编程2 天前
如何使用MATLAB的bode函数进行伯德图分析?
开发语言·matlab