《系统辨识实验报告》由会员分享,可在线阅读,更多相关《系统辨识实验报告(15页珍藏版)》请在金锄头文库上搜索。
1、系统辨识实验报告学院:电子信息学院班级:电气105姓名:郝永旭学号:201000474511实验一:用相关分析法辨识系统脉冲响应(1)M序列产生程序Np=(26-1)*4;%初始化M序列的长度for i=1:6 M(i)=1;endfor i=7:Np;%根据M序列特征式计算M序列的其余项 M(i)=xor(M(i-5),M(i-6);endinput=zeros(1,Np); %初始化输入for i=1:Npif M(i)=1 input(i)=-1;elseif M(i)=0 input(i)=1;end;endtime=1:Np;simin=time input; (2)正态分布白噪声程
2、序 A=6; x0=1; N=100; M=8;for k=1:N x2=A*x0; x1=mod (x2,M); v1=x1/M; v(1,k)=v1; x0=x1;end (3)系统simulink构建(4)脉冲响应辨识程序z=simout.signals.values(1:Np,1);Ruz=zeros(1,26-1); %产生相关函数N=Np-26+1;for k=1:26-1 for i=26:Np Ruz(k)=Ruz(k)+input(i-k)*z(i); end Ruz(k)=Ruz(k)/N;endc=-Ruz(62);%求g(k)for k=1:26-1 g(k)=N/(N
3、+1)*(Ruz(k)+c);%脉冲响应的估计值;endnum=1;%画图den=8.3*6.2 14.5 1;sys=tf(num,den);t=0:62;y=impulse(sys,t);%真实的脉冲响应函数;figureplot(t,g(t+1),r,t,y,b);实验二:利用Matlab中的ident模块对实验得到的数据进行处理X=2.8 2.9 3.0 3.0 3.0 2.9 2.7 2.5 2.3 2.2 2.0 1.8 1.6 1.5 1.4 1.6 1.7 1.8 2.0 2.3 2.4 2.6 2.9 2.9 3.0 3.0 3.0 2.9 2.8 2.6 2.3 2.1 2
4、.0 1.8 1.6 1.5 1.5 1.8 1.7 1.8Y=2.7 2.8 2.9 3.0 2.9 2.8 2.7 2.5 2.3 2.1 1.8 1.4 1.1 0.9 0.7 0.8 1.0 1.3 1.6 2.0 2.2 2.4 2.6 2.8 2.9 2.9 2.8 2.8 2.7 2.6 2.3 2.1 1.8 1.2 1.1 0.9 0.8 0.8 1.1 1.2间隔时间0.5把数据的间隔时间变成0.05在PC机上打开Matlab后,先将数据导入,再用ident指令打开如图:实验三:利用Matlab的窗口指令对实验得到的数据进行处理X=2.8 2.9 3.0 3.0 3.0 2
5、.9 2.7 2.5 2.3 2.2 2.0 1.8 1.6 1.5 1.4 1.6 1.7 1.8 2.0 2.3 2.4 2.6 2.9 2.9 3.0 3.0 3.0 2.9 2.8 2.6 2.3 2.1 2.0 1.8 1.6 1.5 1.5 1.8 1.7 1.8Y=2.7 2.8 2.9 3.0 2.9 2.8 2.7 2.5 2.3 2.1 1.8 1.4 1.1 0.9 0.7 0.8 1.0 1.3 1.6 2.0 2.2 2.4 2.6 2.8 2.9 2.9 2.8 2.8 2.7 2.6 2.3 2.1 1.8 1.2 1.1 0.9 0.8 0.8 1.1 1.2d
6、ry=iddata(X,Y,0.5);ze=dry(1:20);ze1=detrend(ze);m1=arx(ze1,4,3,4);zv=dry(20:40);zv1=detrend(zv);compare(zv1,m1);实验总结:通过对系统辨识的学习,让我知道了他的重要性,尤其是近二十年来,系统辨识获得了长足的发展,已经为控制理论的一个十分活跃而又要的分支。随着智能控理论、遗传算法理论等的不断成熟,逐渐形成了形式多样的现代的系统辨识方法,并且已在实际问题应用中取得了较好的使用效果。我们可以预见对不确定性的复杂系统的辨识研究很难或根本不可能找到一种统的辨识方法来处理,这就需要人们分门别类地去研究,去解决所遇到的各种具体问题。在实验过程中,需要我们去好好思考要如何去做,辨识是一个复杂而简单的过程,只要我们掌握了相应的方法,辨识是非常容易的。最后,谢谢老师对我们的指导和照顾。