卡尔曼滤波器在温度测量抗干扰中的实际应用效果
来源:互联网 发布:unity3d mesh 拆分 编辑:程序博客网 时间:2024/06/01 09:42
double CSerialCtrlDemoDlg::KalmanFilter(KalmanInfo* kalmanInfo, double lastMeasurement){//预测下一时刻的值//x的先验估计由上一个时间点的后验估计值和输入信息给出,此处需要根据基站高度做一个修改double predictValue = kalmanInfo->A* kalmanInfo->filterValue; //求协方差kalmanInfo->P = sqrt(kalmanInfo->A * kalmanInfo->A * kalmanInfo->P * kalmanInfo->P + kalmanInfo->Q * kalmanInfo->Q ); //计算先验均方差 p(n|n-1)=A^2*p(n-1|n-1)+qdouble preValue = kalmanInfo->filterValue; //记录上次实际坐标的值 //计算kalman增益kalmanInfo->kalmanGain = sqrt( (kalmanInfo->P * kalmanInfo->P * kalmanInfo->H * kalmanInfo->H) / (kalmanInfo->P * kalmanInfo->P * kalmanInfo->H * kalmanInfo->H + kalmanInfo->R * kalmanInfo->R) ); //Kg(k)= P(k|k-1) H’ / (H P(k|k-1) H’ + R)//修正结果,即计算滤波值kalmanInfo->filterValue = predictValue + (lastMeasurement - predictValue) * kalmanInfo->kalmanGain; //利用残余的信息改善对x(t)的估计,给出后验估计,这个值也就是输出 X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1))//更新后验估计kalmanInfo->P = (1 - kalmanInfo->kalmanGain * kalmanInfo->H) * kalmanInfo->P;//计算后验均方差 P[n|n]=(1-K[n]*H)*P[n|n-1]return kalmanInfo->filterValue;}
/*** @brief Init_KalmanInfo 初始化滤波器的初始值* @param info 滤波器指针* @param Q 预测噪声方差 由系统外部测定给定* @param R 测量噪声方差 由系统外部测定给定*/void CSerialCtrlDemoDlg::Init_KalmanInfo(KalmanInfo* info, double Q, double R){info->A = 1; //标量卡尔曼info->H = 1; //info->P = 3; //后验状态估计值误差的方差的初始值(不要为0问题不大)info->Q = Q; //预测(过程)噪声方差 影响收敛速率,可以根据实际需求给出info->R = R; //测量(观测)噪声方差 可以通过实验手段获得info->filterValue = 23; // 测量的初始值}
一直都想看看kalman滤波器在数据滤波的实际效果。近期在一个温度控制应用项目里,通过博主这篇文章 ,反复看了好多遍,又在chamber采集了实际的温度数据。在原始数据里认为添加了一些扰动,滤波器处理效果如下
阅读全文
0 0
- 卡尔曼滤波器在温度测量抗干扰中的实际应用效果
- ZigBee在电力系统温度测量中的应用
- 卡尔曼滤波器的原理及应用
- 卡尔曼/扩展卡尔曼滤波器的原理及应用
- 卡尔曼/扩展卡尔曼滤波器的原理及应用
- DS18B20温度测量(2)实际制做
- 视频教程:卡尔曼滤波器的原理以及在MATLAB中的实现
- 视频教程:卡尔曼滤波器的原理以及在MATLAB中的实现
- [转帖]卡尔曼滤波器
- 卡尔曼滤波器
- 卡尔曼滤波器
- 卡尔曼滤波器
- 卡尔曼滤波器
- 转帖]卡尔曼滤波器
- 卡尔曼滤波器小结
- 卡尔曼滤波器
- 离散卡尔曼滤波器
- 卡尔曼滤波器
- 排列序号II
- 谈及未来的 AI, 也许你已身处其中 —— 记 InfoQ 对青云QingCloud 联合创始人林源的采访
- Java之IO流总结
- Python3.x 数据结构
- 一篇文章搞定java线程
- 卡尔曼滤波器在温度测量抗干扰中的实际应用效果
- git提交代码到GitHub问题解决
- SpringBoot非官方教程 | 第二十四篇: springboot整合docker
- Delete and Earn
- idea Ctrl+Z撤销
- router
- spring中XML方式实现AOP编程
- 原生JS封装的ajax请求
- Neo4j简介及Py2Neo的用法(python操作neo4j)