你的位置:首頁 > 電源管理 > 正文

馬達(dá)控制:加速和減速的設(shè)計關(guān)鍵

發(fā)布時間:2014-09-15 責(zé)任編輯:stone

【導(dǎo)讀】就DC馬達(dá)而言,通過升高電壓(如果使用脈寬調(diào)制,則增加占空比),可以控制馬達(dá)傳動軸達(dá)到某個指定速度的快慢。

就DC馬達(dá)而言,通過升高電壓(如果使用脈寬調(diào)制,則增加占空比),可以控制馬達(dá)傳動軸達(dá)到某個指定速度的快慢。但是,如果是步進(jìn)馬達(dá),則改變電壓不會對馬達(dá)速度產(chǎn)生任何影響。沒錯,改變電壓大小可以改變繞組電流電荷的速率,從而改變步進(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á)更加需要通過加速和減速過程來激勵。以任意速度啟動步進(jìn)馬達(dá),可能會帶來可怕的后果。

本文中,我們假設(shè)讀者已熟悉如何利用市場上已有集成微步進(jìn)驅(qū)動器,對步進(jìn)馬達(dá)進(jìn)行控制。步進(jìn)驅(qū)動器(例如:TI DRV8818等)的輸出與方波(“步進(jìn)輸入”)頻率成正比。每個“步進(jìn)”脈沖均等于驅(qū)動器步進(jìn)邏輯定義步進(jìn)(即微步進(jìn))。因此,改變方波頻率,也會相應(yīng)改變步進(jìn)馬達(dá)的速率。

圖1顯示了某個馬達(dá)制造廠商的傳統(tǒng)步進(jìn)速率/扭矩曲線圖,其中起始頻率fs為一個重要參數(shù)。我們必須知道,要想正常啟動這種特殊的馬達(dá),必須使用一個小于fs的步進(jìn)速率。使用大于fs的步進(jìn)速率啟動馬達(dá),可能會使馬達(dá)停轉(zhuǎn),并失去同步性。一旦出現(xiàn)這種情況,馬達(dá)轉(zhuǎn)動控制將受到嚴(yán)重的影響。

表面看起來,這是一個嚴(yán)重的問題,但實(shí)際卻很容易解決。您需要做的只是讓馬達(dá)以某個低于fs的步進(jìn)速率啟動,然后提高速度,直到達(dá)到目標(biāo)速度為止。遵循這一原則以后,步進(jìn)馬達(dá)便可以通過遠(yuǎn)超fs的步進(jìn)速率來驅(qū)動—只要速度保持在所示扭矩/速度曲線以下。

圖1:雙極恒流步進(jìn)馬達(dá)的扭矩/速度曲線
 
圖1:雙極恒流步進(jìn)馬達(dá)的扭矩/速度曲線

同樣重要的是,不能簡單地通過停止“步進(jìn)”脈沖來讓馬達(dá)停止。相反,應(yīng)把步進(jìn)速率從目標(biāo)速度降至某個能使馬達(dá)停止下來且沒有傳動軸慣性的更低速率,因?yàn)閭鲃虞S慣性會引起多余、無用的步進(jìn)。請記住,如果在定位應(yīng)用中使用步進(jìn)馬達(dá),則如果馬達(dá)在應(yīng)該停止時還繼續(xù)轉(zhuǎn)動,馬達(dá)傳動軸便會失去定位。由于閉環(huán)位置反饋很少用于驅(qū)動步進(jìn)馬達(dá),因此確保僅執(zhí)行指令性步進(jìn)至關(guān)重要。

加速/減速過程

為了使步進(jìn)馬達(dá)從起始速度加速至某個期望目標(biāo)速度,只需以周期性間隔改變當(dāng)前速度。大多數(shù)工程師都使用微控制器來實(shí)現(xiàn)步進(jìn)馬達(dá)控制。最常見的實(shí)現(xiàn)方法是只使用兩個定時器。第一個是每秒步進(jìn)(SPS)定時器,用于產(chǎn)生一種精確的步進(jìn)速率計時功能。另外一個是加速定時器,用于周期性地改變第一個定時器。

由于速度受到周期性改變,在本質(zhì)上得到與時間相關(guān)的角速度(dv/dt)。這一過程被稱作加速度,即速度隨時間變化情況。圖2顯示了一個典型的基于微控制器的加速度分布圖放大圖,并描述了步進(jìn)馬達(dá)加速至目標(biāo)速度的過程。

圖2:典型加速過程放大圖
 
圖2:典型加速過程放大圖
[page]

SPS是我們希望獲得的每秒步進(jìn)數(shù),即馬達(dá)轉(zhuǎn)動的步進(jìn)速率。必須對SPS定時器編程,實(shí)現(xiàn)以該速率發(fā)出脈沖。根據(jù)定時器的振蕩器頻率,典型方程式為:

圖2:典型加速過程放大圖

其中SPS_timer_register為一個16位數(shù)字,它告訴定時器產(chǎn)生后續(xù)“步進(jìn)”脈沖的所需時長,而timer_oscillator為一個常量,表示定時器的兆赫單位運(yùn)行速度。

以函數(shù)形式將該方程式存儲起來,因?yàn)榻?jīng)常會用到它。為了理解它的工作過程,我們假設(shè)定時器振蕩器工作在8 MHz下,并且期望的馬達(dá)步進(jìn)速率為200 SPS。根據(jù)該方程式,程序代碼使SPS_timer_register值等于40000。那么,定時器每計時到40000,便產(chǎn)生一次“步進(jìn)”脈沖。這會產(chǎn)生每秒200脈沖的定時器型輸出以及200SPS的傳動軸旋轉(zhuǎn)。

這種事件每次發(fā)生時,都會產(chǎn)生一次中斷,并且定時器被清空。“步進(jìn)”輸入上升沿計時對于微步進(jìn)驅(qū)動器精確度至關(guān)重要,但只要其在下一個“步進(jìn)”上升沿之前,下降沿幾乎隨時會出現(xiàn)。

定義加速度曲線需要兩個參數(shù):(1)SPS值變化頻率;(2)SPS值變化程度。加速度曲線與這兩個參數(shù)成正比;也就是說,SPS值變化越頻繁,其值也越大,而加速度曲線也會越大起大落。加速度定時器同時控制這兩個參數(shù):定時器函數(shù)起作用的次數(shù)與SPS值每秒的變化次數(shù)相同,另外,定時器的中斷服務(wù)程序(ISR)通過一個預(yù)先確定的因數(shù)定期增加當(dāng)前SPS,從而確定新的速度。

使用每秒每秒步進(jìn)(SPSPS),或者當(dāng)前SPS速率改變的每秒次數(shù),來測定加速速率。如果通過增加1來改變SPS值,則每次加速速率改變都必須調(diào)用(觸發(fā))加速度定時器的ISR。例如,加速速率為1000 SPSPS時,馬達(dá)速度以200SPS開始,并周期性增加1,直至其達(dá)到1200SPS。那么,加速度定時器的ISR需要調(diào)用1000次。

另外一種方法是,加速度定時器調(diào)用頻率減半,然后SPS周期性增加2。相比前一個例子,加速度定時器的ISR僅調(diào)用了500次,但馬達(dá)仍然以200SPS啟動,并在1秒內(nèi)達(dá)到1200SPS。兩者的差別是更實(shí)時的可用性,但代價是分辨率下降。換句話說,為了達(dá)到999 SPSPS的精確加速速率,必須使用第一種方法。

必須在兩種方法之間進(jìn)行權(quán)衡,因?yàn)槟倪x擇決定了可以達(dá)到什么樣的馬達(dá)工作質(zhì)量。例如,如果要求有很多粒度以達(dá)到所有可能的加速度過程,則需要盡可能地調(diào)用加速度定時器的ISR。

但是,在前面的SPS定時器方程式中,存在除運(yùn)算。根據(jù)所使用處理器內(nèi)核的不同,這種除運(yùn)算可能會極大限制ISR被有效調(diào)用并正確產(chǎn)生新SPS速率的次數(shù)。在使用TI MSP430且 CPU運(yùn)行在16 MHz下的實(shí)現(xiàn)中,一次除運(yùn)算耗時約500μs。結(jié)果,ISR每秒被調(diào)用的最大次數(shù)為2000次。這種限制決定了增量因數(shù)的大小。加速速率大于2000時,必須使用大于1的增量。

在馬達(dá)啟動前不久,便進(jìn)行一次加速速率計算。負(fù)責(zé)該計算的軟件,確定加速度定時器的時間間隔和增量因數(shù)大小,然后對各變量進(jìn)行相應(yīng)的配置。同時使用這些變量,直到對SPS速率的修改足以達(dá)到目標(biāo)速度為止。一旦達(dá)到目標(biāo)速度,加速終止。

減速過程與加速過程基本一致,但增量因數(shù)為負(fù)而非正的情況除外。另外,必須規(guī)定一個馬達(dá)能夠安全停止的新目標(biāo)速度。

圖3顯示了一個加速/減速過程,其中,加速和減速速率對稱。也可以使用非對稱速率。

圖3:加速/減速過程
 
圖3:加速/減速過程
[page]

位置控制

到目前為止,在速度控制環(huán)路中操作馬達(dá)看似十分簡單。馬達(dá)達(dá)到某個目標(biāo)速度,然后在某個時刻收到停止指令。但是,當(dāng)需要在某段預(yù)定時間內(nèi)執(zhí)行某個預(yù)定步進(jìn)數(shù)時,結(jié)果會怎樣呢?加速/減速過程變得比任何時候都要重要。在這種運(yùn)行控制拓?fù)浣Y(jié)構(gòu)中,所有計劃步進(jìn)都執(zhí)行完畢后馬達(dá)便停止,這一點(diǎn)至關(guān)重要。規(guī)定步進(jìn)數(shù)的變量被稱作 number_of_steps。

必須對馬達(dá)運(yùn)動情況編碼,以使馬達(dá)在規(guī)定時間停止,不用等待減速命令。實(shí)現(xiàn)這個目標(biāo)的一個方法是對一個名叫steps_to_stop的變量編程,使其小于number_of_steps。之后,軟件通過監(jiān)測steps_to_stop,確定需要開始減速的時機(jī)。

在達(dá)到目標(biāo)速度以前,加速會一直執(zhí)行。達(dá)到目標(biāo)速度后,在達(dá)到steps_to_stop計數(shù)(開始減速之時)以前,仍允許步進(jìn)馬達(dá)運(yùn)行。例如,1000步進(jìn)運(yùn)行時,steps_to_stop設(shè)置為800。因此,馬達(dá)通過一個加速過程啟動,持續(xù)運(yùn)行至步進(jìn)800,此時馬達(dá)開始減速,直到停止運(yùn)行。

根據(jù)所有系統(tǒng)變量的配置,我們需要研究下列5種情況(參見圖 4):

情況1:在馬達(dá)達(dá)到目標(biāo)速度以前所有步進(jìn)結(jié)束;

情況2:馬達(dá)達(dá)到目標(biāo)速度時所有步進(jìn)結(jié)束;

情況3
:達(dá)到停止速度以前所有步進(jìn)結(jié)束;

情況4:達(dá)到停止速度時所有步進(jìn)結(jié)束;

情況5:達(dá)到停止速度后所有步進(jìn)結(jié)束。

圖4:5種加速/減速情況
 
圖4:5種加速/減速情況

恰好在達(dá)到停止速度時馬達(dá)停止(情況4)是一種理想情況。在達(dá)到停止速度前不久(情況3)或者以后(情況5)馬達(dá)停止是可以接受的,具體取決于出現(xiàn)這些情況時距離理想情況還差多少個步進(jìn)。例如,如果馬達(dá)轉(zhuǎn)動過快時所有步進(jìn)結(jié)束,則馬達(dá)傳動軸可能會因轉(zhuǎn)動慣量而失去位置。但是,如果在所有步進(jìn)執(zhí)行完以前達(dá)到停止速度,則執(zhí)行該次馬達(dá)運(yùn)動控制所需的總時間會過長。
[page]

情況1和2僅為說明需要,應(yīng)該不會出現(xiàn),因?yàn)樵O(shè)計人員應(yīng)始終確保steps_to_stop小于number_of_steps。了解所有可能出現(xiàn)的情況以后,設(shè)計人員可以簡單地對系統(tǒng)進(jìn)行微調(diào),以獲得最佳響應(yīng)。

只需少許微調(diào)的另一種方法是,將步進(jìn)總數(shù)分割成幾個百分?jǐn)?shù),分配給每個加速/減速過程特定區(qū)域。在這種算法實(shí)現(xiàn)中,可選擇步進(jìn)總數(shù)的20%用以對馬達(dá)加速,60%用以使馬達(dá)恒速運(yùn)行,其余20%用以對馬達(dá)減速(參見圖5)。如果number_of_steps為1000,則馬達(dá)以預(yù)設(shè)加速度加速200個步進(jìn),然后無論它達(dá)到何種步進(jìn)速率都停止加速。之后,以這種速率執(zhí)行600個步進(jìn),并且最后200個步進(jìn)執(zhí)行完全部減速過程。

圖5:基于百分比的加速/減速過程
 
圖5:基于百分比的加速/減速過程

請注意,使用這種算法時,假設(shè)正確選擇百分比的情況下,步進(jìn)不可能在馬達(dá)運(yùn)動過程的錯誤部分耗盡。就圖5所示例子而言,由于加速和減速部分都很平衡,因此馬達(dá)最可能以相同速度開始和停止。這種方法的缺點(diǎn)是,很難保證達(dá)到目標(biāo)速度。如果目標(biāo)速度不那么重要,則可以使用這種算法來確保馬達(dá)始終在安全速度下停止。

如果速度達(dá)到對應(yīng)用來說過慢,使用這種算法加速馬達(dá)傳動軸的唯一方法是,提高加速速率,或者增加加速/減速區(qū)域中使用的步進(jìn)數(shù)百分比。但是,設(shè)計人員必須小心操作,不要讓馬達(dá)運(yùn)行速度違反馬達(dá)扭矩/速度曲線。

結(jié)論

雙極步進(jìn)馬達(dá)加速和減速,是所有步進(jìn)馬達(dá)應(yīng)用設(shè)計的關(guān)鍵部分。盡管在過去十年里,功率級控制已得到極大簡化,但是加速和減速過程應(yīng)用程序仍未從應(yīng)用處理器領(lǐng)域銷聲匿跡。由于各色步進(jìn)馬達(dá)解決方案的存在,能夠正確處理應(yīng)用步進(jìn)馬達(dá)運(yùn)動控制的一些算法,更加容易編碼和微調(diào)。通過正確地對馬達(dá)加速和減速,設(shè)計人員可以確保應(yīng)用高效運(yùn)行,并達(dá)到各種規(guī)范要求。

相關(guān)閱讀:

馬達(dá)控制中關(guān)鍵安全應(yīng)用的解決方案

工業(yè)自動化方案:傳感器技術(shù)及馬達(dá)控制的實(shí)現(xiàn)

實(shí)例告訴你——如何使用 PolySwitch 器件保護(hù)馬達(dá)

要采購振蕩器么,點(diǎn)這里了解一下價格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉