《智能控制技术(共7页).doc》由会员分享,可在线阅读,更多相关《智能控制技术(共7页).doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上一、实验目的 熟悉模糊控制器的设计,并且掌握神经网络模型。二、实验内容 1 已知系统的传递函数为G(s)=e-(0.5s)/(10s+1)。假设系统给定为阶跃值r=30,系统初始值r(0)=0。试分别设计(1)常规的PID 控制器; (2)常规的模糊控制器; (3)比较两种控制器的效果; (4)当通过改变模糊控制器的比例因子时,系统响应有什么变化? 2 编写一个利用前向传播神经网络进行字符设别的程序。设神经网络为具有一个隐含层的BP 网络,需设别的字符有三个A、I 和O,其输入为44 个像素的扫描输入。 目标输出分别为A=(1,-1,-1),I=(-1,1,1),O=
2、(-1,-1,1)。网络为16 个输入节点、3 个输出节点、9 个隐含层节点。利用所编程序完成训练后,在输入样本为X= (1,1,1,1,1,-1,-1,1,1,1,1,1,1,1,-1,1)时,求网络输出值。 三、实验内容以及结果分析1 (1)常规PID控制器:利用Ziegler-Nichols整定公式整定PID调节器的初始参数PTiTdPPI0.93.3PID1.22.20.5由公式可得P=18Ti=1.65Td=0SIMULINK仿真图设定仿真时间为10s仿真结果(2)模糊控制器的设定1 在matlab命令窗口输入“fuzzy” 确定模糊控制器结构:即根据具体的系统确定输入、输出量。选取
3、二维控制结构,即输入为误差e和误差变化ec,输出为u如下图所示2 输入输出变量的模糊化:即把输入输出的精确量转化为对应语言变量的模糊集合。首先我们要确定描述输入输出变量语言值的模糊子集,如NB,NM,NS,ZO,PS,PM,PB,并设置输入输出变量的论域,然后我们为模糊语言变量选取相应的隶属度函数。如下图所示3 模糊推理决策算法设计:即根据模糊控制规则进行模糊推理,并决策出模糊输出量。首先要确定模糊规则,即专家经验。如图。制定完之后,会形成一个模糊控制规则矩阵,然后根据模糊输入量按照相应的模糊推理算法完成计算,并决策出模糊输出量。4对输出模糊量的解模糊:模糊控制器的输出量是一个模糊集合,通过反
4、模糊化方法判决出一个确切的精确量,反模糊化方法很多,我们这里选取重心法。SIMULINK仿真图在模糊控制器的输入和输出均有一个比例系数,我们叫它量化因子,它反映的是模糊论域范围与实际范围之间的比例关系,这里模糊控制器输入的论域范围均为-6,6,假设误差的范围是-10,10,误差变化率范围是-100,100,控制量的范围是-24,24,那么我们就可以算出量化因子分别为0.6,0.06,8。量化因子的选取对于模糊控制器的控制效果有很大的影响,当输出量化因子调为10控制效果更好。仿真曲线(3)常规PID控制器和模糊控制器的比较由仿真结果可见两种控制器对系统的各项性能指标都有了改进,常规PID还是有超
5、调量,模糊控制器的超调量几乎为零。2 以下程序:A=1 1 1 1;1 -1 -1 1;1 1 1 1;1 -1 -1 1;I=-1 1 -1 -1;-1 1 -1 -1;-1 1 -1 -1;-1 1 -1 -1;O=1 1 1 1;1 -1 -1 1;1 -1 -1 1;1 1 1 1;X2=1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 -1 1;X=A(:) I(:) O(:);T0=1;-1;-1;T1=-1;1;1;T2=-1;-1;1; T=T0 T1 T2;R N1=size(X);S2 N1=size(T);S1=10; net=newff(minmax(X),
6、S1 S2, tansig, tansig, traingdx);w=net.LW2,1;b=net.b1;b=net.b2;y1=sim(net,X); net.performFcn=sse; net.trainParam.goal=0.; net.trainParam.epochs=5000; net.trainParam.show=20; net.trainParam.mc=0.95; net,tr=train(net,X,T);w=net.LW2,1;b=net.b1;b=net.b2;y2=sim(net,X); net.trainParam.goal=0.6; net.trainParam.epochs=500; net1=net;T1=T T T T;for i=1:10 X1=X X (X+randn(R,N1)*0.1) (X+randn(R,N1)*0.2); net1,tr=train(net1,X1,T1)endy3=sim(net1,X); net1,tr=train(net1,X,T);w=net.LW2,1;b=net.b1;b=net.b2;y5=sim(net,X2)程序执行结果输出y5 =0.9923 -0.9975 -0.4281则为网络输出值。专心-专注-专业