高雪,劉永新,李藝文
(陸航學(xué)院航電和兵器工程系,北京,101123)
雙輪平衡車是一種能夠穩(wěn)定保持直立,且在外力的作用下依然可以不倒的智能小車。平衡車的穩(wěn)定主要是通過兩個(gè)電機(jī)的運(yùn)動(dòng)來實(shí)現(xiàn)的,本設(shè)計(jì)兩輪平衡車保持小車直立和運(yùn)動(dòng)的動(dòng)力由小車的車輪控制,車輪的轉(zhuǎn)動(dòng)由兩個(gè)直流電機(jī)驅(qū)動(dòng)。從自動(dòng)控制入手,控制對(duì)象為平衡小車,兩個(gè)直流電機(jī)的轉(zhuǎn)速作為輸入量[1]。該平衡小車相對(duì)于過去的四輪移動(dòng)式機(jī)器人而言有了很多的改進(jìn),一是在車體的結(jié)構(gòu)上面實(shí)現(xiàn)了優(yōu)化,體積減小;二是可以實(shí)現(xiàn)原地轉(zhuǎn)彎,轉(zhuǎn)向的半徑可以很小,移動(dòng)軌跡也更加機(jī)動(dòng),可以實(shí)現(xiàn)在窄小空間內(nèi)運(yùn)動(dòng);三是驅(qū)動(dòng)小車運(yùn)動(dòng)所需要的功率相對(duì)教小,同等條件下電池可以實(shí)現(xiàn)對(duì)該小車較長(zhǎng)時(shí)間的供電。
平衡車的概念自從被提出以來,其在外來擾動(dòng)下依然能保持穩(wěn)定的特點(diǎn)使得它成為一個(gè)研究控制理論的很好的平臺(tái)[2]。近年來,雙輪自平衡類設(shè)備的研究在美國(guó)等相對(duì)發(fā)達(dá)的國(guó)家正在被研究,各實(shí)驗(yàn)室提出了不同的平衡控制的解決方案,也組建出了一些原型機(jī)來進(jìn)行試驗(yàn),對(duì)平衡小車的的運(yùn)動(dòng)特性與自動(dòng)平衡性能方面進(jìn)行研究和改進(jìn)。
本文設(shè)計(jì)的雙輪平衡車是由共軸、獨(dú)立的驅(qū)動(dòng)系統(tǒng)控制、車身中心在兩輪軸上方,的一種控制程序檢測(cè)平臺(tái),可以實(shí)現(xiàn)其直立穩(wěn)定的行走,有相對(duì)靈活的運(yùn)動(dòng)特點(diǎn),能夠在相對(duì)復(fù)雜的環(huán)境中倚仗其獨(dú)特的靈活性工作。
1.1.1 核心硬件的選擇
圖1 車輪控制小車平衡原理
如果想讓小車平衡,車輪予以的加速度必須與小車偏差移的方向相同,從而修正這種平衡偏差。
1.1.2 測(cè)速及其物理模型搭建
首先要盡量保持小車的物理模型穩(wěn)定,本文采用三個(gè)支架片與八組支架為小車構(gòu)建了一個(gè)相對(duì)穩(wěn)定的立方體模型。
雙輪平衡小車在靜態(tài)條件下通過直立控制很容易實(shí)現(xiàn)靜態(tài)平衡。但是因?yàn)榻M成部件的安裝誤差或者傳感器等元件的測(cè)量誤差等因素,小車與實(shí)際地面并不是絕對(duì)的數(shù)學(xué)意義的90度角,它會(huì)有個(gè)誤差角度的存在[3]。由于重力的分立存在,小車就會(huì)為了修正朝傾斜的方向的誤差從而加速前進(jìn)?;诖嗽恚刂菩≤嚨膭?dòng)態(tài)平衡須要通過控制小車的傾角誤差來實(shí)現(xiàn)。具體需要解決三個(gè)問題:
圖2 小車外觀圖
(1)測(cè)量小車速度
對(duì)于平衡小車速度的測(cè)量,本設(shè)計(jì)是由在電機(jī)輸出軸上安裝的光碼盤測(cè)得。電機(jī)的轉(zhuǎn)速,通過控制單片機(jī)的計(jì)數(shù)器,來測(cè)量在固定的時(shí)間間隔內(nèi)速度脈沖信號(hào)的個(gè)數(shù)來實(shí)現(xiàn)。
(2)智能小車傾斜角的控制
社區(qū)家長(zhǎng)教育缺乏主動(dòng)性。社區(qū)教育功能一直是被忽略的一環(huán),社區(qū)中成人教育一直更多存在于學(xué)位教育和學(xué)歷教育中,社區(qū)教育定位不夠清楚,對(duì)于社區(qū)家長(zhǎng)教育的理解滯后,少數(shù)開展家長(zhǎng)教育的社區(qū)也是借助其他的平臺(tái)或者機(jī)構(gòu)。同時(shí),社會(huì)上對(duì)家長(zhǎng)教育的概念更多來源于家長(zhǎng)自我教育本身,家長(zhǎng)的后續(xù)型學(xué)習(xí)被放置到家長(zhǎng)個(gè)人自發(fā)和自覺學(xué)習(xí)的層次上,政府部門、社區(qū)本身和家長(zhǎng)自我都沒有意識(shí)到這是一項(xiàng)需要長(zhǎng)期堅(jiān)持的常規(guī)工作,它直接導(dǎo)致的后果是能夠開展家長(zhǎng)教育的社區(qū)很少。
在程序中,小車通電后會(huì)有較短的感受時(shí)間給陀螺儀一個(gè)給定的中立值,給定小車直立控制的初始設(shè)定值,通過角度控制,小車將會(huì)自動(dòng)保持在這個(gè)初始角度(即上電時(shí)給到的控制值)。在兩輪平衡車直立控制算法中小車的傾角是跟蹤重力的分力加速度在Z軸的角度。為了修正這個(gè)誤差,我將小車的傾角初始值與重力加速度Z軸角度做差,這樣可以最終確定小車的傾角,該傾角一般以小車上電的后陀螺儀的自定義基準(zhǔn),來給定傾角。
(3)根據(jù)速度誤差控制小車傾角
小車傾角存在的主要原因是在靜態(tài)平衡的小車速度與小車傾角之間傳遞函數(shù)存在非小相位特性[3],這使得在反饋控制下容易造成系統(tǒng)的不穩(wěn)定性,本文利用了共軛點(diǎn)與比例控制和積分環(huán)節(jié)來調(diào)節(jié),使小車在由歸干擾的情況下依然能保持穩(wěn)定。
這三個(gè)問題的解決控制算法再由單片機(jī)來實(shí)現(xiàn),這樣雙輪平衡小車的角度控制和方向控制就可以直接將輸出電壓調(diào)制后輸出PWM波,從而控制電機(jī)轉(zhuǎn)速。
該雙輪平衡小車是一個(gè)非最小相位系統(tǒng),其速度的控制在本質(zhì)上是通過調(diào)節(jié)模型的傾斜角實(shí)現(xiàn)。所以對(duì)于小車的控制須精準(zhǔn),速度調(diào)節(jié)式幅度不可過大且要緩慢變化,因?yàn)槿绻壤头e分系數(shù)過大,可能使系統(tǒng)成正反饋,此時(shí)小車出現(xiàn)過調(diào)系統(tǒng)不穩(wěn)定。
電機(jī)驅(qū)動(dòng)模塊采用TB6612,該模塊可以對(duì)兩個(gè)電機(jī)進(jìn)行驅(qū)動(dòng),通過該模塊來控制兩電機(jī)的輸入口,該模塊的STBY口接單片機(jī)的IO口使得清零電機(jī)全部停止,置1通過AIN1 AIN2,BIN1,BIN2 來控制正反轉(zhuǎn)。邏輯真值表設(shè)置如下。
表1 電機(jī)操作模塊邏輯真值表
采用MPU6050陀螺儀采集小車俯仰角,可以將陀螺儀和加速度計(jì)二者結(jié)合在一起,精度較高而且減少了占用PCB板的空間。同時(shí),在該模塊上內(nèi)置了一個(gè)溫度傳感器和在工作調(diào)節(jié)誤差在±1%內(nèi)的振蕩器(振蕩器可以穩(wěn)定送給單片機(jī)的小車姿態(tài)信號(hào))。MPU-6050還有一個(gè)VLOGIC引腳,而平衡小車的操控是耦合橫軸和縱軸夾角實(shí)現(xiàn)小車平衡。
開關(guān)電壓調(diào)節(jié)模塊采用LM2596,該模塊式一個(gè)小的集成電路,可以實(shí)現(xiàn)降壓電源管理,并且其本身比較輕量化也是非常符合本設(shè)計(jì)的需求不會(huì)對(duì)小車的中心有太大影響,雖然可調(diào)至的電壓比較少但是足夠小車使用,能夠輸出3A的驅(qū)動(dòng)電流,同時(shí)具有很好的線性和負(fù)載調(diào)節(jié)特性。
測(cè)速碼盤模組采用L15D11測(cè)速模塊,具有高精度高速光電門,同時(shí)它具有448個(gè)光柵片,在AB雙相輸出的作用下,小車車輪轉(zhuǎn)動(dòng)一圈時(shí)脈沖數(shù)可達(dá)三千多,單向可可以達(dá)到一千多,精度足夠高,使得小車保持非常好的平衡空置狀態(tài)。
直流減速電機(jī)采用GB37 3530,直流減速電機(jī)是一款微型減速電機(jī),我使用的是一款雙相高精度帶光電門測(cè)速碼盤的款式,其減速比為1:30。
圖3 超聲波時(shí)序圖
超聲波模塊的設(shè)置為控制口發(fā)出一個(gè)高電平,那么輸出口會(huì)有一個(gè)高電平。當(dāng)開始有輸出值時(shí),定時(shí)器打開,當(dāng)輸出為低電平時(shí),定時(shí)器顯示輸出值,這樣便可以得到一次測(cè)距的時(shí)間,同時(shí)計(jì)算出距離。通過不斷反復(fù)的周期測(cè)量,即可得出移動(dòng)的距離值。(1)采用IO觸發(fā)測(cè)距,給至少10us的高電平信號(hào);(2)通過該超聲波模塊自動(dòng)發(fā)送8個(gè)40khz 的方波,自動(dòng)的建出有無信號(hào)返回;(3)當(dāng)信號(hào)返回時(shí),會(huì)在IO輸出高電平,根據(jù)該電平的持續(xù)時(shí)間可以得出測(cè)試距離,測(cè)試距離等于高電平的時(shí)間乘以聲速除以2。
根據(jù)總體設(shè)計(jì)的思想及本系統(tǒng)實(shí)現(xiàn)的功能,將平衡小車的軟件設(shè)計(jì)與實(shí)現(xiàn)分為主程序、平衡程序、各子模塊程序。使其能配合硬件完成二輪自平衡,移動(dòng)避障。
圖4 主程序流程圖
圖5 小車工作室具體受力狀態(tài)圖
1.2.1 角度分析與算法
上圖為平衡小車在工作時(shí)的具體受力狀態(tài)圖,即小車在受到輪子加速的作用后會(huì)產(chǎn)生額外的慣性回復(fù)力使其保持原平衡狀態(tài),由上圖可知回復(fù)力為:
但是由于小車的物理模型原因,一般θ都非常的小,所以對(duì)其進(jìn)行線性化。因其為負(fù)反饋,所以其控制量是車輪加速度a與θ成正比例變化,定義比例系數(shù)為k1[4].若比例系數(shù)k1>g,則回復(fù)力的方向會(huì)與位移方向相反。同時(shí)為考慮其穩(wěn)定狀態(tài)還需要增加阻尼力(即考慮各種摩擦)則將回復(fù)力改寫為:
有了該式便可將加速關(guān)于比例k1、k2的方程列出:
圖6 小車受力模型與公式推導(dǎo)圖
根據(jù)上述結(jié)論我們可以依據(jù)控制理論得出小車的閉環(huán)系統(tǒng)在收到干擾加速度,即不平衡因素x(t)影響時(shí)的受力分析[5],并取得小車剛體與車輪運(yùn)動(dòng)加速及其干擾加速度a(t)x(t)的運(yùn)動(dòng)方程式。
k1比例控制參數(shù),k2微分控制參數(shù)(因?yàn)榻撬俣仁墙嵌鹊奈⒎郑?,而微分控制參?shù)提供的作用相當(dāng)于小車受到的阻尼力,該阻尼力可以均衡小車的震蕩現(xiàn)象(即一直處于頻繁修正的過調(diào)狀態(tài))。
雙輪平衡車的信號(hào)總體傳遞圖,如圖7所示。
圖7 小車信號(hào)總體傳遞圖
首先是對(duì)小車的各項(xiàng)平衡參數(shù)進(jìn)行初始化:
平衡小車在實(shí)現(xiàn)軟硬件結(jié)合后,需對(duì)系統(tǒng)進(jìn)行集成調(diào)試與功能檢測(cè)。集成調(diào)試分為目測(cè)、萬用表測(cè)試、加電檢查、聯(lián)機(jī)檢查四步進(jìn)行[6],并對(duì)調(diào)試過程中發(fā)現(xiàn)的問題進(jìn)行分析解決;功能檢測(cè)就是對(duì)平衡小車的平衡及附加功能進(jìn)行實(shí)際測(cè)試,并對(duì)測(cè)試結(jié)果予以分析總結(jié)。
用500g重物在一片平整的場(chǎng)地里進(jìn)行功能檢測(cè)。測(cè)試方法:考慮小車兩種失衡情況,一是通過用手推動(dòng)小車,使其出現(xiàn)輕微傾斜;二是在小車上添加重物使其重心偏移,發(fā)生較大傾斜。觀察小車在兩種傾斜情況下的平衡調(diào)節(jié)。為了便捷可用肢體比如手來充當(dāng)障礙物,遮擋超聲波模塊,觀察小車避障是否靈活。
小車在兩種失衡情況,均可通過自身的速度調(diào)整實(shí)現(xiàn)平衡。當(dāng)用手去遮擋超聲波模塊營(yíng)造障礙時(shí),小車會(huì)向障礙物反方向移動(dòng)一段距離,再實(shí)現(xiàn)平衡。根據(jù)測(cè)試結(jié)果知該平衡小車可以很好的完成自動(dòng)平衡移動(dòng)和避障,動(dòng)作響應(yīng)迅速、準(zhǔn)確,能很好的完成任務(wù)要求。
本文主要是通過陀螺儀對(duì)雙輪平衡小車的狀態(tài)進(jìn)行檢查,再將信號(hào)傳送到單片機(jī)內(nèi)部,單片機(jī)的系統(tǒng)通過程序調(diào)用再將信號(hào)送到電機(jī),從而控制電機(jī)的轉(zhuǎn)動(dòng)方向和速度,以實(shí)現(xiàn)雙輪小車的直立平衡。測(cè)試結(jié)果表明,該平衡小車在負(fù)重情況下可以很好的完成自動(dòng)平衡移動(dòng)和避障,動(dòng)作響應(yīng)迅速、準(zhǔn)確。同時(shí),該平衡小車的設(shè)計(jì)與研究,對(duì)于自動(dòng)控制機(jī)器人的研究具有一定的參考意義。