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