摘 要: 介紹了兩輪自平衡小車控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),系統(tǒng)以飛思卡爾公司的16位微控制器MC9S12XS128MAL作為核心控制單元,,利用加速度傳感器MMA7361測(cè)量重力加速度的分量,,即小車的實(shí)時(shí)傾角,以及利用陀螺儀ENC-03MB測(cè)量小車的實(shí)時(shí)角速度,,并利用光電編碼器采集小車的前進(jìn)速度,,實(shí)現(xiàn)了小車的平衡和速度控制。在小車可以保持兩輪自平衡前提下,,采用攝像頭CCD-TSL1401作為路徑識(shí)別傳感器,,實(shí)時(shí)采集賽道信息,并通過左右輪差速控制轉(zhuǎn)彎,,使小車始終沿著賽道中線運(yùn)行,。實(shí)驗(yàn)表明,該控制系統(tǒng)能較好地控制小車平衡快速地跟隨跑道運(yùn)行,,具有一定的實(shí)用性。
關(guān)鍵詞: 控制,;自平衡,;實(shí)時(shí)性
近年來,,隨著經(jīng)濟(jì)的不斷發(fā)展和城市人口的日益增長,城市交通阻塞以及耗能,、污染問題成為了一個(gè)困擾人們的心病,。新型交通工具的誕生顯得尤為重要,兩輪自平衡小車應(yīng)運(yùn)而生,,其以行走靈活,、便利、節(jié)能等特點(diǎn)得到了很大的發(fā)展,。但是,,昂貴的成本還是令人望而止步,成為它暫時(shí)無法廣泛推廣的一個(gè)重要原因,。因此,,開展對(duì)兩輪自平衡車的深入研究,不僅對(duì)改善平衡車的性價(jià)比有著重要意義,,同時(shí)也對(duì)提高我國在該領(lǐng)域的科研水平,、擴(kuò)展機(jī)器人的應(yīng)用背景等具有重要的理論及現(xiàn)實(shí)意義。全國大學(xué)生飛思卡爾智能車競賽與時(shí)俱進(jìn),,第七屆電磁組小車首次采用了兩輪小車,,模擬兩輪自平衡電動(dòng)智能車的運(yùn)行機(jī)理。在此基礎(chǔ)上,,第八屆光電組小車再次采用兩輪小車作為控制系統(tǒng)的載體,。小車設(shè)計(jì)內(nèi)容涵蓋了控制、模式識(shí)別,、傳感技術(shù),、汽車電子、電氣,、計(jì)算機(jī),、機(jī)械及能源等多個(gè)學(xué)科的知識(shí)。
1 小車控制系統(tǒng)總體方案
小車以16位單片機(jī)MC9S12XS128MAL作為中央控制單元,,用陀螺儀和加速度傳感器分別檢測(cè)小車的加速度和傾斜角度[1],,以線性CCD采集小車行走時(shí)的賽道信息,最終通過三者的數(shù)據(jù)融合,,作為直流電機(jī)的輸入量,,從而驅(qū)動(dòng)直流電機(jī)的差速運(yùn)轉(zhuǎn),實(shí)現(xiàn)小車的自動(dòng)循軌功能,。同時(shí),,為了更方便、及時(shí)地觀察小車行走時(shí)數(shù)據(jù)的變化,并且對(duì)數(shù)據(jù)作出正確的處理,,本系統(tǒng)調(diào)試時(shí)需要無線模塊和上位機(jī)的配合,。小車控制系統(tǒng)總體架構(gòu)如圖1所示。
2 小車控制系統(tǒng)自平衡原理
兩輪小車能夠?qū)崿F(xiàn)自平衡功能,,并且在受到一定外力的干擾下,,仍能保持直立狀態(tài),是小車可以沿著賽道自動(dòng)循線行走的先決條件,。為了更好地控制小車的行走方式,,得到最優(yōu)的行走路徑,需要對(duì)小車分模塊分析與控制,。
本控制系統(tǒng)維持小車直立和運(yùn)行的動(dòng)力都來自小車的兩個(gè)輪子,,輪子轉(zhuǎn)動(dòng)由兩個(gè)直流電機(jī)驅(qū)動(dòng)。小車作為一個(gè)控制對(duì)象,,它的控制輸入量是兩個(gè)電機(jī)的轉(zhuǎn)動(dòng)速度,。小車運(yùn)動(dòng)控制可以分解成以下3個(gè)基本控制任務(wù)。
?。?)小車平衡控制:通過控制兩個(gè)電機(jī)正反方向運(yùn)動(dòng)保持小車直立平衡狀態(tài),;
(2)小車速度控制:通過調(diào)節(jié)小車的傾斜角度來實(shí)現(xiàn)小車速度控制,,本質(zhì)上是通過控制電機(jī)的轉(zhuǎn)速來實(shí)現(xiàn)小車速度的控制,。
(3)小車方向控制:通過控制兩個(gè)電機(jī)之間的轉(zhuǎn)動(dòng)差速實(shí)現(xiàn)小車轉(zhuǎn)向控制,。
2.1 小車平衡控制
要想實(shí)現(xiàn)小車的平衡控制,,需要采取負(fù)反饋控制方式[2]。當(dāng)小車偏離平衡點(diǎn)時(shí),,通過控制電機(jī)驅(qū)動(dòng)電機(jī)實(shí)現(xiàn)加,、減速,從而抵消小車傾斜的趨勢(shì),,便可以保持車體平衡,。即當(dāng)小車有向前傾的趨勢(shì)時(shí),可以使電機(jī)正向加速,,給小車一個(gè)向前的加速度,,在回復(fù)力和阻尼力的作用下,小車不至于向前傾倒,;當(dāng)小車有向后傾的趨勢(shì)時(shí),,可以使小車反向加速,給小車一個(gè)向后的加速度,,從而不會(huì)讓小車向后傾倒,,如圖2所示。
從上述的定性分析可知,在運(yùn)動(dòng)過程中小車會(huì)不斷地在平衡點(diǎn)附近來回?cái)[動(dòng),,如果控制不當(dāng),,來回?cái)[動(dòng)的幅度會(huì)很大。顯然,,這樣的控制不能滿足兩輪小車的實(shí)際要求,小車更無法按照賽道快速運(yùn)行,。為使小車可以在平衡點(diǎn)附近很好地保持平衡,,需要對(duì)小車的加速度等進(jìn)行嚴(yán)格地定量分析和計(jì)算。
直立著的小車能簡化成放置在可以左右移動(dòng)平臺(tái)上的倒立著的單擺[3],。從圖3可知,,小車在偏離平衡位置時(shí)無法在不受外力的情況下穩(wěn)定在平衡位置,是因?yàn)樾≤囀艿降幕貜?fù)力F=mgsinθ與小車位移偏離的方向相同,,這樣會(huì)加速使小車向偏離平衡的位置倒下,。要想小車可以穩(wěn)定在平衡位置,必須給小車額外增加一個(gè)和回復(fù)力相反方向的力,。如果產(chǎn)生一個(gè)與小車偏離方向相同的加速度a,,使小車受到額外的力F額外=-macosθ,此時(shí)小車所受到的合力為F合=mgsinθ-macosθ,。只要F合<0,,即F合的方向與小車偏離平衡位置的方向相反,小車就擁有了回復(fù)平衡位置的趨勢(shì),,進(jìn)而在空氣阻力以及小車機(jī)械阻力的作用下,,可以在一個(gè)平衡點(diǎn)穩(wěn)定下來。
2.2 小車速度控制
兩輪小車速度控制相對(duì)于4輪小車要復(fù)雜得多,,因?yàn)樵诟淖冃≤囁俣葧r(shí),,還需要保證小車可以實(shí)現(xiàn)平衡控制[4]。在保持小車平衡的前提下,,采取改變小車傾角的方式來改變小車的速度,。在一定范圍內(nèi),當(dāng)小車向前傾的角度越大時(shí),,小車前進(jìn)的速度越大,;當(dāng)小車向后傾的角度越大時(shí),小車前進(jìn)的速度越小,。
即使小車在直立控制調(diào)節(jié)下已經(jīng)能夠保持平衡,,但由于安裝誤差的存在,傳感器測(cè)量的角度與小車實(shí)際角度存在偏差,,因此小車實(shí)際會(huì)在重力的作用下,,朝傾斜的方向加速前進(jìn)。故需要外加速度負(fù)反饋以控制小車穩(wěn)定在平衡位置。速度控制的任務(wù)主要有以下3個(gè),。
?。?)小車速度的測(cè)量;
?。?)通過小車直立控制實(shí)現(xiàn)小車傾角的改變,;
(3)根據(jù)速度誤差控制小車傾角,。
小車速度的測(cè)量可以通過安裝在電機(jī)輸出軸上的光電編碼器來實(shí)現(xiàn),。本系統(tǒng)采用的是100線的編碼器,即編碼器上面的齒輪轉(zhuǎn)一圈,,編碼器可以輸出100個(gè)脈沖,。再利用單片機(jī)具有輸入捕捉功能的引腳PT7對(duì)該脈沖進(jìn)行采樣。在固定時(shí)間內(nèi),,輸出脈沖越多,,小車的速度就越快,這樣就可以測(cè)量出小車的速度,。
小車傾角的控制所示系統(tǒng)實(shí)現(xiàn),。從小車直立控制算法中可知,小車的傾斜角度與加速度計(jì)Z軸測(cè)量輸出的角度成比例線性關(guān)系[5],。因此,,設(shè)置一個(gè)傾角給定值,小車的傾角給定值與重力加速度Z軸角度相減,,便可以最終決定小車的傾角,,再通過誤差的比例-積分控制使角度自動(dòng)維持在設(shè)定值附近,最后再利用角速度和角度作為輸入量,,制作一個(gè)比例-積分控制器,,從而驅(qū)動(dòng)電機(jī)維持車模保持給定的傾角。
理論上,,當(dāng)小車向前傾角為45°時(shí),,速度為2 m/s[2]。但是在實(shí)際控制中,,由于小車機(jī)械傳動(dòng)方面的阻尼力以及輪子的摩擦力等因素的影響,,小車無法達(dá)到理論要求。為了解決這些干擾對(duì)小車速度的影響,,需要采用速度負(fù)反饋的控制策略,,形成一個(gè)閉環(huán)控制系統(tǒng)。
2.3 小車方向控制
為使車模沿著賽道行駛,,必須檢測(cè)賽道信息,。本系統(tǒng)采用線性攝像頭CCD-TSL1401實(shí)時(shí)采集賽道信息,。TSL1401CL是由一個(gè)128×1的光電二極管陣列、電荷放大器電路和內(nèi)部的像素?cái)?shù)據(jù)保存器組成,。它保存了從起始到停止時(shí)間的所有像素,。操作簡單,內(nèi)部控制邏輯只需要串行輸入信號(hào)SI和時(shí)鐘CLK信號(hào)[6],。CCD檢測(cè)采集賽道信息視角圖如圖所示,。
CCD提取賽道信息后,將小車速度控制信號(hào)與直立控制信號(hào)綜合,,與賽道偏差檢測(cè)信號(hào)進(jìn)行加和減運(yùn)算,,形成左右輪差動(dòng)控制電壓,使得小車左右輪運(yùn)行角速度不一致進(jìn)而控制小車方向,,如圖7所示。
3 小車控制系統(tǒng)算法編程
小車的程序控制幾乎都是在1 ms時(shí)間的中斷里完成,,主函數(shù)只是在不斷地通過串口向上位機(jī)發(fā)送數(shù)據(jù),,進(jìn)行實(shí)時(shí)監(jiān)控。其中,,中斷程序分別完成了小車的直立控制,、速度控制和方向控制,通過全局標(biāo)志量的循環(huán)計(jì)數(shù),,確定每次小車需要調(diào)用執(zhí)行的程序模塊,。中斷函數(shù)的實(shí)現(xiàn)如圖所示。
其中,,小車的直立控制是本系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的關(guān)鍵,,角度計(jì)算和轉(zhuǎn)換函數(shù)的實(shí)現(xiàn)如下所示。
void AngleCalculate(void)
{
float fDeltaValue,;
g_fGravityAngle=(VOLTAGE_GRAVITY-
GRAVITY_OFFSET)*
GRAVITY_ANGLE_RATIO,;
//加速度傳感器計(jì)算出來的角度值
g_fGravityAngle=LOW_PASS_Acce(g_fGravityAngle);
//低通濾波
g_fGyroscopeAngleSpeed=(VOLTAGE_GYRO-
GYROSCOPE_OFFSET)*
GYROSCOPE_ANGLE_RATIO,;
//陀螺儀計(jì)算出來的角速度值
g_fGyroscopeAngleSpeed=LOW_PASS_Gyro
?。╣_fGyroscopeAngleSpeed);//低通濾波
g_fCarAngle=g_fGyroscopeAngleIntegral,;
fDeltaValue=(g_fGravityAngle-g_fCarAngle)
/GRAVITY_ADJUST_TIME_CONSTANT,;
//用加速度傳感器得到的角度與陀螺儀的偏差,糾正陀螺儀的輸出
g_fGyroscopeAngleIntegral+=(g_fGyroscopeAngleSpeed+
fDeltaValue)/
GYROSCOPE_ANGLE_SIGMA_FREQUENCY,;
}
本文介紹了直立行走小車控制系統(tǒng)的實(shí)現(xiàn)原理,,通過對(duì)小車的平衡控制、速度控制和方向控制,,實(shí)現(xiàn)了小車的直立行走與自動(dòng)循軌的功能,。在本系統(tǒng)的設(shè)計(jì)與制作過程中,,不僅是對(duì)控制系統(tǒng)的實(shí)現(xiàn)原理的分析,還是對(duì)傳感器的合理使用,,都為開展對(duì)兩輪自平衡車的深入研究提供了寶貴的實(shí)踐經(jīng)驗(yàn),。此外,在2013年舉行的全國大學(xué)生飛思卡爾智能車競賽中,,此作品參加了華南賽區(qū)比賽,,并榮獲三等獎(jiǎng)。實(shí)踐證明,,本系統(tǒng)的設(shè)計(jì)具有一定的實(shí)際價(jià)值,。
參考文獻(xiàn)
[1] 第七屆全國大學(xué)生“飛思卡爾”杯智能汽車競賽 電磁組直立行車參考設(shè)計(jì)方案 [R].飛思卡爾杯智能汽車競賽秘書處,2012.
[2] 胡壽松.自動(dòng)控制原理(第五版)[M].北京:科學(xué)出版社,,2007.
[3] 周小仨.兩輪自平衡電動(dòng)車核心控制算法的選擇[J].辦公自動(dòng)化,,2013,252(4):56-57.
[4] 張啟秋,,蔡雄友,,葉駿輝,等.兩輪自平衡智能小車控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].五邑大學(xué)學(xué)報(bào)(自然科學(xué)版),,2013,,27(3):57-60.
[5] 劉海剛,宋一標(biāo),,陳恒偉,,等.單軸兩輪自平衡小車姿態(tài)控制系統(tǒng)設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2013,,26(9):16-18.
[6] 王俊,,許林,岳東,,等.基于CCD的兩輪自平衡智能車系統(tǒng)設(shè)計(jì)[J].信息技術(shù),,2013(8):179-185.