1、哈工大系统辨识实验二Harbin Institute of Technology实验2相关分析法辨识脉冲响应系统辨识课程实验报告 专业: 控制科学与工程 班级: 学号: 1110410420 姓名: 日期: 2014.10.25 1实验题目:相关分析法辨识脉冲响应2实验目的通过仿真实验掌握利用相关分析法辨识脉冲响应的原理和方法。3实验主要原理一个单入单出线性定常系统的动态特性可用它的脉冲响应函数g()来描述。这样,只要记录x(t)、y(t)的值,并计算它们的互相关函数,即可求得脉冲响应函数g()。(magnitude multiplied by transform)而在系统有正常输入的情形下,
2、辨识脉冲响应的原理图如下图所示。4实验对象或参数下图为本实验的原理框图。系统的传递函数为,其中;分别为系统的输入和输出变量;为测量白噪声,服从正态分布,均值为零,方差为,记作;为系统的脉冲响应理论值,为系统脉冲响应估计值,为系统脉冲响应估计误差。系统的输入采用M序列(采用实验1中的M序列即可),输出受到白噪声的污染。根据过程的输入和输出数据,利用相关分析法计算出系统的脉冲响应值,并与系统的脉冲响应理论值比较,得到系统脉冲响应估计误差值,当时,应该有。1、模拟过程传递函数,获得过程的输入和输出数据(采样时间取1秒)。(1) 惯性环节其中,T为惯性环节的时间常数,K为惯性环节的静态放大倍数。若采样
3、时间记作,则惯性环节的输出可写成:(2) 传递函数仿真(串联)令,则的表达框图为:2、互相关函数的计算其中,r为周期数,表示计算互相关函数所用的数据是从第二个周期开始的,目的是等过程仿真数据进入平稳状态。(可分别令r =1、3,对比仿真结果)3、c的补偿补偿量c应取,不能取。因为是周期函数,则有,故不能取。4、计算脉冲响应估计值 脉冲响应估计值 脉冲响应估计误差5程序框图开始数据初始化生成M序列和白噪声求出系统在M序列输入下的输出YZ=Y+V求出Rmz求出估计的脉冲响应G1求出理想情况系统的脉冲响应G0计算脉冲响应估计误差结束6程序代码Shiyan2:K=120;T1=8.3;T2=6.2;a
4、=1;T=1;%采样周期r=3;Np=63;M=1 1 1 1 1 1 0 0 0 0 0 . 1 0 0 0 0 1 1 0 0 0 1 . 0 1 0 0 1 1 1 1 0 1 0 . 0 0 1 1 1 0 0 1 0 0 1 . 0 1 1 0 1 1 1 0 1 1 0 . 0 1 1 0 1 0 1 0 ;%M-alignment row matrixM=-2*M+ones(1,size(M,2);%1产生随机序列change M from 1/0 to 1/-1,size(M,2)=column number of the M-alignment row vectoru=M,M
5、,M,M,M,M,M;%extend the length of the row vector by 7 timesnum=size(u,2);v=baizaosheng(num);%1K1=K/(T1*T2);x=guanxing(T1,u,K1);y=guanxing(T2,x,1);z=y+v;%2Rmz=zeros(1,Np);for k1=1:Np sum0=0;for i=(Np+1):(r+1)*Np sum0=u(i-k1)*z(i)+sum0;endRmz(k1)=sum0/(r*Np);end%3c 的补偿c=-Rmz(Np-1);%c=-sum(Rmz);%按照书上的来%
6、4tt=linspace(0,Np,Np);g_0=zeros(1,Np);for i=1:Np g_0(i)=K*(exp(-i*T/T1)-exp(-i*T/T2)/(T1-T2);endloop_len=size(Rmz,2);g_1=Np.*(Rmz+c.*ones(1,loop_len)./(Np+1)*a2);sum1=0;sum2=0;for i=1:Np; sum1=(g_0(i)-g_1(i)2+sum1; sum2=g_0(i)2+sum2;endwucha=sqrt(sum1/sum2);disp(wucha)plot(tt,g_0,-.);hold onplot(tt,
7、g_1)legend(理想的脉冲响应,相关分析法估计结果)%conventional signs=legendsylabel(y)xlabel(t)endfunction v=baizaosheng(n)%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;for i1=2:NNx1(i1)=mod(a1*x1(i1-1)+b,m);R(i1)=x1(i1)/m;end% 2 生成高斯白噪声v=zeros(1,n);for i2=1:nfor j=1
8、:12v(i2)=v(i2)+R(i2-1)*12+j);endv(i2) = v(i2) - 6;endendfunction y=guanxing(T,u,K)T0=1;len=size(u,2);%得到得输出序列的长度y=zeros(1,len);%initial is 0for k=2:len y(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;endend7实验结果及分析当r=1时,运行程序,辨识的结果与理想的结果进行对比,得到下图:图一此时(如图一),估计的误差为:当r=3时,得到如下的结果:图二此时(如图二),估计误差为:估计误差变小了。可以看出当周期数r越大,运用相关估计辨识得到的系统的模型更准确。8结论在本次系统辨识的实验上机当中,在老师的指导之下,我利用相关分析法分析脉冲响应,得到脉冲响应的估计误差是随着输入白噪声标准差的增大而增大的,带有白噪声污染的输出z,在白噪声标准差为0时与理想输出y是重合的,白噪声标准差越小,对系统的输出干扰越小.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1