matlab里scope图像转到plot

记录的是将MATLAB的scope的图像转到plot的操作,除了这种方法,另外一个帖子是利用workspace模块来实现。Simulink里的数据利用plot画图出来(to workspace 篇)


记录几个常用的command,用在scope里的数据转到plot里画图: 首先在scope里要设置一下,设置方式可以是array或者structure with time 先说一下structure with time的形式,这个我最常用。
plot(ScopeData8.time,ScopeData8.signals.values)     
%这个command可以直接画图,scopedata几里面就是原来scope里的那个名字,如果是三相,
则同样可以,会直接把数组里的三个都画出来。

如果是要画三相中的某一相,则:

plot(ScopeData8.time,ScopeData8.signals.values(:,1)) 

如果是array的话,默认第一列是时间,然后第二列第三列再分别是其他量;则画图代码如下:

plot(ScopeData8(:,1),ScopeData8(:,2),)  %第一列是时间,画第一个图
plot(ScopeData8(:,1),ScopeData8(:,3),):画第二个图,以此类推

然后还可以只画某一部分的图像,我这个只是实验一下,应该是可以的:现在以array为例:

figure
x1=ScopeData8(:,1);%把时间轴提取出来
y1=ScopeData8(:,2);%把要画的提取出来
x1(1000:71706);%时间轴取1000-71706这期间的点
y1(1000:71706);%y1也是要这么多点,不然有问题
plot(x1,y1),hold on%画图
y2=ScopeData8(:,3);%以此类推
y2(1000:7170);
plot(x1,y2),hold on
y3=ScopeData8(:,4);
y3(1000:7170);
plot(x1,y3),hold on

将scope上面显示设置:

set(0,'ShowHiddenHandles','on');
set(gcf,'menubar','figure');

这里再记录一下,当一个示波器输入是两路信号的时候,比如我一个示波器一路信号是三相电压,另一路信号是三相电流,这样我在用plot画图的时候,就是在信号singles后面改成singles(1)和(2)来区分。另外,当用hold on画重叠图的时候,如果两个相差很大,可以再开一路右边的y轴的值。下面是例子。

figure
plot(ScopeData7.time,ScopeData7.signals(1).values(:,1)) %第一路是电压的
hold on
plot(ScopeData7.time,ScopeData7.signals(2).values(:,1)) %第二路是电流

仿真图就是下面这样的:
matlab里scope图像转到plot_第1张图片
再开一路就是这样的:

figure
plot(ScopeData7.time,ScopeData7.signals(1).values(:,1)) 
hold on
yyaxis right %开右边的y轴
plot(ScopeData7.time,ScopeData7.signals(2).values(:,1)) 

matlab里scope图像转到plot_第2张图片


下面插入一个将示波器里的保存的数据计算分析THD的方法。
首先对于分析THD,simulin里的powergui有专门的分析工具,按照这个思路就好办了,首先我们把Excel表格里的数据导入workspace,直接拖到command Windows就可以。然后这个时候我们就可以在workspace里看到我们的数据了。eg:
matlab里scope图像转到plot_第3张图片
可以看到现在导入的这个Excel叫scope18,然后是两列数据,一列是second,也就是t,一列是voltage,也就是电压数据。然后我们在一个新建的simulin model里放入powergui模块和一个scope模块,我们把scope设置成Log data to workspace,然后变量名命名一下。然后保存格式设置成with time。
matlab里scope图像转到plot_第4张图片
matlab里scope图像转到plot_第5张图片
然后用两个命令语句:

lql.time = scope18.second+0.3;
lql.signals.values = scope18.Volt;

这两个语句就是将刚才导入的Excel的数据加载到当前的这个scope里。注意到因为示波器保存的数据时间是从-0.3开始的,所以我们把时间整体偏移0.3,从0开始,这也符合一般的习惯。(这个是不一定的,具体可以看一下你保存的Excel的表格的数据时间是从什么时候开始的)
然后我们就可以使用powergui里,注意新建的simulink model也需要运行一下。
然后我们就可以使用powergui里的分析工具来进行thd分析了。

你可能感兴趣的:(matlab及其应用)