1.算法描述 风力发电机采用状态监测和故障诊断技术的必要性 为了便于风能的获取,风场一般都设在比较偏远的山区或者近海区域,所以 风力发电机会受到阵风、侵蚀等因素的影响。风力发电机组一般设在 80~120m 的高空,在机组运行时需要承受较大的受力载荷。由于设计不合理、焊接质量缺 陷等原因会引发机组运行故障,当出现阵风时,会对叶片造成短暂而频繁的冲击 载荷,而叶片受到的荷载又会对传动链上的部件产生不同程度的影响而引发故障。
利用RBF神经网络的非线性良好的逼近性能对风力发电系统建模。并考虑实际情况中,风力发电系统的状态量不可测,用RBF神经网络对系统的状态进行观测。
用两个RBF神经网络分别逼近
需要把系统的状态(emt)和状态的估计值合在一张图上,状态(omgh)和状态的估计值和合在一张图上,好进行比较。两种故障的估计值图和实际值合在一张图上好对比。
rbf神经网络原理是用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入矢量直接映射到隐空间,而不需要通过权连接。
当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。其中,隐含层的作用是把向量从低维度的p映射到高维度的h,这样低维度线性不可分的情况到高维度就可以变得线性可分了,主要就是核函数的思想。
- RBF神经网络中对于权重的求解也可以使用BP算法求解。
不同点:
-
中间神经元类型不同(RBF:径向基函数;BP:Sigmoid函数)
-
网络层次数量不同(RBF:3层;BP:不限制)
-
运行速度的区别(RBF:快;BP:慢)
RBF神将网络是一种三层神经网络,其包括输入层、隐层、输出层。从输入空间到隐层空间的变换是非线性的,而从隐层空间到输出层空间变换是线性的。流图如下:
RBF网络的基本思想是:用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入矢量直接映射到隐空间,而不需要通过权连接。当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。其中,隐含层的作用是把向量从低维度的p映射到高维度的h,这样低维度线性不可分的情况到高维度就可以变得线性可分了,主要就是核函数的思想。这样,网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。
2.仿真效果预览 matlab2022a仿真结果如下:
3.MATLAB核心程序
ro= 1.25; R= 2.5;
cp_m= 0.47; lam_opt= 7; % maximum values of power coefficient, tip speed ratio
tC_opt= cp_m/lam_opt; % and torque coefficient
Jwt= 3; % rotor inertia
sT= 0; % static (or supplimentary) component torque
% mech. transmission parameters
i=6.25; eta=0.95 ; % multiplication ratio and efficiency
ks =0; ds =0 ; % stiffness and damping
Jd_l = 0.02; Jd_h = 0.005; % supplimentary inertias of transmission
% SCIG parameters
% 220V / 50Hz
% 157 rad/s
% 6kW
% ____________________________
Rs = 1.265; Rr = 1.430; % stator & rotor resistance, inductance etc
Ls = 0.1452; Lr = 0.1452;
Lm = 0.1397; p = 2;
sgm=1-Lm^2/Lr/Ls; Tr=Lr/Rr;
emTmax = 50; % maximum torque value
% not used in this application
Jg = 0.01; % IM inertia
sizes.NumSampleTimes = 0;
sys = simsizes(sizes);
x0=zeros(1,33);
str=[];
ts=[];
c1=12/3*[-5 -4 -3 -2 -1 0 1 2 3 4 5];
c2=16/3*[-5 -4 -3 -2 -1 0 1 2 3 4 5];
c=[c1;c2];
b=5;
function sys=mdlDerivatives(t,x,u)
global c b
y=u(1);
ut=u(2);
x1p=u(3);
x2p=u(4);
xp=[x1p x2p]';
yp=x2p;
ye=y-yp;
h=zeros(11,1);
for j=1:1:11
h(j)=exp(-norm(xp-c(:,j))^2/(2*b^2));
end
h_bar=x(23:1:33);
F1=500*eye(11);
F2=0.5*eye(11);
k1=0.001;k2=0.001;
W1=[x(1) x(2) x(3) x(4) x(5) x(6) x(7) x(8) x(9) x(10) x(11)];
W2=[x(12) x(13) x(14) x(15) x(16) x(17) x(18) x(19) x(20) x(21) x(22)];
dW1=F1*h_bar*ye - k1*F1*abs(ye)*W1';
dW2=F2*h_bar*ye*ut - k2*F2*abs(ye)*W2';
for i=1:1:11
sys(i)=dW1(i);
sys(i+11)=dW2(i);
end
for i=23:1:33
sys(i)=h(i-22)-0.5*x(i);
end