智能控制技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一、实验目的熟悉模糊控制器的设计,并且掌握神经网络模型。二、实验内容1已知系统的传递函数为G(s)=e-(0.5s)/(10s+1)。假设系统给定为阶跃值r=30,系统初始值r(0)=0。试分别设计(1)常规的PID控制器;(2)常规的模糊控制器;(3)比较两种控制器的效果;(4)当通过改变模糊控制器的比例因子时,系统响应有什么变化?2编写一个利用前向传播神经网络进行字符设别的程序。设神经网络为具有一个隐含层的BP网络,需设别的字符有三个A、I和O,其输入为4╳4个像素的扫描输入。目标输出分别为A=(1,-1,-1),I=(-1,1,1),O=(-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调节器的初始参数PTiTdP/()TKPI0.9/()TK3.3PID1.2/()TK2.20.5由公式可得P=18Ti=1.65Td=0SIMULINK仿真图设定仿真时间为10s仿真结果(2)模糊控制器的设定1在matlab命令窗口输入“fuzzy”确定模糊控制器结构:即根据具体的系统确定输入、输出量。选取二维控制结构,即输入为误差e和误差变化ec,输出为u如下图所示2输入输出变量的模糊化:即把输入输出的精确量转化为对应语言变量的模糊集合。首先我们要确定描述输入输出变量语言值的模糊子集,如{NB,NM,NS,ZO,PS,PM,PB},并设置输入输出变量的论域,然后我们为模糊语言变量选取相应的隶属度函数。如下图所示3模糊推理决策算法设计:即根据模糊控制规则进行模糊推理,并决策出模糊输出量。首先要确定模糊规则,即专家经验。如图。制定完之后,会形成一个模糊控制规则矩阵,然后根据模糊输入量按照相应的模糊推理算法完成计算,并决策出模糊输出量。4.对输出模糊量的解模糊:模糊控制器的输出量是一个模糊集合,通过反模糊化方法判决出一个确切的精确量,反模糊化方法很多,我们这里选取重心法。SIMULINK仿真图在模糊控制器的输入和输出均有一个比例系数,我们叫它量化因子,它反映的是模糊论域范围与实际范围之间的比例关系,这里模糊控制器输入的论域范围均为[-6,6],假设误差的范围是[-10,10],误差变化率范围是[-100,100],控制量的范围是[-24,24],那么我们就可以算出量化因子分别为0.6,0.06,8。量化因子的选取对于模糊控制器的控制效果有很大的影响,当输出量化因子调为10控制效果更好。仿真曲线(3)常规PID控制器和模糊控制器的比较由仿真结果可见两种控制器对系统的各项性能指标都有了改进,常规PID还是有超调量,模糊控制器的超调量几乎为零。2以下程序:A=[1111;1-1-11;1111;1-1-11];I=[-11-1-1;-11-1-1;-11-1-1;-11-1-1];O=[1111;1-1-11;1-1-11;1111];X2=[11111-1-11111111-11]';X=[A(:)I(:)O(:)];T0=[1;-1;-1];T1=[-1;1;1];T2=[-1;-1;1];T=[T0T1T2];[RN1]=size(X);[S2N1]=size(T);S1=10;net=newff(minmax(X),[S1S2],{'tansig','tansig'},'traingdx');w=net.LW{2,1};b=net.b{1};b=net.b{2};y1=sim(net,X);net.performFcn='sse';net.trainParam.goal=0.000001;net.trainParam.epochs=5000;net.trainParam.show=20;net.trainParam.mc=0.95;[net,tr]=train(net,X,T);w=net.LW{2,1};b=net.b{1};b=net.b{2};y2=sim(net,X);net.trainParam.goal=0.6;net.trainParam.epochs=500;net1=net;T1=[TTTT];fori=1:10X1=[XX(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.LW{2,1};b=net.b{1};b=net.b{2};y5=sim(net,X2)程序执行结果输出y5=0.9923-0.9975-0.4281则为网络输出值。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功