Ԥģͷ
ժҪһȨֵߵĶ̬BPģԤϲԤģһɶ̬Ԥڴ˻γɶģж̬Ԥ㷨㷨Ԥ⾫ȣǿԤ㷨³ԡ
ؼʣԤ ̬
1.
̬(DMC)һڽȶԻԶԤ㷨 Ŀǰѹ㷺Ӧڹҵ̿ơڶԾӦϵԤģͣ ˽ģ ͬʱöಽŻ뷴УϣֱӴʱͶõĸܺͽǿ³ԡ
ǣDMC㷨ʵʿдһϵ⣬ģʧձڵһ⣬̶ͬȵӰϵͳܡDMCʵʿвģʧԭҪ2һ罨ģŵأʵʿƵȫ̷ΧDMCģʧ䣻ʵϵͳķԣһʹñضģͷ仯ʱһ̶ĽԾӦƿȫ̷ΧĿƣȻʹʵʿڶķǽģڳģʧ䡣DMCģʧ⣬ѧ߽˴оȡ˷ḻоɹлDMCƲ߱ʶܿ㷨ģ߱ʶУ㷨ԼԪģͱʶڱʶĻٽж̬ƵȡЩ㷨ܽ߱ʶģͲԶԶģ(ṹԽģ)³ԲãŽС⣬˻УĶ̬㷨ЩûʱԤѧģԭģõδԤ⡣˻Ԥⷽ붯̬ƣӦʵʡַȻʹϵͳֳõȶԣȷѧģͻһѡ
ͨѵѧϰܱƽн纯ص㣬һֲBPԤDMCԤģ͡ԤԤģδܰһвȷϢԹΪBPһϵйȥϢԤδΪģԤҪ䣬ͽѧģ͵ĸһֲڶģѼԿǵһء
ͨз棬֤˻Ԥ㷨ЧԼԽԣ
Ӷǿ˶̬㷨³ԡ
2.BPģ
BPģʹϢĻԭǣźXiͨмڵ㣨㣩ڵ㣬α任źYkѵÿXtֵYֵt֮ƫͨڵڵǿȡֵWijڵڵ֮ǿTjkԼֵʹݶȷ½ѧϰѵȷСӦȨֵֵѵֹͣʱѵ缴ܶϢдСľתϢ 2.1 BPģͽ
BPģͰģ͡úģ͡ģͺѧϰģ͡ 1ڵģ
ڵģͣOj=f(WijXi-q j) (1)
ڵģͣYk=f(TjkOj-q k) (2)
f-úq -Ԫֵ
2úģ
úǷӳ²ϲڵ̼ǿȵĺֳƴ̼һȡΪ(0,1)ȡֵSigmoid f(x)= 1/(1+e) 3 3ģ
ģǷӳ֮Сĺ
Ep=1/2(tpi-Opi) tpi- iڵֵOpi-iڵֵ (4)
4ѧϰģ
ѧϰ̣²ڵϲڵ֮ȨؾWij趨̡BPʦѧϰʽ-Ҫ趨ֵʦѧϰʽ-ֻģʽ֮֡ѧϰģΪ
Wij(n+1)= hiOj+aWij(n) (5)
h-ѧϰӣi-ڵiļOj-ڵjļa-ӡ 2.2 BPģ͵ȱݷŻ 1ѧϰh Ż
ñ䲽СԶѧϰӣٵͼӿٶȡ
h =h+a(Ep(n)- Ep(n-1))/ Ep(n)
aΪ0~1֮ȡֵ 6
2ڵŻ
2
-x
ڵĶٶܵӰϴڵ̫ʱᵼѧϰʱڵСʱݴع вԼ̬ɾһЩصڵ㣬ڵɾɸýڵָһڵȨֵֵͨȡ0.10.05䣩֮УýڵɾڵLɲο湫ʽ㣺
L=(m+n)1/2+c (7) m-ڵn-ڵc-110ij
3Ԫȷ
öԪعдɾǿڵ 4㷨Ż
BP㷨õ½ھֲСѵʱϳûƵؼȫܱδŴ㷨IGAȡͳBP㷨˷ȱ㡣
2.3 BP
豸ضĽѧģΪ yout(k)? 8
ʽУϵͳakʱģa(k)?1.2(1?0.8e?0.1ka(k)yout(k?1)?u(k?1)1?yout2(k?1)
)
Ľṹѡ2-6-1ѧϰٶ =0.5ϵ=0.05ָźΪ
rin(k)=0.5*sin(6**t) clear all; x=[0,0]'; close all; u_1=0; xite=0.50; y_1=0; alfa=0.05; I=[0,0,0,0,0,0]'; w2=rand(6,1); Iout=[0,0,0,0,0,0]'; w2_1=w2;w2_2=w2; FI=[0,0,0,0,0,0]'; w1=rand(2,6); ts=0.001; w1_1=w1;w1_2=w1; for k=1:1:1000 dw1=0*w1; time(k)=k*ts; u(k)=0.50*sin(3*2*pi*k*ts);
a(k)=1.2*(1-0.8*exp(-0.1*k)); y(k)=a(k)*y_1/(1+y_1^2)+u_1;
for j=1:1:6
I(j)=x'*w1(:,j);
Iout(j)=1/(1+exp(-I(j))); end
yn(k)=w2'*Iout; e(k)=y(k)-yn(k);
w2=w2_1+(xite*e(k))*Iout+alfa*(w2_1-w2_2);
for j=1:1:6
FI(j)=exp(-I(j))/(1+exp(-I(j)))^2; end
for i=1:1:2 for j=1:1:6
dw1(i,j)=e(k)*xite*FI(j)*w2(j)*x(i); end end
w1=w1_1+dw1+alfa*(w1_1-w1_2);
x(1)=u(k); x(2)=y(k);
w1_2=w1_1;w1_1=w1; w2_2=w2_1;w2_1=w2; u_1=u(k); y_1=y(k); end
subplot(2,1,1);
plot(time,y,'r',time,yn,'b');
xlabel('times');ylabel('ʵͷ'); grid on
subplot(2,1,2);
plot(time,y-yn,'r');
xlabel('times');ylabel('error'); grid on