作者:周斌 蔣荻南 李立國(guó) 職務(wù):碩士研究生 |
||||||||||||||||
引言 2006年8月,清華大學(xué)將舉辦第一屆"飛思卡爾"杯全國(guó)大學(xué)生悄艸笛肴H?0多所著名高校將參加此項(xiàng)賽事,目前正在積極準(zhǔn)備之中。 我們知道,按照傳統(tǒng)的開發(fā)思想,主要分為制造賽道,硬件布置、控制算法,通過實(shí)車的調(diào)試再進(jìn)行相應(yīng)的修改,如此循環(huán),如圖1所示。這種模式具有成本高,開發(fā)周期長(zhǎng)以及試驗(yàn)無法重現(xiàn)和歸檔等缺陷。
如果換一種思路,采用虛擬開發(fā)模式,先進(jìn)行虛擬仿真,得到優(yōu)化的硬件布置和控制算法后,再進(jìn)行實(shí)車開發(fā),這樣將大大提高效率和降低成本,見圖2。正是在這樣的構(gòu)想下,我們開發(fā)了Plastid智能仿真軟件。值得一提的是,在韓國(guó)4屆大賽中,還沒有類似軟件出現(xiàn),因此它具有一定的獨(dú)創(chuàng)性。
V型開發(fā)模式 軟件的開發(fā)流程,分為開發(fā)平臺(tái)、仿真內(nèi)核、操作界面以及匹配標(biāo)定,由于有"匹配標(biāo)定"這一個(gè)環(huán)節(jié),因此我們采取軟硬件同步開發(fā)的V型開發(fā)模式,如圖3所示。
我們采用LabVIEW作為軟件的開發(fā)平臺(tái),是因?yàn)閳D形化編程環(huán)境LabVIEW,滿足建立靈活的可擴(kuò)展式測(cè)試測(cè)量和控制應(yīng)用系統(tǒng)的要求,同時(shí)滿足以最小成本最快速地開發(fā)系統(tǒng)的需求。LabVIEW支持多任務(wù),同時(shí)對(duì)外設(shè)有C語言接口。選用LabVIEW開發(fā)還可以提高程序的可靠性。 內(nèi)核算法涉及汽車專業(yè)知識(shí),如圖4所示,在每個(gè)計(jì)算周期中,系統(tǒng)首先計(jì)算出傳感器輸出和賽車車速,輸入智能車控制算法中,通過匹配標(biāo)定單元可得出加速度和前輪轉(zhuǎn)角,在剛體的運(yùn)動(dòng)模型算法中得出下一計(jì)算周期的車速和賽車坐標(biāo)。 利用LabVIEW簡(jiǎn)單易用的GUI控件,可以完全按使用者的需求進(jìn)行界面的設(shè)計(jì)。Plastid系統(tǒng)的使用界面做到了美觀、大方,簡(jiǎn)明且操作方便,符合人機(jī)工程學(xué)。 如圖3所示,軟件開發(fā)的最后環(huán)節(jié)為匹配標(biāo)定過程。通過大量的實(shí)車試驗(yàn),我們得到驅(qū)動(dòng)電機(jī)Map圖,轉(zhuǎn)向性能,加減速性能以及舵機(jī)轉(zhuǎn)向性能等實(shí)車參數(shù),并將其補(bǔ)充進(jìn)內(nèi)核算法中的匹配標(biāo)定單元(圖4)中,從而完善了Plastid。
系統(tǒng)構(gòu)架 圖5是整個(gè)仿真系統(tǒng)的構(gòu)架圖,主要分為基本模型層、控制算法層、通訊層以及仿真環(huán)境層。
基本模型層包括賽車模型與賽道模型,使用者可根據(jù)實(shí)際情況設(shè)定模型參數(shù),它為整個(gè)系統(tǒng)提供了底層的驅(qū)動(dòng),仿真結(jié)果都是在這兩個(gè)模型的基礎(chǔ)上計(jì)算得來的。 一個(gè)具有高級(jí)控制策略的智能車應(yīng)該在不同的賽道上都具有穩(wěn)定的發(fā)揮。在Plastid中很容易解決避免制作很多實(shí)際賽道困難,如圖6所示,我們可以用點(diǎn)、弧、手繪等方式方便地設(shè)計(jì)出各種賽道進(jìn)行仿真使用設(shè)計(jì)出不同的賽道,并將其保存成文件,在仿真時(shí)將其調(diào)用即可。
賽車也是整個(gè)仿真的基礎(chǔ)模型之一。如圖7所示,在賽車參數(shù)面板中,左邊可以任意設(shè)置賽車的幾何參數(shù),右邊傳感器布置區(qū)支持各種傳感器布置方式的設(shè)定。試駕功能可以在設(shè)計(jì)階段對(duì)賽車的運(yùn)動(dòng)和傳感器性能進(jìn)行測(cè)試,提高了開發(fā)效率。
控制算法層為使用者提供了3種不同的仿真方案:SubVI、C結(jié)點(diǎn)以及單片機(jī)在線仿真。使用者可選擇其中一個(gè)方案輸入或移植自己的控制算法。 通訊層只用于單片機(jī)的在線仿真,使用CAN模塊,可以使單片機(jī)與仿真系統(tǒng)進(jìn)行即時(shí)的數(shù)據(jù)交流,從而實(shí)現(xiàn)動(dòng)態(tài)仿真。 首先,最接近于LabVIEW編程環(huán)境的即為SubVI方案。此方案對(duì)于熟悉LabVIEW G語言編程方法的使用者來說非常簡(jiǎn)單,但將單片機(jī)的控制算法轉(zhuǎn)換為子VI的程序需要一個(gè)過程。 其次,C結(jié)點(diǎn)方案則更適合于采用C語言編程的使用者們,其程序直接用C語言編寫,用Visual Studio IDE將其編譯為dll文件,系統(tǒng)在仿真時(shí)會(huì)自動(dòng)調(diào)用該dll,從而實(shí)現(xiàn)與SubVI一樣的控制和反饋。 最后,利用CAN或串口模塊,系統(tǒng)可以直接與單片機(jī)進(jìn)行直接通訊,并實(shí)現(xiàn)在線仿真。單片機(jī)方面只需要在其CAN接口或串口即時(shí)地傳送其控制量,而Plastid則通過模塊得到這些量,并傳送反饋量給單片機(jī)。 動(dòng)態(tài)仿真環(huán)境層基于賽車、賽道模型以及控制算法所輸出的控制信號(hào)(電機(jī)控制、轉(zhuǎn)向控制及車速信號(hào)等),計(jì)算出車的行走路線,并即時(shí)地將數(shù)據(jù)傳回控制算法層(其計(jì)算周期可調(diào))。 在比賽仿真界面中,通過調(diào)用控制算法、賽道、賽車,可以在仿真內(nèi)核上進(jìn)行仿真運(yùn)算(對(duì)應(yīng)調(diào)用各個(gè)文件)。如圖8,界面上實(shí)時(shí)顯示車速、前輪轉(zhuǎn)角等參量的變化。仿真后,可以將仿真過程保存,以供回放時(shí)調(diào)用。
憑借LabVIEW軟件的優(yōu)勢(shì),系統(tǒng)可以方便地將仿真過程中的各種變量記錄下來,特別是一些實(shí)際試驗(yàn)時(shí)無法測(cè)量的量,保存于文件中。在回放模式中,用戶可以調(diào)用這些文件,對(duì)其仿真結(jié)果進(jìn)行后期分析和處理,從而可以更準(zhǔn)確地發(fā)現(xiàn)問題,指導(dǎo)賽車設(shè)置和控制算法的優(yōu)化。 成果 通過測(cè)試和對(duì)比,Plastid智能車仿真平臺(tái)可以有效地仿真出賽車的實(shí)際行駛路線以及直道波動(dòng)、彎道超調(diào)、彎道回轉(zhuǎn)以及交替彎道等現(xiàn)象,具有相當(dāng)高的仿真精度。 此外,基于LabVIEW的本仿真平臺(tái)還作為本次智能車大賽的官方軟件,與賽車一起配套發(fā)布,給其他參賽者們提供了幫助和服務(wù)。我們給參賽隊(duì)提供多次現(xiàn)場(chǎng)培訓(xùn)以及網(wǎng)上在線答疑,使他們能夠迅速掌握軟件的使用。憑借出色的創(chuàng)意和較高的實(shí)用性,Plastid仿真平臺(tái)在今年清華大學(xué)第二屆NI杯虛擬儀器設(shè)計(jì)大賽中獲得第一名和最佳創(chuàng)新獎(jiǎng)。在清華大學(xué)第二十三屆"挑戰(zhàn)杯"學(xué)生課外學(xué)術(shù)科技作品競(jìng)賽中獲得了一等獎(jiǎng)的殊榮。 綜上所述,本仿真平臺(tái)是在LabVIEW圖形化編程環(huán)境下開發(fā)完成的,并將做不斷的優(yōu)化和改進(jìn),為廣大參賽隊(duì)伍更好地完成開發(fā)任務(wù)而服務(wù)。 |