资源描述:
《极点配置直接自校正控制最小相位确定性系统》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、%极点配置直接自校正控制(最小相位确定性系统)设被控对象为开环不稳定最小相位系统:期望传递函数分母多项式为:取遗忘因子l=1,期望输出yr(k)为幅值为10的方波信号。clearall;closeall;a=[1-21.1];b=[10.5];d=3;%对象参数Am=[1-1.30.5];%期望闭环特征多项式na=length(a)-1;nb=length(b)-1;nam=length(Am)-1;nf=nb+d-1;ng=na-1;%确定多项式A0na0=2*na-nam-nb-1;%观测器最低阶次A0=1;fori=1:na0A0=c
2、onv(A0,[10.3-i*0.1]);%生成观测器endAA=conv(A0,Am);naa=na0+nam;nfg=max(naa,max(nf,ng));%用于ufk,yuf更新nr=na0;%R的阶次L=400;uk=zeros(d+nb,1);ufk=zeros(d+nfg,1);%滤波输入的初值yk=zeros(max(na,d),1);yfk=zeros(d+nfg,1);yrk=zeros(max(na,d),1);yr=10*[ones(L/4,1);-ones(L/4,1);ones(L/4,1);-ones(L/4+
3、d,1)];%RELS初值设定thetae_1=0.001*ones(nf+ng+2,1);P=10^6*eye(nf+ng+2);lambda=1;%遗忘因子fork=1:Ltime(k)=k;y(k)=-a(2:na+1)*yk(1:na)+b*uk(d:d+nb);ufk(d)=-AA(2:naa+1)*ufk(d+1:d+naa)+uk(d);%滤波输入输出yfk(d)=-AA(2:naa+1)*yfk(d+1:d+naa)+yk(d);%递推最小二乘法phie=[ufk(d:d+nf);yfk(d:d+ng)];K=P*phie/
4、(lambda+phie'*P*phie);thetae(:,k)=thetae_1+K*(y(k)-phie'*thetae_1);P=(eye(nf+ng+2)-K*phie')*P/lambda;%提取辨识参数be0=thetae(1,k);thetaeb(:,k)=thetae(:,k)/be0;Fe=thetaeb(1:nf+1,k)';Ge=thetaeb(nf+2:nf+ng+2,k)';Bm1=sum(Am)/be0;%确定多项式Bm'R=Bm1*A0;u(k)=(-Fe(2:nf+1)*uk(1:nf)+R*[yr(k+d
5、:-1:k+d-min(d,nr));yrk(1:nr-d)]-Ge*[y(k);yk(1:ng)])/Fe(1);%更新数据thetae_1=thetae(:,k);fori=d+nb:-1:2uk(i)=uk(i-1);enduk(1)=u(k);fori=max(d,na):-1:2yk(i)=yk(i-1);yrk(i)=yrk(i-1);endyk(1)=y(k);yrk(1)=yr(k);fori=d+nfg:-1:d+1ufk(i)=ufk(i-1);yfk(i)=yfk(i-1);endendfigure(1);subplo
6、t(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-55]);figure(2);plot([1:L],thetaeb(2:nf+ng+2,:));xlabel('k');ylabel('辨识参数f,g');legend('f_1','f_2
7、','f_3','g_0','g_1');axis([0L-11.5]);