递推最小二乘辨识_精品文档.docx

上传人:b****2 文档编号:972578 上传时间:2022-10-14 格式:DOCX 页数:10 大小:437.36KB
下载 相关 举报
递推最小二乘辨识_精品文档.docx_第1页
第1页 / 共10页
递推最小二乘辨识_精品文档.docx_第2页
第2页 / 共10页
递推最小二乘辨识_精品文档.docx_第3页
第3页 / 共10页
递推最小二乘辨识_精品文档.docx_第4页
第4页 / 共10页
递推最小二乘辨识_精品文档.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

递推最小二乘辨识_精品文档.docx

《递推最小二乘辨识_精品文档.docx》由会员分享,可在线阅读,更多相关《递推最小二乘辨识_精品文档.docx(10页珍藏版)》请在冰豆网上搜索。

递推最小二乘辨识_精品文档.docx

实验4递推最小二乘法的实现

实验报告

哈尔滨工业大学

航天学院控制科学与工程系

专业:

自动化

班级:

1040101

姓名:

日期:

2013年10月23日

1.实验题目:

递推最小二乘法的实现

2.实验目的:

熟悉并掌握递推最小二乘法的算法原理。

3.实验主要原理

给定系统

(1)

其中,为待辨识的未知参数,是不相关随机序列。

为系统的输出,为系统的输入。

分别测出个输出、输入值,则可写出个方程,具体写成矩阵形式,有

(2)

则式

(2)可写为

(3)

式中:

y为N维输出向量;为N维噪声向量;为维参数向量;为测量矩阵。

为了尽量减小噪声对估值的影响,应取,即方程数目大于未知数数目。

的最小二乘估计为

(4)

为了实现实时控制,必须采用递推算法,这种辨识方法主要用于在线辨识。

设已获得的观测数据长度为N,将式(3)中的、和分别用来代替,即

(5)

用表示的最小二乘估计,则

(6)

令,则

(7)

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

(8)

式中

将式(5)和式(8)合并,并写成分块矩阵形式,可得

(9)

于是,类似地可得到新的参数估值

(10)

式中

(11)

应用矩阵求逆引理,从求得与的递推关系式出发,经过一系列的推导,最终可求得递推最小二乘法辨识公式:

(12)

(13)

(14)

为了进行递推计算,需要给出和的初值和。

推荐取值方法为:

假定,c是充分大的常数,I为单位矩阵,则经过若干次递推之后能得到较好的参数估计。

4.实验对象或参数

给定系统

(15)

即。

假设实际系统的参数为,,,,,但是不已知,即不可测。

取的零均值白噪声。

输入信号取为

(16)

要求编制MATLAB程序,运用递推最小二乘法对这一系统的参数进行在线辨识,并将辨识结果与实际参数进行对比。

5.程序框图

6.程序代码

4

functionshiyan4

Y

(1)=0;Y

(2)=0;

n=2;theta=[2;1.3;0.4;0.88;2.2];

c=1000;

U

(1)=1.5*sin(0.2*1);U

(2)=1.5*sin(0.2*2);U(3)=1.5*sin(0.2*3);

Pn0=c*c*eye(5);

Tn0=zeros(5,1);

num=30;

data=zeros(num,5);

%生成白噪声

M=2147483647;

a=65539;

b=10000;

X=[];

R=[];

X

(1)=35;

nn=12*(num+5);

forj=1:

1:

nn

x0=(a*X(j)+b);

X(j+1)=mod(x0,M);

R(j)=X(j+1)/M;

end

v=[];

forjj=0:

1:

num+4

jj1=jj*12+1;jj2=jj*12+11;x2=R(jj1);

forii=jj1:

1:

jj2

x2=x2+R(ii+1);

end

v(jj+1)=x2-6;

V(jj+1)=v(jj+1)/30;

end

%递推函数

while(num~=0)

HL

(1)=-Y(n);HL

(2)=-Y(n-1);

HL(3)=U(n+1);HL(4)=U(n);HL(5)=U(n-1);

Y(n+1)=HL*theta+V(n+1);

K=Pn0*HL'*(inv(1+HL*Pn0*HL'));

Pn=Pn0-K*HL*Pn0;

Tn=Tn0+K*(Y(n+1)-HL*Tn0);

data(n-1,:

)=Tn;

Pn0=Pn;

Tn0=Tn;

n=n+1;

KK=[Tn

(2)-16Tn

(1)-4];

U(n+1)=KK*[Y(n);Y(n-1)]+[Tn(3)Tn(4)Tn(5)]*[1.5*sin(0.2*(n+1));1.5*sin(0.2*n);1.5*sin(0.2*(n-1))];

num=num-1;

end

data

%画图

a1=data(:

1);

a2=data(:

2);

b0=data(:

3);

b1=data(:

4);

b2=data(:

5);

k=0:

1:

length(a1)-1;

subplot(2,1,1);

stairs(k,a1,'r-');

xlabel('timek');

ylabel('a1');

subplot(2,1,2);

stairs(k,a2,'r-');

xlabel('timek');

ylabel('a2');

subplot(3,1,1);

stairs(k,b0,'r-');

xlabel('timek');

ylabel('b0');

subplot(3,1,2);

stairs(k,b1,'r-');

xlabel('timek');

ylabel('b1');

subplot(3,1,3);

stairs(k,b2,'r-');

xlabel('timek');

ylabel('b2');

7.实验结果及分析

本实验给定系统为

要求运用递推最小二乘法对所给系统参数进行在线识别,其主要目的是设计状态反馈控制律,因此首先采用状态空间分析法对系统进行分析。

闭环系统原理图如下图所示。

根据系统辨识模型,对于该二阶系统,不妨设状态量,,所以该系统状态空间表达式为:

其中:

,,,。

暂不考虑干扰信号,设状态反馈控制律为:

为反馈增益系数矩阵,为系统参考输入,则状态反馈闭环系统的状态空间表达式为

闭环系统传递函数:

设期望闭环极点,解得,。

通过最小二乘法辨识出、、、、,即可以得到实际控制律:

在实验给定的系统辨识模型以及参数下,按照实验要求的正弦信号参考输入与白噪以及理论计算获得的控制律基础上进行MATLAB仿真,具体得到以下结果分析。

输出data:

下面为循环次数为25,c为1000时的参数收敛情况:

由上图可知,在第14步时,参数基本稳定。

当c取不同值的时候,探索对系统辨识的影响。

如下表:

C

收敛步数

a0

a1

b0

b1

b2

0.01

20

2.0

1.30

0.40

0.880

2.20

0.1

18

2.0

1.30

0.40

0.880

2.20

1

16

2.0

1.30

0.40

0.880

2.20

10

14

2.0

1.30

0.40

0.880

2.20

100

14

2.0

1.30

0.40

0.880

2.20

1000

14

2.0

1.30

0.40

0.880

2.20

10000

14

2.0

1.30

0.40

0.880

2.20

100000

14

2.0

1.30

0.40

0.880

2.20

从表中可以看出,无论c取多大的值,最终都能得到系统参数真实值,参数收敛的快慢不同,c较小时所需步数较多,c较大时所需步数较少。

当c达到一定程度之后,收敛递推步数逐渐稳定,但是不可能小于N=2n+1=5步。

方程个数N只需要满足N=2n+1的条件即可以获得方程的解;同样的,在递推最小二乘法中,递推步数同样要大于2n+1才能获得较为准确的结果。

8.结论

本实验中,递推最小二乘法的在线算法需要设计状态反馈控制规律。

经过状态反馈后,无论c取值多少,都能在一定的步数后得到真实的辨识参数。

c值越大,收敛越迅速。

但是收敛步数不可能小于N=2n+1=5步。

相对最小二乘法,递推最小二乘法可以实现实时控制,所需要的数据量较少。

经过这次实验,不仅最小二乘法的递推过程更加熟悉,而且认识了状态反馈控制规律在辨识中的重大作用。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1