時間:2012-07-11 16:25:56來源:張英菊
摘要:分析了影響步進電機定長精度的兩個重要因素,采用ATmega128微控制器設(shè)計了一種單軸步進電機定長控制器。一方面,引入點動微調(diào)粗調(diào)方法將零點標(biāo)定誤差控制在最小誤差限內(nèi);另一方面,綜合階梯型和直線型曲線實現(xiàn)加減速控制,兼顧加減速平滑性能和定長時間。實驗結(jié)果表明,該控制器引入點動微調(diào)粗調(diào)和加減速后,定長精度較高,定位速度快,定長時間可靈活配置,特別適合一維定長定位應(yīng)用場合。
關(guān)鍵詞:步進電機;定長控制;加減速;微調(diào)粗調(diào);ATmega128
Abstract: Analysing two important factors of the accuracy of step motor length control, author designed a single-axis step motor length controller based on microcontroller ATmega128. On the one hand, the method of jog fine tuning and jog coarse tuning is used to limit the error value of point zero calibration as small as possible; On the other hand, taking into account the acceleration and deceleration smooth performance and length control time, the ladder curve and the linear curve are integrated to implement the acceleration and deceleration control. The experimental results shows that the length controller has a good performance of high accuracy positioning, fast speed positioning and flexible control time and it‘ very suitable for the one-dimensional length positioning applications.
Key words: step motor; length control; acceleration and deceleration; fine tuning and coarse tuning; ATmega128
1 引言
步進電機是純粹的數(shù)字控制電動機,其角位移和角速度分別與輸入脈沖數(shù)和脈沖頻率成正比,開環(huán)狀態(tài)下控制簡單方便,在定長定位場合得到了廣泛的應(yīng)用[1]。步進電機的定長控制往往是以參考零點為初始位置配合一定的加減速算法得以實現(xiàn)的,因此其定長定位精度受兩個因素影響。第一個因素是零點標(biāo)定的精確性,零點標(biāo)定精度越高定位誤差越小,反之定位誤差越大。通常有傳感器法、專用芯片法和直接歸零法來實現(xiàn)零點標(biāo)定,傳感器法對傳感器的安裝精度有較高要求,而后兩者都需要在目標(biāo)零點安裝擋板,這對電機有一定沖擊。第二個因素是加減速的平滑性能,加速度越大定位時間越短卻容易丟步,反之定位時間越長但可有效避免丟步。目前有階梯型、直線線和S型曲線算法來實現(xiàn)加減速控制[2]。階梯型曲線算法將加減速階段的總步數(shù)均分給若干頻率段,加速度物理意義不明顯,頻率臺階大容易造成電機丟步;直線型曲線算法中加減速階段每個頻率只走一步,加速度恒定但均分過細(xì)導(dǎo)致在線計算量過大或者存儲量過大;S型曲線算法平滑性能均要比前兩者都好,實現(xiàn)起來比較復(fù)雜。
本文以兼顧精度和響應(yīng)速度為目標(biāo),采用ATmega128微控制器設(shè)計一種單軸步進電機定長控制器。第一,引入點動微調(diào)粗調(diào)到直接歸零法中來提高零點標(biāo)定的精確性;第二,綜合階梯型和直線型曲線算法,保持加速度的恒定以及減少計算量,縮短定位時間。
2 定長控制器的硬件結(jié)構(gòu)
步進電機定長控制系統(tǒng)的硬件結(jié)構(gòu)圖如圖1所示,由定長控制器(虛線框所示)、驅(qū)動器和步進電機組成。該定長控制器只輸出脫機、方向、脈沖、公共信號并接收限位開關(guān)信號,它結(jié)合步進驅(qū)動器以及步進電機組成定長控制系統(tǒng)。
圖1 步進電機定長控制系統(tǒng)硬件結(jié)構(gòu)圖
該定長控制器采用ATmega128[3]單片機作為核心控制單元,其128KB的Flash和4KB的EEPROM足夠滿足步進電機定長定位需求。3×6矩陣鍵盤模塊中包括0~9數(shù)字、系統(tǒng)、確定、返回、清除等按鍵,6根列線通過內(nèi)部上拉到PB0~PB5引腳,3根行線直接接到PE5~PE7,利用行掃描實現(xiàn)對按鍵的檢測;獨立式按鈕模塊中包括電源開關(guān)、調(diào)試、點動正、點動反、歸零、急停等按鈕,通過5KΩ電阻上拉到電源;段式液晶顯示模塊包括一塊6位8字的靜態(tài)驅(qū)動段式液晶屏EDS810、LED指示燈以及7片級聯(lián)的串入并出芯片74HC595,其中6片用來驅(qū)動液晶屏每一位的段碼,最后一片驅(qū)動LED指示燈,利用PC0~PC3對該模塊進行驅(qū)動。微控制器ATmega128從PA7和PA6輸出脫機和方向信號,從PE4輸出脈沖信號,這三路信號經(jīng)過74LS07高壓驅(qū)動芯片放大后送給外部驅(qū)動器。
3 定長控制器的軟件設(shè)計
重點介紹軟件設(shè)計中的點動微調(diào)粗調(diào)和加減速曲線的實現(xiàn),以便兼顧定長定位精度和定長時間。
3.1點動微調(diào)粗調(diào)的實現(xiàn)
采用點動微調(diào)粗調(diào)引入到直接歸零法來減小零點標(biāo)定誤差,提高定位精度。點動微調(diào)粗調(diào)實質(zhì)上是一種分辨率為單位Hz、調(diào)節(jié)范圍為fmin~fmax的點動運行方式。在這種運行方式中,按住點動按鈕時定長控制器發(fā)送脈沖驅(qū)動電機運轉(zhuǎn),松開點動按鈕時定長控制器停止發(fā)送脈沖制動電機。點動微調(diào)粗調(diào)有兩個好處:第一:調(diào)節(jié)范圍連續(xù)平滑,在調(diào)節(jié)范圍內(nèi)可設(shè)置任意頻率來驅(qū)動電機,適合于不同負(fù)載場合;第二,步進精度高,當(dāng)點動頻率設(shè)置為fmin時,其最低的驅(qū)動頻率可以達到10Hz,假設(shè)點動持續(xù)時間為0.5s,則步進電機轉(zhuǎn)動了5個步距角(如果沒有細(xì)分驅(qū)動),精細(xì)的步距角可以保證零點標(biāo)定誤差在一個比較小的絕對誤差限中。點動微調(diào)粗調(diào)的具體做法是,在目標(biāo)零點安裝擋板、刻線等零點指示標(biāo)志,設(shè)置一個比較高的頻率進行粗調(diào)驅(qū)動步進電機旋轉(zhuǎn)逼近目標(biāo)零點,然后以一個比較低的頻率反復(fù)進行微調(diào),直到步進電機運行到零點指示標(biāo)志處。
3.2加減速曲線算法的實現(xiàn)
采用加減速控制的目的是克服步進電機在啟動和制動階段的慣性力矩,防止啟動丟步和制動過沖,因此良好的加減速控制對定位精度意義重大。結(jié)合階梯型和直線型加減速曲線,來實現(xiàn)對步進電機啟動階段的加速控制和制動階段的減速控制。加速時,在給定的加速a下步進電機從最大啟動頻率f1開始運行△S1個步距角切換到f2,f2運行△S2個步距角切換到f3,…,直至切換到設(shè)定頻率fs,fn-1、fn、△Sn以及a滿足勻直線加速的約束;減速時,控制步驟與加速時步驟相反。
介紹加減速曲線算法的具體實現(xiàn)。約定初始狀態(tài)為:最大啟動頻率為f1=1000Hz,設(shè)定頻率fs為最大運行頻率為fmax=20000Hz,初始步進間隔為△S1=30,加速度a=1000Hz/s,由式子fn2=f12+2aS,并根據(jù)每個頻率段上定的步數(shù)△S,可以推算出總步數(shù)S、該段上的運行頻率fn。
(1)取△S1=30,則S=30,f22=10002+2×1000×30,推出f2=1030(Hz);
(2)取△S2=30,則S=60,f32=10002+2×1000×60,推出f3=1058(Hz);
(3)取△S3=30,則S=90,f42=10002+2×1000×90,推出f4=1086(Hz);
(以后每隔5個頻率段,△Sn就增加30步)
……
(255)取△S255=1530,則S=198900,f2562=10002+2×1000×198900,推出f256=19970(Hz);
(256)取△S256=1560,則S=200460,f2572=10002+2×1000×200460,推出f257=20048(Hz);由于20048(Hz)>20000(Hz),計算停止。將上面得到的總步數(shù)S,分段頻率fn,分段步數(shù)△Sn形成一張步進電機加減速步進頻率和步進間隔表,如表1所示。
表1 步進電機加減速步進頻率和步進間隔表
加速時,從啟動頻率f1至設(shè)定頻率fs依次取步進頻率fn和步進間隔△Sn,實時判斷是否需要更新步進頻率和步進間隔;加速完畢后如果存在勻速階段,以設(shè)定頻率fs勻速運行至減速點;減速時,從設(shè)定頻率fs至啟動頻率f1依次取fn和△Sn,實時判斷是否需要更新步進頻率和步進間隔,當(dāng)f1的步進間隔走完時電機立刻制動。
3.3定長控制方案
結(jié)合設(shè)定參數(shù)和加減速曲線來實現(xiàn)步進電機的定長控制,設(shè)定參數(shù)通常包括長度L(脈沖數(shù))、速度fs(Hz)、加速度等級an(n取1~5)以及方向等。首先,在定長控制器中內(nèi)置如圖2(a)所示的5條加減速曲線(取f1=1000Hz,fmax=20000Hz,an=(1000*n)Hz/s),用戶只能選擇這5種加速度當(dāng)中的一種,按照加減速曲線算法形成每條曲線的步進電機加減速步進頻率和步進間隔表,并存入ATmega128的Flash中。其次,根據(jù)加速度等級、速度、長度三個參數(shù)來判斷是否存在勻速階段。查表后計算出加速階段的總步數(shù)S,一般會出現(xiàn)四種情況:當(dāng)fs<= f1時,加減速沒有意義,步進電機直接以設(shè)定頻率fs啟動走完長度L;當(dāng)fs> f1且L>2S時,存在勻速階段,對步進電機實施如圖2(b)所示的軌跡控制;當(dāng)fs> f1且L=2S時,只存在加減速階段,對步進電機實施如圖2(c)所示的軌跡控制;當(dāng)fs> f1且L<2S時,參數(shù)設(shè)置欠合理,將設(shè)定速度fs替換為最大啟動頻率f1對步進電機實施如圖2(d)所示的軌跡控制,步進電機以f1直接啟動時電磁轉(zhuǎn)矩足夠大可以克服慣性力矩。
圖2 不同設(shè)定參數(shù)下的定長控制軌跡
3.4附加功能
步進定長控制器具有單位長度脈沖數(shù)設(shè)定、程序分組、分組延時、分組循環(huán)、掉電記憶以及歸零等功能。單位長度脈沖數(shù)是指單位長度對應(yīng)的脈沖數(shù)量,其設(shè)定值依步進電機軸端的連結(jié)結(jié)構(gòu)不同而不同;一個目標(biāo)對象可能需要在不同位置進行切刀動作,程序分組可以滿足這個要求,每一條程序由長度、速度、方向、加速度等級四個參數(shù)組成,可以設(shè)定1~50條程序,可根據(jù)生產(chǎn)工藝一次編完程序;分組延時用來設(shè)定每條程序之間的延時時間,延時時間內(nèi)可以人工手動或者控制器自動對目標(biāo)對象切刀;分組循環(huán)是為了滿足連續(xù)加工多個目標(biāo)對象的要求,可以設(shè)定1~9999次循環(huán);掉電記憶主要將當(dāng)前的各個分組參數(shù)以及當(dāng)前的定長長度存入ATmega128的EEPROM中;歸零能夠?qū)崿F(xiàn)步進電機自動退回至目標(biāo)零點。
4 實驗結(jié)果及其分析
為了驗證基于ATmega128的單軸步進電機定長控制器的定長精度和定長時間,將其應(yīng)用于滾珠絲杠定長場合并對相關(guān)數(shù)據(jù)進行了測試和分析。測試平臺為定長控制器、SH2034D高壓高細(xì)分步進電機驅(qū)動器、85BYGH四相混合式步進電機以及行程為50cm的滾珠絲杠。
(1) 定長精度測試
定長控制前先完成滾珠絲杠零點標(biāo)定和單位長度脈沖換算。零點標(biāo)定采用點動微調(diào)粗調(diào)方法進行,將滾珠絲杠螺母調(diào)試至目標(biāo)零點;零點標(biāo)定后固定步進電機驅(qū)動器細(xì)分?jǐn)?shù)(固定為8細(xì)分)并進行單位長度脈沖換算,任意設(shè)定一單位長度脈沖數(shù)N1(如500個脈沖量/cm)和定長長度L1(如30.5cm),步進電機啟動后帶動滾珠絲剛并記錄絲杠螺母執(zhí)行長度L1’,重復(fù)上述步驟得到測量數(shù)據(jù)(L1’,N1*L1) 、(L2’,N2*L2)、…、(Ln’,Nn*Ln),利用最小二乘法計算優(yōu)化的單位長度脈沖數(shù)量Nopt并重設(shè)該參數(shù)。經(jīng)過實際測量和運算,單位長度脈沖量為565個脈沖量/cm。上述步驟結(jié)束后,選擇不同的加速度等級,設(shè)定好長度、速度、方向后測試絲杠螺母的執(zhí)行長度,測試結(jié)果如表2。
表2 定長長度設(shè)定值及測試值
(2)定長時間測試
定長時間由加速時間、勻速時間以及減速時間組成。對于存在加減速的情況,在給定的加速a、設(shè)定頻率fs以及設(shè)定長度Ls下,理論加速時間tr和理論減速時間td相等,其值等于tr=td=(fs-f1)/a,理論勻速時間為tm=(Ls*Nopt-(f1+fs)*tr)/fs,則理論定長時間tc=tr+td+tm。對于只不存在加減速的情況,理論定長時間tc= Ls*Nopt /fs。定長時間測試結(jié)果如表3。
表3 定長時間理論值及其測試值
(3)結(jié)果分析
表2的測試結(jié)果表明定長控制器有著較高的定長精度,所有測試值與設(shè)定值的絕對誤差穩(wěn)定在0.1cm附近;設(shè)定加速度和設(shè)定頻率偏高時,誤差有所偏高。表3的測試結(jié)果顯示定長時間測試值與理論值吻合度很高,這滿足步進電機加減速曲線算法規(guī)律,為用戶靈活控制定長時間提供了機會。值得注意的一點,表3中測試編號為2的數(shù)據(jù)中,由于設(shè)定頻率偏高而設(shè)定長度偏短步進電機將以f1直接勻速運動,這符合設(shè)計的定長控制方案。
5 結(jié)論
采用ATmega128的單軸步進電機定長控制器在滾珠絲杠應(yīng)用場合得到了良好的應(yīng)用,控制性能很高特別適合于一維定長定位場合。該控制器的優(yōu)勢在于:第一,采用點動微調(diào)粗調(diào)可以將零點誤差控制在幾個單位步距角內(nèi),間接提高了定長精度;第二,采用綜合了階梯型和直線型加減速曲線算法,參數(shù)設(shè)置合理時不僅可有效避免帶負(fù)載中的丟步或者過沖現(xiàn)象而且定長時間較短;第三,能夠根據(jù)輸入?yún)?shù)控制器可以智能地選擇合理定長控制方案;第四,加速物理意義明顯理論定長時間可計算,有助于用戶靈活配置定長時間。
標(biāo)簽:
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.connectcrack.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2025-06-09
2025-06-06
2025-05-19
2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11
rpi-image-gen:樹莓派軟件鏡像構(gòu)建的終...
2025-04-08