張建軍,高志剛,劉風磊
(廣州通達汽車電氣股份有限公司, 廣州 510700)
隨著中國經濟快速發展和城鎮化建設程度越來越高,公共交通成為市民出行的主要方式。經過幾十年的城鎮化建設,公交車系統成為各大城市最主要的公共交通運輸系統。快速完善公交車系統,提升公交設備的智能化水平,對加快城鎮化建設具有非常重要的意義。
隨著計算機技術的快速發展,城市公共交通工具的智能化程度也逐步提高,目前國內主要城市的公交系統已經開始應用各種功能的公交自動報站系統,為市民提供人性化服務。目前使用的公交自動報站系統大多采用全球衛星定位系統來獲取車輛的實時位置,能夠全天候提供高精度的定位數據,但因衛星射頻信號較弱,導致全球衛星定位系統對環境非常敏感,在高樓、林蔭、城市立交橋和高架橋等遮擋環境下,提供的位置數據不準確、不穩定,全球衛星定位系統無法滿足自動報站系統的精準需求[1]。
相較而言,慣性定位系統不受環境的影響,能穩定提供位置、速度、航向和姿態角數據,但其定位數據經過積分計算得出,定位誤差會隨時間累積,長期精度差[2]。如果將衛星定位和慣性定位結合運用于定位系統中,這種組合定位系統能夠彌補相互的缺陷。衛星定位能夠有效地控制慣性定位的誤差累積漂移,慣性定位能夠填補兩次衛星定位位置之間的動態信息,且在衛星定位不可用時,仍然能夠短時間內提供高精度定位數據[3]。
因此,設計一種基于衛星定位和慣性定位相結合的自動公交報站系統,結合衛星定位和慣性定位的優點,可以解決衛星定位在復雜環境下定位不穩定、不準確的缺陷,提高公交報站系統的穩定性和準確性。
GNSS/INS組合定位具有良好的性能優勢,可以充分地發揮子系統的優點,實現高度互補,其定位精度、抗干擾能力、可靠性等定位能力遠遠優于獨立GNSS子系統或INS子系統。組合定位按照工作原理、組合結構、組合深度的不同,有不同的組合方式,如松耦合方式、緊耦合方式、深耦合方式[4],本文采用松耦合的組合方式。GNSS/INS組合定位算法結構如圖1 所示[5-6]。GNSS 子系統和INS 子系統獨立工作,分別解析INS子系統和GNSS子系統的速度、位置、姿態信息,解析出位置、速度、姿態信息送到擴展卡爾曼濾波器進行處理,利用擴展卡爾曼濾波結果修正INS 子系統的積分累計誤差,提高INS子系統的精度。
圖1 GNSS/INS組合定位算法結構
捷聯慣性定位系統由慣性測量單元和慣性參數解算單元組成。慣性測量單元包括三軸陀螺儀和三軸加速度計,提供三維空間運動的角速度和加速度;慣性參數解算單元負責實現慣性定位方程的解算,算法原理如圖2所示[7]。核心原理為坐標系轉換和積分運算,三軸陀螺儀和三軸加速度計測量出運動物體在慣性坐標系的角速度和加速度,通過捷聯矩陣進行坐標轉換,轉換成地理坐標系的角速度和加速度,經過積分運算得出運動物體在地理坐標系的速度、位置和姿態。
圖2 捷聯慣性定位系統算法原理
GNSS 和INS 組合定位的關鍵點是如何將兩個子系統的數據信息進行融合,卡爾曼濾波是最常用的數據融合算法之一,通過融合不同種類的觀測值,從而獲得更準確的狀態估計。大多數定位系統模型都是非線性的,為了降低非線性化帶來的誤差,本文采用擴展卡爾曼濾波算法,擴展卡爾曼濾波基本方程如下式所示[8-9]:
本系統的硬件框圖如圖3所示,由系統電源電路、CPU最小系統、4G通信模塊、音頻模塊和串口模塊等組成。
圖3 系統的硬件
系統電源電路采用二級電源轉換電路,第一級采用MP9457 將24 V 電源轉換5 V,第二級電源電路采用MP2235、TPS51100、MP65151 等多個電源芯片,轉換成系統需要的3.8 V、3.3 V、1.5 V、1.2 V、1.0 V 等。系統電源電路還增加共模電感濾波電路、車載TVS 保護電路,使得該系統可以通過車載EMC標準。
CPU 最小系統由復位監控電路、時鐘單元電路、CPU 芯片、DDR2 芯片、FLASH 芯片等組成。CPU 芯片采用ATMEL公司的SAMA5D31,是一款性價比高、功耗低、高度集成的COTEX-A5架構處理器[10],處理器運行工作頻率533 MHz。復位監控電路采用TPS3823,該芯片具有電壓復位和硬件看門狗復位,保證CPU 正常上電復位和異常掛機的看門狗復位。DDR2芯片采用2 Gbit的MT47H64M16,為CPU程序高速運行提供外部內存。FLASH 采用1 Gbit 的MX30LF1GE8AB,提供系統程序和應用數據的存儲空間。
組合定位模塊包括衛星定位子系統和慣性定位子系統。衛星定位子系統采用支持GPS 和北斗雙模定位的ATGM332D-5N 模塊,具有高靈敏度、低功耗、低成本等優勢,定位精度最高達到2.5 m,可配置為1 Hz、5 Hz、10 Hz的數據輸出頻率。慣性定位子系統采用BOSCH 的BMI160 芯片,是一個高度集成的低功耗慣性測量單元(IMU),提供精確的加速度和角速率(陀螺)測量[11]。
音頻模塊由音頻解碼電路和功率放大電路組成。音頻解碼電路采用TI 的TLV320AIC31,負責對CPU 送來的數字音頻信號進行解碼和數模轉換,轉換成模擬音頻信號。功率放大電路采用MPS 的MP7748 芯片,D 類功放芯片,減少電路面積,提供2路30 W的音頻功率放大能力,直接驅動喇叭。
人機交換模塊由TFT 液晶顯示屏、按鍵電路和射頻刷卡模塊組成。TFT 液晶顯示屏采用天馬TM101JDHP01,10.1 寸真彩色顯示屏,屏幕分辨率1280×800,帶電容觸摸。按鍵采用矩陣式鍵盤,行列掃描式排布,18個按鍵。
無線通信模塊采用美格SLM790,通過USB2.0接口與CPU系統進行數據交換,保證4G通信的高速率。通信模塊電源可以單獨控制,在通信異常情況時,軟件可以對模塊重新上電,提高無線通信的可靠性。
智能報站系統將Linux3.10 操作系統移植到SAMA5D31 處理器,應用程序由組合定位解算程序、自動報站處理程序、4G通信程序、人機交互程序、設備運維程序等組成。由于組合定位解算程序、自動報站處理程序是智能報站系統的核心模塊,下面主要介紹它們的原理。
GNSS/INS組合定位解算程序按照圖1 的GNSS/INS組合定位算法、圖2 的捷聯慣性定位系統算法和式(1)的擴展卡爾曼濾波基本方程為核心算法原理。GNSS/INS 組合定位程序流程如圖4 所示,分為全球衛星定位程序處理模塊、慣性定位程序處理模塊、全球衛星定位和慣性定位融合處理程序模塊。
圖4 GNSS/INS組合定位程序流程
全球衛星定位程序處理模塊,首先對全球衛星定位模塊ATGM332D-5N 初始化,設定其串口輸出頻率為10 Hz,提高數據輸出頻率。讀取完成一包數據,按照NMEA0183 的協議格式解析得到位置、速度、方向角、信號質量等數據,經過中值濾波算法去掉衛星定位異常的數據后給擴展卡爾曼濾波算法處理模塊。
慣性定位程序處理模塊,對BMI160 慣性測量芯片初始化,設定捷聯矩陣的計算初值。按照100 ms 周期,從慣性測量芯片讀取運載體的三軸加速度和三軸角速度,進行滑動平均濾波算法處理,得到運載體在慣性坐標系的x、y、z方向加速度和角速度。根據哈密頓提出的四元數法對捷聯矩陣更新,運載體在慣性坐標系的x、y、z方向加速度和角速度經過更新的捷聯矩陣進行坐標系變換,得到地理坐標系的x、y、z方向加速度和角速度,經過系列積分運算得到地理坐標系的位置、速度,送給擴展卡爾曼濾波算法處理模塊。
擴展卡爾曼濾波算法處理模塊按照式(1)計算,得到全球衛星定位和慣性定位數據融合后的位置、速度和姿態,給自動報站處理程序使用;同時根據融合后的位置、速度計算出運載體相對慣性坐標系在導航坐標系上的分量,此計算得到的值再經過方向余弦逆矩陣對捷聯矩陣更新進行修正。
自動報站處理程序的流程如圖5 所示,首先確定車輛行駛方向,然后計算車輛當前位置的經緯度坐標與后續站點的距離和方向角,當距離小于進站半徑且方向角滿足要求時,進行進站語音和文字播報。滿足進站條件的基礎上,判斷車輛當前位置與當前站點距離,當距離大于線路文件設定的出站半徑時,進行出站的語音和文字播報。
圖5 自動報站處理程序流程
自動報站處理程序的核心邏輯是判定車輛的行駛方向,報站方向判定流程如圖6所示,報站方向判定程序循環判斷車輛行駛方向[12]。假設公交車啟動時是不知道方向的,及時判定出行駛方向是至關重要的。當車輛處于首站或末站時,可通過當前位置與首站或末站的距離直接確定方向。而當公交車突然轉彎或設備中間重啟時,只采用在站點半徑范圍內進行判定容易引起誤判或漏判,因為在不知道車輛運行方向的情況下,當前獲取經緯度坐標和站點經緯度坐標的距離滿足進站范圍內的站點可能不止一個,其中一個是真正的坐標點,可能還會是對面的站點或者是漂移點。循環判斷車輛方向的算法是,根據當前經緯度坐標和站點坐標之間距離作為判斷依據,當同一方向有超過2個站點符合要求,即可確定車輛行駛方向。
圖6 報站方向判定流程
本文設計一種GNSS/INS 組合定位的自動公交報站系統,硬件平臺采用COTREX-A5 架構的高性能處理、GPS/BD 衛星定位模塊和6 軸MEMS 慣性傳感器,軟件平臺采用Linux3.10操作系統。利用慣性定位解算方程對6軸MEMS傳感器獲取的角速度和加速度進行計算,獲得車輛慣性定位系統的速度、位置和姿態;同時獲取GPS/BD衛星定位模塊的全球衛星定位系統的速度、位置和方向角;最后用擴展卡爾曼濾波算法對慣性定位系統的速度、位置和姿態,全球衛星定位系統的速度、位置和方向角進行融合計算得到組合定位的速度、位置和姿態。該自動公交報站系統已經批量應用于南寧公交、茂名公交、珠海公交等多家公交公司,實際應用中很好地解決了高樓、林蔭、城市立交橋和高架橋等遮擋環境下公交報站不準的問題,具有很好的市場應用前景。