%增广递推最小二乘参数估计(ERLS)
考虑如下系统:
y(k)1.5y(k1)0.7y(k2)u(k3)0.5u(k4)(k)(k1)0.2(k2)
式中(k)为方差为0.1的白噪声。
选择方差为1的白噪声作为输入信号u(k).
clear all; close all;
a=[1 -1.5 0.7]';b=[1 0.5]';c=[1 -1 0.2]';d=3; %对象参数
na=length(a)-1;nb=length(b)-1;nc=length(c)-1; %计算阶次
L=1000; %数据长度
uk=zeros(d+nb,1);yk=zeros(na,1); %输入输出初值
xik=zeros(nc,1); %噪声初值
xiek=zeros(nc,1); %噪声估计初值
u=randn(L,1); %输入采用方差为1的白噪声序列
xi=sqrt(0.1)*randn(L,1); % 方差为0.1的白噪声干扰序列
theta=[a(2:na+1);b;c(2:nc+1)]; %对象参数真值
thetae_1=zeros(na+nb+1+nc,1); %参数初值,na+nb+1+nc为辨识参数个数
P=10^6*eye(na+nb+1+nc);
lambda=0.98; %遗忘因子范围[0.9 1]
for k=1:L
phi=[-yk;uk(d:d+nb);xik]; %测量向量
y(k)=phi'*theta+xi(k); %采样输出数据
phie=[-yk;uk(d:d+nb);xiek]; %估计的测量向量
%增广递推最小二乘公式
K=P*phie/(1+phie'*P*phie);
thetae(:,k)=thetae_1+K*(y(k)-phie'*thetae_1);
P=(eye(na+nb+1+nc)-K*phie')*P;
xie=y(k)-phie'*thetae(:,k); %白噪声估计值
%更新数据
thetae_1=thetae(:,k);
for i=d+nb:-1:2
uk(i)=uk(i-1);
end
uk(1)=u(k);
for i=na:-1:2
yk(i)=yk(i-1);
end
yk(1)=y(k);
for i=nc:-1:2
xik(i)=xik(i-1);
xiek(i)=xiek(i-1);
end
xik(1)=xi(k);
xiek(1)=xie;
end
figure(1)
plot([1:L],thetae(1:na,:));
xlabel('k');ylabel('参数估计a');
legend('a_1','a_2');axis([0 L -2 2]);
figure(2)
plot([1:L],thetae(na+1:na+nb+1,:));
xlabel('k');ylabel('参数估计b');
legend('b_0','b_1');axis([0 L 0 1.5]);
figure(3)
plot([1:L],thetae(na+nb+2:na+nb+nc+1,:));
xlabel('k');ylabel('参数估计c');
legend('c_1','c_2');axis([0 L -2 2]);
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务