《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于ARM Cortex-M3的運動控制系統(tǒng)與算法設(shè)計
基于ARM Cortex-M3的運動控制系統(tǒng)與算法設(shè)計
來源:微型機與應(yīng)用2013年第1期
朱 閣,鄭力新,林曉海
(華僑大學(xué) 信息科學(xué)與工程學(xué)院,福建 廈門361021)
摘要: 提出一種基于ARM Cortex-M3為核心的運動控制器的新運動控制方案,并給出關(guān)鍵算法。控制系統(tǒng)采用“ARM運動控制器+PC機”的結(jié)構(gòu)。PC機實現(xiàn)界面功能以及部分預(yù)處理功能,運動控制器則完成關(guān)鍵的算法與處理。在數(shù)控沖孔機控制上進(jìn)行的應(yīng)用表明,該系統(tǒng)具有較高的可行性。
Abstract:
Key words :

摘  要: 提出一種基于ARM Cortex-M3為核心的運動控制器的新運動控制方案,并給出關(guān)鍵算法。控制系統(tǒng)采用“ARM運動控制器+PC機”的結(jié)構(gòu)。PC機實現(xiàn)界面功能以及部分預(yù)處理功能,運動控制器則完成關(guān)鍵的算法與處理。在數(shù)控沖孔機控制上進(jìn)行的應(yīng)用表明,該系統(tǒng)具有較高的可行性。
關(guān)鍵詞: ARM Cortex-M3;運動控制系統(tǒng);算法

 在現(xiàn)代工業(yè)控制領(lǐng)域中,基于專用運動控制芯片或者DSP控制器的運動控制系統(tǒng)應(yīng)用較為廣泛[1],但成本較高。新興的ARM Cortex系列具有低功耗、低成本、高性能和開發(fā)環(huán)境優(yōu)秀的特點,不僅在功能上能夠滿足工控領(lǐng)域?qū)λ俣燃肮δ艿囊?,更具有很好的成本?yōu)勢。本文采用ARM Cortxe-M3處理器為運動控制器設(shè)計開放式運動控制系統(tǒng)[2-3],并在此硬件平臺上研究運動控制策略與關(guān)鍵算法,實現(xiàn)運動控制處理功能。
1 控制系統(tǒng)
1.1 控制系統(tǒng)硬件結(jié)構(gòu)

 系統(tǒng)采用“運動控制器+PC機”的開放式結(jié)構(gòu),如圖1所示。系統(tǒng)以ARM Cortex-M3微處理器作為核心處理芯片的運動控制器,與PC機構(gòu)成的多處理器結(jié)構(gòu),實現(xiàn)多軸步進(jìn)電機的控制。

 運動控制器主要由ARM Cortex-M3微處理器、存儲芯片、接口芯片以及外圍接口等構(gòu)成,如圖2所示。處理器芯片選用ST公司的STM32F103VCT6,其具有高性能、低成本、低功耗的特點,時鐘頻率最高能夠達(dá)到72 MHz,并擁有豐富的外圍設(shè)備和功能強大的定時器[4]。

 ARM Cortex-M3處理器主要實現(xiàn)數(shù)據(jù)處理、系統(tǒng)控制及中斷處理等。數(shù)據(jù)處理:對PC機下載的加工數(shù)據(jù)進(jìn)行進(jìn)一步處理,主要是如何將微小線段的端點坐標(biāo)、速度等信息通過特定算法轉(zhuǎn)變?yōu)轵?qū)動步進(jìn)電機驅(qū)動器的脈沖信號和方向信號。系統(tǒng)控制:按照要求完成模塊功能的分配與處理。中斷處理:完成定時器中斷、串口通信中斷、急停中斷、位置控制等。
1.2 控制系統(tǒng)軟件
    運動控制系統(tǒng)軟件程序主要有兩大部分,一是用于人機交互的界面程序,包括系統(tǒng)初始化模塊、參數(shù)設(shè)置模塊、模板選擇模塊以及顯示模塊等;二是為實現(xiàn)運動控制輸出的算法處理程序,主要包括速度前瞻性處理算法、坐標(biāo)變換與主軸判斷、脈沖分配以及兩軸聯(lián)動算法。
2 主要算法設(shè)計
 運動控制系統(tǒng)需要通過運動控制算法來獲得控制量的輸出,以達(dá)到對機械運動部件的控制[5]。本系統(tǒng)通過微小線段來擬合要加工的曲線,在PC機上進(jìn)行前端預(yù)處理得到加工圖形的坐標(biāo)位置、端點數(shù)、端點速度等數(shù)據(jù),并在運動控制器中進(jìn)一步處理[6-7]。系統(tǒng)的關(guān)鍵算法設(shè)計有:兩軸聯(lián)動的實現(xiàn)、速度前瞻性處理算法以及脈沖分配規(guī)劃。
2.1 兩軸聯(lián)動
 首先,根據(jù)X、Y軸的脈沖數(shù)來確定主從軸,脈沖數(shù)多的為主軸。為了實現(xiàn)聯(lián)動,則必須在同一時間內(nèi)將X、Y軸的脈沖數(shù)目發(fā)送完。
 兩軸聯(lián)動主要是靠3個定時器級聯(lián)來實現(xiàn),如圖3所示。其中,定時器2作為總線時鐘的分頻器,實現(xiàn)一個動態(tài)的“主時鐘”;定時器3和定時器4分別作為“主時鐘”的計數(shù)器,對定時器2產(chǎn)生的“主時鐘”進(jìn)行計數(shù),以產(chǎn)生符合系統(tǒng)所需脈寬的脈沖。

2.2 速度前瞻性處理[1,7]
 系統(tǒng)要加工的圓弧是由大量的微小線段來逼近的,為了保證這些微小線段在高速運行時能夠連續(xù)執(zhí)行,不出現(xiàn)停頓現(xiàn)象,系統(tǒng)在上位機的內(nèi)存中開辟一個空間,預(yù)先將加工的弧線數(shù)據(jù)讀出,存儲到該空間中,再根據(jù)設(shè)計好的步進(jìn)電機升降頻曲線對速度進(jìn)行預(yù)先規(guī)劃處理。預(yù)先規(guī)劃包括:相鄰直線段拐角速度優(yōu)化、減速點預(yù)測以及連續(xù)微小線段始末速度確定。
 在高速運動時,如果兩個微小線段的拐角處速度差很大,則會使得拐角處產(chǎn)生很大的加速度,有可能導(dǎo)致過沖甚至堵轉(zhuǎn)現(xiàn)象。因此在加工過程中,為使得連續(xù)微小線段的曲線加工流暢,必須保證微小線段間的速度過渡是連續(xù)的,不能發(fā)生突變。為保證軌跡精度并避免產(chǎn)生突變,兩個運動軸的速度變化率不能超過該軸電機的驅(qū)動能力。在該約束條件下需要對減速點進(jìn)行提前預(yù)測,從而保證每條小線段在運動到線段終點的時候能夠達(dá)到預(yù)定所能達(dá)到的最高速度,并且不會過沖。
 結(jié)合線段主軸的脈沖數(shù)目和升降頻曲線表,推算出到達(dá)該小線段末端能達(dá)到的最高速度和最低速度及該線段終點的速度范圍。再在這個范圍從最高速度開始檢查滿足速度不突變條件的速度作為該線段的末點速度,并將這個速度或者這個速度在升降頻曲線表中的相鄰速度作為下一條小線段的起始速度。通過該方式可以規(guī)劃出構(gòu)成整條曲線的微小線段的端點速度。而后再利用規(guī)劃好始末點速度來進(jìn)行主軸的加減速脈沖分配,確定減速點的位置就可以避免電機運動過程中出現(xiàn)的過沖。
2.3 脈沖分配規(guī)劃

 


 以X軸為主軸為例,根據(jù)主軸的起點速度(line1.begin)、終點速度(line1.end)、主軸脈沖數(shù)(line1.Xlength)以及設(shè)定好的升降頻曲線來規(guī)劃加速、勻速、減速的脈沖數(shù)[6]。具體算法如下:
如果起點速度和終點速度均為最大速度時,則加速和減速脈沖均為零,勻速脈沖數(shù)為整個主軸脈沖:line1.speed_yunsu=line1.Xlength。
 如果起點速度等于最大速度,終點速度小于最大速度時,則:
 line1.speed_up=0;
 line1.speed_down=Max_down2_VA(line1.end); (最高速度到終點速度需要的脈沖數(shù))
 line1.speed_yunsu=line1.Xlength-Max_down2_VA(line1.end);
 如果起點速度小于最大速度,終點速度等于最大速度時,則:
 line1.speed_up=VA_up2_Max(line1.begin);(從起始速度到最高速度需要的脈沖數(shù))
 line1.speed_down=0;            
 line1.speed_yunsu=line1.Xlength-VA_up2_Max(line1.begin);
 如果兩端的速度均小于最大速度時:
 當(dāng)主軸脈沖數(shù)大于等于起點加速到終點速度需要的脈沖數(shù)加上從最大速度降到終點速度脈沖數(shù),則運動脈沖的分配如下:
 line1.speed_up=VA_up2_Max(line1.begin);
 line1.speed_down=Max_down2_VA(line1.end);         

 line1.speed_yunsu=line1.Xlength- VA_up2_Max(line1.begin)-Max_down2_VA(line1.end);
 當(dāng)主軸脈沖數(shù)小于起點加速到終點的速度需要的脈沖數(shù)加上從最高速度降到結(jié)束點速度脈沖數(shù):若開始的速度小于末端速度則只有加速脈沖(等于主軸脈沖);若開始的速度大于末端速度則只有減速脈沖;若開始的速度等于于末端速度則只有勻速脈沖。
 以ARM Cortex-M3運動控制器替代傳統(tǒng)運動控制卡的運動控制系統(tǒng),降低了控制系統(tǒng)的成本,同時開闊了ARM Cortex-M3在運動控制領(lǐng)域的應(yīng)用。本文提供的方法已經(jīng)成功應(yīng)用于數(shù)控沖孔機的運動控制,實現(xiàn)了數(shù)控沖孔機的預(yù)定功能,充分證明了ARM Cortex-M3實現(xiàn)優(yōu)秀運動控制器的可行性。
參考文獻(xiàn)
[1] 鄭魁敬,高建設(shè).運動控制技術(shù)及工程實踐[M].北京:中國電力出版社,2009.
[2] 黃陽明,鄭力新.基于LPC2294和MCX314AS的經(jīng)濟(jì)型數(shù)控系統(tǒng)[J].微型機與應(yīng)用,2010,29(8):83-85.
[3] 金振林,黃大貴.基于ARM的高精高速運動控制[J].制造技術(shù)與機床,2007(5):42-44.
[4] 彭剛,秦志強.基于ARM Cortex-M3的STM32系列嵌入式微控制器應(yīng)用實踐[M].北京:電子工業(yè)出版社,2011.
[5] 龐牧野.嵌入式數(shù)控系統(tǒng)連續(xù)軌跡控制算法的研究與實現(xiàn)[D].成都:電子科技大學(xué),2011.
[6] 鄭灼,李興根.單片機控制的步進(jìn)電機升降頻規(guī)律與實現(xiàn)[J].微電機,1999(4).
[7] 劉青山,高霖.基于運動控制卡的PC數(shù)控進(jìn)給速度前瞻控制[J].機械科學(xué)與技術(shù),2009(9).

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。