石 磊,周 卓,張貞耀
(無錫華普微電子有限公司,江蘇無錫 214035)
儀表是駕駛員與汽車進行信息交流的重要接口,虛擬儀表盤指針是由采集到的CAN信號轉(zhuǎn)換成指針旋轉(zhuǎn)角度進行控制[1-2]。儀表指針的指示作用會對駕駛員認知過程產(chǎn)生影響[3]。CAN信號受外部干擾、急加速、急減速容易造成采集數(shù)據(jù)突變,然而液晶儀表與傳統(tǒng)機械儀表相比缺少阻尼器設(shè)計,直接將采集到的信號進行指針旋轉(zhuǎn)動作,指針將出現(xiàn)抖動、旋轉(zhuǎn)角度大的現(xiàn)象,指針從一個角度直接切換到另一個角度,沒有運動過程,視覺上生硬死板,影響用戶體驗[4-5]。因此,對采集到的CAN信號進行防抖處理和在指針跳變時插入運動過程對控制指針平滑變化有非常重要的意義。
目前指針防抖一般采用濾波算法。先確定指針旋轉(zhuǎn)角度范圍,通過對CAN總線上采集到的信號值進行濾波處理,使信號值波動減少,隨后將濾波處理后的信號值除以最大值并乘以角度范圍,即可得到當前應(yīng)當指向的顯示角度[6]?;跒V波算法的控制方法有3點缺陷:(1)濾波算法需要連續(xù)采集若干次數(shù)據(jù)直到數(shù)據(jù)穩(wěn)定之后才能逼近真實數(shù)據(jù),無法適應(yīng)于連續(xù)快速變化的數(shù)據(jù),在實際應(yīng)用場景中有局限性;(2)濾波算法誤差范圍在不同駕駛場景下難以界定,影響指針精度;(3)經(jīng)過濾波后的數(shù)據(jù)無法準確直觀地表現(xiàn)數(shù)據(jù)變化趨勢,從感官上無法反映指針平穩(wěn)變化、加速上升或加速下降的過程,無法滿足視覺要求。
為了彌補濾波算法的不足,提升用戶駕駛體驗,本文提出一種汽車液晶儀表指針穩(wěn)定性控制方法,不僅能有效防止由于信號突變帶來的指針抖動問題,同時能模擬機械儀表阻尼效果,直觀地表現(xiàn)指針快慢變化趨勢。
減小數(shù)據(jù)抖動的方式是將瞬時跳變值轉(zhuǎn)換為行程,在采集到數(shù)據(jù)信號后,將每幀數(shù)據(jù)轉(zhuǎn)換成指針的動作行程,使得指針在一段時間內(nèi)每次只進行微小的旋轉(zhuǎn)動作。轉(zhuǎn)換的過程使用插值算法,在當前位置與目標位置間插入若干個數(shù)值,減小每次旋轉(zhuǎn)的角度,增加指針的旋轉(zhuǎn)次數(shù)[7-8]。指針每次只進行微小的角度旋轉(zhuǎn),能有效防止跳變的現(xiàn)象。
使用當前數(shù)據(jù)幀與儀表盤額定量程的比例計算行程的動作耗時te,運用式(1)計算出插值個數(shù)。
式中C表示期望控制對象的插值個數(shù),F(xiàn)表示界面當前每秒傳輸幀數(shù)(Frame Per Second,F(xiàn)PS)。經(jīng)過反復(fù)試驗測試,要達到最佳顯示效果,儀表盤指針從最小值轉(zhuǎn)動到最大值的總時長控制在4 s左右,F(xiàn)PS應(yīng)在30以上。
使用插值算法僅能防止數(shù)據(jù)跳變帶來的影響,根據(jù)數(shù)據(jù)信號變化趨勢,應(yīng)用不同的插值算法則能呈現(xiàn)不同的變化效果。一般地,根據(jù)兩次數(shù)據(jù)信號變化斜率來判斷數(shù)據(jù)的變化趨勢,駕駛場景可能歸類為急加速、平穩(wěn)、急減速3種情況。
最后,儀表界面刷新時,依次從生成的插值數(shù)據(jù)數(shù)組中取出指針旋轉(zhuǎn)角度值,控制指針旋轉(zhuǎn)到指定位置。
本文將指針控制過程抽象為期望控制對象。其作用是根據(jù)當前采集到的信號值計算出一組指針旋轉(zhuǎn)角度,在期望值未被覆蓋前,指針將按這組角度值依次進行微小旋轉(zhuǎn),最終到達目標位置。每個期望控制對象至少包括4個元素:額定量程、動作時長、插值算法、插值數(shù)據(jù)數(shù)組。液晶儀表指針穩(wěn)定性控制方法實現(xiàn)流程如圖1所示。
圖1 液晶儀表指針穩(wěn)定性控制方法實現(xiàn)流程
第一步確定期望控制對象的額定量程。一般地,將液晶儀表盤指針從零刻度到最大刻度的角度值θ設(shè)置為額定量程。
第二步計算期望控制對象動作時長。結(jié)合液晶屏性能和視覺效果兩方面因素,確定儀表盤指針從零刻度到最大刻度動作總時長T,通過動作行程占額定量程的比例和總時長計算得到當前期望控制對象動作時長。儀表指針當前角度值θc到實時角度θe的動作行程Δθ=θe-θc,動作時長。將θe設(shè)置成期望控制對象的期望值,期望值作為下一次指針期望到達的位置值,在采集到新信號前保持不變。
式中t∈(0,t)e,是指指針動作時間點。
第四步根據(jù)幀率插入若干個數(shù)據(jù)。插入的數(shù)據(jù)組成數(shù)組vi=[v1,v2…vn-1,vn]。每次界面刷新時,從數(shù)組中獲取當前顯示值vi,每次刷新累計加1,計數(shù)小于數(shù)組長度時重復(fù)此步驟,直到數(shù)組中值取完或者實時采集數(shù)據(jù)發(fā)生變化[9]。
實時采集數(shù)據(jù)發(fā)生變化時,覆蓋控制對象期望值,并重復(fù)上述步驟。
本文以車速表為例,創(chuàng)建一個指針期望控制對象,假定車速在極短時間內(nèi)從17 km/h急加速到45 km/h,以此說明對指針的控制過程。
本文實例中車速被設(shè)計為0~220 km/h,儀表盤指針角度范圍為-135°~135°,則額定測量范圍θ=135°-(-135°)=270°。為方便計算,將儀表盤角度范圍規(guī)定為0°~270°,0°對應(yīng)最小車速0 km/h,270°對應(yīng)最大車速220 km/h。
根據(jù)液晶屏性能參數(shù)和反復(fù)實驗,儀表盤指針從零刻度旋轉(zhuǎn)到最大刻度動作總時長T被設(shè)置成4 s,指針既能及時響應(yīng)也具有良好的視覺效果。從17 km/h到45 km/h指針動作行程,不對車速信號值處理的情況下,指針一次性旋轉(zhuǎn)34°,必定出現(xiàn)跳變的情況。指針旋轉(zhuǎn)Δθ的動作時長4=0.5 s。
由于車速是在極短時間內(nèi)變化的,其數(shù)據(jù)曲線呈急上升過程,相鄰兩點斜率趨近于1,是一個急加速過程,插值函數(shù)應(yīng)選用急加速插值式(3)。儀表人機界面刷新率F=30時,總共應(yīng)插入C=30×0.5=15個數(shù)據(jù)。15個數(shù)據(jù)對應(yīng)的時刻t分別為0.033 s、0.069 s、0.103 s、…、0.5 s,將數(shù)值代入式(4)中,本例共插入的15個數(shù)值結(jié)果為:
從時間點0開始界面刷新時依次從數(shù)組中獲取當前角度值進行指針旋轉(zhuǎn),每次取值時同時設(shè)置值為指針當前角度值θc,期望值不變的情況下,直到取盡數(shù)組中的值。在監(jiān)聽到車速變化時,覆蓋控制對象期望值,并重復(fù)以上步驟,重新計算指針動作過程再進行顯示。
通過Spy3工具模擬車速CAN報文,采集原始CAN信號數(shù)據(jù)和經(jīng)過插值處理后的數(shù)據(jù),分別進行數(shù)據(jù)曲線繪制并進行對比,結(jié)果如圖2、圖3所示。十字線為原始CAN信號數(shù)據(jù)計算所得角度,星線為急加速、急減速插值處理后的角度,方型線為平穩(wěn)變化插值處理后的角度。從圖上可看出,在急加速的情況下,原始數(shù)據(jù)在第0~1 s時波動較小,角度從0°緩慢上升到18°左右,第1~2 s時急加速,角度從18°經(jīng)過5次就陡變到45°,在急速變化時,采樣周期內(nèi)采樣點數(shù)少,兩點斜率大,直接使用該數(shù)據(jù)指針每次旋轉(zhuǎn)角度非常大,而通過插值處理后的曲線數(shù)據(jù)點增多,數(shù)據(jù)連續(xù)平滑地變化,反映到儀表上表現(xiàn)為指針平滑地加速向目標角度靠近。急減速過程同理。
圖2 急加速數(shù)據(jù)曲線對比
圖3 急減速數(shù)據(jù)曲線對比
從實驗結(jié)果來看,本文所述控制方法明顯減小了由于數(shù)據(jù)抖動、急加速、急減速帶來的影響,通過插值算法模擬了阻尼效果,能適應(yīng)多種駕駛場景。
本文設(shè)計了一種防抖動、具有阻尼效果的指針控制方法。通過循環(huán)設(shè)置指針目標位置值,將指針一次性跳變轉(zhuǎn)換成向期望值靠近的若干次連續(xù)的微小動作,動作過程中有新數(shù)據(jù)時覆蓋期望值并重新計算動作過程,通過行程弱化了數(shù)據(jù)抖動突變帶來的影響,每次行程判斷數(shù)據(jù)變化趨勢,應(yīng)用不同插值算法模擬阻尼效果,單位時間內(nèi)角度數(shù)據(jù)增加,曲線變得均勻平滑,抗干擾能力是原來的6~7倍,彌補了濾波算法的不足。防抖結(jié)合阻尼效果,極大地提高了儀表盤視覺效果。
本文介紹的是一種通用指針穩(wěn)定性控制方法,可應(yīng)用于車速表、轉(zhuǎn)速表、功率表等,目前已應(yīng)用于多款儀表中,良好的視覺效果也能為產(chǎn)品帶來足夠的競爭力。