matlab观察输出波形,将simulink的波形数据保存到Matlab workspace

本文介绍了如何在Simulink仿真时将示波器Scope的波形数据保存到Matlab Workspace。通过设置Scope参数,选择SavedatatoWorkspace并取消Limitdatapointstolast选项,数据将以StructurewithTime格式存储。结构体包括时间序列、信号结构体和框图名称。示例代码展示了如何读取并绘制保存的波形数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值