新的步進(jìn)電機(jī)控制器/驅(qū)動器優(yōu)化步進(jìn)電機(jī)系統(tǒng)設(shè)計
掃描二維碼
隨時隨地手機(jī)看文章
現(xiàn)代步進(jìn)電機(jī)驅(qū)動系統(tǒng)通常使用集成電路功率芯片驅(qū)動電機(jī)運轉(zhuǎn),有時可能還會集成一些簡單的控制功能,像電流控制。有些較先進(jìn)的控制芯片還集成一個狀態(tài)機(jī),對步進(jìn)電機(jī)的步進(jìn)順序進(jìn)行相應(yīng)的控制。一般而言,步進(jìn)時序和運動曲線是由一個外部微控制器或?qū)S玫腁SIC邏輯電路控制的。如果需要控制多臺電機(jī),解決辦法無非是給每臺電機(jī)安裝專用邏輯電路或者在微控制器上安裝每臺電機(jī)的控制軟件。通過在一顆芯片上集成一個數(shù)字控制內(nèi)核和驅(qū)動電路,意法半導(dǎo)體的新產(chǎn)品 L6470可簡化多電機(jī)控制系統(tǒng)的設(shè)計。這款新IC采用電壓控制模式,能夠以1/128微步進(jìn)管理用戶設(shè)置的運動曲線,而且這些操作對主微控制器的負(fù)荷影響微乎其微。在采用該控制器的系統(tǒng)中,因為微控制器只需向控制器發(fā)出高級運動命令,所以只用一個微控制器即可輕松管理多臺電機(jī)。
前言
意法半導(dǎo)體新推出的步進(jìn)電機(jī)控制芯片L6470在一顆芯片上集成了功率級和一個數(shù)字控制內(nèi)核。這款步進(jìn)電機(jī)控制芯片能夠通過SPI接口接收微控制器的運動曲線命令,按照預(yù)制的加速度和速度曲線自動執(zhí)行運動,還能自動加快電機(jī)的運轉(zhuǎn)速度,并使之保持預(yù)設(shè)的轉(zhuǎn)速。
該控制器的結(jié)構(gòu)如圖1所示??刂七壿嬰娐肥且粋€可以設(shè)置的狀態(tài)機(jī),能夠接收并保存各種參數(shù),例如:加速度、減速度、啟動轉(zhuǎn)速、轉(zhuǎn)速、相電流控制 (PWM)和步進(jìn)模式。從全步進(jìn)到1/128微步進(jìn),該控制器共支持8種步進(jìn)模式。內(nèi)部絕對位置計數(shù)器負(fù)責(zé)計算所選步進(jìn)模式的步進(jìn)或微步進(jìn)的數(shù)量,以相當(dāng)于該步進(jìn)模式的分辨率跟蹤電機(jī)轉(zhuǎn)子位置。每步旋轉(zhuǎn)1.8 度,1/128微步電機(jī)轉(zhuǎn)子旋轉(zhuǎn)一整圈后,位置計數(shù)器將自動增加25600(128 × 200步)。
所有的運動參數(shù)和命令都是通過SPI接口送到控制器??刂七壿嬰娐坟?fù)責(zé)解釋前進(jìn)步數(shù)等運動命令,控制電機(jī)從靜止開始做加速運轉(zhuǎn)再返回到停止?fàn)顟B(tài)所需的步進(jìn)時間和步數(shù)輸出,同時執(zhí)行命令中的步進(jìn)總數(shù)。該芯片還能給這些運動命令排隊和發(fā)送,進(jìn)行復(fù)雜的運動控制,從而能夠大幅減少微控制器的開銷。
圖1: 結(jié)構(gòu)框圖
運動和位置命令
數(shù)字內(nèi)核可執(zhí)行五種運動命令和4種停止命令:
Run (Direction, Speed) 加速運轉(zhuǎn)直到接到停止命令為止
Move (Direction, N_Steps) 沿命令方向運動N步
GoTo (Position) 沿最直接路徑運動到絕對位置
GoTo (Direction, Position) 沿指令方向運動到絕對位置
GoUntil (Act, Direction, Speed) 加速運轉(zhuǎn)直到有外部事件發(fā)生為止
SoftStop 減速直到停止
Hard Stop 緊急制動(無減速過程)
SoftHiZ 減速到停止,然后關(guān)閉電橋
HardHiZ 緊急制動,并關(guān)閉電橋
在開始任何運動之前,通過SIP接口使用SetParam命令設(shè)置運轉(zhuǎn)參數(shù):最低轉(zhuǎn)速、最高轉(zhuǎn)速、加速度、減速度以及其它運動參數(shù)值。為確保運動的完整性,在電機(jī)運動過程中,運動曲線的很多參數(shù)值是鎖定的,只能在電機(jī)被制動后才能更改這些參數(shù)。
圖2所示是Move命令的一個典型運動曲線。當(dāng)接收到一條 Move命令時,控制器將計算電機(jī)從靜止開始做加速運轉(zhuǎn)再返回到起始位置所需的步數(shù)N的運動曲線,整個過程都是由數(shù)字內(nèi)核硬件獨立完成的。
GoTo命令指示驅(qū)動器根據(jù)內(nèi)部22位絕對位置計數(shù)器的數(shù)值驅(qū)動電機(jī)旋轉(zhuǎn)到一個特定位置。 GoTo命令分為兩種:一種沿特定方向旋轉(zhuǎn);另一種是沿最直接路徑旋轉(zhuǎn),即確定以最少步數(shù)達(dá)到所需位置的運動方向。對于每步旋轉(zhuǎn)1.8度的1/128微步電動機(jī),22位計數(shù)器的解析率相當(dāng)于電機(jī)旋轉(zhuǎn)大約164周。即便齒輪減速比很大,有效解析率仍然在位置計數(shù)器的范圍內(nèi)。GoTo命令的運動曲線看起來與Move命令曲線相同,但是有一點不同,在GoTo命令中,達(dá)到命令指定的絕對位置所需步數(shù)是自動計算結(jié)果。
Run和GoUntil命令用于使電動機(jī)保持恒速旋轉(zhuǎn),直到接到一條制動命令 (適用于Run命令)或者有外部事件發(fā)生(適用于GoUntil)為止。當(dāng)接收到一條制動命令時,控制器執(zhí)行下面兩種操作之一:緊急制動或減速制動。該器件還能執(zhí)行緊急制動或減速停止,然后提供三態(tài)輸出。
圖 2:典型運動曲線
如圖3所示,使用一系列Run命令可以執(zhí)行復(fù)雜的運動。每接到一個新的Run命令后,控制器都會驅(qū)動電機(jī)做加速或減速旋轉(zhuǎn)到新命令指定的位置,并以指定速度保持旋轉(zhuǎn),直到接收到下一條Run命令或一條Stop命令為止。當(dāng)接收到一條反向運轉(zhuǎn)命令時,電機(jī)減到最低速度,然后再向相反方向加速運轉(zhuǎn)。
圖 3:多條Run命令可實現(xiàn)復(fù)雜運動
電壓控制式微步進(jìn)
通常情況下,步進(jìn)電機(jī)驅(qū)動電路是電流式控制設(shè)計,電流控制器監(jiān)測并控制繞組電流強(qiáng)度。這種結(jié)構(gòu)讓設(shè)計人員能夠在寬轉(zhuǎn)速范圍內(nèi)保持所需的轉(zhuǎn)矩,而且電源電壓波動很小。這種設(shè)計非常適合全步和半步驅(qū)動器,而且也易于實現(xiàn)。很多設(shè)計人員避免在微步進(jìn)驅(qū)動器中使用電壓控制方式,因為電源電壓變化導(dǎo)致峰流有很大變化,而且,隨著轉(zhuǎn)速提高,電機(jī)的反電動勢(EMF )也會增強(qiáng)。不過,利用數(shù)字控制技術(shù)可以修正這些不利因素。
為實現(xiàn)這種電壓控制式驅(qū)動電路,需要利用一個PWM計數(shù)器/定時器電路來控制輸出脈寬,以數(shù)字方式設(shè)置輸出占空比。L6470通過在電機(jī)繞組上施加電壓來控制相電流。雖然不能直接控制相電流的幅度,但是,相電流與相電壓的大小、負(fù)載、轉(zhuǎn)矩、電機(jī)電學(xué)特性和轉(zhuǎn)速密切相關(guān)。有效輸出電壓與電機(jī)電源電壓和KVAL系數(shù)的積成正比。KVAL的取值范圍是電源電壓的0%到100%。在微步進(jìn)驅(qū)動器中,這個最大值再乘以調(diào)制指數(shù),可產(chǎn)生所選步數(shù)的正弦波。峰值電壓由下面的公式得出:
VOUT = VS ⋅KVAL
KVAL值由下面的公式得出:
KVAL = (Ipk x R)/Vs
其中:
Ipk = 所需的峰流
Vs = 典型電源電壓
R = 電機(jī)繞組電阻
該器件的寄存器支持加速度、減速度、恒速運轉(zhuǎn)和保持位置等不同的 KVAL設(shè)置,在運動曲線每個部分輕松實現(xiàn)不同的轉(zhuǎn)矩設(shè)置。
BEMF補償
如果在整個轉(zhuǎn)速范圍內(nèi)始終向電機(jī)供給相同的峰值電壓,隨著電機(jī)轉(zhuǎn)速增加,電流強(qiáng)度會逐漸降低,因為電機(jī)的反電動勢BEMF會顯著降低施加到線圈上的電壓。圖4左邊的波形描述了沒有采用BEMF補償技術(shù)的電機(jī)工作狀況。從圖中不難看出,隨著電機(jī)轉(zhuǎn)速增加,BEM以線性方式提高,因為線圈上的電壓是實際施加的相電壓與BEMF電壓的差值,所以電流將會降低。
圖 4:有BEMF補償電路和無BEMF補償電路的相電流
為修正BEMF增加對電流的影響,該產(chǎn)品在KVAL系數(shù)中增加一個修正BEMF的因數(shù)。本質(zhì)上,就是在 KVAL初始設(shè)置值中增加一個修正值,以抵消BEMF的影響。由于BEMF直接與轉(zhuǎn)速成正比,因此這個修正值因數(shù)是一個斜率,根據(jù)這個斜率和電流轉(zhuǎn)速來計算實時修正值。該產(chǎn)品提供不同的修正值:第一個值是一個標(biāo)準(zhǔn)值,適用于電機(jī)從零轉(zhuǎn)速開始加速運轉(zhuǎn),直到相交轉(zhuǎn)速參數(shù)INT_SPEED設(shè)置的最高速度為止。在相交速度之上,可以用兩個附加的斜率調(diào)整標(biāo)準(zhǔn)斜率,一個用于恒速運轉(zhuǎn)和加速度,另一個則用于減速運轉(zhuǎn)。當(dāng) BEMF修正值設(shè)置適當(dāng)時,峰值電流在電機(jī)全程轉(zhuǎn)速范圍內(nèi)保持恒定,如圖4所示。圖6描述了當(dāng)一個電機(jī)加速運轉(zhuǎn)時的實際電流波形。
圖5: BEMF修正曲線
電源和相電阻修正
電機(jī)的電源電壓和相電阻是另外兩個影響相電流的主要因素。因為控制器采用電壓控制方式,對輸出占空比進(jìn)行控制,所以這兩個要素之中任何一個發(fā)生變化,都會影響相電流。
當(dāng)電機(jī)沒有穩(wěn)壓電源時,在從電源到電機(jī)驅(qū)動電路的電壓上會出現(xiàn)大量的脈動電壓。隨著電源電壓變化,電機(jī)電流也會波動。如果電源上的脈動電壓很大,當(dāng)電機(jī)電流變得太小時,電機(jī)很可能會停止運轉(zhuǎn)。該控制器內(nèi)置一個電源電壓修正電路,如圖7所示。在這個電路內(nèi),內(nèi)部模數(shù)轉(zhuǎn)換器負(fù)責(zé)測定電源電壓,然后由在數(shù)字內(nèi)核實現(xiàn)的修正算法計算修正因數(shù),將其施加到PWM占空比內(nèi),使輸出電壓值在整個電源電壓變化范圍內(nèi)保持恒定。
圖 7:電源修正
隨著電機(jī)發(fā)熱,相阻變化也會直接影響相電流。KTHERM設(shè)置用于修正電機(jī)內(nèi)部發(fā)熱導(dǎo)致的相阻變化。驅(qū)動器控制器的軟件可以監(jiān)測或估計電機(jī)溫度的升高狀況,設(shè)置KTHERM值,修正因為溫度升高而引起的電機(jī)相阻的變化。例如,可以使用一個簡單的算法測定在運轉(zhuǎn)間隔時電機(jī)停止運轉(zhuǎn)時的相阻,根據(jù)測量結(jié)果調(diào)整KTHERM值。
結(jié)論
L6470實現(xiàn)的功能讓設(shè)計人員可以實現(xiàn)電壓控制式微步進(jìn)驅(qū)動器,修正過去需要采用電流控制式驅(qū)動器才能解決的典型的系統(tǒng)問題。從總體上看,系統(tǒng)控制變得更加順暢,沒有電流控制式驅(qū)動器的常見限制性問題。使用數(shù)字化電壓控制式PWM方法,可以輕松實現(xiàn)每步最多128微步進(jìn) 的微步進(jìn)驅(qū)動器。電壓控制式解決方案的正弦波曲線更加精確,位置解析率高于電流控制式方法,電壓控制式操作可大幅降低系統(tǒng)諧振。此外,該器件實現(xiàn)的數(shù)字運動引擎能夠大幅降低系統(tǒng)微控制器的負(fù)荷,在多電機(jī)應(yīng)用環(huán)境中,無需另設(shè)一個專用微控制器。