梁學修,陳 志,趙 博
(1.中國農業機械化科學研究院土壤-植物-機器系統技術國家重點實驗室,北京 100083;2.中國機械工業集團有限公司,北京 100080)
近年來,隨著現代工業技術的快速發展,在航空、工業、機械制造領域等的高精度運動控制系統越來越多,對控制精度要求越來越高,而轉速測量的方法對整個控制系統的穩態誤差和動態響應性能有至關重要的作用,其速度分辨能力的高低是實現高精度、大范圍速度測量的重要因素[1]。故實現對電機轉速的高精度測量技術是十分重要的。
光電脈沖編碼器憑借其在價格和性能方面的優勢一直是轉速檢測的主要器件,本文通過比較分析幾種常用編碼器脈沖檢測的方法[2~4],在原有方法的基礎上采用了一種高精度轉速檢測的方法,即等精度測頻法,該方法利用二個計數器分別計算標準信號的脈沖個數與實測信號的脈沖個數,最后由公式進行換算。此方法的優勢是,不用再進行多個頻段的轉換,如果標準頻率高,測量的精度也是會相應提高。將此方法用硬件描述語言在FPGA上實現,由于FPGA器件具有門時延小、電路穩定及良好的時序特性,可方便的對編碼器脈沖進行精確計數,為后續的轉速計算提供保障,可以提高整個測速范圍內的檢測精度和動態響應性能。
本文通過檢測光電編碼器的脈沖信號計算電機的轉速,其測頻方法采用等精度測頻方法,此方法是在直接測頻方法的基礎上發展起來的。它的閘門時間T不是固定的值,而是被測信號周期的整數倍,即與被測信號同步,因此,消除了對被測信號計數所產生±1的誤差,并且達到了在整個測試頻段的等精度測量[5,6]。其測頻原理時序圖如圖1所示。

圖1 測頻原理時序圖
通過測頻時序圖可看到,在檢測過程中,計數器同時對被測信號和標準時鐘進行計數。在預置門限信號到來時,此時計數器不開始計數,只有等到被測信號上升沿到來,計數器開始計數。之后預置門限關閉,如被測信號不是上升沿,則計數器不停止計數,而是等到被測信號上升沿到來才結束,如此則消除了對被測信號計數所產生±1的誤差,完成了1次測量過程。
若被測信號頻率值為fc,標準時鐘頻率fb,光電編碼器線數為Ze,計數器對被測信號和標準時鐘信號測得的脈沖數值分別為Nc和Nb,由于被測時間T相同,故他們之間的關系為:

設被測信號的真實頻率為fct,光電編碼器能夠準確的測試出旋轉脈沖,其真實轉速為nt,由于被測光電編碼器的頻率信號的計數器是由該信號的上升沿觸發計數,下降沿停止計數,故在計數時間內的脈沖個數Nc為真實值,無誤差。而另一計數器對標準時鐘頻率信號計數Nb,在計數時間內最多相差一個脈沖,及有 ,則可推出其真實值為:

從式(6)可以看出,其相對誤差的大小取決于標準時鐘頻率的大小,在被測頻率固定(即電機轉速恒定)的時候,標準時鐘頻率越大,誤差也就越小。
本研究采用ALTERA公司2009年推出的Cyclone IV系列FPGA(現場可編程門陣列),其具有較高的集成度、良好的用戶定制性、內部電路的穩定性也優于一般電路,芯片結構主要由六部分組成:基本邏輯單元,時鐘管理電路,嵌入式存儲器,嵌入式乘法器,輸入/輸出單元和大量的布線資源。本文基于性能好成本的考慮,采用60nm低成本的FPGA芯片- EP4CE6F17C8,其速度等級為C8,目的是希望得到最小的門時延[7,8]。
轉速測量硬件原理如圖2所示。

圖2 轉速測量硬件原理圖
光電編碼器與電機旋轉軸直接相連,從而保證編碼器轉速與電機同步。在旋轉過程中,光電編碼器所產生的兩相(A相、B相)正交編碼脈沖與轉速成正比,其相差90°相位角,A相和B相兩個通道關系是唯一的。如果A相超前B相90°,那么電機的旋轉方向被認為是正向的。如果A相落后B相90°,那么電機旋轉方向則為反向的。Z相位每旋一圈轉產生一個脈沖,作為基準用來確定絕對位置[9]。這三個信號的時序圖如圖3所示。在FPGA內進行鑒向和計數,最后按照一定的轉速計算公式進行快速計算,繼而獲得電機的實時轉速。

圖3 光電編碼器脈沖時序圖
為了方便調試,縮短開發周期和工程應用方便,本研究采用模塊化方法設計IP核,IP核采用Verilog HDL的硬件描述語言和Quartus II 開發軟件。
Verilog HDL的硬件描述語言可以形式化地抽象表示電路的行為和結構[10],采用從上到下的設計理念,從基本單元出發,對設計進行逐層劃分,完成對脈沖信號的采集、計數及旋轉方向的判別,其程序原理框圖如圖4所示。
本研究采用配有增量式編碼器的伺服電機作為試驗對象,其編碼器的線數為2500P/R,轉速脈沖信號通過光電隔離等調理電路進入FPGA,試驗過程中首先通過ModelSim SE軟件進行仿真,之后通過搭建試驗平臺進行電機轉速檢測。

圖4 軟件實現原理圖
Verilog HDL程序編譯完成后,為了驗證其正確性,編寫TestBench并在ModelSim SE軟件上直接對代碼進行仿真試驗,檢測源代碼是否符合功能要求,完善設計。仿真程序編寫了三個模塊:初始化模塊(時鐘和復位),被測脈沖信號生成模塊和預置門限信號生成模塊。其仿真結果如圖5所示,假設電機轉速為500r/min、1000r/min、4000r/min,其對應的轉速脈沖信號頻率為1.25MHz、2.5MHz、10MHz。

圖5 軟件仿真結果
通過軟件仿真可以清楚的看到其被測信號檢測脈沖數為9,標準脈沖信號個數分別為360、180、45,在時鐘頻率為50MHz情況下,通過式(3)可以得到其被測信號頻率分別為1.25MHz、2.5MHz、10MHz,和設置頻率一致,并且從仿真結果中可以看到其旋轉方向判斷正確,故說明源代碼其符合功能要求。
在試驗臺上同樣采用低速、中速、高速三種情況下進行測試,其測試曲線如圖6所示。
從圖6可以看出,無論電機處于低速、中速、高速,測試出的電機轉速都非常準確,達到了設計要求。
試驗結果表明,用FPGA實現的等精度頻率測量來檢測電機轉速,程序設計簡單,占用系統資源比較少,能夠大大的提高系統的可靠性和穩定性,其動態響應性能和測量精度都可以達到很好的效果,在電機伺服控制中可以得到很好是應用。

圖6 轉速曲線圖
[1] 裘祖榮,石照耀,李巖.機械制造領域測量技術的發展研究[J].機械工程學報,2010,46(14):1-10.
[2] RyszardS, Jozef K.Interpolating time counter with 100 ps resolution on a single FPGA device[J].IEEE Trans.on Instrumentation and Measurement,2000,49(4):879-882.
[3] Jozef K, RyszardS,Ryszard P. Singlechip interpolating timecounter with 200 ps resolution and 43 srange[J].IEEE Trans.on Instrumentation and Measurement,1997,46(4):851-856.
[4] Jozef K. RyszardS.Jerzy P. et al. Field-programmable-gate- arraybased time-to-digital converter with 200 ps resolution[J].IEEE Trans on Instrumentation and Measurement,1997,46(1):51-55.
[5] 莫林.基于FPGA的等精度頻率計的設計與實現[J].現代電子技術,2004,10(10):81-82.
[6] 李紅剛.基于FPGA的高速等精度頻率測量系統設計[J].微計算機信息,2008,24(11):218-220.
[7] Cyclone IVDevice Handbook[Z].Volume 1:Altera Corporation,2011.
[8] EDA先鋒工作室.Altera FPGA/CPLD設計(高級篇)[Z].北京:人民郵電出版社,2005.
[9] 何勇,王生.光電傳感器及其應用[M].化學工業出版社,2004.
[10] 夏宇聞.Verilog數字系統設計教程[M].北京:北京航空航天大學出版社,2003.