应用最小二乘一次完成法和递推最小二乘法算法的系统辨识

应用最小二乘一次完成法和递推最小二乘法算法的系统辨识
应用最小二乘一次完成法和递推最小二乘法算法的系统辨识

1最小二乘法的理论基础

1.1最小二乘法

设单输入单输出线性定长系统的差分方程表示为:

其中δ(k)为服从N(0,1)的随机噪声,现分别测出n+N 个输出输入值y(1),y(2),…,y(n+N),u(1),u(2),…,u(n+N),则可写出N 个方程,写成向量-矩阵形式

(4.1.1)

()()()()()()()()

1201121n n y k a y k a y k a y k n b u k b u k b u k n k ξ=-------+

+-+

+-+()()()()()()101122,,n n a y n n y n a n y b y n N n N b ξξθξξ??

??++????????????++?

???===??????????????++??????????

????

()()()()()()()()()

()

()()()()

()(

)()()10111121222112n n y n y n y u n u y n y n y u n u y n N y n N y N u n N u N a n a n b n N b ξξξ+--+????

????+-+-+????

=?????????+-+--+????

??

????

??+??

??????+??+???????

???+??????????

则式(1.1.1)可写为 (4.1.2) 式中:y 为N 维输出向量;ξ为N 为维噪声向量;θ为(2n+1)维参数向量;Φ为N ×(2n+1)测量矩阵。因此,式(4.1.1)是一个含有(2n+1)个未知参数,由N 个方程组成的联立方程组。

11y θφφξ--=-

在给定输出向量y 和测量矩阵Φ的条件下求参数θ的估计,这就是系统辨识问题。 设 表示 θ 的估计值,?表示y 的最优估计,则有 (4.1.3) 式中:

()()()10??1??2??,???n n a

y n a y n y b y n N b θ????

+????????+????==????????+??????

????

设e(k)=y(k)- ?(k), e(k)称为残差,则有e=y- ?=y-Φθ 最小二乘估计要求残差的平方和最小,即按照指数函数

(4.1.4)

求J对 的偏导数并令其等于0可得:

(4.1.5)

由式(4.1.5)可得的 θ 最小二乘估计:

(4.1.6)

J 为极小值的充分条件是:

即矩阵ΦT Φ为正定矩阵,或者说是非奇异的。 1.1.1最小二乘法估计中的输入信号

当矩阵ΦT Φ的逆阵存在是,式(1.1.6)才有解。一般地,如果u(k)是随机序列或伪随机二位式序列,则矩阵ΦT Φ是非奇异的,即(ΦT Φ)-1存在,式(1.1.6)有解。 现在从ΦT Φ必须正定出发,讨论对u(k)的要求。

y φθξ=+?θ??y

θ=Φ()()

??T

T J e e y y θ

θ==-Φ-Φ?θ()

?20?T J y θ

θ

?=-Φ-Φ=??T T y θ

ΦΦ=Φ()1

?T T y θ

-=ΦΦΦ220?T

J θ

?=ΦΦ>?1

n N yy

yu T

+-ΦΦ??

当N 足够大时有

(4.1.8)

如果矩阵ΦT Φ正定,则Ru 是是对称矩阵,并且各阶主子式的行列式为正。当N 足够大时,矩阵Ru 才是是对称的。

由此引出矩阵ΦT Φ正定的必要条件是u(k)为持续激励信号。如果序列{u(k)}的n+1阶方阵Ru 是正定的,则称{u(k)}的n+1阶持续激励信号。 下列随机信号都能满足Ru 正定的要求 1. 有色随机信号 2. 伪随机信号 3.

白噪声序列

1.1.2最小二乘估计的概率性质 最小二乘估计的概率性质 1) 无偏性

由于输出值y 是随机的,所以θ是随机的,但注意θ不是随机值。

如果{}

{}?E E θ

θθ==,则称?θ是θ无偏估计 2)一致性

估计误差θ的方差矩阵为

(4.1.9)

上式表明当N →∞时,θ以概率1趋近于θ。

当ξ(k )为不相关随机序列时,最小二乘估计具有无偏性和一致性 3)有效性

如果式(1.1.2)中的ξ的均值为0且服从正态分布的白噪声向量,则最小二乘参数估计值 为有效值,参数估计偏差的方差达到Cramer-Rao 不等式的下界,即

(4.1.10)

式中M 为Fisher 矩阵,且

(4.1.11)

4)渐近正态性

如果式(4.1.2)中的ξ是均值为0且服从正态分布的白噪声向量,则最小二乘参数估计值?θ

服从正态分布,即

..1

1y uy W P T yu u R R R R R N ??

ΦΦ???→=????

121?T Var E N

N σθ-??????=ΦΦ??

?????

?

?2

1?lim lim 0,..1N N Var R w p N

σθ

-→∞→∞==?θ(){}

121

?T Var E M θσ--=ΦΦ=()

()

?

?ln /ln /??T

p y p y M E θθ

θθ

?????????????

?=?

??

????????

?

?

???

1

2?T -

1.2递推最小二乘法

为了实现实时控制,必须采用递推算法,这种辨识方法主要用于在线辨识 设已获得的观测数据长度为N ,则

估计方差矩阵为 式中 于是

如果再获得1组新的观测值,则又增加1个方程

得新的参数估计值 式中

应用矩阵求逆引理,可得1N P +和N P 的递推关系式

矩阵求逆引理 设A 为n ×n 矩阵,B 和C 为n ×m 矩阵,并且A ,A +BCT 和I+CTA-1B 都是非奇异矩阵,则有矩阵恒等式

(4.2.2)

得到递推关系式

由于1T

N N N P ψψ+是标量,因而上式可以写成

(4.2.3)

最后,得最小二乘法辨识公式

(4.2.4)

有2种给出初值的办法

(1)设N0(N0>n )为N 的初始值,可算出

(4.2.5)

N N N

Y θξ=Φ+()1

?N

T T N N N N

Y θ-=ΦΦΦ()1

22

T N N

N Var P θσσ-=ΦΦ=()

1

T N N N P -=ΦΦ?N

T N N N P Y

θ=Φ111

T N N N y ψθξ+++=+()1111

?T N N N N N N P Y y θψ++++=Φ+()1

1111111T

N N T

T T N N N N N N P P ψψψψ---+++++??ΦΦ?????

?==+????

???

???????

()()1

1

1111

T T T A BC A A B I C A B C A ------+=-+()1

1111T T

N N N N N N N N N

P P P I P P ψψψψ-++++=-+()1

11111T T N N N N N N N N N

P P P P P ψψψψ-++++=-+()1

00

00000

?,T

T N N N N N N N P P Y θ-=ΦΦ=Φ()

1111???T N N N N N N

K y θθψθ++++=+-()

1

1111T N N N N N N K P P ψψψ-+++=+()1

111111T T N N N N N N N N N

P P P P P ψψψψ-+++++=-

+(4.2.1)

(2)假定200

?0,,P c I θ==C 是充分大的常数,I 为(2n+1) ×(2n+1)单位矩阵,则经过若干次递推之后能得到较好的参数估计。[1][2][4]

2两种算法的实现方案

2.1最小二乘法一次完成算法实现

如果把式(1.1.6)中的?θ

取好足够的输入—输出数据以后一次计算出来,那么这种算法就式最小二乘法的一次完成法。

2.1.1最小二乘一次完成算法程序框图

2.1.2一次完成法程序 具体程序参见附录4

2.1.3一次完成算法程序运行结果 ans =

1.5000 0.7000 1.0000 0.5000 a1 = 1.5000 a2 = 0.7000 b1 =

1.0000

2.1.4辨识数据比较

2.1.5程序运行曲线

-10

1输入u (k )

0102030405060

-505

输出z (k

)

0102030405060

-5

05离散输出z (k )

2.2递推最小二乘法的实现

2.2.1递推算法实现步骤

1)输入M 序列的产生程序,可以参见3.2当中M 序列产生方法(具体程序见附录。) 2)初始化。

一种简单的方法是选择?0n

θ=和2n P C I =,其中C 为尽量大的数,然后以它们为起始值进行计算(参照式2.2.3)。可以证明,当C →∞时,按照递推公式算得的将与上面用批处理算法求得的结果相同,当N 很大时,C 的选择便无关紧要了。 3)递推算法的停机标准:

()()

()

1??1max

?i i i

i

k k k θθεθ-?--<,ε是适当小的数。

4)最小二乘估计的递推算法系统参数的步骤如下:

(1)产生系统输入信号M 序列,输入系统阶次,计算输入和输出数据u (i ),y (i ),i=1,2,…,n;

(2)置N=n ,10?0,10N N

P I θ==(I …单位矩阵); (3)形成行向量[]1()(1)()

(1N y n y N n u N u N n ψ+=--+-+-

(4)计算()()()1

11111;T

T

N N N K P N N P N ψ

ψψ-+??=++++??

(5)输入新测量数据y ( N+1 )和u (N+1);

(6)计算()11???(1)1;N N N N

K y N N θθψθ++??=++-+?

?

(7)计算[]11

1;N N N N P I K P ψ+++=- (8)输出1

?N θ+和1N P +; (9)N ←N+1,转(3); 2.2.2程序编制思路:

(1)产生M 序列,通过计算,依据算出输出值,设定递推初始值,采用4.2.4方法2设定辨识参数初值,0

?θ为一个很小的量,P0为一个很大值的4×4矩阵,设定误差量,作为停机标准。 (2)依据设定,计算[]

1

(2)(1)(1)(2)T

y y u u ψ=--,1011T P ψ

ψ??+可以算出为一标量,依

据式4.2.5算出K1,K1为4×1矩阵。

(3)依据式4.2.5计算出1?θ,和1

P ,加入估计参数矩阵; (4)计算误差大小,求出相对变化率,加入误差矩阵第一列。

(5)再以1?θ和1

P 为已知参数,重复(2)-(3)计算出参数2?θ,并加入估计参数矩阵。 (6)如此循环,计算出参数估计?n

θ。 (7)判断误差变化率满足要求否,如果满足,则退出循坏,不再进行计算。 (8)分离估计参数,绘出图形。 2.2.3递推最小二乘法程序框图

如下所示:

具体程序参见附录

2.2.4程序运行曲线

-0.5

-0.4-0.3-0.2-0.100.10.20.30.4

0.5

图6M 序列信号的波形

10

20

30

40

50

60

70

80

90

100

-0.4

-0.200.20.40.60.811.21.41.6Parameter Identification with Recursive Least Squares Method

0102030405060708090100

-400

-200020040060080010001200

1400Identification Precision

2.2.5测试结果 见附录6

2.2.6地退数据表

差的分布趋势。(误差=

-新估计值旧估计值旧估计值

)[5]

6结论

最小二乘法是应用广泛的辨识方法之一。可用于动态系统,也可用于静态系统;可用于线性系统,也可用于非线性系统。通过本课程设计,了解和掌握了基于最小二乘法原理的一次性完成算法和递推算法的实现方

法,完成了Matlab下的仿真计算,能够精确的估计辨识参数。最小二乘一次性完成算法是离线算法,需要采集大量数据,一次性完成计算,因此,数据计算量大,当数据量很大时,数据输入不方便,但在本课程设计过程当中,考虑到了此问题,运用相应的办法,解决了矩阵输入的问题。递推算法适合于在线算法,利用原有参数估计进行下一步估计,可以做到运算量小,实时进行估计,根据仿真结果图示,可以看出计算一定量的数据后,参数估计趋于稳定,只要满足误差要求,不必计算完所有数据。两种算法不足之处,在考虑噪声干扰时,看成了白噪声,具有不相关性。如果噪声引起的方程误差是相关的,而不是白噪声,可以通过下面两种方法进行估计①先估计未受噪音污染的系统输出,然后再估计模型的参数,就是辅助变量法;②使用一种滤波器,将相关的方程的误差转换为白噪声再进行估计,就是增广矩阵法。

7参考文献

[1]李言俊张科,系统辨识理论及应用,国防工业出版社,2006.7 .

[2]刘宏才,系统辨识与参数估计,北京,冶金工业出版社,1999.

[3]黄道平 ,MATLAB与控制系统的数字仿真及CAD化学工业出版社, 2004.10

[4]侯媛彬汪梅王立奇系统辨识及其MATLAB仿真科学出版社 2004.2

[5]蔡季冰,系统辨识,北京,北京理工大学出版社,1991.

3附录

附录1 M序列产生程序

function [Out]=Mserise(length,plength,a)

%plength=4;length=15; %M序列周期=2^plength-1 ,%置M序列总长度和级数,a是幅度

for n=1:plength %移位寄存器输入X(i)初T态(1111)

X(n)=1;

end

for i=1:length

for j=plength:-1:2

X(j)=X(j-1);

end

X(1)=xor(X(plength-1),X(plength)); %异或运算

if X(plength)==0

Out(i)=-1;

else

Out(i)=X(plength);

end

end

%save ('mdata','Out');

%绘图

i1=i

k=1:1:length;

plot(k,Out,k,Out,'rx')

xlabel('k')

ylabel('M序列')

title('移位寄存器产生的M序列')

end

附录4程序运行结果如下图所示

图7移位寄存器产生的M序列

附录2 最小二乘一次完成法

%Oncefinish

%model is y(k)+1.5y(k-1)+0.7(k-2)=u(k-1)+0.5(k-2)+v(k);

L=50;A=1;

n=2; %output number;

u=mseries(A,L);

%u=Mserise(L,M,A); %系统辨识的输入信号为一个周期的M序列,信号长度L;幅度A;z=zeros(1,16); %定义输出观测值的长度1*16

dd=zeros(1,4);

gg=zeros(14,1);

for k=n+1:L+1

z(k)=-1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2); %用理想输出值作为观测值

end

subplot(3,1,1) %画三行一列图形窗口中的第一个图形

stem(u) %画出输入信号u的经线图形

ylabel('输入u(k)')

subplot(3,1,2)

i=1:1:L+1;

plot(i,z)

ylabel('输出z(k)')

subplot(3,1,3) %画三行一列图形窗口中的第三个图形

stem(z),grid on %画出输出观测值z的经线图形,并显示坐标网格

ylabel('离散输出z(k)')

%u,z; %显示输入信号和输出观测信号

%L=L-1%数据长度

for i=n+1:L+1

h=[-z(i-1) -z(i-2) u(i-1) u(i-2)];

dd(i-2,:)=h; %dd=(L-1)*2n

end

%HL=[-z(2) -z(1) 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)] %给样本矩阵HL赋值

for j=n+1:L+1

zz=[z(j)];

gg(j-2,:)=zz;

end

%c=inv(dd'*dd)*dd'*gg;

%ZL=[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)]% 给样本矩阵zL赋值

%calculating parameters%计算参数

c1=dd'*dd; c2=inv(c1); c3=dd'*gg; c=c2*c3;c'

%c1=dd'*dd; c2=inv(c1); c3=dd'*ZL; c=c2*c3 %计算并显示

%DISPLAY PARAMETERS

a1=c(1), a2=c(2), b1=c(3), b2=c(4); %从中分离出并显示a1 、a2、b1、b2

%End

附录3递推最小二乘算法程序

clear;clc;%清理工作间变量

L=100;% M序列的周期

y1=1;y2=1;y3=1;y4=0;%四个移位积存器的输出初始值

for i=1:L;%开始循环,长度为L

x1=xor(y3,y4);%第一个移位积存器的输入是第3个与第4个移位积存器的输出的“或”

x2=y1;%第二个移位积存器的输入是第3个移位积存器的输出

x3=y2;%第三个移位积存器的输入是第2个移位积存器的输出

x4=y3;%第四个移位积存器的输入是第3个移位积存器的输出

y(i)=y4;%取出第四个移位积存器幅值为"0"和"1"的输出信号,

if y(i)>0.5,u(i)=-0.5;%如果M序列的值为"1"时,辨识的输入信号取“-0.03”

else u(i)=0.5;%当M序列的值为"0"时,辨识的输入信号取“0.03”

end%小循环结束

y1=x1;y2=x2;y3=x3;y4=x4;%为下一次的输入信号做准备

end%大循环结束,产生输入信号u

figure(1);%第1个图形

stem(u),grid on%以径的形式显示出输入信号并给图形加上网格

z(2)=0;z(1)=0;%取z的前两个初始值为零

for k=3:L;%循环变量从3到25

z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2);%给出理想的辨识输出采样信号

end

%RLS递推最小二乘辨识

c0=[0.001 0.001 0.001 0.001]';%直接给出被辨识参数的初始值,即一个充分小的实向量

p0=10^6*eye(4,4);%直接给出初始状态P0,即一个充分大的实数单位矩阵

E=0.000000005;%相对误差E=0.000000005

c=[c0,zeros(4,99)];%被辨识参数矩阵的初始值及大小

e=zeros(4,100);%相对误差的初始值及大小

for k=3:L; %开始求K

h1=[-z(k-1),-z(k-2),u(k-1),u(k-2)]'; x=h1'*p0*h1+1; x1=inv(x); %开始求K(k)

k1=p0*h1*x1;%求出K的值

d1=z(k)-h1'*c0; c1=c0+k1*d1;%求被辨识参数c

e1=c1-c0;%求参数当前值与上一次的值的差值

e2=e1./c0;%求参数的相对变化

e(:,k)=e2; %把当前相对变化的列向量加入误差矩阵的最后一列

c0=c1;%新获得的参数作为下一次递推的旧参数

c(:,k)=c1;%把辨识参数c 列向量加入辨识参数矩阵的最后一列

p1=p0-k1*k1'*[h1'*p0*h1+1];%求出 p(k)的值

p0=p1;%给下次用

if e2<=E break;%若参数收敛满足要求,终止计算

end%小循环结束

end%大循环结束

c%显示被辨识参数

e%显示辨识结果的收敛情况

%分离参数

a1=c(1,:); a2=c(2,:); b1=c(3,:); b2=c(4,:); ea1=e(1,:); ea2=e(2,:); eb1=e(3,:); eb2=e(4,:); figure(2);%第2个图形

i=1:L;%横坐标从1到15

plot(i,a1,'r',i,a2,':',i,b1,'g',i,b2,':') %画出a1,a2,b1,b2的各次辨识结果

title('Parameter Identification with Recursive Least Squares Method')%图形标题

figure(3); %第3个图形

i=1:L; %横坐标从1到15

plot(i,ea1,'r',i,ea2,'g',i,eb1,'b',i,eb2,'r:') %画出a1,a2,b1,b2的各次辨识结果的收敛情况title('Identification Precision') %图形标题

递推最小二乘法推导(RLS)——全网最简单易懂的推导过程

递推最小二乘法推导(RLS)——全网最简单易懂的推导过程 作者:阿Q在江湖 先从一般最小二乘法开始说起 已知x和y的一系列数据,求解参数theta的估计。用矩阵的形式来表达更方便一些: 其中k代表有k组观测到的数据, 表示第i组数据的输入观测量,yi表示第i组数据的输出观测量。令: ,则最小二乘的解很简单, 等价于即参数解为:如果数据是在线的不断的过来,不停的采用最小二乘的解法来解是相当消耗资源与内存的,所

以要有一种递推的形式来保证对的在线更新。 进一步推导出递推最小二乘法(RLS) 我们的目的是从一般最小二乘法的解 推导出 的递推形式。一定要理解这里的下标k代表的意思,是说在有k组数据情况下的预测,所以k比k-1多了一组数据,所以可以用这多来的一组数据来对原本的估计进行修正,这是一个很直观的理解。下面是推导过程: 先看一般最小二乘法的解 下面分别对 和 这两部分进行推导变换,令

得到下面公式(1) 下面来变换得到公式(2) 下面再来,根据一般最小二乘法的解,我们知道下式成立,得到公式(3)(注:后续公式推导用到) 好了,有了上面最主要的三步推导,下面就简单了,将上面推导的结果依次代入公式即可:

至此,终于变成 的形式了。 通过以上推导,我们来总结一下上面RLS方程: 注:以上公式7中,左边其实是根据公式1,右边I为单位矩阵

公式(5)和(7)中,有些文献资料是用右边的方程描述,实际上是等效的,只需稍微变换即可。例如(5)式右边表达式是将公式(1)代入计算的。为简化描述,我们下面还是只讨论左边表达式为例。 上面第7个公式要计算矩阵的逆,求逆过程还是比较复杂,需要用矩阵引逆定理进一步简化。 矩阵引逆定理: 最终RLS的方程解为:

递推最小二乘法算法

题目: (递推最小二乘法) 考虑如下系统: )()4(5.0)3()2(7.0)1(5.1)(k k u k u k y k y k y ξ+-+-=-+-- 式中,)(k ξ为方差为0.1的白噪声。 取初值I P 610)0(=、00=∧ )(θ。选择方差为1的白噪声作为输入信号)(k u ,采用PLS 法进行参数估计。 Matlab 代码如下: clear all close all L=400; %仿真长度 uk=zeros(4,1); %输入初值:uk(i)表示u(k-i) yk=zeros(2,1); %输出初值 u=randn(L,1); %输入采用白噪声序列 xi=sqrt(0.1)*randn(L,1); %方差为0.1的白噪声序列 theta=[-1.5;0.7;1.0;0.5]; %对象参数真值 thetae_1=zeros(4,1); %()θ初值 P=10^6*eye(4); %题目要求的初值 for k=1:L phi=[-yk;uk(3:4)]; %400×4矩阵phi 第k 行对应的y(k-1),y(k-2),u(k-3), u(k-4) y(k)=phi'*theta+xi(k); %采集输出数据 %递推最小二乘法的递推公式 K=P*phi/(1+phi'*P*phi); thetae(:,k)=thetae_1+K*(y(k)-phi'*thetae_1); P=(eye(4)-K*phi')*P; %更新数据 thetae_1=thetae(:,k); for i=4:-1:2 uk(i)=uk(i-1); end uk(1)=u(k); for i=2:-1:2 yk(i)=yk(i-1);

几种最小二乘法递推算法的小结

一、 递推最小二乘法 递推最小二乘法的一般步骤: 1. 根据输入输出序列列出最小二乘法估计的观测矩阵?: ] )(u ... )1( )( ... )1([)(T b q n k k u n k y k y k ------=? 没有给出输出序列的还要先算出输出序列。 本例中, 2)]-u(k 1),-u(k 2),-1),-y(k -[-y(k )(T =k ?。 2. 给辨识参数θ和协方差阵P 赋初值。一般取0θ=0或者极小的数,取σσ,20I P =特别大,本例中取σ=100。 3. 按照下式计算增益矩阵G : ) ()1()(1)()1()(k k P k k k P k G T ???-+-= 4. 按照下式计算要辨识的参数θ: )]1(?)()()[()1(?)(?--+-=k k k y k G k k T θ?θθ 5. 按照下式计算新的协方差阵P : )1()()()1()(---=k P k k G k P k P T ? 6. 计算辨识参数的相对变化量,看是否满足停机准则。如满足,则不再递推;如不满足, 则从第三步开始进行下一次地推,直至满足要求为止。 停机准则:ε???<--) (?)1(?)(?max k k k i i i i 本例中由于递推次数只有三十次,故不需要停机准则。 7. 分离参数:将a 1….a na b 1….b nb 从辨识参数θ中分离出来。 8. 画出被辨识参数θ的各次递推估计值图形。 为了说明噪声对递推最小二乘法结果的影响,程序5-7-2在计算模拟观测值时不加噪 声, 辨识结果为a1 =1.6417,a2 = 0.7148,b1 = 0.3900,b2 =0.3499,与真实值a1 =1.642, a2 = 0.715, b1 = 0.3900,b2 =0.35相差无几。 程序5-7-2-1在计算模拟观测值时加入了均值为0,方差为0.1的白噪声序列,由于噪 声的影响,此时的结果为变值,但变化范围较小,现任取一组结果作为辨识结果。辨识结果为a1 =1.5371, a2 = 0.6874, b1 = 0.3756,b2 =0.3378。 程序5-7-2-2在计算模拟观测值时加入了有色噪声,有色噪声为 E(k)+1.642E(k-1)+0.715E(k-2),E(k)是均值为0,方差为0.1的白噪声序列,由于有色噪声的影响,此时的辨识结果变动范围远比白噪声时大,任取一组结果作为辨识结果。辨识结果为a1 =1.6676, a2 = 0.7479, b1 = 0.4254,b2 =0.3965。 可以看出,基本的最小二乘法不适用于有色噪声的场合。

递推阻尼最小二乘法辨识算法公式的详细推导与说明

控制理论与控制工程 学位课程《系统辨识》考试报告 递推阻尼最小二乘法公式详细 推导 专业:控制理论与控制工程 班级:2011双控(研) 学生姓名:江南 学号:20110201016 任课教师:蔡启仲老师 2012年06月29 日

摘要 在参数辨识中,递推最小二乘法是用得最多的一种算法。但是,最小二乘法存在一些缺点,如随着协方差矩阵的减小,易产生参数爆发现象;参数向量和协方差矩阵的处置选择不当会使得辨识过程在参数收敛之前结束;在存在随机噪声的情况下,参数易产生漂移,出现不稳定等。为了防止参数爆发现象,Levenberg 提出在参数优化算法中增加一个阻尼项,以增加算法的稳定性。本文在一般的最小二乘法中增加了阻尼因子,构成了阻尼最小二乘法。又根据实时控制的要求,详细推到了递推阻尼最小二乘公式,实现在线辨识。 关键字:系统辨识,最小二乘法,递推算法 正文 1.题目的基本要求 已知单入单出系统的差分方程以及噪声,在应用最小二乘法进行辨识的时候,在性能指标中加入阻尼因子,详细推导阻尼最小二乘法的递推公式。 2.输入辨识信号和系统噪声的产生方法和理论依据 2.1系统辩识信号输入选择准则 (1)输入信号的功率或副度不宜过大,以免使系统工作在非线性区,但也不应过小,以致信噪比太小,直接影响辩识精度; (2)输入信号对系统的“净扰动”要小,即应使正负向扰动机会几乎均等; (3)工程上要便于实现,成本低。 2.2白噪声及其产生方法 (1) 白噪声过程 (2)白噪声是一种均值为0、谱密度为非0常数的平稳随机过程。 (3)白噪声过程定义:如果随机过程 () t ω的均值为0,自相关函数为 ()()2 R t t ωσδ= (2.2.1) 式中()t δ 为狄拉克(Dirac) 分布函数,即 (){ (),00,0 1t t t dt δδ∞ ∞=≠∞ ==? -且t (2.2.2) 则称该随机过程为白燥声过程。 2.3白噪声序列 (1) 定义 如果随机序列{() }w t 均值为0,并且是两两不相关的,对应的自相关函数为 ()2 ,0,1,2w l R l l σδ==±± 式中{1,0 0,0 l l l δ=≠=则称这种随机序列{()}w t 为白噪声序列。 2.4白噪声序列的产生方法 (1) (0,1)均匀分布随机数的产生 在计算机上产生(0,1)均匀分布随机数的方法很多,其中最简单、最方便的是数学方法。产生伪随机数的数学方法很多,其中最常用的是乘同余法和混合同余法。 ①乘同余法。

递推最小二乘法的应用

1递推最小二乘法在电厂模型辨识中的应用 电厂中大多数热工对象可以用一阶或二阶有迟延和非迟延的模型来表示,对这些模型中参数的辨识,递推最小二乘法是一种较好的方法。本文以火电厂部分典型一阶模型为例子,借助于某电厂现场数据,分别对以下几种环节进行辨识。 1.1 一阶惯性环节 火电厂中,来自锅炉的过热蒸汽,经高压调节汽门和导汽管道进入高压缸膨胀做功,高压缸的排汽回到锅炉再热器被重新加热,加热后的蒸汽经中压调节汽门进入中低压缸进一步膨胀做功,做功后的乏汽最终排入凝汽器变成凝结水,一般中压调节汽门的开度是高压调节汽门的3倍,即在机组负荷大于额定的30%或者滑压运行时,汽轮机的中压调门是完全开启的。因此,在简化模型中,汽机侧调速器一级压力与机组有功功率可以简化为一阶惯性环节如下: 1 11()1 K G s T s = + 将以上环节离散化,并写成差分方程的形式 11111111 ()[(1)](1)(1)()/,/y k a y k b u k v k a T T T b K T T =--+-+-=-= 其中 u 为调速器一级压力,y 为机组有功功率,()v k 为零均值方差为1的高斯白噪 声。 该论文依据递推最小二乘法原理,借助 MATLAB 工具编写程序,设定合适 的初始值和加权因子进行参数辨识,辨识结果为11?? 2.7547,0.9193a b ==-,由11??,a b 可得到134.12K =,112.36s T =进而得到系统的传递函数为: 134.12 ()12.361 G s s = + 下面运用递推最小二乘法对所得结果进行仿真:假设134.12K =,112.36s T =已知, 采样时间为1s T =,则计算可得

应用最小二乘一次完成法和递推最小二乘法算法的系统辨识讲解

1最小二乘法的理论基础 1.1最小二乘法 设单输入单输出线性定长系统的差分方程表示为: 其中δ(k)为服从N(0,1)的随机噪声,现分别测出n+N 个输出输入值y(1),y(2),…,y(n+N),u(1),u(2),…,u(n+N),则可写出N 个方程,写成向量-矩阵形式 (4.1.1) ()()()()()()()() 1201121n n y k a y k a y k a y k n b u k b u k b u k n k ξ=-------+ +-+ +-+()()()()()()101122,,n n a y n n y n a n y b y n N n N b ξξθξξ?? ??++????????????++? ???===??????????????++?????????? ???? ()()()()()()()()() () ()()()() ()( )()()10111121222112n n y n y n y u n u y n y n y u n u y n N y n N y N u n N u N a n a n b n N b ξξξ+--+???? ????+-+-+???? =?????????+-+--+???? ?? ???? ??+?? ??????+??+??????? ???+??????????

则式(1.1.1)可写为 (4.1.2) 式中:y 为N 维输出向量;ξ为N 为维噪声向量;θ为(2n+1)维参数向量;Φ为N ×(2n+1)测量矩阵。因此,式(4.1.1)是一个含有(2n+1)个未知参数,由N 个方程组成的联立方程组。 11y θφφξ--=- 在给定输出向量y 和测量矩阵Φ的条件下求参数θ的估计,这就是系统辨识问题。 设 表示 θ 的估计值,?表示y 的最优估计,则有 (4.1.3) 式中: ()()()10??1??2??,???n n a y n a y n y b y n N b θ???? +????????+????==????????+?????? ???? 设e(k)=y(k)- ?(k), e(k)称为残差,则有e=y- ?=y-Φθ 最小二乘估计要求残差的平方和最小,即按照指数函数 (4.1.4) 求J对 的偏导数并令其等于0可得: (4.1.5) 由式(4.1.5)可得的 θ 最小二乘估计: (4.1.6) J 为极小值的充分条件是: 即矩阵ΦT Φ为正定矩阵,或者说是非奇异的。 1.1.1最小二乘法估计中的输入信号 当矩阵ΦT Φ的逆阵存在是,式(1.1.6)才有解。一般地,如果u(k)是随机序列或伪随机二位式序列,则矩阵ΦT Φ是非奇异的,即(ΦT Φ)-1存在,式(1.1.6)有解。 现在从ΦT Φ必须正定出发,讨论对u(k)的要求。 y φθξ=+?θ??y θ=Φ()() ??T T J e e y y θ θ==-Φ-Φ?θ() ?20?T J y θ θ ?=-Φ-Φ=??T T y θ ΦΦ=Φ()1 ?T T y θ -=ΦΦΦ220?T J θ ?=ΦΦ>?1 n N yy yu T +-ΦΦ??

广义递推最小二乘辨识

广义递推最小二乘辨识 一、实验目的 1 通过实验掌握广义最小二乘辨识算法; 2 运用MATLAB编程,掌握算法实现方法。 二、实验原理 广义最小二乘法的基本思想是基于对数据先进行一次滤波预处理,然后利用普通最小二乘法对滤波后的数据进行辨识。如果滤波模型选择得合适,对数据进行了较好的白色化处理,那么直接利用普通最小二乘法就能获得无偏一致估计。 广义最小二乘法所用的滤波模型实际上就是一种动态模型,在整个迭代过程中不断靠偏差信息来调整这个滤波模型,使它逐渐逼近于一个较好的滤波模型,以便对数据进行较好的白色化处理,使模型参数估计称为无偏一致估计。理论上说,广义最小二乘法所用的动态模型经过几次迭代调整后,便可对数据进行较好的白化处理,但是,当过程的输出噪信比比较大或模型参数比较多时,这种数据白色化处理的可靠性就会下降。此时,准则函数可能出现多个局部收敛点,因而辨识结果可能使准则函数收敛于局部极小点上而不是全局极小点上。这样,最终的辨识结果往往也会是有偏的。 其收敛速度比较慢,需要经过多次迭代计算,才能得到较准确的参数估计值。一般情况下,经过多次迭代后,估计值便会收敛到稳态值。但在某些情况下(如噪声比较低时)存在局部极小值,估计值不一定收敛到准则函数的全局极小值上。为了防止参数估计值收敛到局部极小值,最好选定初值接近最优解,一般可以用最小二乘法的批处理估计值作为初值。如果系统是时变的,或为了克服数据饱和现象,可以在两次RLS算法中分别引进遗忘因子。 三、实验内容 <1> 数据获取:实验数据按照表9-1,为二阶线性离散系统的输入输出数据 <2> 数据处理:为了提高辨识精度,实验者必须对原始数据进行剔除坏数据、零均值化、工频滤波等处理。实验进行了白化滤波处理。 <3> 辨识算法:利用处理过的数据(取适当的数据长度),选择某种辨识方法(如RLS递推最小二乘法、RELS、RIV或RML等参数估计算法及F-检验或AIC定

用matlab实现最小二乘递推算法辨识系统参数

自动化专业综合设计报告 设计题目:最小二乘递推算法辨识系统参数所在实验室:自动化系统仿真实验室 指导教师: 学生姓名 班级计082-2 班 学号 撰写时间:2012-3-1 成绩评定:

一.设计目的 1、学会用Matlab实现最小二乘法辨识系统参数。 2、进一步熟悉Matlab的界面及基本操作; 3、了解并掌握Matlab中一些函数的作用与使用; 二.设计要求 最小二乘递推算法辨识系统参数,利用matlab编程实现,设初始参数为零。z(k)-1.5*z(k-1)+0.7*z(k-2)=1*u(k-1)+0.5*u(k-2)+v(k); 选择如下形式的辨识模型: z(k)+a1*z(k-1)+a2*z(k-2)=b1*u(k-1)+b2*u(k-2)+v(k); 三.实验程序 m= 3; N=100; uk=rand(1,N); for i=1:N uk(i)=uk(i)*(-1)^(i-1); end yk=zeros(1,N); for k=3:N yk(k)=1.5*yk(k-1)-0.7*yk(k-2)+uk(k-1)+0.5*uk(k-2); end %j=100;kn=0; %y=yk(m:j)'; %psi=[yk(m-1:j-1);yk(m-2:j-2);uk(m-1:j-1);uk(m-2:j-2)]'; %pn=inv(psi'*psi); %theta=(inv(psi'*psi)*psi'*y); theta=[0;0;0;0]; pn=10^6*eye(4); for t=3:N ps=([yk(t-1);yk(t-2);uk(t-1);uk(t-2)]); pn=pn-pn*ps*ps'*pn*(inv(1+ps'*pn*ps)); theta=theta+pn*ps*(yk(t)-ps'*theta); thet=theta'; a1=thet(1); a2=thet(2); b1=thet(3); b2=thet(4); a1t(t)=a1; a2t(t)=a2;b1t(t)=b1;b2t(t)=b2; end t=1:N; plot(t,a1t(t),t,a2t(t),t,b1t(t),t,b2t(t));

递推最小二乘法

线性方程组的最优求解方法 一.递推最小二乘法 设线性方程组 b Ax = (1) 则有 k b k =x :A ),(, (n k Λ,2,1=) (2) 其中,[]kn k k a a a k ,,,:),(21Λ=A ,[]T n x x x ,,,21Λ=x 。 设 x :A ),()(k k f = (3) 下面采用基于递推最小二乘法(RLS)的神经网络算法来训练权值向量x ,以获得线性方程组(1)的解x 。由式(3)可知,若以)(k f 为神经网络输出,以k b 为神经网络训练样本,以x 为神经网络权值向量,[]kn k k a a a k ,,,:),(21Λ=A 为神经网络输入向量,则解线性方程组的神经网络模型如同1所示。 图1 神经网络模型 采用RLS 算法训练神经网络权值向量x ,其算法如下: (1)神经网络输出: x :A ),()(k k f = (4) (2)误差函数:

)()(k f b k e k -= (5) (3)性能指标: ∑==n k k e J 1 2)(21 (6) (4)使min =J 的权值向量x ,即为所求的神经网络权值向量x ,这是一个多变量线性优化问题,为此,由 0=??x J 可得最小二乘递推法(RLS ): ]),([1k k k k k k b x :A Q x x -+=+ (7) ),(),(1),(:A P :A :A P Q k k k T k T k k += (8) k k k k P :A Q I P )],([1-=+ (9) ()n k ,,2,1Λ= 随机产生初始权值向量)1,(0 n rand =x ,设n n ?∈=R I P α0(α是足够大的正数(一般取10610~10=α),n n ?∈R I 是单位矩阵),通过对样本数据训练,即可获得神经网络权值 向量x ,此即为线性方程组(1)的解。 二.具有遗忘因子的递推最小二乘估计公式为: ]),([1k k k k k k b x :A Q x x -+=+ (10) ),(),(),(:A P :A :A P Q k k k T k T k k +=λ (11) k k k k P :A Q I P )],([11-= +λ (12) 式中,1:)],(:),([)(-=k A k A k T W P ,W 为加权对角阵:

(完整word版)多种最小二乘算法分析+算法特点总结

第一部分:程序设计思路、辨识结果分析和算法特点总结 (2) 一:RLS遗忘因子法 (2) RLS遗忘因子法仿真思路和辨识结果 (2) 遗忘因子法的特点: (3) 二:RFF遗忘因子递推算法 (4) 仿真思路和辨识结果 (4) 遗忘因子递推算法的特点: (5) 三:RFM限定记忆法 (5) 仿真思路和辨识结果 (5) RFM限定记忆法的特点: (7) 四:RCLS偏差补偿最小二乘法 (7) 仿真思路和辨识结果 (7) RCLS偏差补偿最小二乘递推算法的特点: (9) 五:增广最小二乘法 (9) 仿真思路和辨识结果 (9) RELS增广最小二乘递推算法的特点: (11) 六:RGLS广义最小二乘法 (12) 仿真思路和辨识结果 (12) RGLS广义最小二乘法的特点: (14) 七:RIV辅助变量法 (14) 仿真思路和辨识结果 (14) RIV辅助变量法的特点: (16) 八:Cor-ls相关最小二乘法(二步法) (17) 仿真思路和辨识结果 (17) Cor-ls相关最小二乘法(二步法)特点: (18) 九:MLS多级最小二乘法 (19) 仿真思路和辨识结果 (19) MLS多级最小二乘法的特点: (22) 十:yule_walker辨识算法 (23) 仿真思路和辨识结果 (23) yule_walker辨识算法的特点: (24) 第二部分:matlab程序 (24) 一:RLS遗忘因子算法程序 (24) 二:RFF遗忘因子递推算法 (26) 三:RFM限定记忆法 (28) 四:RCLS偏差补偿最小二乘递推算法 (31) 五:RELS增广最小二乘的递推算法 (33) 六;RGLS 广义最小二乘的递推算法 (36) 七:Tally辅助变量最小二乘的递推算法 (39) 八:Cor-ls相关最小二乘法(二步法) (42) 九:MLS多级最小二乘法 (45) 十yule_walker辨识算法 (49)

递推最小二乘法的应用

1 递推最小二乘法在电厂模型辨识中的应用 电厂中大多数热工对象可以用一阶或二阶有迟延和非迟延的模型来表示,对这些模型中参数的辨识,递推最小二乘法是一种较好的方法。本文以火电厂部分典型一阶模型为例子,借助于某电厂现场数据,分别对以下几种环节进行辨识。 1.1 一阶惯性环节 火电厂中,来自锅炉的过热蒸汽,经高压调节汽门和导汽管道进入高压缸膨胀做功,高压缸的排汽回到锅炉再热器被重新加热,加热后的蒸汽经中压调节汽门进入中低压缸进一步膨胀做功,做功后的乏汽最终排入凝汽器变成凝结水,一般中压调节汽门的开度是高压调节汽门的3倍,即在机组负荷大于额定的30%或者滑压运行时,汽轮机的中压调门是完全开启的。因此,在简化模型中,汽机侧调速器一级压力与机组有功功率可以简化为一阶惯性环节如下: 1 11()1 K G s T s = + 将以上环节离散化,并写成差分方程的形式 11111111 ()[(1)](1)(1)()/,/y k a y k b u k v k a T T T b K T T =--+-+-=-= 其中 u 为调速器一级压力,y 为机组有功功率,()v k 为零均值方差为1的高斯白噪 声。 该论文依据递推最小二乘法原理,借助 MATLAB 工具编写程序,设定合适 的初始值和加权因子进行参数辨识,辨识结果为11?? 2.7547,0.9193a b ==-,由11??,a b 可得到134.12K =,112.36s T =进而得到系统的传递函数为: 134.12 ()12.361 G s s = + 下面运用递推最小二乘法对所得结果进行仿真:假设134.12K =,112.36s T =已知,采样时间为1s T =,则计算可得

参数估计带遗忘因子递推最小二乘法仿真(RLS)

参数估计带遗忘因子递推最小二乘法仿真(RLS ) 模型:y (N+1) = ?N+1T θ + ε(N+1) 其中 带遗忘因子的RLS 法递推算式: θ N+1 = θ N + K N+1(y (N+1) – ?N+1T θ N ) 式(2-3-5) 式(2-4-1) 式(2-4-2) 参考程序(BASIC ) 40 N=200: M=2: D=2 ’( N —数据量;M —参数维数;D —滞后量 D ≧1) 50 DIM Y (N ),U (N ),A (M ),P (M ,M ), C (M ,N ),X (M ),PX (M ),E (N ),A1(N ),B1(N ) ’ Y —输出;U —输入;A —参数估计;P —估计误差协方差阵;C —贮存参数估计结果;E —随机干扰;PX —工作单元 ; X —观测数据向量?;A1和B1—参数真值(一阶系统) 60 RANDOMIZE 77: ’ 伪随机数初始化 70 FOR I =1 TO M :A (I )=0 : P (I ,I )=1000000.:NEXT I ’ 赋初值 111 1+++++=N N T N N N N P P K ??α?α??ρ??1112111???? ??+-=+++++N N T N N T N N N N N P P P P P )] (),...,1(),(),...,1([] ,...,,,,....,,[2121n k u k u n k y k y b b b a a a T k n n T k ------==?θ

80 B=1.:’赋遗忘因子赋值 90 FOR K= 5 TO N:’主循环 100 A1(K)= —0.9: B1(K)=1.0: C1=0. :’赋真值110 IF K〉=50 THEN B1(K)=2.0:’参数时变120 US=15: IF RUN(0)〉0.8 THEN US= —1*US 130 U(K)= US:’给定输入 140 E(K)=RND(1)— 0.5 ’噪声 150 Y(K)= —A1(K)*Y(K—1)+ B1(K)*U(K—D)+E(K)+C1*E(K—1):’过程仿真 160 X(1)= —Y(K—1): X(2)= U(K—D): ' 观测数据向量?赋值 170 GOSUB 220 ’调用RLS子程序 180 FOR I=1 TO M: C(I,K)=A(I): NEXT I ’存入参数估计结果 200 NEXT K 210 END 220 ’********** 参数估计 RLS 子程序 **************** 225 ’** W 用于存放? N+1T θ N ; Z 用于存放? N+1 T P N ? N+1 ** 230 Z=0: W=0: FOR I=1 TO M : PX(I)= 0: NEXT I 240 FOR I=1 TO M: FOR J=1 TO M 250 Z=Z+P(I,J)*X(I)*X(J):PX(I)= PX(I)+ P(I,J)*X(J): NEXT J 260 W=W+A(I)*X(I): NEXT I: RE=Y(K)—W 270 FOR I=1 TO M: A(I)=A(I)+ PX(I)*RE/ (B+Z): FOR J=1 TO M 280 P(I,J)=(P(I,J)—PX(I)*PX(J)/ (B+Z))/B 290 NEXT J: NEXT I 300 RETURN

带遗忘因子的递推最小二乘法

带遗忘因子的递推最小二乘法 %开环系统参数辨识,带遗忘因子的递推最小二乘估计法(FFRLS),系统为单入单出的CAR(带控制量的自回归模型)模型,三阶系统 clear all clc a=[1-1.10.60.1];b=[10.7];d=4;%实际模型系数矩阵与纯迟延 L=1000;%仿真长度 na=length(a)-1;nb=length(b)-1;%na,nb为输出输入系数矩阵A,B的阶数 yk=zeros(na,1);%输出矩阵初始化 yk_m=zeros(na,1);%模型输出 uk=zeros(nb+d,1);%输入矩阵初始化 theta_e0=zeros(na+nb+1,1);%theta_e0为估计参数初值, a1,a2....an,b0,b1,...bn,共na+nb+1个 phi=zeros(na+nb+1,1);%phi为当前实际输出输入构成的矩阵 P=10^6*eye(na+nb+1);%修正系数初值 beta=0.99;%遗忘因子,在0.95到1之间 u=randn(L,1);%输入信号,方差为1的白噪声序列 omega=sqrt(0.1)*randn(L,1);%干扰信号,方差为0.1的白噪声序列 for i=1:L theta(:,i)=[a(2:na+1),b]';%系统实际参数值 phi=[-yk;uk(d:d+nb)];%系统输出输入矩阵 phi_e=[-yk_m;uk(d:d+nb)];%模型输出输入矩阵 y(i)=phi'*theta(:,i)+omega(i);%系统实际输出 y_m(i)=phi_e'*theta_e0;%模型输出 %递推公式 K=P*phi/(beta+phi'*P*phi); theta_e(:,i)=theta_e0+K*(y(i)-phi'*theta_e0); P=(eye(na+nb+1)-K*phi')*P/beta; %数据更新 theta_e0=theta_e(:,i); for j=na:-1:2 yk(j)=yk(j-1); yk_m(j)=yk_m(j-1); end yk(1)=y(i); yk_m(1)=y_m(i); for j=(nb+d):-1:2 uk(j)=uk(j-1); end

几种最小二乘法递推算法的小结

递推最小二乘法的一般步骤: 1. 根据输入输出序列列出最小二乘法估计的观测矩阵?: ] )(u ... )1( )( ... )1([)(T b q n k k u n k y k y k ------=? 没有给出输出序列的还要先算出输出序列。 本例中, 2)]-u(k 1),-u(k 2),-1),-y(k -[-y(k )(T =k ?。 2. 给辨识参数θ和协方差阵P 赋初值。一般取0θ=0或者极小的数,取σσ,20I P =特别 大,本例中取σ=100。 3. 按照下式计算增益矩阵G : ) ()1()(1)()1()(k k P k k k P k G T ???-+-= 4. 按照下式计算要辨识的参数θ: )]1(?)()()[()1(?)(?--+-=k k k y k G k k T θ?θθ 5. 按照下式计算新的协方差阵P : )1()()()1()(---=k P k k G k P k P T ? 6. 计算辨识参数的相对变化量,看是否满足停机准则。如满足,则不再递推;如不满足, 则从第三步开始进行下一次地推,直至满足要求为止。 停机准则:ε???<--) (?)1(?)(?max k k k i i i i 本例中由于递推次数只有三十次,故不需要停机准则。 7. 分离参数:将a 1….a na b 1….b nb 从辨识参数θ中分离出来。 8. 画出被辨识参数θ的各次递推估计值图形。 为了说明噪声对递推最小二乘法结果的影响,程序5-7-2在计算模拟观测值时不加噪声, 辨识结果为a1 =1.6417,a2 = 0.7148,b1 = 0.3900,b2 =0.3499,与真实值a1 =1.642, a2 = 0.715, b1 = 0.3900,b2 =0.35相差无几。 程序5-7-2-1在计算模拟观测值时加入了均值为0,方差为0.1的白噪声序列,由于噪声 的影响,此时的结果为变值,但变化范围较小,现任取一组结果作为辨识结果。辨识结果为a1 =1.5371, a2 = 0.6874, b1 = 0.3756,b2 =0.3378。 程序5-7-2-2在计算模拟观测值时加入了有色噪声,有色噪声为 E(k)+1.642E(k-1)+0.715E(k-2),E(k)是均值为0,方差为0.1的白噪声序列,由于有色噪声的影响,此时的辨识结果变动范围远比白噪声时大,任取一组结果作为辨识结果。辨识结果为a1 =1.6676, a2 = 0.7479, b1 = 0.4254,b2 =0.3965。 可以看出,基本的最小二乘法不适用于有色噪声的场合。

递推增广最小二乘法

题目: (递推增广最小二乘法) 考虑如下系统: )2-(2.0)1()()4(5.0)3()2(7.0)1(5.1)(k k k k u k u k y k y k y ξξξ+--+-+-=-+-- 式中,)(k ξ为方差为0.1的白噪声。 取初值I P 610)0(=、00=∧ )(θ。选择方差为1的白噪声作为输入信号)(k u ,采用RELS 法进行参数估计。 何为递推增广最小二乘法?原理? 在CARMA 模型中 )()()()()()(111k z C d k u z B k y z A ξ---+-= 在式子中与前两种方法不同的是1)(1≠-z C ,在这里噪声)(k e 为有色噪声,即 )()1()()()()(11k c k c k k z C k e n ξξξξ++-+==- 也就是说我们要估计的参数又多了噪声中的参数。比原来的估计矩阵又多了参数故称作递推增广最小二乘法。 究其原理我认为仅仅是在递推最小二乘法的计算原理的基础上增加了一个方程来计算噪声: ∧ ∧ ∧-=θ?ξ)()()(k k y k T Matlab 代码如下: clear all close all L=1000; %仿真长度 uk=zeros(4,1); %输入初值:uk(i)表示u(k-i) yk=zeros(2,1); %输出初值 xik=zeros(2,1);%噪声的初值 u=randn(L,1); %输入采用白噪声序列 xiek=zeros(2,1);%噪声的给定初值 xi=sqrt(0.1)*randn(L,1); %方差为0.1的白噪声序列 theta=[-1.5;0.7;1.0;0.5;-1;0.2]; %对象参数真值,多了噪声的两个参数真值 thetae_1=zeros(6,1); %这回要辨识的值多了两个 P=10^6*eye(6); %题目要求的初值,单位阵阶数随着辨识参数的增加而增加

相关文档
最新文档