神经网络自适应控制(共6页)_第1页
神经网络自适应控制(共6页)_第2页
神经网络自适应控制(共6页)_第3页
神经网络自适应控制(共6页)_第4页
神经网络自适应控制(共6页)_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上神经网络自适应控制学院:电气工程与自动化学院专业: 控制科学与工程 姓名: 兰利亚 学号: 日期: 2015年6月25日 神经网络间接自适应控制摘要:自适应模糊控制系统对参数变化和环境变化不敏感,能用于非线性和多变量复杂对象,不仅收敛速度快,鲁棒性好,而且可以在运行中不断修正自己的控制规则来改善控制性能,因而受到广泛重视。间接自适应控制是通过在线辨识的到控制对象的模型。神经网络作为自适应控制器,具有逼近任意函数的能力。关键词:神经网络 间接自适应控制 系统辨识一、 引言自适应控制系统必须完成测量性能函数、辨识对象的动态模型、决定控制器如何修改以及如何改变控制器的可调参

2、数等功能。自适应控制有两种形式:一种是直接自适应控制,另一种是间接自适应控制。直接自适应控制是根据实际系统性能与理想性能之间的偏差,通过一定的方法来直接调整控制器的参数。二、 间接自适应系统分析与建模2.1系统的分析系统过程动态方程:y(k+1)= -0.8y(k)/(1+y2(k)+u(k),参考系统模型由三阶差分方程描述:ym(k+1)=0.8ym(k)+1.2ym(k-1)+0.2ym(k-2)+r(k)式中,r(k)是一个有界的参考输入。如果输出误差ec(k)定义为ec(k)=y(k)-ym(k),则控制的目的就是确定一个有界的控制输入u(k),当k趋于正无穷时,ec(k)=0.那么在

3、k阶段,u(k)可以从y(k)和它的过去值中计算得到:u(k)=0.8y(k)/(1+y2(k)+0.8y(k)+1.2y(k-1)+0.2y(k-2)+r(k) (1) 于是所造成的误差方程为:ec(k+1)=0.8ec(k)+1.2ec(k-1)+0.2ec(k-2) (2)因为参考模型是渐进稳定的,所以对任意的初始条件,它服从当k趋于无穷,ec(k)=0。在任何时刻k,用神经元网络N2计算过程的输入控制,即u(k)=-Ny(k)+0.8y(k)+1.2y(k-1)+0.2y(k-2)+r(k) (3)由此产生非线性差分方程:y(k+1)=-0.8y(k)/(1+y2(k)+Ny(k) +

4、0.8y(k)+ 1.2y(k-1)+0.2y(k-2)+r(k) (4) 故设计的要点是设计一个神经网络来逼近0.8y(k)/(1+y2(k)。2.2系统的建模设计过程第一步,用BP神经网络逼近,神经网络的结构包含三层:输入层、隐含层和输出层。BP网络的训练过程如下:正向传播是输入信号从输入层经隐层传向输出层,若输出层得到了期望的输出,则学习算法结束;否则,转至反向传播。第二步,输入测试样本,对神经网络的逼近程度进行测试,将测试后的期望输出与实际输出的曲线画出。第三步,控制器设计。将控制器设计为u(k)= -Ny(k)+0.8y(k)+1.2y(k-1)+0.2y(k-2)+r(k)。系统的

5、原理框图如下图所示。e参考模型控制器过程神经网络Nry系统的原理框图若将控制器设计成u(k),则可得到相应曲线。三、 系统的MATLAB编程clear all;close all;x=-10:1:10; %训练样本输入for i=1:21d(i)=0.8*x(i)/(1+x(i)2); %目标函数,期望输出endnx1=length(x); %样本的大小y=zeros(1,nx1); %输出初始化nx2=8; %隐含层的神经元个数times=20000; %学习次数w1=0.05*rand(nx2,1); %第一层的连接权值theta1=0.05*rand(nx2,1); %第一层的阈值w2=

6、0.05*rand(1,nx2); %第二层的连接权值theta2=0.05*rand(1); %第二层的阈值ux=0.2; %学习率for n=1:timesEpx=0; %误差初始化for i=1:nx1s1=w1*x(i)-theta1; %隐含层输入x1=1./(1+exp(-s1); %隐含层输出s2=w2*x1-theta2; %输出层输入y(i)=s2; %输出层输出error=d(i)-y(i);delta1=(error*(w2)').*x1.*(1-x1);delta2=error;w1=w1+ux*delta1*x(i); %第一层权值修正w2=w2+ux*del

7、ta2*(x1)' %第二层权值修正theta1=theta1-ux*delta1; %第一层阈值修正theta2=theta2-ux*delta2; %第二层阈值修正Epx=Epx+0.5*error2; %误差输出endError(n)=Epx;epoch(n)=n;if Epx<=0.01break;endendn,figure(1);subplot(221);plot(x,d,'b-',x,y,'r-');title('训练完后的期望输出与实际输出'); grid on;subplot(222);plot(epoch,Err

8、or);title('训练误差输出');xlabel('epoch');ylabel('误差E');grid on;xt=0:1:20;n3=length(xt);%dt=sin(xt);for i=1:21 dt(i)=0.8*xt(i)/(1+xt(i)2); %目标函数,期望输出endfor k=1:n3s1=w1*xt(k)-theta1;x1=1./(1+exp(-s1);s2=w2*x1-theta2;yt(k)=s2; Et(k)=dt(k)-yt(k);endsubplot(223);plot(xt,dt,'b-'

9、,xt,yt,'r:');legend('期望输出','实际输出');title('测试时的实际输出与期望输出');grid on;subplot(224);plot(xt,Et);title('测试误差输出');xlabel('测试样本'),ylabel('误差E');grid on;%control%u(k)=0.8*yf(k)+1.2*yf(k-1)+0.2*yf(k-2)+r(k);%final_y(k+1)=-0.8*final_y(k)/(1+final_y(k)2)+u

10、(k);xf=0:1:20;n=length(xf);for i=1:21 d(i)=0.8*xf(i)/(1+xf(i)2); %目标函数,期望输出 fc(i)=0.8*xf(i)/(1+xf(i)2); %目标函数,期望输出endfor k=1:n3s1=w1*xt(k)-theta1;x1=1./(1+exp(-s1);s2=w2*x1-theta2;yf(k)=s2;endu(1)=0.8*yf(1)+sin(2*pi/25); u(2)=0.8*yf(2)+1.2*yf(1)+sin(4*pi/25); for k=3:21 u(k)=0.8*yf(k)+1.2*yf(k-1)+0.

11、2*yf(k-2)+sin(2*pi*k/25);endfor k=1:21 yt(k)=-fc(k)+u(k); final_y(k)=yt(k); if(k<21) fc(k+1)=0.8*yt(k)/(1+yt(k)2); endendfigure(2);plot(xf,fc,'-',xf,d,'r-');grid on;%n1=length(fc) %n2=length(d) figure(3);plot(xf,u,'b-',xf,final_y,'r:',xf,fc,'r-',xf,(u-final_y),':');grid on;四、 matlab仿真结果如下:下图所示的是利用神经网

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论