在智能車競賽中,速度控制不能采用單純的PID,而要采用能夠在全加速、緊急制動和閉環(huán)控制等多種模式中平穩(wěn)切換的“多模式”速度控制算法,才能根據(jù)不同的道路狀況迅速準(zhǔn)確地改變車速,實現(xiàn)穩(wěn)定過彎。 系統(tǒng)硬件設(shè)計 按照競賽要求,本文設(shè)計的智能車速度控制系統(tǒng),以飛思卡爾MC9S12DG128 單片機(jī)為核心[1],與車速檢測模塊、直流電機(jī)驅(qū)動模塊、電源模塊等一起構(gòu)成了智能車速度閉環(huán)控制系統(tǒng)。單片機(jī)根據(jù)賽道信息采用合理的控制算法實現(xiàn)對車速的控制,車速檢測采用安裝于車模后軸上的光電編碼器,直流電機(jī)驅(qū)動采用了由四個MOS管構(gòu)成的H橋電路如圖1所示,電源模塊給單片機(jī)、光電編碼器和驅(qū)動電機(jī)等供電。 系統(tǒng)建模 一個針對實際對象的控制系統(tǒng)設(shè)計,首先要做的就是對執(zhí)行器及系統(tǒng)進(jìn)行建模,并標(biāo)定系統(tǒng)的輸入和輸出。為了對車速控制系統(tǒng)設(shè)計合適的控制器,就要對速度系統(tǒng)進(jìn)行定階和歸一化[2]。對此,分別設(shè)計了加速和減速模型測定實驗。通過加裝在車模后輪軸上的光電編碼器測量電機(jī)轉(zhuǎn)速。編碼器齒輪與驅(qū)動輪的齒數(shù)比為33/76,編碼器每輸出一個脈沖對應(yīng)智能車運(yùn)動1.205mm。車模可以通過調(diào)節(jié)加給電機(jī)的PWM波的占空比進(jìn)行調(diào)速。單片機(jī)上的PWM模塊可以是8位或16位的,為了提高調(diào)速的精度,電機(jī)調(diào)速模塊選用16位PWM,其占空比調(diào)節(jié)范圍從0到65535,對應(yīng)電機(jī)電樞電壓從0%到100%的電池電壓。 將車模放置在一段長直跑道上,采用開環(huán)方式給驅(qū)動電機(jī)加上不同的電壓,記錄車模在速度進(jìn)入穩(wěn)定后的速度值。然后將所測得的電樞電壓與車速進(jìn)行擬合的曲線如圖2所示,由圖1可將智能車加速模型近似為線性模型。 根據(jù)實驗數(shù)據(jù)可以確定車速執(zhí)行器系統(tǒng)的零點(diǎn)和增益。車速V與占空比PWM_Ratio的關(guān)系見公式1: V = PWM_Ratio×402 + 22000 (1) 其中:PWM_Ratio的取值范圍為0-65535 車模減速有三種方法:自由減速、能耗制動和反接制動。自由減速動力來自摩擦阻力,基本認(rèn)為恒定。能耗制動是將能量消耗到電機(jī)內(nèi)阻上,制動力隨著車速的降低而降低,也可通過控制使加速度減小得更快。反接制動通過反加電壓實現(xiàn),制動力與所加的反向電壓有關(guān)。 由于輪胎抓地力有限,制動力超過一定值后會發(fā)生輪胎打滑的情況。一旦發(fā)生打滑,會使剎車距離變長,過彎半徑變大。如果能使剎車力始終控制在臨界打滑點(diǎn)上,則可以獲得最短的剎車距離。在這三種減速方法中,只有反接制動可以根據(jù)不同的車速給出不同的反接剎車力,讓車速以最大斜率下降。因此,通過大量實驗測定出不打滑的最高剎車電壓,最高不打滑劃占空比約為55000。因為不同賽道會有差異,在編程時留有了余量。以震蕩作為識別車模在剎車時是否打滑的標(biāo)志。可以分取幾個典型的車速,讓車模在直道上加到預(yù)設(shè)的速度,然后分別用一組反接電壓進(jìn)行反接制動,觀察并記錄最高不打滑的剎車電壓。這樣,每個典型車速都得到一個對應(yīng)的最大剎車電壓。將最大不打滑反接電壓與車速對比后,發(fā)現(xiàn)最大不打滑反接電壓與車速成比例關(guān)系。考慮直流電機(jī)的模型,外部電壓加到電機(jī)電樞上時,電機(jī)轉(zhuǎn)子開始轉(zhuǎn)動,產(chǎn)生反電勢,此電壓與車速成正比例關(guān)系。當(dāng)轉(zhuǎn)子上產(chǎn)生的反電勢等于外加電壓后,電機(jī)速度達(dá)到穩(wěn)態(tài)。因此,反接制動電壓減去電機(jī)產(chǎn)生的反電勢之后剩下的電壓部分才是用于減速的。在車模要減速的時候,可以先通過當(dāng)前車速計算出轉(zhuǎn)子的反電勢,然后在這個基礎(chǔ)上再疊加一個反接制動電壓,送到執(zhí)行器上。 車模前進(jìn)的阻力主要分為地面滑動摩擦力和風(fēng)阻,車模在行駛過程中質(zhì)量保持恒定不變。在車速較低的情況下,風(fēng)阻也可認(rèn)為是恒值。結(jié)合以上實驗數(shù)據(jù)和推理可知,車速模型的主要部分為一階慣性環(huán)節(jié)。 速度控制策略 經(jīng)分析,賽道大致分為直道,90度和90度以上的彎道和S形彎道等類型,要想在不同道路上發(fā)揮出最大速度,關(guān)鍵問題是如何判斷出道路的情況,以下是幾種道路的判斷條件和通過策略。 a. 直道的判斷條件和通過策略 當(dāng)小車在中間三個光電管的檢測范圍內(nèi)檢測到黑線,則認(rèn)為小車行駛在直道上,滿足直道的條件就使小車加速,直至加到某個較大的值時滿足剎車的條件。如果連續(xù)幾十個周期都檢測到了黑線,說明小車行駛在長直道上,而轉(zhuǎn)彎時需要剎車。 直道最高限速度是賽車從長直道入彎時不沖出彎道的最高速度,小車行駛時不能高于這個速度。當(dāng)然,剎車越及時,越靈敏,則直道上速度就可以越大。實驗得到約為55000(對應(yīng)PWM的占空比)。 需要剎車的最小速度是讓小車從長直道入彎,不用剎車時能夠順利通過彎道的最高速度。當(dāng)車的瞬時速度高于這個速度入彎時,啟動剎車,反之,不用剎車。實驗測得長直道入彎最高速度不超過50000(對應(yīng)PWM的占空比)。 b. 彎道判斷條件和通過策略 當(dāng)小車不滿足直道的條件時,則行駛在彎道上。由于彎道的曲率半徑和角度的不同分為90度和90度以上的彎道和S形彎道。當(dāng)小車行駛在彎道時,只有某一邊的傳感器連續(xù)檢測到黑線,再根據(jù)兩邊的傳感器檢測到黑線時間的長短來確定彎道角度的大小;如果小車行駛在S形彎道上,則傳感器檢測到的值會在水平偏差范圍內(nèi)連續(xù)變化。總之在彎道上,要以彎道最大速度行駛。 彎道最大速度是讓小車在彎道上一直加速,直至沖出賽道的速度。當(dāng)賽車在彎道上的速度小于彎道最大速度時,就要調(diào)整PWM信號的占空比,使小車逐漸加速。實驗測得所有彎道最大速度不超過32000(對應(yīng)PWM的占空比)。 c.交叉線識別 按比賽規(guī)則,還有交叉線,但由于是直角交叉,因此只需要在多個傳感器都檢測到黑線的情況下保持原來的行進(jìn)方向和速度繼續(xù)前進(jìn)即可。 結(jié)語 全國智能車競賽最終比的是速度,要想取得好成績就要讓小車在不同的道路上都能以極限速度行駛。通過大量的實驗得出小車在不同形狀道路上的極限速度參數(shù),根據(jù)不同道路的判斷條件選擇合適的參數(shù),再根據(jù)速度值來調(diào)節(jié)PWM,從而實現(xiàn)智能車的快速穩(wěn)定巡線行駛。 |