基于C8051F310的高靈敏車輛檢測算法
1 引言
彎路轉(zhuǎn)彎處經(jīng)常出現(xiàn)一段盲區(qū),司機(jī)看不到彎路對面是否有車輛通過,因而引發(fā)大量的交通事故,因此,消除盲區(qū)造成的交通事故顯得尤為重要。為此,設(shè)計了基于C8051F310的山路轉(zhuǎn)彎預(yù)警系統(tǒng)。該系統(tǒng)當(dāng)檢測到彎路對面有車時可及時通過交通警示燈提前警示司機(jī)注意避讓。因此,準(zhǔn)確判斷是否有車輛經(jīng)過是該系統(tǒng)設(shè)計的關(guān)鍵。
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)設(shè)計方案
該系統(tǒng)設(shè)計的主要目的是警示司機(jī)在行駛時注意安全,預(yù)防事故。在山路轉(zhuǎn)彎處兩邊分別放置該系統(tǒng),每邊系統(tǒng)控制一警示燈。當(dāng)一方系統(tǒng)檢測到車輛時,通過RF通訊發(fā)送至對方系統(tǒng),對方系統(tǒng)接收到信號后,控制警示燈閃爍以提示司機(jī)。
圖1為系統(tǒng)設(shè)計組成框圖。其中,車輛檢測傳感器采用正弦波振蕩電路檢測車輛,在檢測電路中,輸出信號頻率由C8051F310采集得到,然后通過一階濾波算法處理,濾除掉因環(huán)境因素等產(chǎn)生的頻率干擾,并進(jìn)一步計算驗證C8051F310的采集精度。
2.2 系統(tǒng)的硬件電路設(shè)計
圖2為系統(tǒng)主要硬件電路。車輛檢測傳感器的輸入信號為U(t),該正弦信號通過比較器變?yōu)榉讲ㄐ盘柡?,再輸入到單片機(jī)C8051F310,然后單片機(jī)通過計數(shù)器采集信號頻率。
2.3 一階濾波算法
一階濾波,即一階慣性濾波。一階低通濾波算法公式為:
式中,α為濾波系數(shù),X(n)為本次采樣值,Y(n-1)為上次濾波輸出值,Y(n)為本次濾波輸出值。
一階低通濾波法采用本次采樣值與上次濾波輸出值進(jìn)行加權(quán),得到有效濾波值,使得輸出對輸入有反饋?zhàn)饔?。濾波系數(shù)為0~1;該系數(shù)決定新采樣值在本次濾波結(jié)果中所占的權(quán)重。一階濾波系數(shù)可以是固定的,也可以按一定程序算法自動計算。但一階濾波算法無法完全兼顧靈敏度和平穩(wěn)度。只能尋找一個平衡點(diǎn),在該系統(tǒng)設(shè)計可接受的靈敏度范圍內(nèi)選取盡可能好的平穩(wěn)度。即當(dāng)數(shù)據(jù)快速變化時,濾波結(jié)果能及時跟進(jìn)(靈敏度優(yōu)先);而當(dāng)數(shù)據(jù)趨于穩(wěn)定,在固定點(diǎn)上下振蕩時,濾波結(jié)果趨于平穩(wěn)(平穩(wěn)度優(yōu)先)。
2.4 車輛檢測電路
圖3為正弦波振蕩電路。該電路用于車輛檢測電路傳感器,能夠感應(yīng)出金屬物體的存在。采用渦流傳感方式,將埋入地下的探測線罔直接接入正弦波振蕩電路。
在未檢測到車輛等金屬物體時,振蕩電路輸出信號u0(t)的頻率基本變化不大,但該值不是一直保持不變,而會在一定范圍內(nèi)漂移。當(dāng)檢測到車輛等金屬物體時,U0(t)的頻率f0會突變?yōu)閒。頻率差△f=f-f0,其中△f的范圍經(jīng)大量的實(shí)驗得出一般為幾百赫茲到幾千赫茲。圖3中電路的振蕩頻率為:
式中,f與電路中L、C1、C2有關(guān)。
當(dāng)電感L數(shù)值變化時,f也會相應(yīng)改變。同樣當(dāng)電容容值發(fā)生變化時,f也隨之變化。一般情況下,電容值隨環(huán)境溫度變化而變化,因此振蕩頻率f也隨溫度變化而變化。
2.5 檢測電路頻率算法
因為檢測電路中信號頻率隨時在改變,這為檢測機(jī)動車輛等金屬物體帶來一定困難,尤其在環(huán)境溫度急劇變化時,信號自身頻率值會大幅變化。高溫時在室外環(huán)境所采集的振蕩電路數(shù)據(jù)分析得出:f值在1 h內(nèi)隨溫度變化幾百赫茲,測量期間沒有金屬物體靠近。因此該設(shè)計采用基準(zhǔn)動態(tài)改變方法。具體計算方法如下:設(shè)定fz為基準(zhǔn)頻率;fc為參與計算和判斷的采集頻率;f為實(shí)際采集頻率。m和n為濾波因子。系統(tǒng)沒有上電時,fz初始化值為0;上電后,把第1次采集到的頻率f作為fz的初始值,隨后定時更換fz 值。
先把實(shí)際采集到的頻率f按式(2)進(jìn)行一階濾波處理,然后計算fc的值:
式(3)、式(4)中的濾波因子m,n通過試驗獲得。當(dāng)f值快速變化時濾波結(jié)果及時跟進(jìn)且數(shù)據(jù)變化越快,靈敏度越高。在檢測車輛時需定時更換fz,根據(jù)室外溫度變化更換時間。
當(dāng)有金屬物體經(jīng)過線圈時,采集的頻率值為f,而這時基準(zhǔn)頻率為fz。判斷車輛的算法是南式(3)得出fc,再由式(5)得:
通過判斷△f是否在同定范圍中得出車輛經(jīng)過情況。該范同是通過大量實(shí)驗得出的。具體CPU算法流程見圖4。
3 實(shí)驗及結(jié)果分析
該算法是經(jīng)過大量驗證試驗而得出的。在室內(nèi),試驗采用45 cm×45 cm的線圈(匝數(shù)n=12)。模擬機(jī)動車輛為一輛長1.2 m,寬0.8 m的鐵皮小推車。當(dāng)小車經(jīng)過線圈時,采集頻率fc與基準(zhǔn)頻率fz的差值約400 Hz,CPU能夠準(zhǔn)確判斷出有小車經(jīng)過。在室外試驗則是把線圈埋入公路地面下,當(dāng)汽車經(jīng)過線圈時,采集頻率fc與基準(zhǔn)頻率fz差值約400~2 000 Hz。這個差值隨著車輛型號不同和車輛底盤的高低而改變,而CPU也能準(zhǔn)確判斷出有機(jī)動車輛經(jīng)過。通過室內(nèi)和室外大量試驗,及時調(diào)整了濾波算法中的濾波因子,提高了檢測靈敏度,使其能夠滿足不同車輛的需求。
4 結(jié)束語
采用濾波算法并實(shí)時更新振蕩電路的基準(zhǔn)頻率可減少電路頻率變化對于車輛檢測的干擾。這里采用c8051F310設(shè)計的山路轉(zhuǎn)彎預(yù)防警示系統(tǒng)現(xiàn)已安裝在盤山路上,該系統(tǒng)能夠準(zhǔn)確檢測出車輛,并發(fā)送警示信息。同時設(shè)計中充分考慮到環(huán)境因素和維護(hù)的不便,設(shè)計有上位機(jī)監(jiān)控系統(tǒng)。因此,該系統(tǒng)結(jié)構(gòu)簡單,性能可靠,價格低廉,已引起交通部門的廣泛關(guān)注。