智能控制实验指导书.docx
- 文档编号:26798354
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:18
- 大小:260.05KB
智能控制实验指导书.docx
《智能控制实验指导书.docx》由会员分享,可在线阅读,更多相关《智能控制实验指导书.docx(18页珍藏版)》请在冰豆网上搜索。
智能控制实验指导书
智能控制理论及应用
(实验指导书)
实验一模糊控制的理论基础实验
实验目的:
学习隶属函数编程;模糊矩阵合成运算编程;模糊推理运算编程。
1隶属函数编程
学习P39例2-12(以下为例程)
完成思考题P802-2写出W及V两个模糊集的隶属函数,并绘出“非常老,很老,比较老,有点老”的四个隶属度函数仿真后的曲线。
%MembershipfunctionforoldPeople
clearall;
closeall;
fork=1:
1:
1001
x(k)=(k-1)*0.10;
ifx(k)>=0&x(k)<50
y(k)=0;
else
y(k)=1/(1+(1/((x(k)-50)/5)^2));
end
end
plot(x,y,'k');
xlabel('XYears');ylabel('Degreeofmembership');
2模糊矩阵合成仿真程序
学习P31例2-10,仿真程序如下。
完成思考题P812-5,并对比手算结果。
clearall;
closeall;
A=[0.2,0.8;
0.6,0.1];
B=[0.5,0.7;
0.1,0];
%CompoundofAandB
fori=1:
2
forj=1:
2
AB(i,j)=max(min(A(i,:
),B(:
j)'))
end
end
3模糊推理仿真程序
学习P47例2-16,仿真程序如下。
完成思考题2-9,并对比手算结果。
clearall
closeall
a=[1;0.5]
b=[0.1;0.5;1]
c=[0.2;1]
fori=1:
2
forj=1:
3
ab(i,j)=min(a(i),b(j));%求出D
end
end
t1=[];
fori=1:
2
t1=[t1;ab(i,:
)'];
end
%准备好DT;
fori=1:
6
forj=1:
2
r(i,j)=min(t1(i),c(j));
end
end
%求出R
a1=[0.8;0.1]
b1=[0.5;0.2;0]
fori=1:
2
forj=1:
3
ab1(i,j)=min(a1(i),b1(j));%求出D1
end
end
t2=[];
fori=1:
2
t2=[t2;ab1(i,:
)'];
end
fori=1:
6
forj=1:
2
d(i,j)=min(t2(i),r(i,j));
c1(j)=max(d(:
j));
end
end
实验二自动小车沿直线行进模糊控制系统仿真
矿区除尘一直是煤矿生产的重要工作,这既是生产环境的要求也是对工作人员身体健康的保证。
采用自动行进的洒水车进行除尘工作是矿区除尘的主要发展方向。
模糊控制技术对于不确定系统具有良好的控制效果,所以引入模糊控制算法对矿区洒水车进行自动控制是解决道路凹凸影响的有效途径。
洒水车行进轨迹一定的时候,洒水车相对预定轨迹的误差如图1所示。
可以取其中两个量表示误差。
一个是洒水车行进方向与预定轨迹的夹角θ,一个是洒水车中心点到预定轨迹的距离d。
显然,当洒水车平稳行进的时候夹角θ和距离d将一直保持为0。
但是当路面凹凸不平时,洒水车在行进路线上就会产生一定的偏移。
对洒水车的控制就是控制这两个偏移量,使得洒水车在出现偏移后能自动调整方向回到预期轨迹上来。
图1洒水车行进中的误差
1模糊控制器的设计
采用夹角θ和距离d作为输入,洒水车导向轮与车体偏转角α作为输出量。
以在预定道路右向为正,左向为负。
由于路面不平带来的洒水车偏移一般都不大,设定夹角θ的范围是-6º~6º,距离d的范围是-1.2m~1.2m,偏转角α的范围是-30º~30º,每个变量论域均包括NB、NM、NS、Z、PS、PM、PB七个模糊子集。
三个变量的隶属度函数如图2所示,模糊控制规则如表1所示。
(a)(b)
(c)
图2隶属度函数
(a)夹角θ(b)距离d(c)偏转角α
表1模糊控制规则
d
NB
NM
NS
Z
PS
PM
PB
θ
NB
PB
PB
PB
PB
PM
PS
Z
NM
PB
PB
PM
PM
PS
Z
Z
NS
PB
PM
PM
PS
Z
Z
NS
Z
PM
PS
PS
Z
NS
NS
NM
PS
PS
Z
Z
NS
NM
NM
NB
PM
Z
Z
NS
NM
NM
NB
NB
PB
Z
NS
NM
NB
NB
NB
NB
2仿真程序如下
fisb=readfis('fisb');%从磁盘中加载模糊推理系统函数;
kk=1000;
ww=0.0001;
xx=1:
kk;
x=zeros(kk,1);
yy=x;
nowxita=x;
x
(1)=-0.8;%d的初值
nowxita
(1)=-6;%xita的初值
y=1;
step0=0.1;
jj=zeros(2,1);
whiley ifabs(x(y)) alf=0; else alf=evalfis([x(y)nowxita(y)],fisb); end pi0=2*asin (1); if-ww if-ww x(y+1)=x(y); nowxita(y+1)=nowxita(y); yy(y+1)=yy(y)+step0; else x(y+1)=step0*cos(pi0*(90-nowxita(y)-alf)/180)+x(y); nowxita(y+1)=nowxita(y)+alf; yy(y+1)=yy(y)+step0*sin(pi0*(90-nowxita(y)-alf)/180); end else alf0=pi0*alf/180; rr=7.5*tan(pi0*6/180)/tan(alf0); beita=step0*360/(2*pi0*rr); nowxita(y+1)=nowxita(y)+beita; beitaa=beita*pi0/180; xx0=rr*(1-cos(beitaa)); yy0=rr*sin(beitaa); rr0=(xx0^2+yy0^2)^0.5; beita0=acos(xx0/rr0); beita0=beita0*180/pi0; beita1=beita0-nowxita(y); beita2=beita1*pi0/180; x(y+1)=x(y)+rr0*cos(beita2); yy(y+1)=yy(y)+rr0*sin(beita2); end y=y+1; if(jj (1)==0) if(abs(x(y))<0.1) jj (1)=yy(y); end end if(jj (2)==0) if(abs(x(y))<0.05) jj (2)=yy(y); end end end figure (1) plot(yy,x,'r') holdon figure (2); plot(yy,nowxita); jj 表2不同初始位置仿真结果 初始d 初始θ 0.1m处洒水车行进距离(m) 0.05m处洒水车行进距离(m) -0.2 -5º 10.4984 17.8982 -0.2 5º 4.1980 11.6978 -0.6 -4º 20.0704 27.5702 -0.6 4º 14.6869 22.1867 -0.8 -6º 18.3797 25.7795 -0.8 6º 16.6772 24.1770 -1.0 -1º 19.9709 27.4707 -1.0 1º 19.8710 27.3709 3小结 针对矿区道路凹凸不平导致洒水车行进产生偏移的现象,提出了除尘洒水车行进模糊控制算法,仿真结果表明该方法对于洒水车突然出现的偏移可在较短距离内自动调整线路,恢复预期行驶路线。 这将为矿区除尘洒水车的行进控制提供理论基础。 实验三神经网络---感知机 实验内容: 1)看懂《教学辅导材料》中实现“与”功能的程序 2)编写能实现“或”功能的感知机程序,要求: a)给出完整的程序,并对重要的函数及语句给于解释说明,程序中要用语句画出训练误差图,分类图等 b)在实验报告中,画出设计的网络的结构图(几层,几个神经元等),并在图中标出训练好的权值阈值。 附件: (程序) %建立一个感知机网络,使其能够完成“或”的功能 %感知机神经网络学习阶段 %自编程,没用mat工具箱 err_goal=0.001;lr=0.9; max_expoch=10000; X=[0011;0101];T=[0111]; [M,N]=size(X);[L,N]=size(T); Wij=rand(L,M);y=0;b=rand(L); forepoch=1: max_expoch NETi=Wij*X; forj=1: N fori=1: L if(NETi(i,j)>=b(i)) y(i,j)=1; else y(i,j)=0; end end end E=(T-y);EE=0; forj=1: N EE=EE+abs(E(j)); end if(EE Wij=Wij+lr*E*X'; b=b+sqrt(EE); end epoch,Wij,b %第二阶段工作期,验证网络 X1=X; NETi=Wij*X1;[M,N]=size(X1); forj=1: N fori=1: L if(NETi(i,j)>=b(i)) y(i,j)=1; else y(i,j)=0; end end end y %直接利用matlab工具箱(initptrainpsimup) clearall NNTWARNOFF p=[0011; 0101] t=[0111] [w1,b1]=initp(p,t) [w1,b1,epoches,errors]=trainp(w1,b1,p,t,[-1]);% %%%%%%%%%%%计算完毕 figure (2);ploterr(errors) a1=simup(p,w1,b1);%%%%%%中间隐层的输出 a1 e=t-a1; k=1: 1: 4; figure(3);plot(k,e) 实验四神经网络----双层感知机 实验内容: 1)用双层感知机实现“异或”功能 2)编写程序,设计网络,实现下面功能: 四个变量: x1,x2,x3,x4 正常状态: xi(i=1……4)四个变量均正常 轻微故障: 只有一个变量不正常(故障) 严重故障: 有任何两个变量不正常 禁止使用: 任何三个变量不正常 设计网络能实现,对任意给定,网络能判断出目前系统处于何种故障状态。 (利用MAT中的神经网络函数编程) 题目1附件: (程序) %%%%%%%%%%直接利用mat工具箱(initptrainp) clearall NNTWARNOFF p=[0011; 0101]; t=[0110]; s1=9; [w1,b1]=initp(p,s1);%%%%%%%%初始化第一层权值及阈值 pause [w2,b2]=initp(s1,t);%%%%%%%%初始化第二层(隐层)权值及阈值 A1=simup(p,w1,b1);%网络第一层输出 [w2,b2,epoches,errors]=trainp(w2,b2,A1,t,[-1]); pause %%%%%%%%%%学习完毕,即网络建立完毕 w2 b2 pause figure (2) ploterr(errors) pause a1=simup(p,w1,b1);%网络第一层输出 a2=simup(a1,w2,b2);%网络第一层输出 e=t-a2; k=1: 1: 4; figure(3) plot(k,e) %网络第一层的权值及阈值不做修改,只有隐层的的权值及阈值进行不断学习及修改。 %%%%%%%%%先设定(任意选取w1b1),初始化W2B2,再让W2B2不断学习修正 %%%%%%%%%也是直接利用mat工具箱 p=[0011;0101]; t=[0110]; w1=[1-1; 1-1] b1=[-0.5;0.5] [w2,b2]=initp(2,t); A1=simup(p,w1,b1);%网络输出 [w2,b2,epoches,errors]=trainp(w2,b2,A1,t,[-1]); figure (2) ploterr(errors) a1=simup(p,w1,b1); a2=simup(a1,w2,b2) e=t-a2; k=1: 1: 4; figure(3);plot(k,e) 题目2附件: (程序) NNTWARNOFF p=[0000001011101111; 0001010101011011; 0011101000011110; 0111011011000010]; t=[0011011011011111; 0101101101101010]; s1=20; [w1,b1]=initp(p,s1) pause [w2,b2]=initp(s1,t); A1=simup(p,w1,b1);%网络输出 [w2,b2,epoches,errors]=trainp(w2,b2,A1,t,[-1]); w2 b2 ploterr(errors) a1=simup(p,w1,b1); a2=simup(a1,w2,b2); e=t-a2; e1=e(1,: ); e2=e(2,: ); e=e1+e2; k=1: 1: 16; figure (2) plot(k,e) 实验五神经网络----bp网络 实验内容: 1编写程序,设计bp神经网络,实现下面功能: 四个变量: x1,x2,x3,x4 正常状态: xi(i=1……4)四个变量均正常 轻微故障: 只有一个变量不正常(故障) 严重故障: 有任何两个变量不正常 禁止使用: 任何三个变量不正常 设计网络能实现,对任意给定,网络能判断出目前系统处于何种故障状态。 (利用MAT中的神经网络函数编程) P=[0000001011101111; 0001010101011011; 0011101000011110; 0111011011000010]; T=[0011011011011111; 0101101101101010]; net=newff([01;01;01;01],[52],{'tansig''purelin'}); net.trainParam.epochs=50; net=train(net,P,T); savemynet.matnet Y=(sim(net,P)); yy=round(Y); %loadmynet.matnet w1=net.iw{1,1} w2=net.lw{2,1} b1=net.b{1} b2=net.b{2} 2芒果体积自动检测 芒果是一种深受人们喜爱的水果,其体积是芒果分级中的一个重要指标。 然而在我国,水果品质检测大部分仍停留在靠人工感官进行识别判断的原始阶段,这种主观判定效率低,误差大。 基于视觉的计算机检测具有速度快、信息量大、检测准确的优点。 通过拍摄芒果图片,利用图像处理技术,得到芒果二值图和芒果截面积。 要求根据芒果截面积,通过bp神经网络对芒果体积自动估测。 附件: 实验芒果截面积及芒果实际体积对应表 编号 芒果实际 体积(cm3) 芒果截面积对 应像素点个数 1 82 111828 2 86 112513 3 76 95168 4 100 132131 5 84 114039 6 80 97809 7 88 105475 8 96 115618 9 72 86502 10 84 103128 11 68 80806 12 72 94151 13 80 97279 14 78 96392 15 76 94029 16 86 108581 17 74 89621 18 92 109230 19 76 95080 20 74 95255 21 84 106635 22 74 91591 23 82 101339 24 70 89401 实验六神经网络----bp网络 完成: 1 的最小值。 要求: 找到程序的“复制、交换、变异”的程序段;以及该程序中“种群大小”“进化代数”“交换率”“变异率”各参数的值。 2基于遗传算法的喷洒参数优化算法 随着现代农业的发展,自动喷洒农药成为农业机械的一个发展方向。 在农药自动喷洒中,由于保护环境和节省农药的要求不断提高,优化喷洒参数成为提高农药喷洒效率的有效途径。 另一方面,由于对设备要求低,机器视觉技术在现代农业中的应用越来越广泛。 因此,在农业机器视觉技术中如何优化农药喷洒参数受到广泛的关注。 要求给定农药喷洒主要参数之一喷洒半径的基础上,对采集到的农业图像,利用遗传算法喷洒参数—喷头喷洒中心位置进行优化。 其中: 农业图像如下。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 控制 实验 指导书