【Kalman Filter】一维卡尔曼滤波电流检测实验

您所在的位置:网站首页 Kalman滤波 【Kalman Filter】一维卡尔曼滤波电流检测实验

【Kalman Filter】一维卡尔曼滤波电流检测实验

2023-03-13 20:26| 来源: 网络整理| 查看: 265

一、基础

本文是课程报告的一个记录总结,可以给之前没接触过但想要了解卡尔曼滤波算法提供一些入门资料,以及想快速实现实物搭建验证实验的同学提供实验设置、结果分析的思路及本人用到的代码。 因为刚接触卡尔曼滤波不久,难免有错误及不准确的地方,欢迎指出。有些内容参考自其他优秀博客,最后会给出参考链接,如有侵权,立即删除。

本文内容概述

本文主要讲述了一维卡尔曼滤波在电流滤波中的应用。首先简单讲解了対卡尔曼滤波原理的理解,然后介绍了卡尔曼滤波实验的的硬件电路及软件实现,提供源码下载。最后使用频谱分析了实验结果并进行总结。在参考资料部分推荐了个人看过的认为高质量的参考资料。

kalman滤波原理

卡尔曼滤波应用广泛,图像处理、目标跟踪、导航定位等都有应用,因此也有不同的推导方式,本文主要从控制部分対卡尔曼滤波进行介绍。卡尔曼滤波主要分为线性卡尔曼滤波、拓展卡尔曼滤波、无迹卡尔曼滤波等。分别适用于线性系统、若非线性和强非线性的系统。本文使用的是线性卡尔曼滤波,此后讲述的也主要是线性卡尔曼滤波的内容,其依赖于系统的状态空间方程(学过线性系统的了解状态空间模型的同学可能会比较熟悉,但没学过可以一样使用)。使用使用卡尔曼滤波器主要是将五个经典公式应用到算法中。 前人已经対卡尔曼滤波算法的原理叙述很详尽了,在此贴上几个个人认为讲的比较好的博客视频等资料【参考资料】

系统模型

当你使用传感器対某个数据进行测量时,为什么会测不准?因为有噪声。 那噪声从哪里来?一个是系统模型与真实物理模型直接并非完全相同的,另一部分是传感器本身具有测量误差。 而卡尔曼滤波使用统计方法,尽可能多的利用已知信息获得真实的目标信息。

系统的模型为

A :表示状态转移系数矩阵,n×n 阶 B :表示可选的控制输入的增益矩阵 Q :表示过程激励噪声的协方差矩阵 H :表示量测系数矩阵,m×n阶矩阵 R :表示测量噪声协方差矩阵

五个公式

卡尔曼滤波是迭代形式,已知上一时刻的融合数据,加上当前时刻的测量数据就可以获得当前时刻的融合数据。(这里需要注意,测量数据不是真实数据!因为传感器并不能获得真实数据,如果能获得真实的数据,那就不需要滤波算法了)。 首先明确两个概念, 先验估计:在还没获得传感器测量结果时,利用之前建立的系统模型対真实结果进行预测的值。 后验估计:在使用传感器获得数据后,结合传感器数据和先验估计值获得的更接近真实值的值。 那么按照什么原则结合测量数据和预测数据呢?答案是加权,就是按照一定的比重将二者结合起来,使其更接近真实值。那么权重应该怎么设置呢?当传感器更精确时,把传感器测量数据的权重占比调高一点,当预测的更精确时,将系统先验估计的值权重占比挑高。极端情况下,假设传感器测量数据百分百准确,结果应该全部采用传感器数据。 上面思路的具体的实现过程体现在下面的五个公式中。在单片机的每一个处理周期内卡尔曼滤波算法进行预测-更新两个步骤。 预测:

更新:

二、硬件电路 01 实验思路

使用可调电源模块输出恒定的电流值,负载为两个水泥电流。串联一个霍尔电流传感器获得其电流值。 因为电源模块的输出值精度高于单片机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+  串口上位机软件,用于显示波形

(注:点击文件名可直达官网进行下载)

卡尔曼滤波

互补滤波和滑动平均滤波

主要流程

四、实验结果 01 不同Q值卡尔曼滤波效果

红色线:原始数据 绿色线:卡尔曼滤波后数据 上下两图的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