将噪声模型的辨识同时考虑进去,因此称为增广最小二乘法。该算法可以看成是对一般最小二乘参数辨识算法的简单推广或扩充,因此又称为扩充最小二乘算法。
考虑如下模型:A(z?1)z(k)?B(z?1)u(k)?C(z?1)v(k),其中u(k),z(k) 分别是系统的输入和输出;v(k)是均值为零,方差为一的不相关白噪声。且满足:
?A(z?1)?1?a1z?1?a2z?2?...?anz?n??1?1?2?m ?B(z)?b1z?b2z?...?bmz?C(z?1)?1?cz?1?cz?2?...?cz?v12v?在模型阶次n,m,v已经确定的情况下,令
?h(k)?[?z(k?1),...,?z(k?n),u(k?1),...u(k?m),v(k?1),...v(k?v)]T ?T??[a1,a2,...an,b1,b2,...bm,c1,c2,...,cv]?由于v(k)是白噪声,所以利用增广最小二乘法这一形式上的变换,即可获得参数?的无偏估计。不过由于数据向量h(k)中包含着不可测的噪声量
v(k?1),v(k?2),...v(k?v),因此要用相应的估计值代替。当k?0,v(k)?0;当
T,即可得递推公式如下: k?0,v(k)?z(k)?h(k?)?(k?1)?(k)???(k?1)?K(k)v??(k)??K(k)?P(k?1)h(k)[hT(k)P(k?1)h(k)?1]?1?? P(k)?[I?K(k)hT(k)]P(K?1)??T?(k?1)??(k)?z(k)?h(k)????(k?1),...?v?(k?v)]T?h(k)?[?z(k?1),...?z(k?n),?u(k?1),...?u(k?m),?v?P(0)?I一般说来选取初值 ?
?(0)?0?增广最小二乘递推算法扩充了最小二乘法的参数向量?和数据向量h(k)的维数,把噪声模型的辨识同时考虑进去。最小二乘法的许多结论对它都是适用的,但最小二乘法只能获得模型的参数估计,对于有色噪声,也就是噪声模型必须用
C(z?1)v(k)表示时,只能采用增广最小二乘递推算法,方可获得无偏估计。这是最小二乘参数估计的递推算法不可代替的。
增广最小二乘算法的流程如图5所示。
图4 递推最小二乘参数辨识流程图
图5 增广最小二乘算法流程图
三、Matlab仿真及运行结果
在本次实验中,?取值为1,则系统辨识对象为:
z(k)??0.9z(k?1)?0.15z(k?2)?0.02z(k?3)?0.7u(k?1)?1.5u(k?2)??v(k)?1.0e(k?1)?0.41e(k?2)1. 差分模型的阶检验
在实际应用场景中,模型的阶数和纯时延往往是未知的,在此种情况下,一般采用如下方法来确定模型的阶数:固定一个阶数n,当n从小增大时,定义损失函数JN应随之减小,当n增大到某一值时,JN应近似白噪声过程。在n-1这一点,JN最后一次出现陡峭的下降,此后就近似地保持不变或只有微小的下降,
??n。使用Matlab进行模型阶数确定代码如下: 则取n%%%%%%%%%%%%%噪声方差的估计值和损失函数法定阶%%%%%%%%%% clear close all; L=100;
y1=1;y2=1;y3=1;y4=0; for i=1:L+5;
x1=xor(y3,y4); %第一个移位寄存器的输入信号 x2=y1; %第二个移位寄存器的输入信号 x3=y2; %第三个移位寄存器的输入信号 x4=y3; %第四个移位寄存器的输入信号
y(i)=y4; %第四个移位寄存器的输出,即M序列,幅值为“0”或“1”
if y(i)>0.5;
u(i)=-1; %M序列的值为1时,辨识的输入取-1 else
u(i)=1; %M序列为0时,输入取1
end
y1=x1;y2=x2;y3=x3;y4=x4;%移位寄存器的输出序列 end
v=randn(L+5,1);
%--------- ksi(k)=lamda*v(k)-ksi(k-1)-0.41*ksi(k-2)--------------% ksi(2) = 0;ksi(1) = 0; %设ksi的前两个初始值为0 lamda = 1; for k=3:L+5;
ksi(k) = lamda*v(k) - ksi(k-1) - 0.41*ksi(k-2);
end
z(3)=0;z(2)=0;z(1)=0; %取z的前三个初始值为零 for k=4:L+5;
z(k) = -0.9*z(k-1) - 0.15*z(k-2) - 0.02*z(k-3) + 0.7*u(k-1) - 1.5*u(k-2) + ksi(k); %理想辨识输出采样信号 end
% 模型阶次n=1 for i=1:L
H1(i,1)=z(i);; H1(i,2)=u(i); end
estimate1=inv(H1'*H1)*H1'*z(2:L+1)';
D1=(z(2:L+1)'-H1*estimate1)'*(z(2:L+1)'-H1*estimate1)/L; %噪声方差的估计值 AIC1=L*log(D1)+4*1; % 模型阶次n=2 for i=1:L
H2(i,1)=z(i+1);; H2(i,2)=z(i); H2(i,3)=u(i+1); H2(i,4)=u(i); end
estimate2=inv(H2'*H2)*H2'*z(3:L+2)';
D2=(z(3:L+2)'-H2*estimate2)'*(z(3:L+2)'-H2*estimate2)/L; %噪声方差的估计值 AIC2=L*log(D2)+4*2; % 模型阶次n=3 for i=1:L
H3(i,1)=z(i+2); H3(i,2)=z(i+1); H3(i,3)=z(i); H3(i,4)=u(i+2);
H3(i,5)=u(i+1); H3(i,6)=u(i); end
estimate3=inv(H3'*H3)*H3'*z(4:L+3)';
D3=(z(4:L+3)'-H3*estimate3)'*(z(4:L+3)'-H3*estimate3)/L; %噪声方差的估计值 AIC3=L*log(D3)+4*3; % 模型阶次n=4 for i=1:L
H4(i,1)=z(i+3); H4(i,2)=z(i+2); H4(i,3)=z(i+1); H4(i,4)=z(i); H4(i,5)=u(i+3); H4(i,6)=u(i+2); H4(i,7)=u(i+1); H4(i,8)=u(i); end
estimate4=inv(H4'*H4)*H4'*z(5:L+4)';
D4=(z(5:L+4)'-H4*estimate4)'*(z(5:L+4)'-H4*estimate4)/L; %噪声方差的估计值 AIC4=L*log(D4)+4*4;
% 模型阶次n=5 for i=1:L
H5(i,1)=z(i+4); H5(i,2)=z(i+3); H5(i,3)=z(i+2); H5(i,4)=z(i+1); H5(i,5)=z(i); H5(i,6)=u(i+4); H5(i,7)=u(i+3);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库系统辨识大作业(2)在线全文阅读。
相关推荐: