仿真技术及Matlab应用题目:基于RBF神经网络的模型参考自适应学院:班级:学号:姓名:2015年1月5日1目录前言…………………………………………………………………………………………………11.邻聚类算法的RBF神经网络.....................................22.RBF神经网络的函数逼近理论....................................33.RBF神经网络的控制系统设计....................................54.仿真结果.....................................................65.结语.........................................................76.附录.........................................................811前言目前,在控制领域内,神经网络正稳步地发展,尤其是多层前馈神经网络。在神经网络MRAC(ModelReferenceAdaptiveController)中,多层前馈神经网络一般用于对受控对象进行系统辨识,神经网络所选用算法进行系统辨识要快速、准确,以利于实时、精确控制。已经证明了只要神经元的数目足够大,则径向基网络能够在一个有限维赋范向量空间的紧集上以任意的精度逼近一个非线性函数(只要该非线性函数的性能足够好)。神经网络既可用于对动态系统的辨识也可用于对动态系统的控制。本研究给出了基于MRAC(模型参考自适应控制)的神经网络控制器,该控制器通过使用实际系统与参考模型系统之间的广义误差来调整其参数,控制器中的非线性部分通过RBF网络来实现,用于补偿系统的非线性部分。尽管神经网络能够以任意精度逼近一个非线性函数,但总是存在一定的逼近误差,而对于逼近误差对控制系统所产生的影响,却很少有人讨论,本研究基于Lyapunov稳定性分析,给出了神经网络的参数修正律,并根据神经网络的逼近误差给出了控制误差的估计;用于在线训练RBF神经网络所采用学习规则是R型(R-modi-fication-type)修正律,控制误差渐近收敛于0附近的一个紧集。针对一类非线性动态系统给出了一种基于RBF(径向基函数)神经网络的模型参考自适应控制算法,控制器的结构中使用RBF网络来动态的补偿系统的非线性性。仿真实例说明了所给出的算法切实可行。221.邻聚类算法的RBF神经网络设有N对输入-输出数据对,,kkyxk=1,2,,,N,可以构造一个RBF神经网络,它能将这N对数据拟合到任意给定的精度。RBF网络隐单元输出为:2212expRcxxRi(1)式中,x是输入矢量;xRi是第i个隐单元的输出;ic是第i个隐单元高斯函数的中心;R是高斯函数的半径。在线学习RBF神经网络的学习过程如下:(1)选择一个适当的半径R,其大小决定了网络的复杂程度,R是一个一维参数,可通过实验和误差信息找到一个适当的值。定义一个矢量S(l)用于存放属于各类的输出矢量之和,定义一个计数器CT(l)用于统计属于各类的样本个数,其中l为类别数。在线学习RBF神经网络的学习过程如下:(1)选择一个适当的半径R,其大小决定了网络的复杂程度,R是一个一维参数,可通过实验和误差信息找到一个适当的值。定义一个矢量S(l)用于存放属于各类的输出矢量之和,定义一个计数器CT(l)用于统计属于各类的样本个数,其中l为类别数(2)从第一个数据对,1,1yx开始,在1x上建立一个聚类中心,令1c=1x,S(1)=1y,CT(1)=1。这样建立的RBF网络只有一个隐单元,该隐单元的中心为1c,该隐单元到输出层的权矢量为)1(/11CTSw。(3)考虑第2个样本数据对22,yx,求出2x到1c这个聚类中心的距离12cx。如果12cxR,则1c为2x的最近邻聚类,且令S(1)=1y+2y,CT(1)=2,1w=S(1)/CT(1);如果12cxR,则将2x作为一个新聚类中心,并令2c=2x,S(2)=2y,CT(2)=1。在上述建立的RBF网络中再添加一个隐单元,该隐单元到输出层的权矢量为2w=S(2)/CT(2)。(4)假设考虑第k个样本数据对kkyx,时,N,k=3,4,,,N,存在hn个聚类中33心,其中心点分别为1c,2c,,,hc,在上述建立的RBF网络中已有hn隐单元。再分别求出到这hn个聚类中心的距离|kx-ic|,i=1,2,,,hn,设|kx-jc|为这些距离中的最小距离,即ic为kx的最近邻聚类,则:如果|kx-jc|R,则将kx作为一个新聚类中心,并令1hnc=kx,hn=1hn,S(hn)=ky,CT(hn)=1。且保持S(i),CT(i)的值不变,i=1,2,,,hn-1。在上述建立的RBF网络中再添加第hn个隐单元,该隐单元到输出层的权矢量为hnw=S(hn)/CT(hn)。如果12cxR,则S(j)=S(j)+ky,CT(j)=CT(j)+1。当ij时,i=1,2,,,hn,且保持S(i)、CT(i)的值不变。隐单元到输出层的权矢量为iw=S(i)/CT(i),i=1,,,hn。(5)根据上述规则建立的在线学习RBF神经网络如图1所示,网络输出为hiikhiikknnRcxRcxwxf1221221expexp(2)2.RBF神经网络的函数逼近理论设有N对输入-输出数据对(kx,ky),k=1,2,,,N,我们可以构造一个在线学习RBF神经网络,它能将这N对数据拟合到任意给定的精度,有如下定理可以证明这一结论。定理对任意给定的E0,存在一个R*使得在线学习RBF神经网络在R=*R时有:Eyxfkk(3)对所有l=1,2,,,N都成立。44图1RBF神经网络示意图证明设jc为kx的最近邻聚类,在线学习RBF神经网络输出如式(4)所示。hiikhiikknnRcxRcxwxf1221221expexp=hikhiknnRcxiCTRcxiS12*2112*21expexp=hjikkhjikknnRcxiCTRcxjCTRcxiSRcxjS12*212*2112*212*21expexpexpexp(4)式中i=1,2,,,hn,当ij时,必有kxic,对于E0和任意i,这里的ij,i=1,2,,,55hn都能通过适当选择*R值,使得*R=0y时,exp(-2*2Rcxik)=0y。当i=j时,能通过适当选择*R值,使得当*R=0y,|kx-ic|=0y,exp(-2*2Rcxik)=0y,S(j)/CT(j)=0y。根据这个结果和式(4)就可以得到如下结论:对所有k=1,2,,,N,一定存在一个*R值,使得在R=*R时,满足Eyxfkk。3.RBF神经网络的控制系统设计图3.1神经网络的模型参考自适应控制系统框图。图3.1基于RBF神经网络的模型参考自适应控制系统取离散被控对象为2111110.0kykukyky其中,采样周期为msts1,参考模型为kykykydmm16.0,理想跟踪指令为tskkyd2sin5.0。取RBF神经网络的输入为kyd、ke和ku,在学习速率为,35.0动量因子为05.0。RBF被控对象参考模型kyd+_kukym+-kecky66高斯函数参数初值为Tc321123321123321123,222222b,网络初始权值为9381.00454.00068.00318.00421.00316.0w。4.仿真结果仿真程序见附录,仿真结果如图3.2与图3.3所示。图3.2正弦跟踪77图3.3控制输入5.结语本研究针对一类非线性动态系统设计了一种基于神经网络的模型参考自适应控制器。神经网络选择在获得系统期望的动态响应和跟踪效果方面起着非常重要的作用,一般要求所选用的神经网络的学习算法具有快速有效的功能,以满足实时控制、适应对象和环境变化的需要。本文提出了一种基于最近邻聚类算法的在线学习RBF神经网络,该算法克服传统前馈神经网络学习算法的缺点,计算量小、跟踪时间短,能在线学习且网络收敛精度高。仿真结果说明本文方法的有效性。与其他传统的设计方法相比,本研究在设计过程中考虑了神经网络的学习误差,设计更为合理,仿真实例说明了算法的实际可行性。本研究所给出的证明方法同样可用于讨论其它的神经网络控制问题,但关于该神经网络自适应控制的鲁棒性还有待进一步研究。886.附录%ModelReferenceAapativeRBFControlclearall;closeall;u_1=0;y_1=0;ym_1=0;x=[0,0,0]';c=[-3-2-10123;-3-2-10123;-3-2-10123];b=2;w=rands(1,7);xite=0.35;alfa=0.05;h=[0,0,0,0,0,0,0]';c_1=c;c_2=c;b_1=b;b_2=b;w_1=w;w_2=w;ts=0.001;fork=1:1:3000time(k)=k*ts;yd(k)=0.50*sin(2*pi*k*ts);ym(k)=0.6*ym_1+yd(k);y(k)=(-0.1*y_1+u_1)/(1+y_1^2);%Nonlinearplantforj=1:1:7h(j)=exp(-norm(x-c(:,j))^2/(2*b^2));endu(k)=w*h;99ec(k)=ym(k)-y(k);dyu(k)=sign((y(k)-y_1)/(u(k)-u_1));d_w=0*w;forj=1:1:7d_w(j)=xite*ec(k)*h(j)*dyu(k);endw=w_1+d_w+alfa*(w_1-w_2);%Returnofparametersu_1=u(k);y_1=y(k);ym_1=ym(k);x(1)=yd(k);x(2)=ec(k);x(3)=y(k);w_2=w_1;w_1=w;endfigure(1);plot(time,ym,'r',time,y,'k:','linewidth',2);xlabel('time(s)');ylabel('ym,y');legend('Idealpositionsignal','Trackingpositionsignal');figure(2);plot(time,u,'r','linewidth',2);xlabel('time(s)');ylabel('Contr