基于電磁四輪小車(chē)的距離積分算法
基金項(xiàng)目:無(wú)錫學(xué)院優(yōu)秀本科畢業(yè)論文(設(shè)計(jì))支持計(jì)劃,項(xiàng)目編號(hào)BSZC2023039
本文引用地址:http://m.butianyuan.cn/article/202308/449337.htm0 引言
智能車(chē)輛技術(shù)的實(shí)現(xiàn)主要依靠車(chē)內(nèi)以計(jì)算機(jī)系統(tǒng)為主的智能駕駛儀來(lái)實(shí)現(xiàn)無(wú)人駕駛,涵蓋智能控制、模式識(shí)別等學(xué)科前沿?zé)狳c(diǎn)的研究領(lǐng)域,其研究與應(yīng)用具有巨大的理論和現(xiàn)實(shí)意義[1]。智能車(chē)輛的研究體現(xiàn)了車(chē)輛工程、人工智能、自動(dòng)控制、計(jì)算機(jī)等多個(gè)學(xué)科領(lǐng)域理論技術(shù)的交叉和綜合,是未來(lái)汽車(chē)發(fā)展的趨勢(shì)[2]。智能小車(chē)是智能車(chē)輛的微縮模型,具有自動(dòng)尋跡、尋光、避障等功能[3]。
通過(guò)采用先進(jìn)的電磁感應(yīng)傳感器技術(shù),智能循跡小車(chē)控制系統(tǒng)可以實(shí)現(xiàn)精準(zhǔn)的轉(zhuǎn)向,并且可以通過(guò)閉環(huán)控制實(shí)現(xiàn)自動(dòng)跟蹤,以確保車(chē)輛沿著預(yù)先設(shè)定的路線行駛。本文將深入探討智能循跡小車(chē)的硬件、軟件以及控制算法,以期望更好地實(shí)現(xiàn)其功能。這個(gè)硬件系統(tǒng)由四個(gè)部分組成:LQBLEV3M 藍(lán)牙模塊、STC16F128K單片機(jī)模塊、電機(jī)驅(qū)動(dòng)模塊和電感檢測(cè)模塊。通過(guò)使用電感來(lái)檢測(cè)路面的電磁狀態(tài),并將測(cè)量數(shù)據(jù)傳輸?shù)絊TC16F128K單片機(jī),從而實(shí)現(xiàn)小車(chē)的自動(dòng)循跡和無(wú)線遙控等多種功能。
目前主要的智能車(chē)控制算法有,PID 控制[4]、MPC模型預(yù)測(cè)[5]、LQR 控制[6]等。本文所研究的距離積分算法相較于上述循跡方法實(shí)現(xiàn)更加簡(jiǎn)單方便,也能夠依靠智能車(chē)的實(shí)時(shí)狀態(tài)進(jìn)行人工的調(diào)控,其實(shí)驗(yàn)數(shù)據(jù)的有效范圍主要依靠編碼器讀取實(shí)現(xiàn),有一定的魯棒性。
1 硬件系統(tǒng)設(shè)計(jì)
電磁智能小車(chē)系統(tǒng)分為五大模塊:主控制器模塊、電源模塊、電磁傳感器模塊、舵機(jī)驅(qū)動(dòng)模塊、電機(jī)驅(qū)動(dòng)模塊,整個(gè)系統(tǒng)的設(shè)計(jì)框圖如圖1所示。
圖1 系統(tǒng)框圖
1.1 電源模塊
電源模塊是硬件設(shè)計(jì)中的重要組成部分,它主要是對(duì)7.4 V、3 000 mA 蓄電池進(jìn)行電壓調(diào)節(jié)。由于各模塊需要的工作電壓和電流不盡相同,所以在實(shí)際中我們?cè)O(shè)計(jì)了多種穩(wěn)壓電路,用來(lái)滿足各模塊的實(shí)際工作電壓需要。其中7.4 V 電壓給驅(qū)動(dòng)電路供電,3.3 V 電壓給運(yùn)放、編碼器、藍(lán)牙、OLED、電機(jī)驅(qū)動(dòng)使能端等供電,5 V電壓給舵機(jī)供電。
1.2 電機(jī)驅(qū)動(dòng)模塊
驅(qū)動(dòng)電路的主要作用是給小車(chē)的驅(qū)動(dòng)電機(jī)提供控制和動(dòng)力,本文采用兩片 BTN7971 組成一個(gè) H 全橋電動(dòng)機(jī)驅(qū)動(dòng)電路,電路圖如圖 2 所示。我們可以改變從主控芯片輸入到 BTN7971 的PWM 的占空比來(lái)控制電動(dòng)機(jī)的供電電壓的大小,從而實(shí)現(xiàn)了對(duì)轉(zhuǎn)速的控制。
圖2 驅(qū)動(dòng)電路圖
1.3 電磁檢測(cè)模塊
電磁檢測(cè)模塊的主要作用是通過(guò)小車(chē)前瞻上的電感檢測(cè)賽道上電磁的強(qiáng)弱。將電磁轉(zhuǎn)換為數(shù)字信號(hào)再通過(guò)軟件算法來(lái)實(shí)現(xiàn)小車(chē)在電磁線上的循跡。
圖3 電感排布方式
1.4 編碼器測(cè)速模塊
本文采用的是LQ512線編碼器。這款3相Mini增量式旋轉(zhuǎn)編碼器具有高精度的旋轉(zhuǎn)特性, 可以通過(guò)3V~5V 的寬電壓輸出旋轉(zhuǎn)方向和脈沖,從而實(shí)現(xiàn)高精度的編碼功能。該編碼器有6 個(gè)引腳,分別對(duì)應(yīng)為:
1)電源地;
2)3.3 V~5 V寬電壓;
3)步進(jìn)脈沖;
4)旋轉(zhuǎn)方向;
5)機(jī)械零位;
6)懸空。
圖4 為輸出信號(hào)時(shí)序圖,圖5 為編碼器各引腳輸入輸出圖。
圖4 輸出信號(hào)時(shí)序圖
圖5 編碼器各引腳輸入輸出
2 軟件部分設(shè)計(jì)方案
2.1 距離積分控制算法
2.1.1 測(cè)量并計(jì)算單位路程的脈沖數(shù)(pulse/m)
下面給出兩種測(cè)量方法。
編碼器距離積分是一種用于測(cè)量旋轉(zhuǎn)軸的位置和速度的方法,它通過(guò)計(jì)算編碼器輸出的脈沖數(shù)來(lái)?yè)Q算成實(shí)際距離。不同類(lèi)型的編碼器有不同的脈沖數(shù)和換算公式,需要根據(jù)編碼器的參數(shù)和電機(jī)的特性來(lái)確定。一般來(lái)說(shuō),可以通過(guò)以下步驟來(lái)實(shí)現(xiàn)編碼器距離積分:
1)以正常速度將車(chē)推出大于1 m 的距離,然后測(cè)量出實(shí)際距離以及編碼器脈沖積分
2)根據(jù)單位距離的脈沖數(shù)= 實(shí)際距離 / 脈沖積分從而計(jì)算出單位距離的脈沖數(shù)
3)開(kāi)電機(jī)并記錄開(kāi)始時(shí)間和開(kāi)始時(shí)的脈沖積分
4)在每個(gè)采樣周期內(nèi)讀取當(dāng)前時(shí)間和當(dāng)前時(shí)的脈沖積分
5)根據(jù)當(dāng)前時(shí)的脈沖積分減去開(kāi)始時(shí)的脈沖積分,再乘以單位距離的脈沖數(shù),得到當(dāng)前時(shí)刻行駛過(guò)的總路程
圖6 預(yù)圓環(huán)判斷
2.1.2 距離積分在智能車(chē)循跡中的直接應(yīng)用
在環(huán)島處我們可以清晰看出在入環(huán)區(qū)電磁強(qiáng)度大于其他地方,因?yàn)闀?huì)有四根電磁線經(jīng)過(guò)入環(huán)區(qū)。直接循跡通過(guò)強(qiáng)制打角入環(huán)成功率低且容易在路肩處發(fā)生碰撞。但經(jīng)過(guò)距離積分的處理,入環(huán)率會(huì)大大提高,入環(huán)會(huì)顯得更加絲滑。
1)判斷預(yù)圓環(huán)及第1 段距離積分判斷預(yù)圓環(huán)然后開(kāi)始通過(guò)編碼器去計(jì)路程,當(dāng)路程達(dá)到一個(gè)定值之后就通過(guò)舵機(jī)固定打角,執(zhí)行入環(huán)程序。(注:在編碼器計(jì)路程的過(guò)程中,為了防止高速情況下因?yàn)殡姼兄档淖兓^(guò)大導(dǎo)致舵機(jī)小幅度的擺動(dòng)進(jìn)而導(dǎo)致車(chē)身姿態(tài)不穩(wěn),可以在這過(guò)程中讓差比和的誤差手動(dòng)置零,讓舵機(jī)保持在中值狀態(tài)。)
圖7 第一段距離積分
2)環(huán)島內(nèi)2段距離積分
環(huán)島內(nèi)當(dāng)執(zhí)行入環(huán)程序之時(shí),在圓環(huán)里不能一直保持固定打角,所以在入環(huán)之后,開(kāi)啟積分標(biāo)志位,同時(shí)工字電感引導(dǎo)入環(huán),當(dāng)距離積分?jǐn)?shù)值大于閾值,則代表入環(huán)程序結(jié)束,執(zhí)行環(huán)內(nèi)尋跡。這里環(huán)內(nèi)尋跡切換到第2個(gè)和5個(gè)電感尋跡,因?yàn)榈谝粋€(gè)電感已經(jīng)在賽道之外了,無(wú)法計(jì)算出正確的差比和值。
圖8 第二段距離積分
3)出環(huán)島第3段距離積分
給定一個(gè)電感閾值,其值略小于入環(huán)閾值,在識(shí)別到后實(shí)現(xiàn)出環(huán),由于在接下來(lái)相當(dāng)一段長(zhǎng)距離內(nèi)電感出環(huán)采集值的波動(dòng)不會(huì)太大且會(huì)和入環(huán)閾值重合,為了程序進(jìn)入入環(huán)程序,在識(shí)別到出環(huán)閾值后,編碼器走一段距離積分,直到小車(chē)完全走出圓環(huán)再切到正常循跡。直到遠(yuǎn)離圓環(huán),最后把圓環(huán)標(biāo)志位、距離積分執(zhí)行標(biāo)志位數(shù)值置零,等待下一次圓環(huán)。
圖9 第三段距離積分
通過(guò)多次在賽道上實(shí)驗(yàn),本文將小車(chē)使用距離積分入環(huán)和強(qiáng)制打角入環(huán)進(jìn)行了對(duì)比。每個(gè)算法實(shí)驗(yàn)百次,以成功出環(huán)入環(huán)為標(biāo)準(zhǔn),記實(shí)驗(yàn)數(shù)成功一次。具體實(shí)驗(yàn)數(shù)據(jù)如下:
圖10 實(shí)驗(yàn)數(shù)據(jù)對(duì)比圖
實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn)以強(qiáng)制打角進(jìn)行圓環(huán)處理,小車(chē)在出環(huán)處容易再次識(shí)別入環(huán)程序,導(dǎo)致小車(chē)難以走出圓環(huán)以至于不能完成整個(gè)賽道的循跡。而距離積分的使用則大大提高了出圓環(huán)的成功率,使小車(chē)的完賽率大大提高。
同時(shí)小車(chē)在出庫(kù)時(shí),程序里面運(yùn)用距離積分可以屏蔽小車(chē)在啟停點(diǎn)的檢測(cè),防止多次檢測(cè)影響入庫(kù),而且在小車(chē)入庫(kù)時(shí),距離積分與延時(shí)的同時(shí)使用能夠讓小車(chē)入庫(kù)更加穩(wěn)定。
系統(tǒng)軟件采用C 語(yǔ)言編寫(xiě),通過(guò) KEIL 編譯。C 語(yǔ)言被廣泛應(yīng)用于各種領(lǐng)域,其語(yǔ)言結(jié)構(gòu)緊湊,語(yǔ)言規(guī)范,編碼流暢,具有高效率、高精度、高穩(wěn)定性、高兼容性等優(yōu)點(diǎn),并具有良好的可擴(kuò)展性,可實(shí)現(xiàn)匯編語(yǔ)言的各種任務(wù),還支持快速、高效的編碼,支持 KEIL 編譯,支持快速、高效的編輯。因此可以減少程序員對(duì)硬件的操作,功能性和可移植性很強(qiáng)。
圖11 圓環(huán)距離積分控制流程圖
3 結(jié)束語(yǔ)
本文介紹了距離積分在四輪電磁小車(chē)中的應(yīng)用,通過(guò)距離積分的應(yīng)用,電磁小車(chē)實(shí)現(xiàn)了穩(wěn)定的出庫(kù)及環(huán)島的優(yōu)化處理,在實(shí)際的應(yīng)用中,電磁小車(chē)行進(jìn)速率較之前未使用距離積分時(shí)有了明顯提升。
參考文獻(xiàn):
[1] 張琨,崔勝民,王劍鋒.基于自適應(yīng)RBF網(wǎng)絡(luò)補(bǔ)償?shù)闹悄苘?chē)輛循跡控制[J].控制與決策,2014,29(4): 627-631.
[2] 劉源,張文斌,劉雪揚(yáng),等.電磁導(dǎo)航智能車(chē)檢測(cè)和控制系統(tǒng)的研究[J].傳感器與微系統(tǒng),2012,31(4):63-66.
[3] 程志江,李劍波.基于模糊控制的智能小車(chē)控制系統(tǒng)開(kāi)發(fā)[J].計(jì)算機(jī)應(yīng)用,2008,28(S2):350-353.
[4] 何文威.基于卡爾曼濾波器和PID控制的逆變器研究與設(shè)計(jì)[D].廣州:華南理工大學(xué),2013.
[5] 李國(guó)勇.智能預(yù)測(cè)控制及其Matlab實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2010:255-268.
[6] 徐明澤,劉清河.基于LQR和PID的智能車(chē)軌跡跟蹤控制算法設(shè)計(jì)與仿真[J].太原理工大學(xué)學(xué)報(bào),2022,53(5):877-885.
(本文來(lái)源于《電子產(chǎn)品世界》雜志2023年7月期)
評(píng)論