盧超月,夏繼強,葉呈洋
(北京航空航天大學(xué)機械工程及自動化學(xué)院,北京100191)
STM32的磁導(dǎo)航自主導(dǎo)引車通用驅(qū)動器設(shè)計
盧超月,夏繼強,葉呈洋
(北京航空航天大學(xué)機械工程及自動化學(xué)院,北京100191)
針對目前不同功能的磁導(dǎo)航AGV(自主導(dǎo)引車)需要不同驅(qū)動器的現(xiàn)狀,提出一種磁導(dǎo)航AGV通用驅(qū)動器的設(shè)計方案。本驅(qū)動器采用STM32FV103作為主控芯片,輔以磁條傳感器模塊、RFID(射頻識別)模塊等外圍模塊構(gòu)成了一個完整的AGV底層控制系統(tǒng),它可以滿足多種磁導(dǎo)航AGV的控制要求。該驅(qū)動器已在3種不同功能的磁導(dǎo)航AGV上成功運行,控制AGV完成了指定的任務(wù),達到了一定的通用性。
AGV;磁導(dǎo)航;STM32;驅(qū)動器
AGV系統(tǒng)在當(dāng)前柔性制造系統(tǒng)(FMS)和自動化倉儲系統(tǒng)中扮演著重要的角色。AGV具有適應(yīng)性好、柔性程度高、可靠性好、可實現(xiàn)生產(chǎn)和搬運功能的集成化和自動化等優(yōu)點[1]。
AGV的導(dǎo)航方式主要有激光導(dǎo)航、電磁導(dǎo)航、視覺導(dǎo)航、GPS(全球定位系統(tǒng))導(dǎo)航、磁導(dǎo)航等,本文主要針對磁導(dǎo)航方式的AGV進行深入探討,磁導(dǎo)航AGV主要是基于磁導(dǎo)航傳感器感應(yīng)貼在路面上的磁條進行路徑跟蹤并完成其自主行駛的功能。
磁導(dǎo)航傳感器通過檢測鋪設(shè)在地面上的磁條來判斷AGV與目標(biāo)路徑的偏差,然后輸出電壓模擬量[2]。對于磁導(dǎo)航AGV驅(qū)動器的設(shè)計,為更好地滿足通用性需求,需要對現(xiàn)有驅(qū)動器的組成單元進行總結(jié)和歸納,并且結(jié)合實際需求,找出共同點和不同點,為磁導(dǎo)航AGV通用驅(qū)動器的設(shè)計找到突破口。
通過查閱相關(guān)文獻,對磁導(dǎo)航AGV驅(qū)動器的組成有了一個總體認(rèn)識,主要包括單片機單元、供電單元、手動控制單元、聲光報警單元、站點識別單元、工位檢測單元、電機驅(qū)動單元、CAN總線單元、避障單元、磁導(dǎo)航單元、姿態(tài)反饋單元、通信單元、安全輔助單元等[3-5]。
在對磁導(dǎo)航AGV驅(qū)動器的組成單元進行分析之后,本文提出了一種基于STM32F103芯片為控制核心的通用驅(qū)動器,它包含以下模塊:單片機模塊、電源模塊、DI/DO模塊、RFID讀寫模塊、DAC輸出模塊、ADC采集模塊、CAN總線通信模塊、高速編碼器,安全模塊以及串口通信模塊,這些模塊與磁導(dǎo)航AGV驅(qū)動器的組成單元之間的對應(yīng)關(guān)系如表1所列。
由表1可以看出,提出的通用驅(qū)動器設(shè)計方案可以滿足磁導(dǎo)航AGV對主要組成單元的需求。該驅(qū)動器可同時控制兩個電機以及采集相應(yīng)的速度,還可同時采集兩路磁條傳感器輸出的模擬電壓,對于執(zhí)行復(fù)雜功能的AGV而言,可以增加驅(qū)動器的數(shù)量以滿足要求,各驅(qū)動器之間可以通過CAN總線保持動作協(xié)調(diào)一致,共同完成指定的動作。
表1 模塊與單元對應(yīng)關(guān)系
各個模塊對應(yīng)不同的功能和作用,各司其職,互相配合,完成指定的功能。各模塊的主要作用如表2所列。
表2 各模塊的作用
1.1 單片機模塊
本設(shè)計采用STM32作為控制芯片,此芯片基于ARM Cortex-M3內(nèi)核,具有高性能、低成本、低功耗的特點。另外,此芯片的可移植性很好,并有許多官方函數(shù)庫可以直接調(diào)用,大大縮短了開發(fā)周期。STM32F103系列有80個可以自由操控的芯片引腳,為通用驅(qū)動器的設(shè)計提供了良好的條件。此驅(qū)動器采用模塊化設(shè)計,有利于驅(qū)動器功能擴展和升級。本驅(qū)動器控制板是由STM32F103的最小系統(tǒng)、電源電路、實時時鐘系統(tǒng)、時鐘電路、JTAG接口電路、復(fù)位電路、用戶LED和按鍵電路、串口電路等組成。
1.2 電源模塊
AGV大多數(shù)通過鉛酸蓄電池供電,通過將小電壓大容量的鉛蓄電池串聯(lián)起來就可以構(gòu)成高電壓大容量的電池組,通常所用電池組為24 V,因此通過電壓轉(zhuǎn)換芯片將24 V轉(zhuǎn)換為5 V電壓,再將5 V轉(zhuǎn)換為3.3 V,為STM32芯片、MAX3232等供電。電路中需要加入多組電容,用于消除低頻和高頻的電源波動。
1.3 DI/DO模塊
手動操作器和必要的輸入/輸出信號需要多路DI/DO,因此本驅(qū)動器引出了多達16路的數(shù)字量輸入和16路的數(shù)字量輸出,輸入和輸出電壓為24 V。為了消除外界對驅(qū)動板的影響,在信號輸入部分采用光電耦合器進行隔離,由于電信號傳輸具有單向性等特點,可以達到良好的電絕緣能力和抗干擾能力;在信號輸出部分采用繼電器控制輸出24 V,并達到物理隔離的效果。根據(jù)光電耦合器的二極管允許壓降1.15 V和允許電流10 mA,可以計算出輸入端接入的電阻阻值,公式為:
依據(jù)標(biāo)稱電阻表選擇電阻的阻值為2.2 kΩ。
1.4 CAN總線模塊
由于高性能、高可靠性、及獨特的設(shè)計,CAN總線(控制器局域網(wǎng)絡(luò))越來越受到人們的重視。它可以多主站方式工作,網(wǎng)絡(luò)上任意一個節(jié)點均可以在任意時刻主動地向網(wǎng)絡(luò)上的其他節(jié)點發(fā)送信息,而不分主從;通信方式靈活,可以添加多達255個節(jié)點。本驅(qū)動器中STM32自帶有CAN控制器,只需要接入一個CAN收發(fā)器即可完成CAN模塊的設(shè)計。
1.5 DAC模塊
DAC模塊主要用于控制電機的轉(zhuǎn)速,這與電機驅(qū)動器的選型有關(guān),電機的控制需要輸入0~10 V的模擬量來控制電機的速度,電機速度的可調(diào)節(jié)范圍是70~4 096 rpm,因此DAC輸出的電壓和電機速度存在一定的對應(yīng)關(guān)系,其對應(yīng)關(guān)系如下所示:
其中,n為電機的轉(zhuǎn)速大?。▎挝粸閞/min),U為DAC輸出的電壓大小(單位為V)。
為了能夠更好地控制電機,需要輸出的電壓穩(wěn)定且有一定的驅(qū)動能力,由此在原理圖設(shè)計時,首先通過電壓轉(zhuǎn)換芯片把24 V轉(zhuǎn)換為±12 V,再將產(chǎn)生的+12 V的電壓轉(zhuǎn)換為5 V模擬量,最后將5 V轉(zhuǎn)換為+1.25 V和+2.5 V的標(biāo)準(zhǔn)參考電壓,其中 +2.5 V的參考電壓接入 STM32的VREF+引腳,作為DAC和ADC的參考電壓。
由于芯片輸出的DAC模擬量的帶負(fù)載能力較弱且電壓輸出范圍只有0~2.5 V,因此,加入運算放大器以提高帶負(fù)載能力,在參考電壓+1.25 V的參考下,將0~2.5 V的輸出范圍變?yōu)?1.25~+1.25 V的輸出范圍,再放大8倍即可達到設(shè)計要求的0~+10 V的輸出范圍。
放大倍數(shù)可以通過調(diào)節(jié)運算放大器外圍電路中的4個電阻的阻值來改變,另外在設(shè)計時,考慮到電阻阻值的不精確,用可調(diào)電阻替換其中一個電阻,最后調(diào)試PCB板時,通過調(diào)節(jié)這個可調(diào)電阻,使輸出電壓可以達到10 V。
1.6 ADC模塊
磁導(dǎo)航AG V中的磁條傳感器輸出來的偏差信號是通過電壓反映出來的,具體的比例關(guān)系如圖1所示。由圖1可以看出偏差與傳感器輸出的電壓在一定范圍內(nèi)成正比,GATE用于指示傳感器是否在磁條上。ADC的參考電壓為+2.5 V,傳感器輸出電壓范圍是0~+10 V,采用電阻分壓的方法將0~10 V變?yōu)?~2.5 V,將測量范圍擴大4倍,如果想改變測量范圍,可以改變分壓電阻的阻值。
圖1 傳感器輸出電壓與偏移距離的對應(yīng)關(guān)系
1.7 高速編碼器模塊
高速編碼器主要依靠STM32上的高速計時器來完成,采集電機輸出來的脈沖信號,將脈沖信號轉(zhuǎn)換為速度值,可以和DAC形成一個速度閉環(huán)控制。另外,對實時速度在時間上積分就可以得到行走的距離,對AGV的實時控制和顯示有用。脈沖信號和速度的具體對應(yīng)關(guān)系如下:
n為電機的轉(zhuǎn)速大?。▎挝粸閞/min),tp為高速編碼器采集到的信號高電平的時間(單位為μs)。
系統(tǒng)軟件設(shè)計采用C語言進行編寫,編譯器采用IAR 5.3,底層驅(qū)動器軟件控制流程如圖2所示,中斷流程如圖3所示。
程序采用模塊化編程,將各個模塊分別寫到不同的子函數(shù)中,這樣便于調(diào)試、移植和修改。本文采用中斷模式來協(xié)調(diào)實現(xiàn)AGV各項功能,中斷模式中的中斷優(yōu)先級根據(jù)任務(wù)的重要程度來確定,緊急信號中斷的優(yōu)先級最高,CAN總線和串口中斷次之,定時器4的中斷優(yōu)先級最低。定時器4每隔50 ms溢出一次,整個程序執(zhí)行一次,執(zhí)行的過程中讀取磁條傳感器狀態(tài)值,確定當(dāng)前的偏差,根據(jù)糾偏算法控制AGV車的運行狀態(tài)。在糾偏算法中,根據(jù)不同的車型、不同的傳感器位置,建立不同的控制模型,進而更好地控制AGV按照設(shè)定好的路線行進。
圖2 主程序流程圖
圖3 中斷流程圖
對于不同功能的AGV,軟件控制也不相同,上文中的控制流程圖只針對一種車型,對其他車型,控制方式只需加入相應(yīng)功能的程序模塊即可。
該通用驅(qū)動器目前已在3種車型上進行過試驗,這3種車型分別是:差速AGV、單舵輪AGV叉車和雙轉(zhuǎn)向架全向AGV,實物圖如圖4所示。前兩種AGV車只需一個驅(qū)動器,雙轉(zhuǎn)向架全向AGV車則需要兩個驅(qū)動器來控制,根據(jù)不同AVG建立不同的數(shù)學(xué)模型[6],完成試驗。
圖4 試驗用的3種車型
為了測試硬件設(shè)計和軟件設(shè)計是否合理,鋪設(shè)了一段環(huán)形磁條測試三種AGV,測試的路徑示意圖如圖5所示。圖5中1、2、3、4處分別放置編號為1、2、3、4的RFID標(biāo)簽。
測試過程如下:
①將AGV置為手動模式,通過手操器控制AGV運動,能夠快速地完成指定的動作。
圖5 測試路徑
②將AGV置為自動模式,AGV沿著鋪設(shè)的軌跡行走,完成在指定點處執(zhí)行相應(yīng)的動作。
③在自動模式下,按下急停按鈕,保證車在緊急狀態(tài)下停止運行。
④在自動模式下,在軌跡上放上雜物,AGV在接觸到物品時會自動停止運行。
經(jīng)過測試,3種AGV車都可以沿著鋪設(shè)的磁條穩(wěn)定行進,并在指定的工位執(zhí)行相應(yīng)的動作,實現(xiàn)基本功能。
本文設(shè)計的磁導(dǎo)航AGV通用驅(qū)動器采用STM32F103作為主控芯片實現(xiàn)AGV基本功能,在3種車型上能夠穩(wěn)定地工作,實現(xiàn)基本功能,并且模塊化設(shè)計給硬件調(diào)試和檢測提供了很大的方便,可擴展性很高。后期可以根據(jù)功能的需求增加或刪減相應(yīng)的模塊,從而降低成本,增強產(chǎn)品的競爭力。
[1]Peters B,Smith J,Venkatesh S.A Control Classification of Automated Guided Vehicle Systems[J].International Journal of Industrial Engineering,1996,3(1):29-39.
[2]彭光清,樓佩煌.磁導(dǎo)航AGV模糊控制器的研究[J].工業(yè)控制計算機,2012(9):43-44.
[3]鄭炳坤,賴乙宗,葉峰.磁導(dǎo)航AGV控制系統(tǒng)的設(shè)計與實現(xiàn)[J].自動化與儀表,2014(3):6-10.
[4]周馳東,樓佩煌,王輝,等.移載式磁導(dǎo)航AGV關(guān)鍵技術(shù)研究[J].工業(yè)控制計算機,2012(1):4-5.
[5]葉菁.磁導(dǎo)式AGV控制系統(tǒng)設(shè)計與研究[D].武漢:武漢理工大學(xué),2006.
[6]倪維晨,高強,呂東澔,等.AGV數(shù)學(xué)模型的建立及控制分析[J].起重運輸機械,2012(3):50-53.
盧超月(碩士研究生),主要研究方向工業(yè)總線與網(wǎng)絡(luò)測控技術(shù)、嵌入式系統(tǒng)應(yīng)用、無損檢測技術(shù);夏繼強(副教授),主要從事工業(yè)測控網(wǎng)絡(luò)、現(xiàn)場總線、智能及網(wǎng)絡(luò)儀器儀表、新型齒輪傳動、單片機及嵌入式系統(tǒng)應(yīng)用方面的研究。
General Driver of Magnetic Navigation Autonomous Guided Vehicle Based on STM32
Lu Chaoyue,Xia Jiqiang,Ye Chengyang
(School of Mechanical Engineering and Automation,Beijing University of Aeronautics and Astronautics,Beijing 100191,China)
According to the current status that magnetic navigation AGV has different function requires different driver,this article proposes a design of general driver of Magnetic Navigation(AGV).This driver uses STM32FV103 as its master control center,adding magnetic stripe sensor unit,RFID unit and other peripheral devices to constitute a complete AGV floor control system,and it can meet the control requirements of a variety of magnetic navigation AGV.The drive has been run successfully on three types of magnetic navigation AGV which controls AGV to complete the assigned task,and it reaches certain versatility.
AGV;magnetic navigation;STM32;driver
TP24
A
楊迪娜
2014-11-10)