模糊神经网络噪声解耦MATLAB程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模糊神经网络解耦MATLAB 程序

例用隶属函数型神经网与模糊控制融合的解耦程序

具有耦合的两个相邻子系统的差分方程为

⎩⎨⎧++-+-+-=++-+-+-=)()()2()1()1()()()()2()1()1()(2122221212

1211211111k y k k u b k u b k y a k y k y k k u b k u b k y a k y ξξ (7.122) 式中,)(k i ξ随机噪声;)(k y ij 为两个相邻子系统之间的耦合;采用隶属函数型神经网与模糊控制融合的解耦方法(DMFFCNN )方法实现解耦控制。

1) 开发的程序

p1=0.5;

q1=0.5;

p2=0.5;

q2=0.5;

p3=0.5;

q3=0.5;

p4=0.95;

q4=0.5;

p5=0.95;

q5=0.5;

p6=0.95;

q6=0.5;

p7=0.5;

q7=0.5;

p8=0.95;

q8=0.5;

p9=0.5;

q9=0.5;

p10=0.95;

q10=0.5;

p11=0.95;

q11=0.5;

p12=0.95;

q12=0.5;

p13=0.65;

q13=0.05;

%隶属函数型神经网的中心值、尺度因子和权向量初始化部分a10=[-2 0 2];

a11=[-2 0 2];

a20=[-2 0 2];

a21=[-2 0 2];

b10=[1.5 1.5 1.5];

b11=[1.5 1.5 1.5];

b20=[1.5 1.5 1.5];

b21=[1.5 1.5 1.5];

v0=[-1 -0.5 -0.5;-0.5 0 0.5;0.5 0.5 1];

v1=[-1 -0.5 -0.5;-0.5 0 0.5;0.5 0.5 1];

%系统部分的初值

yp0=0;

yp1=0;

ep0=0;

ep1=0;

up0=1.05;

up1=1.39;

x1=0.12;

x2=0.24;

y0=0;

y1=0;

u1=0;

e0=0;

e1=0;

sp=10;

k=1;

se=0.02;

sd=0.02;

su=0.0522;

%开始

kp=0.284;

ki=0.03;

kd=0.626;

%the second channel reference p12=0.5;

q12=0.5;

p22=0.5;

q22=0.5;

p32=0.5;

q32=0.5;

p42=0.95;

q42=0.5;

p52=0.95;

q52=0.5;

p62=0.95;

q62=0.5;

p72=0.5;

q72=0.5;

p82=0.95;

q82=0.5;

p92=0.5;

q92=0.5;

p102=0.95;

q102=0.5;

p112=0.95;

q112=0.5;

p122=0.95;

q122=0.5;

p132=0.65;

q132=0.05;

%系统部分的初值

yp02=0;

yp12=0;

ep02=0;

ep12=0;

up02=1.05;

up12=1.39;

x12=0.12;

x22=0.24;

y02=0;

y12=0;

u12=0;

e02=0;

e12=0;

sp2=5;

k=1;

se2=0.02;

sd2=0.02;

su2=0.0522;

kp2=0.284;

ki2=0.03;

kd2=0.626;

%+++++++++++++++++++++++++++++++++++++++%子系统1(SUB1)的J循环开始for J=1:50

ep1=10-yp1;

pid=kp*(ep1-ep0)+ki*ep1;

up2=up1+pid;

yp2=0.5*yp1+2.5*up2+2.5*up1;

%yp2=0.8333*yp1-0.1667*yp0+1.6667*up2+1.6667*up1;

yp(:,J)=yp2;

up0=up1;

up1=up2;

ep0=ep1;

yp0=yp1;

yp1=yp2;

end

time=[1:1:50];

n=0.28*rand(size(time)); %产生的SUB1随机噪声

n1=0.3*rand(size(time));%产生的SUB2随机噪声while(k<=50)

%function deal with

for(T=1:20)

X1=x1*se;

X2=x2*sd;

if(X1<=-2)

X1=-2;

elseif(X1>=2)

X1=2;

end

if(X2<=-2)

X2=-2;

elseif(X2>=2)

X2=2;

end

%the hiddening layer output of FNN

for i=1:3

for j=1:3

A=[(X1-a11(:,i))/b11(:,i)].^2;

B=[(X2-a21(:,j))/b21(:,j)].^2;

h(i,j)=exp(-(A+B)/2);

end

end

%the output

sum=0;

for i=1:3

for j=1:3

sum=sum+h(i,j)*v1(i,j);

end

end

ot=sum;

cu=su*ot;

u2=u1+cu;

disp(u2);

if(u2<0)

相关文档
最新文档