kalman滤波基础及matlab仿真_电机控制:滤波篇之RLS、KF (1)

41a0a4414d365a7ce6e07229941fcd7d.png

目录

引言
滤波篇之三种方法介绍
仿真分析
总结
参考文献

一、引言

在线性控制中,RLS、KF都是常用的最优估计方法之一,RLS、KF常用来估测被控对象参数,KF在电机控制中也可以扩展成EKF来做position Sensorless。首先,这里用自己的理解和参考文献来介绍RLS和KF,并利用Matlab仿真验证算法的正确性及KF中参数的选取问题;其次,为了进一步了解本质,对RLS的基础版本LS进行简要介绍,以便读者理解,如有问题,欢迎指正。

二、滤波篇之三种方法介绍

  • 最小二乘(LS)

假设仅对一个被控对象的参数变量进行估计,其可以利用模型已知参数(被控对象的模型参数及输入量)及系统观测的输出量来表示为如下所示:

(1)

其中

代表输出量(已知观测得到的值),
代表被控对象模型中的已知参数值,
表示需要估计的变量值。

从上式,很容易地,我们可以在每一次测量中获得一次

(2)

由于实际系统为离散的,在每一次采样时刻都可以获得一组数据,用矩阵表示即:

(3)

其中,

,
,

下标数字表示第1,2...采样时刻。

然而由于实际系统中存在误差,例如传感器的测量误差,采样精度,系统不确定性扰动及白噪声影响等原因,估计量

都存在一定的误差。

为了解决这个问题,常见的处理方法有高阶或低阶滤波等方法。其中一种获得最优估计值的方法被称为最小二乘法(LS)。即所有估计值与已知观测量误差的绝对值和的平方(二乘)最小。由于绝对值在计算中不方便,因此利用平方和来进行等效代替。

根据上述原则:估计值与已知观测量误差的平方和

可以表示为如下:

(4)

其中,

代表估计值与已知观测量值的误差, 可表示为

在Eq. (4)中,为了使

最小,我们可以根据下述原则,及对
偏导数:

(5)

根据上述式子,进一步求解,获得

如下所示:

(6)

然而这种对于实时控制需求比较高的场合不是很实用:由于

矩阵随着时间推移,数据量持续增加,系统计算量持续增大。
  • 递推最小二乘法(RLS)

为了解决上述LS的存在的计算量持续增大问题,RLS被提出。

RLS核心在于递推思想,把数据量集中在了上一时刻,大大降低了复杂度。RLS也有很多种类型,如加权RLS,变加权RLS,遗忘因子RLS等,这里介绍一种常用的带有遗忘因子的RLS :

由于遗忘因子的引入,Eq. (4) 变为:

(7)

其中,

表示n-1行的矩阵
估计值;
表示遗忘因子。

(8)

在第n采样时刻的估计值

可以表示为:

(9)

详细推导已经被介绍很多次了,这里省略,大家可以参考如下:

东林钟声:递推最小二乘推导(RLS)​zhuanlan.zhihu.com
http://www.cs.tut.fi/~tabus/course/ASP/LectureNew10.pdf​www.cs.tut.fi recursive least squares -- 递推最小二乘法​blog.csdn.net
275b2cd94f192d02c574dc4e7e2cfcec.png


利用矩阵变换等公式,最终获得带有遗忘因子的RLS的计算公式如下所示:

(10)

其中,下标

表示系统在上一时刻历史值。遗忘因子
越大,RLS对历史数据权重越大;反之,RLS对当前时刻的数据权重越大,这里遗忘因子
为零时,相当于系统仅利用当前数据来进行预测,唯一的优点在于收敛性带宽高,然而由于间接的滤波效果的不存在,其估计值会由于系统的不确定因素存在一定的估计扰动,并恶化估计精度。
  • 卡尔曼滤波(KF)

Rudolf E Kalman(1930-2016) 提出了卡尔曼滤波器(KF),入门可以看以下视频1-5 Parts:

Understanding Kalman Filters, Part 1: Why Use Kalman Filters? Video​www.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.pdf​web.mit.edu

那么LS与LMSE的区别是?

引用一句话:最小二乘法基于矩阵求解,最小均方误差基于概率统计求解。

均方误差可以表示为如下:

(11)

相比于RLS,KF考虑了被控对象中的过程噪声

和测量噪声
,默认为高斯噪声,即
,过程噪声
和测量噪声
的协方差分别为
。从Eq. (11),也可以发现,具有概率统计特性的这种高斯噪声用均方误差表示再好不过了。

假设被控对象为线性系统,考虑两种高斯噪声的被控对象数学模型可以表示为如下所示:

(12)

(13)

KF的最优设计思路在于同时考虑了预测值和测量值,即构建了状态预测和状态更新方程:

(14)---------------------
状态预测方程

其中,

为系统状态的在上一时刻的预测值;
为系统状态在当前时刻的预测值。

(15)------------
状态更新方程

其中

为卡尔曼增益,代表模型预测误差与测量误差的权重系数。当K=0时,完全由状态预测方程获得,反正K=1,KF类似于LS。

在建立了KF模型方程Eqs. (14-15)后,利用LMSE原则Eq. (11),真实值与最优估计值之间的均方误差(也就是协方差)

可以表示为:

(16)

代入Eq.(13、15)于Eq. (16),得:

(17)

令真实值与预测值之间的协方差

表示如下:

(18)

代入Eq.(18)于Eq.(17):

(19)

为了使

最小,即对
的偏导数:

(20)

解得K为:

(21)

代入Eq. (21)于Eq.(19),求得:

(22)

根据Eq. (18)及Eq. (12),进一步改写:

(23)

总结,KF的计算公式可以表示为如下所示:

(24)

(25)

(26)

(27)

(28)

当模型参数

且系统中假设不含有高斯噪声,即
,可以看出KF与RLS的计算公式是一致的。

如何选取合适的Q和R?

这个Q和R的选取是一个重要问题。

Q和R分别代表对模型预测值和实际测量值的权重,Q越大,KF越不利用模型预测值来估算参数;同理,R越大,KF越不利用实际测量值来估算参数。

同时引用秦永元结论《卡尔曼滤波与组合导航原理》:

Q、R无法精确获得,只知道可能的取值范围,则采用可能的较大值(保守)。如果不确切知道Q、R信息,应适当增大Q的取值,以增大对实时量测值的利用权重,俗称调谐。但是调谐存在盲目性,无法知道Q要调到多大才行。

三、仿真分析

首先建立SPMSM的模型,利用RLS与KF对SPMSM模型参数的电感,电阻进行同时辨识。

假设初始参数为:

(29)

采样时间为50us;电机转速为900rpm,负载转矩阶跃为10Nm-3Nm。

RLS与KF辨识结果如下所示:

默认不存在过程噪声

和测量噪声
,即R=I;Q=0:

b0f9695158bb5a02cfcce5bd48cf4604.png
图a:Te; 图b:Rs; 图c:Ls

上图中可以看出RLS与KF估算的SPMSM电机参数一致,验证了R=I;Q=0的KF等效于RLS。

默认系统仅含有测量噪声

,在测量电流端加入高斯噪声(Noise Power为0.000001,采样间隔为50us)即R=[1 0 ;0 1]*0.000054;Q=0:

fdc131a16f5f71c27c9efc4a884b1828.png
图a:Rs; 图b:Ls


从上图可以看出KF估算参数高于RLS。

当进一步增大R=[1 0 ;0 1]*0.0054,可以看出下图的RLS与KF性能基本一致。

7fe317c64256a1eedc814972bc3fdfcf.png
图a:Rs; 图b:Ls

由于在仿真中,不存在过程噪声,即模型准确,如果加入一定的的过程噪声,即Q协方差:Q=0.1*[1 0 ;0 1]; 再次建立KF模型,从下图可以看出,Rs和Ls都会受到较大的干扰。

11a421119c712ce64d8a31c2d2990715.png
图a:Rs; 图b:Ls

四、总结

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)应该怎么取值,和噪声分布之间的关系是什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值