高 文,陳 佩
(1.西安航空學(xué)院 電子工程學(xué)院,西安710000;2.西安智容傳動(dòng)技術(shù)有限公司,西安710000)
近些年隨著人工智能技術(shù)的快速發(fā)展,無人自動(dòng)駕駛技術(shù)也變得越來越炙手可熱[1]。同時(shí),隨著人們?nèi)粘I钪悄芑潭鹊脑鰪?qiáng),具有智能控制系統(tǒng)的小車、機(jī)器人層出不窮?,F(xiàn)在具有巡線、避障、遠(yuǎn)程操控等功能的智能小車,能夠在人類無法工作的環(huán)境下進(jìn)行工作,如排雷、偵查、救援及生命探測(cè)等;在生活中也有較廣的應(yīng)用領(lǐng)域,比如作為餐廳的送餐服務(wù)員、家庭的掃地機(jī)器人;在科學(xué)研究領(lǐng)域可作為外星球科研探索使用[2-5]。
本文設(shè)計(jì)一種基于STM32的智能無線充電循跡小車,在傳統(tǒng)的小車上增加了無線充電的功能,能夠解決傳統(tǒng)小車充電不方便的問題,并且進(jìn)行電能的智能管理,可實(shí)現(xiàn)自動(dòng)停車充電,充電后的自動(dòng)運(yùn)行,具有快捷、方便及高效運(yùn)行等優(yōu)點(diǎn),具有良好的市場前景。
根據(jù)對(duì)智能移動(dòng)小車的功能需求分析[6],搭建的系統(tǒng)結(jié)構(gòu)框圖如圖1所示。其中包括控制器模塊(STM32F103C8T6)、循跡電路模塊、電機(jī)驅(qū)動(dòng)模塊、顯示模塊(OLED)、無線充電發(fā)射模塊、無線充電接收模塊、超級(jí)電容以及電機(jī)。整個(gè)系統(tǒng)遵循模塊化設(shè)計(jì)原則,有利于后續(xù)的開發(fā)升級(jí)。
圖1 系統(tǒng)整體結(jié)構(gòu)框圖Fig.1 Block diagram of system structure
整個(gè)系統(tǒng)工作原理:①初始狀態(tài)小車處于充電站位置,當(dāng)開關(guān)打開,如果系統(tǒng)電壓過低或徹底無電,小車將停止運(yùn)行,停留在充電站自行進(jìn)行充電;②經(jīng)過充電,當(dāng)系統(tǒng)電壓達(dá)到工作電壓,則控制器STM32F103C8T6 開始工作,檢測(cè)系統(tǒng)電壓,并啟動(dòng)定時(shí)器開始計(jì)時(shí)充電時(shí)間,當(dāng)系統(tǒng)電壓和充電時(shí)間都滿足預(yù)設(shè)條件后,小車開始運(yùn)行;③運(yùn)行過程中循跡電路將檢測(cè)的結(jié)果反饋給控制器,控制器根據(jù)反饋結(jié)果決定小車的運(yùn)行狀態(tài),輸出2組PWM 脈寬調(diào)制波分別控制小車的轉(zhuǎn)向和直流電機(jī)的速度來實(shí)現(xiàn)小車的按軌跡運(yùn)行。在行進(jìn)過程中,控制器一直監(jiān)控系統(tǒng)電壓(超級(jí)電容電壓)并進(jìn)行實(shí)時(shí)顯示;④在運(yùn)行過程中,控制器進(jìn)行整個(gè)電量的智能管理,當(dāng)電壓值低于設(shè)定的預(yù)警值時(shí),小車?yán)^續(xù)運(yùn)行至檢測(cè)到的第一個(gè)充電站,自動(dòng)停止進(jìn)行充電,然后根據(jù)充電的情況再?zèng)Q定下一步的運(yùn)行。在整個(gè)過程中,不僅要實(shí)現(xiàn)循跡的運(yùn)行,包含速度、方向及轉(zhuǎn)彎燈處理,還要通過電源檢測(cè)達(dá)到小車的智能化管理。
設(shè)計(jì)采用STM32F103C8T6 作為系統(tǒng)的主控芯片,STM32F103 相較于其他類型主控芯片如STC51、MPS430 等具有外設(shè)資源豐富、性價(jià)比高的優(yōu)點(diǎn)。
電機(jī)的穩(wěn)定工作是整個(gè)小車正常運(yùn)行的基本保證。電機(jī)驅(qū)動(dòng)部分配合核心控制芯片實(shí)現(xiàn)對(duì)各電機(jī)啟動(dòng)、停止、運(yùn)行速率以及運(yùn)行方向的控制。設(shè)計(jì)選用TOSHIBA 半導(dǎo)體公司研發(fā)生產(chǎn)的TB6612FNG芯片作為電機(jī)運(yùn)行的驅(qū)動(dòng)芯片,該芯片能夠雙通道輸出,功耗也較其他相同規(guī)格的電機(jī)驅(qū)動(dòng)芯片更小,在小型電機(jī)的控制系統(tǒng)電路中廣泛使用[7]。
TB6612FNG是基于MOSFET的H 橋集成電路,與晶體管H 橋驅(qū)動(dòng)器相比,效率大大提高。TB6612FNG可同時(shí)驅(qū)動(dòng)2個(gè)電機(jī),并可提供啟動(dòng)峰值電流高達(dá)2 A的連續(xù)脈沖,同時(shí)無需外加散熱片,外圍電路簡單。TB6612FNG的PWM 信號(hào)輸出頻率可至100 kHz,電機(jī)的調(diào)速范圍較大。電機(jī)驅(qū)動(dòng)電路如圖2所示。
圖2 電機(jī)驅(qū)動(dòng)電路Fig.2 Motor drive circuit
循跡電路是小車的“眼睛”,可保證小車按照預(yù)定軌跡行進(jìn)。設(shè)計(jì)通過4組紅外傳感器的檢測(cè)結(jié)果作為控制電機(jī)運(yùn)動(dòng)的判斷條件,通過算法處理達(dá)到穩(wěn)定循跡運(yùn)行的功能。具體使用TCRT5000 紅外傳感器加LM393 比較器構(gòu)成,當(dāng)電路檢測(cè)到黑色軌跡部分則輸出高電平,反之輸出低電平。具體電路如圖3所示。
圖3 循跡電路Fig.3 Tracking circuit
本系統(tǒng)采用超級(jí)電容作為小車的主要儲(chǔ)能部件,經(jīng)處理后為控制系統(tǒng)以及電機(jī)提供所需電源。小車系統(tǒng)需要穩(wěn)定的3.3 V 供電,考慮到電容放電時(shí)的電壓是隨時(shí)間變化的,對(duì)電容電壓進(jìn)行變換,使用TPS63020 芯片構(gòu)成的Buck-Boost 升降壓電路,保證將1.8 V~5.5 V的電容電壓轉(zhuǎn)換為穩(wěn)定的3.3 V。具體電路如圖4所示。
圖4 Buck-Boost 升降壓電路Fig.4 Buck-Boost circuit
無線充電運(yùn)用電磁感應(yīng)原理為小車的超級(jí)電容進(jìn)行充電[8],其結(jié)構(gòu)如圖5所示。
圖5 無線充電電路Fig.5 Wireless charging circuit
具體原理:首先發(fā)射端接入直流電源,通過全橋電路生成方波交流電壓,控制開關(guān)管的頻率改變方波的周期[9-10],當(dāng)電壓加載到LC 諧振電路上會(huì)生成交流電,經(jīng)過線圈的作用會(huì)產(chǎn)生高頻變化的磁場。其次將二次側(cè)線圈放入,會(huì)在二次側(cè)產(chǎn)生感應(yīng)電壓。感應(yīng)電壓經(jīng)過整流、穩(wěn)壓、變壓后給超級(jí)電容充電。發(fā)射端的電路如圖6所示。接收端電路如圖7所示。
圖6 發(fā)射端電路Fig.6 Transmitter circuit
控制算法是智能小車的靈魂,決定了智能小車的穩(wěn)定性和快速性[11]。本系統(tǒng)從控制角度分析,小車有5 路輸入(紅外循跡返回值)2個(gè)輸出(電機(jī)的PWM),而5 路紅外循跡返回值組合決定了小車的位置值,小車系統(tǒng)控制即轉(zhuǎn)變?yōu)?個(gè)輸入量2個(gè)輸出量。為保證小車循跡運(yùn)行過程中的平穩(wěn),采用閉環(huán)的PID控制算法,PID算法具有原理簡單、易于實(shí)現(xiàn)、穩(wěn)定可靠及結(jié)構(gòu)改變靈活等優(yōu)點(diǎn),具體在本系統(tǒng)的控制模型如圖8所示。
圖7 接收端電路Fig.7 Receiver circuit
圖8 PID控制系統(tǒng)原理圖Fig.8 Schematic diagram of PID control system
PID控制算法是以比例、微分、積分來進(jìn)行控制的??煞譃槲恢檬胶驮隽渴?種。位置式PID的輸出與過去的所有狀態(tài)有關(guān),對(duì)每一次的誤差進(jìn)行累加,計(jì)算量較大,當(dāng)控制器出現(xiàn)問題時(shí),對(duì)系統(tǒng)的穩(wěn)定性影響太大。和位置式PID控制不同,增量式PID控制將當(dāng)前時(shí)刻的控制量和上一時(shí)刻的控制量做差,以差值為新的控制量,是一種遞推式的算法,針對(duì)智能小車系統(tǒng)采用增量式PID控制更加適合,增量式PID控制算法的理論基礎(chǔ)為
將其離散化后:
前后項(xiàng)相減:
式中:KP為比例控制參數(shù);Ki為積分控制參數(shù);KD為微分控制參數(shù)。
在實(shí)際系統(tǒng)運(yùn)用中,將紅外傳感器返回值作為誤差項(xiàng),經(jīng)PID 程序運(yùn)算后,改變電機(jī)PWM的占空比參數(shù),調(diào)整小車的轉(zhuǎn)向。具體如表1所示。
表1 返回值及誤差Tab.1 Return value and error
從表1可以看出當(dāng)返回值為00100時(shí),誤差值為0,認(rèn)為小車處于循跡線的正中央運(yùn)行,當(dāng)偏左或偏右時(shí)返回變?yōu)?1000 或00010,根據(jù)此返回值判定對(duì)應(yīng)的誤差值進(jìn)行控制。需注意當(dāng)返回值為00000時(shí),意味著上一次返回值可能是10000,也可能是00001;如果返回值是10000,則小車運(yùn)行第一個(gè)傳感器和第二個(gè)傳感器之間或者是在第一個(gè)傳感器右邊;如果是00001 則小車在最后一個(gè)傳感器的左邊。
根據(jù)式(3)可以寫出PID算法代碼:
智能小車上電后,各傳感器和功能電路采集相關(guān)信息送至STM32 單片機(jī),單片機(jī)根據(jù)采集的相應(yīng)信息調(diào)用相關(guān)的程序進(jìn)行數(shù)據(jù)處理,處理后控制相應(yīng)的模塊進(jìn)行執(zhí)行。智能小車系統(tǒng)的主程序流程如圖9所示。
圖9 主程序流程Fig.9 Main program flow chart
將超級(jí)電容的殘余電量放至0 V,在充電電壓/電流(5 V/1 A)的情況下,選用不同限流電阻進(jìn)行充電測(cè)試,結(jié)果如表2所示。
表2 充電時(shí)長測(cè)試Tab.2 Charging duration test
在整個(gè)智能無線充電循跡小車的運(yùn)行過程中,需要實(shí)時(shí)監(jiān)控小車的總電量(超級(jí)電容電壓)。同時(shí)將超級(jí)電容電壓顯示在OLED 屏上利于小車和使用人員的信息交互。實(shí)際是通過電源檢測(cè)監(jiān)控電路檢測(cè)超級(jí)電容兩端的電壓值,經(jīng)處理后進(jìn)入STM32的ADC端口,通過內(nèi)部的換算和程序處理最終顯示在OLED 屏上。實(shí)際測(cè)試結(jié)果如圖10所示。OLED顯示系統(tǒng)監(jiān)測(cè)的電壓值,萬用表的數(shù)值為直接在超級(jí)電容兩端測(cè)得的實(shí)際數(shù)據(jù)。
圖10 顯示電壓值與實(shí)測(cè)值Fig.10 Display voltage value and measured value
實(shí)測(cè)結(jié)果表明ADC 讀取與OLED 顯示的電壓與實(shí)測(cè)誤差在0.01 V,符合設(shè)計(jì)要求。
整定調(diào)節(jié)器參數(shù)的方法基本可分為理論計(jì)算整定法和工程整定法。工程整定法無需知道系統(tǒng)過程的數(shù)學(xué)模型,直接進(jìn)行現(xiàn)場整定,方法簡單、計(jì)算簡便、易于操作[12]。本文采用工程整定法的湊試法確定PID的比例、積分及微分參數(shù)。首先確定KP值,將Ki、KD的參數(shù)設(shè)置為0。將KP從0 逐漸增大,直到小車出現(xiàn)振蕩,再反向從振蕩開始減小到小車停止振蕩,運(yùn)行平穩(wěn)。確定KP后則依照上述原理確定Ki、KD。經(jīng)過反復(fù)調(diào)試當(dāng)KP=10;Ki=0.5;KD=0.1,采用循跡難度較大的圓形跑道,小車能夠平穩(wěn)的循跡運(yùn)行,實(shí)際循跡運(yùn)行照片如圖11所示。
圖11 小車循跡運(yùn)行照片F(xiàn)ig.11 Photo of the car tracking
本文介紹了一種基于STM32的智能無線充電循跡小車,系統(tǒng)采用無線充電技術(shù),運(yùn)行中通過實(shí)時(shí)電量的監(jiān)控實(shí)現(xiàn)智能管理,可自動(dòng)停車充電。在行進(jìn)過程中根據(jù)循跡傳感器的返回?cái)?shù)值經(jīng)增量式PID算法后控制小車左右驅(qū)動(dòng)輪的PWM 信號(hào)輸出。經(jīng)多次測(cè)試,小車能夠較平穩(wěn)地循跡高速行駛,具有較高的應(yīng)用前景和研究價(jià)值。