久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6023|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

卡爾曼濾波算法程序,輸入隨機數(shù),Q和R自己選

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:463943 發(fā)表于 2019-1-7 17:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
卡爾曼濾波算法,自己,輸入為隨機數(shù),Q和R要自己選
主函數(shù):

#include "kalman.h"

#include "stdio.h"

#include "stdlib.h"

void main(void)
{


        KalmanCountData k;
        //定義一個卡爾曼運算結(jié)構(gòu)體
        Kalman_Filter_Init(&k);
        //講運算變量初始化
        int n;        
        int a;
        srand((unsigned)time(NULL)); // 初始化隨機種子,使rand()產(chǎn)生的隨機數(shù)每次不一樣
           for(a = 0;a<1000;a++)
        //測試1000次
        {
                //m,n為1到100的隨機數(shù)
               
                n = 1+ rand() %100;
                //卡爾曼濾波,傳遞2個測量值以及運算結(jié)構(gòu)體
      
        Kalman_Filter(&k,n);

                //打印結(jié)果
                printf("第%d次迭代\n  輸入:%d, 輸出濾波值為:%f\r\n",a+1,n,k.Filter_Value);
      
        }
}
kalman.h:
typedef struct                    //定義結(jié)構(gòu)體
{
        float                                Filter_Value;                 //K-1時刻的系濾波值
        float                                A;                           //系統(tǒng)參數(shù),一維模型中通常選為1
        float                                H;                          //系統(tǒng)測量參數(shù),一維模型選擇為1
        float                                Kg;                        //卡爾曼增益
        float                                Q;                           //過程噪聲偏差
        float                                 R;                          //測量噪聲偏差
        float                                 P;                      //估計誤差協(xié)方差     
} KalmanCountData;

void Kalman_Filter_Init(KalmanCountData * Kalman_Struct)             //卡爾曼濾波器初始化
{
    Kalman_Struct->A = 1;
    Kalman_Struct->H = 1;
    Kalman_Struct->P = 3;                //后驗狀態(tài)估計值方差的初始值
    Kalman_Struct->Q = 0.1;               //過程噪聲偏差,實驗測的 ,要填的!
    Kalman_Struct->R = 10;                 //測量噪聲偏差,要填的!
    Kalman_Struct->Filter_Value = 0;                   //初始化設(shè)置k-1時刻的系統(tǒng)濾波后的值為0
}
double Kalman_Filter(KalmanCountData* Kalman_Struct, double Last_Measurement){
    double PredictValue = Kalman_Struct->Filter_Value*Kalman_Struct->A;     //先驗估計的預(yù)測值
    Kalman_Struct->P = Kalman_Struct->A*Kalman_Struct->P*Kalman_Struct->A+Kalman_Struct->Q; //求協(xié)方差
    double prevalve = Kalman_Struct->Filter_Value;  //記錄上一次(k-1)的值
    Kalman_Struct->Kg = Kalman_Struct->P*Kalman_Struct->H/(Kalman_Struct->H*Kalman_Struct->P*Kalman_Struct->H + Kalman_Struct->R);
    /*
        卡爾曼增益Kg = P(k|k-1) H’ / (H P(k|k-1) H’ + R)
    */
    Kalman_Struct->Filter_Value = PredictValue + (Last_Measurement-PredictValue) * Kalman_Struct->Kg;
    /*
        修正結(jié)果,更新預(yù)測值;X(k|k) =  X(k|k-1) + (Z(k) - H* X(k|k-1)) * Kg
    */
    Kalman_Struct->P = (1 - Kalman_Struct->Kg * Kalman_Struct->H) * Kalman_Struct->P;
    //更新后驗估計的協(xié)方差,P(k|k) = (1 - Kg * H) * P(k|k-1)
    return Kalman_Struct->Filter_Value;
}


Kalman.zip

89.46 KB, 下載次數(shù): 38, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:640288 發(fā)表于 2019-11-12 11:10 | 只看該作者
您好,這個程序中您說的過程測量噪聲是實驗測的,能給點測量方法嗎,最近在做卡爾曼濾波算法對系統(tǒng)誤差測量一籌莫展。
回復(fù)

使用道具 舉報

板凳
ID:640288 發(fā)表于 2019-11-12 11:15 | 只看該作者
您好,我想請問一下系統(tǒng)測量誤差實驗測得的可以分享一下實驗測量的步驟嗎?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久亚洲 | 91一区二区 | 亚洲精品一区二区在线 | 日韩国产在线 | 欧美视频 亚洲视频 | 中文字幕av色 | japanhd成人| av激情在线 | 热久久999 | 国产欧美性成人精品午夜 | 免费在线观看av网站 | 国产精品一区二区在线 | 国产在线区 | 成人免费看片网 | 精品一区二区三区在线播放 | 亚洲欧美成人影院 | 午夜激情免费 | 一区二区三区四区在线视频 | 欧美1级 | 亚洲欧美中文日韩在线v日本 | 欧美一区二区在线 | 精品国产青草久久久久福利 | 精品视频一区二区 | 国产电影精品久久 | 四虎午夜剧场 | 亚洲人成人一区二区在线观看 | 日本a∨视频 | 欧美 中文字幕 | 美女爽到呻吟久久久久 | 欧美8一10sex性hd | www.夜夜骑.com| 午夜影院视频在线观看 | 国产高清视频一区二区 | 国产成人精品一区二 | 日韩一三区 | 国产二区av | 久久99精品国产99久久6男男 | 午夜国产一级片 | 性高湖久久久久久久久 | 成人做爰69片免费观看 | 色999视频|