李平舟,武 陽(yáng)
(西安電子科技大學(xué) 物理與光電工程學(xué)院,陜西 西安 710100)
基于微控制器的M/T法電機(jī)測(cè)速方法研究
李平舟,武 陽(yáng)
(西安電子科技大學(xué) 物理與光電工程學(xué)院,陜西 西安 710100)
電機(jī)轉(zhuǎn)速的誤差度直接影響工程控制系統(tǒng)的準(zhǔn)確度,針對(duì)目前電機(jī)轉(zhuǎn)速測(cè)量的精度問(wèn)題,在傳統(tǒng)光電編碼器、M/T方法理論基礎(chǔ)上,結(jié)合聚類算法處理思想,提出一種基于LPC2132控制器的結(jié)合算法的改進(jìn)電機(jī)測(cè)速方法,對(duì)比傳統(tǒng)M/T方法與改進(jìn)方法處理結(jié)果精度提高了一個(gè)數(shù)量級(jí)。傳統(tǒng)硬件方式與軟件數(shù)據(jù)處理思想結(jié)合使電機(jī)測(cè)速更準(zhǔn)確、便捷。
電機(jī)測(cè)速;微控制器;聚類算法
電機(jī)轉(zhuǎn)速作為各類電機(jī)的重要物理量之一,常作為反饋量在控制系統(tǒng)中起重要作用[1],且該類系統(tǒng)在航天、軍工等領(lǐng)域應(yīng)用廣泛,因此對(duì)電機(jī)測(cè)量精度的研究要求也更高。目前,霍爾傳感器、光電編碼器、離心式測(cè)速表等方法在不同要求的測(cè)速系統(tǒng)中被廣泛應(yīng)用[2],本文采用精度較高、線性度較好的光電編碼器進(jìn)行測(cè)速試驗(yàn)[3]。
1.1 光電編碼器
光電編碼器是由光柵盤(pán)及光電探測(cè)器組成[4],可利用光電轉(zhuǎn)換將輸出軸上的機(jī)械位移量轉(zhuǎn)換成脈沖或數(shù)字量等電信號(hào)的傳感器,可分為增量式和絕對(duì)式兩種類型[5]。本文采用增量式光電編碼的方式即根據(jù)碼盤(pán)伴隨位置變化輸出的脈沖信號(hào)[6],對(duì)脈沖信息進(jìn)行處理后得到電機(jī)的轉(zhuǎn)速等信息。
1.2 常用測(cè)速方法及原理
基于光電編碼器的電機(jī)測(cè)速常用方法有[7]:M法通過(guò)計(jì)算確定時(shí)間內(nèi)的脈沖個(gè)數(shù)得到轉(zhuǎn)速,測(cè)量過(guò)程中首尾半個(gè)脈沖誤差對(duì)低轉(zhuǎn)速測(cè)量影響較大,因此多用于高轉(zhuǎn)速測(cè)速[8];T法通過(guò)計(jì)算兩相鄰脈沖的時(shí)間差換算得到周期及轉(zhuǎn)速,在高轉(zhuǎn)速測(cè)量過(guò)程中周期較小誤差較大,故多用于低轉(zhuǎn)速測(cè)速[9];M/T法結(jié)合M法和T法各自的優(yōu)點(diǎn)使得測(cè)速范圍變大、精度提高[10],既進(jìn)行光電編碼器脈沖輸出的計(jì)數(shù)又進(jìn)行高頻脈沖計(jì)數(shù)進(jìn)行時(shí)間間隔計(jì)算得到轉(zhuǎn)速。
M/T法測(cè)速原理如下:假設(shè)碼盤(pán)一周分為p份,且檢測(cè)的高頻時(shí)鐘脈沖的頻率是fc,計(jì)數(shù)值為m,確定時(shí)間T內(nèi)光電編碼器得脈沖個(gè)數(shù)為M,則通過(guò)高頻脈沖計(jì)數(shù)原理[11]可得確定時(shí)間值
(1)
可知電機(jī)轉(zhuǎn)速ω的公式為
(2)
將式(1)帶入式(2)可得
(3)
2.1M/T法誤差分析及優(yōu)化方法
傳統(tǒng)M/T法的確定時(shí)間T是由高頻脈沖計(jì)數(shù)值m計(jì)算得,但高頻脈沖開(kāi)始與結(jié)束的時(shí)間與光電編碼器的輸出脈沖時(shí)間未必同步[12],如圖1所示,由此導(dǎo)致不同轉(zhuǎn)速電機(jī)的誤差不同,影響測(cè)量精度。檢測(cè)時(shí)可能出現(xiàn)的±1個(gè)脈沖誤差所引起的電機(jī)測(cè)速誤差Δω為
(4)
相對(duì)誤差η值為
(5)
本文采用高頻脈沖計(jì)數(shù)與晶振更高的LPC2132計(jì)數(shù),雙通道處理數(shù)據(jù)得到準(zhǔn)確的脈沖計(jì)數(shù)時(shí)間間隔,同時(shí)計(jì)時(shí)驗(yàn)證光電編碼器脈沖與高頻時(shí)鐘脈沖的時(shí)間差Δt是否為0,形成反饋回路降低測(cè)量誤差。
2.2 結(jié)合K-Means聚類算法優(yōu)化
已知高頻脈沖誤差會(huì)導(dǎo)致測(cè)速脈沖的轉(zhuǎn)速誤差,很多硬件領(lǐng)域文獻(xiàn)已在電路及硬件方面最優(yōu)化,本文結(jié)合軟件算法優(yōu)化對(duì)高頻脈沖計(jì)數(shù)降低誤差。隔一段時(shí)間對(duì)固定數(shù)量光電編碼器脈沖進(jìn)行計(jì)數(shù)并得到高頻脈沖計(jì)數(shù),對(duì)得到的多組高頻脈沖進(jìn)行算法處理得到的聚類中心(即最優(yōu)解)來(lái)降低誤差。K-Means的核心為計(jì)算兩個(gè)n維向量a(x11,x12,x13,…,x1n)與b(x21,x22,x23,…,x2n)歐式距離d12的公式
(6)
計(jì)算方法如下:
步驟1 若得到高頻脈沖計(jì)數(shù)值數(shù)組為{m1,m2,m3,…,mi,…,mn},從給定樣本中任選幾個(gè)點(diǎn)作初始中心;
步驟2 計(jì)算其余點(diǎn)分別于初始中心的距離,跟哪個(gè)初始中心近就跟中心點(diǎn)歸為一類(歐式距離公式),直到各為派別;
步驟3 在分好類的基礎(chǔ)上按平均值方法重新計(jì)算聚類中心點(diǎn)[13],再重復(fù)步驟2...;
步驟4 直到算法收斂即中心點(diǎn)不再變動(dòng)則結(jié)束。
2.3 基于LPC2132的測(cè)速電路
由于考慮光電編碼器的電磁干擾與兼容因素,經(jīng)過(guò)對(duì)光電編碼器進(jìn)行光耦隔離后再對(duì)微弱電信號(hào)放大整形濾波得到VCO信號(hào)[14]。本文為提高計(jì)時(shí)精度而采用高晶振LPC2132芯片。試驗(yàn)中采用下降沿捕獲,P0.17捕獲光電編碼器脈沖,P0.6接高頻脈沖,為使高頻計(jì)數(shù)脈沖與光電編碼脈沖信號(hào)同時(shí)開(kāi)始計(jì)數(shù)將P0.16口連接按鍵KEY1,按下按鍵后定時(shí)器T0與T1同時(shí)開(kāi)始計(jì)數(shù),再次按下按鍵時(shí)結(jié)束計(jì)數(shù),將計(jì)數(shù)值存入數(shù)組并通過(guò)串口發(fā)送給上位機(jī)以得到大量實(shí)驗(yàn)數(shù)據(jù)。為防止實(shí)驗(yàn)者混淆按鍵次數(shù),系統(tǒng)中加入了LED信號(hào)燈P1.16口接LED燈,計(jì)數(shù)時(shí)燈亮,停止計(jì)數(shù)時(shí)燈暗。硬件電路如圖2所示。
圖2 基于LPC2132的改進(jìn)M/T法電路圖
2.4 基于LPC2132的測(cè)速系統(tǒng)流程圖
程序采用兩路計(jì)數(shù)器,均為下降沿遞增模式,系統(tǒng)工作流程如圖3所示。
圖3 改進(jìn)M/T法軟件流程圖
工作過(guò)程為:(1)首先發(fā)送初始化命令,使T0、T1都工作在下降沿觸發(fā)的計(jì)數(shù)模式,對(duì)串口及引腳功能進(jìn)行初始化;(2)判斷P0.16口是否為0,若為0則把P1.16置0點(diǎn)亮發(fā)光二極管同時(shí)T0、T1開(kāi)始計(jì)數(shù),否則繼續(xù)等待及判斷;(3)在計(jì)數(shù)過(guò)程中繼續(xù)判斷P0.16口是否為0,為0則停止計(jì)數(shù),并通過(guò)串口把計(jì)數(shù)結(jié)果發(fā)送至上位機(jī),不為0則繼續(xù)計(jì)數(shù)。程序如下
if ((IO0PIN & KEY1) == 0)
{ DelayNS (10);//按鍵消抖
if ((IO0PIN&KEY1)==0)
{ while ((IO0PIN&KEY1)==0);//等到按鍵釋放
keyflag++;
if(keyflag==1)
{ T1TCR = 0x01;
T0TCR=0x01;
IO1CLR=LED1;
}
else{
keyflag=0;
T1TCR = 0x00;
T0TCR=0x00;
data_high=T0TC&0x0000ffff;
data_count=T1TC&0x0000ffff;
code_pc( data_high,data_count) ;
UART0_SendBuf ();
T0TC=0;
T1TC=0;
IO1SET=LED1;
}
}
}
由于電機(jī)的變速時(shí)間及能力也是電機(jī)的重要參數(shù)之一,為測(cè)試系統(tǒng)的精度,本文將電機(jī)測(cè)速對(duì)3個(gè)不同階段的速度進(jìn)行仿真:電機(jī)加速過(guò)程,轉(zhuǎn)速由零至穩(wěn)定的上升階段測(cè)速;電機(jī)恒速階段,轉(zhuǎn)速在此階段波動(dòng)較小預(yù)計(jì)誤差較小的階段;電機(jī)減速過(guò)程,轉(zhuǎn)速由高至低至停轉(zhuǎn)的階段測(cè)速,聚類算法采用Matlab仿真測(cè)試[15]。圖4所示為高頻脈沖時(shí)鐘頻率為1 MHz、光電編碼器線數(shù)等于6電機(jī)轉(zhuǎn)速為60 r·min-1時(shí),得到的數(shù)據(jù)仿真結(jié)果,不同形狀表示數(shù)據(jù)被分成不同的類,測(cè)量數(shù)據(jù)如表1所示。
圖4 60 K-means算法仿真結(jié)果
表1 電機(jī)測(cè)速實(shí)驗(yàn)結(jié)果
理論轉(zhuǎn)速/r·min-1聚類中心/×103測(cè)量轉(zhuǎn)速/r·min-1傳統(tǒng)M/T測(cè)值/r·min-1相對(duì)誤差/%6010006059.760150399.9150.037149.980.025續(xù)表180075.009799.904800.1430.0119
由仿真結(jié)果可得該算法的優(yōu)點(diǎn)如下:(1)測(cè)量精度提高,較傳統(tǒng)方法誤差提高一個(gè)數(shù)量級(jí);(2)測(cè)量范圍廣,從轉(zhuǎn)速的低速到高速等不同階段轉(zhuǎn)速都可以測(cè)量。
本文利用LPC2132芯片的雙通道計(jì)數(shù)與聚類算法處理數(shù)據(jù)構(gòu)成的系統(tǒng),達(dá)到了嚴(yán)格控制脈沖輸出時(shí)間的目的,實(shí)現(xiàn)了電機(jī)轉(zhuǎn)速作為反饋信號(hào)對(duì)控制系統(tǒng)精度的提高。相較傳統(tǒng)M/T算法,本文方法提高了電機(jī)轉(zhuǎn)速測(cè)量精度,且在各個(gè)轉(zhuǎn)速階段都有較好的測(cè)量精度。
[1] 袁鵬程,張偉峰.改進(jìn)的M/T法在電機(jī)測(cè)速中的應(yīng)用[J].輕工機(jī)械,2012,30(1):59-63.
[2] 于增坤,侯文,劉沛堯.一種新的自適應(yīng)M/T電機(jī)測(cè)速算法[J].微特電機(jī),2014(11):51-53.
[3] 瞿彩萍.微電機(jī)無(wú)接觸測(cè)速方法研究與電路設(shè)計(jì)[D].武漢:華中科技大學(xué),2004.
[4] 王喆.基于FPGA的光電編碼器信號(hào)處理系統(tǒng)的研究[D].西安:西安理工大學(xué),2011.
[5] 王書(shū)峰.基于可編程邏輯器件的光電編碼器測(cè)速方法研究[D].北京:北京郵電大學(xué),2012.
[6] 劉玉鳳,劉學(xué)軍.基于增量式光電編碼器的電機(jī)測(cè)速研究[J].電氣自動(dòng)化,2010,(10):45-47.
[7] 李昕奇,金勇.基于DSP2812的電動(dòng)機(jī)測(cè)速方法的研究[J].電氣自動(dòng)化,2011(4):81-82.
[8] Guo Yaohua, Ma Junshuang, Li Anshan.The embedded measurement system for multiple motor speed based on FPGA [C].Harbin:IEEE International Conference on Information and Automation,2010.
[9] 錢(qián)偉康,張成爽,謝凱年.基于FPGA的光電編碼器信號(hào)處理方法[J].測(cè)控技術(shù),2010,29(12):44-48.
[10] 趙巖,翟百臣,武克用,等.轉(zhuǎn)臺(tái)伺服控制系統(tǒng)中數(shù)字化速度測(cè)量方法的研究[J].光電與控制,2005,12(1):43-46.
[11] 王恕.基于FPGA的伺服電機(jī)速度測(cè)量算法研究與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2012.
[12] 崔桂梅,董麗榮,董文智.基于DSP控制器的M/T法測(cè)速[J].冶金自動(dòng)化,2009,33(2):448-450.
[13] 王金金,王未央.優(yōu)化的初始中心點(diǎn)選取的K-means聚類算法[J].現(xiàn)代計(jì)算機(jī),2015 (7):6-9.
[14] 李強(qiáng),萬(wàn)伯任,張毅坤.采用8098單片機(jī)實(shí)現(xiàn)M/T法轉(zhuǎn)速檢測(cè)[J].西安理工大學(xué)學(xué)報(bào),1994,10(1):36-42.
[15] 邢坤博,榮軍,陳存堅(jiān),等.永磁同步電動(dòng)機(jī)自控式變頻調(diào)速系統(tǒng)研究[J].電子科技,2016,29(2):41-44.
Research on M/T Velocity Measurement Based on Microcontrollers
LI Pingzhou,WU Yang
(School of Physics and Optoelectronic Engineering, Xidian University, Xi’an 710100, China)
The deviation of motor speed directly affects the accuracy of the project control system. A motor speed system based on the method of clustering algorithm and LPC2132 controller is proposed combining the traditional optical encoder, M/T method, and K-means method to improve the accuracy of motor speed measurement. Results suggest that this system improved the accuracy by an order of magnitude over that by the conventional M/T method with greater convenience owing to the combination of the traditional hardware method with software data processing.
motor speed; MCU; clustering algorithm
2016- 06- 26
李平舟(1960-),男,教授。研究方向:智能測(cè)試與控制;武陽(yáng)(1993-),女,碩士研究生。研究方向:智能測(cè)試與控制。
10.16180/j.cnki.issn1007-7820.2017.05.021
TN402;TM301.2
A
1007-7820(2017)05-076-04