哈工大系统辨识实验二.docx
《哈工大系统辨识实验二.docx》由会员分享,可在线阅读,更多相关《哈工大系统辨识实验二.docx(11页珍藏版)》请在冰豆网上搜索。
![哈工大系统辨识实验二.docx](https://file1.bdocx.com/fileroot1/2023-2/3/4a3e8707-8c7c-4737-9302-fb05883a4d08/4a3e8707-8c7c-4737-9302-fb05883a4d081.gif)
哈工大系统辨识实验二
HarbinInstituteofTechnology
实验2相关分析法辨识脉冲响应
系统辨识课程
实验报告
专业:
控制科学与工程
班级:
学号:
1110410420
姓名:
日期:
2014.10.25
1.实验题目:
相关分析法辨识脉冲响应
2.实验目的
通过仿真实验掌握利用相关分析法辨识脉冲响应的原理和方法。
3.实验主要原理
一个单入单出线性定常系统的动态特性可用它的脉冲响应函数g(σ)来描述。
这样,只要记录x(t)、y(t)的值,并计算它们的互相关函数,即可求得脉冲响应函数g(τ)。
(magnitudemultipliedbytransform)而在系统有正常输入的情形下,辨识脉冲响应的原理图如下图所示。
4.实验对象或参数
下图为本实验的原理框图。
系统的传递函数为
其中
;
分别为系统的输入和输出变量;
为测量白噪声,服从正态分布,均值为零,方差为
,记作
;
为系统的脉冲响应理论值,
为系统脉冲响应估计值,
为系统脉冲响应估计误差。
系统的输入采用M序列(采用实验1中的M序列即可),输出受到白噪声
的污染。
根据过程的输入和输出数据
,利用相关分析法计算出系统的脉冲响应值
,并与系统的脉冲响应理论值
比较,得到系统脉冲响应估计误差值
,当
时,应该有
。
1、模拟过程传递函数
,获得过程的输入和输出数据
(采样时间取1秒)。
(1)惯性环节
其中,T为惯性环节的时间常数,K为惯性环节的静态放大倍数。
若采样时间记作
,则惯性环节的输出可写成:
(2)传递函数
仿真(串联)
令
,则
的表达框图为:
2、互相关函数的计算
其中,r为周期数,
表示计算互相关函数所用的数据是从第二个周期开始的,目的是等过程仿真数据进入平稳状态。
(可分别令r=1、3,对比仿真结果)
3、c的补偿
补偿量c应取
,不能取
。
因为
是周期函数,则有
,故不能取
。
4、计算脉冲响应估计值
●脉冲响应估计值
●脉冲响应估计误差
5.程序框图
开始
数据初始化
生成M序列和白噪声
求出系统在M序列输入下的输出Y
Z=Y+V
求出Rmz
求出估计的脉冲响应G1
求出理想情况系统的脉冲响应G0
计算脉冲响应估计误差
结束
6.程序代码
Shiyan2:
K=120;
T1=8.3;
T2=6.2;
a=1;
T=1;%采样周期
r=3;
Np=63;
M=[11111100000...
10000110001...
01001111010...
00111001001...
01101110110...
01101010];%M-alignmentrowmatrix
M=-2*M+ones(1,size(M,2));
%1产生随机序列changeMfrom1/0to1/-1,size(M,2)=columnnumberoftheM-alignmentrowvector
u=[M,M,M,M,M,M,M];%extendthelengthoftherowvectorby7times
num=size(u,2);
v=baizaosheng(num);
%1
K1=K/(T1*T2);
x=guanxing(T1,u,K1);
y=guanxing(T2,x,1);
z=y+v;
%2
Rmz=zeros(1,Np);
fork1=1:
Np
sum0=0;
fori=(Np+1):
(r+1)*Np
sum0=u(i-k1)*z(i)+sum0;
end
Rmz(k1)=sum0/(r*Np);
end
%3c的补偿
c=-Rmz(Np-1);
%c=-sum(Rmz);%按照书上的来
%4
tt=linspace(0,Np,Np);
g_0=zeros(1,Np);
fori=1:
Np
g_0(i)=K*(exp(-i*T/T1)-exp(-i*T/T2))/(T1-T2);
end
loop_len=size(Rmz,2);
g_1=Np.*(Rmz+c.*ones(1,loop_len))./((Np+1)*a^2);
sum1=0;
sum2=0;
fori=1:
Np;
sum1=(g_0(i)-g_1(i))^2+sum1;
sum2=g_0(i)^2+sum2;
end
wucha=sqrt(sum1/sum2);
disp(wucha)
plot(tt,g_0,'-.');
holdon
plot(tt,g_1)
legend('理想的脉冲响应','相关分析法估计结果')%conventionalsigns=legends
ylabel('y')
xlabel('t')
end
functionv=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;
fori1=2:
NN
x1(i1)=mod(a1*x1(i1-1)+b,m);
R(i1)=x1(i1)/m;
end
%2生成高斯白噪声
v=zeros(1,n);
fori2=1:
n
forj=1:
12
v(i2)=v(i2)+R((i2-1)*12+j);
end
v(i2)=v(i2)-6;
end
end
functiony=guanxing(T,u,K)
T0=1;
len=size(u,2);%得到得输出序列的长度
y=zeros(1,len);%initialis0
fork=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;
end
end
7.实验结果及分析
当r=1时,运行程序,辨识的结果与理想的结果进行对比,得到下图:
图一
此时(如图一),估计的误差为:
当r=3时,得到如下的结果:
图二
此时(如图二),估计误差为:
估计误差变小了。
可以看出当周期数r越大,运用相关估计辨识得到的系统的模型更准确。
8.结论
在本次系统辨识的实验上机当中,在老师的指导之下,我利用相关分析法分析脉冲响应,得到脉冲响应的估计误差是随着输入白噪声标准差的增大而增大的,带有白噪声污染的输出z,在白噪声标准差为0时与理想输出y是重合的,白噪声标准差越小,对系统的输出干扰越小.