针对变压器故障的特征,结合变压器油中气体分析法以及三比值法.提出了基于遗传算法改进极限学习机的故障诊断方法.由于输入层与隐含层的权值和阈值是随机产生.传统的极限学习机可能会使隐含层节点过多,训练过程中容易产生过拟合现象.该方法运用遗传算法对极限学习机的输入层与隐含层的权值与阈值进行优化,从而提高模型的稳定性和预测精度.将诊断结果与传统的基于极限学习机故障诊断进行对比,结果表明,基于遗传算法改进极限学习机变压器故障诊断的精度更高.
遗传算法是以自然选择和遗传理论为基础,将生物进化过程中适者生存规则与种群内部染色体的随机信息交换机制相结合的高效全局寻优搜索算法。 该算法是把问题参数编码为染色体,再利用迭代的方式进行选择,交叉以及变异等运算来交换种群中的染色体的信息。 从而使群体代代进化到搜索空间中越来越好的区域,直至抵达最优解点。 在遗传算法中,染色体对应的是数据或者数组,一般由结构串数据组成来表示。 串上各个位置对应基因的取值。由一系列基因组成的串就是染色体,或者称之为基因型个体, 一定数量的个体又组成为群体,群体中的数目称之为群体大小,而各个个体对环境的适应程度称之为适应度。
function [Kpidi,BsJ]=pid_gaf(Kpidi,BsJ)
global rin yout timef
ts=0.001;
sys=tf(350,[1,45,1]);
dsys=c2d(sys,ts,'z');
[num,den]=tfdata(dsys,'v');
rin=1.0;
u_1=0.0;u_2=0.0;
y_1=0.0;y_2=0.0;
x=[0,0,0]';
B=0;
error_1=0;
tu=1;
s=0;
P=100;
for k=1:1:P
timef(k)=k*ts;
r(k)=rin;
u(k)=Kpidi(1)*x(1)+Kpidi(2)*x(2)+Kpidi(3)*x(3);
if u(k)>=10
u(k)=10;
end
if u(k)<=-10
u(k)=-10;
end
yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;
error(k)=r(k)-yout(k);
%------------ Return of PID parameters -------------
u_2=u_1;u_1=u(k);
y_2=y_1;y_1=yout(k);
x(1)=error(k); % Calculating P
x(2)=(error(k)-error_1)/ts; % Calculating D
x(3)=x(3)+error(k)*ts; % Calculating I
error_2=error_1;
error_1=error(k);
if s==0
if yout(k)>0.95&yout(k)<1.05
tu=timef(k);
s=1;
end
end
end
for i=1:1:P
Ji(i)=0.999*abs(error(i))+0.01*u(i)^2*0.1;
B=B+Ji(i);
if i>1
erry(i)=yout(i)-yout(i-1);
if erry(i)<0
B=B+100*abs(erry(i));
end
end
end
BsJ=B+0.2*tu*10;
[1]吕忠, 周强, 周琨, 陈立, & 申双葵. (2015). 基于遗传算法改进极限学习机的变压器故障诊断. 高压电器, 51(8), 5.