馬達控製:加速和減速的設計關鍵
發布時間:2014-09-15 責任編輯:stone
【導讀】就DC馬達而言,通過升高電壓(如果使用脈寬調製,則增加占空比),可以控製馬達傳動軸達到某個指定速度的快慢。
就DC馬達而言,通過升高電壓(如果使用脈寬調製,則增加占空比),可ke以yi控kong製zhi馬ma達da傳chuan動dong軸zhou達da到dao某mou個ge指zhi定ding速su度du的de快kuai慢man。但dan是shi,如ru果guo是shi步bu進jin馬ma達da,則ze改gai變bian電dian壓ya不bu會hui對dui馬ma達da速su度du產chan生sheng任ren何he影ying響xiang。沒mei錯cuo,改gai變bian電dian壓ya大da小xiao可ke以yi改gai變bian繞rao組zu電dian流liu電dian荷he的de速su率lv,從cong而er改gai變bian步bu進jin馬ma達da的de最zui大da速su度du,但dan是shi,馬ma達da速su度du是shi由you繞rao組zu電dian流liu開kai關guan或huo者zhe整zheng流liu的de速su率lv所suo決jue定ding。
我們可以做這樣的假設嗎:步bu進jin馬ma達da是shi一yi些xie不bu需xu要yao受shou控kong加jia速su過guo程cheng的de機ji器qi?如ru果guo可ke以yi,那na麼me我wo們men就jiu可ke以yi無wu所suo顧gu忌ji地di讓rang步bu進jin馬ma達da工gong作zuo在zai任ren何he目mu標biao速su度du下xia嗎ma?事shi實shi是shi,相xiang比bi其qi他ta馬ma達da拓tuo撲pu結jie構gou,步bu進jin馬ma達da更geng加jia需xu要yao通tong過guo加jia速su和he減jian速su過guo程cheng來lai激ji勵li。以yi任ren意yi速su度du啟qi動dong步bu進jin馬ma達da,可ke能neng會hui帶dai來lai可ke怕pa的de後hou果guo。
本文中,我們假設讀者已熟悉如何利用市場上已有集成微步進驅動器,對步進馬達進行控製。步進驅動器(例如:TI DRV8818等)的輸出與方波(“步進輸入”)頻率成正比。每個“步進”脈衝均等於驅動器步進邏輯定義步進(即微步進)。因此,改變方波頻率,也會相應改變步進馬達的速率。
圖1顯示了某個馬達製造廠商的傳統步進速率/扭矩曲線圖,其中起始頻率fs為一個重要參數。我們必須知道,要想正常啟動這種特殊的馬達,必須使用一個小於fs的步進速率。使用大於fs的步進速率啟動馬達,可能會使馬達停轉,並失去同步性。一旦出現這種情況,馬達轉動控製將受到嚴重的影響。
表麵看起來,這是一個嚴重的問題,但實際卻很容易解決。您需要做的隻是讓馬達以某個低於fs的步進速率啟動,然後提高速度,直到達到目標速度為止。遵循這一原則以後,步進馬達便可以通過遠超fs的步進速率來驅動—隻要速度保持在所示扭矩/速度曲線以下。

圖1:雙極恒流步進馬達的扭矩/速度曲線
同樣重要的是,不能簡單地通過停止“步進”脈(mai)衝(chong)來(lai)讓(rang)馬(ma)達(da)停(ting)止(zhi)。相(xiang)反(fan),應(ying)把(ba)步(bu)進(jin)速(su)率(lv)從(cong)目(mu)標(biao)速(su)度(du)降(jiang)至(zhi)某(mou)個(ge)能(neng)使(shi)馬(ma)達(da)停(ting)止(zhi)下(xia)來(lai)且(qie)沒(mei)有(you)傳(chuan)動(dong)軸(zhou)慣(guan)性(xing)的(de)更(geng)低(di)速(su)率(lv),因(yin)為(wei)傳(chuan)動(dong)軸(zhou)慣(guan)性(xing)會(hui)引(yin)起(qi)多(duo)餘(yu)、wuyongdebujin。qingjizhu,ruguozaidingweiyingyongzhongshiyongbujinmada,zeruguomadazaiyinggaitingzhishihaijixuzhuandong,madachuandongzhoubianhuishiqudingwei。youyubihuanweizhifankuihenshaoyongyuqudongbujinmada,yinciquebaojinzhixingzhilingxingbujinzhiguanzhongyao。
加速/減速過程
weileshibujinmadacongqishisudujiasuzhimougeqiwangmubiaosudu,zhixuyizhouqixingjiangegaibiandangqiansudu。daduoshugongchengshidoushiyongweikongzhiqilaishixianbujinmadakongzhi。zuichangjiandeshixianfangfashizhishiyonglianggedingshiqi。diyigeshimeimiaobujin(SPS)定時器,用於產生一種精確的步進速率計時功能。另外一個是加速定時器,用於周期性地改變第一個定時器。
由於速度受到周期性改變,在本質上得到與時間相關的角速度(dv/dt)。這一過程被稱作加速度,即速度隨時間變化情況。圖2顯示了一個典型的基於微控製器的加速度分布圖放大圖,並描述了步進馬達加速至目標速度的過程。

圖2:典型加速過程放大圖
[page]SPS是我們希望獲得的每秒步進數,即馬達轉動的步進速率。必須對SPS定時器編程,實現以該速率發出脈衝。根據定時器的振蕩器頻率,典型方程式為:
其中SPS_timer_register為一個16位數字,它告訴定時器產生後續“步進”脈衝的所需時長,而timer_oscillator為一個常量,表示定時器的兆赫單位運行速度。
以函數形式將該方程式存儲起來,因為經常會用到它。為了理解它的工作過程,我們假設定時器振蕩器工作在8 MHz下,並且期望的馬達步進速率為200 SPS。根據該方程式,程序代碼使SPS_timer_register值等於40000。那麼,定時器每計時到40000,便產生一次“步進”脈衝。這會產生每秒200脈衝的定時器型輸出以及200SPS的傳動軸旋轉。
這種事件每次發生時,都會產生一次中斷,並且定時器被清空。“步進”輸入上升沿計時對於微步進驅動器精確度至關重要,但隻要其在下一個“步進”上升沿之前,下降沿幾乎隨時會出現。
定義加速度曲線需要兩個參數:(1)SPS值變化頻率;(2)SPS值變化程度。加速度曲線與這兩個參數成正比;也就是說,SPS值變化越頻繁,其值也越大,而加速度曲線也會越大起大落。加速度定時器同時控製這兩個參數:定時器函數起作用的次數與SPS值每秒的變化次數相同,另外,定時器的中斷服務程序(ISR)通過一個預先確定的因數定期增加當前SPS,從而確定新的速度。
使用每秒每秒步進(SPSPS),或者當前SPS速率改變的每秒次數,來測定加速速率。如果通過增加1來改變SPS值,則每次加速速率改變都必須調用(觸發)加速度定時器的ISR。例如,加速速率為1000 SPSPS時,馬達速度以200SPS開始,並周期性增加1,直至其達到1200SPS。那麼,加速度定時器的ISR需要調用1000次。
另外一種方法是,加速度定時器調用頻率減半,然後SPS周期性增加2。相比前一個例子,加速度定時器的ISR僅調用了500次,但馬達仍然以200SPS啟動,並在1秒內達到1200SPS。兩者的差別是更實時的可用性,但代價是分辨率下降。換句話說,為了達到999 SPSPS的精確加速速率,必須使用第一種方法。
bixuzailiangzhongfangfazhijianjinxingquanheng,yinweinindexuanzejuedinglekeyidadaoshenmeyangdemadagongzuozhiliang。liru,ruguoyaoqiuyouhenduoliduyidadaosuoyoukenengdejiasuduguocheng,zexuyaojinkenengditiaoyongjiasududingshiqideISR。
但是,在前麵的SPS定時器方程式中,存在除運算。根據所使用處理器內核的不同,這種除運算可能會極大限製ISR被有效調用並正確產生新SPS速率的次數。在使用TI MSP430且 CPU運行在16 MHz下的實現中,一次除運算耗時約500μs。結果,ISR每秒被調用的最大次數為2000次。這種限製決定了增量因數的大小。加速速率大於2000時,必須使用大於1的增量。
在(zai)馬(ma)達(da)啟(qi)動(dong)前(qian)不(bu)久(jiu),便(bian)進(jin)行(xing)一(yi)次(ci)加(jia)速(su)速(su)率(lv)計(ji)算(suan)。負(fu)責(ze)該(gai)計(ji)算(suan)的(de)軟(ruan)件(jian),確(que)定(ding)加(jia)速(su)度(du)定(ding)時(shi)器(qi)的(de)時(shi)間(jian)間(jian)隔(ge)和(he)增(zeng)量(liang)因(yin)數(shu)大(da)小(xiao),然(ran)後(hou)對(dui)各(ge)變(bian)量(liang)進(jin)行(xing)相(xiang)應(ying)的(de)配(pei)置(zhi)。同(tong)時(shi)使(shi)用(yong)這(zhe)些(xie)變(bian)量(liang),直(zhi)到(dao)對(dui)SPS速率的修改足以達到目標速度為止。一旦達到目標速度,加速終止。
減速過程與加速過程基本一致,但增量因數為負而非正的情況除外。另外,必須規定一個馬達能夠安全停止的新目標速度。
圖3顯示了一個加速/減速過程,其中,加速和減速速率對稱。也可以使用非對稱速率。

圖3:加速/減速過程
[page]位置控製
到dao目mu前qian為wei止zhi,在zai速su度du控kong製zhi環huan路lu中zhong操cao作zuo馬ma達da看kan似si十shi分fen簡jian單dan。馬ma達da達da到dao某mou個ge目mu標biao速su度du,然ran後hou在zai某mou個ge時shi刻ke收shou到dao停ting止zhi指zhi令ling。但dan是shi,當dang需xu要yao在zai某mou段duan預yu定ding時shi間jian內nei執zhi行xing某mou個ge預yu定ding步bu進jin數shu時shi,結jie果guo會hui怎zen樣yang呢ne?加jia速su/減jian速su過guo程cheng變bian得de比bi任ren何he時shi候hou都dou要yao重zhong要yao。在zai這zhe種zhong運yun行xing控kong製zhi拓tuo撲pu結jie構gou中zhong,所suo有you計ji劃hua步bu進jin都dou執zhi行xing完wan畢bi後hou馬ma達da便bian停ting止zhi,這zhe一yi點dian至zhi關guan重zhong要yao。規gui定ding步bu進jin數shu的de變bian量liang被bei稱cheng作zuo number_of_steps。
必須對馬達運動情況編碼,以使馬達在規定時間停止,不用等待減速命令。實現這個目標的一個方法是對一個名叫steps_to_stop的變量編程,使其小於number_of_steps。之後,軟件通過監測steps_to_stop,確定需要開始減速的時機。
在達到目標速度以前,加速會一直執行。達到目標速度後,在達到steps_to_stop計數(開始減速之時)以前,仍允許步進馬達運行。例如,1000步進運行時,steps_to_stop設置為800。因此,馬達通過一個加速過程啟動,持續運行至步進800,此時馬達開始減速,直到停止運行。
根據所有係統變量的配置,我們需要研究下列5種情況(參見圖 4):
情況1:在馬達達到目標速度以前所有步進結束;
情況2:馬達達到目標速度時所有步進結束;
情況3:達到停止速度以前所有步進結束;
情況4:達到停止速度時所有步進結束;
情況5:達到停止速度後所有步進結束。

圖4:5種加速/減速情況
恰好在達到停止速度時馬達停止(情況4)是一種理想情況。在達到停止速度前不久(情況3)或者以後(情況5)馬(ma)達(da)停(ting)止(zhi)是(shi)可(ke)以(yi)接(jie)受(shou)的(de),具(ju)體(ti)取(qu)決(jue)於(yu)出(chu)現(xian)這(zhe)些(xie)情(qing)況(kuang)時(shi)距(ju)離(li)理(li)想(xiang)情(qing)況(kuang)還(hai)差(cha)多(duo)少(shao)個(ge)步(bu)進(jin)。例(li)如(ru),如(ru)果(guo)馬(ma)達(da)轉(zhuan)動(dong)過(guo)快(kuai)時(shi)所(suo)有(you)步(bu)進(jin)結(jie)束(shu),則(ze)馬(ma)達(da)傳(chuan)動(dong)軸(zhou)可(ke)能(neng)會(hui)因(yin)轉(zhuan)動(dong)慣(guan)量(liang)而(er)失(shi)去(qu)位(wei)置(zhi)。但(dan)是(shi),如(ru)果(guo)在(zai)所(suo)有(you)步(bu)進(jin)執(zhi)行(xing)完(wan)以(yi)前(qian)達(da)到(dao)停(ting)止(zhi)速(su)度(du),則(ze)執(zhi)行(xing)該(gai)次(ci)馬(ma)達(da)運(yun)動(dong)控(kong)製(zhi)所(suo)需(xu)的(de)總(zong)時(shi)間(jian)會(hui)過(guo)長(chang)。
[page]
情況1和2僅為說明需要,應該不會出現,因為設計人員應始終確保steps_to_stop小於number_of_steps。了解所有可能出現的情況以後,設計人員可以簡單地對係統進行微調,以獲得最佳響應。
隻需少許微調的另一種方法是,將步進總數分割成幾個百分數,分配給每個加速/減速過程特定區域。在這種算法實現中,可選擇步進總數的20%用以對馬達加速,60%用以使馬達恒速運行,其餘20%用以對馬達減速(參見圖5)。如果number_of_steps為1000,則馬達以預設加速度加速200個步進,然後無論它達到何種步進速率都停止加速。之後,以這種速率執行600個步進,並且最後200個步進執行完全部減速過程。

圖5:基於百分比的加速/減速過程
請注意,使用這種算法時,假設正確選擇百分比的情況下,步進不可能在馬達運動過程的錯誤部分耗盡。就圖5所suo示shi例li子zi而er言yan,由you於yu加jia速su和he減jian速su部bu分fen都dou很hen平ping衡heng,因yin此ci馬ma達da最zui可ke能neng以yi相xiang同tong速su度du開kai始shi和he停ting止zhi。這zhe種zhong方fang法fa的de缺que點dian是shi,很hen難nan保bao證zheng達da到dao目mu標biao速su度du。如ru果guo目mu標biao速su度du不bu那na麼me重zhong要yao,則ze可ke以yi使shi用yong這zhe種zhong算suan法fa來lai確que保bao馬ma達da始shi終zhong在zai安an全quan速su度du下xia停ting止zhi。
如果速度達到對應用來說過慢,使用這種算法加速馬達傳動軸的唯一方法是,提高加速速率,或者增加加速/減速區域中使用的步進數百分比。但是,設計人員必須小心操作,不要讓馬達運行速度違反馬達扭矩/速度曲線。
結論
shuangjibujinmadajiasuhejiansu,shisuoyoubujinmadayingyongshejideguanjianbufen。jinguanzaiguoqushinianli,gonglvjikongzhiyidedaojidajianhua,danshijiasuhejiansuguochengyingyongchengxurengweicongyingyongchuliqilingyuxiaoshengniji。youyugesebujinmadajiejuefangandecunzai,nenggouzhengquechuliyingyongbujinmadayundongkongzhideyixiesuanfa,gengjiarongyibianmaheweitiao。tongguozhengquediduimadajiasuhejiansu,shejirenyuankeyiquebaoyingyonggaoxiaoyunxing,bingdadaogezhongguifanyaoqiu。
相關閱讀:
馬達控製中關鍵安全應用的解決方案
工業自動化方案:傳感器技術及馬達控製的實現
實例告訴你——如何使用 PolySwitch 器件保護馬達
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 具身智能成最大亮點!CITE 2026開幕峰會釋放產業強信號
- 助力醫療器械產業高質量發展 派克漢尼汾閃耀2026 ICMD
- 比異步時鍾更隱蔽的“芯片殺手”——跨複位域(RDC)問題
- 數據之外:液冷技術背後的連接器創新
- “眼在手上”的嵌入式實踐:基於ROS2與RK3576的機械臂跟隨抓取方案
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索






