一種基于Kalman濾波的檢定臺(tái)測(cè)溫方法
【專利摘要】本發(fā)明涉及一種測(cè)溫方法,尤其是一種基于Kalman濾波的檢定臺(tái)測(cè)溫方法。其步驟是:對(duì)Kalman濾波器參數(shù)初始化;根據(jù)前一狀態(tài)噪聲值和最優(yōu)值預(yù)測(cè)現(xiàn)有時(shí)刻數(shù)值,并計(jì)算Kalman增益;添加新息序列,對(duì)數(shù)據(jù)抗野處理;由前一狀態(tài)數(shù)值估計(jì)現(xiàn)有狀態(tài)數(shù)值,并計(jì)算下一狀態(tài)協(xié)方差,并對(duì)相關(guān)數(shù)據(jù)更新,返回Kalman濾波最優(yōu)值。本發(fā)明對(duì)傳統(tǒng)Kalman濾波加入了新息序列,提高了大型檢定臺(tái)測(cè)溫電路對(duì)工業(yè)現(xiàn)場(chǎng)抗干擾能力;kalman濾波具有很好的平滑性,能準(zhǔn)確實(shí)時(shí)測(cè)量檢定臺(tái)進(jìn)水管、回水管和水箱的水溫度;將Kalman濾波引入到熱計(jì)量行業(yè)檢定臺(tái)水溫測(cè)量中,具有一定示范意義,起到一定示范作用。
【專利說明】—種基于Kalman濾波的檢定臺(tái)測(cè)溫方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種測(cè)溫方法,尤其是一種基于Kalman濾波的檢定臺(tái)測(cè)溫方法。
【背景技術(shù)】
[0002]在熱計(jì)量行業(yè)中需要超聲波熱量表檢定設(shè)備對(duì)出廠的超聲波熱量表進(jìn)行逐一檢定,這就需要檢定臺(tái)自身能夠精確實(shí)時(shí)地對(duì)管路中的水溫進(jìn)行測(cè)量;由于測(cè)量系統(tǒng)臨近大功率電機(jī)等設(shè)備,測(cè)試現(xiàn)場(chǎng)環(huán)境比較復(fù)雜,需要檢定設(shè)備中的測(cè)溫電路具有良好的抗干擾能力,現(xiàn)有技術(shù)中,需要對(duì)檢定設(shè)備中的這兩方便進(jìn)行改善。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術(shù)問題是提供一種基于Kalman濾波的檢定臺(tái)測(cè)溫方法,該方法能夠提高測(cè)溫系統(tǒng)在工業(yè)現(xiàn)場(chǎng)中的抗干擾能力,且由于Kalman濾波是從一組有限的、包含噪聲的測(cè)量值(可能有偏差)中預(yù)測(cè)出與真實(shí)值更加接近的數(shù)值,基于水溫是一個(gè)相對(duì)變化緩慢的連續(xù)的量,該方法可以實(shí)現(xiàn)對(duì)水溫的精確實(shí)時(shí)測(cè)量。
[0004]為了解決現(xiàn)有技術(shù)的不足,本發(fā)明所提供的技術(shù)方案是:一種基于Kalman濾波的檢定臺(tái)測(cè)溫方法,其特征在于,其步驟是:
(1)對(duì)Kalman濾波器參數(shù)進(jìn)行初始化,包括影響收斂速度、動(dòng)態(tài)噪聲的協(xié)方差(即估計(jì)值的協(xié)方差)、過程和測(cè)量的噪聲協(xié)方差等;
(2)根據(jù)前一狀態(tài)的噪聲值和最優(yōu)值來預(yù)測(cè)現(xiàn)有時(shí)刻的數(shù)值,并根據(jù)預(yù)測(cè)的數(shù)值計(jì)算Kalman ±曾益;
(3)添加新息序列,利用最小二乘法對(duì)相關(guān)數(shù)據(jù)進(jìn)行抗野處理,保證數(shù)據(jù)不出現(xiàn)大的波動(dòng),提高數(shù)據(jù)預(yù)測(cè)的準(zhǔn)確度;
(4)由前一狀態(tài)的值估計(jì)現(xiàn)有狀態(tài)的值,根據(jù)現(xiàn)有狀態(tài)的協(xié)方差和Kalman增益計(jì)算下一狀態(tài)的協(xié)方差,同時(shí)對(duì)Kalman算法內(nèi)的相關(guān)數(shù)據(jù)更新,并返回Kalman濾波的最優(yōu)值。
[0005]本發(fā)明的有益效果是:本發(fā)明將Kalman濾波算法引入到熱計(jì)量行業(yè)的檢定臺(tái)水溫的測(cè)量,對(duì)傳統(tǒng)Kalman濾波進(jìn)行了部分改造,加入了新息序列,提高了大型檢定臺(tái)測(cè)溫電路對(duì)工業(yè)現(xiàn)場(chǎng)的抗干擾能力;kalman濾波具有很好的平滑性,并且能很好的應(yīng)對(duì)工業(yè)現(xiàn)場(chǎng)的產(chǎn)生的干擾“野值”,能夠準(zhǔn)確實(shí)時(shí)的測(cè)量檢定臺(tái)的進(jìn)水管、回水管以及水箱的水溫度;將Kalman濾波引入到熱計(jì)量行業(yè)的檢定臺(tái)水溫測(cè)量中,具有一定的示范意義,可以對(duì)熱計(jì)量行業(yè)中的氣溫測(cè)量,水溫測(cè)量,流量測(cè)量等起到一定的示范作用。
【專利附圖】
【附圖說明】
[0006]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說明。
[0007]圖1是實(shí)際測(cè)量原始水溫值,以及經(jīng)過Kalman濾波與平滑濾波的水溫值展示。
[0008]圖2是Kalman濾波算法流程圖。
[0009]由附圖1中可清洗展示Kalman濾波具有很好的平滑性,對(duì)連續(xù)實(shí)時(shí)測(cè)量水溫具有很好的抗干擾能力。
【具體實(shí)施方式】
[0010]一種基于Kalman濾波的檢定臺(tái)測(cè)溫方法,其特征在于,其步驟是:
(1)對(duì)Kalman濾波器參數(shù)進(jìn)行初始化,包括影響收斂速度、動(dòng)態(tài)噪聲的協(xié)方差(即估計(jì)值的協(xié)方差)Q、過程和測(cè)量的噪聲協(xié)方差R等;
(2)根據(jù)前一狀態(tài)的噪聲值和最優(yōu)值來預(yù)測(cè)現(xiàn)有時(shí)刻的數(shù)值,得到預(yù)測(cè)后的現(xiàn)在時(shí)刻噪聲協(xié)方差PlO (pl0=p00+Q, p00是kalman函數(shù)起始時(shí)候的的預(yù)測(cè)值的協(xié)方差)和現(xiàn)在時(shí)刻的狀態(tài)估計(jì)值xlO (χ10=χ00,χ00是kalman濾波的起始時(shí)刻設(shè)定的最優(yōu)值),并根據(jù)預(yù)測(cè)的數(shù)值計(jì)算Kalman增益Kg,計(jì)算公式為kg=pl0/ (plO+R);
(3)添加新息序列e,e=z_xlO;其中,輸入?yún)?shù)z是實(shí)際測(cè)量初值,利用最小二乘法對(duì)相關(guān)數(shù)據(jù)進(jìn)行抗野處理,保證數(shù)據(jù)不出現(xiàn)大的波動(dòng),提高數(shù)據(jù)預(yù)測(cè)的準(zhǔn)確度;
進(jìn)行抗野處理時(shí),如果用于抗野處理的abs_e ( 1,則新息序列e的值不變;如果I< abs_e ( 2,則新息序列e = (0.5/abs_e)*e ;如果野值超過了估計(jì)范圍,即abs_e > 2,則新息序列不采納測(cè)量值,e=0 ;此處的抗野處理判斷采用最小二乘法的特例進(jìn)行了處理;
(4)由前一狀態(tài)的值估計(jì)現(xiàn)有狀態(tài)的值,計(jì)算公式為,當(dāng)前狀態(tài)的最優(yōu)值xll=xlO+Kg*e ;根據(jù)現(xiàn)有狀態(tài)的協(xié)方差和Kalman增益計(jì)算下一狀態(tài)的協(xié)方差,其計(jì)算公式為Kalman函數(shù)結(jié)束時(shí)的最優(yōu)值pll=(l_kg)*plO ;同時(shí)對(duì)Kalman算法內(nèi)的x00、p00更新,x00=xll, p00=pll,并返回Kalman濾波的最優(yōu)值x00。
[0011 ] 其詳細(xì)的C語言函數(shù)為:
定義的全局變量:作為初始化數(shù)據(jù)float χΟΟ,ρΟΟ;
變量定義
x00 kalman濾波的起始時(shí)刻設(shè)定的最優(yōu)值,也作為函數(shù)返回值 xlO上一時(shí)刻的最優(yōu)值
xll當(dāng)前狀態(tài)的最優(yōu)值,在函數(shù)結(jié)束的時(shí)候?qū)⒋俗顑?yōu)值轉(zhuǎn)給xOO kg kalman 增益
p00 kalman函數(shù)起始時(shí)候的的預(yù)測(cè)值的協(xié)方差 PlO當(dāng)前狀態(tài)下預(yù)測(cè)值的協(xié)方差 pll kalman函數(shù)結(jié)束的時(shí)候?qū)⒆顑?yōu)值轉(zhuǎn)給輸入?yún)?shù)z:實(shí)際測(cè)量初值
float kalman (float z) //實(shí)際驗(yàn)證,如果kalman濾波的變化速度太慢,即不太夠敏銳,如果收斂速度太快則對(duì)于變量又太敏感,起不到良好的濾波效果
{
float xlO, plO, xll, kg, pll;// 浮點(diǎn)型數(shù)據(jù)
float e;用于抗野值的處理
float abs_e; //用于抗野值的處理
float Q=0.0257;//影響收斂速度、動(dòng)態(tài)噪聲的協(xié)方差,即估計(jì)值的協(xié)方差
float R=0.412;//過程和測(cè)量的噪聲的協(xié)方差xl0=x00; //根據(jù)上一時(shí)刻的最優(yōu)值上xOO估計(jì)本時(shí)刻的“狀態(tài)估計(jì)值”pl0=p00+Q;//利用上一狀態(tài)的過程噪聲協(xié)方差來預(yù)測(cè)本狀態(tài)的過程噪聲協(xié)方差kg=pl0/(pl0+R) ; //kg是Kalman增益,根據(jù)上一狀態(tài)的協(xié)方差和過程和測(cè)量的噪聲的協(xié)方差計(jì)算所得
e = z-X10;//e作為新息序列,代表了測(cè)量值與估計(jì)值的誤差,用于抗野值。這一段,以及下面的判斷仍然是符合最小二乘法的,只是將最小二乘法作為了一種特例//抗野值處理上界
abs_e = fabs(e); //不允許他出現(xiàn)大的波動(dòng)
if(abs_e <= I) //這里的I是根據(jù)經(jīng)驗(yàn)選取的對(duì)野值的容忍度以及對(duì)敏銳程度的要求
{
e = e;
}
else if(I < abs_e 〈= 2 )
{
e = (0.5/abs_e)*e; //0.5是一個(gè)常量參數(shù),屬于實(shí)驗(yàn)值
}
else// if (abs_e > 2)
{
e = O; //當(dāng)野值超過了估計(jì)范圍的時(shí)候,不采納測(cè)量值
}
//抗野值處理下界
xll=xlO+kg*e; Il由前一狀態(tài)的值估計(jì)本狀態(tài)的值
pll=(l-kg)*plO;//由本狀態(tài)的協(xié)方差,根據(jù)kalman增益計(jì)算下一狀態(tài)的協(xié)方差
x00=xl I; //重新更新最優(yōu)值
POO=Pll; //重新更新狀態(tài)預(yù)測(cè)的協(xié)方差
return xOO; //返回濾波之后的值
}。
【權(quán)利要求】
1.一種基于Kalman濾波的檢定臺(tái)測(cè)溫方法,其特征在于,其步驟是: (1)對(duì)Kalman濾波器參數(shù)進(jìn)行初始化,包括影響收斂速度、動(dòng)態(tài)噪聲的協(xié)方差,即估計(jì)值的協(xié)方差、過程和測(cè)量的噪聲協(xié)方差等; (2)根據(jù)前一狀態(tài)的噪聲值和最優(yōu)值來預(yù)測(cè)現(xiàn)有時(shí)刻的數(shù)值,并根據(jù)預(yù)測(cè)的數(shù)值計(jì)算Kalman ±曾益; (3)添加新息序列,利用最小二乘法對(duì)相關(guān)數(shù)據(jù)進(jìn)行抗野處理,保證數(shù)據(jù)不出現(xiàn)大的波動(dòng),提高數(shù)據(jù)預(yù)測(cè)的準(zhǔn)確度; (4)由前一狀態(tài)的值估計(jì)現(xiàn)有狀態(tài)的值,根據(jù)現(xiàn)有狀態(tài)的協(xié)方差和Kalman增益計(jì)算下一狀態(tài)的協(xié)方差,同時(shí)對(duì)Kalman算法內(nèi)的相關(guān)數(shù)據(jù)更新,并返回Kalman濾波的最優(yōu)值。
2.根據(jù)權(quán)利要求1所述的一種基于Kalman濾波的檢定臺(tái)測(cè)溫方法,其特征在于,Kalman增益的算法是預(yù)測(cè)后的現(xiàn)在時(shí)刻噪聲差除以預(yù)測(cè)后的現(xiàn)在時(shí)刻噪聲差與過程和測(cè)量的噪聲協(xié)方差之和。
3.根據(jù)權(quán)利要求1所述的一種基于Kalman濾波的檢定臺(tái)測(cè)溫方法,其特征在于,步驟(3)抗野處理時(shí),如果用于抗野處理的數(shù)值小于等于1,則新息序列的值不變;如果用于抗野處理的數(shù)值大于I小于等于2,則新息序列為0.5除以用于抗野處理的數(shù)值,再乘以原來的新息序列;如果野值超過了估計(jì)范圍,即用于抗野處理的數(shù)值大于2,則新息序列不采納測(cè)量值,即新息序列的值為O。
4.根據(jù)權(quán)利要求1所述的一種基于Kalman濾波的檢定臺(tái)測(cè)溫方法,其特征在于,步驟(4)中,根據(jù)現(xiàn)有狀態(tài)的協(xié)方差和Kalman增益計(jì)算下一狀態(tài)協(xié)方差的計(jì)算方法是現(xiàn)有時(shí)刻狀態(tài)的估計(jì)值加上Kalman增益與新息序列的積得到當(dāng)前狀態(tài)的最優(yōu)值,I減去Kalman增益后與預(yù)測(cè)后的現(xiàn)有時(shí)刻噪聲協(xié)方差的積得到下一狀態(tài)的噪聲協(xié)方差。
【文檔編號(hào)】G01K19/00GK104165711SQ201410383784
【公開日】2014年11月26日 申請(qǐng)日期:2014年8月6日 優(yōu)先權(quán)日:2014年8月6日
【發(fā)明者】董杰 申請(qǐng)人:山東省德魯計(jì)量科技有限公司