📄 distinguish.m
字号:
%识别程序:
%输入作为识别参数时,则将电压幅值化成标么值的形式,而且谐波的幅值一般均设为1;
%X数组的第一行为基波a相的测量值,第二行为b相的测量值,第三行为c相的测量值(如果没有三相数据,则第二行和第三行为谐波数值),以后几行均为谐波数值;
%倒数第二行为电压波动数值,输入格式为【0 0 d(电压波动值)】,最后一行为三相不平衡数值,输入格式为【e(三相不平衡度) 0 0】;
clear;
clc;
X=[49.5 0.6 0.9;148.5 0.6 0.9];
handles.X=X;
HH=[];
[a,b]=size(handles.X);
X=handles.X;
for j=2:a
if X(j,1)/X(1,1)>1.04|X(j,1)/X(1,1)<0.96
G=X(j,1)/X(1,1);
G=round(G*10)/10;
if G>1|G<1&G>0|G<0
Faulttype=[num2str(G),'次谐波//'];
HH=[HH Faulttype];
end
end
end
for i=1:a
if X(i,2)<=0.6&X(i,2)>=0.01
if X(i,3)<=0.9&X(i,3)>=0.1
if i==1
Faulttype='基波分量瞬时电压暂降//';
HH=[HH Faulttype];
else
G=X(i,1)/X(1,1);
G=round(G*10)/10;
if G==1
if i==2
Faulttype=['b相瞬时电压暂降//'];
HH=[HH Faulttype];
elseif i==3
Faulttype=['c相瞬时电压暂降//'];
HH=[HH Faulttype];
end
else
Faulttype=[num2str(G),'次谐波分量瞬时电压暂降//'];
HH=[HH Faulttype];
end
end
end
end
if X(i,2)<=0.6&X(i,2)>=0.01
if X(i,3)<=1.8&X(i,3)>=1.1
if i==1
Faulttype='基波分量瞬时电压暂升//';
HH=[HH Faulttype];
else
G=X(i,1)/X(1,1);
G=round(G*10)/10;
if G==1
if i==2
Faulttype=['b相瞬时电压暂升//'];
HH=[HH Faulttype];
elseif i==3
Faulttype=['c相瞬时电压暂升//'];
HH=[HH Faulttype];
end
else
Faulttype=[num2str(G),'次谐波分量瞬时电压暂升//'];
HH=[HH Faulttype];
end
end
end
end
if X(i,2)<=3&X(i,2)>=0.01
if X(i,3)<=0.1
if i==1
Faulttype='基波分量暂时电压中断//';
HH=[HH Faulttype];
else
G=X(i,1)/X(1,1);
G=round(G*10)/10;
if G==1
if i==2
Faulttype=['b相暂时电压中断//'];
HH=[HH Faulttype];
elseif i==3
Faulttype=['c相暂时电压中断//'];
HH=[HH Faulttype];
end
else
Faulttype=[num2str(G),'次谐波分量暂时电压中断//'];
HH=[HH Faulttype];
end
end
end
end
if X(i,2)<=3&X(i,2)>0.6
if X(i,3)<=0.9&X(i,3)>=0.1
if i==1
Faulttype='基波分量暂时电压暂降//';
HH=[HH Faulttype];
else
G=X(i,1)/X(1,1);
G=round(G*10)/10;
if G==1
if i==2
Faulttype=['b相暂时电压暂降//'];
HH=[HH Faulttype];
elseif i==3
Faulttype=['c相暂时电压暂降//'];
HH=[HH Faulttype];
end
else
Faulttype=[num2str(G),'次谐波分量暂时电压暂降//'];
HH=[HH Faulttype];
end
end
end
end
if X(i,2)<=3&X(i,2)>0.6
if X(i,3)<=1.4&X(i,3)>=1.1
if i==1
Faulttype='基波分量暂时电压暂升//';
HH=[HH Faulttype];
else
G=X(i,1)/X(1,1);
G=round(G*10)/10;
if G==1
if i==2
Faulttype=['b相暂时电压暂升//'];
HH=[HH Faulttype];
elseif i==3
Faulttype=['c相暂时电压暂升//'];
HH=[HH Faulttype];
end
else
Faulttype=[num2str(G),'次谐波分量暂时电压暂升//'];
HH=[HH Faulttype];
end
end
end
end
if X(i,2)<=60&X(i,2)>3
if X(i,3)<=0.1
if i==1
Faulttype='基波分量短时电压中断//';
HH=[HH Faulttype];
else
G=X(i,1)/X(1,1);
G=round(G*10)/10;
if G==1
if i==2
Faulttype=['b相短时电压中断//'];
HH=[HH Faulttype];
elseif i==3
Faulttype=['c相短时电压中断//'];
HH=[HH Faulttype];
end
else
Faulttype=[num2str(G),'次谐波分量短时电压中断//'];
HH=[HH Faulttype];
end
end
end
end
if X(i,2)<=60&X(i,2)>3
if X(i,3)<=0.9&X(i,3)>=0.1
if i==1
Faulttype='基波分量短时电压暂降//';
HH=[HH Faulttype];
else
G=X(i,1)/X(1,1);
G=round(G*10)/10;
if G==1
if i==2
Faulttype=['b相短时电压暂降//'];
HH=[HH Faulttype];
elseif i==3
Faulttype=['c相短时电压暂降//'];
HH=[HH Faulttype];
end
else
Faulttype=[num2str(G),'次谐波分量短时电压暂降//'];
HH=[HH Faulttype];
end
end
end
end
if X(i,2)<=60&X(i,2)>3
if X(i,3)<=1.2&X(i,3)>=1.1
if i==1
Faulttype='基波分量短时电压暂升//';
HH=[HH Faulttype];
else
G=X(i,1)/X(1,1);
G=round(G*10)/10;
if G==1
if i==2
Faulttype=['b相短时电压暂升//'];
HH=[HH Faulttype];
elseif i==3
Faulttype=['c相短时电压暂升//'];
HH=[HH Faulttype];
end
else
Faulttype=[num2str(G),'次谐波分量短时电压暂升//'];
HH=[HH Faulttype];
end
end
end
end
if X(i,2)>=60
if X(i,3)==0
if i==1
Faulttype='基波分量持续中断//';
HH=[HH Faulttype];
else
G=X(i,1)/X(1,1);
G=round(G*10)/10;
if G==1
if i==2
Faulttype=['b相持续中断//'];
HH=[HH Faulttype];
elseif i==3
Faulttype=['c相持续中断//'];
HH=[HH Faulttype];
end
else
Faulttype=[num2str(G),'次谐波分量持续中断//'];
HH=[HH Faulttype];
end
end
end
end
if X(i,2)>=60
if X(i,3)<=0.9&X(i,3)>=0.8
if i==1
Faulttype='基波分量欠电压//';
HH=[HH Faulttype];
else
G=X(i,1)/X(1,1);
G=round(G*10)/10;
if G==1
if i==2
Faulttype=['b相欠电压//'];
HH=[HH Faulttype];
elseif i==3
Faulttype=['c相欠电压//'];
HH=[HH Faulttype];
end
else
Faulttype=[num2str(G),'次谐波分量欠电压//'];
HH=[HH Faulttype];
end
end
end
end
if X(i,2)>=60
if X(i,3)<=1.2&X(i,3)>=1.1
if i==1
Faulttype='基波分量过电压//';
HH=[HH Faulttype];
else
G=X(i,1)/X(1,1);
G=round(G*10)/10;
if G==1
if i==2
Faulttype=['b相过电压//'];
HH=[HH Faulttype];
elseif i==3
Faulttype=['c相过电压//'];
HH=[HH Faulttype];
end
else
Faulttype=[num2str(G),'次谐波分量过电压//'];
HH=[HH Faulttype];
end
end
end
end
if X(i,1)==0
if X(i,2)==0
if X(i,3)<=0.3&X(i,3)>=0.05 %对于电压波动,输入的幅值为波动的最大值;
Faulttype='电压波动//';
HH=[HH Faulttype];
end
end
end
if X(i,3)==0
if X(i,2)==0
if X(i,1)>0|X(i,1)<0
Faulttype='三相不平衡//';
HH=[HH Faulttype];
end
end
end
end
if X(1,1)/50<1.04&X(1,1)/50>1.0016
Faulttype='频率波动//';
HH=[HH Faulttype];
elseif X(1,1)/50<0.9984&X(1,1)/50>0.96
Faulttype='频率波动//';
HH=[HH Faulttype];
end
HH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -