鄧開連 周芳管 崔燦 曾凡楷 丁賀 靳思宇
摘? 要: 該文設(shè)計一種基于KEA單片機的智能循跡小車。介紹智能小車系統(tǒng)結(jié)構(gòu)設(shè)計:由安裝在智能小車前端的電磁傳感器獲取路徑信息,并將這些信息送入KEA單片機控制系統(tǒng)進行分析處理,通過PID控制算法對小車的雙電機進行PWM控制,使得小車沿著電磁線前進,達到循跡的目的。智能小車的硬件設(shè)計包括電源穩(wěn)壓模塊、傳感器模塊、電機模塊、陀螺儀模塊等。軟件設(shè)計包括PID控制模塊、電感采集模塊、速度采集模塊等。實際調(diào)試過程中,智能小車能自適應(yīng)直線、彎道、坡道、圓環(huán)等各種復(fù)雜路況。試驗結(jié)果表明,整個系統(tǒng)結(jié)構(gòu)簡單,魯棒性高,實現(xiàn)了一個同時具備速度控制、數(shù)據(jù)采集、自動循跡和路徑規(guī)劃識別功能的智能車。
關(guān)鍵詞: 智能循跡; KEA; 路徑信息獲取; 信息分析; PWM控制; 路徑規(guī)劃
Abstract: An intelligent tracking cart based on KEA microcontroller is designed. The structure design of the intelligent trolley system is introduced. The path information is obtained by the electromagnetic sensors installed on the front of the smart trolley. The obtained information is sent to the KEA microcontroller control system for analysis and processing. The PID control algorithm is used to perform PWM control for the two motors of the trolley, so that the trolley advances along the electromagnetic line to achieve the purpose of tracking. The hardware design of the smart trolley includes a power supply voltage stabilization module, a sensor module, a motor module, a gyroscope module, and so on. The software design includes PID control module, inductance acquisition module, speed acquisition module, etc. In the actual debugging process, the smart trolley can adapt to various complicated road conditions such as straight line, curve, ramp and circle roads. The testing results show that the entire system has a simple structure and high robustness, and has realized the functions of speed control, data acquisition, automatic tracking, path planning and path identification.
Keywords: intelligent tracking; KEA; path information acquisition; information analysis; PWM control; route planning
0? 引? 言
智能循跡小車是一個含路徑規(guī)劃、環(huán)境感知、自動行駛等功能的綜合系統(tǒng),涉及到電機及其控制、信息、導(dǎo)航、計算機、車輛工程等諸多領(lǐng)域[1?2]。本文以KEA為控制核心,通過電磁傳感器識別路徑,編碼器檢測當(dāng)前的速度,微控制器讀取傳感器當(dāng)前狀態(tài),從而控制相應(yīng)的電路,進而控制小車前進的方向和速度。通過構(gòu)建單片機最小系統(tǒng)模塊、電源模塊、傳感器模塊、電機驅(qū)動模塊、人機交互模塊、陀螺儀模塊、PID[3?4]控制模塊、采集模塊等組成的智能小車系統(tǒng),實現(xiàn)小車的智能循跡功能。
1? 系統(tǒng)結(jié)構(gòu)設(shè)計
1.1? 結(jié)構(gòu)設(shè)計
智能循跡小車主要包含電源模塊、傳感器模塊、電機驅(qū)動模塊、PID控制模塊、陀螺儀模塊、采集模塊等,采取了模塊化的設(shè)計思想。智能小車的工作過程為:由安裝在智能小車前端的5個電磁傳感器獲取路徑信息,并將這些信息送入單片機控制系統(tǒng)進行分析處理,通過PID控制算法[5]對小車的雙電機進行PWM[6]控制,使得小車沿著電磁線[7]前進,達到循跡的目的。系統(tǒng)總體框架圖如圖1所示。
1.2? 循跡原理
設(shè)計采取三輪前向驅(qū)動小車,即小車的前面是一個萬向輪,起到支撐作用,后面為兩個雙電機控制的驅(qū)動輪,由單片機輸出PWM信號分別控制兩個電機,通過兩輪差速實現(xiàn)小車的轉(zhuǎn)向控制。循跡路線是由一條鋪設(shè)在地上并通有220 V,50 Hz交流電的電磁線組成。循跡路線包括直線、彎道、十字交叉路口、大圓環(huán)、坡道等。
循跡的電磁傳感器共5個,安裝在小車前側(cè)(距車身約30 cm,距地面約20 cm),其中中間3個傳感器呈“一字型”排列,用于小車正常循跡,兩端的2個傳感器與地面呈45°放置,用于判斷圓環(huán),從而進行特殊處理。電磁傳感器在使用前需要進行標(biāo)定,標(biāo)定方法如下:將小車平放在賽道直線上,通過調(diào)整電磁傳感器的放大倍數(shù),使得中間3個傳感器達到最大值,兩端的2個傳感器示數(shù)基本相等,將小車完全偏離賽道,此時前瞻上的5個傳感器的示數(shù)應(yīng)達到最小值。在小車行駛過程中,通過對中間3個電磁傳感器的示數(shù)進行歸一化處理,并將得到的偏差值傳入PID控制,從而控制小車的轉(zhuǎn)向,使小車始終沿著軌跡行駛。兩端的2個傳感器是為了檢測圓環(huán)這種特殊地形而設(shè)計的。在碰到圓環(huán)時,中間3個水平傳感器的反應(yīng)不靈敏,而兩端的2個45°角的傳感器由于與電磁線正好垂直,示數(shù)達到最大值,此時改用兩端的傳感器進行循跡,使小車能順利通過圓環(huán)。另外,在小車的前面固定了一塊垂直放置的MPU6050陀螺儀模塊,用于檢測坡道的存在,使小車上坡加速,下坡減速,從而讓整個行駛過程更加流暢。
2? 硬件電路設(shè)計
2.1? 最小系統(tǒng)模塊
以KEA為核心的單片機最小系統(tǒng)板是智能車的核心。KEA 具有以下特性:高達48 MHz ARM Cortex M0+內(nèi)核單周期32位X32位乘法器,內(nèi)置高達128 KB閃存,高達256 B E2PROM,高達16 KB RAM;外部振蕩器(OSC),內(nèi)部時鐘源(ICS),帶獨立時鐘源的看門狗(WDOG),可編程循環(huán)冗余校驗?zāi)K(CRC),串行電路調(diào)試接口(SWD),SRAM位帶別名區(qū)(BITBAND),位操作引擎(BME),擁有2個SPI模塊,3個UART模塊,2個I2C模塊,1個CAN模塊。KEA最小系統(tǒng)圖如圖2所示。
2.2? 穩(wěn)壓模塊
為滿足需要,自動運輸工具存在4種供電電壓:
1) 自動運輸工具使用鎳鎘充電電池,充滿電時電壓在7.8~8.2 V,是所有模塊的供電電源,經(jīng)過電壓轉(zhuǎn)換后供給各個模塊使用。為防止感應(yīng)電動勢使芯片燒毀,使用74LVC245作為隔離芯片保護核心板。
2) 一些芯片使用直流5 V供電電壓,采用LM2940?5.0穩(wěn)壓。
3) 一些芯片采用直流3.3 V供電電壓,采用ASM1117?3.3進行穩(wěn)壓。
4) 電機驅(qū)動芯片需要使用直流12 V供電電壓,采用MC34063穩(wěn)壓。MC34063穩(wěn)壓模塊如圖3所示。
2.3? 傳感器模塊
電磁傳感器能夠?qū)ψ兓拇艌鲂盘栕龀鲮`敏的檢測,從而檢測當(dāng)前的道路狀況,是電磁循跡小車最重要的模塊之一。系統(tǒng)根據(jù) LC諧振的原理[7?8],選擇合適的電感和電容作為LC諧振電路,產(chǎn)生感應(yīng)電流,再通過濾波、放大,然后將結(jié)果送入單片機A/D模塊[9]進行相應(yīng)的處理,以判斷賽道當(dāng)前信息。
2.4? 電機驅(qū)動模塊
采用了2個半橋驅(qū)動芯片IR2104組成一個全橋驅(qū)動器[10],驅(qū)動直流電機轉(zhuǎn)動。控制方式: PWM1,PWM2為單片機輸出的控制信號,通過設(shè)置PWM1,PWM2可以實現(xiàn)電機的正反轉(zhuǎn)和制動。電機驅(qū)動模塊如圖4所示。
2.5? 陀螺儀模塊
為了檢測行駛道路上可能出現(xiàn)的坡道,避免出現(xiàn)上坡時因為速度不夠無法過坡和下坡時速度過快沖出道路,所以采用MPU6050[11]六軸傳感器來讀取智能車的傾角,從而判斷坡道的位置,執(zhí)行上坡加速、下坡減速的操作。
3? 軟件設(shè)計
3.1? PID控制模塊
PID控制是工程實際中應(yīng)用最為廣泛的調(diào)節(jié)器控制方法。它以工作可靠、結(jié)構(gòu)簡單、調(diào)整方便、穩(wěn)定性好,成為工業(yè)控制的主要技術(shù)之一[12?13]。PID控制原理框圖如圖5所示。
單位反饋e代表理想輸入與實際輸出的誤差,這個誤差信號被送到控制器,控制器算出誤差信號的積分值和微分值,并將它們與原誤差信號進行線性組合,得到輸出量[un]。其表達式如下:
式中,[KP,KI,KD]分別稱為比例系數(shù)、積分系數(shù)、微分系數(shù)。將輸出量[un]送到感應(yīng)器,產(chǎn)生新的誤差信號并再次傳入PID控制器,這個過程周而復(fù)始地進行。數(shù)字控制系統(tǒng)中,計算機只能處理離散的數(shù)字量,所以進入計算機的連續(xù)時間信號,必須經(jīng)過采樣和量化后,變成數(shù)字量,才能進入計算機的存儲器和寄存器,所以對導(dǎo)數(shù)項用后向差分逼近,得到數(shù)字PID控制器的基本算式(位置算式)[14],表達式如下:
式中:單位反饋[en]代表理想輸入與實際輸出的誤差;[T]是采樣時間;[KP]為控制器的比例放大系數(shù);[TI]為控制器的積分時間;[TD]為控制器的微分時間。在實際代碼實現(xiàn)算法時,往往處理成如下形式:
式中:[error]為參考值與反饋值的差;[PreError]為上次保留的誤差;[derrF]為本次誤差與上次誤差的差值;[un]為計算得到的調(diào)節(jié)值。根據(jù)以往資料和測試,將定位算法解算出的導(dǎo)線位置當(dāng)作反饋值(Feedback),參考值(Ref)設(shè)為0,則有:
式中,[PreIntegral]表示誤差的累計值。為了防止電機頻繁調(diào)節(jié),需要設(shè)置調(diào)節(jié)死區(qū)(-LOCA_DEADLINE,LOCA_DEADLINE)。如果[error]在死區(qū)內(nèi),則不進行調(diào)節(jié),維持上一狀態(tài)。同時為了防止電機輸出過大,需要設(shè)置最大調(diào)節(jié)范圍(-LOCA_MAX, LOCA_MAX),如果PID算出的輸出超過了最大值,則賦給電機邊界值LOCA_MAX。
3.2? 濾波模塊
由于電磁傳感器在檢測中存在干擾或噪聲,所以要對得到的數(shù)據(jù)進行算法濾波來防止干擾。在這里選擇“加權(quán)遞推平均濾波法”[15]。這種算法的特點是給予新采樣值的權(quán)系數(shù)越大,則靈敏度越高,但信號平滑度越差。選取合適的權(quán)重可以得到較好的濾波效果。加權(quán)遞推平均濾波法的流程圖如圖6所示。
3.3? 速度采集模塊
測速模塊信號端接單片機PT7。使用單片機的16位脈沖計數(shù)模塊,完成該部分初始化后,每向單片機管腳PT7輸入一個脈沖,計數(shù)模塊寄存器PACNT會自增一次。程序中必須設(shè)置合適的采樣間隔,單位時間內(nèi)的脈動數(shù),即可反映當(dāng)前電機轉(zhuǎn)速。這里使用PIT定時中斷,設(shè)置為5 ms觸發(fā)一次中斷服務(wù)程序,執(zhí)行子函數(shù),讀出寄存器PACNT然后清零,以備下次使用。
3.4? 系統(tǒng)軟件
系統(tǒng)軟件主要采用C語言編寫,主程序先進行初始化,配置好端口寄存器。然后進入循跡模式,通過電磁傳感器接收到的信息進行路況判斷,再將相應(yīng)的信號經(jīng)由PID算法處理后發(fā)給電機驅(qū)動模塊調(diào)整小車運行狀態(tài),從而達到自動循跡的功能。軟件設(shè)計流程圖見圖7。
3.5? 系統(tǒng)主程序
系統(tǒng)主程序如下(含初始化函數(shù)):
4? 結(jié)? 語
本文設(shè)計的智能循跡小車,以KEA單片機為控制核心,通過電磁傳感器識別路徑,編碼器檢測當(dāng)前的速度,微控制器讀取傳感器當(dāng)前狀態(tài),從而控制相應(yīng)的電路,進而控制小車前進的方向和速度。小車采用單元化模塊設(shè)計,使得系統(tǒng)響應(yīng)快、性能穩(wěn)定。經(jīng)過測試,結(jié)果表明,小車順利地實現(xiàn)了預(yù)設(shè)功能,并能以較快的速度通過彎道、圓環(huán)、坡道的賽道,實現(xiàn)了一個同時具備速度控制、數(shù)據(jù)采集、自動循跡和路徑規(guī)劃識別功能的智能車。
參考文獻
[1] 范展源,鄭昕.基于智能小車的模糊控制和PID控制的結(jié)合[J].科技風(fēng),2019(34):23.
[2] 彭剛,陳軒,何頂新,等.國內(nèi)智能車比賽現(xiàn)狀綜述[J].可編程控制器與工廠自動化,2012(11):31?35.
[3] 陳鳳東,洪炳镕.基于特征地圖的移動機器人全局定位與自主泊位方法[J].電子學(xué)報,2010,38(6):1256?1261.
[4] 黃凱龍.基于飛思卡爾單片機的智能車及其調(diào)試系統(tǒng)設(shè)計[D].長沙:湖南大學(xué),2014.
[5] 陳華偉,熊慧.智能循跡小車硬件設(shè)計及路徑識別算法[J].單片機與嵌入式系統(tǒng)應(yīng)用,2010(12):26?28.
[6] 余熾業(yè),宋躍,雷瑞庭.基于STC12C5A60S2的智能循跡小車[J].實驗室研究與探索,2014,33(11):46?49.
[7] 申建偉.基于ARM的智能車控制系統(tǒng)研究[D].西安:西安工業(yè)大學(xué),2014.
[8] 許眾.基于飛思卡爾智能車的電磁導(dǎo)航控制技術(shù)研究[D].沈陽:沈陽理工大學(xué),2014.
[9] FRANK K, BRUCE W, RAFIK G, et al. Semi?autonomous vehicles as a cognitive assistive device for older adults [J]. Geriatrics, 2019, 4(4): 1?14.
[10] 方正川.自主尋徑及避障智能車的研究與實現(xiàn)[D].蕪湖:安徽工程大學(xué),2017.
[11] ZENG W J, JIANG Q F, XIE J S, et al. A fuzzy?PID composite controller for core power control of liquid molten salt reactor [J]. Annals of nuclear energy, 2020, 139: 1?6.
[12] 張夢巍.智能無人駕駛車輛路徑跟蹤及底層控制方法研究[D].沈陽:沈陽理工大學(xué),2018.
[13] 張楚金.智能車的前方車輛檢測和預(yù)警算法研究[D].長沙:湖南大學(xué),2015.
[14] 劉濤,呂勇,劉立雙.智能車路徑識別與控制性能提高方法研究及實現(xiàn)[J].電子技術(shù)應(yīng)用,2016,42(1):54?57.
[15] YI Z G, SCOFFIELD D, SMART J, et al. A highly efficient control framework for centralized residential charging coordination of large electric vehicle populations [J]. International journal of electrical power and energy systems, 2020, 117: 1?17.