閱讀 | 訂閱
閱讀 | 訂閱
控制系統(tǒng)

基于PC和FPGA的運(yùn)動(dòng)控制系統(tǒng)

星之球激光 來(lái)源:電子技術(shù)應(yīng)用2011年第4期2011-11-15 我要評(píng)論(0 )   

運(yùn)動(dòng)控制系統(tǒng)被廣泛地運(yùn)用于各個(gè)領(lǐng)域。傳統(tǒng)的運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)有基于PC的中央控制方式和基于微控制器的嵌入式控制方式等?;赑C的運(yùn)動(dòng)控制方式,由于其采用多任務(wù)操作...

運(yùn)動(dòng)控制系統(tǒng)被廣泛地運(yùn)用于各個(gè)領(lǐng)域。傳統(tǒng)的運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)有基于PC的中央控制方式和基于微控制器的嵌入式控制方式等?;赑C的運(yùn)動(dòng)控制方式,由于其采用多任務(wù)操作系統(tǒng),對(duì)處理器的分時(shí)復(fù)用會(huì)導(dǎo)致在運(yùn)行高速度和高控制頻率的系統(tǒng)時(shí),實(shí)時(shí)性得不到保證。而基于微控制器的運(yùn)動(dòng)控制系統(tǒng),由于處理器資源有限,對(duì)功能復(fù)雜系統(tǒng)的開(kāi)發(fā)帶來(lái)很大難度,往往系統(tǒng)中的某個(gè)子功能模塊就占用了整塊芯片的資源。

隨著計(jì)算機(jī)技術(shù)與嵌入式技術(shù)的日益發(fā)展,出現(xiàn)了各種架構(gòu)互異的運(yùn)控系統(tǒng)設(shè)計(jì)方案,其目標(biāo)都在于對(duì)系統(tǒng)的高速度與高精度的不斷追求?;谶@兩種技術(shù),本文提出了一種基于PC+FPGA的多功能主從式運(yùn)動(dòng)控制結(jié)構(gòu),實(shí)現(xiàn)運(yùn)控系統(tǒng)的分工。既滿足了系統(tǒng)的功能多樣性需求,又保證了高頻控制脈沖的生成以及系統(tǒng)運(yùn)行的實(shí)時(shí)性,同時(shí)還降低了系統(tǒng)維護(hù)與升級(jí)的難度[1-2]。

1 主從式運(yùn)動(dòng)控制系統(tǒng)

本系統(tǒng)的設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)兩軸聯(lián)動(dòng)的運(yùn)控系統(tǒng),主要由PC機(jī)、FPGA從控板和電機(jī)驅(qū)動(dòng)板三個(gè)部分構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖1所示。上位機(jī)(PC)的主要功能是對(duì)系統(tǒng)運(yùn)行過(guò)程進(jìn)行控制規(guī)劃和粗插補(bǔ)(曲線加工規(guī)劃)。FPGA從控板的主要功能是對(duì)加工進(jìn)行精插補(bǔ),在此二次插補(bǔ)完成后通過(guò)速度補(bǔ)償模塊對(duì)插補(bǔ)的執(zhí)行速度進(jìn)行補(bǔ)償,進(jìn)一步減小插補(bǔ)的偏差,產(chǎn)生直接用于驅(qū)動(dòng)步進(jìn)電機(jī)進(jìn)行直線/圓弧運(yùn)動(dòng)的脈沖信號(hào)。驅(qū)動(dòng)電路的作用是將脈沖控制信號(hào)進(jìn)行功率放大,以直接驅(qū)動(dòng)電機(jī),同時(shí)為了提高控制精度,可以使用其細(xì)分電路對(duì)電機(jī)的步進(jìn)進(jìn)行1、2、4、8次的細(xì)分。



主從模塊通過(guò)異步串行通信方式RS-232標(biāo)準(zhǔn)進(jìn)行通信。上位機(jī)將一條曲線分割成一組簡(jiǎn)單曲線(直線/圓弧)的執(zhí)行序列,使用自定義的編碼方式將信息下載到FPGA上。對(duì)應(yīng)地,F(xiàn)PGA上設(shè)計(jì)有接收并存儲(chǔ)這些編碼信息的功能模塊。

2 上位機(jī)主控軟件設(shè)計(jì)

上位機(jī)只需要將一條待加工曲線分解為精插補(bǔ)模塊可執(zhí)行的直線和圓弧的序列,以FPGA能夠識(shí)別的指令傳輸給從控板。以粗插補(bǔ)為目的,配套開(kāi)發(fā)了相應(yīng)所需的通信模塊、作為示教功能所需的命令控制模塊以及作為數(shù)控系統(tǒng)解決方案的G代碼生成與編譯模塊。

本設(shè)計(jì)的上位機(jī)主控系統(tǒng)是在Windows 7環(huán)境下,以Visual Studio 2010作為開(kāi)發(fā)工具,基于Microsoft .NET Framework 4.0開(kāi)發(fā)的。該上位機(jī)主控系統(tǒng)主要有5個(gè)功能模塊,如圖2所示。



這5個(gè)模塊被設(shè)計(jì)在一個(gè)Windows窗體中,不同功能設(shè)計(jì)在不同選項(xiàng)卡中,因此只需切換選項(xiàng)卡就可以輕松實(shí)現(xiàn)功能的切換。在窗體的右側(cè)有一列獨(dú)立于選項(xiàng)卡容器的對(duì)象,其功能是對(duì)串口通信進(jìn)行設(shè)置,控制FPGA執(zhí)行的起停以及對(duì)監(jiān)視功能進(jìn)行復(fù)位。上位機(jī)主控軟件視圖如圖3所示。



粗插補(bǔ)是將一條曲線分解為一系列的能夠被下位機(jī)FPGA執(zhí)行的直線和圓弧的小段。這樣,控制者可以在PC機(jī)上手動(dòng)繪制一條待運(yùn)行的曲線,調(diào)用粗插補(bǔ)運(yùn)算函數(shù)產(chǎn)生相應(yīng)的G代碼,再譯碼運(yùn)行,實(shí)現(xiàn)所見(jiàn)即所得。

G代碼是數(shù)控程序中的指令,也稱為G指令。在命令編譯模塊中實(shí)現(xiàn)的功能是將之前生成的G代碼,或者從本地文件中讀入的G代碼轉(zhuǎn)換成FPGA控制板可以識(shí)別的自定義命令序列,并發(fā)送至從控板。

3 基于FPGA的從控模塊設(shè)計(jì)

精插補(bǔ)模塊以硬件方式實(shí)現(xiàn),即將多軸運(yùn)動(dòng)控制模塊固化在FPGA中,把上位機(jī)從生成步進(jìn)電機(jī)的直接驅(qū)動(dòng)信號(hào)時(shí)的繁重單調(diào)的工作中解放出來(lái),提高執(zhí)行的速度和效率。其功能結(jié)構(gòu)如圖4所示。



軟件實(shí)現(xiàn)的功能是通信協(xié)議、命令解析、精插補(bǔ)和速度補(bǔ)償?shù)裙δ堋?br />
3.1 FPGA從控板硬件設(shè)計(jì)

作為脈沖控制指令的直接生成者,F(xiàn)PGA從控板在整體的設(shè)計(jì)中具有核心地位。由于本設(shè)計(jì)的輸入輸出信號(hào)有兩路不共地的電壓輸入,因此電源設(shè)計(jì)與信號(hào)隔離至關(guān)重要。簡(jiǎn)易鍵盤作為系統(tǒng)控制輸入,主要進(jìn)行系統(tǒng)運(yùn)行方式的選擇和控制指令輸入。對(duì)于系統(tǒng)中簡(jiǎn)單的開(kāi)關(guān)量,直接用LED顯示;而對(duì)于復(fù)雜的系統(tǒng)狀態(tài),如執(zhí)行時(shí)序狀態(tài)機(jī)的監(jiān)視,則需要借助LCD進(jìn)行監(jiān)控。FPGA從控板需要接收來(lái)自上位機(jī)的加工指令序列,串口作為最為常用的通信接口,它能夠保證數(shù)據(jù)信息以足夠高的速度由上位機(jī)發(fā)送到FPGA從控板上,完成控制操作[3]。

3.2 基于最小偏差法的插補(bǔ)設(shè)計(jì)

因?yàn)槿魏我粭l曲線都可以用直線和圓弧的小段對(duì)其進(jìn)行逼近,因此,直線與圓弧是構(gòu)成運(yùn)動(dòng)控制軌跡的基本要素,直線/圓弧插補(bǔ)就是運(yùn)動(dòng)控制器的基本功能,也是實(shí)現(xiàn)高精控制的基本手段。

精插補(bǔ)模塊的實(shí)現(xiàn)原理有很多種,對(duì)于直線和圓弧插補(bǔ),常用的插補(bǔ)原理有逐點(diǎn)比較法、最小偏差法、數(shù)字脈沖相乘法等。最小偏差比較法是在逐點(diǎn)比較法的基礎(chǔ)上衍生而來(lái)的,其原理是在進(jìn)給之前先判定向x坐標(biāo)方向或y坐標(biāo)方向進(jìn)給一步的偏差和向?qū)蔷€進(jìn)給一步的偏差(向x軸與y軸同時(shí)進(jìn)給一步),應(yīng)選擇偏差小的那個(gè)方向進(jìn)給[4]。

3.2.1 最小偏差法插補(bǔ)進(jìn)給規(guī)則

最小偏差法直線插補(bǔ)是將直角坐標(biāo)的每個(gè)象限都用45°斜線分成兩個(gè)區(qū)域,4個(gè)象限共分為8個(gè)區(qū)域,稱為8個(gè)卦限,用0~7表示在某一卦限內(nèi),直線插補(bǔ)根據(jù)軌跡點(diǎn)偏差的大小選擇沿相應(yīng)軸方向或?qū)蔷€方向進(jìn)給。圓弧插補(bǔ)同樣把一個(gè)圓分成8卦限,將圓弧中心作為坐標(biāo)原點(diǎn),在不同的卦限,其進(jìn)給方向不同[5]。如圖5所示為第1象限中0卦限和1卦限的進(jìn)給示意。



3.2.2 插補(bǔ)模塊實(shí)現(xiàn)

插補(bǔ)模塊在FPGA中實(shí)現(xiàn)的流程圖如圖6所示。



3.2.3 插補(bǔ)模塊的速度補(bǔ)償

由于最小偏差比較法的進(jìn)給規(guī)則是單次沿軸向或者沿對(duì)角線方向進(jìn)給,系統(tǒng)實(shí)際運(yùn)行時(shí)的速度會(huì)因?yàn)榍€各處斜率的不同而變化,降低了運(yùn)行速度的穩(wěn)定性。為了解決這個(gè)問(wèn)題,可以從驅(qū)動(dòng)狀態(tài)機(jī)的時(shí)鐘輸入上進(jìn)行考慮。由于脈沖的產(chǎn)生是通過(guò)狀態(tài)機(jī)實(shí)現(xiàn)的,因此可以通過(guò)降低沿軸向運(yùn)動(dòng)時(shí)的脈沖源頻率,提高沿對(duì)角線方向的脈沖源頻率來(lái)平衡不同斜率軌跡點(diǎn)的運(yùn)行速度[6]。

設(shè)脈沖F單獨(dú)驅(qū)動(dòng)單軸運(yùn)動(dòng)的速度為Vf,合成速度為V??梢援嫵鯲/Vf隨α的變化的曲線圖,如圖7(a)所示。由圖可知,當(dāng)角度α=45°時(shí),運(yùn)動(dòng)速度最快。



設(shè)進(jìn)給脈沖源的頻率為3f,經(jīng)過(guò)1/N分頻器分頻后再作為進(jìn)給脈沖,由此可得新的V/Vf關(guān)系如下:

  
#p#分頁(yè)標(biāo)題#e#




則這時(shí)V/Vf對(duì)?琢的曲線圖就變?yōu)槿鐖D7(b)所示。對(duì)比圖7(a)、(b),可知其速度穩(wěn)定性有了明顯的提升。

以上分析是插補(bǔ)模塊設(shè)計(jì)的理論依據(jù),在編寫模塊時(shí)需要考慮許多實(shí)際問(wèn)題。但無(wú)論是直線插補(bǔ)模塊還是圓弧插補(bǔ)模塊,其實(shí)現(xiàn)方式都是通過(guò)狀態(tài)機(jī)對(duì)生成脈沖的程序進(jìn)行循環(huán),根據(jù)原理推演而得到的判斷條件來(lái)產(chǎn)生各軸的驅(qū)動(dòng)脈沖與相應(yīng)旋轉(zhuǎn)方向的控制信號(hào)[7]。

4 仿真與實(shí)驗(yàn)

4.1 基于Matlab仿真

基于最小偏差法的插補(bǔ)模塊被封裝在FPGA中,但其算法在Matlab環(huán)境下進(jìn)行了仿真,圖8所示為半徑為8個(gè)脈沖當(dāng)量的運(yùn)行軌跡,實(shí)現(xiàn)了實(shí)際軌跡與理想曲線之間的最小偏差。



圖9所示為當(dāng)插補(bǔ)半徑為800個(gè)脈沖當(dāng)量時(shí)軌跡情況??梢钥闯?,對(duì)于任何實(shí)際執(zhí)行的圓弧指令(半徑一般大于1 000個(gè)脈沖當(dāng)量),如此細(xì)小的誤差完全可以忽略不計(jì)。使用最小偏差法實(shí)現(xiàn)圓弧插補(bǔ),流程明確,又是整數(shù)計(jì)算,特別適合基于FPGA的設(shè)計(jì)。而且準(zhǔn)確性已非常高,所以使用最小偏差法來(lái)進(jìn)行圓弧的精插補(bǔ)是最優(yōu)方案。



4.2 兩軸聯(lián)動(dòng)雕刻床測(cè)試

實(shí)際測(cè)試平臺(tái)是一個(gè)兩軸聯(lián)動(dòng)雕刻床,每個(gè)軸由步進(jìn)電機(jī)驅(qū)動(dòng),經(jīng)過(guò)絲杠將旋轉(zhuǎn)運(yùn)動(dòng)轉(zhuǎn)換為直線運(yùn)動(dòng)。為便于觀察,雕刻刀使用鉛筆芯代替。在上位機(jī)軟件上手繪一條待運(yùn)行曲線,經(jīng)過(guò)規(guī)劃處理后轉(zhuǎn)換為G代碼,并加工執(zhí)行。

圖3與圖10分別為上位機(jī)的手繪曲線與實(shí)際運(yùn)行情況,由圖可見(jiàn),系統(tǒng)能夠很完整地跟蹤手繪曲線。



參考文獻(xiàn)

[1] 吳星明,陳偉海,于守謙,等.基于PCI總線的主從式多軸控制器開(kāi)發(fā)[J].北京航空航天大學(xué)學(xué)報(bào),2008,34(1):112-116.

[2] 習(xí)俊梅,廖高華.開(kāi)放式PC型多軸運(yùn)動(dòng)控制系統(tǒng)[J].機(jī)床與液壓,2008,36(11):91-93.

[3] Chen Weihai, Wen Zhaojin, Xu Zhiyue. Implementation of  2-axis circular interpolation for a FPGA-based 4-axis motion controller[C].2007 IEEE International Conference on Control and Automation, 2007:600-605.

[4] 叢爽,李澤湘.使用運(yùn)動(dòng)控制技術(shù)[M].北京:電子工業(yè)出版社,2006.

[5] 李恩林.?dāng)?shù)控系統(tǒng)插補(bǔ)原理通論[M].北京:國(guó)防工業(yè)出版社,2007.

[6] 閆華汪,木蘭,王保升.基于FPGA的最小偏差法插補(bǔ)器設(shè)計(jì)與實(shí)現(xiàn)[J]. 機(jī)械設(shè)計(jì)與制造,2008(12):14-16.

[7] 吳振凱.調(diào)頻步進(jìn)信號(hào)回波的速度補(bǔ)償[J].制導(dǎo)與引信,2010,31(1):37-42.

 

 

轉(zhuǎn)載請(qǐng)注明出處。

暫無(wú)關(guān)鍵詞
免責(zé)聲明

① 凡本網(wǎng)未注明其他出處的作品,版權(quán)均屬于激光制造網(wǎng),未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用。獲本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使 用,并注明"來(lái)源:激光制造網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)責(zé)任。
② 凡本網(wǎng)注明其他來(lái)源的作品及圖片,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本媒贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系我們刪除。
③ 任何單位或個(gè)人認(rèn)為本網(wǎng)內(nèi)容可能涉嫌侵犯其合法權(quán)益,請(qǐng)及時(shí)向本網(wǎng)提出書面權(quán)利通知,并提供身份證明、權(quán)屬證明、具體鏈接(URL)及詳細(xì)侵權(quán)情況證明。本網(wǎng)在收到上述法律文件后,將會(huì)依法盡快移除相關(guān)涉嫌侵權(quán)的內(nèi)容。

網(wǎng)友點(diǎn)評(píng)
0相關(guān)評(píng)論
精彩導(dǎo)讀