系统辨识与参数估计大作业解决方案.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
系统辨识与参数估计大作业 第一题 递推最小二乘估计参数 考虑如上图所示的仿真对象,选择模型结构为: ,其中是服从正态分布的不相关随机噪声;输入信号采用4阶逆M序列,特征多项式取,幅度为1,循环周期为;控制值,使数据的噪信比分别为10%,73%,100%三种情况。加权因子;数据长度L=500;初始条件取, 利用递推最小二乘算法在线估计参数, 利用模型阶次辨识方法(AIC准则),确定模型的阶次。 估计噪声的方差和模型静态增益 作出参数估计值随时间的变化图 答: 设过程的输入输出关系可以描述成 是输出量,是可观测的数据向量,是均值为0的随机噪声 选取的模型为结构是 加权最小二乘参数估计递推算法RWLS的公式如下, 为了把p(k)的对称性,可以把p(k)写成 如果把设成1的时候,加权最小二乘法就退化成最小二乘法。 用AIC准则定阶法来定阶,所用公式 其中模型参数和 噪声方差的极大似然估计值为 , AIC 的定阶公式写成 取分别计算,找到使最小的那个作为模型的阶次。一般说来,这样得到的模型阶次都能比较接近实际过程的真实阶次。 信噪比为10%时: 参数 a1 a2 b1 b2 噪声方差 静态增益 模型阶次 真值 -1.5 0.7 1 0.5 1 估计值 -1.519 0.72259 1.0314 0.50923 1.0951 7.5661 2 信噪比为73%时: 参数 a1 a2 b1 b2 噪声方差 静态增益 模型阶次 真值 -1.5 0.7 1 0.5 1 估计值 -1.519 0.72259 1.0314 0.50923 1.0951 7.5661 2 信噪比为100%时: 参数 a1 a2 b1 b2 噪声方差 静态增益 模型阶次 真值 -1.5 0.7 1 0.5 1 估计值 -1.519 0.72259 1.0314 0.50923 估计值 7.5661 2 源程序: %function [a1 a2 b1 b2 na nb fangcha Kk]=rwls(L,syn,Np) %na,nb为模型阶次,fangcha为噪声方差,Kk为静态增益 a1=0;a2=0;b1=0;b2=0;na=0;nb=0;fangcha=0;Kk=0; L=500;Np=62;syn=1; x(1:4)=[1 0 1 0]; for i=1:Np temp=xor(x(1),x(4)); M(i)=x(4); for j=4:-1:2 x(j)=x(j-1); end x(1)=temp; end S=ones(1,Np);%先产生一个全是1的序列S if mod(Np,2)==0%判断Np是奇数还是偶数 p=Np/2; else p=(Np-1)/2; end for j=1:p S(2*j)=0;%将S序列的偶数位值均置为0,从而使S序列是0或1的方波序列 end IM=xor(M,S); %使用M序列与方波序列S复合生成逆M序列IM u=IM*2-1; for i=(Np+1):L u(i)=u(i-Np); end randn(seed,2); v=randn(1,L); syms c; y(1)=0; y(2)=u(1); e(1)=c*v(1); e(2)=1.5*e(1)+c*v(2); for i=3:L y(i)=1.5*y(i-1)-0.7*y(i-2)+u(i-1)+0.5*u(i-2); e(i)=1.5*e(i-1)-0.7*e(i-2)+c*v(i); end m=sum(e.^2); n=sum(y.^2); %c=solve(m/n-syn*syn,c); c=solve(m/n-syn*syn); c1=abs(double(c(1))); z(1)=c1*v(1); z(2)=u(1)+1.5*z(1)+c1*v(2); for i=3:L z(i)=1.5*z(i-1)-0.7*z(i-2)+u(i-1)+0.5*u(i-2)+c1*v(i); end cta=zeros(4,L); cta(:,1)=[0.001 0.001 0.001 0.001]; P=diag([10^6 10^6 10^6 10^6]); %k=2时 h=[-z(1) 0 u(1) 0]; K= P*h*inv(h*P*h+1); P=P-K*K*(h*P*h+1); cta(:,2)=cta(:,1)+K*(z(2)-h*cta(:,1)); for k=3:L h=[-z(k-1) -z(k-2) u(k-1) u(k-2)]; K=P*h*inv(h*P*h+1); P=P-K*K*

文档评论(0)

阿里山的姑娘 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档