01 前 言
各位同學(xué),各位車友大家好,我們是西華大學(xué)單車組消除零飄隊,很高興能和大家分享我們隊伍備戰(zhàn)第十七屆全國大學(xué)生智能汽車競賽平衡單車組的備賽過程,首先還是要感謝我的兩個隊友從始至終的堅持和指導(dǎo)老師的大力支持,如果沒有他們的堅持我是不可能堅持下來的。
我們組由兩個大二和一個大一組成,在備賽過程中我們一致認為平衡單車組備賽難度大,不易上手,因此此次將從介紹動量輪平衡單車原理開始,然后介紹硬件設(shè)計思路包括無刷驅(qū)動板的設(shè)計,最后介紹串級PID的原理和其參數(shù)整定以及圖像處理元素我們的一些小思路,希望能夠起到拋磚引玉的效果,幫助更多剛剛開始做車的車友。開源鏈接將會放到文章末尾。
▲ 圖1.1 國賽前車模成品02 原理簡介
分析動量輪保持平衡原理時,我們假設(shè)電單車受到非本我力矩導(dǎo)致單車的平衡狀態(tài)發(fā)生了改變,與設(shè)想的運動狀態(tài)出現(xiàn)不同時,ICM20602六軸陀螺儀會檢測此時單車角度,與設(shè)想角度進行求差,動量輪系統(tǒng)則會根據(jù)主控傳遞過來的誤差時時調(diào)整轉(zhuǎn)速,進而產(chǎn)生控制力矩來平衡非本我力矩對姿態(tài)的影響,實現(xiàn)動量輪對電單車的姿態(tài)控制。
通過對單車的模型進行簡化為一階倒立擺模型我們可以得到以下結(jié)論。
- 1:是整車的質(zhì)量;
- 2:是動量輪的質(zhì)量;
- R:是動量輪的半徑;
- L:是桿長。
當(dāng)整個系統(tǒng)向順時針方向傾斜 θ 角時,慣性輪以 的角加速度順時針加速能使整個系統(tǒng)靜止或繞原點 O 勻速旋轉(zhuǎn)。所以,如果讓整個系統(tǒng)由傾斜狀態(tài)恢復(fù)平衡,則慣性輪角加速度必須大于上述公式。此時整個系統(tǒng)將以角加速度
加速向豎直平衡位置運動,從而實現(xiàn)平衡。
03 硬件設(shè)計
根據(jù)上一部分對原理的介紹,我們可以知道為了更好的平衡單車,我們希望動量輪整體質(zhì)量占整個車身質(zhì)量的比重越大越好,在無法改變動量輪質(zhì)量的前提下,減少車身質(zhì)量成了一個很好的選擇,同樣受限于單車的大小,我們希望單車硬件的大小能盡可能的小和輕,因此在還沒有考慮使用無刷的時候,我們設(shè)計出了主控一體板,該主驅(qū)一體板供電可以從5.5V-36V。
▲ 圖3.1 系統(tǒng)電源總設(shè)計框圖穩(wěn)壓部分我們使用了TPS5430DDAR,該芯片輸入電壓范圍廣,穩(wěn)壓電壓可調(diào),輸出電壓紋波小,輸出電流最大可到3A,可以為后續(xù)的LDO穩(wěn)壓器件提供小的電壓差以減少LDO穩(wěn)壓器件的發(fā)熱。電源總體設(shè)計圖和PCB正反面3D視圖如下圖所示。
▲ 圖3.2 一體板正面3D視圖▲ 圖3.3 一體板反面3D視圖對于無刷驅(qū)動板。我們使用了英飛凌的TC264的作為主控單元,使用IR2181作為預(yù)驅(qū)芯片,國產(chǎn)EG2181可以代替,在選用MOS管的時候考慮到無刷電機正反轉(zhuǎn)時會產(chǎn)生較大的電流,為了避免MOS被擊穿,我們選用的國產(chǎn)的HYG006N04LS1TA TOLL,該MOS管耗散功率高達428W可以很好地滿足較大功率無刷電機的使用,PCB 3D視圖如圖2.3所示。
▲ 圖3.4 無刷驅(qū)動板PCB3D視圖04 串激PID
串級控制系統(tǒng)是改善控制質(zhì)量的有效方法之一,在過程控制中得到了廣泛的應(yīng)用。所謂串級控制,就是采用兩個(或兩個以上)控制器串聯(lián)工作,外環(huán)控制器的輸出作為內(nèi)環(huán)控制器的設(shè)定值,由內(nèi)環(huán)控制器的輸出去操縱控制閥,從而對外環(huán)被控量具有更好的控制效果。這樣的控制系統(tǒng)被稱為串級系統(tǒng)。
PID串級控制就是串級控制中的兩個(或兩個以上)控制器均為PID控制器。在這里我也解釋一下為什么要用串級PID。打一個很簡單的比喻,拿倒車入庫來說明,我們需要控制的對象是位置,但是我們操控的車的速度,當(dāng)車離車庫較遠時我們希望車跑快一點,當(dāng)車離車庫進一點的時候我們希望車跑慢一點。所以控制思路是這樣的,現(xiàn)獲取當(dāng)先位置和目標(biāo)位置做期望速度差獲得位置外環(huán),位置外環(huán)的輸出為內(nèi)環(huán)速度環(huán)的輸入,這樣子我們可以使車平穩(wěn)的到達車庫。
同樣的我們對于單車直立環(huán)也是這樣的思路,我們實際希望控制的單車的角度,但是控制角度需要控制角速度,在此基礎(chǔ)上在引入速度正反饋來加快整個過程的響應(yīng),圖3.1為平衡環(huán)串級PID的流程圖。
▲ 圖4.1 平衡環(huán)串激PID控制流程圖圖中,最外環(huán)是速度環(huán),其次是角度內(nèi)環(huán),最后是角速度內(nèi)環(huán)。速度環(huán)的輸出通過程序設(shè)置為0,目的是為了讓動量輪的輸出相對于動量輪的速度形成正反饋,這樣當(dāng)平衡車有傾倒趨勢時,動量輪電機會輸出更大的動能,使恢復(fù)力加強,讓小車保持平衡。角度環(huán)和角速度環(huán)對于角度都是負反饋,這樣可以使小車盡可能地穩(wěn)定在設(shè)定平衡角附近。同時,為了保證內(nèi)環(huán)更好地響應(yīng),我們讓內(nèi)環(huán)執(zhí)行5次后,與之相應(yīng)地的外環(huán)執(zhí)行一次。
對串級PID的調(diào)試,我們可以對各個環(huán)的控制器依次調(diào)試。
首先是角速度內(nèi)環(huán),我們希望它可以抑制角速度,所以在單獨調(diào)節(jié)角速度環(huán)時,我們可以隨便給個P量,然后左右晃動小車,此時應(yīng)該會有阻尼感,動量輪在角速度環(huán)的作用下,想要抑制我們的晃動,如果我們并沒有感受到阻尼作用,而是有加速的感覺,那么就說明此時角速度環(huán)的方向是反的,我們可以給輸出加個負號,讓輸出反向即可。
然后是角度環(huán),我們希望它能根據(jù)角度的偏移,而固定輸出一個轉(zhuǎn)速,但是它的方向同樣應(yīng)該抑制角度的偏移,單獨調(diào)試角度環(huán)時,我們可以給一個較大的P量,然后讓小車由垂直狀態(tài)稍微傾斜,也能感受到阻尼感,那么就說明方向正確。
最后是速度環(huán),我們希望速度環(huán)不是抑制速度的增加,而是讓速度更快,這樣就可以讓動量輪輸出更多的角動量以達到平衡,速度環(huán)方向的測試方法也很簡單,首先把輸出限幅,然后給一個較大的P量,我們快速的波動一下飛輪,此時因為有了初速度,在速度環(huán)的作用下,飛輪應(yīng)該越轉(zhuǎn)越快。
初步調(diào)節(jié)以后,我們可以在通過相應(yīng)的PID參數(shù)進一步調(diào)試增加系統(tǒng)的穩(wěn)定性。在對于角速度內(nèi)環(huán),我們采用的PI控制,不使用D控制器是因為它會引入角速度的高頻振蕩。I參數(shù)可以抑制角速度的漂移,如果小車穩(wěn)定是,動量輪依然有朝大體上朝一邊轉(zhuǎn)動的現(xiàn)象,可以嘗試增加I參數(shù)改善;對于角度環(huán),我們采用PD控制,不使用I控制器是因為多重I控制器是不必要的,而且會使系統(tǒng)響應(yīng)延遲。D參數(shù)可以起到加速響應(yīng)和預(yù)測響應(yīng)的效果,如果小車在平衡位置不斷地振蕩,可以適當(dāng)增加D參數(shù),也可以同時適當(dāng)?shù)販p小P參數(shù),提高小車地穩(wěn)定性。對于速度外環(huán),我們采用單P控制,需要注意的是,P參數(shù)過大會造成系統(tǒng)超調(diào),這時需要適當(dāng)減小P參數(shù)。
在調(diào)試過程中,我們可以通過無線串口發(fā)送數(shù)據(jù)給上位機實時顯示,進而達到更好的調(diào)試效果。
05 攝像頭處理
對于三叉的處理,剛開始我們的思路和網(wǎng)上的思路大差不差,也是尋找左右拐點和中拐點,這個思路本身并沒有很大的問題,但是對于單車可能不那么適用,尤其是在單車速度較快時(0.7m/s)以上的時候,在途進十字的時候以及出十字的時候,但是整車的傾斜角度較大,造成圖像傾斜,在此時圖像非常像三叉。
對于此種情況,我們提出了新的解決辦法,在識別左右拐點后,引入圖像每行的白點數(shù)和圖像的寬度加以判斷,在直道上我們會采集整個賽道的寬度并儲存到數(shù)組中,需要使用的調(diào)用即可,三叉的整個圖像寬度變化是先減少,再增大,利用這個思路,我們可以增加三叉的限制條件,以減小誤判的可能。
在判斷的基礎(chǔ)上,很多思路都是補出左右邊線,然后根據(jù)左右邊線來找中線,我們的思路是單邊巡線,在判斷到三叉后,通過左邊線加上賽道寬度的一半或者右邊線減去賽道寬度的一半來補出中線,補線的時間可以是編碼器積分也可以是定時(推薦編碼器積分)。
對于環(huán)島我們剛開始是使用純攝像來判斷,但是為了更加穩(wěn)定的判斷,我的建議是加上一個中電感來判斷,通過攝像頭來判斷左右環(huán)島,使用攝像頭路過環(huán)島的時候,我們會發(fā)現(xiàn)有抖動,在此時我們建議寫一個函數(shù),在左右兩邊某一邊丟線過多時,我們使用另一邊加減賽道寬度來補出賽道的中線,這樣子就可以讓小車比直的通過環(huán)島,也方便電感的輔助判斷,判斷到左右環(huán)島后,通過切換掃線方式來切入環(huán)島,環(huán)島內(nèi)通過陀螺儀積分來判斷出環(huán)島,出環(huán)島后切換掃線模式,讓小車走直道,許多小車在小環(huán)島的時候可能會內(nèi)切賽道,我們建議在進入環(huán)島時適當(dāng)減小偏差來讓小車更加平穩(wěn)。
最后我們也給出為什么不使用純電磁的原因,首先無刷電機對于電感影響較大,其次電感對于三叉的判斷不太準(zhǔn)確換場地后尤其明顯,最后電磁會使單車的結(jié)構(gòu)更加復(fù)雜。
06 總 結(jié)
感謝父母的支持,感謝隊友的支持,感謝指導(dǎo)老師的幫助,感謝實驗室伙伴幫助,希望智能車能越來越好,引入更加新穎的元素,促進智能車競賽的發(fā)展。最后我想附上一張截圖,很有意思的等式:
跑步跑的行 = 能熬夜能熬夜 =車調(diào)的好可以得出:
跑步跑的好 = 車車調(diào)的好