您的当前位置:首页参数估计带遗忘因子递推最小二乘法仿真(RLS)

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

来源:小侦探旅游网
参数估计带遗忘因子递推最小二乘法仿真(RLS)

T

模型:y(N+1) = N+1 + (N+1)

其中

Tk[a1,a2,....,an,b1,b2,...,bn]Tk[y(k1),...,y(kn),u(k1),...,u(kn)]

带遗忘因子的RLS法递推算式:

 N+1 =  N+ K N+1(y(N+1) – N+1T  N) 式(2-3-5)

KN1PN

N1TN1PN 式(2-4-1)

N1

PN1TPNPN1N1NPNT2PN1NN1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 ’ 赋初值

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+1T 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

因篇幅问题不能全部显示,请点此查看更多更全内容