雙極步進(jìn)馬達(dá)加速和減速過程應(yīng)用
引言
本文引用地址:http://www.ex-cimer.com/article/196374.htm就 DC 馬達(dá)而言,通過升高電壓(如果使用脈寬調(diào)制,則增加占空比),可以控制馬達(dá)傳動(dòng)軸達(dá)到某個(gè)指定速度的快慢。但是,如果是步進(jìn)馬達(dá),則改變電壓不會(huì)對(duì)馬達(dá)速度產(chǎn)生任何影響。沒錯(cuò),改變電壓大小可以改變繞組電流電荷的速率,從而改變步進(jìn)馬達(dá)的最大速度,但是,馬達(dá)速度是由繞組電流開關(guān)或者整流的速率所決定。
我們可以做這樣的假設(shè)嗎:步進(jìn)馬達(dá)是一些不需要受控加速過程的機(jī)器?如果可以,那么我們就可以無所顧忌地讓步進(jìn)馬達(dá)工作在任何目標(biāo)速度下嗎?事實(shí)是,相比其他馬達(dá)拓?fù)浣Y(jié)構(gòu),步進(jìn)馬達(dá)更加需要通過加速和減速過程來激勵(lì)。以任意速度啟動(dòng)步進(jìn)馬達(dá),可能會(huì)帶來可怕的后果。
本文中,我們假設(shè)讀者已熟悉如何利用市場(chǎng)上已有集成微步進(jìn)驅(qū)動(dòng)器,對(duì)步進(jìn)馬達(dá)進(jìn)行控制。步進(jìn)驅(qū)動(dòng)器(例如:TI DRV8818等)的輸出與方波(“步進(jìn)輸入”)頻率成正比。每個(gè)“步進(jìn)”脈沖均等于驅(qū)動(dòng)器步進(jìn)邏輯定義步進(jìn)(即微步進(jìn))。因此,改變方波頻率,也會(huì)相應(yīng)改變步進(jìn)馬達(dá)的速率。
圖 1 顯示了某個(gè)馬達(dá)制造廠商的傳統(tǒng)步進(jìn)速率/扭矩曲線圖,其中起始頻率fs為一個(gè)重要參數(shù)。我們必須知道,要想正常啟動(dòng)這種特殊的馬達(dá),必須使用一個(gè)小于 fs 的步進(jìn)速率。使用大于 fs 的步進(jìn)速率啟動(dòng)馬達(dá),可能會(huì)使馬達(dá)停轉(zhuǎn),并失去同步性。一旦出現(xiàn)這種情況,馬達(dá)轉(zhuǎn)動(dòng)控制將受到嚴(yán)重的影響。表面看起來,這是一個(gè)嚴(yán)重的問題,但實(shí)際卻很容易解決。您需要做的只是讓馬達(dá)以某個(gè)低于fs的步進(jìn)速率啟動(dòng),然后提高速度,直到達(dá)到目標(biāo)速度為止。遵循這一原則以后,步進(jìn)馬達(dá)便可以通過遠(yuǎn)超 fs 的步進(jìn)速率來驅(qū)動(dòng)—只要速度保持在所示扭矩/速度曲線以下。
圖 1 雙極恒流步進(jìn)馬達(dá)的扭矩/速度曲線
同樣重要的是,不能簡(jiǎn)單地通過停止“步進(jìn)”脈沖來讓馬達(dá)停止。相反,應(yīng)把步進(jìn)速率從目標(biāo)速度降至某個(gè)能使馬達(dá)停止下來且沒有傳動(dòng)軸慣性的更低速率,因?yàn)閭鲃?dòng)軸慣性會(huì)引起多余、無用的步進(jìn)。請(qǐng)記住,如果在定位應(yīng)用中使用步進(jìn)馬達(dá),則如果馬達(dá)在應(yīng)該停止時(shí)還繼續(xù)轉(zhuǎn)動(dòng),馬達(dá)傳動(dòng)軸便會(huì)失去定位。由于閉環(huán)位置反饋很少用于驅(qū)動(dòng)步進(jìn)馬達(dá),因此確保僅執(zhí)行指令性步進(jìn)至關(guān)重要。
加速/減速過程
為了使步進(jìn)馬達(dá)從起始速度加速至某個(gè)期望目標(biāo)速度,只需以周期性間隔改變當(dāng)前速度。大多數(shù)工程師都使用微控制器來實(shí)現(xiàn)步進(jìn)馬達(dá)控制。最常見的實(shí)現(xiàn)方法是只使用兩個(gè)定時(shí)器。第一個(gè)是每秒步進(jìn) (SPS) 定時(shí)器,用于產(chǎn)生一種精確的步進(jìn)速率計(jì)時(shí)功能。另外一個(gè)是加速定時(shí)器,用于周期性地改變第一個(gè)定時(shí)器。由于速度受到周期性改變,在本質(zhì)上得到與時(shí)間相關(guān)的角速度 (dv/dt)。這一過程被稱作加速度,即速度隨時(shí)間變化情況。圖 2 顯示了一個(gè)典型的基于微控制器的加速度分布圖放大圖,并描述了步進(jìn)馬達(dá)加速至目標(biāo)速度的過程。
圖 2 典型加速過程放大圖
SPS 是我們希望獲得的每秒步進(jìn)數(shù),即馬達(dá)轉(zhuǎn)動(dòng)的步進(jìn)速率。必須對(duì) SPS 定時(shí)器編程,實(shí)現(xiàn)以該速率發(fā)出脈沖。根據(jù)定時(shí)器的振蕩器頻率,典型方程式為:
其中SPS_timer_register 為一個(gè) 16 位數(shù)字,它告訴定時(shí)器產(chǎn)生后續(xù)“步進(jìn)”脈沖的所需時(shí)長(zhǎng),而 timer_oscillator 為一個(gè)常量,表示定時(shí)器的兆赫單位運(yùn)行速度。
以函數(shù)形式將該方程式存儲(chǔ)起來,因?yàn)榻?jīng)常會(huì)用到它。為了理解它的工作過程,我們假設(shè)定時(shí)器振蕩器工作在 8 MHz 下,并且期望的馬達(dá)步進(jìn)速率為 200 SPS。根據(jù)該方程式,程序代碼使 SPS_timer_register 值等于 40000。那么,定時(shí)器每計(jì)時(shí)到 40000,便產(chǎn)生一次“步進(jìn)”脈沖。這會(huì)產(chǎn)生每秒 200 脈沖的定時(shí)器型輸出以及 200SPS 的傳動(dòng)軸旋轉(zhuǎn)。
這種事件每次發(fā)生時(shí),都會(huì)產(chǎn)生一次中斷,并且定時(shí)器被清空。“步進(jìn)”輸入上升沿計(jì)時(shí)對(duì)于微步進(jìn)驅(qū)動(dòng)器精確度至關(guān)重要,但只要其在下一個(gè)“步進(jìn)”上升沿之前,下降沿幾乎隨時(shí)會(huì)出現(xiàn)。
定義加速度曲線需要兩個(gè)參數(shù):(1)SPS 值變化頻率;(2)SPS 值變化程度。加速度曲線與這兩個(gè)參數(shù)成正比;也就是說,SPS 值變化越頻繁,其值也越大,而加速度曲線也會(huì)越大起大落。加速度定時(shí)器同時(shí)控制這兩個(gè)參數(shù):定時(shí)器函數(shù)起作用的次數(shù)與 SPS 值每秒的變化次數(shù)相同,另外,定時(shí)器的中斷服務(wù)程序 (ISR) 通過一個(gè)預(yù)先確定的因數(shù)定期增加當(dāng)前SPS,從而確定新的速度。
使用每秒每秒步進(jìn) (SPSPS),或者當(dāng)前 SPS 速率改變的每秒次數(shù),來測(cè)定加速速率。如果通過增加 1 來改變 SPS 值,則每次加速速率改變都必須調(diào)用(觸發(fā))加速度定時(shí)器的 ISR。例如,加速速率為 1000 SPSPS 時(shí),馬達(dá)速度以 200SPS 開始,并周期性增加 1,直至其達(dá)到 1200SPS。那么,加速度定時(shí)器的 ISR 需要調(diào)用 1000 次。
另外一種方法是,加速度定時(shí)器調(diào)用頻率減半,然后 SPS 周期性增加 2。相比前一個(gè)例子,加速度定時(shí)器的 ISR 僅調(diào)用了 500 次,但馬達(dá)仍然以 200SPS 啟動(dòng),并在 1 秒內(nèi)達(dá)到 1200SPS。兩者的差別是更實(shí)時(shí)的可用性,但代價(jià)是分辨率下降。換句話說,為了達(dá)到 999 SPSPS 的精確加速速率,必須使用第一種方法。
必須在兩種方法之間進(jìn)行權(quán)衡,因?yàn)槟倪x擇決定了可以達(dá)到什么樣的馬達(dá)工作質(zhì)量。例如,如果要求有很多粒度以達(dá)到所有可能的加速度過程,則需要盡可能地調(diào)用加速度定時(shí)器的 ISR。
但是,在前面的 SPS 定時(shí)器方程式中,存在除運(yùn)算。根據(jù)所使用處理器內(nèi)核的不同,這種除運(yùn)算可能會(huì)極大限制 ISR 被有效調(diào)用并正確產(chǎn)生新 SPS 速率的次數(shù)。在使用 TI MSP430™ 且 CPU 運(yùn)行在 16 MHz下的實(shí)現(xiàn)中,一次除運(yùn)算耗時(shí)約 500 µs。結(jié)果,ISR 每秒被調(diào)用的最大次數(shù)為 2000 次。這種限制決定了增量因數(shù)的大小。加速速率大于 2000 時(shí),必須使用大于 1 的增量。
評(píng)論