附錄:補充材料
附1、卡爾曼濾波主要框架?
卡爾曼濾波的本質屬于系統的最優估計,通過卡爾曼增益來修正狀態預測值,減小噪聲信號對測試精度的影響,其核心內容是基于上一時刻狀態的估計值以及當前狀態的觀測值,給出當前狀態的最優估計,該算法涉及的核心方程有:
其中,xt為系統狀態矩陣;zt為系統觀測矩陣(實驗結果);A為狀態轉移矩陣;B為控制輸入矩陣;H為狀態觀測矩陣。
附2、卡爾曼濾波應用實例?
本部分通過簡單的算例,介紹了卡爾曼濾波的應用場景,后續針對課題組實際需求,編寫了能夠應用于大應變傳感器的濾波程序,具體如下所示:
上圖中黑線表述為信號采集系統得到的原始信號,紅線表述為卡爾曼濾波后展現的信號特征;從圖中可以看出,卡爾曼濾波能夠有效地減小測量誤差;其中,狀態轉換矩陣A=1,具體物理意義為:傳感器輸出信號只與應變量相關,不施加外界激勵時,輸出信號不發生改變;狀態觀測矩陣H=1,具體物理意義為:傳感器輸出的信號能夠直接測量;
具體使用的源程序代碼如下:
clear all;clc %先對不同變量進行定義 % Q為過程激勵噪聲協方差 % R為觀測噪聲協方差 % X_bar為先驗證估計 % Xbar為后驗估計,最優估計值 % P_為先驗估計誤差協方差 % P為后驗估計誤差協方差 % Z為測量結果,測量數據(實驗結果) % K為卡爾曼增益 % 核心代碼 % 讀取傳感器輸出信號 node='信號采集結果.txt'; [x,Z]... =textread(node,'%f%f','emptyvalue',0,'headerlines',10); % 定義超參數:實驗數據長度,過程激勵噪聲協方差,觀測噪聲協方差(測量設備性能參數) changdu=length(Z); Q=0.04; R=100.25; % 定義尺寸參數 cicun=[changdu,1]; % 實驗數據 % Z=24+sqrt(R)*randn(cicun); % 定義初始迭代參數 X_bar=zeros(cicun); Xbar=zeros(cicun); K=zeros(cicun); P_=zeros(cicun); P=zeros(cicun); P(1)=1; Xbar(1)=900.3; % 卡爾曼濾波參數更新 for n=2:changdu % 更新先驗估計 X_bar(n)=Xbar(n-1); % 更新先驗估計誤差協方差 P_(n)=P(n-1)+Q; % 狀態更新 K(n)=P_(n)/(P_(n)+R); Xbar(n)=X_bar(n)+K(n)*(Z(n)-X_bar(n)); P(n)=(1-K(n))*P_(n); end % 繪圖 plot(Z,'K+') hold on plot(Xbar,'r-') holdon
-
源程序
+關注
關注
63文章
1694瀏覽量
45496 -
卡爾曼濾波
+關注
關注
3文章
166瀏覽量
24659
原文標題:卡爾曼濾波
文章出處:【微信號:WW_CGQJS,微信公眾號:傳感器技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論