1、二、 间接自适应系统分析与建模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.那么在 k 阶段,u(k)可以从 y(k)和它的过去值中计算得到:u(k)=0.8y(k)/(1+y2(k)+0.8y(k)+1.2y(k-1)+0.2y
2、(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) +0.8y(k)+ 1.2y(k-1)+0.2y(k-2)+r(k)(4)故设计的要点是设计一个神经网络来逼近 0.8y(k)/(1+y2(
3、k)。2.2 系统的建模设计过程第一步,用 BP 神经网络逼近,神经网络的结构包含三层:输入层、隐含层和输出层。BP 网络的训练过程如下:正向传播是输入信号从输入层经隐层传向输出层,若输出层得到了期望的输出,则学习算法结束;否则,转至反向传播。第二步,输入测试样本,对神经网络的逼近程度进行测试,将测试后的期望输出与实际输出的曲线画出。第三步,控制器设计。将控制器设计为u(k)= -Ny(k)+0.8y(k)+1.2y(k-1)+0.2y(k-2)+r(k)。系统的原理框图如下图所示。参考模型e神经r控制器过程y系统的原理框图若将控制器设计成 u(k),则可得到相应曲线。三、 系统的 MATLA
4、B 编程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=0.05*rand(1,nx2);%第二层的连接权值 theta2=0.05*rand(1);%第二层的阈值 ux=0.2;%学习
5、率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*delta2*(x1); %第二层权值修正 theta1=theta1-ux*delta1; %第一层阈值修正 theta2=theta2-
6、ux*delta2; %第二层阈值修正 Epx=Epx+0.5*error2;%误差输出end Error(n)=Epx;epoch(n)=n; if Epx=0.01break; end endn, figure(1);subplot(221);plot(x,d,b-,x,y,r-);title(训练完后的期望输出与实际输出 grid on;subplot(222);plot(epoch,Error);训练误差输出xlabel(epochylabel(误差 Egrid on;xt=0:20;n3=length(xt);%dt=sin(xt); for i=1:dt(i)=0.8*xt(i)/
7、(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);end subplot(223);plot(xt,dt,xt,yt,r:legend(期望输出,实际输出测试时的实际输出与期望输出 subplot(224);plot(xt,Et); 测试误差输出 测试样本),ylabel( 误差E%control%u(k)=0.8*yf(k)+1.2*yf(k-1)+0.2*yf(k-2)+r(k);%final_y(k+1)=-
8、0.8*final_y(k)/(1+final_y(k)2)+u(k); xf=0:n=length(xf);for i=1:d(i)=0.8*xf(i)/(1+xf(i)2); %目标函数,期望输出 fc(i)=0.8*xf(i)/(1+xf(i)2);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:u(k)=0.8*yf(k)+1.2*yf(k-1)+0.2*yf(k-2)+sin(2*pi*k/25);yt(k)=-fc(k)+u(k); final_y(k)
9、=yt(k); if(k21)fc(k+1)=0.8*yt(k)/(1+yt(k)2);figure(2);plot(xf,fc,-,xf,d,%n1=length(fc)%n2=length(d) figure(3);plot(xf,u,xf,final_y,xf,fc,xf,(u-final_y),:四、 matlab 仿真结果如下:训 练 完 后 的 期 望输 出 与 实 际 输 出训 练 误 差 输 出0.40.20.30E误-0.20.1下图所示的是利用神经网络训练后得到的仿真图:差-0.4-10-50510测 试 时 的 实 际 输 出 与 期 望 输 出期 望 输 出实 际 输 出0.2E00.050100200300epoch测 试 误 差 输 出05101520-0.05测 试 样 本训练后的结果图测试时和训练时的目标函数期望输出:-0.1-0.302468101214161820当时得到的最后控制响应曲线为:1.510.5-0.5-1五、 结论由上述仿真结果可以看出,间接自适应控制的神经网络,可以对复杂的非线性和不确定系统进行智能控制,神经网络的逼近能力起了重要的作用。神经网络对未知的过程进行离线辨识,再根据辨识结果以及参考模型进行控制器的设计,达到预期的效果。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1