王 臻,熊 偉,王 偉,班雪梅,郭云龍
(1.北京精密機(jī)電控制設(shè)備研究所,北京 100076;2.首都航天機(jī)械有限公司,北京,100076)
編碼器是現(xiàn)代伺服系統(tǒng)常用的傳感器之一,是一種機(jī)械與電子緊密結(jié)合的位置測(cè)量傳感器,它用于將機(jī)械幾何位置的模擬量轉(zhuǎn)化成數(shù)字量,用來(lái)檢測(cè)軸角位移,加速度,速度,方向等物理量[1],可以作為伺服系統(tǒng)的反饋信號(hào)。近些年來(lái),編碼器已廣泛應(yīng)用于機(jī)器人、數(shù)控設(shè)備、儀器儀表以及軍工產(chǎn)品等高新技術(shù)領(lǐng)域,且編碼器的種類(lèi)繁多。根據(jù)信號(hào)輸出格式,編碼器被分為絕對(duì)式編碼器、增量式編碼器、混合式編碼器。根據(jù)工作原理,又可以將編碼器分為光電式編碼器和磁電式編碼器。根據(jù)量程又可以分為單圈編碼器和多圈編碼器[2]。
機(jī)電伺服要求設(shè)計(jì)一個(gè)編碼器實(shí)現(xiàn)高轉(zhuǎn)速下電機(jī)軸旋轉(zhuǎn)角度的測(cè)量,且在供電斷開(kāi)后,能夠依靠機(jī)械裝置記憶位置信息;并且有工作壽命長(zhǎng),動(dòng)態(tài)性能好,結(jié)構(gòu)緊湊的要求。絕對(duì)式編碼器在0~360°范圍內(nèi)的每一個(gè)位置對(duì)應(yīng)唯一的角度值,且角度信息不會(huì)因?yàn)閿嚯妼?dǎo)致丟失或出錯(cuò),無(wú)需掉電保存,可以滿(mǎn)足機(jī)械位置記憶的要求。磁電式編碼器相比較于光電式編碼器其結(jié)構(gòu)簡(jiǎn)單,無(wú)復(fù)雜的工藝要求,采用了無(wú)接觸旋轉(zhuǎn)結(jié)構(gòu),無(wú)機(jī)械摩擦,響應(yīng)速度快,完全滿(mǎn)足伺服電機(jī)高速旋轉(zhuǎn)、工作壽命長(zhǎng)要求。磁編碼器根據(jù)信號(hào)檢測(cè)原理的不同可分霍爾式和磁阻式。從原理上來(lái)講,雖然磁阻感應(yīng)的靈敏度比霍爾式的高,響應(yīng)也快。但是靈敏度高的同時(shí)意味著噪聲引入也高,且阻抗不僅對(duì)于磁場(chǎng)敏感,對(duì)溫度、周?chē)碾姎猸h(huán)境也很敏感[3],霍爾式編碼器更適合測(cè)試需求。通過(guò)綜合分析,設(shè)計(jì)方案選擇了基于霍爾原理的多圈絕對(duì)式磁電編碼器,用于伺服電機(jī)角度絕對(duì)位置測(cè)量,實(shí)現(xiàn)機(jī)電伺服系統(tǒng)閉環(huán)控制。
根據(jù)伺服機(jī)構(gòu)的安裝需求,編碼器的結(jié)構(gòu)如圖1 所示。多圈絕對(duì)式磁電編碼器結(jié)構(gòu)主要機(jī)械減速箱和調(diào)理電路兩部分組成。減速箱是由多個(gè)齒輪嚙合組合而成機(jī)械結(jié)構(gòu),主要將主軸的高轉(zhuǎn)速通過(guò)多級(jí)減速齒輪降低,將主軸的轉(zhuǎn)動(dòng)角度信息分解為圈數(shù)信息和角度信息。磁鋼與減速齒輪同軸,主軸旋轉(zhuǎn)時(shí),磁鋼等比減速旋轉(zhuǎn),每一個(gè)磁編碼芯片與磁鋼同軸對(duì)應(yīng)[4],磁編碼芯片通過(guò)磁場(chǎng)的變化感應(yīng)齒輪的角度變化。調(diào)理電路部分主要微控制器完成實(shí)現(xiàn)磁鋼角度位置的讀取,并完成角度位置信息的計(jì)算,并實(shí)現(xiàn)與控制系統(tǒng)的通信功能。
圖1 編碼器的結(jié)構(gòu)
由于圓柱齒輪傳動(dòng)機(jī)構(gòu)的傳動(dòng)效率高,傳動(dòng)比范圍大,只需要幾個(gè)齒輪就能獲得大傳動(dòng)比,適合用來(lái)設(shè)計(jì)大量程;其結(jié)構(gòu)簡(jiǎn)單,容易加工、且成本低,設(shè)計(jì)選擇外圓柱齒輪傳動(dòng)機(jī)構(gòu)[5]。減速箱齒輪間的傳動(dòng)比是減速箱的重要參數(shù),與編碼器性能指標(biāo)、以及調(diào)理電路的算法息息相關(guān)。為了提高程序的執(zhí)行效率、簡(jiǎn)化軟件算法、減小計(jì)算誤差,設(shè)計(jì)的傳動(dòng)比一般應(yīng)2的整數(shù)倍。減速箱設(shè)計(jì)三級(jí)減速,第一級(jí)和第二級(jí)的傳動(dòng)比為1:4,用于記錄主軸在360 度范圍內(nèi)的角度信息。前兩級(jí)設(shè)計(jì)為相同的傳動(dòng)比,是作為角度信息的冗余設(shè)計(jì)。第三級(jí)的傳動(dòng)比為1:128,用于記錄主軸轉(zhuǎn)動(dòng)的圈數(shù)信息。減速箱的結(jié)構(gòu)如圖2 所示??刂葡到y(tǒng)可以通過(guò)圈數(shù)信息加上360度內(nèi)的角度信息計(jì)算出主軸的角度信息。
圖2 減速箱結(jié)構(gòu)
編碼器調(diào)理電路主要實(shí)現(xiàn)角度信息的采集、數(shù)據(jù)處理、與控制系統(tǒng)的通信。主要由微處理器電路、角度采集電路、信號(hào)傳輸電路組成。
3.2.1 微處理器電路
編碼器的主控部分選擇了意法半導(dǎo)體公司的STM32103 RCT6 為核心器件。STM32 系列芯片是基于ARM 的cortex-M3的內(nèi)核的微處理器,其端口資源豐富,軟件和硬件兼容性好,具有高性能、低成本、低功耗的特點(diǎn)。主控部分設(shè)計(jì)利用STM32的最小系統(tǒng)實(shí)現(xiàn)信號(hào)采集、信號(hào)處理、信號(hào)傳輸?shù)目刂啤TM32的最小系統(tǒng)如圖3所示,具體設(shè)計(jì)如下:
圖3 信號(hào)處理電路
(1) 供電系統(tǒng):STM32 使用功耗較低的3.3V 供電。電路的電源管腳全部進(jìn)行了濾波處理,數(shù)字地和模擬地進(jìn)行區(qū)分,通過(guò)0歐電阻連接,提高了系統(tǒng)的抗干擾性。
(2) 復(fù)位電路:電路設(shè)置了手動(dòng)復(fù)位電路,方便單機(jī)調(diào)試。
(3) 時(shí)鐘:選擇了8M 的外部高速晶振,通過(guò)芯片內(nèi)部9倍倍頻,系統(tǒng)時(shí)鐘可達(dá)72MHz,可以滿(mǎn)足快速采集角度信息的要求。
(4) BOOT 設(shè)置:用于選擇啟動(dòng)模式,系統(tǒng)中BOOT0 和BOOT1通過(guò)10k電阻直接接地,系統(tǒng)可以通過(guò)J-Link仿真器進(jìn)行下載程序。
(5) 下載電路:下載接口電路選擇了最簡(jiǎn)單的SWD 的方式。只需要引出5個(gè)結(jié)點(diǎn)實(shí)現(xiàn)程序的下載調(diào)試:電源(3.3V)、地(GND)、復(fù)位(Reset)、兩個(gè)串行端口(SWCLK、SWDIO)。
3.2.2 角度采集電路
角度采集電路選用了AMS 公司的基于霍爾原理的磁編碼芯片AS5048A。該芯片的工作示意圖如圖4所示,圓柱形磁鋼放置在距離芯片0.5~2.5mm 的位置,且芯片和磁鋼盡量做到同軸。當(dāng)磁鋼旋轉(zhuǎn)時(shí),AS5048A 通過(guò)SPI 同步串行接口輸出0~360°范圍內(nèi)的絕對(duì)角度數(shù)據(jù),單圈分辨率為214[6]。
圖4 芯片安裝示意圖
該編碼器共使用三個(gè)AS5048A 芯片,為了節(jié)約接口資源,采用了鏈路的方式連接,電路見(jiàn)圖5。三個(gè)AS5048A 通過(guò)一個(gè)SPI接口與微控制器進(jìn)行通信,微控制器為AS5048A提供時(shí)鐘信號(hào)CLK和片選信號(hào)(CS1、CS2、CS3),通過(guò)MISO依次完成三個(gè)角度信息的采集。另外,微控制器還可以通過(guò)片選,依次完成三個(gè)芯片的零位編程。
圖5 信號(hào)采集電路
AS5048A自身包含豐富的寄存器用于自我判斷[6]。在產(chǎn)品調(diào)試過(guò)程中,可以通過(guò)讀取x3FFD、x3FFE 兩個(gè)寄存器,判斷磁鐵強(qiáng)度是否滿(mǎn)足要求,磁鐵位置是否可以保證芯片正常工作。具體的判定標(biāo)準(zhǔn)見(jiàn)表1。
表1 AS5048A判定標(biāo)準(zhǔn)
3.2.3 通信接口電路
編碼器采用6線制串行同步信號(hào)SSI通信接口完成與控制系統(tǒng)的通信。兩組時(shí)鐘線和兩組數(shù)據(jù)線以及電源線與地線,時(shí)鐘線與數(shù)據(jù)線采用485 通信模式。接口電路選擇了MAX3485 RS-485收發(fā)器實(shí)現(xiàn)收發(fā)信號(hào)的轉(zhuǎn)換。電路如圖6 所示。電路中使用RE-DE 來(lái)控制數(shù)據(jù)DATA 的雙向傳輸。設(shè)計(jì)上拉電阻和下拉電阻用于提高RS485 節(jié)點(diǎn)和網(wǎng)絡(luò)的可靠性。
圖6 信號(hào)傳輸電路
3.3.1 軟件設(shè)計(jì)
編碼器的軟件功能主要包括:系統(tǒng)初始化模塊、角度數(shù)據(jù)處理模塊、通信模塊,軟件流程框圖見(jiàn)圖7。
圖7 軟件流程圖
編碼器上電后,開(kāi)始STM32 系統(tǒng)初始化,包括GPIO 口初始化、SPI接口初始化、中斷初始化、校驗(yàn)碼初始化;在主程序內(nèi),角度數(shù)據(jù)處理模塊通過(guò)SPI接口對(duì)三個(gè)AS5048A進(jìn)行角度信息采集,并完成圈數(shù)、角度以及校驗(yàn)碼信息的計(jì)算。通信模塊一直等待接受控制系統(tǒng)發(fā)出時(shí)鐘信號(hào),在下降沿時(shí)進(jìn)入中斷程序,按照協(xié)議發(fā)送圈數(shù)、角度以及校驗(yàn)碼信息,從而完成一次通信。通信結(jié)束后繼續(xù)等待中斷,進(jìn)入下一次信息發(fā)送。
3.3.2 軟件實(shí)現(xiàn)
(1) 零位算法實(shí)現(xiàn)
編碼器由多個(gè)磁編碼器芯片組成,主軸的圈數(shù)信息由圈數(shù)信息和角度信息組成,因此在編碼器工作之前需要對(duì)兩個(gè)編碼器芯片同時(shí)置零的處理,保證齒輪同步啟動(dòng)。
AS5048A可以通過(guò)SPI接口直接設(shè)置零位,但是只可以進(jìn)行一次置零。AS5048A 置零流程圖如圖8。在芯片零位設(shè)置流程中設(shè)置了相關(guān)的判斷。在對(duì)OTP寄存器進(jìn)行校驗(yàn)時(shí),如果返回的值與OTP 寄存器的值不一致,程序?qū)⒎祷?。這種情況零位編程雖然失敗,但是AS5048A 還可以下次繼續(xù)置零。在進(jìn)行Burn 燒寫(xiě)位和Verify 核準(zhǔn)位置位后,如果返回的角度值不為零,零位編程設(shè)置失敗,不能再次進(jìn)行零位設(shè)置。由于系統(tǒng)噪聲的存在,在此環(huán)節(jié)讀取的角度不可能是絕對(duì)的零,而是在零附近的一個(gè)值。因此在判斷角度的時(shí)候,需設(shè)置一個(gè)合理的范圍進(jìn)行判讀。
圖8 芯片置零流程圖
因?yàn)樾酒荒苤昧阋淮危哂泻艽蟮木窒扌?。遠(yuǎn)遠(yuǎn)滿(mǎn)足不了編碼器多次調(diào)試試驗(yàn)的需求。因此,程序中設(shè)計(jì)了置零函數(shù),此程序方便快捷的對(duì)多個(gè)芯片進(jìn)行快速、多次置零處理。程序如下:其中para_angle[n]為第n個(gè)芯片設(shè)置的零位位置參數(shù)。
(2) 角度算法實(shí)現(xiàn)
在減速箱傳動(dòng)比設(shè)計(jì)的時(shí)候,傳動(dòng)比均設(shè)計(jì)為2的整數(shù)倍。在計(jì)算角度的信息的時(shí)候,算法就比較簡(jiǎn)潔,避免了多重計(jì)算帶來(lái)的誤差累計(jì)。主軸與記角度軸之間的降速比為4,為2 的2 次方。采集角度值左移2 位為主軸360 度范圍內(nèi)的角度信息。可取得12位精度的角度信息。主軸與記圈軸之間的降速比為128,為2的7次方。采集的角度信息通過(guò)右移(14-7)位,即是主軸的圈數(shù)信息。如果減速比不為2的整數(shù)倍,通過(guò)復(fù)雜的算法得出的角度和圈數(shù)會(huì)存在很大的誤差。由整數(shù)倍減速比設(shè)計(jì)的簡(jiǎn)潔算法,不僅提高了程序執(zhí)行效率,并且避免了復(fù)雜算法帶來(lái)的誤差。
通過(guò)上述設(shè)計(jì),多圈編碼器實(shí)現(xiàn)128 圈的角度測(cè)試,其輸出范圍為0 圈0 度到127 圈360 度。通過(guò)上位機(jī)對(duì)多圈編碼器進(jìn)行單機(jī)靜態(tài)測(cè)試。測(cè)試出編碼器的圈數(shù)、角度信息如表2 所示。換算主軸的角度指標(biāo)滿(mǎn)足要求。編碼器的靜態(tài)單機(jī)測(cè)試性能滿(mǎn)足要求。
表2 編碼單機(jī)測(cè)試數(shù)據(jù)
將編碼器裝配至伺服電機(jī)的尾部進(jìn)行動(dòng)態(tài)試驗(yàn),用于測(cè)試電機(jī)高速旋轉(zhuǎn)的角度。通過(guò)對(duì)多個(gè)編碼器產(chǎn)品進(jìn)行動(dòng)態(tài)試驗(yàn),在電機(jī)最高8000rpm 的轉(zhuǎn)動(dòng)下測(cè)試編碼器的性能指標(biāo),產(chǎn)品的線性度可達(dá)為0.24~0.37%,對(duì)稱(chēng)度的達(dá)0.017%~0.026%。并且已經(jīng)通過(guò)了高溫、低溫試驗(yàn)的考核,可以很好的滿(mǎn)足機(jī)電伺服的測(cè)試需求。
本文主要針對(duì)目前機(jī)電伺服的測(cè)試需求,設(shè)計(jì)了多圈絕對(duì)式磁電編碼器。主要從滿(mǎn)足性能的角度出發(fā),介紹了編碼器的減速箱的參數(shù)設(shè)計(jì)、電路設(shè)計(jì)、以及算法設(shè)計(jì)。通過(guò)單機(jī)的靜態(tài)測(cè)試和系統(tǒng)的動(dòng)態(tài)測(cè)試,多圈編碼器的性能指標(biāo)滿(mǎn)足機(jī)電伺服的測(cè)試需求。多圈編碼器的應(yīng)用簡(jiǎn)化了伺服系統(tǒng)的結(jié)構(gòu)設(shè)計(jì),同時(shí)提高了伺服系統(tǒng)的測(cè)量精度和速度。