<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于虛擬儀器技術(shù)的智能車(chē)仿真系統(tǒng)

          基于虛擬儀器技術(shù)的智能車(chē)仿真系統(tǒng)

          ——
          作者:周斌,蔣荻南,黃開(kāi)勝 時(shí)間:2007-01-26 來(lái)源:《EDN電子設(shè)計(jì)技術(shù)》 收藏

          1. 賽道與賽車(chē)環(huán)境模擬

          本文引用地址:http://www.ex-cimer.com/article/20595.htm

          系統(tǒng)對(duì)賽道與賽車(chē)分別建立了模型,使用者可以按照指示方便地自行設(shè)計(jì)賽道以及賽車(chē),將賽道設(shè)計(jì)成各種各樣的直路、彎路、坡路,將賽車(chē)設(shè)計(jì)成各種尺寸、形狀,從而使得系統(tǒng)的適用性更廣泛。另一方面,本軟件更適用于沒(méi)有條件制作試驗(yàn)賽道的參賽隊(duì)伍,他們可以在該系統(tǒng)中檢測(cè)控制算法。

          2. 控制算法的仿真驗(yàn)證

          系統(tǒng)可提供三種不同的控制算法仿真的方案:子vi(subvi)算法仿真、c結(jié)點(diǎn)算法仿真以及單片機(jī)在線(xiàn)仿真。使用者可以選擇其中最適合自己的仿真方法,對(duì)自己的控制算法在系統(tǒng)的環(huán)境中進(jìn)行驗(yàn)證。

          3. 路徑識(shí)別的方案分析

          系統(tǒng)提供了采用光感電路來(lái)識(shí)別路徑的模型,使用者可以按照自己的想法設(shè)定傳感器的個(gè)數(shù)、排列的位置,在plastid上反復(fù)作仿真試驗(yàn),從而定性得出哪種光感電路的排列效果較好。由于實(shí)地試驗(yàn)時(shí)要更換傳感器排列較為耗時(shí),因此本系統(tǒng)給予了此種定性分析一個(gè)極其方便的試驗(yàn)平臺(tái)。

          4. 離線(xiàn)/在線(xiàn)仿真相結(jié)合

          系統(tǒng)不僅可以離線(xiàn)仿真,還可以通過(guò)can通訊與單片機(jī)系統(tǒng)相連,對(duì)系統(tǒng)進(jìn)行虛擬賽道環(huán)境的在線(xiàn)仿真。

          使用者通過(guò)該仿真系統(tǒng)可以反復(fù)對(duì)原始設(shè)計(jì)方案進(jìn)行研究,得到近似最優(yōu)方案后,再進(jìn)行實(shí)車(chē)設(shè)計(jì)和實(shí)際賽道試驗(yàn),從而減少了開(kāi)發(fā)的費(fèi)用和時(shí)間成本,大大提高智能車(chē)開(kāi)發(fā)效率。

          2 基本構(gòu)架

          圖1是整個(gè)仿真系統(tǒng)的構(gòu)架圖,主要分為基本模型層、控制算法層、通訊層以及仿真環(huán)境層。

          基本模型層包括賽車(chē)模型與賽道模型,使用者可根據(jù)實(shí)際情況設(shè)定模型參數(shù),它為整個(gè)系統(tǒng)提供了底層的驅(qū)動(dòng),仿真結(jié)果都是在這兩個(gè)模型的基礎(chǔ)上計(jì)算的。


          圖1 仿真系統(tǒng)構(gòu)架圖

          控制算法層為使用者提供了3種不同的仿真方案:subvi、c結(jié)點(diǎn)以及單片機(jī)在線(xiàn)仿真,具體在后文將會(huì)詳述。使用者可選擇其中一個(gè)方案輸入或移植自己的控制算法。

          通訊層只用于單片機(jī)的在線(xiàn)仿真,使用can模塊,可以使單片機(jī)與仿真系統(tǒng)進(jìn)行即時(shí)的數(shù)據(jù)交流,從而實(shí)現(xiàn)動(dòng)態(tài)仿真。

          動(dòng)態(tài)仿真環(huán)境基于賽車(chē)、賽道模型以及控制算法所輸出的控制信號(hào)(電機(jī)控制、轉(zhuǎn)向控制及車(chē)速信號(hào)等),計(jì)算出車(chē)的行走路線(xiàn),并即時(shí)地將數(shù)據(jù)傳回控制算法層(其計(jì)算周期可調(diào))。

          憑借軟件仿真的優(yōu)勢(shì),在仿真過(guò)程中,系統(tǒng)可以方便地將各種變量記錄下來(lái),特別是一些實(shí)際試驗(yàn)時(shí)無(wú)法測(cè)量的量(如賽車(chē)相對(duì)于賽道中心線(xiàn)的偏移量、前向角、加速度等),并保存于文件中。在回放模式中,用戶(hù)可以調(diào)用這些文件,對(duì)其仿真結(jié)果進(jìn)行后期分析和處理,繼而改進(jìn)自己的賽車(chē)設(shè)置以及控制算法。

          3 賽道、賽車(chē)、路徑識(shí)別模型

          我們知道,一個(gè)具有高級(jí)控制策略的智能車(chē)應(yīng)該在不同的賽道上都具有穩(wěn)定的發(fā)揮,為了驗(yàn)證這一點(diǎn),就必須在不同的賽道上做試驗(yàn)。然而,由于各方面的限制,我們不可能為賽車(chē)制作無(wú)數(shù)的賽道進(jìn)行測(cè)試。但這個(gè)問(wèn)題卻可在plastid中輕易地得到解決:我們可以設(shè)計(jì)出不同的賽道,并將其保存成文件,在仿真時(shí)將其調(diào)用即可。

          圖2是plastid的賽道設(shè)計(jì)界面,用戶(hù)可以使用“點(diǎn)”來(lái)精確設(shè)定賽道曲線(xiàn)的下一點(diǎn)位置,使用“弧”則可以以圓心坐標(biāo)、角度來(lái)繪制想要得到的弧線(xiàn),更可以直接采用“手繪”用鼠標(biāo)在屏幕上繪制賽道或從數(shù)據(jù)文件中導(dǎo)入曲線(xiàn)。其操作界面友好,修改方便,且易于上手和操作。圖2中的賽道即根據(jù)韓國(guó)漢陽(yáng)大學(xué)2004年智能車(chē)大賽采用的賽道設(shè)計(jì)而成。


          圖2 賽道設(shè)計(jì)界面

          為了仿真方便,我們將賽車(chē)簡(jiǎn)化為一個(gè)四輪剛體模型,除了一些基本的尺寸參數(shù)之外,在前輪轉(zhuǎn)向系統(tǒng),根據(jù)賽車(chē)的實(shí)際情況,我們用“轉(zhuǎn)向速度”與“最大轉(zhuǎn)向角”兩個(gè)參數(shù)來(lái)模擬。

          對(duì)于路徑識(shí)別系統(tǒng),plstid給予使用者至多8個(gè)的光感傳感器的坐標(biāo)設(shè)定,使用者可以任意地安排傳感器的個(gè)數(shù)和相對(duì)于車(chē)的排列坐標(biāo)(將傳感器安排成一條直線(xiàn),或者弧線(xiàn)等方案),從而達(dá)到自己想要的識(shí)別效果。

          對(duì)于加速的模擬,目前系統(tǒng)暫時(shí)以直接加速度為控制量,在對(duì)實(shí)車(chē)進(jìn)行測(cè)試和分析后,將構(gòu)建相應(yīng)的模型。

          圖3即賽車(chē)設(shè)計(jì)的操作界面,左邊為賽車(chē)的基本參數(shù),右邊為傳感器坐標(biāo)設(shè)定、試驗(yàn)賽道生成以及傳感器值的即時(shí)顯示(試駕時(shí)用)。

          使用者除了可以設(shè)定賽車(chē)參數(shù)外,還可以對(duì)所設(shè)定好的賽車(chē)進(jìn)行“試駕”,當(dāng)場(chǎng)檢驗(yàn)所設(shè)計(jì)參數(shù)的優(yōu)劣,并可將賽車(chē)信息保存于文件,供仿真時(shí)調(diào)入使用。


          圖3 賽車(chē)參數(shù)設(shè)定界面

          4 控制算法仿真

          plastid針對(duì)不同的使用者提供了三種不同的控制算法仿真方案:子vi(subvi)、c結(jié)點(diǎn)以及單片機(jī)的在線(xiàn)仿真。

          首先,最接近于labview編程環(huán)境的即為subvi方案。用戶(hù)將自己的控制算法,移植為labview的subvi,plastid在仿真時(shí)即時(shí)地給該subvi輸入變量(車(chē)速、傳感器值等),subvi通過(guò)計(jì)算得出控制量并輸送給plastid仿真循環(huán)。subvi方案對(duì)于熟悉labview g語(yǔ)言編程方法的使用者來(lái)說(shuō)非常簡(jiǎn)單,但它的缺點(diǎn)是移植性較差,由于c語(yǔ)言和g語(yǔ)言的差別較大,因此將單片機(jī)的控制算法轉(zhuǎn)換為子vi的程序需要一定的工作量。

          其次,c結(jié)點(diǎn)方案則更適合于采用c語(yǔ)言編程的使用者們,其原理與subvi方案類(lèi)似,但是其程序則可直接用c語(yǔ)言編寫(xiě),用visual studio ide將其編譯為dll文件,系統(tǒng)在仿真時(shí)會(huì)自動(dòng)調(diào)用該dll,從而實(shí)現(xiàn)與subvi一樣的控制和反饋。對(duì)于本方案,使用者可以將其單片機(jī)的程序進(jìn)行適當(dāng)?shù)男薷暮蠹纯墒褂?,因此移植性較高。

          最后,利用can模塊,系統(tǒng)可以直接與單片機(jī)進(jìn)行直接通訊,并實(shí)現(xiàn)在線(xiàn)仿真。單片機(jī)方面只需要在其can接口即時(shí)地傳送其控制量(這在程序中很容易添加相應(yīng)程序),而plastid則通過(guò)can模塊得到這些量,并傳送反饋量給單片機(jī)。在這一方案,單片機(jī)的程序修改不大,但需要有can模塊等硬件支持。

          圖4為系統(tǒng)動(dòng)態(tài)仿真的界面,使用者在加載完賽道與賽車(chē)文件后,即可進(jìn)行動(dòng)態(tài)的仿真。其中仿真周期表示系統(tǒng)每一次計(jì)算的時(shí)間,可以根據(jù)單片機(jī)的運(yùn)算周期進(jìn)行設(shè)定,但值得一提的是,在仿真過(guò)程中,其真實(shí)的仿真周期會(huì)根據(jù)計(jì)算機(jī)的性能等因素而不同,但其仿真的結(jié)果可以保證確實(shí)根據(jù)該仿真周期計(jì)算而得,從而保證其仿真的可靠性。


          圖4 動(dòng)態(tài)仿真界面

          5 不足與改進(jìn)

          由于plastid仿真系統(tǒng)還未與實(shí)車(chē)的仿真進(jìn)行過(guò)深入比較,且開(kāi)發(fā)周期也較短,因此必然留有一些不足之處。

          該系統(tǒng)目前還只能用于采用光感傳感器路徑識(shí)別方案的智能車(chē),對(duì)于ccd攝像頭技術(shù)還不支持。

          其次,在仿真過(guò)程中,系統(tǒng)只是根據(jù)汽車(chē)的運(yùn)動(dòng)學(xué)模型(將車(chē)簡(jiǎn)化為一四輪剛體來(lái)處理)進(jìn)行計(jì)算,并未考慮其側(cè)滑以及路面摩擦力的影響。這將使其仿真結(jié)果與實(shí)際結(jié)果有一定差距,我們將在后續(xù)工作中根據(jù)實(shí)車(chē)的情況,不斷進(jìn)行實(shí)車(chē)試驗(yàn)和對(duì)比,從而提高其仿真真實(shí)度,使其能盡可能地模擬出實(shí)際的情況。

          最后,計(jì)算速度也是系統(tǒng)必須面臨的一大問(wèn)題。對(duì)此,我們將優(yōu)化代碼,并裁剪不必要的程序,從而提高系統(tǒng)的仿真速度。

          綜上所述,本系統(tǒng)主要針對(duì)本次智能車(chē)大賽而開(kāi)發(fā),將在這一屆邀請(qǐng)賽過(guò)程中進(jìn)行不斷的優(yōu)化和改進(jìn),爭(zhēng)取為廣大參賽隊(duì)伍更好地完成開(kāi)發(fā)任務(wù)而服務(wù)。

          霍爾傳感器相關(guān)文章:霍爾傳感器工作原理


          電度表相關(guān)文章:電度表原理


          霍爾傳感器相關(guān)文章:霍爾傳感器原理


          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();