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