一種提高里程脈沖計(jì)算車輛行駛速度精度的方法
【專利摘要】本發(fā)明公開一種提高里程脈沖計(jì)算車輛行駛速度精度的方法,包括以下步驟:步驟1:里程脈沖信號(hào)波形為矩形方波,當(dāng)里程脈沖信號(hào)每次出現(xiàn)下降沿時(shí),處理器產(chǎn)生中斷,處理器的中斷處理函數(shù)記錄以下參數(shù):里程脈沖數(shù)C、最后一次里程脈沖信號(hào)出現(xiàn)下降沿的時(shí)間點(diǎn)t、最后一次脈沖的周期T,其中,T=tn-tn-1,T的單位為秒;步驟2:采用均值法計(jì)算的當(dāng)前實(shí)時(shí)脈沖速度Sa:Sa=Dt/Dc;采用周期法計(jì)算的當(dāng)前實(shí)時(shí)脈沖速度St:St=1/T;步驟3:通過比較均值法求脈沖速度計(jì)算出的當(dāng)前實(shí)時(shí)脈沖速度Sa和周期法求脈沖速度計(jì)算出的當(dāng)前實(shí)時(shí)脈沖速度St,判定當(dāng)前的實(shí)時(shí)脈沖速度值S。
【專利說(shuō)明】一種提高里程脈沖計(jì)算車輛行駛速度精度的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及GPS行車記錄儀,具體涉及行車記錄儀的車載GPS設(shè)備中車輛行駛速度的精度的提高方法。
【背景技術(shù)】
[0002]在當(dāng)前的車載GPS設(shè)備和行車記錄儀中,對(duì)車輛的實(shí)時(shí)行駛速度的計(jì)算,有以下兩種常用技術(shù)手段:
1.通過GPS技術(shù),利用車輛所處的經(jīng)緯度變化來(lái)計(jì)算地球表面距離,再通過單位時(shí)間內(nèi)的距離計(jì)算得到行駛速度;
2.利用車輛出廠時(shí)預(yù)裝的里程脈沖信號(hào),對(duì)車輪滾動(dòng)時(shí)產(chǎn)生的脈沖進(jìn)行采集統(tǒng)計(jì),并將單位時(shí)間內(nèi)的脈沖個(gè)數(shù)乘以脈沖系數(shù)可得到行駛速度。可將其簡(jiǎn)稱為均值法求脈沖速度。
[0003]以上兩種方法中,前者由于GPS精度有限以及漂移問題,所以計(jì)算出的實(shí)時(shí)脈沖速度誤差較大,比較少用。
[0004]而后者的計(jì)算方法,在車輛行駛很慢(脈沖頻率很低)時(shí),計(jì)算出的脈沖速度誤差很大,尤其在要求快速記錄實(shí)時(shí)脈沖速度(如每200ms記錄一個(gè)脈沖速度值)時(shí),誤差更大;而當(dāng)脈沖信號(hào)受到突發(fā)干擾時(shí),這種計(jì)算方法的抗干擾性也不高。舉例說(shuō)明,當(dāng)項(xiàng)目需求要求設(shè)備每200ms計(jì)算一個(gè)脈沖速度時(shí),則設(shè)備處理器在I秒鐘內(nèi)至少需要采集處理5次脈沖才能滿足要求。當(dāng)車輛慢速到每秒鐘I個(gè)脈沖時(shí),如果每200ms計(jì)算一個(gè)脈沖速度值,則理論上I秒鐘內(nèi)的5次采樣的脈沖數(shù)增長(zhǎng),有I次為增長(zhǎng)I個(gè),另外4次為增長(zhǎng)0,再將200ms擴(kuò)展成單位時(shí)間I秒時(shí),5個(gè)采樣點(diǎn)的脈沖速度值中有I次為5個(gè)/秒,另外4次為O0
【發(fā)明內(nèi)容】
[0005]因此,針對(duì)上述的問題,本發(fā)明公開一種提高里程脈沖計(jì)算車輛行駛速度精度的方法,針對(duì)現(xiàn)有技術(shù)的技術(shù)方案進(jìn)行改進(jìn),在基于里程脈沖均值法的基礎(chǔ)上,增加脈沖周期的計(jì)算(可簡(jiǎn)稱為周期法求脈沖速度),通過兩種算法(即均值法求脈沖速度和周期法求脈沖速度)計(jì)算出的脈沖速度值的比較和取舍,解決只用均值法計(jì)算脈沖速度的誤差大和抗干擾性差的問題。
[0006]具體的,本發(fā)明的一種提高里程脈沖計(jì)算車輛行駛速度精度的方法,包括以下步驟:
步驟1:里程脈沖信號(hào)波形為矩形方波,當(dāng)里程脈沖信號(hào)每次出現(xiàn)下降沿時(shí),處理器產(chǎn)生中斷,處理器的中斷處理函數(shù)記錄以下參數(shù):里程脈沖數(shù)C、最后一次里程脈沖信號(hào)出現(xiàn)下降沿的時(shí)間點(diǎn)t、最后一次脈沖的周期τ,其中,T=W1, τ的單位為秒;
步驟2:處理器的計(jì)算脈沖速度的線程中,周期性地進(jìn)行計(jì)算更新實(shí)時(shí)脈沖速度S ;令上一次計(jì)算實(shí)時(shí)脈沖速度的時(shí)間為t_last ;本次計(jì)算實(shí)時(shí)脈沖速度的時(shí)間為t_cur ;本次計(jì)算實(shí)時(shí)脈沖速度距上次計(jì)算時(shí)的時(shí)間差為Dt, Dt = t_cur - t_last ;上一次計(jì)算實(shí)時(shí)脈沖速度的里程脈沖總數(shù)為C_last ;本次計(jì)算實(shí)時(shí)脈沖速度的里程脈沖總數(shù)為C_cur ;本次計(jì)算實(shí)時(shí)脈沖速度時(shí)相對(duì)上次計(jì)算時(shí)的脈沖增加數(shù)為Dc, Dc = C_cur - C_last ;
采用均值法計(jì)算的當(dāng)前實(shí)時(shí)脈沖速度Sa:Sa = Dt/Dc ;
采用周期法計(jì)算的當(dāng)前實(shí)時(shí)脈沖速度St:St = 1/T;
步驟3:通過比較均值法求脈沖速度計(jì)算出的當(dāng)前實(shí)時(shí)脈沖速度Sa和周期法求脈沖速度計(jì)算出的當(dāng)前實(shí)時(shí)脈沖速度St,判定當(dāng)前的實(shí)時(shí)脈沖速度值S,具體判定如下:
步驟31:如果(Sa-St)的絕對(duì)值大于預(yù)設(shè)值W,則表明誤差太大,信號(hào)受到干擾,不更新脈沖速度值S,結(jié)束本次脈沖速度更新;否則繼續(xù)步驟32 ;
步驟32:判斷Sa大于預(yù)設(shè)值M時(shí),將S更新為用均值法求脈沖速度計(jì)算出的當(dāng)前實(shí)時(shí)脈沖速度Sa ;否則,將S更新為用周期法求脈沖速度計(jì)算出的當(dāng)前實(shí)時(shí)脈沖速度St。
[0007]優(yōu)選的,所述預(yù)設(shè)值W=7,該值與記錄頻度及脈沖速度的加脈沖速度有關(guān),此處為每秒計(jì)算5個(gè)脈沖速度值時(shí)的合理經(jīng)驗(yàn)值。
[0008]優(yōu)選的,所述M=100。這個(gè)M可選的取值范圍比較大,與CPU的處理效率和定時(shí)器精度等有關(guān)系,從幾十到幾百均可,這里的100是在400MHz主頻CPU上驗(yàn)證后較合理的經(jīng)驗(yàn)值。
[0009]本發(fā)明通過采用上述方案,與現(xiàn)有技術(shù)相比,其具有如下有益效果:
1.通過兩種不同脈沖速度算法(均值法求脈沖速度和周期法求脈沖速度)的結(jié)合對(duì)比,增加了里程脈沖受到突發(fā)性干擾時(shí)的過濾作用;
現(xiàn)有技術(shù)中,除了均值法和周期法求脈沖速度,還有一種脈沖速度的計(jì)算辦法是,利用里程脈沖信號(hào)作為硬件計(jì)數(shù)器的觸發(fā)信號(hào),使用CPU的硬件計(jì)數(shù)器模塊對(duì)該信號(hào)進(jìn)行硬件計(jì)數(shù),然后軟件定時(shí)獲取計(jì)數(shù)值進(jìn)行脈沖速度計(jì)算,我們不妨簡(jiǎn)稱這種方法為“硬件計(jì)數(shù)法”求脈沖速度。這種計(jì)算方法的缺點(diǎn)有:a.該方法需要使用到CPU額外的定時(shí)/計(jì)數(shù)器模塊資源;b.這種算法的軟件抗干擾性不高,對(duì)外部里程脈沖信號(hào)的穩(wěn)定性要求非常高,增加了硬件設(shè)計(jì)的復(fù)雜度;c.該方法的里程脈沖總數(shù)是硬件模塊采集的,軟件無(wú)法獲取脈沖信號(hào)的周期,導(dǎo)致無(wú)法同時(shí)使用本方案中所述的均值法或周期法進(jìn)行脈沖速度計(jì)算;由于硬件計(jì)數(shù)法求脈沖速度的上述缺點(diǎn)尤其是其中的第c點(diǎn),所以不能將它使用到本方案中作為比較對(duì)象;
2.當(dāng)脈沖速度較低時(shí),采用脈沖周期計(jì)算得的頻率作為脈沖速度,巧妙地避開了頻率低時(shí)平均脈沖速度計(jì)算帶來(lái)的誤差,提高了脈沖速度的精度,并最終提高了車輛的行駛脈沖速度。
【專利附圖】
【附圖說(shuō)明】
[0010]圖1為里程脈沖信號(hào)的示意圖;
圖2為脈沖速度的計(jì)算流程圖。
【具體實(shí)施方式】
[0011]現(xiàn)結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)一步說(shuō)明。
[0012]如圖1所示為里程脈沖信號(hào)波形,當(dāng)信號(hào)每次出現(xiàn)下降沿時(shí),處理器產(chǎn)生中斷,在中斷處理函數(shù)中需要記錄以下參數(shù):
里程脈沖數(shù)(設(shè)為C)自加I ;
最后一次脈沖下降沿的時(shí)間點(diǎn)t (如圖中的tl、t2);
最后一次脈沖的周期T(如圖1中,T=t2-tl, T的單位為秒);
在程序的計(jì)算脈沖速度的線程中,周期性地進(jìn)行計(jì)算更新實(shí)時(shí)脈沖速度(設(shè)為S),該處理線程如圖2所示。為最終計(jì)算得S,先對(duì)以下將涉及的參數(shù)符號(hào)進(jìn)行說(shuō)明:
上一次進(jìn)行計(jì)算實(shí)時(shí)脈沖速度時(shí)的時(shí)間為t_last ;
本次計(jì)算實(shí)時(shí)脈沖速度時(shí)的時(shí)間為t_cur ;
本次計(jì)算實(shí)時(shí)脈沖速度距上次計(jì)算時(shí)的時(shí)間差為Dt (Dt = t_cur - t_last );
上一次進(jìn)行計(jì)算實(shí)時(shí)脈沖速度時(shí)的里程脈沖總數(shù)為C_last ;
本次進(jìn)行計(jì)算實(shí)時(shí)脈沖速度時(shí)的里程脈沖總數(shù)為C_cur ;
本次計(jì)算實(shí)時(shí)脈沖速度時(shí)相對(duì)上次計(jì)算時(shí)的脈沖增加數(shù)為Dc ( Dc = C_cur - C_last);
設(shè)均值法計(jì)算的當(dāng)前實(shí)時(shí)脈沖速度為Sa ;
設(shè)周期法計(jì)算的當(dāng)前實(shí)時(shí)脈沖速度為St ;
均值法計(jì)算脈沖速度得Sa: Sa = Dt/Dc ;
周期法計(jì)算脈沖速度得St: St = 1/T ;
通過比較Sa和St,判定當(dāng)前的脈沖速度值S的步驟為:
如果(Sa-St)的絕對(duì)值大于W,W的取值與記錄頻度以及脈沖速度的加脈沖速度有關(guān),W的范圍須大于記錄頻度(這里的頻度為每秒5次),并盡量小,太大將影響防干擾效果。本實(shí)施例中,W=7,為每秒計(jì)算5個(gè)脈沖速度值時(shí)的合理經(jīng)驗(yàn)值。那么,如果I Sa-St I >7,則說(shuō)明誤差太大,信號(hào)受到干擾,不更新脈沖速度值S,完成本次脈沖速度更新;否則繼續(xù)步驟b;
判斷Sa大于M,用Sa更新S ;否則,用St更新S。M與CPU的處理效率和定時(shí)器精度等有關(guān)系,從幾十到幾百均可,這里M取100,100是在400MHz主頻CPU上驗(yàn)證后較合理的經(jīng)驗(yàn)值。
[0013]盡管結(jié)合優(yōu)選實(shí)施方案具體展示和介紹了本發(fā)明,但所屬領(lǐng)域的技術(shù)人員應(yīng)該明白,在不脫離所附權(quán)利要求書所限定的本發(fā)明的精神和范圍內(nèi),在形式上和細(xì)節(jié)上可以對(duì)本發(fā)明做出各種變化,均為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種提高里程脈沖計(jì)算車輛行駛速度精度的方法,包括以下步驟: 步驟1:里程脈沖信號(hào)波形為矩形方波,當(dāng)里程脈沖信號(hào)每次出現(xiàn)下降沿時(shí),處理器產(chǎn)生中斷,處理器的中斷處理函數(shù)記錄以下參數(shù):里程脈沖數(shù)C、最后一次里程脈沖信號(hào)出現(xiàn)下降沿的時(shí)間點(diǎn)t、最后一次脈沖的周期τ,其中,T=W1, τ的單位為秒; 步驟2:采用均值法計(jì)算的當(dāng)前實(shí)時(shí)脈沖速度Sa:Sa = Dt/Dc ; 采用周期法計(jì)算的當(dāng)前實(shí)時(shí)脈沖速度St:St = 1/T; 其中,Dt為本次計(jì)算實(shí)時(shí)脈沖速度距上次計(jì)算時(shí)的時(shí)間差,Dt = t_cur - t_last ;t_last為上一次計(jì)算實(shí)時(shí)脈沖速度的時(shí)間;t_cur為本次計(jì)算實(shí)時(shí)脈沖速度的時(shí)間; Dc為本次計(jì)算實(shí)時(shí)脈沖速度時(shí)相對(duì)上次計(jì)算時(shí)的脈沖增加數(shù),Dc = C_cur - C_last ;C_last為上一次計(jì)算實(shí)時(shí)脈沖速度的里程脈沖總數(shù);C_cur為本次計(jì)算實(shí)時(shí)脈沖速度的里程脈沖總數(shù); 步驟3:通過比較均值法計(jì)算出的當(dāng)前實(shí)時(shí)脈沖速度Sa和周期法計(jì)算出的當(dāng)前實(shí)時(shí)脈沖速度St,判定當(dāng)前的實(shí)時(shí)脈沖速度值S,具體判定如下: 步驟31:如果(Sa-St)的絕對(duì)值大于預(yù)設(shè)值W,則表明誤差太大,信號(hào)受到干擾,不更新脈沖速度值S,結(jié)束本次脈沖速度更新;否則繼續(xù)步驟32 ; 步驟32:判斷Sa大于預(yù)設(shè)值M時(shí),將S更新為用均值法求脈沖速度計(jì)算出的當(dāng)前實(shí)時(shí)脈沖速度Sa ;否則,將S更新為用周期法求脈沖速度計(jì)算出的當(dāng)前實(shí)時(shí)脈沖速度St。
2.根據(jù)權(quán)利要求1所述的一種提高里程脈沖計(jì)算車輛行駛速度精度的方法,其特征在于:所述W=7。
3.根據(jù)權(quán)利要求1或2所述的一種提高里程脈沖計(jì)算車輛行駛速度精度的方法,其特征在于:所述M=100。
【文檔編號(hào)】G01P3/481GK103698552SQ201310639928
【公開日】2014年4月2日 申請(qǐng)日期:2013年12月4日 優(yōu)先權(quán)日:2013年12月4日
【發(fā)明者】鄭福弟, 任賦, 黃杭星, 郭亞松 申請(qǐng)人:廈門雅迅網(wǎng)絡(luò)股份有限公司