一、 递推最小二乘法
递推最小二乘法的一般步骤:
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。
可以看出,基本的最小二乘法不适用于有色噪声的场合。
二、 广义最小二乘法
广义最小二乘法适用于AR 模型,它的基本思想在于对数据先进行一次白化滤波处理,然后利用基本的最小二乘法对滤波后的数据进行辨识。
广义最小二乘法的递推算法步骤如下:
1. 给定初始条件:
???????====I
)0(P 0
)0(?(I )0(P 0)0(?(e))(2(f)e θσσθ特别大)或者极小值
2.利用
?????==--)
()()()()()(1(f)1(f)k u z C k u k y z C k y 计算)()(k y
f 及)()(k u f 。 3.利用 ] )(...u )1( )( ... )1([)(T )()()()()(b f f q f f f n k k u n k y k y k ------=?
构造滤波后的观测矩阵)()(k f ?
。 本例中, 2)]-(k u 1),-(k u 2),-(k 1),-y -(k [-y )(T )()()()()(f f f f f k =?。
4.利用下式估计递推计算1
?+N θ ????
?????---=+-=--+-=)()()()()()()()()()()()()()()1()()()1()()()(1)()1()()]1(?)()([)()1(?)(?f T f f f f f N f T f f f f T f f f k P k k G k P k P k P k k k P k G k k k y k G k k ????θ?θθ 5.由新得到的)(?k θ
计算出新的残差估计值)(?k e ,并构造残差数据向量 由滤波前的观测向量
] )(u ... )1( )( ... )1([)(T b a n k k u n k y k y k ------=?计算出新的残差估计值)(?k e
)(?)()()(?k k k y k e
T θ?-= 残差数据向量T c e n k e k e
k )](? ... )1(?[)()(----=?。
6. 利用下式估计递推计算)()(?e k θ
????
?????---=-+-=--+-=)()()()()()(1)()()()()()()()()()()1()()()1()()()1()(1)()1()(])1(?)()(?[)()1(?)(?e T e e e e e e T e e e e e T e e e e k P k k G k P k P k k P k k k P k G k k k e k G k k ????θ?θθ 7.返回第2步进行迭代计算,直至获得满意的辨识结果。
程序5-7-4使用广义最小二乘法,得到的结果为a1 =1.6363,a2 =0.7172,b1 = 0.3679,b2 = 0.3603,c0 =-0.6951, c1 =-0.0214,结果a1、a2、b1、b2与真实值结果a1 =1.642, a2 = 0.715, b1 = 0.39,b2 =0.35较为接近,但c0、c1与真实值1、-0.4相差较远。 三、 增广最小二乘法
增广最小二乘法是最小二乘法的一种推广,它只是扩充了参数向量θ和数据向量)(k ?的
维数,在辨识过程中考虑了噪声模型的参数,适用于MA 模型。
增广最小二乘法的一般步骤如下:
1.根据输入输出序列以及噪声序列列出增广最小二乘法估计的数据向量?: ] )( ... )1( )( )(u ... )1( )( ... )1([)(T d b a n k k k n k k u n k y k y k --------=εεε? 没有给出输出序列的还要先算出输出序列。
本例中, ])2(, )1(, )( 2),-u(k 1),-u(k 2),-1),-y(k -[-y(k )(T
--=k k k k εεε?。
9. 给辨识参数θ和协方差阵P 赋初值。一般取0θ=0或者极小的数,取σσ,20I P =特别大,本例中取σ=100。
10. 按照下式计算增益矩阵G : )
()1()(1)()1()(k k P k k k P k G T ???-+-= 11. 按照下式计算要辨识的参数θ:
)]1(?)()()[()1(?)(?--+-=k k k y k G k k T θ?θθ
12. 按照下式计算新的协方差阵P :
)1()()()1()(---=k P k k G k P k P T ?
13. 计算辨识参数的相对变化量,看是否满足停机准则。如满足,则不再递推;如不满足,
则从第三步开始进行下一次地推,直至满足要求为止。
停机准则:ε???<--)
(?)1(?)(?max k k k i i i i
本例中由于递推次数只有三十次,故不需要停机准则。
14. 分离参数:将a 1….a na b 1….b nb d 1…d nd 从辨识参数θ中分离出来。
15. 画出被辨识参数θ的各次递推估计值图形。
由以上可见,递推增广最小二乘法的算法与基本最小二乘法的递推算法形式是一致的,只是参数向量θ和数据向量)(k ?的维数扩充了m 维。
程序5-7-5在是运用增广最小二乘法来辨识系统参数,得到的结果为a1 =1.6412,a2 = 0.7144,b1 = 0.3900,b2 =0.3497,d0=0.9992,d1=1.6417,d2=0.7145与真实值a1 =1.642, a2 = 0.715, b1 = 0.3900,b2 =0.35, d0=1,d1=a1=1.642,d2=a2=0.7145相差无几。