摘 要: 隨著控制技術以及步進電機 (Stepper Motor)的發展,現代工業的許多領域對步進電機的需求也越來越大。但是傳統的步進電機控制系統多以單片機等微處理器為基礎,往往具有控制電路體積大、控制效率低、穩定性差等缺點。利用FPGA控制速度快、可靠性強等特點,利用等步距細分原理和PWM控制技術,設計出了高靈活性、可人機交互、分辨率高的步進電機控制系統。仿真和實驗證明,該控制系統高效可靠。
關鍵詞: 步進電機; 控制系統; FPGA; 細分原理; PWM控制技術
中圖分類號: TN710?34 文獻標識碼: A 文章編號: 1004?373X(2013)23?0142?03
FPGA?based optimization control for stepper motor
ZI Wen?cai1, HE Bang?gui1, ZI Zhen?qin2
(1. College of Electromechanical Engineering, Kunming University of Science and Technology, Kunming 650500, China;
2. Yunnan Nationalities University, Kunming 650500, China)
Abstract: With the development of control technology and stepper motor, the demand for stepper motor in many fileds of modern industry is more and more urgent. Anyhow, because the traditional control system of stepper motor mostly depends on microprocessor such as single chip microcomputer (SCM), it makes the volume of a control circuit big, the control efficiency low and stability low. A high flexibility and high resolution control system of stepper motor which has the ability of man?machine interaction is designed in this paper by utilizing the advantages of high?speed control and high reliability of FPGA, as well as subdivision principle and PWM control technology. Simulation and experiment results show that the control system is efficient and reliable.
Keywords: stepper motor; control system; FPGA; subdivisionprinciple; PWM control technology
0 引 言
步進電機是將電脈沖信號轉變為角位移或線位移的開環控制電機,輸入脈沖總數控制步進電機的總旋轉角度,電機的速度由每秒輸入脈沖數目所決定,因此易實現機械位置的精準控制[1]。而且由于步進電機價格低廉、可控性強等特點,使其在數控機床傳送控制等自動控制領域中得到了廣泛的應用[2]。但隨著技術的發展以及企業生產的要求,步進電機傳統的以單片機等微處理器為核心單元的控制系統暴露出了如下缺點:控制策略單一不利于實現人機交互,而且控制電路復雜、控制精度低、生產成本高[3],系統穩定性不夠,步進分辨率低、缺乏靈活性[4?5],低頻時的振蕩和噪聲大[6],而且受步進電機機械結構和空間的限制,步進電機的步距角不可能無限的小,難以滿足高精度開環控制的需求。由于FPGA編程方式簡單,開發周期短,可靠性高,使其在工業控制領域的應用越來越廣泛。本文在總結FPGA的分頻技術以及步進電機細分控制原理的基礎上,通過PWM控制技術來提高步進電機的分辨率,仿真和實驗表明,本文采取的措施有效地實現步進電機控制的高效、精確控制。
1 步進電機細分控制原理
步進電機的工作原理如圖1所示,對四相步進電機而言,按照一定的順序對各相繞組通電即可控制電機的轉動。例如,當開關B與電源導通而其他開關斷開時,在磁力線的作用下B相磁極和轉子0,3號對齊;當開關C與電源導通而其他開關斷開時,在磁力線的作用下,轉子轉動,1,4號齒和C相繞組的磁極對齊。同理,依次向A,B,C,D四相繞組供電,電機就會沿著A,B,C,D方向轉動[7]。
為了理解步進電機的不足,還需了解步進電機的步距角。步距角的定義為:
[θ步距=360°(kmzn)] (1)
式中:[km]為步進電機的工作節拍系數;[zn]為齒數[7]。
受步進電機的拍數和轉子齒數的限制,步進電機的步距角不可能非常小,即每一單步控制的轉動量相對比較大,在許多精密控制領域,步進電機的功能達不到使用要求。因此為了提高步進電機的分辨率,需采用細分控制技術對其進行優化控制。細分控制類似于插值,其基本原理就是將電機繞組中的電流細分,在兩個控制電流之間增加許多中間狀態的電流,使得步進電機可以工作在許多中間的狀態,從而使得步進電機的每一步得到細分,其步距角更小,系統的分辨得到提高[8?9],性能得到優化。而細分控制通常有兩種細分方式,一是使電流按線性規律變化來細分,二是按等步距角細分。為了比較兩種細分方式的優劣,還需要了解步進電機工作時的靜態距角特征。
圖1 步進電機工作原理圖
[M=-Mksinθ=-kti2sinθ] (2)
式中:[M]為電磁轉矩;[Mk]為一定繞組電流時的最大靜轉矩;對于反應式步進電機,當不考慮磁路飽和時,可以認為[Mk]與電流[i]的平方成正比[8],負號表示電磁轉矩與定子磁場之間為楞次關系,即電磁轉矩總是阻礙轉子離開磁場最小磁阻的位置[9]。
現以三相反應式步進電機來分析兩種細分方式。三相反應式步進電機三相繞組分別通電時,其矩角特性為彼此相差120°電角度的正弦曲線,如圖2所示。
圖2 多相繞組步進電機距角特性
當A、B兩相通電時,設電流分別為[iA、][iB,]相應的靜轉矩為[MA、][MB,]忽略磁路之間的影響,其合成矩角特性為二者相疊加[8],如式(3)所示:
[MAsinθ+MBsin(θ-120°)=MA-MB22+32MB2sin(θ-α)=MABsin(θ-α)] (3)
其中[α]為此通電狀態的平衡點電角度,其表達式為[7]:
[sinα=32MBMA-MB22+32MB2] (4)
由公式(3)和(4)可知,當步進電機的電流按照線性規律變化時,其距特性如圖3(a)所示。由于距角特征幅值因通電電流的不同而各不相等,因此各細分步的步距角就不能保持一致。理想的細分電流波形應使各通電狀態下的步距角特性的幅值、形狀均相等,如圖3(b)所示[8]。
圖3 電流線性等細分距角及理想的細分距角特性
因此電流按線性規律變化的細分方式使得細分后的每一小步的控制精度不相等。而如果按等步距角細分,則細分后的步距角為:
[θbeM=θbeM] (5)
式中:[M]為細分的次數。設細分后的第[k]微步距角時A相和B相的電流分配系數為[kA]和[kB,]則有:
[M合成=-kt(kAi)2sinθ-kt(kBi)2sin(θ+θbe)] (6)
為了使細分后的靜態距角與細分前一樣,則有:
[M合成=-kt(kAi)2sinθ-kt(kBi)2sin(θ+θbe)=-kti2sinθ] (7)
因此可以求得電流分配系數為:
[kA=sin(M-k)×θbeMsinθbe, kB=sin(kθbeM)sinθbe] (8)
如果在控制電路中嚴格按照電流分配系數來控制各個通電狀態,則能夠保證細分后的每一小步的控制精度相等。因此本文采用按等步距角的細分方式。
2 步進電機細分控制硬件的實現
為了實現步進電機的等步距角細分,本文采用脈沖寬度調制(PWM)的方式來實現。PWM就是對逆變電路開關器件的通斷進行控制,使輸出端得到一系列幅值相等的脈沖。這些脈沖綜合在一起即可形成等效的正弦波、方波等預期的波形。而等效輸出波形的質量與脈沖的步距有關,即同一時刻輸出的PWM路數越多,則脈沖密度越高,則輸出等效波形的質量就越好。而傳統的步進電機控制系統多采用單片機作為微處理器,而單片機是單線程的微處理器,同一時刻只能執行一條命令,也即是同一時刻只能產生一路PWM信號,因此輸出波形質量較差,從而導致步進電機的控制精度偏低。而FPGA的運算速度遠遠高于單片機的運算速度,且通過模塊化設計可以使其處于多線程工作模式,即可以同時產生多路PWM信號,提高了輸出等效波形的質量。本文中選取Altera公司2004年推出了新款Cyclone Ⅱ系列FPGA器件作為開發平臺,同時輸出8路PWM信號,控制實現四相步進電機的16細分。同時利用串口模塊與上位機相連以實現人機交互。系統原理圖如圖 4 所示。
圖4 步進電機PWM細分控制原理圖
該控制系統中采用總線控制方式,利用片選信號依次控制4路PWM鎖存器的通斷,這樣可以簡化硬件電路和軟件設計。以A相控制為例,當片選A為高電平而其他幾路片選為低時,A路PWM鎖存器工作而其他幾路PWM鎖存器休眠。根據公式(8)計算出細分的電流分配系數,進而轉化成控制PWM信號的占空比,同時開通幾路鎖存器,通過鎖存器輸出驅動步進電機。
3 步進電機細分控制軟件的設計
本設計中采用Quartus Ⅱ軟件開發平臺和Verilog設計語言進行控制軟件的設計。系統中需要在FPGA 內利用線性反饋移位寄存器(Linear Feedback Shift Registers)來實現隨機數的產生[10],控制步進電機的隨機取樣轉動[11],本系統中最核心的PWM控制模塊設計如下:
module Bujindianji (clk_in, RST, en, A, B, C, D, fuzhi_en, switchA, swithcB, swithC, swithD, en2, led);
always @ (negedge RST or posedge clk)
if (!RST) din_min<=0; else
begin din_min[9:2]<= (10* (x[3]*8+x[2]*4+x[1]*2+x[0]*1+ (y[3]*8+y[2]*4+y[0]*1)); end
always @ (posedge clk or negedge RST)
if (!RST) begin N<=0; Direction<=0; end else begin N<=din_min[9:2]; Driection<=din_min[1:0];end
always @ (posedge clk or negedge RST)
if (!RST) N_clear_cnt<=11′b11111111111; else if (weN?clear_cnt!=0) N_clear_cnt<= N_clear_cnt?1;
else if (weN?clear_cnt==0) N_clear_cnt<= N_clear_cnt; else N_clear_cnt<=11’b11111111111;
stepper_motor (clk, RST, en, N, Direction, A, B, C, D);
data_putin (clk, RST, switchA, switchB, switchC, switchD, en2, led, data)
always @ (posedge clk or negedge RST) if (!RST) din<=0; else if (fuzhi_en) din<=data; else din<=din;
endmodule
4 系統測試
系統設計完成后,對整個系統進行測試和檢驗。PWM控制系統的仿真結果如圖 5 所示,觀察仿真輸出波形可知控制脈沖輸出正確。將程序固化到FPGA硬件中之后,將被控的四相反應式步進電機連接上,并通過串口將FPGA與上位機相連,由上位機輸出命令控制步進電機的轉速、轉向、轉動角度等。
圖5 PWM控制仿真波形
5 結 語
驗證結果表明,該控制系統實現了步進電機等步距角的16級細分,并通過人機交互實現了任意改變各相順序的主要技術指標,控制精度高,可靠性強。
參考文獻
[1] 李賀然,王黎,高曉蓉,等.基于FPGA的步進電機控制器設計[J].信息技術,2012(2):23?24.
[2] 孫建忠,白鳳仙.特種電機及其控制[M].北京:中國水利水電出版社,2005.
[3] 高琴,劉淑聰,彭宏偉.步進電機控制系統的設計及應用[J].制造業自動化,2012,34(1):150?152.
[4] DONNELLY W, LAURITZEN A. Variance shadow maps [C]// Proceedings of the Symposium on Interactive 3D Graphics and Games. [S.l.]: ACM, 2006: 161?165.
[5] SCHOLL Cristoph. Functional decomposition with application to FPGA synthesis [M]. Germany: Springer, 2002.
[6] 郝小江,黃昆.基于FPGA的步進電機控制設計[J].儀表技術,2011(9):8?10.
[7] 鄭宇.步進電機細分控制的單片機實現[J].貴州師范大學學報:自然科學版,2012,30(2):106?109.
[8] 李山.步進電機細分控制的研究[J].重慶工業管理學院學報,1998,12(2):34?39.
[9] 楊曉沸.步進電機細分控制的PWM實現[J].電機技術,2008 (5):15?16.
[10] 邱暉,林偉,黃世震.基于FPGA步進電機驅動控制系統的設計[J].電子器件,2011,34(6):686?689.
[11] 段吉海,黃智偉.基于CPLD/FPGA的數字通信系統建模與設計[M].北京:電子工業出版社,2004.
作者簡介:紫文才 男,1977年出生,云南南華人,研究生,講師。研究方向為機械設計及理論、現代制造技術。
何邦貴 男,1963年出生,四川蒼溪人,研究生,教授。研究方向為機械設計及理論、輕工裝備與技術(包裝與印刷)。
紫振欽 男,1990年出生,云南南華人。研究方向為電子信息技術、通信工程技術。