概述
将 simulink 的波形数据保存到 Matlab workspace 在用 Simulink 做仿真时,我们经常会用到示波器 Scope 来观察波形,它可以对波形进行局部 放大、 按横、 纵座标放大, 非常方便, 但是如果我们要保存波形时, 就最好别直接拷贝 Scope 波形了,因为它的背景是黑的,而且不能进行线形修改和标注,不适合作为文档用图。 一般的做法是将数据输出到工作空间,然后用画图指令 Plot 画图。输出到工作空间的方法 一般有这么几种: 1.添加 To Workspace 模块; 2.添加 out 模块; 3.直接用 Scope 输出。 本人比较懒,一般不再添加其他输出模块,直接选用方法 3。当然不是说放一个 Scope 就 能数出数据的,需设置 Scope 的 Parameters:
打开 scope, 点击第二个图标, 叫做 parameter, 选择 data history, 再在 save data to workspace 前勾上,再仿真一次,数据就保存在 workspace 里了。 这里最好把 Limit data points to last 勾掉, 因为很有可能你的数据会超过 5000 个。 勾选 Save data to Workspace, 变量格式可以选结构体, 结构体带时间, 以及向量, 此处用 Structure with time 输出类型为 Structure with Time。即结构体带时间。在我的 Scope(VI_LOAD)中有三路输入。 我们可以看一下这个结构体包含哪些东西。在 Command Window 里直接输入变量名。 ScopeData1 = time: [60003x1 double] signals: [1x3 struct] blockName: 'buck_current_only2/VI_LOAD' 可见,该结构体包含了时间序列,信号结构体,以及我的框图名。实际上我们的输出信号都 包含在 signals 这个结构体里了,我们接着可以再看看 signals 结构体的组成部分。我们输入 ScopeData1.signals(这点与 C 语言是类似的) 。 ans =
1x3 struct array with fields: values dimensions label title plotStyle Value 就是我们输出的数据。我们采用这样的画图命令即可完成画图: figure; plot(ScopeData1.time,ScopeData1.signals(1,2).values); %画出第二路输出数据 二 可以得到结果
2.5
2
1.5
1
0.5
0
-0.5
0
0.005
0.01
0.015
0.02
0.025
0.03
也可以输出第一路数据 plot(ScopeData1.time,ScopeData1.signals(1,1).values); %画出第一路输出数据 一
7.76 7.74 7.72 7.7 7.68 7.66 7.64 7.62 7.6 7.58 0
0.005
0.01
0.015
0.02
0.025
0.03
最后
以上就是失眠蜜粉为你收集整理的matlab观察输出波形,将simulink的波形数据保存到Matlab workspace的全部内容,希望文章能够帮你解决matlab观察输出波形,将simulink的波形数据保存到Matlab workspace所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复