步進電機是一種運用廣泛的控制電機,其特征是不使用位置反饋回路就能進行速度控制及定位控制,即所謂的電機開環控制。相對于伺服電機,步進電機有著成本低廉,控制簡單等優點,尤其是兩相混合式步進電機,在工業運動控制系統中有著廣泛的應用。然而,傳統的驅動方式,比如單電壓驅動、高低電壓驅動、斬波恒流驅動等等,雖然已經應用十分成熟,但是只限于低速運行,并且細分度一般限制在1/2步距,無法很好消除低頻振蕩,以及定位精度差等缺點。細分驅動的出現很好地彌補了這一缺點。
常見的細分控制器一般由MCU、專用邏輯驅動芯片以及功率驅動模塊組成,這樣的驅動器雖然能滿足多細分驅動,但由于細分數量和效果會受到邏輯驅動芯片的影響,并且無法調整細分數和限流值、從而造成系統調試困難、矩頻特性差等缺點。
本文使用ST公司的32位,加上MOSFET驅動模塊及電流傳感模塊,省去了邏輯驅動芯片。電機電流采用單片機內部AD采樣,控制邏輯算法直接由單片機軟件實現,MOSFET按照外部輸入的脈沖速度及內部的時序來運行,從而大大簡化了應用電路,提高了電路的通用性和驅動性能。
STM32F103RB采用ARM公司最新的Cortex-M3內核,具有運行速度高、處理能力強、外設接口豐富等特點。由于其低廉的價格和很強的控制、運算性能,被廣泛運用于電機控制。其具體性能指標如下:1)工作頻率:最高72 MHz;工作溫度范圍:-40~+85℃;寬電壓供電:2.0~3.6 V;2)128 k字節的閃存存儲器和16 k的SRAM;3)12位16通道AD轉換器具有雙采樣和保持功能,轉換時間最短1μs。4)3個16位通用定時器,每個定時器有多達4個通道,用于輸入捕獲/輸出比較/PWM或脈沖輸出;1個16位帶死區控制盒緊急剎車,用于電機控制的PWM高級控制定時器。
2 細分驅動原理
一般兩相步進電機驅動分為單極型和雙極性驅動兩種,單極型驅動適用于6線制電機,這樣的驅動方法等于將兩相電機轉變為四相電機,從表面上看步距角缺損減小了,實則是以犧牲電機的拖動轉矩換來的,這樣電機的帶負載能力就會大大下降。而雙極型驅動則主要針對兩相四線(或者八線制)電機,一般機械步距角為50齒1.8°(也可為100齒0.9°價格較貴),故細分驅動技術主要是通過對步進電機的相電流進行階梯化控制,使電機的以更小的單位步距角運行,從而減小步長和低頻振蕩。
細分驅動的思想是把原來簡單的對轉子電流的通斷過程改變為逐漸的改變各相繞組的電流大小和方向,使電機內部的空間合成磁場逐步改變,這樣就能把原來的一個步距角的通電方式改變成為跟隨電流的階梯波,變成多步。具體的計算方法如下:
轉矩T在一般情況下可表示為:
T=KT·(-Iasinθ+Ibcosθ) (1)
式子中KT在理想狀態下的比例常數,θ為轉子的電角度位置。
如果兩相步進電機的矩角特性是正弦波,則給繞組通入如下電流:
Ia=Im·cosβ
Ib=Im·sinβ (2)
β為電機希望定位的電角度。
將式(2)代入式(1),則
T=KT·Im·sin(β-θ) (3)
從而可見,兩相混合式步進電機的細分就是控制兩相繞組中的電流大小。理想狀態下,電機內部的磁場為圓形空間旋轉磁場,使步進電機按照交流同步電機的方式旋轉。而AB相的理想電流為正弦波,而一般情況下通過階梯波來模擬正弦波,從而達到恒轉矩幅值的控制效果。而轉矩的大小由合成磁場的矢量來決定,即相鄰兩個合成磁場的夾角為細分步距角。
每當β變化一度,則步進電機走過1/360的電角度,例如一般的8細分控制,則β的步長為π/16。所以為了實現對兩相混合式步進電機的恒轉矩細分控制,就需要在電機的兩相繞組中通以按正弦規律變化并互差90°相位的的兩相電流,階梯越細小,越接近于正弦波,步距角也越小,細分效果越好。
3 系統硬件設計
基于STM32F103RB驅動系統的硬件部分主要由信號輸入端、電源輸入端、電源模塊、MOSFET驅動模塊、H橋模塊和采樣放大模塊組成。總體硬件圖如圖3所示。
3.1 輸入信號
在硬件設計中,需要從外部輸入3種信號:Enable使能信號、Dir電機轉向信號以及Frequency速度脈沖信號。Enable信號為使能信號,為防止電機在停止時,定子繞組仍然通電造成的電機發熱而設置的電機轉子斷電信號。Dir信號控制電機的轉向;而Frequency信號為外部控制器件發出的方波脈沖信號,此信號的頻率將決定電機的轉速,3個控制信號均由光耦與內部隔離。
驅動器上電前需通過撥碼開關設置細分數和限流值,目前細分最多支持16細分,限流值一般為電機繞組可承受的最大電流的1.2倍左右,可以設置6檔限流值。驅動器最大可承受4 A的電流。
3.2 系統電源
驅動系統的電源由一個外部輸入的24~48V的直流電源輸入接線端,然后通過BUCK降壓芯片至5 V為內部光耦、比較器和運放供電,然后將5 V通過LDO降至3.3 V給MCU供電,這樣MCU能獲得相對干凈的電源。另一路外部電源經過電阻分壓,產生一個15 V電源用于MOSFET驅動芯片IR2010的供電。
3.3 驅動電路
MOSFET驅動部分采用IR公司的IR2101S驅動芯片來驅動雙H橋,從而靠雙H橋來控制一個四線制步進電機。IR2101是IR公司生產的一款高性價比驅動器,使用方法非常簡單,性價比高,能輸出100~210 mA電流。IR2101驅動器可驅動一組功率管,整個功率電路需4片即可,這樣不但節約制造成本,而且還提高系統穩定性。其驅動電路如圖4所示。
3.4 電流檢測和過流保護
本系統使用采樣電阻來采集經過H橋(即電機的定子電流)。此處采樣電阻阻值比較大時,會使電阻分壓過大,造成H橋的低端電壓高于地電壓,影響系統的穩定性,而阻值太小又會使信號過小影響檢測精度,所以本系統選用0.1Ω電阻作為采樣電阻。然后經過LMV358放大后,成為0~3 V的電壓信號,在經過一個跟隨器后,進入MCU片上AD,進行數模轉換,放大后的信號還連接一個比較器用于過流保護。
4 系統軟件設計
系統軟件主程序框圖如圖5和圖6所示,圖5為主程序軟件框圖,圖6為ADC中斷軟件流程圖。
主程序處于死循環狀態,每次外部信號Enable后,就會鎖存外部的控制頻率,方向,限流值,細分度等信號,然后進行內部參數初始化,等待刷新定時器計時完畢后就開始按照計時中的ADC中斷及定時器中斷完成的參數計算進行調節位置和速度。
其中ADC在每個PWM的上升沿觸發,采樣兩相電流進行處理,并且將其送給PI調節器調節PWM占空比,并且每次都會與限流值進行比較,一旦電流超過限流值,則自行執行脫機。這些程序在中斷中完成,可以是系統更具有實時性。另外,每次走完一個階梯的波形后,程序將觸發timer3計數器,進行細分步數的計算,從而快的調整個周期的細分數。Timer3程序流程圖如圖7所示。
電機的細分步數為每次Enable之后方能調整,而細分值表則由計算好的正余弦參數存于MCU Flash中。
5 結論
本系統采用電流實時采樣并進行PI調節,使兩相混合式步進電機的恒轉矩運行,真正達到了電流矢量不變控制,在測試中能夠有效的降低低頻振蕩,并且,在16細分的狀態下控制工作,大幅度的減小了噪聲和阻尼振蕩,是一種有效的控制步進電機的手段。
-
單片機
+關注
關注
6041文章
44616瀏覽量
637407 -
驅動器
+關注
關注
53文章
8268瀏覽量
146802 -
步進電機
+關注
關注
151文章
3118瀏覽量
147711
發布評論請先 登錄
相關推薦
評論