孫星 吳杏
摘 要:為了優化步進電機的控制性能,使其具有更高的定位精度、更小的低速振動,更大的扭矩輸出,本文設計了基于AT89C52 單片機的步進電機細分驅動系統。通過對步進電機驅動原理進行詳細分析,根據此原理完成系統的硬件設計和軟件設計。本文最后對設計的系統進行實驗,結果表明該驅動系統具有控制精度高、低頻運行電機振動小等優點。
關鍵詞:步進電機;AT89C52 單片機;電機驅動
DOI:10.16640/j.cnki.37-1222/t.2017.06.136
0 引言
步進電機也被稱為脈沖電機,它是以控制器發出的脈沖信號作為驅動的運動元件。在不超過電機額定功率下,步進電機運動的位置和速度只與脈沖數和脈沖頻率有關,不會受其它因素影響,只要給步進電機一個脈沖信號,它就會轉動一個固定角度[1-2]。相對于其他的控制方式,基于細分的步進電機驅動方案可以使電機具有更高的定位精度、更小的低速振動以及更大的扭矩輸出,因此得到廣泛應用。
1 步進電機細分驅動的原理
步進電機控制原理如圖1所示(這里都是以兩相混和式步進電機為控制對象),控制轉子旋轉主要是通過控制各相繞組的電流大小使繞組合成磁勢的大小和方向發生變化[3]。
常見的步進電機轉子齒數一般為z=50,電機磁極對數為2p=2,當有一相繞組接通時,每一齒距的空間機械角為如公式1.1所示,每一極距所占的轉子齒數如公式1.2所示,為每一極距的空間機械角如公式1.3所示[4]。
從上公式1.2可以看出,因為每一極距所占的齒數是一個帶小數的值,所以當某一個定子和轉子一致時,其它的定子和轉子一定會錯開,這個角度計算公式為:(13-12.5)*t=0.25*t,所以,在步進電機換相時,轉子實際轉過的角度為 0.25*θz=θs=1.8°。步進電機有很多種換相方式,比較常見的有以下兩種:1)采用 A-B-C-D順序不斷地通電。2)采用 A-AB-B-BC-C-CD-D-DA-A通電順序。采用第二種方式時,θs=0.9°,轉子的轉速可以由下式1.4計算出:
式中:電機拍數為 N,每秒輸入 f 個脈沖。
由上式可以看出,只要N發生改變,步進電機的速度就會發生改變,步進電機增大細分也就是加大N的值,也就是所說的運行拍數變大,所以步距角就會變小[5]。采用這種方法會降低電機速度,為了達到預定速度,通常需要加快輸入脈的頻率f。
對步進電機細分控制其實就是對電流進行細分控制,電流大小被分為多少個階梯等級,轉動一個固定的步距角就需要多少步來實現。步進電機細分驅動如圖2所示,從圖中可以看出電機步距控制是通過控制繞組中電流實現,走一個步距角一般都是由許多個電流細分組成。因此,我們把這種控制方式稱為細分控制。
2 驅動系統硬件設計
步進電機驅動器硬件方案如圖3所示。驅動器選擇AT89C 52 單片機為主控制器,步進電機由單片機產生的脈沖進行控制,通過數模轉換模塊D/A將控制器產生的數字信號轉換為電壓量,電壓傳輸到脈沖分配器,功率電阻對電機相電流進行轉換,這個電壓和單片機D/A 模塊產生的電壓進行比較,通過邏輯運算輸出 PWM 波,這個PWM 波功率較小,不能驅動電機,必須經過光耦電路進行功放大。電機的運轉情況通過編碼器采集,以直觀的方式進行讀取。
方案中的脈沖分配器選用IXM160高性能CMOS集成電路,該電路是美國 IXMS公司生產的,它具有兩路獨立的脈沖輸出,通常被用來驅動兩路獨立的 H 橋,以實現對電流進行精確的閉環控制。所以,IXM160非常適合用來做步進電機控制分散電路,借助該芯片對電流的高精度控制,驅動器可以步實現200細分,即發送200 個脈沖步進電機走一個步距角。數模轉換模塊D/A選取具有高達12位的高精度AD657模塊,它的數模轉換非常迅速,只需要 2μs便可完成。 功率開關管選擇APT公司的APT34GE121BR器件。選用日本信濃公司生產的 SST43 D2165型步進電機,這款電機的工作頻率范圍很大,推薦工作在1.5A的電流下。測速編碼器采用專門定制的編碼器,具有20位的高精度。通過這種設計方案,不僅大幅提高了步進電機的運動精度,還使低速狀體下的諧振與紋波大大減小,改善了電機的性能。
3 步進電機細分驅動系統的軟件設計
在運行前,我們先設定好步進電機的運動方式,按照:啟動一勻加速一勻速一勻減速一停止的方式運行,我們提前在單片機的 EPROM 中導入標準的正弦、余弦函數表,當步進電機需要運行在在恒轉速,可以通過按鍵燈外部設備發送信號給單片機,單片機根據控制信號進行運行,數字信號經過D/A模塊轉換成電壓信號送給脈沖分配器。因為C語言具有編程方便、移植性和可讀性強的優點,因此AT89C 52 單片機采用C語言進行編寫。啟停控制時,需要安裝S型曲線的方式進行啟停,以增加控制精度,減小振動。為減少系統的運算量,選用查表的方法對步進電機進行控制,這樣就可以提高驅動系統的實時性。
4 試驗方法與結果
對該驅動系統進行實驗,判斷的主要標準是看其對位置控制精度的控制精度,即在一個脈沖下,步進電機的轉動精確,看起是佛具有很高的定位精度和重復定位精度。光電編碼器與步進電機輸出軸連接在一起,通過讀取編碼器的值判斷步進電機的控制精度,控制器輸出一個脈沖,測量編碼器同時會輸出相應的脈沖數,通過這個脈沖值計算出步進電機走的角度。實驗時,步進電機設置為8細分,即沒接收一個脈沖,電機轉動 0.225°,電編碼器的分辨率一定要遠遠大于這個值,所以我們選擇了20 位光電編碼器,它的分辨率為0.000343°,因此單片機每給一個脈沖,編碼器應輸出655 個脈沖。記錄的試驗數據如圖4所示。
從圖4可以看出,基于該設計的步進電機細分驅動器的控制誤差非常小,具有良好的性能。
5 結束語
本文步進電機細分驅動器是以AT89C 52單片機為控制器,結合合理的硬件電路,采用查表得方式進行控制,輸出控制信號實現對步進電機進行精確控制。根據實驗結果,可以看出采用該設計方案不僅提高了電機控制的精度,也改善了低速性能,減小了振動,具有良好的性能。這種設計方案具有很好的參考和實用價值。
參考文獻:
[1]唐佳偉.兩相混合式步進電機細分控制器的設計[D].浙江理工大學,2016.
[2]田強.基于單片機的二相混合式步進電機細分控制器研究[D].南京農業大學,2011.
[3]陳鴿,許飛云,賈民平,胡建中.基于PIC的步進電機細分控制器[J].機電工程,2009(01):42-44+84.
作者簡介:孫星(1986-),男,江蘇鹽城人,本科,助教。