胡向東
摘 要為了實時檢測步進電機在運動過程中是否發(fā)生了失步或者堵轉(zhuǎn)情況,設(shè)計一種基于STM32的閉環(huán)檢測系統(tǒng)。系統(tǒng)中使用STM32F429微處理器向步進電機驅(qū)動器發(fā)送控制信號,并通過增量編碼器將步進電機的運動狀態(tài)反饋到STM32F429中,以此來構(gòu)成一個閉環(huán)的控制系統(tǒng)。使用該系統(tǒng)可以實時確定步進電機的運動狀態(tài),從而判斷出步進電機是否在運動的過程中發(fā)生了失步或者堵轉(zhuǎn)的情況。
關(guān)鍵詞步進電機;控制信號;閉環(huán)控制;增量編碼器;STM32F429
0 引言
步進電機是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件[1]。步進電機驅(qū)動器每接收到一個控制信號,就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的步距角。由于步進電機的轉(zhuǎn)動角度僅與其驅(qū)動信號的脈沖個數(shù)有關(guān),其控制過程非常簡單。步進電機每轉(zhuǎn)動一圈所需要的脈沖個數(shù)是固定的,因此其只有單步轉(zhuǎn)動過程中產(chǎn)生的單步誤差而沒有連續(xù)轉(zhuǎn)動產(chǎn)生的累積誤差。步進電機的這種特點使其在工業(yè)中的精確位置控制領(lǐng)域得到了廣泛的應(yīng)用。步進電機實現(xiàn)精確位置控制的前提條件是,其在轉(zhuǎn)動過程中不發(fā)生失步或者堵轉(zhuǎn)的情況。在實際應(yīng)用中,步進電機會由于其驅(qū)動頻率太高或者變化速度太快以及其驅(qū)動負載的改變而導(dǎo)致失步,從而使步進電機的位置控制精度下降,嚴(yán)重時會產(chǎn)生堵轉(zhuǎn),使步進電機無法正常工作。因此,對步進電機運動狀態(tài)的檢測便顯得十分重要。本文使用STM32F429微處理器作為主控制器構(gòu)成一個閉環(huán)的步進電機控制系統(tǒng)來對步進電機的運動狀態(tài)進行檢測,通過該系統(tǒng)可以實時檢測步進電機是否發(fā)生了失步或者堵轉(zhuǎn)的情況。
1 系統(tǒng)方案設(shè)計
用于檢測步進電機失步或者堵轉(zhuǎn)情況的步進電機閉環(huán)控制系統(tǒng)結(jié)構(gòu)如圖1所示。在該閉環(huán)控制系統(tǒng)中,STM32F429微處理器發(fā)送控制信號到步進電機驅(qū)動器;驅(qū)動器接收到該控制信號后,根據(jù)設(shè)定的驅(qū)動參數(shù)來驅(qū)動步進電機;步進電機通過聯(lián)軸器帶動增量編碼器進行轉(zhuǎn)動;增量編碼器在轉(zhuǎn)動過程中向STM32F429微處理器發(fā)送反饋信號;STM32F429對反饋信號進行處理后得出步進電機當(dāng)前的運動狀態(tài),并將該結(jié)果輸出到TFTLCD顯示屏上進行顯示。
2 步進電機驅(qū)動與信號反饋
步進電機選用雷賽公司生產(chǎn)的42HS03兩相混合式步進電機,該型號步進電機的基本步距角為1.8°,單步運動誤差為±5%。42HS03上有黑、綠、黃、橙、紅、藍、白、棕8根引出導(dǎo)線,對其進行驅(qū)動時,將黑、綠、黃、橙四根導(dǎo)線串聯(lián)構(gòu)成步進電機的A相繞組,將剩下的四根導(dǎo)線串聯(lián)構(gòu)成B相繞組,相繞組的具體串聯(lián)方式如圖2所示。
驅(qū)動器選用雷賽公司的高性能數(shù)字式兩相步進驅(qū)動器,型號為DM542S。該驅(qū)動器采用32位DSP技術(shù),利用驅(qū)動器上的撥碼開關(guān)既可以對常用的8檔電流進行選擇,也可以對16檔細分驅(qū)動進行選擇,其對控制信號的響應(yīng)頻率最高可達200kHz,具有過壓、短路等保護功能。該驅(qū)動器的強大功能使其能夠滿足大多數(shù)步進電機驅(qū)動應(yīng)用的場合。
驅(qū)動器DM542S接+24V電源,使用A+、A-兩個功率輸出端口來驅(qū)動42HS03步進電機的A相,使用B+、B-兩個端口驅(qū)動B相,驅(qū)動電流峰值設(shè)置為1.0A,平均值為0.7A。驅(qū)動器的細分設(shè)置為不細分,即步進電機以基本步距角進行轉(zhuǎn)動,每轉(zhuǎn)動200步所轉(zhuǎn)過的角度為360°。
驅(qū)動器通過信號引腳PUL+、PUL-來接收步進電機運動控制信號,使用DIR+、DIR-來接收轉(zhuǎn)動方向判斷信號。該運動控制信號與方向判斷信號由STM32F429的GPIO引腳PC6與PC7發(fā)送。由于STM32F429的GPIO引腳只能輸出3.3V的高電平,而DM542S所接收的高電平信號電壓不能低于3.5V,因此在其兩者之間連接一個可以輸出5V電壓的高速反相器74HC04。STM32F429與DM542S的連接電路如圖3所示。
增量編碼器型號選擇分辨率為2000脈沖/轉(zhuǎn)的為E6B2-CWZ3E,其最大轉(zhuǎn)速為每分鐘6000轉(zhuǎn),理論上能夠識別0.18°的轉(zhuǎn)角變化,其角度測量的精度很高。E6B2-CWZ3E支持+5V—+12V的寬范圍直流供電電壓,本文選擇+5V直流供電。E6B2-CWZ3E有A相、B相與Z相三路信號輸出端,其中A相與B相成正交輸出關(guān)系,即A相與B相信號在相位上相差90°[2-3],編碼器每轉(zhuǎn)過一個刻度,A相與B相就相應(yīng)輸出一個脈沖信號,當(dāng)編碼器每轉(zhuǎn)過一周,則A、B相各輸出2000個脈沖信號,而Z相此時僅輸出一個脈沖信號。將E6B2-CWZ3E的A、B兩相信號分別對應(yīng)連接到圖3中所示STM32F429的GPIO引腳PH2與PH3上,通過PH2與PH3的外部中斷來捕捉增量編碼器的反饋信號。
3 運動狀態(tài)檢測方法
在步進電機運動狀態(tài)的檢測方法借鑒了M法測量轉(zhuǎn)速原理。在規(guī)定時間內(nèi)測量增量編碼器產(chǎn)生的脈沖個數(shù),經(jīng)過計算后可得被測目標(biāo)的轉(zhuǎn)速,這種獲得轉(zhuǎn)速的方法被稱為M法[4]。在檢測步進電機失步或者堵轉(zhuǎn)的過程中,不需要計算轉(zhuǎn)速,只需在規(guī)定時間內(nèi)統(tǒng)計出增量編碼器產(chǎn)生的脈沖個數(shù),然后與理論值進行對比即可。如果實際脈沖個數(shù)與理論值的差值在規(guī)定的誤差范圍內(nèi),則判定步進電機沒有發(fā)生失步或者堵轉(zhuǎn)問題;如果二者的差值超出了規(guī)定的誤差范圍,則判定步進電機發(fā)生了失步或者堵轉(zhuǎn)問題。為了提高檢測的精度,避免誤判,采用4倍頻的方式接收增量編碼器的脈沖信號[5-7]。對A、B兩相信號的上升沿與下降沿均進行統(tǒng)計并將所有脈沖個數(shù)進行疊加。
由于設(shè)定了步進電機轉(zhuǎn)動一圈需要200步,也就是需要200個控制脈沖信號,而編碼器相應(yīng)的在理論上總共會產(chǎn)生8000個脈沖。也就是說,步進電機每轉(zhuǎn)動一步,STM32F429理論上可以接收到40個反饋脈沖信號,考慮到聯(lián)軸器安裝與電機振動帶來的測量誤差,規(guī)定接收到的反饋信號在25-55之間均有效。
4 結(jié)束語
通過設(shè)計步進電機的閉環(huán)控制系統(tǒng),可以實時檢測步進電機的運動狀態(tài),從而判斷步進電機是否發(fā)生失步或者堵轉(zhuǎn)情況。在設(shè)計中需要注意步進電機與增量編碼器之間的連接偏差要盡可能的小,以減小測量誤差,最好將二者固定在同一個基座上,步進電機固定要牢固,以減小其振動。STM32F429發(fā)送控制信號使用定時器的計數(shù)溢出中斷,在中斷發(fā)生后需要軟件清除其相應(yīng)的中斷標(biāo)志位。
參考文獻
[1]袁賽,王德輝,曹海麗,等.基于Multisim10的步進電機數(shù)控電路的分析和設(shè)計[J].電子設(shè)計工程,2013,21(23):69-72.
[2]孫小平.基于FPGA的增量式光電編碼器接口電路設(shè)計[J].自動化應(yīng)用,2017(12):6-8.
[3]梁學(xué)修,陳志,趙博.基于FPGA的電機轉(zhuǎn)速高精度測量技術(shù)研究[J].制造業(yè)自動化,2015,37(23):50-52.