關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于STM32的二維滑臺不規(guī)則軌跡精密控制

基于STM32的二維滑臺不規(guī)則軌跡精密控制

作者: 時間:2016-10-10 來源:網(wǎng)絡(luò) 收藏

摘要:在工業(yè)控制中,往往要求多個控制多維滑臺,且能同時進(jìn)行多維或者單維,這樣才能精確控制滑臺在多維上的軌跡。本文在分析STM32產(chǎn)生PWM波的頻率和時序以及控制原理的基礎(chǔ)上提出了一種通過程序設(shè)置實現(xiàn)定時器中斷控制PWM數(shù)量的方法,從而精確控制PWM波頻率及輸出特定個數(shù)的PWM波,在機(jī)車牽引梁數(shù)控磨削設(shè)備的實際項目中實現(xiàn)精確控制,并分析了系統(tǒng)的可靠性。該步進(jìn)電機(jī)方法可推廣到許多實際的應(yīng)用項目中。

本文引用地址:http://butianyuan.cn/article/201610/306632.htm

在現(xiàn)代工業(yè)控制中步進(jìn)電機(jī)的控制是滑臺控制的執(zhí)行機(jī)構(gòu)。區(qū)別于其他控制電機(jī)的最大特點是,它是通過輸入脈沖信號來進(jìn)行控制的,即電機(jī)的總轉(zhuǎn)動角度由輸入脈沖數(shù)決定,而電機(jī)轉(zhuǎn)速由脈沖信號的頻率決定。

在很多情況下需要讓步進(jìn)電機(jī)控制滑臺運(yùn)動非常精確的距離,且運(yùn)行軌跡是不規(guī)則的,運(yùn)行時速度需可調(diào)。本文首先介紹系統(tǒng)的硬件電路原理;分析了控制滑臺運(yùn)行的計算方法;在此基礎(chǔ)上提出了用定時器中斷的方法精確控制PWM數(shù)量;介紹了具體的軟件實現(xiàn)方法并分析了系統(tǒng)測試結(jié)果。

1 系統(tǒng)硬件設(shè)計

本論文基于機(jī)車牽引梁數(shù)控磨削設(shè)備的電控設(shè)計,此設(shè)備用來磨削一個帶弧線的六邊形物體,因此要求設(shè)計兩維滑臺的電控部分,以精密控制磨削頭的運(yùn)行軌跡,經(jīng)分析此軌跡呈不規(guī)則路線。系統(tǒng)硬件框圖如圖1所示,本系統(tǒng)的主控芯片是STM32F407,該芯片主頻高達(dá)168 MHz,PWM定時器的頻率同樣可以達(dá)到168 MHz,在頻率要求較高的設(shè)計中有較顯著的優(yōu)勢。同時對于定時器中斷控制PWM數(shù)量可以防止中斷嵌套,且可以顯著減少中斷現(xiàn)場保護(hù)的開銷,且該芯片支持SPI、CAN、I2C等多種協(xié)議。

a.jpg

主機(jī)和從機(jī)分別用兩臺兩相步進(jìn)電機(jī)來帶動X軸和Y軸滑臺,步進(jìn)電機(jī)用M860驅(qū)動器來驅(qū)動。STM32主控板給驅(qū)動器發(fā)送PWM信號、方向和使能信號,驅(qū)動器經(jīng)過光耦隔離并細(xì)分后來驅(qū)動步進(jìn)電機(jī)。本系統(tǒng)主機(jī)和從機(jī)之間用CAN總線來進(jìn)行通信,CAN總線具有實時性強(qiáng)、傳輸距離較遠(yuǎn)、抗電磁干擾能力強(qiáng)、成本低等優(yōu)點。主機(jī)和從機(jī)可以單獨運(yùn)行,只有當(dāng)需要的時候采用CAN總線來進(jìn)行同步。主機(jī)設(shè)置PWM的頻率、滑臺位置等數(shù)據(jù)以及發(fā)送開始運(yùn)行、停止運(yùn)行等信號,從機(jī)通過CAN總線接收相關(guān)數(shù)據(jù)和指令。當(dāng)從機(jī)結(jié)束運(yùn)行就會發(fā)送結(jié)束信號給主機(jī)。主機(jī)和從機(jī)之間通過CAN總線進(jìn)行同步。

2 系統(tǒng)軟件設(shè)計

2.1 的運(yùn)行模式

為研究對象,滑臺由步進(jìn)電機(jī)帶動,滑臺的運(yùn)行模式中包含了二維滑臺的單獨運(yùn)行和同時運(yùn)行,假設(shè)滑臺的齒距為10 mm(步進(jìn)電機(jī)轉(zhuǎn)動一圈,滑臺前進(jìn)10 mm)。

假設(shè)目標(biāo)滑臺前進(jìn)距離為L。驅(qū)動器細(xì)分倍數(shù)為、步進(jìn)電機(jī)總步數(shù)、PWM脈沖總個數(shù)為別為n、N、P。則

b.jpg

為了便于計算,此次設(shè)計將驅(qū)動器細(xì)分倍數(shù)設(shè)為5,則

P=N=100L (2)

即當(dāng)滑臺需要前進(jìn)距離為Lmm時,則步進(jìn)電機(jī)總步數(shù)以及PWM脈沖總個數(shù)也應(yīng)該為100 L。

如圖2所示是二維滑臺的不規(guī)則運(yùn)動軌跡,軌跡由直線、斜線、圓弧組成。各種軌跡實現(xiàn)方法如下:

c.jpg

1)斜線軌跡

由圖2可知,二維滑臺有同時運(yùn)動和結(jié)束的過程,對于斜線部分X軸滑臺運(yùn)距離為n1的過程中Y軸滑臺同時運(yùn)行距離為n2。有公式2可知X軸滑臺和Y軸滑臺運(yùn)行n1和n2的距離所需要的PWM的脈沖個數(shù)分別為P1、P2則有P1=100n1,P2=100n2,以X軸為基準(zhǔn),則

n2=n1·cosα (3)

P2=P1cosα (4)

STM32定時器產(chǎn)生的PWM頻率由系統(tǒng)時鐘f、預(yù)分頻值M、計數(shù)周期T決定,系統(tǒng)時鐘f和和預(yù)分頻值M不變,以改變計數(shù)周期T來改變PWM的頻率。

以X軸滑臺為基準(zhǔn),Tx、Ty分別為X和Y軸定時器計數(shù)周期,Vx、Vy分別為X軸和Y軸定時器頻率,則有

d.jpg

2)單滑臺運(yùn)動軌跡

如圖2所示,對于距離為n3的部分,由于只需要在X軸方向上運(yùn)動,由公式2可知需要的PWM數(shù)量為100n3,因此只需要設(shè)置X軸定時器的PWM頻率為固定值。并且計數(shù)100n3個PWM數(shù)量然后停止,軌跡在X軸方向上運(yùn)動的距離就為n3。

而對于距離為n4的部分,和n3部分唯一不同的地方就是此時只需在Y軸方向運(yùn)動。因此只需要設(shè)置Y軸定時器的PWM頻率為固定值,并且計數(shù)100n4個PWM然后停止。

3)圓弧軌跡

而圓弧部分是以直線切割的方式實現(xiàn)的,圓弧角度為90度,D點是圓弧的中心點,圓弧半徑為55 mm。

D點以上以X軸為基準(zhǔn),假設(shè)X軸定時器產(chǎn)生的PWM頻率為,每輸出100個PWM時Y軸定時器頻率變換一次。假設(shè)A點變換了n-1次PWM,而B點變換了n次PWM,則A點坐標(biāo)為(100(n-1),Ya),B點坐標(biāo)為(100n,Yb),圓弧半徑為R,則有

e.jpg

但是由于圓弧中點對應(yīng)的X軸的PWM數(shù)量往往不是100的倍數(shù),所以假設(shè)C點是離中點D最近的點,C點變換了m次PWM,則C點X軸坐標(biāo)為100m,D點X和Y軸的坐標(biāo)e1.jpg都為,則有

f.jpg

在D點以下以Y軸為基準(zhǔn),假設(shè)Y軸定時器產(chǎn)生的PWM頻率為Vy固定不變,每輸出100個PWM時X軸定時器頻率變換一次。假設(shè)E點變換了i-1次 PWM,而F點變換了i次PWM,則E點坐標(biāo)為(Xe,Yd-100(i-1)),F(xiàn)點坐標(biāo)為(Xf,Yd-100i),圓弧半徑為R,則有

g.jpg

通過式(8)、(11)、(19),在程序的每一步中設(shè)置Tx、Ty的值來實現(xiàn)X、Y軸滑臺以所要求的軌跡運(yùn)動。

2.2 統(tǒng)軟件流程圖

如圖3所示是系統(tǒng)軟件的流程圖,系統(tǒng)在初始化時為了防止意外的碰撞,需要尋找零點,尋找零點結(jié)束后進(jìn)行滑臺轉(zhuǎn)速、軌跡中每一步PWM數(shù)量的設(shè)置,并通過 CAN總線將設(shè)置的數(shù)據(jù)發(fā)送給從機(jī)。設(shè)置完成后,當(dāng)主機(jī)檢測到物件過來的信號后,將開始運(yùn)行的信號通過CAN總線發(fā)送給從機(jī),使主機(jī)與從機(jī)同時開始運(yùn)行,當(dāng)從機(jī)運(yùn)行完成后發(fā)送反饋信號給從機(jī),主從機(jī)同時停止運(yùn)行。當(dāng)一次運(yùn)行完成以后看情況確定是否需要重新設(shè)置參數(shù),如果需要重新設(shè)置則進(jìn)入滑臺運(yùn)行軌跡參數(shù)設(shè)置狂態(tài),否則進(jìn)入等待運(yùn)行狀態(tài)。

h.jpg

在主從機(jī)運(yùn)行過程中,由滑臺運(yùn)行模式可知,滑臺是以不規(guī)則的軌跡運(yùn)行的。因此根據(jù)滑臺的運(yùn)行模式,在每一步運(yùn)行之前需要計算滑臺運(yùn)行的距離及兩個滑臺的PWM頻率。

3 系統(tǒng)測試

將該系統(tǒng)運(yùn)用到實際的環(huán)境中,以垂直于地面放置的二維滑臺為研究對象,使滑臺以圖2中的軌跡運(yùn)行。在設(shè)備運(yùn)行的起始點做標(biāo)記,設(shè)置滑臺運(yùn)行在90秒/圈,45秒/圈30秒/圈三種速度下,并且分別運(yùn)行10圈,15圈,20圈,25圈得到運(yùn)行結(jié)束時與起始點的距離,如表1所示,同樣轉(zhuǎn)速時轉(zhuǎn)動圈數(shù)越多誤差越大;轉(zhuǎn)動相同圈數(shù)的情況下,滑臺轉(zhuǎn)速越高誤差也是越大。

i.jpg

經(jīng)過實際分析得出,這些誤差是由兩方面造成的。一方面,由于滑臺是垂直于地面放置,滑臺在下降過程中難免會因為重力的作用而下降。另一方面,在定時器輸出 PWM數(shù)量固定的情況下,由于在系統(tǒng)運(yùn)動過程中需要改變經(jīng)常需要改變PWM的頻率,而改變一次PWM的頻率會有1個CLOCK的延遲。

4 結(jié)束語

本文介紹了用STM32控制滑臺運(yùn)行的計算方法,在此基礎(chǔ)上提出了用定時器中斷的方法精確控制PWM數(shù)量。通過精密控制X軸和Y軸的滑臺,使磨削頭能以直線、斜線和弧線的軌跡精確運(yùn)動,達(dá)到成功磨削工件的目的。經(jīng)過實際的測試表明該系統(tǒng)工作穩(wěn)定,精確度較高。

本次設(shè)計是二維的滑臺,但設(shè)計的思想和方法也可推廣到三維滑臺的控制設(shè)計。要想獲得更精確的步進(jìn)電機(jī)控制,可考慮使用DSP作為主控芯片,從而可以有更高的運(yùn)算速度和控制精度。本論文精確控制兩維滑臺運(yùn)行軌跡的方法可推廣應(yīng)用到許多步進(jìn)電機(jī)控制的項目中,比如本實驗室另一個項目——顯微鏡電動載物臺的精密控制。

  • STM32單片機(jī)中文官網(wǎng)
  • STM32單片機(jī)官方開發(fā)工具
  • STM32單片機(jī)參考設(shè)計


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉