扩展卡尔曼滤波怎么加自适应?这是个扩展卡尔曼改进算法里面最简单最实用的做法,这个自适应三个字具体怎么理解?
我发现很多人还有误区,最后把卡尔曼滤波整没了,特别是锂电池中,因为状态方程中有一个是AH积分法定义式,最终变成本质是AH积分法。为什么,理论理解不透彻。接下来,博主将给你们构建一下自适应扩展卡尔曼滤波算法的框架。
1. 扩展卡尔曼滤波框架
(备注:这五个公式奠定了卡尔曼滤波算法的框架,并且递推顺序都是固定的)
自适应呢,你会发现其作用本质,可以改变矩阵A、B,或者是改变协方差矩阵P(k|k-1),进而改变增益矩阵K,进而改变状态矩阵X和协方差矩阵P(k)。那自适应扩展卡尔曼怎么理解?其是扩展卡尔曼滤波和自适应滤波器的结合,但是主框架还是卡尔曼滤波器,非线性函数泰勒级数展开取前两项,或者一般的求偏导数得到扩展卡尔曼滤波器,然后加入自适应模型参数或者是自适应噪声适应模块。
2. 自适应滤波理解
因为卡尔曼滤波算法可以理解成一种观测器或者是滤波器,锂电池里面是实测电压观测器。观测器,顾名思义就是利用测量方程观测的值去修正状态方程中的状态量。但是,卡尔曼一个最大的弊端(包括所有卡尔曼滤波算法以及以其为框架的联合算法)是其观测的值能够滤波的类型只是高斯白噪声,高斯是指其服从高斯分布,白噪声是指其功率谱是某种常数变化趋势(PS.具体还请你们自己再查一下,自己更清楚)。但是,这里说明一下,不是其只能处理高斯白噪声,而是假设其处理的系统噪声类型是高斯白噪声,这样就方便确定Q和R,所以你们也可以试试加性噪声和乘性噪声。但是弊端就是实际系统可能不是高斯白噪声,甚至可能是有色噪声,所以这样子滤波效果怎么可能会好。因此,自适应我的理解主要在两个方面:
(1)考虑实验实际测试过程中的噪声信号:这个怎么考虑?此时,测量方程的测量值(比如锂电池中实际测量电压)便起作用,现在关于方法很多:把电压误差为基础,通过某种转化方式,到改变协方差矩阵,然后到增益;还可以小波变换在频率领域分解电压和电流信号;或者其他比如相关法,贝叶斯、极大似然准则或者强跟踪器、渐消因子,平方根(QR分解或者UD分解)或者高斯模型等等。
(2)考虑模型不一致性,代入自适应模型,这个有两种方法比如:拟合曲线方法;分段代入等。
3.其他
还有人自适应滤波中使用开窗函数的,我想问你开窗函数本质是什么?上面提到的不管是根据电压差、相关法,贝叶斯、极大似然准则或者强跟踪器、渐消因子,平方根(QR分解或者UD分解)或者高斯模型,都是协方差渐变的,而且是跟噪声和模型相对应渐变的,进而影响到增益,进而加快滤波,而开窗中的协方差是突变的,并且这个突变的值也是你可以设置的,这跟强跟踪器有点相似性,所以,有些人利用一个开窗函数,为什么不用多个开窗函数呢,并且在锂电池中很容易实施,三个开窗函数,头中间尾部三个开窗函数,肯定理论上更好,实际情况当然跟工况啊,很多因素有关。而且,这个开窗函数中你又可以结合其他的算法,比如有人跟我讨论过的牛顿迭代,比如强跟踪器等等。
以上只是一些思路的分享,代码呢恐怕不能分享了,不管编程还是算法还是自己动手比较好,不要做伸手族,加油,各位!!!