您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 利用相关分析法辨识脉冲响应
1实验一利用相关分析法辨识脉冲响应一、实验目的通过仿真实验掌握利用相关分析法辨识脉冲响应的原理和方法。二、实验原理下图为本实验的原理框图。过程传递函数为)(sG,其中Sec26TSec,3812021..,TK;)()(kzku和分别为过程的输入和输出变量;)(kv为过程测量白噪声,服从正态分布,均值为零,方差为2v,记作),(~)(20vNkv;)(kg0为过程的脉冲响应理论值,)(ˆkg为过程脉冲响应估计值,)(~kg为过程脉冲响应估计误差。过程的输入驱动采用M序列,输出受到白噪声)(kv的污染。根据过程的输入和输出数据)(),(kzku,利用相关分析算法估计出过程的脉冲响应值)(ˆkg,并与过程脉冲响应理论值)(kg0比较,得到过程脉冲响应估计误差值)(~kg,当k时,应该有0)(~kg。三、实验步骤(1)掌握相关分析辨识方法的基本原理。(2)设计实验方案。(3)编制实验程序。(4)调试程序,研究实验问题,记录数据。相关分析法v(k)u(k)z(k)ckRtaNNkgMzPP)()()(ˆ2121210TtkTtkeeTTKkg//)()(ˆ)()(~kgkgkg0)1)(1()(21sTsTKsG2(5)分析实验结果,完成实验报告。四、实验报告(1)实验对象及参数对于传递函数21211111TsTsTTKsG//)(初始数据为:K=200,T1=10,T2=8,T=1(2)程序代码:a.主程序如下:functioncorrelationAnalysis%数据初始化K=200;T1=10;T2=8;a=1;T=1;%采样周期r=3;Np=63;%产生随机序列M=[11111100000...10000110001...01001111010...00111001001...01101110110...01101010];M=-2*M+ones(1,size(M,2));u=[M,M,M,M,M,M,M];num=size(u,2);v=whitenoise(num);%传递函数计算K1=K/(T1*T2);x=transferFcn(T1,u,K1);3y=transferFcn(T2,x,1);z=y+v;g0=theoreticalValue(Np,T,T1,T2,K);g1=estValue(r,Np,u,z,a);dif=ImpEstErr(g0,g1,Np);%作图disp(dif)tt=linspace(0,Np,Np);plot(tt,g0,'-.');holdonplot(tt,g1);legend('理想的脉冲响应','相关分析法估计结果');ylabel('y');xlabel('t');endb.产生高斯白噪声程序如下:functionv=whitenoise(n)a1=65539;m=2147483647;b=2;NN=12*n;x1=zeros(1,NN);R=zeros(1,NN);x1(1)=56326;R(1)=x1(1)/m;fori1=2:NNx1(i1)=mod(a1*x1(i1-1)+b,m);R(i1)=x1(i1)/m;endv=zeros(1,n);4fori2=1:nforj=1:12v(i2)=v(i2)+R((i2-1)*12+j);endv(i2)=v(i2)-6;endendc.传递函数程序如下:functiony=transferFcn(T,u,K)T0=1;len=size(u,2);%得到得输出序列的长度y=zeros(1,len);%initialis0fork=2:leny(k)=exp(-T0/T)*y(k-1)+T*K*(1-exp(-T0/T))*u(k-1)+T*K*(T*(exp(-T0/T)-1)+T0)*(u(k)-u(k-1))/T0;endendd.脉冲响应估计程序如下:functiong1=estValue(r,Np,u,z,a)Rmz=zeros(1,Np);fork1=1:Npsum0=0;fori=(Np+1):(r+1)*Npsum0=u(i-k1)*z(i)+sum0;endRmz(k1)=sum0/(r*Np);endc=-Rmz(Np-1);loop_len=size(Rmz,2);g1=Np.*(Rmz+c.*ones(1,loop_len))./((Np+1)*a^2);end5e.脉冲响应估计误差程序如下:functiondif=ImpEstErr(g0,g,Np)sum1=0;sum2=0;fori=1:Np;sum1=(g0(i)-g(i))^2+sum1;sum2=g0(i)^2+sum2;enddif=sqrt(sum1/sum2);endf.产生系统脉冲响应理论值程序如下:functiong0=theoreticalValue(Np,T,T1,T2,K)g0=zeros(1,Np);fori=1:Npg0(i)=K*(exp(-i*T/T1)-exp(-i*T/T2))/(T1-T2);endend(3)实验结果及其分析1数据记录t1234567脉冲响应估计值0.790.921.021.041.051.010.92脉冲响应理论值2.033.524.595.325.776.026.11t891011121314脉冲响应估计值0.870.800.740.650.570.500.42脉冲响应理论值6.075.945.745.495.214.914.60t15161718192021脉冲响应估计值0.330.230.170.100.05-0.01-0.06脉冲响应理论值4.293.993.693.403.122.862.62t22232425262728脉冲响应估计值-0.10-0.16-0.19-0.22-0.25-0.29-0.286脉冲响应理论值2.392.181.981.801.631.481.33t29303132333435脉冲响应估计值-0.30-0.31-0.32-0.36-0.37-0.39-0.41脉冲响应理论值1.201.090.980.880.790.710.64t36373839404142脉冲响应估计值-0.44-0.46-0.47-0.46-0.49-0.51-0.52脉冲响应理论值0.580.520.460.410.370.330.30t43444546474849脉冲响应估计值-0.53-0.54-0.55-0.55-0.56-0.54-0.56脉冲响应理论值0.270.240.210.190.170.150.13t50515253545556脉冲响应估计值-0.57-0.57-0.56-0.57-0.57-0.56-0.55脉冲响应理论值0.120.110.100.090.080.070.06t57585960616263脉冲响应估计值-0.53-0.52-0.53-0.52-0.530.000.61脉冲响应理论值0.050.050.040.040.030.030.032曲线打印1)初始参数如下:试验曲线为下图:7脉冲响应估计误差0.0355=g2)初始参数如下:试验曲线为下图:脉冲响应估计误差0.0561=g当r=1时:脉冲响应估计误差0.0561=g当r=3时:脉冲响应估计误差0.0355=g(4)结论利用相关分析法分析脉冲响应,得到脉冲响应的估计误差是随着周期数的增大而减小的,增大周期数能够减小估计误差。(5)心得体会理论是实验的基础实验是对理论的验证和深化,该实验使我对系统辨识有了更深刻的认识。同时提高了我的动手能力和思维能力。在实验的过程中我们也遇到了一些错误程序有任何小的错误都会影响整个程序的运行。但是通过我们的仔细检查和不断的修正终于得到了期望的实8验结果。
本文标题:利用相关分析法辨识脉冲响应
链接地址:https://www.777doc.com/doc-4411276 .html