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