Matlab/simulink/simscape multibody-to workspace、scope块和 timeseries 数据的一种综合使用方法
前言
因工作需要,对于Matlab/simulink的需求越来越大,学过但不记录就如走马观花,既然如此,那就学在这里,记在这里。下面以simulink中to workspace块为主,以scope块 和 timeseries数据使用为辅的一种使用方法记录。
一、to workspace块是什么
一句话,to workspace块的功能是把simulink环境生成的数据直接导入到Matlab工作空间中。这样做的目的是便于数据提取和论文插图绘制。
二、使用步骤
当simulink仿真环境中的示波器scope块可以获取到信号时进行如下操作:
Step1:双击打开示波器,修改设置;
点击设置按钮,出现配置属性界面。在主要里边可以设置示波器输入端口的个数,本文设置个数为3;
Step2:点击“记录”,设置相关参数。
如图,在保存名称中会有四种不同的结构形式,结构体带时间,结构体,数组,和dataset。这里我们使用Struckture With time类型。示波器设置完成后如下图所示,有三个输入端口,然后双击simulink空白区域,直接输入to workspace 添加该块如下图所示:
输入变量名,并确保 Save Format 格式为timeseries,完成后保存并返回上层
打开simulink设置界面,选择simscape,在Log simulation data 中选择All,并取消Limit data points的勾选。
Step3:运行。simulink环境中点击运行,会在Matlab工作环境中出现out文件。“其他文件”会在程序的调用下分别出现Matlab工作空间中。
当没有to workspace块时,“其他文件”的调用格式为,从out开始,加点,一路向下。例如:Out.xxxx.xxxx直到自己想调用的数据。一般是values和time。
如下是示例的调用程序和结果演示。
当有to workspace 块时,运行程序结束后就会在out文件下生成timeseries类型的数据,我们绘图使用的对象就是它。
调用方法为:
%% timeseries数据使用
dataX = out.position_datax.data;
timex = out.position_datax.time;
plot(timex,dataX)
% 其他省略……
运行脚本文件,可以绘制白底图片
对比下面scope中的图像,它们表达的意思完全一样。上图加以修改就可以应用于文章中
总结
以上就是自己在使用过程中的用到的一种操作方法,欢迎大家一起来交流学习。
文章出处登录后可见!