基于虛擬儀器技術(shù)的智能車仿真系統(tǒng)
1 引言
全國高等學(xué)校自動化專業(yè)教學(xué)指導(dǎo)分委員會受國家教育部委托,舉辦第一屆“飛思卡爾”杯大學(xué)生智能車邀請賽。為了給參加本次智能車邀請賽的各支隊伍提供一個可離線/在線仿真的平臺以及理論試驗平臺,我們開發(fā)了基于LabVIEW虛擬儀器技術(shù)的智能車仿真系統(tǒng)Plastid(以下簡稱Plastid)。
本仿真系統(tǒng)基于LabVIEW虛擬儀器技術(shù)開發(fā)完成,用于智能車的算法仿真及分析。主要有以下幾大特點:
1. 賽道與賽車環(huán)境模擬
系統(tǒng)對賽道與賽車分別建立了模型,使用者可以按照指示方便地自行設(shè)計賽道以及賽車,將賽道設(shè)計成各種各樣的直路、彎路、坡路,將賽車設(shè)計成各種尺寸、形狀,從而使得系統(tǒng)的適用性更廣泛。另一方面,本軟件更適用于沒有條件制作試驗賽道的參賽隊伍,他們可以在該系統(tǒng)中檢測控制算法。
2. 控制算法的仿真驗證
系統(tǒng)可提供三種不同的控制算法仿真的方案:子VI(SubVI)算法仿真、C結(jié)點算法仿真以及單片機在線仿真。使用者可以選擇其中最適合自己的仿真方法,對自己的控制算法在系統(tǒng)的環(huán)境中進(jìn)行驗證。
3. 路徑識別的方案分析
系統(tǒng)提供了采用光感電路來識別路徑的模型,使用者可以按照自己的想法設(shè)定傳感器的個數(shù)、排列的位置,在Plastid上反復(fù)作仿真試驗,從而定性得出哪種光感電路的排列效果較好。由于實地試驗時要更換傳感器排列較為耗時,因此本系統(tǒng)給予了此種定性分析一個極其方便的試驗平臺。
4. 離線/在線仿真相結(jié)合
系統(tǒng)不僅可以離線仿真,還可以通過CAN通訊與單片機系統(tǒng)相連,對系統(tǒng)進(jìn)行虛擬賽道環(huán)境的在線仿真。
使用者通過該仿真系統(tǒng)可以反復(fù)對原始設(shè)計方案進(jìn)行研究,得到近似最優(yōu)方案后,再進(jìn)行實車設(shè)計和實際賽道試驗,從而減少了開發(fā)的費用和時間成本,大大提高智能車開發(fā)效率。
2 基本構(gòu)架
圖1是整個仿真系統(tǒng)的構(gòu)架圖,主要分為基本模型層、控制算法層、通訊層以及仿真環(huán)境層。
基本模型層包括賽車模型與賽道模型,使用者可根據(jù)實際情況設(shè)定模型參數(shù),它為整個系統(tǒng)提供了底層的驅(qū)動,仿真結(jié)果都是在這兩個模型的基礎(chǔ)上計算的。
圖1 仿真系統(tǒng)構(gòu)架圖
控制算法層為使用者提供了3種不同的仿真方案:SubVI、C結(jié)點以及單片機在線仿真,具體在后文將會詳述。使用者可選擇其中一個方案輸入或移植自己的控制算法。
通訊層只用于單片機的在線仿真,使用CAN模塊,可以使單片機與仿真系統(tǒng)進(jìn)行即時的數(shù)據(jù)交流,從而實現(xiàn)動態(tài)仿真。
動態(tài)仿真環(huán)境基于賽車、賽道模型以及控制算法所輸出的控制信號(電機控制、轉(zhuǎn)向控制及車速信號等),計算出車的行走路線,并即時地將數(shù)據(jù)傳回控制算法層(其計算周期可調(diào))。
憑借軟件仿真的優(yōu)勢,在仿真過程中,系統(tǒng)可以方便地將各種變量記錄下來,特別是一些實際試驗時無法測量的量(如賽車相對于賽道中心線的偏移量、前向角、加速度等),并保存于文件中。在回放模式中,用戶可以調(diào)用這些文件,對其仿真結(jié)果進(jìn)行后期分析和處理,繼而改進(jìn)自己的賽車設(shè)置以及控制算法。
3 賽道、賽車、路徑識別模型
我們知道,一個具有高級控制策略的智能車應(yīng)該在不同的賽道上都具有穩(wěn)定的發(fā)揮,為了驗證這一點,就必須在不同的賽道上做試驗。然而,由于各方面的限制,我們不可能為賽車制作無數(shù)的賽道進(jìn)行測試。但這個問題卻可在Plastid中輕易地得到解決:我們可以設(shè)計出不同的賽道,并將其保存成文件,在仿真時將其調(diào)用即可。
圖2是Plastid的賽道設(shè)計界面,用戶可以使用“點”來精確設(shè)定賽道曲線的下一點位置,使用“弧”則可以以圓心坐標(biāo)、角度來繪制想要得到的弧線,更可以直接采用“手繪”用鼠標(biāo)在屏幕上繪制賽道或從數(shù)據(jù)文件中導(dǎo)入曲線。其操作界面友好,修改方便,且易于上手和操作。圖2中的賽道即根據(jù)韓國漢陽大學(xué)2004年智能車大賽采用的賽道設(shè)計而成。
圖2 賽道設(shè)計界面
為了仿真方便,我們將賽車簡化為一個四輪剛體模型,除了一些基本的尺寸參數(shù)之外,在前輪轉(zhuǎn)向系統(tǒng),根據(jù)賽車的實際情況,我們用“轉(zhuǎn)向速度”與“最大轉(zhuǎn)向角”兩個參數(shù)來模擬。
對于路徑識別系統(tǒng),Plstid給予使用者至多8個的光感傳感器的坐標(biāo)設(shè)定,使用者可以任意地安排傳感器的個數(shù)和相對于車的排列坐標(biāo)(將傳感器安排成一條直線,或者弧線等方案),從而達(dá)到自己想要的識別效果。
對于加速的模擬,目前系統(tǒng)暫時以直接加速度為控制量,在對實車進(jìn)行測試和分析后,將構(gòu)建相應(yīng)的模型。
圖3即賽車設(shè)計的操作界面,左邊為賽車的基本參數(shù),右邊為傳感器坐標(biāo)設(shè)定、試驗賽道生成以及傳感器值的即時顯示(試駕時用)。
使用者除了可以設(shè)定賽車參數(shù)外,還可以對所設(shè)定好的賽車進(jìn)行“試駕”,當(dāng)場檢驗所設(shè)計參數(shù)的優(yōu)劣,并可將賽車信息保存于文件,供仿真時調(diào)入使用。
圖3 賽車參數(shù)設(shè)定界面
4 控制算法仿真
Plastid針對不同的使用者提供了三種不同的控制算法仿真方案:子VI(SubVI)、C結(jié)點以及單片機的在線仿真。
首先,最接近于LabVIEW編程環(huán)境的即為SubVI方案。用戶將自己的控制算法,移植為LabVIEW的SubVI,Plastid在仿真時即時地給該SubVI輸入變量(車速、傳感器值等),SubVI通過計算得出控制量并輸送給Plastid仿真循環(huán)。SubVI方案對于熟悉LabVIEW G語言編程方法的使用者來說非常簡單,但它的缺點是移植性較差,由于C語言和G語言的差別較大,因此將單片機的控制算法轉(zhuǎn)換為子VI的程序需要一定的工作量。
其次,C結(jié)點方案則更適合于采用C語言編程的使用者們,其原理與SubVI方案類似,但是其程序則可直接用C語言編寫,用Visual Studio IDE將其編譯為dll文件,系統(tǒng)在仿真時會自動調(diào)用該dll,從而實現(xiàn)與SubVI一樣的控制和反饋。對于本方案,使用者可以將其單片機的程序進(jìn)行適當(dāng)?shù)男薷暮蠹纯墒褂?,因此移植性較高。
最后,利用CAN模塊,系統(tǒng)可以直接與單片機進(jìn)行直接通訊,并實現(xiàn)在線仿真。單片機方面只需要在其CAN接口即時地傳送其控制量(這在程序中很容易添加相應(yīng)程序),而Plastid則通過CAN模塊得到這些量,并傳送反饋量給單片機。在這一方案,單片機的程序修改不大,但需要有CAN模塊等硬件支持。
圖4為系統(tǒng)動態(tài)仿真的界面,使用者在加載完賽道與賽車文件后,即可進(jìn)行動態(tài)的仿真。其中仿真周期表示系統(tǒng)每一次計算的時間,可以根據(jù)單片機的運算周期進(jìn)行設(shè)定,但值得一提的是,在仿真過程中,其真實的仿真周期會根據(jù)計算機的性能等因素而不同,但其仿真的結(jié)果可以保證確實根據(jù)該仿真周期計算而得,從而保證其仿真的可靠性。
圖4 動態(tài)仿真界面
5 不足與改進(jìn)
由于Plastid仿真系統(tǒng)還未與實車的仿真進(jìn)行過深入比較,且開發(fā)周期也較短,因此必然留有一些不足之處。
該系統(tǒng)目前還只能用于采用光感傳感器路徑識別方案的智能車,對于CCD攝像頭技術(shù)還不支持。
其次,在仿真過程中,系統(tǒng)只是根據(jù)汽車的運動學(xué)模型(將車簡化為一四輪剛體來處理)進(jìn)行計算,并未考慮其側(cè)滑以及路面摩擦力的影響。這將使其仿真結(jié)果與實際結(jié)果有一定差距,我們將在后續(xù)工作中根據(jù)實車的情況,不斷進(jìn)行實車試驗和對比,從而提高其仿真真實度,使其能盡可能地模擬出實際的情況。
最后,計算速度也是系統(tǒng)必須面臨的一大問題。對此,我們將優(yōu)化代碼,并裁剪不必要的程序,從而提高系統(tǒng)的仿真速度。
綜上所述,本系統(tǒng)主要針對本次智能車大賽而開發(fā),將在這一屆邀請賽過程中進(jìn)行不斷的優(yōu)化和改進(jìn),爭取為廣大參賽隊伍更好地完成開發(fā)任務(wù)而服務(wù)。