版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、智能控制技术基础实 验 指 导 书 西华大学 王富治 编西华大学机械工程与自动化学院实验一:模糊推理仿真与模糊PID控制器设计一、实验目的:1、掌握Matlab模糊工具箱的应用。2、掌握基本模糊推理系统编辑器的应用。3、掌握Simulink模糊控制系统仿真方法。4、掌握控制系统的模糊控制器设计方法。二、实验设备1、PC机2、Matlab软件三、实验内容完成教材p.61之4-4的上机内容。四、实验步骤:1、参考如下simulink仿真程序,完成教材p.60之4-4(1)。说明:1)PID controller 模块可通过如下方法得到:直接从现成的MATLAB例子中复制PID controller
2、,可在MATLAB 命令窗口输入sltank,其中就有一个PID controller,直接复制即可;2)延时环节可用Transport Delay, 延时环节e-0.5s串联;3) 修改PID controller的参数,记录输出波形,起码记录2组。2、根据教材上matlab程序chap4_2,以及如下simulink程序, 完成教材p.60之4-4(2)。说明:1)参考chap4_2.m, 根据如下控制规则表,完成常规模糊控制器设计(修改chap4_2程序),其他不变,修改后程序运行后生成一名为“fuzzf.fis”文件2)注意教材P.64的语句:a2=readfis(fuzzf);3)双
3、击simulink图的“Fuzzy logic controller”,输入a2.4)运行simulink程序,记录仿真结果3、对教材 4-4(3),参考教材程序 Fuzzy_PID.m其中PID调整规则可参考教材P.48的整定规则。注:带延时环节的传递函数格式为:Sys=tf(,inputdelay”, #);五、思考题:1、说明仿真程序中如下函数的意义:Addvar addmf, addrule,setfis等函数的作用;2、分析rulelist矩阵各行各列的含义,并以其中某一行为例(比如:1 2 1 1 1),说明其表达了什么控制规则?3、画出模糊自适应PID原理框图,并说明模糊自适应整
4、定PID控制的基本原理。实验二 BP网络实验一 实验目的:1、掌握Matlab神经网络工具箱的应用。2、了解基本BP算法;3、认识多层前馈神经网络的函数逼近能力;4、了解BP网络在PID参数整定中的作用。二、实验设备1、PC机2、Matlab软件三 实验内容1、参考教材程序chap7_1, 完成教材p.142 之7-2之利用BP网络来进行非线性逼近:y(k)=(u(k-1)-0.9y(k-1)/(1+y(k-1)2)。设计Matlab程序,给出基于BP网络函数逼近的实验结果2参考教材程序chap7_2, 完成教材p.141 之7-1之利用BP网络来进行模式识别。四 思考题:1)当BP网络用于函
5、数逼近时,输出层神经元的数目为多少?输入层神经元的数目又为多少?2)推导BP网络权值学习过程,理解并记忆。 实验三 基于遗传算法的函数优化实验。一 实验目的:1、掌握Matlab遗传算法工具箱的应用。2、了解基本遗传算法;3、了解遗传算法在函数优化中的应用。二、实验设备1、PC机2、Matlab软件三 实验内容1、遗传算法工具箱介绍。见附录。2、根据遗传算法工具箱,求取如下函数的极值。对x要求精确到小数点后4位。要求,改变最大遗传代数,记录每次遗传迭代后的结果。MATLAB遗传算法工具箱gatbx1工具箱的安装:将 gatbx遗传算法工具箱导入到matlab的搜索路径中。2 gatbx常用函数
6、说明1.函数bs2rvphen=bs2rv(chrom,fieldD)根据译码矩阵fieldD将二进制串矩阵chorm转换成实值向量,返回矩阵包含对应的种群表现型。fieldD=len;lb;ub;code;scale;lbin;ubinlen:指明chorm中每个变量(基因)的二进制编码的长度,满足sum(len)=size(chorm,2)lb和ub:分别指明每个变量使用的上下边界code:指明每个变量的编码方式,1为标准二进制编码,0为格雷编码scale:指明每个变量的是否使用对数或算术刻度,1是对数刻度,0为算术刻度lbin和ubin:指明表示范围总是否包含每个边界,1表示包含,0不包
7、含比如:fieldD=5 6 9 7 %len 0 -5 -1 9 %lb10 0 10 20 %ub0 1 1 1 %code0 1 0 1 %scale1 1 1 0 %lbin0 1 0 0 %ubin表示chrom的每个个体(染色体)的编码规则为:共有4个变量(即每个染色体有4个基因),第1个基因体是使用5位标准二进制编码,上下边界为0 10,只包含上边界的算术刻度第2个基因体是使用6位格雷二进制编码,上下边界为-5 0,包含上下边界的对数刻度2.crtbasebasevec=crtbase(lind,base)产生向量的元素对应染色体每个基因的基数(每个变量的范围)lind:每个染色
8、体的基因(变量)个数,sum(lind)=变量个数,且length(lind)=length(base)base:对应每个基因的基数比如:basevec=crtbase(2 3 4 2,10 20 15 8)结果为:basevec=10 10 20 20 20 15 15 15 15 8 8上面表示创建有2+3+4+2=11个基因(变量)的染色体(个体)前两的变量的取值为0-9,接着三个0-19,还有四个0-14,最后两个0-7由上面可以看出basevec其实可使用matlab的其它简单命令创建,因此很少用到它,一般使用rep。再强调一下,简单一点说basevec其实就是每个变量的基数(取值范
9、围)3.crtbpnewchrom,newlind,newbasevec=crtbp(nind,lind,basevec)创建离散随机初始种群,经常和crtbase一起使用basevec:其实就是上面创建的basevec向量nind:种群中染色体(个体)的数量lind:变量的个数,即lind=length(basevec)注意在basevec给出时,lind可以省略,但要是basevec没有给出,则lind必须给,此时默认创建取值为0-1的种群比如:basevec=crtbase(3,2,8,5)chrom1=crtbp(3,5) %创建一个有3个个体,5个变量的初始种群chrom2=crtb
10、p(4,5,basevec)%4*5的种群,等效chrom2=crtbp(4, basevec)结果为:basevec=8 8 8 5 5chrom1=0 1 0 0 01 1 0 1 01 0 1 1 0chrom2=6 5 7 0 47 1 3 4 23 7 1 0 46 6 4 4 3-前三个函数一般只是在离散编码中使用-4.crtrpchrom=crtrp(nind,fieldDR)创建由任意个体组成的实值随机原始种群nind:种群中个体数量fieldDR:是一个2*nvar的二维矩阵,表示每个变量的取值上下限比如:创建一个含有3个个体,4个变量的随机种群fieldDR=-100-50
11、-30-2010050 3020;chrom=crtrp(3,fieldDR)chrom=40.23-17.1728.0015.3882.26 13.2518.52-9.09-90.20-13.257.899.255.migratechrom,objv=migrate(chrom,subpop,migopt,objv)完成当前种群的子种群间的迁移,并返回迁移后的种群subpop:子种群的数量migopt:migopt(1)个体迁移率,默认0.2 migopt(2)迁移方式,0为均匀迁移,1为适应度的迁移,默认0 migopt(3)迁移种群结构,0为完全网状,1为临近结构,2为环状,默认0obj
12、v:为目标函数值列向量,当migopt(2)=1是必须给出6.mutatenewchorm=mutate(mutfun,oldchrom,fieldDR,mutopt,sunbpop)执行种群变异mutfun:变异函数fieldDR:变量的取值范围,实值型时为2*nvar的二维矩阵,离散型时为1*nvar向量mutopt:mutopt(1)变异率,实值型默认1/nvar,离散型默认0.7/lind mutopt(2)压缩变异的范围,取值范围为0 1,默认1(不可压缩),注意当为离散型时不需要给出7.rankingfinnv=ranking(objv,rfun,subpop)按照个体的目标值ob
13、jv由小到大的顺序对它们进行排序,并返回一包含个体适应度值的fitnv的列向量rfun:rfun(2)指定排序方法,0为线性,1为非线性,默认0 rfun(1)指定压差,当rfun(2)=0时,取值为1 2,默认为2,当rfun(2)=1时,取值为1 length(objv)-2 另外还可以length(objv)=length(rfun),此时它则包含对每一行的适应度值计算至于scaling一般使用很少,这里就不介绍了8.recombinnewchrom=recombine(recfun,oldchrom,recopt,subpop)执行基因重组recfun:变异函数recopt:重组交叉率
14、9.reinsnewchrom,newobjvch=reins(chrom,selch,subpop,insopt,objvch,objvsel)完成插入子代到当前种群,用子代代替父代并返回结构种群,本函数属于选择函数,但是为了恢复种群数量,必须要有,它没有与select重复oldchrom:父代种群selch:子代种群insopt:insopt(1)指明选择方法,0为均匀选择,1为基于适应度的选择 insopt(2)重插入的比率,在0 1,默认1objvch:是chrom的目标值(基于适应度的选择,该参数必须有)objvsel:是selch中个体目标值(基于适应度的选择,该参数必须有)10.
15、selectselch=select(selfun,chrom,fitnv,ggap,subpop)从种群chrom中选择优良个体selfun:选择函数fitnv:列向量,chrom的个体适应度值ggap:代沟率,默认1.0计算目标函数-选择-重组(交叉)-变异-计算目标函数-重插入目标函数共有20个变量,边界均为0 512,我们生成500个个体nind=500;nvar=20;lb=0;ub=521; 使用二进制编码,每个使用20位二进制表示preci=20;fieldD=rep(preci;lb;ub; 1;0;1;1,1,nvar);chorm=crtbp(nind,nvar*preci
16、)objv=objfun(bs2rv(chrom,fieldD)使用实值编码fieldDR=rep(lb;ub,1,nvar);chorm=crtrp(nind,fieldDR);objv=objfun(chrom)创建整数编码basevec=crtbase(nvar,ub+1);%或者使用%basevec=rep(ub+1,1,nvar);chrom=crtbp(nind,basevec);objv=objfun(chrom)二、遗传算法应用举例:下面通过具体的例子,介绍如何利用遗传算法工具箱中的相关函数编写MATLAB程序,解决实际问题。例一元函数优化问题计算下面函数的最大值:下面为一元函
17、数优化问题的MATLAB代码:figure(1);fplot(variable.*sin(10*pi*variable)+2.0,-1,2);%画出函数曲线%定义遗传算法参数NIND = 40; % Number of individuals个体数目MAXGEN = 50; % Maximum no. of generations最大遗传代数PRECI = 20; %变量的二进制位数,即个体编码串的长度GGAP = 0.9; % Generation gap代沟 ,(1-GGAP)表示淘汰后筛选出来的比例trace=zeros(2,MAXGEN);% 寻优结果的初始值FieldD = 20;-
18、1;2;1;0;1;1;% 区域描述器Build field descriptorChrom = crtbp(NIND,PRECI);% 初始种群gen = 0; % 代计数器variable=bs2rv(Chrom,FieldD);% 计算初始种群的十进制转换ObjV = variable.*sin(10*pi*variable)+2.0;% 计算目标函数值% Generational loopwhile gen MAXGEN,% Assign fitness values to entire populationFitnV = ranking(-ObjV);% 分配适应度值% Select
19、 individuals for breedingSelCh = select(sus, Chrom, FitnV, GGAP);% 选择% Recombine individuals (crossover)SelCh = recombin(xovsp,SelCh,0.7);% 重组 交叉% Apply mutationSelCh = mut(SelCh);% 变异,mut(SelCh, Pm), 这里Pm表示变异概率variable=bs2rv(SelCh,FieldD);% 子代个体的十进制转换% Evaluate offspring, call objective functionObj
20、VSel = variable.*sin(10*pi*variable)+2.0;% 计算子代个体的目标函数值% Reinsert offspring into populationChrom ObjV=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);%重插入子代的新种群% Increment countergen = gen+1;% 输出最优解及其序号,并在目标函数图像中标出,Y为最优解,I为种群序号Y,I=max(ObjV);trace(1,gen) = max(ObjV);trace(2,gen) = sum(ObjV)/length(ObjV);endvariable= bs2rv(Chrom,FieldD);hold on,grid;plot(variable,ObjV,b*);figure(2);plot(trace(1,:);hold on;plot(trace(2,:),-.);grid;legend(解的变化,种群均值的变化)运行结果图:函数说明:(1) 使用基于适应度的重插入确保四个最适应的个体总是被连续传播到下一代。这样,在每一代中有36(NIND*GGAP=40*0.9=36)个新个体产生。(2) 由于使用了代沟,子代的数量比当前种群数量要小,因此使用恢复函数reins。这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- TCECS 178-2023 气水冲洗滤池整体浇筑滤板及可调式滤头应用技术规程
- DLT 5478-2021 20kV及以下配电网工程建设预算项目划分导则
- 南充一诊英语试卷及答案
- 轨道交通运维工程师面试题及答案
- 公务员面试南京面试题及答案
- 活动策划校招面试题及答案
- 恒瑞医药校招真题及答案
- 海信集团招聘试题及答案
- 国机集团校招试题及答案
- 公务员考试思维策略试题及答案
- 心房颤动诊疗中国专家共识
- 物业管理耗材采购清单及限价
- 华润物业住宅管理办法
- 契税法宣传课件
- 2025至2030年中国煤矿机器人行业市场现状分析及发展前景研判报告
- 电商公司客服部管理制度
- 2025年国际注册内部审计师(CIA)考试《内部审计基础》新版真题卷
- 借款合同标准文本pdf
- 2025年英语四级考试试卷及答案
- 处方药学类试题及答案
- 机房运维考试试题及答案
评论
0/150
提交评论