- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
%极点配置直接自校正控制(最小相位确定性系统)
期望传递函数分母多项式为:
取遗忘因子(=1,期望输出yr(k)为幅值为10的方波信号。
clear all;close all;
a=[1 -2 1.1];b=[1 0.5];d=3; %对象参数
Am=[1 -1.3 0.5];%期望闭环特征多项式
na=length(a)-1;nb=length(b)-1;
nam=length(Am)-1;
nf=nb+d-1;ng=na-1;
%确定多项式A0
na0=2*na-nam-nb-1;%观测器最低阶次
A0=1;
for i=1:na0
A0=conv(A0,[1 0.3-i*0.1]);%生成观测器
end
AA=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+d,1)];
%RELS初值设定
thetae_1=0.001*ones(nf+ng+2,1);
P=10^6*eye(nf+ng+2);
lambda=1;%遗忘因子
for k=1:L
time(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/(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:-1:k+d-min(d,nr));yrk(1:nr-d)]-Ge*[y(k);yk(1:ng)])/Fe(1);
%更新数据
thetae_1=thetae(:,k);
for i=d+nb:-1:2
uk(i)=uk(i-1);
end
uk(1)=u(k);
for i=max(d,na):-1:2
yk(i)=yk(i-1);
yrk(i)=yrk(i-1);
end
yk(1)=y(k);
yrk(1)=yr(k);
for i=d+nfg:-1:d+1
ufk(i)=ufk(i-1);
yfk(i)=yfk(i-1);
end
end
figure(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([0 L -20 20]);
subplot(2,1,2);
plot(time,u);
xlabel(k);ylabel(u(k));axis([0 L -5 5]);
figure(2);
plot([1:L],thetaeb(2:nf+ng+2,:));
xlabel(k);ylabel(辨识参数f,g);
legend(f_1,f_2,f_3,g_0,g_1);axis([0 L -1 1.5]);
文档评论(0)