前几日,我上传了一篇RELS的博文,主要根据自适应教材的一个仿真案例讲解了其脚本和S函数的实现,有兴趣的可以参考递推增广最小二乘法RELS——脚本及S函数实现。下面是我对RLS的一个简单案例的应用。
1. 问题描述
今日,我拿了一个非常简单的例子——弹簧模型,来具体地看看递推最小二乘法RLS的效果。
现在给定一个弹簧,要求根据其形变x和受力F,想要估计弹簧的刚度 k e k_e ke。另外再考虑一个噪声项,那么有 F = k e x + ξ F=k_ex+\xi F=kex+ξ,对应的离散时间系统则为:
F ( k ) = k e x ( k ) + ξ ( k ) F(k) = k_ex(k)+\xi(k) F(k)=kex(k)+ξ(k) 其各项阶次为零, n a = n b = n c = d = 0 n_a=n_b=n_c=d=0 na=nb=nc=d=0。递推最小二乘法的数据向量和参数向量如下
φ ( k ) = [ − y ( k − 1 ) , − y ( k − 2 ) , ⋯ , − y ( k − n a ) , u ( k − d ) , u ( k − d − 1 ) , ⋯ , u ( k − d − n b ) , ξ ( k − 1 ) , ξ ( k − 1 ) , ξ ( k − 2 ) , ⋯ , ξ ( k − n c ) ] θ T = [ a 1 , a 2 , ⋯ , a n a , b 0 , b 1 , ⋯ , b n b , c 1 , c 2 , ⋯ , c n c ] \varphi(k) = [-y(k-1), -y(k-2),\cdots,-y(k-n_a),u(k-d),u(k-d-1),\\ \cdots,u(k-d-n_b),\xi(k-1),\xi(k-1),\xi(k-2),\cdots,\xi(k-n_c)]\\ \theta^T=[a_1,a_2,\cdots,a_{n_a},b_0,b_1,\cdots,b_{n_b},c_1,c_2,\cdots,c_{n_c}] φ(k)=[−y(k−1)