【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

03-07 1036阅读

版本:Matlab2019b

在写论文的时候,通常要对实验数据做进一步处理,绘制清晰的图片。本篇博客将介绍如何将Simulink的示波器运行结果导出并绘制图像。

1. 效果

示波器波形图片:

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

黑色背景,而且坐标轴字体较小,不方便修改,不能直接用在论文上面

对比 Matlab 绘图:

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

接下来介绍如何设置~

2. Simulink 设置波形数据导出

选择需要导入的示波器数据

点击 View > Configuration Properties … > Logging

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

Logging 页面中,勾选 Log data to workspace

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

变量名称 Variable name 可以自己定,保存格式 Save format 选择 Structure With Time,如果需要记录时间数据的话,不需要的可以直接选 Structure With Time ,最后点击 OK

(当然保存成其他格式也是可以的,只是后面的代码需要微调一下)

然后运行一下 Simulink 文件,名为 ScopeData 的数据就会出现在 Matlab 工作区。

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

3. Matlab 绘图代码

3.1 绘制基本波形图

双击工作区的 ScopeData 数据,可以看到:

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

除了模块名称 blockName 之外,还有时间变量 time 和 信号 signals ,signals 双击之后显示:

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

我们绘图的数据来源于 ScopeData.signals.values

直接在 Matlab 输入

plot(ScopeData.signals.values)

显示:

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

波形大体是对的,但是没有加入时间轴,所以再进一步修改为:

plot(ScopeData.time, ScopeData.signals.values)

显示:

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

和 Simulink 示波器的波形对比:

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

波形是一致的,而且 Matlab 绘图可以进一步编辑 Simulink 示波器导出的图像数据。

还有一种比较简单的方法是选中工作区的变量,然后在主菜单上的绘图中选择plot,自动画出波形图,并且生成绘图的基本代码。

3.2 添加波形信息

添加横纵坐标、标题:

plot(ScopeData.time, ScopeData.signals.values)
xlabel('Time(seconds)');
ylabel('Current(A)');
ylim([-20,20]);
title('Current waveform');

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

添加细节图(局部放大):

axes('Position',[0.35,0.75,0.15,0.15]); 
plot(ScopeData.time,ScopeData.signals.values,'b');        
xlim([0.02, 0.03]);
ylim([5,10]);

整体代码:

plot(ScopeData.time, ScopeData.signals.values)
xlabel('Time(seconds)');
ylabel('Current(A)');
ylim([-20,30]);
title('Current waveform');
axes('Position',[0.35,0.75,0.15,0.15]); 
plot(ScopeData.time,ScopeData.signals.values,'b');         
xlim([0.02, 0.03]);
ylim([5,10]);

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

3.3 多组波形数据

比如波形图包含两组数据

y1=ScopeData2.signals(1).values;
y2=ScopeData2.signals(2).values;

两组数据可以绘制在同一张图内。

4. 修改图片属性

绘图之后,还有很多细节(比如颜色、字体、大小等)可以通过 Matlab 代码(附加参数)进行修改,也可以把波形图导入其他软件,比如 illustrator、Affinity Designer 进行美化处理。

一个比较简单的方法是点击属性检查器,直接调整属性参数:

修改前:

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

调整字体为 Times New Roman,修改字体大小、柱形颜色和边框粗细。

修改后:

【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(自用)

采用 Affinity Designer 进行美化之前,需要把 matlab 图像导出成 eps (推荐格式,矢量图)文件形式,再进行美化。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]