【Kalman Filter】一维卡尔曼滤波电流检测实验 |
您所在的位置:网站首页 › Kalman滤波 › 【Kalman Filter】一维卡尔曼滤波电流检测实验 |
一、基础
本文是课程报告的一个记录总结,可以给之前没接触过但想要了解卡尔曼滤波算法提供一些入门资料,以及想快速实现实物搭建验证实验的同学提供实验设置、结果分析的思路及本人用到的代码。 因为刚接触卡尔曼滤波不久,难免有错误及不准确的地方,欢迎指出。有些内容参考自其他优秀博客,最后会给出参考链接,如有侵权,立即删除。 本文内容概述本文主要讲述了一维卡尔曼滤波在电流滤波中的应用。首先简单讲解了対卡尔曼滤波原理的理解,然后介绍了卡尔曼滤波实验的的硬件电路及软件实现,提供源码下载。最后使用频谱分析了实验结果并进行总结。在参考资料部分推荐了个人看过的认为高质量的参考资料。 kalman滤波原理卡尔曼滤波应用广泛,图像处理、目标跟踪、导航定位等都有应用,因此也有不同的推导方式,本文主要从控制部分対卡尔曼滤波进行介绍。卡尔曼滤波主要分为线性卡尔曼滤波、拓展卡尔曼滤波、无迹卡尔曼滤波等。分别适用于线性系统、若非线性和强非线性的系统。本文使用的是线性卡尔曼滤波,此后讲述的也主要是线性卡尔曼滤波的内容,其依赖于系统的状态空间方程(学过线性系统的了解状态空间模型的同学可能会比较熟悉,但没学过可以一样使用)。使用使用卡尔曼滤波器主要是将五个经典公式应用到算法中。 前人已经対卡尔曼滤波算法的原理叙述很详尽了,在此贴上几个个人认为讲的比较好的博客视频等资料【参考资料】 系统模型 当你使用传感器対某个数据进行测量时,为什么会测不准?因为有噪声。 那噪声从哪里来?一个是系统模型与真实物理模型直接并非完全相同的,另一部分是传感器本身具有测量误差。 而卡尔曼滤波使用统计方法,尽可能多的利用已知信息获得真实的目标信息。 系统的模型为 A :表示状态转移系数矩阵,n×n 阶 B :表示可选的控制输入的增益矩阵 Q :表示过程激励噪声的协方差矩阵 H :表示量测系数矩阵,m×n阶矩阵 R :表示测量噪声协方差矩阵 五个公式 卡尔曼滤波是迭代形式,已知上一时刻的融合数据,加上当前时刻的测量数据就可以获得当前时刻的融合数据。(这里需要注意,测量数据不是真实数据!因为传感器并不能获得真实数据,如果能获得真实的数据,那就不需要滤波算法了)。 首先明确两个概念, 先验估计:在还没获得传感器测量结果时,利用之前建立的系统模型対真实结果进行预测的值。 后验估计:在使用传感器获得数据后,结合传感器数据和先验估计值获得的更接近真实值的值。 那么按照什么原则结合测量数据和预测数据呢?答案是加权,就是按照一定的比重将二者结合起来,使其更接近真实值。那么权重应该怎么设置呢?当传感器更精确时,把传感器测量数据的权重占比调高一点,当预测的更精确时,将系统先验估计的值权重占比挑高。极端情况下,假设传感器测量数据百分百准确,结果应该全部采用传感器数据。 上面思路的具体的实现过程体现在下面的五个公式中。在单片机的每一个处理周期内卡尔曼滤波算法进行预测-更新两个步骤。 预测: 更新: 使用可调电源模块输出恒定的电流值,负载为两个水泥电流。串联一个霍尔电流传感器获得其电流值。 因为电源模块的输出值精度高于单片机ADC精度(10位),所以假设真实值为设定的(1.5A)。 02 用到元件及部分参数•单片机:Arduino Mega 2560 •可调直流源 : ZK-4KX •水泥电阻: 25W 1Ω*2 •电流传感器:ASC712T-05B 霍尔电流传感器参数 电源模块参数 03 实验连接图用到环境 环境及软件 功能描述 WIN10 64位 软件运行环境,WIN10专业版 Arduino 1.8.19 対arduino代码编译下载 VSCode 代码编辑,调用Arduino.exe Wofa+ 串口上位机软件,用于显示波形(注:点击文件名可直达官网进行下载) 卡尔曼滤波红色线:原始数据 绿色线:卡尔曼滤波后数据 上下两图的Q取值分别为100和2 可以看出Q值越大系统的响应越慢 02 不同算法滤波效果对比左图:设定的目标电流为1.5A 红色曲线:原始数据 绿色曲线:滑动平局值 浅绿曲线:卡尔曼滤波值 右图:电流方差值 红色曲线:原始数据 绿色曲线:滑动平局值 浅绿曲线:卡尔曼滤波值 03 fft分析将三种电流数据导入matlab进行fft获得其频谱图 从图中可以看出,经过卡尔曼滤波之后的频谱高频分量减少。 五、总结本篇文章主要完成了以下工作 介绍卡尔曼滤波原理 实现硬件电路搭建 一维卡尔曼滤波算法实现 实验结果频谱分析 资料代码下载见gitee Kalman_filter: 多传感器数据融合技术课程报告所用到的代码及资料 参考资料资料推荐 视频资料: MATLAB官方视频讲解(通俗易懂,简介明了)【52min 共7P】【官方中字】什么是卡尔曼滤波器 (Kalman Filters) ?(全7P) MATLAB&Simulink_哔哩哔哩_bilibili 作者在视频中使用的例子下载(需要mathworks账号,免费注册):Melda Ulusoy - MATLAB Central DR_CAN视频(良心之作,全网最详细的数学推导)【90min 共6P】DR_CAN的个人空间_哔哩哔哩_Bilibili 文章资料 卡尔曼滤波图解(知乎高赞,出现了无数次的小机器人例子):图说卡尔曼滤波,一份通俗易懂的教程 - 知乎 博客:(概念理解+算法实现)卡尔曼滤波器(Kalman Filter) 理解_whereismatrix的博客-程序员宝宝_卡尔曼滤波器 公式推导:卡尔曼滤波系列——经典卡尔曼滤波推导 - 知乎 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |