系统辨识实验报告.docx

系统辨识实验报告.docx

ID:57580831

大小:280.70 KB

页数:12页

时间:2020-08-27

系统辨识实验报告.docx_第1页
系统辨识实验报告.docx_第2页
系统辨识实验报告.docx_第3页
系统辨识实验报告.docx_第4页
系统辨识实验报告.docx_第5页
资源描述:

《系统辨识实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、序号16系统辨识理论及Matlab仿真上机实验报告姓名:班级:学号:指导老师:2016年1月一、上机题目设单输入—单输出系统的差分方程为z(k)+a1z(k-1)+a2z(k-2)=b1u(k-1)+b2u(k-2)+v(k)v(k)=c1v(k)+c2v(k-1)+c3v(k-2)取真值a1=1.6、a2=0.7、b1=10、b2=0.4、c1=0.9、c2=1.2和c3=0.2,输入信号采用4阶M序列,幅值为1.当v(k)的均值为0,方差分别为0.1和0.5的高斯噪声时,分别用一般最小二乘法、递推最小二乘法和增广递推最小二乘法估计参数θ。并通过

2、对三种方法的辨识结果的分析和比较,说明上述三种参数辨识方法的优缺点。解:一般最小二乘法:Matlab仿真程序:clearallcloseallclcrandn('seed',100);v=0.1*randn(1,60);%产生一组高斯分布的随机噪声%%%%M序列产生程序%%%%%%%L=60;y1=1;y2=1;y3=1;y4=0;%移位寄存器初值fori=1:L;x1=xor(y3,y4);x2=y1;x3=y2;x4=y3;y(i)=y4;ify(i)>0.5,u(i)=-1;elseu(i)=1;endy1=x1;y2=x2;y3=x3;y4

3、=x4;endfigure(1);stem(u),gridontitle('输入信号M序列')%%%%最小二乘辨识程序%%%%%%%%%%z=zeros(1,16);%定义输出观测值的长度fork=3:16z(k)=-1.6*z(k-1)-0.7*z(k-2)+u(k-1)+0.4*u(k-2)+1*v(k)+1.6*v(k-1)+0.7*v(k-2);%观测值endfigure(2)plot([1:16],z)title('输出观测值')figure(3)stem(z),gridontitle('输出观测值z的经线图形')H=[-z(2)-z(1

4、)u(2)u(1);-z(3)-z(2)u(3)u(2);-z(4)-z(3)u(4)u(3);-z(5)-z(4)u(5)u(4);-z(6)-z(5)u(6)u(5);-z(7)-z(6)u(7)u(6);-z(8)-z(7)u(8)u(7);-z(9)-z(8)u(9)u(8);-z(10)-z(9)u(10)u(9);-z(11)-z(10)u(11)u(10);-z(12)-z(11)u(12)u(11);-z(13)-z(12)u(13)u(12);-z(14)-z(13)u(14)u(13);-z(15)-z(14)u(15)u(14

5、)];%给出样本系数矩阵Z=[z(3);z(4);z(5);z(6);z(7);z(8);z(9);z(10);z(11);z(12);z(13);z(14);z(15);z(16);]%给出样本观测矩阵c=inv(H'*H)*H'*Z;%计算参数al=c(1),a2=c(2),b1=c(3),b2=c(4)%分离参数程序运行结果:Z=-0.7165-0.2873-0.3262-0.58181.7445-1.05981.8351-2.68033.7050-2.85280.8821-1.29641.7166-2.6295al=1.3684a2=0.4

6、863b1=0.9853b2=0.1820递推最小二乘法:Matlab仿真程序:%%%%递推最小二乘算法程序%%%%%%%z(2)=0;z(1)=0;%观测值由理想输出值加噪声fork=3:60;%循环变量从3到15z(k)=-1.6*z(k-1)-0.7*z(k-2)+u(k-1)+0.4*u(k-2)+1*v(k)+1.6*v(k-1)+0.7*v(k-2);end%%%%RLS递推最小二乘辨识%%%%%%%%c0=[0.0010.0010.0010.001]';p0=10^3*eye(4,4);E=0.000000005;%相对误差c=[c0

7、,zeros(4,59)];%被辨识参数矩阵初始值e=zeros(4,60);%相对误差的初始值lamt=1;fork=3:60;h1=[-z(k-1),-z(k-2),u(k-1),u(k-2)]';k1=p0*h1*inv(h1'*p0*h1+1*lamt);%求出k的值new=z(k)-h1'*c0;c1=c0+k1*new;%被辨识参数cp1=1/lamt*(eye(4)-k1*h1')*p0;e1=(c1-c0)./c0;%求参数当前值与上一次的值的差值e(:,k)=e1;%把当前相对变化的列向量加入误差矩阵的最后一列c(:,k)=c1;

8、%把辨识参数c列向量加入便是参数矩阵的最后一列c0=c1;%新的参数作为下一次递推的旧参数p0=p1;ifnorm(e1)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。