系统辨识作业2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统辨识作业
学院:
专业:
姓名:
学号:
日期:
系统辨识作业:
以下图为仿真对象
图中,v(k)为服从N(0,1)正态分布的不相关随即噪声,输入信号采用循环周期Np>500的逆M 序列,幅值为1,选择辨识模型为:
)()2()1()2()1()(2121k v k u b k u b k z a k z a k z +-+-=-+-+
加权因子1)(=Λk ,数据长度L=500,初始条件取I P 610)0(= ,⎥⎥⎥⎥⎦⎤⎢⎢⎢
⎢⎣⎡=001.0001.0001.0)0(ˆ θ 要求:(1)采用一次完成最小二乘法对系统进行辨识,给出数据u(k)和z(k),
及L H
,L Z 和θ 和)ˆ(θ
J 的值。 (2)采用递推最小二乘法进行辨识,要给出参数收敛曲线以及新息)(~k Z
,残差)(k ε,准则函数)(k J 随着递推次数K 的变化曲线。
(3)对仿真对象和辨识出的模型进行阶跃响应对比分析以检验辨识结果的实效。
1、一次完成法对系统进行辨识:
估计L
T L
L
T L
LS
Z H H H 1)(ˆ-=θ
,其中 []2121,,,b b a a LS =θ
⎥⎥⎥⎥⎦
⎤
⎢⎢⎢⎢⎣⎡=L L Z Z Z Z 21
⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------------=⎥⎥⎥⎥⎦⎤⎢⎢⎢
⎢⎣⎡=)2()1()2()1()0()1()0()1()1()0()1()
0()()2()1(L u L u L z L z u u z z u u z z L h h h H L 一次完成算法对系统辨识的Matlab 程序见附录:
部分输入、输出数据如下,全部的输入输出数据用图1.1所示 输入数据u(k)=Columns 1 through 16
0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0
输出数据z(k)= Columns 1 through 9
0 0 1.2372 3.9331 6.4987 7.9909 7.7132 6.5947 5.4523
Columns 10 through 18
3.2212 0.8419 0.6243 1.7110 0.7126 1.0712 2.8037 3.8047
4.6372
图1.1输入数据u(k)和输出数据z(k)
I H
的值为(部分):HL=
-5.4523 -6.5947 0 0 -3.2212 -5.4523 0 0 -0.8419 -3.2212 1.0000 0 … … … … -3.5706 -5.1944 0 0 -0.6787 -3.5706 0 0
2.3020 -0.6787 0 0 I Z
的值为(部分):ZL= 3.2212 0.8419 0.6243 1.7110
0.7126 … 0.6787 -2.3020 -3.8270
一次完成辨识后
的值为:
theta= -1.4918 0.6932 1.0541 0.4691
)ˆ
(θ J 的值为:J(theta)=493.1837 2、递推最小二乘法辨识系统: )]1()(')()[()1()(--+-=k k h k z k K k k θθθ
1
])
(1)()1()(')[()1()(-Λ+--=k k h k P k h k h k P k K )1()](')([)(--=k P k h k K I k P
初始条件:I P 610)0(= ,⎥⎥⎥⎥⎦⎤⎢⎢⎢
⎢⎣⎡=001.0001.0001.0)0(ˆ θ 递推最小二乘法辨识系统的Matlab 程序见附录: 其参数收敛曲线如图
2.1
图2.1 参数收敛曲线
新息)(~k Z ,残差)(k ε,准则函数)(k J 随着递推次数K 的变化曲线如图2.2中依次所示:
图2.2 新息、残差、准则函数变化曲线
3、仿真对象和辨识出的模型进行阶跃响应对比分析
仿真对象和辨识模型阶跃响应对比Matlab程序见附录:
图 3.1分别给出了一次完成算法辨识出来系统和辨识对象的阶跃响应对比图,递推算法辨识出来系统和辨识对象的阶跃响应对比图。
附录:一次完成和递推法系统辨识Matlab程序
%%最小二乘法辨识系统;
%叠加噪声为1/(1-1.5z^(-1)+0.7z^(-2));
%化为差分方程形式为;
%e(k)=v(k)+1.5e(k-1)-0.7e(k-2);
%仿真对象为(1z^-1+0.5z^-2)/(1-1.5z^-1+0.7z^-2);
%化为差分方程形式为;
%y(k)-1.5y(k-1)+0.7y(k-2)=u(k-1)+0.5u(k-2);
%辨识模型为;
%z(k)=-a1z(k-1)-a2z(k-2)+b1u(k-1)+b2u(k-2)+v(k);
%================================
%主函数;
function main
close all;
clc;
clear;
%================
%产生逆M序列;
X=[0,1,1,0,1,0,0,1]; %寄存器初始值;
F=[0,1,1,1,0,0,0,1]; %特征多项式;
N=1000; %生成长度;
M=[]; %存放产生的M序列; %产生逆M序列函数调用;
out=IMxulie(X,F,N);
%阶梯图输出逆M序列;
figure(1);
M=out;
subplot(2,1,1);
stairs(M);
xlabel('k')
ylabel('逆M序列')
title('移位寄存器产生的逆M序列');
grid on;
%=================
%一次完成最小二乘法辨识系统;
%e(k)=v(k)+1.5e(k-1)-0.7e(k-2);