彭新清,趙聰聰,魏茂盛,徐 凱
(火箭軍工程大學(xué),西安 710025)
汽車(chē)的出現(xiàn)給我們帶來(lái)了極大的生活方便。但是,汽車(chē)數(shù)量的不斷增加,不可避免的會(huì)發(fā)生交通事故,造成人員傷亡。隨著計(jì)算機(jī)技術(shù)、嵌入式系統(tǒng)、自動(dòng)控制系統(tǒng)、現(xiàn)代傳感器技術(shù)等在汽車(chē)上的應(yīng)用,使之越來(lái)越智能化、安全化。智能車(chē)技術(shù)的核心是采集、處理、執(zhí)行。是一門(mén)綜合性技術(shù),在工業(yè)生產(chǎn)線(xiàn)、智能駕駛等領(lǐng)域得到廣泛應(yīng)用。
系統(tǒng)實(shí)現(xiàn)兩輪車(chē)模的自平衡和自動(dòng)循跡,利用藍(lán)牙通信實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)傳輸。分為硬件和軟件兩個(gè)方面:
分為三個(gè)部分:傳感器,決策器,執(zhí)行器。硬件的總體框圖如圖1所示:
圖1
單片機(jī)系統(tǒng)選用K60芯片進(jìn)行開(kāi)發(fā)。(1)電源模塊,整個(gè)平衡車(chē)系統(tǒng)需要三種不同的電壓,分別是3.3V、5V、12V電壓,3.3V主要為芯片供電。5V主要為電磁處理、測(cè)速等模塊供電。12V是為驅(qū)動(dòng)電路供電。(2)藍(lán)牙模塊,傳輸數(shù)據(jù)和反饋消息。(3)電磁傳感器,當(dāng)傳感器高度一定時(shí),電感距離Y軸越近,感應(yīng)電動(dòng)勢(shì)E越大。(4)驅(qū)動(dòng)模塊,電機(jī)驅(qū)動(dòng)采用IR2104加MOS構(gòu)成全橋,MOS管選用IRLR7843;(5)姿態(tài)傳感器電路,選用陀螺儀和加速度計(jì)數(shù)字集成模塊作為角度測(cè)量傳感器,兩個(gè)模塊輸出的信息經(jīng)卡爾曼濾波進(jìn)行融合得到平衡車(chē)俯仰角;(6)測(cè)速模塊,采用編碼器測(cè)速方法進(jìn)行測(cè)速。
實(shí)現(xiàn)的功能有:(1)功能模塊的初始化:AD模塊、角度模塊、電機(jī)、正交解碼、定時(shí)器、屏幕、電磁、中斷、參數(shù)等初始化;(2)信息采集:角度和角速度、車(chē)速、電磁信號(hào);(3)平衡車(chē)三環(huán)嵌套控制:直立、速度、方向的控制;(4)運(yùn)行狀態(tài)檢測(cè):直立角度、電池電壓、車(chē)速、電磁信號(hào)的檢測(cè);(5)在線(xiàn)調(diào)試:屏幕顯示、虛擬示波器顯示、PC調(diào)試、按鍵調(diào)試。首先進(jìn)行初始化,進(jìn)入主循環(huán)中,在主循環(huán)中始終對(duì)平衡車(chē)的運(yùn)行狀態(tài)進(jìn)行檢測(cè),包括電池電壓,角度、角速度、行駛速度、行駛距離等,當(dāng)通過(guò)屏幕顯示運(yùn)行參數(shù)正常時(shí),就執(zhí)行按鍵調(diào)試子程序,然后采集電磁信號(hào),并通過(guò)屏幕進(jìn)行實(shí)時(shí)觀察,當(dāng)采集到的電磁信號(hào)正常時(shí),將采集到的電磁信號(hào)值和平衡車(chē)中位值進(jìn)行裝訂,通過(guò)PC端或者按鍵對(duì)PID參數(shù)進(jìn)行修改。最后打開(kāi)電機(jī)開(kāi)關(guān),平衡車(chē)就可以正常運(yùn)行了。同時(shí),采取了多項(xiàng)保護(hù)措施,平衡車(chē)角度超出安全范圍后,程序會(huì)自動(dòng)將參數(shù)置零,平衡車(chē)越出導(dǎo)線(xiàn)或者速度達(dá)到不可控的地步時(shí),參數(shù)置零程序會(huì)同樣被執(zhí)行。在初始化工作中,已經(jīng)對(duì)K60的一個(gè)定時(shí)器進(jìn)行配置,產(chǎn)生一個(gè)1ms定時(shí)中斷,將信息采集、平衡車(chē)三環(huán)嵌套控制分成五部分置于定時(shí)中斷中:(1)讀取速度:左右兩個(gè)編碼器分別記錄單位時(shí)間內(nèi)的脈沖值,求平均,最后根據(jù)輪胎與輪齒的半徑比例關(guān)系,換算為真實(shí)的行駛速度;(2)電磁信號(hào)采集與處理:左右兩個(gè)電感分別采集10次值并各自取平均,然后將平均后的值進(jìn)行歸一化,根據(jù)差比和算法算出平衡車(chē)的相對(duì)位置,用于方向控制;(3)直立控制:將讀取到的加速度計(jì)和陀螺儀值通過(guò)卡爾曼濾波進(jìn)行融合,得到穩(wěn)定的角度輸出,對(duì)角度進(jìn)行PD控制達(dá)到目的;(4)速度控制:算出目標(biāo)速度與讀取到的速度之差,然后對(duì)差值進(jìn)行PI控制;(5)方向控制:根據(jù)第二部分得到的相對(duì)位置,算出平衡車(chē)相對(duì)導(dǎo)線(xiàn)的位置偏差,對(duì)偏差進(jìn)行PD控制,達(dá)到方向控制的目的。
軟件算法:(1)傳感器采集算法,電磁信號(hào)采集函數(shù)為Collect_Ad():采用均值濾波,每采集10次,進(jìn)行一次濾波,抑制噪聲干擾。采集后對(duì)信號(hào)進(jìn)行歸一化處理,歸一化函數(shù)Convert_Ad(),采集到的信號(hào)值落在1-100范圍之內(nèi);(2)編碼器測(cè)速算法,測(cè)速的子函數(shù)為Read_Speed() ;(3)直立控制??刂频膶?duì)象是經(jīng)卡爾曼濾波后的角度,控制的目標(biāo)是使平衡車(chē)俯仰角度保持在設(shè)定的角度附近。在程序中,通過(guò)不斷修改PID_ANGLE.P和PID_ANGLE.D兩個(gè)參數(shù),使得平衡車(chē)穩(wěn)穩(wěn)地立住。(4)速度控制算法:引入積分控制,利用PI算法實(shí)現(xiàn)速度控制。(5)方向控制,電感在空間采集到的電感值與傳感器偏離導(dǎo)線(xiàn)呈非線(xiàn)性關(guān)系,因此采用差比和算法使之線(xiàn)性化,通過(guò)對(duì)位置X_Position進(jìn)行控制,產(chǎn)生的pwm一個(gè)相加至左輪,一個(gè)相減至右輪,造成左右輪的不同速度,以此來(lái)實(shí)現(xiàn)轉(zhuǎn)向;
車(chē)模組裝完成后,加載程序至芯片,分別測(cè)試電源、電磁傳感器、pwm模塊、PID參數(shù)等功能參數(shù)模塊,結(jié)果顯示都符合正常并處于良好狀態(tài)。最后再經(jīng)過(guò)系統(tǒng)聯(lián)調(diào),平衡車(chē)都能夠穩(wěn)穩(wěn)地立住并按照設(shè)計(jì)速度行進(jìn),達(dá)到了預(yù)期的效果。
[1] 楊慧.自平衡兩輪移動(dòng)機(jī)器人的設(shè)計(jì)[D].蘇州大學(xué),2012.