徐 倩 張 東 黃 典 劉慶華
(江蘇科技大學計算機科學與工程學院 鎮江 212001)
智能汽車技術是一種在無人干預的情況下自動跟蹤預定軌跡,最終實現自動駕駛的高新技術。本文設計的智能系統實現的功能是,利用電磁傳感器感知環境信息[1-2],做出控制決策,使得車輛按照期望路線行駛或到達期望目標點。與有突變存在的數字式視覺傳感器[3]相比,由于磁場強度是連續變化的,因此電磁傳感器的導航成本更低。該系統的設計涉及計算機科學、傳感器檢測、多元信息融合、信息通訊、人工智能與模式識別以及自動控制等多個領域的交叉技術。
電磁導航技術是基于電磁感應原理,綜合利用電子電力技術和控制理論,感應特定空間中的磁場分布,定位車輛位置,根據與指定路徑的偏差控制車輛行駛的無人駕駛技術。
系統實現通過電磁傳感器感應賽道中通電導線產生的磁場來導航智能模型車。通過設計穩定的方向控制方案、錯誤數據的檢測和同步處理,來減小電磁傳感器檢測到的數據的誤差和波動性。通過對巡線跟蹤軌跡進行優化,來減少智能車行駛過程中繞彎路。為了保證智能車的穩定性,對應賽道的不同路段應該具有不同的速度期望值,即從一種路段進入另一種路段的速度切換,分別是從直道進入不同類型彎道的減速算法和從不同類型彎道進入直道的加速算法[4]。
本系統采用的主要硬件有智能汽車模型、控制器芯片Freescale單片機K60、編碼器、舵機SD5、電機RS540、干簧管、OLED液晶屏。系統的軟件算法是由速度控制和方向控制組成,通過電磁傳感器的數據,計算出車模當前位置,得到相應的方向控制量,然后根據實際速度與設定速度的偏差計算出速度控制量[5~6]。系統算法控制框圖如圖1所示。

圖1 系統算法控制框圖
電子線路的設計對整個系統的穩定性起著關鍵作用,電氣特性的合理不僅能減小靜電的影響,也便于機械結構的設計。在設計硬件電路的時候,要保證以下三個原則:
1)要設計放大、濾波等電路[7],用來放大噪聲信號并進行過濾;
2)針對大功耗電機[8],設計專門的功率驅動電路;
3)各功能模塊的硬件電路設計要滿足各工作電壓的要求。
系統的主板電路要集成各個功能模塊,并設計有OLED屏、藍牙和按鍵等電路進行輔助,要給A/D、GPIO等引腳預留插針。在設計PCB(印刷電路板)的時候[9],盡量對導線的路徑進行優化,并減少導線交叉,減少導線長度來削弱干擾信號。在滿足以上條件的基礎上,盡量減少電路板的面積。
682J100校正電容具有更好的穩定性,溫飄更小,本系統采用該電容組成的諧振電路[10]和10mH的工字型電感線圈,用來測量20KHz、峰峰值為100mA交流電產生的交變磁場,為提高靈敏度,通過運算放大器NE5532來放大信號。A/D選用單端輸入[11],因為被測信號電壓在0V~3.3V之間,所以信號的偏零電壓要進行上拉調節,以保證正弦信號的最低電壓大于零,最高電壓小于3.3V,則可以保證信號不失真。硬件電路圖如圖2所示。

圖2 電磁信號調理電路圖
該系統中用到的電機驅動為RS-540馬達,信號為單極性PWM波[12]。由四片IR2104S芯片來組成全橋驅動電路,用來放大功率。由PTA12和PTA13來輸出兩路PWM信號,IR2104S的OUT1和OUT2分別接電機的正、負極。電機驅動電路如圖3所示。

圖3 電機驅動電路圖
使用該系統的智能車模型采用的是6節鎳鎘干電池,電壓約為7.2V。為了滿足不同的原件所需要的電壓值,我們分別設計了三個5V穩壓電路和一個3.3V穩壓電路,分別通過AMS1085-5.5芯片和AMS1085-3.3實現,然后配置合適的電容來濾去高頻噪聲信號。本電源模塊的特點是采用了自恢復式保險絲作為電源模塊的安全保障,當電路短路時,可以自動熔斷;當電路恢復正常時,自動連接;起到了電路保護作用。穩壓電路如圖4所示。

圖4 穩壓電路電路圖
為了便于調試,我們在系統主板上設計了按鍵、藍牙電路和OLED顯示屏。如圖5(a)、(b)、(c)。

圖5 輔助電路圖
智能車模型的整體機械結構的合理設計能夠保證車的重心處于中心位置,并且達到降低重心的作用。主要是由電磁傳感器布置、編碼器的安裝、車身底座的布局等決定。由于數據采集、處理和計算以及算法的運行均需要一定的時間,而且舵機存在較大的響應延時,而該系統是以電磁信號作為判斷依據,所以電感應該提前作出判斷和分析,也就是要通過PVC-U桿將電感懸掛于智能車模型前端一段距離,經反復測試,確定前瞻為50cm[13]。編碼器用于測量速度,通過齒輪箱和智能車模型的后輪相連,固定于車膜上。為了降低整體重心,需要將各器件緊貼于車身底座進行固定,系統電路板通過預設的通孔與底座相連,把較重的供電電源放置于底座后方來減弱智能車模型拐彎時的甩尾現象。
智能車模型的軟件系統開發環境是IAR SYSTEM,主要由主函數模塊和工作時序中斷模塊組成。主函數模塊的主要內容有[14]:1)AD模塊的初始化。2)OLED、按鍵和撥碼開關的初始化。3)舵機、電機和編碼器的初始化。4)顯示電磁傳感器的采集數據等;工作時序中斷模塊的內容有:系統周期為5ms,總時間的任務不能超過5ms,否則會引起系統癱瘓,所以在進行調整時,需要對總任務的運行時間進行檢查。

基于IAR環境下的C語言編寫,進行路徑識別(競賽使用路徑導航的交流電流頻率為20kHz)。把交變電流產生的磁場通過電感將磁信號轉換為電信號然后放大,通過AD轉換模塊自定義精度采集回來的值進行分析處理,通過合理的電感排布找出賽道元素的異同完成路徑識別。
本設計共采用六個電感來感應磁場變化,第一排中間一個電感、第二排三個水平向電感和第三排兩個八字電感。第一排的一個電感是處理圓環是用來控制進入圓環的位置,高速時可以更早判斷出圓環以解決因為慣性問題和程序運行花費時間帶來的延遲滯后問題,并且可以提前判斷是否要入彎。第二排三個水平電感主要是用來計算偏差,中間的一個標定電感是為了運用差比和計算偏差時更加準確。因為八字電感對于彎道特別靈敏,能夠提前并且準確地判斷如彎的方向(是左入彎還是右入彎),并且在車子在彎道丟線時給予正確的方向指引。電感分布圖如圖6所示。

圖6 電感分布圖
賽道分為直道、彎道、小S彎、大S彎、十字交和今年新加入的圓環。本系統本著“大道至簡”的理念,簡化程序分析思路,只對圓環進行了特殊處理,其他元素一概用相同的方式處理,只做簡單的輔助路徑識別,實驗得出此做法效果特別好,適應性優良。
速度控制算法是要在模型車保持穩定的前提上,盡量提高車的行駛速度。本系統采用棒棒控制和增量式PI算法,使得速度在過低或者過高時能夠及時地進行調整。在進入直道時加快速度,在進入彎道時降低速度,保證加速度的值不能太小。速度是通過增量式編碼器進行測量的,根據編碼器的限數,得到編碼器的轉速,然后計算出輪胎的轉速,最后由輪胎的半徑,計算出車的行駛速度。
棒棒控制即為開關量控制,該控制在期望值和被控量的偏差較大時,會有很快地響應速度,但是會使得被控量產生較大的波動。經典的PID控制算法是基于期望值和被控量之間的算法。該系統使用兩者的結合算法,當偏差較大時,使用棒棒控制算法,當偏差較小時,采用自適應算法。
模型車采用水平電感的差比和計算偏差,再加上相應的補償值計算出來的最終偏差輸出給舵機(用這方法計算出來的偏差在中線附近變化較小,遠離中線偏差變化劇烈,使得模型車有較好的尋中線能力),傳給舵機的數據采用位置式經典PID算法進行處理,通過按鍵進行PID參數的調試,最終確定較好的行駛路徑。為了使模型車有更好的速度表現,降低小S彎的偏差靈敏度就可將其過濾掉,相當于直道的處理效果,可將前瞻適當加長,并減小直道的P值就可以達到預期的效果。
把控制輸出量轉換為相應占空比的PWM波信號,輸出給電機進行驅動。在輸出之前,先進行限幅處理,防止速度控制量超出最大范圍。在直道進彎道時,減小期望速度,采用棒棒控制輸出占空比為70%的反向PWM信號,使車子可以快速減速,保證進入彎道的穩定性,加快響應,但只會將速度降到彎道的最小速度,以避免系統發生振蕩。
該系統需要調試的主要參數有:速度自適應PI控制系數、路徑識別算法中的各類路徑的判別數據、方向控制中的區間分段數據和相關的補償數據。賽道要體現多元化,直道、十字交叉、圓環賽道、不同程度的彎道等。在具體測試中對以上算法再進行改進。我們發現,賽道類型的檢測很容易發生誤判,所以采用將水平電感的差、和,八字電感的差加入判斷的算法來增加路徑識別的準確性。
基于電磁傳感器的路徑識別系統是由硬件平臺和軟件系統組成的,模型車電氣性能穩定,機械性能優化,算法設計實現了精確預判和響應。該系統的思想可以作為現代汽車產業的一種發展方向,感應特定空間中的磁場分布,定位車輛位置,提供了一種根據與指定路徑的偏差控制車輛行駛的無人駕駛技術。