![41a0a4414d365a7ce6e07229941fcd7d.png](https://img-blog.csdnimg.cn/img_convert/41a0a4414d365a7ce6e07229941fcd7d.png)
目录
引言
滤波篇之三种方法介绍
仿真分析
总结
参考文献
一、引言
在线性控制中,RLS、KF都是常用的最优估计方法之一,RLS、KF常用来估测被控对象参数,KF在电机控制中也可以扩展成EKF来做position Sensorless。首先,这里用自己的理解和参考文献来介绍RLS和KF,并利用Matlab仿真验证算法的正确性及KF中参数的选取问题;其次,为了进一步了解本质,对RLS的基础版本LS进行简要介绍,以便读者理解,如有问题,欢迎指正。
二、滤波篇之三种方法介绍
- 最小二乘(LS)
假设仅对一个被控对象的参数变量进行估计,其可以利用模型已知参数(被控对象的模型参数及输入量)及系统观测的输出量来表示为如下所示:
其中
从上式,很容易地,我们可以在每一次测量中获得一次
由于实际系统为离散的,在每一次采样时刻都可以获得一组数据,用矩阵表示即:
其中,
下标数字表示第1,2...采样时刻。
然而由于实际系统中存在误差,例如传感器的测量误差,采样精度,系统不确定性扰动及白噪声影响等原因,估计量
为了解决这个问题,常见的处理方法有高阶或低阶滤波等方法。其中一种获得最优估计值的方法被称为最小二乘法(LS)。即所有估计值与已知观测量误差的绝对值和的平方(二乘)最小。由于绝对值在计算中不方便,因此利用平方和来进行等效代替。
根据上述原则:估计值与已知观测量误差的平方和
其中,
在Eq. (4)中,为了使
根据上述式子,进一步求解,获得
然而这种对于实时控制需求比较高的场合不是很实用:由于
- 递推最小二乘法(RLS)
为了解决上述LS的存在的计算量持续增大问题,RLS被提出。
RLS核心在于递推思想,把数据量集中在了上一时刻,大大降低了复杂度。RLS也有很多种类型,如加权RLS,变加权RLS,遗忘因子RLS等,这里介绍一种常用的带有遗忘因子的RLS :
由于遗忘因子的引入,Eq. (4) 变为:
其中,
在第n采样时刻的估计值
详细推导已经被介绍很多次了,这里省略,大家可以参考如下:
东林钟声:递推最小二乘推导(RLS)zhuanlan.zhihu.com![275b2cd94f192d02c574dc4e7e2cfcec.png](https://img-blog.csdnimg.cn/img_convert/275b2cd94f192d02c574dc4e7e2cfcec.png)
利用矩阵变换等公式,最终获得带有遗忘因子的RLS的计算公式如下所示:
其中,下标
- 卡尔曼滤波(KF)
Rudolf E Kalman(1930-2016) 提出了卡尔曼滤波器(KF),入门可以看以下视频1-5 Parts:
Understanding Kalman Filters, Part 1: Why Use Kalman Filters? Videowww.mathworks.com为了对高斯噪声进行量化,不同于RLS利用LS,KF运用最小均方误差(LMSE)方法来获取最优估计值。笔者认为KF主要的贡献在于利用状态空间方程来获取最优值,而不是LMSE,LMSE也在FIR中应用到。
详情可以参考MIT中 James L. Kirtley Jr 的教学课程:
http://web.mit.edu/kirtley/kirtley/binlustuff/literature/control/Kalman%20filter.pdfweb.mit.edu那么LS与LMSE的区别是?
引用一句话:最小二乘法基于矩阵求解,最小均方误差基于概率统计求解。
均方误差可以表示为如下:
相比于RLS,KF考虑了被控对象中的过程噪声
假设被控对象为线性系统,考虑两种高斯噪声的被控对象数学模型可以表示为如下所示:
KF的最优设计思路在于同时考虑了预测值和测量值,即构建了状态预测和状态更新方程:
其中,
其中
在建立了KF模型方程Eqs. (14-15)后,利用LMSE原则Eq. (11),真实值与最优估计值之间的均方误差(也就是协方差)
代入Eq.(13、15)于Eq. (16),得:
令真实值与预测值之间的协方差
代入Eq.(18)于Eq.(17):
为了使
解得K为:
代入Eq. (21)于Eq.(19),求得:
根据Eq. (18)及Eq. (12),进一步改写:
总结,KF的计算公式可以表示为如下所示:
当模型参数
如何选取合适的Q和R?
这个Q和R的选取是一个重要问题。
Q和R分别代表对模型预测值和实际测量值的权重,Q越大,KF越不利用模型预测值来估算参数;同理,R越大,KF越不利用实际测量值来估算参数。
同时引用秦永元结论《卡尔曼滤波与组合导航原理》:
Q、R无法精确获得,只知道可能的取值范围,则采用可能的较大值(保守)。如果不确切知道Q、R信息,应适当增大Q的取值,以增大对实时量测值的利用权重,俗称调谐。但是调谐存在盲目性,无法知道Q要调到多大才行。
三、仿真分析
首先建立SPMSM的模型,利用RLS与KF对SPMSM模型参数的电感,电阻进行同时辨识。
假设初始参数为:
采样时间为50us;电机转速为900rpm,负载转矩阶跃为10Nm-3Nm。
RLS与KF辨识结果如下所示:
默认不存在过程噪声
![b0f9695158bb5a02cfcce5bd48cf4604.png](https://img-blog.csdnimg.cn/img_convert/b0f9695158bb5a02cfcce5bd48cf4604.png)
上图中可以看出RLS与KF估算的SPMSM电机参数一致,验证了R=I;Q=0的KF等效于RLS。
默认系统仅含有测量噪声
![fdc131a16f5f71c27c9efc4a884b1828.png](https://img-blog.csdnimg.cn/img_convert/fdc131a16f5f71c27c9efc4a884b1828.png)
从上图可以看出KF估算参数高于RLS。
当进一步增大R=[1 0 ;0 1]*0.0054,可以看出下图的RLS与KF性能基本一致。
![7fe317c64256a1eedc814972bc3fdfcf.png](https://img-blog.csdnimg.cn/img_convert/7fe317c64256a1eedc814972bc3fdfcf.png)
由于在仿真中,不存在过程噪声,即模型准确,如果加入一定的的过程噪声,即Q协方差:Q=0.1*[1 0 ;0 1]; 再次建立KF模型,从下图可以看出,Rs和Ls都会受到较大的干扰。
![11a421119c712ce64d8a31c2d2990715.png](https://img-blog.csdnimg.cn/img_convert/11a421119c712ce64d8a31c2d2990715.png)
四、总结
RLS、LS、KF都是最优估计的一类方法,相对于LS,RLS, KF考虑了两种高斯噪声及预测模型。
用途:无论在离线或者在线的被控对象参数辨识中,RLS、KF都是常用的一种方法,在能准确求得两种噪声的Q和R情况下,更推荐用KF,反正RLS更有效;如果被控系统为非线性模型,可以考虑EKF(扩展卡尔曼滤波器),但由于雅克比矩阵的加入运算量相对较大。
三种方法优点:矩阵满秩情况下辨识精度较高,由于递推的加入后运算量适中。
缺点:收敛速度相对较慢,估测PMSM参数在ms级,被控对象的多参数估计会出现矩阵不满秩现象,导致估算存在误差。
五、参考文献
涅索斯衬衫:卡尔曼滤波(Kalman Filter)原理与公式推导
东林钟声:递推最小二乘推导(RLS)
http://www.cs.tut.fi/~tabus/course/ASP/LectureNew10.pdf
recursive least squares -- 递推最小二乘法
Understanding Kalman Filters, Part 1: Why Use Kalman Filters? Video
http://web.mit.edu/kirtley/kirtley/binlustuff/literature/control/Kalman%20filter.pdf
Xinyu Chen:如何直观地理解「协方差矩阵」?
https://zh.wikipedia.org/wiki/%E5%8D%8F%E6%96%B9%E5%B7%AE
卡尔曼滤波中的噪声协方差矩阵(R和Q)应该怎么取值,和噪声分布之间的关系是什么?