版本:Matlab2019b
1. 效果
示波器波形图片:
黑色背景,而且坐标轴字体较小,不方便修改,不能直接用在论文上面
对比 Matlab 绘图:
接下来介绍如何设置~
2. Simulink 设置波形数据导出
选择需要导入的示波器数据
点击 View > Configuration Properties … > Logging
Logging 页面中,勾选 Log data to workspace
变量名称 Variable name 可以自己定,保存格式 Save format 选择 Structure With Time,如果需要记录时间数据的话,不需要的可以直接选 Structure With Time ,最后点击 OK
然后运行一下 Simulink 文件,名为 ScopeData 的数据就会出现在 Matlab 工作区。
3. Matlab 绘图代码
3.1 绘制基本波形图
双击工作区的 ScopeData 数据,可以看到:
除了模块名称 blockName 之外,还有时间变量 time 和 信号 signals ,signals 双击之后显示:
我们绘图的数据来源于 ScopeData.signals.values
直接在 Matlab 输入
plot(ScopeData.signals.values)
显示:
波形大体是对的,但是没有加入时间轴,所以再进一步修改为:
plot(ScopeData.time, ScopeData.signals.values)
显示:
和 Simulink 示波器的波形对比:
波形是一致的,而且 Matlab 绘图可以进一步编辑 Simulink 示波器导出的图像数据。
还有一种比较简单的方法是选中工作区的变量,然后在主菜单上的绘图中选择plot,自动画出波形图,并且生成绘图的基本代码。
3.2 添加波形信息
添加横纵坐标、标题:
plot(ScopeData.time, ScopeData.signals.values) xlabel('Time(seconds)'); ylabel('Current(A)'); ylim([-20,20]); 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]);
整体代码:
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]);
3.3 多组波形数据
比如波形图包含两组数据
y1=ScopeData2.signals(1).values; y2=ScopeData2.signals(2).values;
两组数据可以绘制在同一张图内。
4. 修改图片属性
绘图之后,还有很多细节(比如颜色、字体、大小等)可以通过 Matlab 代码(附加参数)进行修改,也可以把波形图导入其他软件,比如 illustrator、Affinity Designer 进行美化处理。
一个比较简单的方法是点击属性检查器,直接调整属性参数:
修改前:
调整字体为 Times New Roman,修改字体大小、柱形颜色和边框粗细。
修改后:
采用 Affinity Designer 进行美化之前,需要把 matlab 图像导出成 eps 文件形式,再进行美化。