- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
不需矩阵求逆的最小二乘法.
一种不需矩阵求逆的最小二乘法
本文着重介绍了一种新的不需要矩阵求逆的最小二乘法。在LS估计中,需要计算矩阵(ΦTΦ)的逆,由于矩阵,求逆比较影响辨识速度。能否在LS中避免(ΦTΦ)的求逆运算?从而提高LS的辨识速度。
关键字:LS估计 求逆运算 辨识速度 最小二乘法
1 问题提出
在LS估计中,需要计算矩阵(ΦTΦ)的逆,由于矩阵,求逆比较影响辨识速
度。能否在LS中避免(ΦTΦ)的求逆运算?从而提高LS的辨识速度。
(1)不需矩阵求逆的LS算法特点
①不需计算矩阵的逆;
②辨识精度与基本LS相同;
③辨识速度比基本LS有较大提高;
④适合模型阶次n未知的情况下应用;
⑤是一种按模型阶次n递推的算法。
(2) 算法推导
系统的差分方程为:
上式写成矩阵形式有:
式中:
令k分别等于1,2…… n,有n个方程,则有:
式中:
2 任务提出
由{u(k)}及{y(k)}辨识ai、bi及n。
3采用方法
采用模型阶次n的递推方法。即从n=0开始辨识→n=1→n=2→……
由可得其LS估计值为:
下面推导按模型阶次n的递推算法。
(1)模型阶次n=0的辨识
引入中间变量X:
记n=0时的X为X0:
(2)求
假设模型阶次为n-1时的参数辨识结果已知,也就是已知,现欲求模型阶次为n时的辨识结果。
即求:
这里,我们先求Xn。
由Φ可知:
式中:
令
,则:
根据分块矩阵求逆可得:
式中:
同理,令
,则可推得:
式中:
至此,
已求得。
求解步骤:
(3)求
(4)求
4总结
通过与矩阵求逆的LS算法对比可得出:不需矩阵求逆的LS算法优势是不需计算矩阵的逆,简化计算,减少计算量,并且辨识精度与基本LS相同,且辨识速度比基本LS有较大提高和适合模型阶次n未知的情况下应用,是一种按模型阶次n递推的算法。
动态模型参数极大似然辨识及其MTLAB实现
极大似然法辨识方法特点:
(1)无偏估计方法;
(2)适用于ξ(k)相关情况;
(3)当系统信噪比较小时有较好的估计效果;
(4)算法稳定度好;
(5)是一种递推算法;
(6)实际工程中广泛使用。
设动态系统的模型表示为
式中,是均值为0,方差为2,服从正态分布的不相关随机噪声;u(k)和z(k)表示系统的输入输出变量。
现给出一系统模型为
z(k)-1.2z(k-1)+0.6z(k-2)=u(k-1)+0.5(k-2)+e(k)
e(k)=v(k)- v(k-1)+0.2 v(k-2)
其中v(k)为随机信号,输入信号是幅值为1的M系列或随机信号,试用递推的极大似然法求系统辨识的参数。
程序如下:
clear
a(1)=1;b(1)=0;d(1)=0;u(1)= d(1);z(1)=0;z(2)=0;%初始化
for i=2:1200 %产生m序列u(i)
a(i)=xor(c(i-1),d(i-1));
b(i)=a(i-i);
c(i)=b(i-1);
d(i)=c(i-1);
u(i)=d(i);
End
u;
v=randn(1200,1); %产生正态分布随机数
V=0; %计算噪声方差
for i=1:1200
V=V+v(i)*v(i);
end
V1=V/1200;
for k=3:1200 %根据v和u计算z
z(k)=1.2*z(k-1)-0.6*z(k-2)+u (k-1)+0.5*u(k-2)+v(k)-v(k-1)+0.2*v(k-2);
end
o1=0.001*ones(6,1);p0=eye(6,6); %幅初值
zf(1)=0.1; zf(2)=0.1; vf(2)=0.1; vf(1)=0.1; uf(2)=0.1; uf(1)=0.1;
%迭代计算参数值和误差值
for k=3:1200
h=[-z(k-1); -z(k-2); u(k-1); u(k-2); v(k-1); v(k-2);];
hf=h;
K=p0*hf*inv(hf*p0*hf+1);
p=[eye(6,6)-K*hf]*p0;
v(k)= z(k)-h*o1;
o=o1+K*v(k);
p0=p;
o1=o;
a2(k)=o(2);
b1(k)=o(3) ;
b2(k)=o(4) ;
d1(k)=o(5) ;
d2(k)=o(6) ;
e1(k)=abs(a1(k)+1.2);
e2(k)=
文档评论(0)