线性时变过程的RLS估计
程序名“RLS1·BAS”
过程模型
4 遗忘因子B=1(白噪声干扰,噪声系数 *10)
参数估计结果(填入下表)
K
a1估计
b1估计
5 遗忘因子B=0.95(白噪声干扰,噪声系数 *10)
参数估计结果(填入下表)
K
a1估计
b1估计
参数估计曲线(不同遗忘因子)
附:参数估计带遗忘因子递推最小二乘法仿真(RLS)(BASIC)
模型:y(N+1) = N+1T + (N+1)
其中
T
k
[
,
aa
1
2
,....,
,
bba
2
n
,
1
,...,
b
n
]
T
k
[
(
ky
),...,
1
(
ky
(
),
kun
),...,
1
(
ku
n
)]
带遗忘因子的RLS法递推算式:
N+1 = N+ K N+1(y(N+1) – N+1T N) 式(2-3-5)
K
N
1
P
NN
1
T
P
NN
N
1
式(2-4-1)
1
P
N
1
P
N
T
P
N
N
N
T
2
P
N
N
1
1
P
1
N
1
N
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)=0.1: C1=0. :’赋真值
110 IF K〉=50 THEN A1(K)= —0. 5: B1(K)=0.5:
’ 参数时变
120 US=100: IF RUN(0)〉0.65 THEN US= —1*US
130 U(K)= US:’给定输入
140 E(K)=(RND(1)— 0.5)*10:’噪声
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 ’
180 FOR I=1 TO M: C(I,K)=A(I): NEXT I
调用RLS子程序
’存入参数估计结果
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