资源描述:
《最小方差自校正控制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、用最小方差自校正控制算法对以下系统进行闭环控制:式中x(k)为方差为0.1的白噪声,取期望输出yr(k)为幅值为10的方波信号。解:上式可以化为:则有Diophantine方程为:又有递推公式为:程序清单如下:clearall;closeall;a=[1-1.70.7];b=[10.5];c=[10.2];d=4;%对象参数na=length(a)-1;nb=length(b)-1;nc=length(c)-1;%多项式A、B、C的阶次nh=nb+d-1;ng=na-1;%nh、ng为多项式H、G的阶次L=40
2、0;uk=zeros(d+nh,1);%输入初值:yk=zeros(d+ng,1);%输出初值yek=zeros(nc,1);%最优输出预测估计初值yrk=zeros(nc,1);%期望输出初值xik=zeros(nc,1);%白噪声初值yr=10*[ones(L/4,1);-ones(L/4,1);ones(L/4,1);-ones(L/4+d,1)];%期望输出xi=sqrt(0.1)*randn(L,1);%白噪声序列%递推估计初值thetaek=zeros(na+nb+d+nc,d);P=10^6*ey
3、e(na+nb+d+nc);%P(k)的初始值fork=1:Ltime(k)=k;y(k)=-a(2:na+1)*yk(1:na)+b*uk(d:d+nb)+c*[xi(k);xik];%采集输出数据%递推增广最小二乘法公式估计参数phie=[yk(d:d+ng);uk(d:d+nh);-yek(1:nc)];K=P*phie/(1+phie'*P*phie);thetae(:,k)=thetaek(:,1)+K*(y(k)-phie'*thetaek(:,1));P=(eye(na+nb+d+nc)-K*ph
4、ie')*P;ye=phie'*thetaek(:,d);%预测输出的估计值%提取辨识参数ge=thetae(1:ng+1,k)';he=thetae(ng+2:ng+nh+2,k)';ce=[1thetae(ng+nh+3:ng+nh+2+nc,k)'];ifabs(ce(2))>0.9ce(2)=sign(ce(2))*0.9;endifhe(1)<0.1%设h0的下界为0.1he(1)=0.1;endu(k)=(-he(2:nh+1)*uk(1:nh)+ce*[yr(k+d:-1:k+d-min(d,nc
5、));yrk(1:nc-d)]-ge*[y(k);yk(1:na-1)])/he(1);%控制量%更新数据fori=d:-1:2thetaek(:,i)=thetaek(:,i-1);endthetaek(:,1)=thetae(:,k);fori=d+nh:-1:2uk(i)=uk(i-1);enduk(1)=u(k);fori=d+ng:-1:2yk(i)=yk(i-1);endyk(1)=y(k);fori=nc:-1:2yek(i)=yek(i-1);yrk(i)=yrk(i-1);xik(i)=xik
6、(i-1);endifnc>0yek(1)=ye;yrk(1)=yr(k);xik(1)=xi(k);endendfigure(1);subplot(2,1,1);plot(time,yr(1:L),'r:',time,y);xlabel('k');ylabel('y_r(k)、y(k)');legend('y_r(k)','y(k)');axis([0L-2020]);subplot(2,1,2);plot(time,u);xlabel('k');ylabel('u(k)');axis([0L-4040]);
7、figure(2)subplot(211)plot([1:L],thetae(1:ng+1,:),[1:L],thetae(ng+nh+3:ng+2+nh+nc,:));xlabel('k');ylabel('参数估计g、c');legend('g_0','g_1','c_1');axis([0L-34]);subplot(212)plot([1:L],thetae(ng+2:ng+2+nh,:));xlabel('k');ylabel('参数估计h');legend('h_0','h_1','h_2','h_
8、3','h_4');axis([0L04]);