關(guān)于步進(jìn)電機(jī)任意分度程序的編寫方法
關(guān)于步進(jìn)電機(jī)任意分度程序的編寫方法
很多人都認(rèn)為步進(jìn)電機(jī)是不能精密分度的,把伺服電機(jī)的驅(qū)動(dòng)方法過于的神化。就本人用步進(jìn)電機(jī)做分度盤的經(jīng)驗(yàn)。
很多人都認(rèn)為步進(jìn)電機(jī)是不能精密分度的,把伺服電機(jī)的驅(qū)動(dòng)方法過于的神化。就本人用步進(jìn)電機(jī)做分度盤的經(jīng)驗(yàn)來看,其實(shí)你只要懂得怎么去用步進(jìn)電機(jī),懂得怎么去寫程序,正常情況下的分度精度還是可以保證的。
步進(jìn)電機(jī)不管在什么場(chǎng)所應(yīng)用,有一點(diǎn)是必須要保證就是有足夠的扭矩。步進(jìn)電機(jī)就是一個(gè)大馬拉小車的東西。
正常情況下的啟動(dòng)時(shí)間,一般來說應(yīng)盡可能的拉長一些。啟動(dòng)的速度也不可以太快。啟停過快都可能會(huì)引起過沖的現(xiàn)象。在使用過程中,如果分度不完整,也就是正常要走一圈的,但是發(fā)現(xiàn)怎么弄都差那么一點(diǎn)點(diǎn),也就是有一個(gè)接縫,這種情況就是有傳說中的失步。解決失步的方法不外乎如下幾點(diǎn):
增加電機(jī)扭矩,加大驅(qū)動(dòng)器的電流;
降低運(yùn)行的最大轉(zhuǎn)速;
拉長啟動(dòng)時(shí)間;
減小啟動(dòng)轉(zhuǎn)速。
如果以上都沒有問題,那么就有可能是程序里面帶有無法分完的余數(shù)脈沖所產(chǎn)生的累計(jì)誤差了。
眾所周知,脈沖是以整數(shù)來計(jì)算,沒有哪里會(huì)出現(xiàn)半個(gè)脈沖的說法。但是往往就是這半個(gè)脈沖出了問題,如果一個(gè)圓分10等份,每個(gè)等份差半個(gè)脈沖不算個(gè)什么。20個(gè)等份,每個(gè)等份差半個(gè)脈沖可能也不是特別明顯。但是要分到50個(gè),100個(gè),500個(gè),nnn個(gè)等份時(shí),這樣每個(gè)等份差半個(gè)脈沖可就不是一個(gè)小數(shù)目了。在等份數(shù)越多時(shí),就算是每個(gè)等份差0.1個(gè)脈沖,都是一個(gè)天文數(shù)字。這就是很多人都認(rèn)為步進(jìn)電機(jī)無法做出精密的分度盤的原因了。這不僅僅是進(jìn)步電機(jī),就算是伺服電機(jī),同樣也存在這個(gè)問題----余數(shù)。
如下:步進(jìn)驅(qū)動(dòng)器的細(xì)分?jǐn)?shù)為64.那么電機(jī)每一圈的脈沖數(shù)為62x200=12800.
現(xiàn)在設(shè)定電機(jī)分成128等份,那么很好計(jì)算 12800/128=100.每個(gè)等份的脈沖數(shù)為100個(gè)脈沖。
但是如果我現(xiàn)在要求分成129等份,公式為:12800/129=99.2248062,也就是每個(gè)等份須要99.2248062個(gè)脈沖才能均分,如此計(jì)數(shù)去掉小數(shù)點(diǎn)余數(shù),那么這129個(gè)等份里總共將要誤差129X0.2248062=28.9999999個(gè)脈沖。相當(dāng)于這個(gè)圓就誤差了一個(gè)等份的1/4。
由于本人文化水平有限,通過了相當(dāng)長的時(shí)間去思考,終于解決了這個(gè)剩余脈沖數(shù)的處理方法。
以面說的例子為參考,電機(jī)脈沖數(shù)為12800為一圈,分成129等份。要求一圈走完的最大誤差不大于1個(gè)脈沖。
程序編寫方法如下:
設(shè)定電機(jī)脈沖數(shù),這個(gè)是死的,可以不寫。 12800或者其它數(shù)值。
設(shè)定要分的等份數(shù):129 代入數(shù)據(jù)寄存器D 或者V
計(jì)算出每個(gè)等份須要的整數(shù)脈沖數(shù):12800/129=99
精確計(jì)算出每個(gè)等份須要的脈沖數(shù),浮點(diǎn)運(yùn)算得到的結(jié)果是:12800/129=99.2248062
把99轉(zhuǎn)為浮點(diǎn)數(shù),得到數(shù)據(jù)為99.0
然后用99.2248062—99.0=0.2248062 這個(gè)計(jì)算公式得到了每個(gè)等份剩下脈沖數(shù)。
用剩下的脈沖數(shù)再乘上等份總數(shù):0.2248062x129=28.99999998.去掉小數(shù)點(diǎn),得到整數(shù)28.
用等份數(shù)減去28得到:129-28=101。本數(shù)據(jù)為加工過程中的等份數(shù)。
程序運(yùn)行到:己經(jīng)加了的等份大于101,也就是從102等份開始到129等份,這28個(gè)等份里面,每個(gè)等份加一個(gè)脈沖。也就是從102等份開始的脈沖數(shù)為99+1=100.
如上計(jì)算,在后28個(gè)等份里面,每個(gè)等份增加一個(gè)脈沖,也就是每個(gè)等份增加了1/100.
總結(jié):從上面的計(jì)算來看,如果不是要求絕對(duì)精密的加工,本程序加工出來的產(chǎn)品是完全滿足要求的。