77范文网 - 专业文章范例文档资料分享平台

系统辨识大作业(4)

来源:网络收集 时间:2019-03-11 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

图8 递推最小二乘参数估计

图9 被估参数误差收敛情况

使用递推最小二乘算法进行系统辨识的结果如表 1所示。

表 1 递推最小二乘算法的辨识结果

参数

0.9 0.9367

0.15 0.1591

0.02 -0.0138

0.7 0.6275

-1.5 -1.3558

真值 估计值

从上表中可以看出,对于含有有色噪声的系统,采用递推最小二乘法进行辨

识获得结果有较大误差,并不是无偏估计。所以,一般情况下,对于含有有色噪声的系统应采用增广递推最小二乘算法进行辨识。

(2)增广最小二乘法

根据前文所述增广最小二乘法算法流程,编写增广最小二乘法程序如下:

%%%%%%%%%%%%%%%%%%增广最小二乘法的参数辨识算法%%%%%%%%%%%%%%%%%%% clear all

close all

%--------------------------M序列的产生-----------------------% L=60 ; %移位寄存器产生的M序列周期(取L=60) y1=1;y2=1;y3=1;y4=0; %四个移位寄存器输入的初值 for i=1:L;

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 figure(1);

subplot(3,1,1);

stem(u),grid on %画出M序列输入信号径线图并给图形加上网格 title('输入信号(M序列)')

%-----------------------------随机噪声的产生--------------------% v=randn(1,L); %产生一组L=60个正态分布的噪声 subplot(3,1,2);

plot(v),grid on %画出随机噪声信号 title('随机噪声信号e(k)')

%---------------------------实际噪声的产生-----------------------% %--------- 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;

ksi(k) = lamda*v(k) - ksi(k-1) - 0.41*ksi(k-2); end

subplot(3,1,3) plot(ksi), grid on

title('实际噪声信号\\xi(k)')

%--------------------------辨识过程----------------------------%

z(3)=0;z(2)=0;z(1)=0;zm(3)=0;zm(2)=0;zm(1)=0; %输出采样,不考虑噪声时系统输出,不考虑噪声时模型输出,模型输出的初值

c0=[0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001]'; %直接给出辨识被辨识参数的初始值,即一个充分小的实向量

p0=10^6*eye(8,8); %直接给出初始向量P0,即一个充分大的实数单位矩阵 c=[c0,zeros(8,L-1)]; %被辨识参数参数矩阵的初始值及大小 e=zeros(8,L); %相对误差的初始值及大小 for k=4:L; %开始求K

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); %系统在M序列下的输出采样信号

h1=[-z(k-1),-z(k-2),-z(k-3),u(k-1),u(k-2),v(k),ksi(k-1),ksi(k-2)]'; %为求K(k)做准备

x=h1'*p0*h1+1;x1=inv(x);k1=p0*h1*x1; %K d1=z(k)-h1'*c0;c1=c0+k1*d1; e1=c1-c0;e2=e1./c0; e(:,k)=e2;

c0=c1;

%给下一次用

%辨识参数c

%求参数误差的相对变化

c(:,k)=c1; %把递推出的辨识参数c的列向量加入辨识参数矩阵

p1=p0-k1*k1'*[h1'*p0*h1+1]; % find p(k)

p0=p1; %给下次的计算使用 end %整个循环结束 c,e, % 分离变量

a1=c(1,:);a2=c(2,:);a3=c(3,:);b1=c(4,:);b2=c(5,:); %分离出a1,a2,a3,b1,b2 d1=c(6,:);d2=c(7,:);d3=c(8,:); %分离出的d1,d2,d3 % 分离变量的收敛情况

ea1=e(1,:);ea2=e(2,:);ea3=e(3,:);eb1=e(4,:);eb2=e(5,:); %分离出a1,a2,b1,b2的收敛情况 ed1=e(6,:);ed2=e(7,:);ed3=e(8,:); %分离出d1,d2,d3的收敛情况 figure(2); i=1:L;

plot(i,a1,'r',i,a2,'r:',i,a3,'r+',i,b1,'b',i,b2,'b:',i,d1,'g',i,d2,'g:',i,d3,'g+') grid on

legend('a1','a2','a3','b1','b2','c1','c2','c3') title('辨识曲线')

figure(3); i=1:L;

plot(i,ea1,'r',i,ea2,'r:',i,ea3,'r+',i,eb1,'b',i,eb2,'b:',i,ed1,'g',i,ed2,'g:',i,ed3,'g+') %画出各个参数的收敛情况 grid on

legend('ea1','ea2','ea3','eb1','eb2','ec1','ec2','ec3') title('辨识误差曲线') figure(4);

i=1:L;plot(i,z(i),'g'), grid on;

title('辨识系统的输出响应') %画出被辨识系统的输出响应

%显示被辨识参数及参数收敛情况

程序运行结果如图10至图13所示。

图10输入数据及噪声

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库系统辨识大作业(4)在线全文阅读。

系统辨识大作业(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/516682.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: