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

绘制结果如下所示

相关推荐
551只玄猫2 小时前
【数学建模 matlab 实验报告1】
开发语言·数学建模·matlab·课程设计·实验报告
机器学习之心5 小时前
扩散模型(Diffusion Model)数据生成+BP神经网络回归预测,Matlab完整代码
神经网络·matlab·回归·扩散模型·bp神经网络回归预测
bu_shuo10 小时前
MATLAB图片的所有导出格式
开发语言·matlab·图片
极创信息10 小时前
企业信创产品认证全流程:从信创适配到信创认证的实操指南(2026版)
java·数据库·spring boot·mysql·matlab·mybatis·软件工程
机器学习之心12 小时前
【DOA估计】基于MLE的无网格波达方向估计(结构化协方差恢复与SBL网格细化)附MATLAB代码
matlab·doa估计
飞舞哲12 小时前
漂浮基空间3自由度机械臂PD控制仿真
matlab·机器人·漂浮基
551只玄猫15 小时前
【数学建模 matlab 实验报告3】
开发语言·数学建模·matlab·课程设计·实验报告
551只玄猫15 小时前
【数学建模 matlab 实验报告2】
开发语言·数学建模·matlab·课程设计·实验报告
yong99901 天前
带挂载的四轴飞行器模型预测控制(MPC) MATLAB实现
开发语言·matlab
yongui478341 天前
MATLAB小波变换图像融合
opencv·计算机视觉·matlab