智能控制大作业课本P236.docx
- 文档编号:23123973
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:17
- 大小:343.66KB
智能控制大作业课本P236.docx
《智能控制大作业课本P236.docx》由会员分享,可在线阅读,更多相关《智能控制大作业课本P236.docx(17页珍藏版)》请在冰豆网上搜索。
智能控制大作业课本P236
智能控制大作业
设模糊神经网络控制系统原理结构如图7-62所示,图中
为系统期望输出(单位阶跃信号),y为系统输出,被控对象的传递函数为
MATLAB
解:
连续模型离散化
%工作的第一步:
连续模型离散化
clearall
closeall
H=tf([022],[16001],'inputdelay',480)%得到G(s)
Hd=c2d(H,1,'foh')
程序运行结果:
Transferfunction:
22
exp(-480*s)*----------
1600s+1
Transferfunction:
0.006874z+0.006872%将G(s)离散化
z^(-480)*---------------------
z-0.9994
Samplingtime:
1
因为:
T0=1,T1=1600,
=480,K1=22,
由计算可得:
m=480,a1=0.9994,b1=0.006872
所以被控对象仿真模型可表示为:
y(k+1)=0.9994y(k)+0.006872u(k-480-1)+d1+d2
令d1=0.5sin(0.0314k),d2=0.5random
(1)。
一、模糊神经网络理论
径向基函数(RadialBasisFunction,RBF)神经网络是由J.Moody和C.Darken于20世纪80年代末提出的一种神经网络,它是具有单隐层的3层前馈网络。
RBF中的作用函数是高斯基函数,其值在输入空间中有限范围内为非零值,因而RBF网络是局部逼近的网络。
1)RBF网络的逼近
在RBF结构中,X=[x1,x2,...,xn]T为网络的输入向量。
设RBF网络的径向基向量
H=[h1,h2,...,hm]T,
其中hj为高斯基函数,即
hj=exp(-||X-Cj||^2/(2*bj^2)),j=1,2,.....,m
式中,网络第j个节点的中心向量为
Cj=[cj1,cj2,....,cjn]T,i=1,2,...,n
设网络的基宽向量为
B=[b1,b2,....,bm]T
bj为节点j的基宽参数,且为大于零的数。
网络的权向量为
W=[w1,w2,...,wm]T
RBF网络的输出为
ym(k)=w1*h1+w2*h2+....+wm*hm
RBF网络逼近的性能指标函数为
E(k)=(y(k)-ym(k))^2/2
根据梯度下降法,输出权、节点基宽参数及节点中心矢量的迭代算法如下
wj(k)=wj(k-1)+η(y(k)-ym(k))hj+α*(wj(k-1)-wj(k-2))
△bj=(y(k)-ym(k))wj*hj*(||X-Cj||^2/(bj^3))
bj(k)=bj(k-1)+η△bj+α*(bj(k-1)-bj(k-2))
△cji=(y(k)-ym(k))wj*(xi-cji)/(bj^2)
cji(k)=cji(k-1)+η△cji+α*(cji(k-1)-cji(k-2))
式中,η为学习速率,α为动量因子,ηЄ[0,1],αЄ[0,1]。
2)高级神经网络
模糊RBF网络
在模糊系统中,模糊集,隶属函数和模糊规则的设计是建立在经验知识基础上的。
这种设计方法存在很大的主观性。
将学习机制引入到模糊系统中,使模糊系统能够通过不断学习来修改和完善隶属函数和模糊规则,这是模糊系统发展的方向。
模糊系统与模糊神经网络既有区别又有联系,其联系表现为模糊神经网络本质上是模糊系统的实现,其区别表现为模糊神经网络又具有神经网络的特性。
在模糊神经网络中,神经网络的输入、输出节点用来表示模糊系统的输入、输出信号,神经网络的隐含节点用来表示隶属函数和模糊规则,利用神经网络的并行处理能力使得模糊系统的推理能力大大提高。
网络结构
模糊RBF神经网络结构由输入层、模糊化层、模糊推理层和输出层构成。
第一层:
输入层
该层的各个节点直接与输入量的各个分量连接,将输入量传到下一层。
对该层的每个节点i的输入输出表示为
第二层:
模糊化层
采用高斯函数作为隶属函数,cij和bj分别是第i个输入变量第j个模糊集合的隶属函数的均值和标准差。
即
第三层:
模糊推理层
该层通过与模糊化层的连接来完成模糊规则的匹配,各个节点之间实现模糊运算,即通过各个模糊节点的组合得到相应的点火强度。
每个节点j的输出为该节点所有输入信号的乘积,即
式中,
为输入层中第i个输入隶属函数的个数,即模糊化节点数。
第四层:
输出层
输出层为
,即f4(l)=W•f3=
式中,
为输出层节点的个数,W为输出层节点与第三层各节点的连接权矩阵。
二、利用模糊算法
1)模糊控制器设计及仿真结果
%模糊控制器的设计仿真程序:
fuzzy236.m
%fuzzycontrollerdesign
clearall
closeall
%2个输入,1个输出,49个规则。
a=newfis('fuzzf');
f1=1;
a=addvar(a,'input','e',[-3*f1,3*f1]);%parametere
a=addmf(a,'input',1,'NB','zmf',[-3*f1,-1*f1]);%Z形隶属函数
a=addmf(a,'input',1,'NM','trimf',[-3*f1,-2*f1,0]);%三角形隶属函数
a=addmf(a,'input',1,'NS','trimf',[-3*f1,-1*f1,1*f1]);%三角形隶属函数
a=addmf(a,'input',1,'Z','trimf',[-2*f1,0,2*f1]);%三角形隶属函数
a=addmf(a,'input',1,'PS','trimf',[-1*f1,1*f1,3*f1]);%三角形隶属函数
a=addmf(a,'input',1,'PM','trimf',[0,2*f1,3*f1]);%三角形隶属函数
a=addmf(a,'input',1,'PB','smf',[1*f1,3*f1]);%S形隶属函数
f2=0.5
a=addvar(a,'input','ec',[-3*f2,3*f2]);%parameterec
a=addmf(a,'input',2,'NB','zmf',[-3*f2,-1*f2]);%Z形隶属函数
a=addmf(a,'input',2,'NM','trimf',[-3*f2,-2*f2,0]);%三角形隶属函数
a=addmf(a,'input',2,'NS','trimf',[-3*f2,-1*f2,1*f2]);%三角形隶属函数
a=addmf(a,'input',2,'Z','trimf',[-2*f2,0,2*f2]);%三角形隶属函数
a=addmf(a,'input',2,'PS','trimf',[-1*f2,1*f2,3*f2]);%三角形隶属函数
a=addmf(a,'input',2,'PM','trimf',[0,2*f2,3*f2]);%三角形隶属函数
a=addmf(a,'input',2,'PB','smf',[1*f2,3*f2]);%S形隶属函数
f3=0.5;
a=addvar(a,'output','u',[-1*f3,1*f3]);%parameteru
a=addmf(a,'output',1,'NB','zmf',[-1*f3,-1/3*f3]);
a=addmf(a,'output',1,'NM','trimf',[-1*f3,-2/3*f3,0]);
a=addmf(a,'output',1,'NS','trimf',[-1*f3,-1/3*f3,1/3*f3]);
a=addmf(a,'output',1,'Z','trimf',[-2/3*f1,0,2/3*f1]);
a=addmf(a,'output',1,'PS','trimf',[-1/3*f3,1/3*f1,1*f3]);
a=addmf(a,'output',1,'PM','trimf',[0,2/3*f3,1*f3]);
a=addmf(a,'output',1,'PB','smf',[1/3*f3,1*f3]);
rulelist=[11111;12111;13211;14211;15311;16311;17411;
21111;22211;23211;24311;25311;26411;27511;
31211;32211;33311;34311;35411;36511;37511;
41211;42311;43311;44411;45511;46511;47611;
51311;52311;53411;54511;55511;56611;57611;
61311;62411;63511;64511;65611;66611;67711;
71411;72511;73511;74611;75611;76711;77711];
a=addrule(a,rulelist);
%showrule(a)%showfuzzyrulebase
a1=setfis(a,'DefuzzMethod','mom');%defuzzy
writefis(a1,'fuzzf');
a2=readfis('fuzzf');
disp('....................................................');
disp('fuzzycontrollertable:
e=[-3,+3],ec=[-1.5,+1.5]');
disp('....................................................');
Ulist=zeros(7,7);
fori=1:
7
forj=1:
7
e(i)=-4+i;
ec(j)=-4+j
Ulist(i,j)=evalfis([e(i),ec(j)],a2);
end
end
Ulist=ceil(Ulist);
figure
(1);
plotfis(a2);%得到模糊推理系统
figure
(2);
plotmf(a,'input',1);
figure(3);
plotmf(a,'input',2);
figure(4);
plotmf(a,'output',1);
程序运行结果如下:
图1.模糊推理系统
图2.x1的隶属度曲线
图3.x2的隶属度曲线
图4.输出隶属度曲线
MATLAB仿真图:
(无干扰情况)
仿真结果:
三、模糊神经网络实现
%模糊RBF网络的逼近程序
%FuzzyRBFApproaching
clearall
closeall
%网络结构选择2-25-25-1,神经网络的权值W的初值取[-1,+1]之间的随机值
%网络的学习参数
xite=0.20;%学习速率
alfa=0.05;%动量因子
b=ones(7,1);%b=1高斯基宽向量的初值B=(bj)
c=[-6-4-20246;-6-4-20246];%中心矢量的初值C=(cij)
%权值初值w=2,4
w=[2;4;2;4;2;4;2;4;2;4;2;4;2;4;2;4;2;4;2;4;2;4;2;4;2;
4;2;4;2;4;2;4;2;4;2;4;2;4;2;4;2;4;2;4;2;4;2;4;2];
c_1=c;
c_2=c_1;
b_1=b;
b_2=b_1;
w_1=w;
w_2=w_1;
u_1=0;
y_1=0;
ts=0.001;
fork=1:
1:
1000
time(k)=k*ts;
u(k)=1;%输入信号为单位阶跃信号(系统期望输出)heaviside(k*ts)
%使用模糊RBF网络的逼近对象y(k)=0.9994y(k-1)+0.006872u(k-480-1)+d1+d2
%d1=0.5*sin(0.0314k),d2=0.5*random
(1)。
y(k)=0.9994*y_1+0.006872*u_1+0.5*sin(0.0314*k*ts);
x=[u(k),y(k)]';%Layer1:
input
f1=x;%输入层
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fori=1:
1:
2%Layer2:
fuzzation模糊化层
forj=1:
1:
7
net2(i,j)=-(f1(i)-c(i,j))^2/b(j)^2;
end
end
fori=1:
1:
2
forj=1:
1:
7
f2(i,j)=exp(net2(i,j));
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
forj=1:
1:
7%Layer3:
fuzzyinference(49rules)
m1(j)=f2(1,j);
m2(j)=f2(2,j);
end
fori=1:
1:
7
forj=1:
1:
7
ff3(i,j)=m2(i)*m1(j);
end
end
f3=[ff3(1,:
),ff3(2,:
),ff3(3,:
),ff3(4,:
),ff3(5,:
),ff3(6,:
),ff3(7,:
)];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f4=w_1'*f3';%Layer4:
output,
ym(k)=f4;
e(k)=y(k)-ym(k);
d_w=0*w_1;
forj=1:
1:
25
d_w(j)=xite*e(k)*f3(j);
end
w=w_1+d_w+alfa*(w_1-w_2);
delta2=-e(k)*w'*f3';
d_b=0*b_1;
forj=1:
1:
7
d_b(j)=xite*delta2*2*((x
(1)-c(1,j))^2)*(b(j)^-3);
end
b=b_1+d_b+alfa*(b_1-b_2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
d_c=0*c_1;
fori=1:
1:
1
forj=1:
1:
7
d_c(i,j)=-xite*delta2*2*(x(i)-c(i,j))*b(j)^-2;
end
end
c=c_1+d_c+alfa*(c_1-c_2);
u_1=u(k);
y_1=y(k);
w_2=w_1;
w_1=w;
c_2=c_1;
c_1=c;
b_2=b_1;
b_1=b;
end
figure
(1);
plot(time,y,'r',time,ym,'b');
xlabel('time(s)');ylabel('Approaching');
figure
(2);
plot(time,y-ym,'r');
xlabel('time(s)');ylabel('Approachingerror');
小结:
本文对所给系统用模糊控制和模糊神经网络控制两种方法进行了matlab程序仿真。
在模糊控制仿真中,用matlab程序进行控制器推理系统设计,由于系统延迟参数比较大,仿真跟踪缓慢,效果还行;在模糊神经网络逼近程序中,由于阶跃信号的选择问题,仿真达不到所要的结果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 控制 作业 课本 P236
![提示](https://static.bdocx.com/images/bang_tan.gif)