盧超月,夏繼強,葉呈洋
(北京航空航天大學機械工程及自動化學院,北京100191)
STM32的磁導航自主導引車通用驅動器設計
盧超月,夏繼強,葉呈洋
(北京航空航天大學機械工程及自動化學院,北京100191)
針對目前不同功能的磁導航AGV(自主導引車)需要不同驅動器的現狀,提出一種磁導航AGV通用驅動器的設計方案。本驅動器采用STM32FV103作為主控芯片,輔以磁條傳感器模塊、RFID(射頻識別)模塊等外圍模塊構成了一個完整的AGV底層控制系統,它可以滿足多種磁導航AGV的控制要求。該驅動器已在3種不同功能的磁導航AGV上成功運行,控制AGV完成了指定的任務,達到了一定的通用性。
AGV;磁導航;STM32;驅動器
AGV系統在當前柔性制造系統(FMS)和自動化倉儲系統中扮演著重要的角色。AGV具有適應性好、柔性程度高、可靠性好、可實現生產和搬運功能的集成化和自動化等優點[1]。
AGV的導航方式主要有激光導航、電磁導航、視覺導航、GPS(全球定位系統)導航、磁導航等,本文主要針對磁導航方式的AGV進行深入探討,磁導航AGV主要是基于磁導航傳感器感應貼在路面上的磁條進行路徑跟蹤并完成其自主行駛的功能。
磁導航傳感器通過檢測鋪設在地面上的磁條來判斷AGV與目標路徑的偏差,然后輸出電壓模擬量[2]。對于磁導航AGV驅動器的設計,為更好地滿足通用性需求,需要對現有驅動器的組成單元進行總結和歸納,并且結合實際需求,找出共同點和不同點,為磁導航AGV通用驅動器的設計找到突破口。
通過查閱相關文獻,對磁導航AGV驅動器的組成有了一個總體認識,主要包括單片機單元、供電單元、手動控制單元、聲光報警單元、站點識別單元、工位檢測單元、電機驅動單元、CAN總線單元、避障單元、磁導航單元、姿態反饋單元、通信單元、安全輔助單元等[3-5]。
在對磁導航AGV驅動器的組成單元進行分析之后,本文提出了一種基于STM32F103芯片為控制核心的通用驅動器,它包含以下模塊:單片機模塊、電源模塊、DI/DO模塊、RFID讀寫模塊、DAC輸出模塊、ADC采集模塊、CAN總線通信模塊、高速編碼器,安全模塊以及串口通信模塊,這些模塊與磁導航AGV驅動器的組成單元之間的對應關系如表1所列。
由表1可以看出,提出的通用驅動器設計方案可以滿足磁導航AGV對主要組成單元的需求。該驅動器可同時控制兩個電機以及采集相應的速度,還可同時采集兩路磁條傳感器輸出的模擬電壓,對于執行復雜功能的AGV而言,可以增加驅動器的數量以滿足要求,各驅動器之間可以通過CAN總線保持動作協調一致,共同完成指定的動作。

表1 模塊與單元對應關系
各個模塊對應不同的功能和作用,各司其職,互相配合,完成指定的功能。各模塊的主要作用如表2所列。

表2 各模塊的作用
1.1 單片機模塊
本設計采用STM32作為控制芯片,此芯片基于ARM Cortex-M3內核,具有高性能、低成本、低功耗的特點。另外,此芯片的可移植性很好,并有許多官方函數庫可以直接調用,大大縮短了開發周期。STM32F103系列有80個可以自由操控的芯片引腳,為通用驅動器的設計提供了良好的條件。此驅動器采用模塊化設計,有利于驅動器功能擴展和升級。本驅動器控制板是由STM32F103的最小系統、電源電路、實時時鐘系統、時鐘電路、JTAG接口電路、復位電路、用戶LED和按鍵電路、串口電路等組成。
1.2 電源模塊
AGV大多數通過鉛酸蓄電池供電,通過將小電壓大容量的鉛蓄電池串聯起來就可以構成高電壓大容量的電池組,通常所用電池組為24 V,因此通過電壓轉換芯片將24 V轉換為5 V電壓,再將5 V轉換為3.3 V,為STM32芯片、MAX3232等供電。電路中需要加入多組電容,用于消除低頻和高頻的電源波動。
1.3 DI/DO模塊
手動操作器和必要的輸入/輸出信號需要多路DI/DO,因此本驅動器引出了多達16路的數字量輸入和16路的數字量輸出,輸入和輸出電壓為24 V。為了消除外界對驅動板的影響,在信號輸入部分采用光電耦合器進行隔離,由于電信號傳輸具有單向性等特點,可以達到良好的電絕緣能力和抗干擾能力;在信號輸出部分采用繼電器控制輸出24 V,并達到物理隔離的效果。根據光電耦合器的二極管允許壓降1.15 V和允許電流10 mA,可以計算出輸入端接入的電阻阻值,公式為:

依據標稱電阻表選擇電阻的阻值為2.2 kΩ。
1.4 CAN總線模塊
由于高性能、高可靠性、及獨特的設計,CAN總線(控制器局域網絡)越來越受到人們的重視。它可以多主站方式工作,網絡上任意一個節點均可以在任意時刻主動地向網絡上的其他節點發送信息,而不分主從;通信方式靈活,可以添加多達255個節點。本驅動器中STM32自帶有CAN控制器,只需要接入一個CAN收發器即可完成CAN模塊的設計。
1.5 DAC模塊
DAC模塊主要用于控制電機的轉速,這與電機驅動器的選型有關,電機的控制需要輸入0~10 V的模擬量來控制電機的速度,電機速度的可調節范圍是70~4 096 rpm,因此DAC輸出的電壓和電機速度存在一定的對應關系,其對應關系如下所示:

其中,n為電機的轉速大?。▎挝粸閞/min),U為DAC輸出的電壓大?。▎挝粸閂)。
為了能夠更好地控制電機,需要輸出的電壓穩定且有一定的驅動能力,由此在原理圖設計時,首先通過電壓轉換芯片把24 V轉換為±12 V,再將產生的+12 V的電壓轉換為5 V模擬量,最后將5 V轉換為+1.25 V和+2.5 V的標準參考電壓,其中 +2.5 V的參考電壓接入 STM32的VREF+引腳,作為DAC和ADC的參考電壓。
由于芯片輸出的DAC模擬量的帶負載能力較弱且電壓輸出范圍只有0~2.5 V,因此,加入運算放大器以提高帶負載能力,在參考電壓+1.25 V的參考下,將0~2.5 V的輸出范圍變為-1.25~+1.25 V的輸出范圍,再放大8倍即可達到設計要求的0~+10 V的輸出范圍。
放大倍數可以通過調節運算放大器外圍電路中的4個電阻的阻值來改變,另外在設計時,考慮到電阻阻值的不精確,用可調電阻替換其中一個電阻,最后調試PCB板時,通過調節這個可調電阻,使輸出電壓可以達到10 V。
1.6 ADC模塊
磁導航AG V中的磁條傳感器輸出來的偏差信號是通過電壓反映出來的,具體的比例關系如圖1所示。由圖1可以看出偏差與傳感器輸出的電壓在一定范圍內成正比,GATE用于指示傳感器是否在磁條上。ADC的參考電壓為+2.5 V,傳感器輸出電壓范圍是0~+10 V,采用電阻分壓的方法將0~10 V變為0~2.5 V,將測量范圍擴大4倍,如果想改變測量范圍,可以改變分壓電阻的阻值。

圖1 傳感器輸出電壓與偏移距離的對應關系
1.7 高速編碼器模塊
高速編碼器主要依靠STM32上的高速計時器來完成,采集電機輸出來的脈沖信號,將脈沖信號轉換為速度值,可以和DAC形成一個速度閉環控制。另外,對實時速度在時間上積分就可以得到行走的距離,對AGV的實時控制和顯示有用。脈沖信號和速度的具體對應關系如下:

n為電機的轉速大小(單位為r/min),tp為高速編碼器采集到的信號高電平的時間(單位為μs)。
系統軟件設計采用C語言進行編寫,編譯器采用IAR 5.3,底層驅動器軟件控制流程如圖2所示,中斷流程如圖3所示。
程序采用模塊化編程,將各個模塊分別寫到不同的子函數中,這樣便于調試、移植和修改。本文采用中斷模式來協調實現AGV各項功能,中斷模式中的中斷優先級根據任務的重要程度來確定,緊急信號中斷的優先級最高,CAN總線和串口中斷次之,定時器4的中斷優先級最低。定時器4每隔50 ms溢出一次,整個程序執行一次,執行的過程中讀取磁條傳感器狀態值,確定當前的偏差,根據糾偏算法控制AGV車的運行狀態。在糾偏算法中,根據不同的車型、不同的傳感器位置,建立不同的控制模型,進而更好地控制AGV按照設定好的路線行進。

圖2 主程序流程圖

圖3 中斷流程圖
對于不同功能的AGV,軟件控制也不相同,上文中的控制流程圖只針對一種車型,對其他車型,控制方式只需加入相應功能的程序模塊即可。
該通用驅動器目前已在3種車型上進行過試驗,這3種車型分別是:差速AGV、單舵輪AGV叉車和雙轉向架全向AGV,實物圖如圖4所示。前兩種AGV車只需一個驅動器,雙轉向架全向AGV車則需要兩個驅動器來控制,根據不同AVG建立不同的數學模型[6],完成試驗。

圖4 試驗用的3種車型
為了測試硬件設計和軟件設計是否合理,鋪設了一段環形磁條測試三種AGV,測試的路徑示意圖如圖5所示。圖5中1、2、3、4處分別放置編號為1、2、3、4的RFID標簽。
測試過程如下:
①將AGV置為手動模式,通過手操器控制AGV運動,能夠快速地完成指定的動作。

圖5 測試路徑
②將AGV置為自動模式,AGV沿著鋪設的軌跡行走,完成在指定點處執行相應的動作。
③在自動模式下,按下急停按鈕,保證車在緊急狀態下停止運行。
④在自動模式下,在軌跡上放上雜物,AGV在接觸到物品時會自動停止運行。
經過測試,3種AGV車都可以沿著鋪設的磁條穩定行進,并在指定的工位執行相應的動作,實現基本功能。
本文設計的磁導航AGV通用驅動器采用STM32F103作為主控芯片實現AGV基本功能,在3種車型上能夠穩定地工作,實現基本功能,并且模塊化設計給硬件調試和檢測提供了很大的方便,可擴展性很高。后期可以根據功能的需求增加或刪減相應的模塊,從而降低成本,增強產品的競爭力。
[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]彭光清,樓佩煌.磁導航AGV模糊控制器的研究[J].工業控制計算機,2012(9):43-44.
[3]鄭炳坤,賴乙宗,葉峰.磁導航AGV控制系統的設計與實現[J].自動化與儀表,2014(3):6-10.
[4]周馳東,樓佩煌,王輝,等.移載式磁導航AGV關鍵技術研究[J].工業控制計算機,2012(1):4-5.
[5]葉菁.磁導式AGV控制系統設計與研究[D].武漢:武漢理工大學,2006.
[6]倪維晨,高強,呂東澔,等.AGV數學模型的建立及控制分析[J].起重運輸機械,2012(3):50-53.
盧超月(碩士研究生),主要研究方向工業總線與網絡測控技術、嵌入式系統應用、無損檢測技術;夏繼強(副教授),主要從事工業測控網絡、現場總線、智能及網絡儀器儀表、新型齒輪傳動、單片機及嵌入式系統應用方面的研究。
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)