王 迪 都冠維 閆家琪
(華北理工大學(xué) 河北 唐山 063210)
卡爾曼濾波屬于一種軟件濾波方法,其基本思想是:以最小均方誤差為最佳估計(jì)準(zhǔn)則,采用信號(hào)與噪聲的狀態(tài)空間模型,利用前一時(shí)刻的估計(jì)值和當(dāng)前時(shí)刻的觀測(cè)值來更新對(duì)狀態(tài)變量的估計(jì),求出當(dāng)前時(shí)刻的估計(jì)值,算法根據(jù)建立的系統(tǒng)方程和觀測(cè)方程對(duì)需要處理的信號(hào)做出滿足最小均方誤差的估計(jì)??柭鼮V波器包括兩個(gè)主要過程:預(yù)估與校正。預(yù)估過程主要是利用時(shí)間更新方程建立對(duì)當(dāng)前狀態(tài)的先驗(yàn)估計(jì),及時(shí)向前推算當(dāng)前狀態(tài)變量和誤差協(xié)方差估計(jì)的值,以便為下一個(gè)時(shí)間狀態(tài)構(gòu)造先驗(yàn)估計(jì)值。
卡爾曼濾波算法的核心是由兩組方程組成的,分別為時(shí)間更新方程和狀態(tài)更新方程。時(shí)間更新方程完成對(duì)系統(tǒng)當(dāng)前狀態(tài)的先驗(yàn)估計(jì),同時(shí)計(jì)算當(dāng)前狀態(tài)變量值,計(jì)算誤差的協(xié)方差值。狀態(tài)更新方程利用時(shí)間更新方程在之前得出的對(duì)系統(tǒng)狀態(tài)的先驗(yàn)估計(jì)值和對(duì)系統(tǒng)當(dāng)前的狀態(tài)值的測(cè)量,完成對(duì)當(dāng)前狀態(tài)修正后的后驗(yàn)估計(jì)。算法的估算過程如下圖所示:
基本卡爾曼濾波只有當(dāng)目標(biāo)狀態(tài)方程和傳感器觀測(cè)方程均為線性時(shí),才是最小均方誤差意義下的最優(yōu)濾波器。實(shí)際情況中,商品定價(jià)系統(tǒng)是一非線性系統(tǒng),是一個(gè)非線性濾波問題,擴(kuò)展卡爾曼濾波(EKF )算法是一種應(yīng)用非常廣泛的非線性濾波算法。EKF 通過對(duì)非線性函數(shù)的泰勒展開式進(jìn)行一階線性化截?cái)?,從而將非線性濾波問題轉(zhuǎn)化為線性濾波問題,然后利用線性濾波理論求解,得到非線性濾波問題的次優(yōu)濾波算法。非線性運(yùn)動(dòng)模型的狀態(tài)方程和觀測(cè)方程可分別描述為:
擴(kuò)展卡爾曼濾波(EKF )算法用泰勒公式將非線性函數(shù)按其階數(shù)展開,略去了高、階項(xiàng),因此,在濾波過程中不可避免地引入了線性誤差。當(dāng)系統(tǒng)的狀態(tài)和觀測(cè)模型都接近線性時(shí),濾波結(jié)果將有可能接近真實(shí)值。而當(dāng)線性模型誤差較大時(shí),濾波結(jié)果將會(huì)出現(xiàn)顯著的偏差,甚至導(dǎo)致濾波發(fā)散。針對(duì)EKF 存在的不足,本文提出一種改進(jìn)擴(kuò)展卡爾曼濾波算法(IEKF),即在計(jì)算觀測(cè)矩陣的時(shí)進(jìn)行多次迭代,以提高濾波精度。IEKF 迭代過程如下:
本文將卡爾曼濾波算法應(yīng)用在2017年數(shù)學(xué)建模國(guó)賽B題第四問中,通過實(shí)驗(yàn)驗(yàn)證“拍照賺錢”APP的營(yíng)銷方案優(yōu)于現(xiàn)有的經(jīng)濟(jì)模式。根據(jù)試題中的數(shù)據(jù)可知,若單位區(qū)域內(nèi)可利用的人力資源豐富,相應(yīng)區(qū)域內(nèi)任務(wù)的完成情況較好,任務(wù)標(biāo)價(jià)應(yīng)適當(dāng)降低;若單位區(qū)域內(nèi)可利用的會(huì)員數(shù)量少,相應(yīng)的任務(wù)完成情況則較差,任務(wù)標(biāo)價(jià)應(yīng)適當(dāng)提高。最后,得出未完成任務(wù)原因是定價(jià)策略的失效,定價(jià)過低,不能對(duì)會(huì)員產(chǎn)生較大吸引。
系統(tǒng)模型應(yīng)用泰勒展開的方式進(jìn)行線性化,然后進(jìn)行卡爾曼濾波運(yùn)算??柭鼮V波改進(jìn)算法的遞推過程如下圖所示:
根據(jù)如圖的卡爾曼濾波改進(jìn)算法的遞推過程,使用Matlab仿真軟件對(duì)擴(kuò)展卡爾曼濾波算法對(duì)渡越時(shí)間的修正效果進(jìn)行驗(yàn)證,實(shí)驗(yàn)?zāi)P涂梢栽O(shè)定為使用超聲波模塊對(duì)已知距離的目標(biāo)進(jìn)行測(cè)距。
擴(kuò)展卡爾曼濾波算法在得到初始值之后,結(jié)合測(cè)距模型進(jìn)行500迭代運(yùn)算,卡爾曼濾波算法對(duì)任務(wù)標(biāo)價(jià)的實(shí)際效果(左)及修正效果(右)如下圖所示:
此圖為經(jīng)過Matlab程序運(yùn)算所得的曲線。(本文所指附件均來源于2017年高教社杯全國(guó)大學(xué)生數(shù)學(xué)建模挑戰(zhàn)賽)紅色的折線代表附件一中已經(jīng)完成任務(wù)的標(biāo)價(jià)(按照未改進(jìn)的模型為準(zhǔn)),綠色的折線代表附件一中已經(jīng)完成任務(wù)的標(biāo)價(jià)(按照改進(jìn)后最終的模型為準(zhǔn)),紫色的折線代表附件三中已完成任務(wù)的標(biāo)價(jià)(按照改進(jìn)后最終的模型為準(zhǔn))。
使用附件一種數(shù)據(jù)帶入最佳定價(jià)方案,可得出綠色的折線圖,與紅色線相比這種定價(jià)方案適用于“拍照賺錢”這種經(jīng)營(yíng)模式。根據(jù)假設(shè),可知當(dāng)帶入附件三的數(shù)據(jù),此定價(jià)趨勢(shì)接近于附件一采用的最佳定價(jià)方案,將此修正后的定價(jià)方案應(yīng)用于附件三中,可達(dá)最大盈利。
由此可知,使用卡爾曼濾波改進(jìn)算法進(jìn)行定價(jià)預(yù)測(cè)與實(shí)際情況相符,具有實(shí)際使用意義。
為了獲得更好的商品定位結(jié)果,針對(duì)傳統(tǒng)卡爾曼濾波算法算法存在的不足,提出一種改進(jìn)擴(kuò)展卡爾曼濾波算法的商品定價(jià)方法方法,并通過仿真對(duì)比實(shí)驗(yàn)測(cè)試其有效性和優(yōu)越性。仿真結(jié)果表明,改進(jìn)擴(kuò)展卡爾曼濾波算法不僅可以抵抗異常誤差的不利影響,魯棒性較強(qiáng),而且提高商品定價(jià)的精度,在多個(gè)領(lǐng)域具有廣泛的應(yīng)用前景。