用MATLAB/Simulink对实验/仿真示波器保存的数据进行THD分析、MATLAB自定义横纵坐标轴绘图 | 您所在的位置:网站首页 › 示波器查看电压 › 用MATLAB/Simulink对实验/仿真示波器保存的数据进行THD分析、MATLAB自定义横纵坐标轴绘图 |
最近年底和师兄交流了数据分析、波形处理问题。一个是将示波器导出的csv数据放到MATLAB中进行THD分析,另一个是自定义横纵坐标轴进行绘图,就这两个问题记录一下。 不需要背代码,简单、易于理解,使用过程中截个图就行了。 一、对示波器导出的波形数据进行THD分析 1、导入数据至MATLAB,修改变量名和数据类型; 点击“导入数据”,选中示波器保存的“csv”数据文件;![]() ![]() 明确一点:MATLAB编程只是把数据保存在一个变量内,然后把变量放到Simulink中用Scope展示出来。因此,接下来的编程目的:要确定数据显示的横纵坐标。我们定义x为横坐标,y为纵坐标,横纵坐标组合后的数据为z: % 数据类型为列数据 data = data1; x = data(3:2002,1)+0.1; % ("横坐标范围",“纵坐标范围”),("第i行":"第j行","第k列") y = data(3:2002,2); % 取数据的第2列为纵坐标数据 z = [x,y]; % 组合后:Z的第一列为横坐标数据,第二列为纵坐标数据 % 数据类型为行数据,用“transpose”函数将“行”转置为“列” data = data1; x = transpose(data(:,1))+0.1; % 1行n列的数据,转换为n行1列的数据 y = transpose(data(:,2)); % 横坐标范围只打一个冒号:表示默认从第一行到最后一行,即所有行 z = [x,y];以下三点是对程序段进行优化的解释: 在工作区,双击打开刚才导入的变量:(表明从第3行开始数据有效)![]() ![]() ![]() 注:data1是第一步里导入数据时自定义的数据名字,将他赋给变量data,此后对示波器导入的不同数据,只需修改等号后面的名字data1即可。 3、在Simulink中放入模块“From workspace”,修改变量名,放入powergui进行FFT分析。 修改“from workspace”模块中的变量名称,与工作区内重新组合好的变量名z一致;![]() 注(波形为折线形、数据点显示不完整):同步修改powergui和系统采样时间,在Configuration Parameters/Solver/Solver selection/,修改为Fixed-step,并给出采样时间。 点击“powergui”进行波形FFT分析;![]() 注:(①Name内没有选项的情况):在Configuration Parameters/Data Import/Export/Save to workspace or file/,取消勾选"signal simulation output"。 (③Number of cycles周期数的选择):选择为1个周期,则横坐标间隔单位为1;选择2个周期,横坐标间隔单位为0.5。 (④Max frequency最大频率的选择):最大频率与基波频率的倍数,决定了横坐标显示数据的个数。如图中给出1000/41.66 = 24.003,则横坐标显示24个柱状形。 导出波形,微调。把背景线去掉,否则后续在Visio里处理图片很麻烦。![]() ![]() ![]() ![]() 此外,放一个后续visio处理出图的教程: 【导出Simulink中的scope数据,用MATLAB的plot函数进行曲线绘制,以及后续Visio论文出图处理。自定义横纵坐标轴变量,不用背代码。】 https://www.bilibili.com/video/BV1QK411t7zJ/?share_source=copy_web&vd_source=571ee7745d512a8293189d83f511f927 如果此篇文章对您有帮助,记得评论告诉我(●'◡'●) 您的点赞和收藏是对写作者最大的鼓励! |
CopyRight 2018-2019 实验室设备网 版权所有 |