基于SOPC的高精度超聲波雷達(dá)測距系統(tǒng)設(shè)計(jì)
摘要:本文基于NIOS II軟核處理器和卡爾曼濾波算法,利用FPGA平臺(tái),超聲波傳感器和LCD液晶顯示系統(tǒng),設(shè)計(jì)了一種高精度超聲波雷達(dá)測距系統(tǒng)。以這種方法設(shè)計(jì)的SOPC系統(tǒng),克服了傳統(tǒng)超聲波雷達(dá)測距系統(tǒng)噪聲干擾過大的問題,提高了測距系統(tǒng)的測量精度。
本文引用地址:http://m.butianyuan.cn/article/281893.htm引言
傳統(tǒng)的超聲波雷達(dá)測距系統(tǒng)面臨噪聲過大、測量精度不夠高的問題,卡爾曼濾波算法是一種最優(yōu)化自回歸數(shù)據(jù)處理算法,在雷達(dá)測距和目標(biāo)跟蹤等領(lǐng)域有廣泛應(yīng)用,可以用來提高測距系統(tǒng)的精度。但是卡爾曼濾波算法的實(shí)現(xiàn)需要用到大量的浮點(diǎn)數(shù)矩陣運(yùn)算,軟件實(shí)現(xiàn)方式通常很難滿足系統(tǒng)對于高實(shí)時(shí)性的要求,硬件雖然可以保證系統(tǒng)的高實(shí)時(shí)性,但是硬件無法直接處理浮點(diǎn)數(shù),并且硬件開發(fā)周期過長,成本過高,這都限制了卡爾曼濾波算法的應(yīng)用。
NIOS II處理器是可編程邏輯器件的軟核處理器,可以和存儲(chǔ)器、I/O接口等外設(shè)嵌入到FPGA中,組成一個(gè)靈活、高效的可編程單芯片系統(tǒng)(SOPC),大大降低了系統(tǒng)的成本、體積和功耗,適合網(wǎng)絡(luò)、電信、數(shù)據(jù)通信、嵌入式和消費(fèi)市場等各種嵌入式應(yīng)用場合[1-3]。
本文基于FPGA平臺(tái),采用NIOS II軟核處理器,利用卡爾曼濾波算法對系統(tǒng)測量值進(jìn)行濾波處理,設(shè)計(jì)了一種SOPC系統(tǒng),以這種方法設(shè)計(jì)的測距系統(tǒng)綜合利用了軟件編程靈活的優(yōu)點(diǎn)以及硬件并行處理、速度較快的特點(diǎn),運(yùn)用軟硬件協(xié)同設(shè)計(jì)方法保證系統(tǒng)的整體性能最優(yōu)[4],從而大大提高了測距系統(tǒng)的性能和精度。
1 卡爾曼濾波理論
對于卡爾曼濾波器,首先我們需要引入一個(gè)系統(tǒng)方程:
系統(tǒng)的測量方程為:
對于系統(tǒng)方程,矩陣A稱為轉(zhuǎn)換矩陣,矩陣B稱為控制矩陣,矩陣C稱為測量矩陣,u是控制量,A、B、C、u由實(shí)際濾波模型決定,均為已知,上述參數(shù)可以是恒定的,也可以是隨時(shí)間變化的[5]。w是系統(tǒng)噪聲,v是測量噪聲。
卡爾曼濾波算法由五條濾波公式組成:
公式一:狀態(tài)預(yù)測方程
公式二:誤差預(yù)測方程
公式三:卡爾曼增益方程
公式四:濾波估計(jì)方程
公式五:誤差更新方程
卡爾曼濾波算法如圖1所示。濾波算法用反饋控制的方法估計(jì)過程狀態(tài),濾波器首先預(yù)測過程某一時(shí)刻的狀態(tài),然后通過測量值對預(yù)測值進(jìn)行反饋和校正,其中公式一和公式二組成預(yù)測方程,產(chǎn)生先驗(yàn)估計(jì),公式三、公式四和公式五組成校正方程,將先驗(yàn)估計(jì)和測量值結(jié)合構(gòu)造改進(jìn)的后驗(yàn)估計(jì),即用測量值對預(yù)測值進(jìn)行校正,卡爾曼濾波器就是通過這樣一個(gè)不斷的“預(yù)測(先驗(yàn))—測量—校正(后驗(yàn))”的過程,使得最優(yōu)估計(jì)的誤差隨時(shí)間以指數(shù)衰減,從而使得數(shù)據(jù)逐漸“收斂”,以此來達(dá)濾波的目的[6 。
2 系統(tǒng)硬件設(shè)計(jì)
如圖2所示,系統(tǒng)的硬件部分由超聲波傳感器,F(xiàn)PGA開發(fā)板以及LCD液晶屏組成。系統(tǒng)工作時(shí),F(xiàn)PGA通過超聲波傳感器的驅(qū)動(dòng)模塊來讀取傳感器采集的實(shí)時(shí)測量數(shù)據(jù),這些數(shù)據(jù)經(jīng)過卡爾曼濾波算法進(jìn)行濾波和去噪處理后,再通過LCD驅(qū)動(dòng)模塊控制LCD液晶屏進(jìn)行數(shù)據(jù)的實(shí)時(shí)展示。
在該系統(tǒng)中,超聲波傳感器驅(qū)動(dòng)和LCD驅(qū)動(dòng)采用Verilog HDL設(shè)計(jì),卡爾曼濾波模塊通過NIOS II軟核中的C語言實(shí)現(xiàn)。這樣既可以發(fā)揮硬件處理速度快的特點(diǎn),又可以很好的發(fā)揮C語言處理浮點(diǎn)數(shù)運(yùn)算和編程靈活的特點(diǎn),從而保證系統(tǒng)性能最優(yōu)。
系統(tǒng)采用的LCD液晶屏的尺寸是320*240。圖3是LCD屏幕的分區(qū)顯示效果圖,液晶屏最上部顯示運(yùn)動(dòng)狀態(tài)檢測結(jié)果,下部顯示實(shí)時(shí)數(shù)據(jù),其中左側(cè)顯示實(shí)時(shí)波形曲線,右側(cè)顯示實(shí)時(shí)數(shù)值數(shù)據(jù)。
3 系統(tǒng)軟件設(shè)計(jì)
該系統(tǒng)的軟件算法流程如圖4所示,F(xiàn)PGA通過超聲波傳感器采集距離信息,并進(jìn)行距離信息的存儲(chǔ)以完成被檢測物體的運(yùn)動(dòng)狀態(tài)判斷,當(dāng)物體處于靜止?fàn)顟B(tài)時(shí)則使用一維卡爾曼濾波算法對含噪聲的距離測量值進(jìn)行濾波去噪;當(dāng)物體處于運(yùn)動(dòng)狀態(tài)時(shí),則使用二維卡爾曼濾波算法對含噪聲的距離測量值進(jìn)行去噪和優(yōu)化處理,并可以利用關(guān)系矩陣和濾波算法得到運(yùn)動(dòng)物體的速度值。
評(píng)論