《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于PC和FPGA的運動控制系統(tǒng)
基于PC和FPGA的運動控制系統(tǒng)
來源:電子技術(shù)應(yīng)用2011年第4期
賴曉豐, 劉敬猛, 顧天宇, 李善鋒
北京航空航天大學(xué) 自動化科學(xué)與電氣工程學(xué)院, 北京 100191
摘要: 針對運動控制系統(tǒng)對高速度與高精度的要求,基于二次插補原理及最小偏差插補法,提出一種以PC機為主控制器、FPGA為從控制器的主從式運動控制系統(tǒng)的設(shè)計。主控制器的功能是對系統(tǒng)運行過程進行控制規(guī)劃和粗插補;從控制器的功能是對加工進行精插補和執(zhí)行速度控制。該系統(tǒng)在Matlab環(huán)境下進行了插補仿真,并在兩軸數(shù)控雕刻床上進行了加工測試,驗證了系統(tǒng)的可靠性與高精度。加工精度可達(dá)0.01 mm,為高精度、高速插補數(shù)控系統(tǒng)提供了有效的解決方案。
中圖分類號: TP24
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)04-0130-03
Motion control system based on PC and FPGA
Lai Xiaofeng, Liu Jingmeng, Gu Tianyu, Li Shanfeng
School of Automation Science and Electrical Engineering, Beihang University, Beijing 100191, China
Abstract: In allusion to the demand for high precision and high speed from the motion control system, based on the twice interpolating algorithm and the least deviation interpolation, a design for master-slave motion control system based on PC as the master controller and FPGA as the slave controller is presented. The function of the master controller is control programme and first interpolation, and the function of the slave controller is second interpolation and velocity compensation. This system has been simulated in Matlab, and tested on the two-axes carving machine. The result shows the system is high reliable and high precise, the machining accuracy is 0.01 mm, and present a perfect solution for high-precision and high-velocity interpolating CNC system.
Key words : motion control; FPGA; least deviation interpolation; velocity compensation


    運動控制系統(tǒng)被廣泛地運用于各個領(lǐng)域。傳統(tǒng)的運動控制系統(tǒng)設(shè)計有基于PC的中央控制方式和基于微控制器的嵌入式控制方式等。基于PC的運動控制方式,由于其采用多任務(wù)操作系統(tǒng),對處理器的分時復(fù)用會導(dǎo)致在運行高速度和高控制頻率的系統(tǒng)時,實時性得不到保證。而基于微控制器的運動控制系統(tǒng),由于處理器資源有限,對功能復(fù)雜系統(tǒng)的開發(fā)帶來很大難度,往往系統(tǒng)中的某個子功能模塊就占用了整塊芯片的資源。
    隨著計算機技術(shù)與嵌入式技術(shù)的日益發(fā)展,出現(xiàn)了各種架構(gòu)互異的運控系統(tǒng)設(shè)計方案,其目標(biāo)都在于對系統(tǒng)的高速度與高精度的不斷追求?;谶@兩種技術(shù),本文提出了一種基于PC+FPGA的多功能主從式運動控制結(jié)構(gòu),實現(xiàn)運控系統(tǒng)的分工。既滿足了系統(tǒng)的功能多樣性需求,又保證了高頻控制脈沖的生成以及系統(tǒng)運行的實時性,同時還降低了系統(tǒng)維護與升級的難度[1-2]。
1 主從式運動控制系統(tǒng)
    本系統(tǒng)的設(shè)計目標(biāo)是實現(xiàn)兩軸聯(lián)動的運控系統(tǒng),主要由PC機、FPGA從控板和電機驅(qū)動板三個部分構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖1所示。上位機(PC)的主要功能是對系統(tǒng)運行過程進行控制規(guī)劃和粗插補(曲線加工規(guī)劃)。FPGA從控板的主要功能是對加工進行精插補,在此二次插補完成后通過速度補償模塊對插補的執(zhí)行速度進行補償,進一步減小插補的偏差,產(chǎn)生直接用于驅(qū)動步進電機進行直線/圓弧運動的脈沖信號。驅(qū)動電路的作用是將脈沖控制信號進行功率放大,以直接驅(qū)動電機,同時為了提高控制精度,可以使用其細(xì)分電路對電機的步進進行1、2、4、8次的細(xì)分。

    主從模塊通過異步串行通信方式RS-232標(biāo)準(zhǔn)進行通信。上位機將一條曲線分割成一組簡單曲線(直線/圓弧)的執(zhí)行序列,使用自定義的編碼方式將信息下載到FPGA上。對應(yīng)地,F(xiàn)PGA上設(shè)計有接收并存儲這些編碼信息的功能模塊。
2 上位機主控軟件設(shè)計
    上位機只需要將一條待加工曲線分解為精插補模塊可執(zhí)行的直線和圓弧的序列,以FPGA能夠識別的指令傳輸給從控板。以粗插補為目的,配套開發(fā)了相應(yīng)所需的通信模塊、作為示教功能所需的命令控制模塊以及作為數(shù)控系統(tǒng)解決方案的G代碼生成與編譯模塊。
    本設(shè)計的上位機主控系統(tǒng)是在Windows 7環(huán)境下,以Visual Studio 2010作為開發(fā)工具,基于Microsoft .NET Framework 4.0開發(fā)的。該上位機主控系統(tǒng)主要有5個功能模塊,如圖2所示。

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

    粗插補是將一條曲線分解為一系列的能夠被下位機FPGA執(zhí)行的直線和圓弧的小段。這樣,控制者可以在PC機上手動繪制一條待運行的曲線,調(diào)用粗插補運算函數(shù)產(chǎn)生相應(yīng)的G代碼,再譯碼運行,實現(xiàn)所見即所得。
    G代碼是數(shù)控程序中的指令,也稱為G指令。在命令編譯模塊中實現(xiàn)的功能是將之前生成的G代碼,或者從本地文件中讀入的G代碼轉(zhuǎn)換成FPGA控制板可以識別的自定義命令序列,并發(fā)送至從控板。
3 基于FPGA的從控模塊設(shè)計
    精插補模塊以硬件方式實現(xiàn),即將多軸運動控制模塊固化在FPGA中,把上位機從生成步進電機的直接驅(qū)動信號時的繁重單調(diào)的工作中解放出來,提高執(zhí)行的速度和效率。其功能結(jié)構(gòu)如圖4所示。

    軟件實現(xiàn)的功能是通信協(xié)議、命令解析、精插補和速度補償?shù)裙δ堋?br/>3.1 FPGA從控板硬件設(shè)計
    作為脈沖控制指令的直接生成者,F(xiàn)PGA從控板在整體的設(shè)計中具有核心地位。由于本設(shè)計的輸入輸出信號有兩路不共地的電壓輸入,因此電源設(shè)計與信號隔離至關(guān)重要。簡易鍵盤作為系統(tǒng)控制輸入,主要進行系統(tǒng)運行方式的選擇和控制指令輸入。對于系統(tǒng)中簡單的開關(guān)量,直接用LED顯示;而對于復(fù)雜的系統(tǒng)狀態(tài),如執(zhí)行時序狀態(tài)機的監(jiān)視,則需要借助LCD進行監(jiān)控。FPGA從控板需要接收來自上位機的加工指令序列,串口作為最為常用的通信接口,它能夠保證數(shù)據(jù)信息以足夠高的速度由上位機發(fā)送到FPGA從控板上,完成控制操作[3]。
3.2 基于最小偏差法的插補設(shè)計
    因為任何一條曲線都可以用直線和圓弧的小段對其進行逼近,因此,直線與圓弧是構(gòu)成運動控制軌跡的基本要素,直線/圓弧插補就是運動控制器的基本功能,也是實現(xiàn)高精控制的基本手段。
    精插補模塊的實現(xiàn)原理有很多種,對于直線和圓弧插補,常用的插補原理有逐點比較法、最小偏差法、數(shù)字脈沖相乘法等。最小偏差比較法是在逐點比較法的基礎(chǔ)上衍生而來的,其原理是在進給之前先判定向x坐標(biāo)方向或y坐標(biāo)方向進給一步的偏差和向?qū)蔷€進給一步的偏差(向x軸與y軸同時進給一步),應(yīng)選擇偏差小的那個方向進給[4]。
3.2.1 最小偏差法插補進給規(guī)則
    最小偏差法直線插補是將直角坐標(biāo)的每個象限都用45°斜線分成兩個區(qū)域,4個象限共分為8個區(qū)域,稱為8個卦限,用0~7表示在某一卦限內(nèi),直線插補根據(jù)軌跡點偏差的大小選擇沿相應(yīng)軸方向或?qū)蔷€方向進給。圓弧插補同樣把一個圓分成8卦限,將圓弧中心作為坐標(biāo)原點,在不同的卦限,其進給方向不同[5]。如圖5所示為第1象限中0卦限和1卦限的進給示意。

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

3.2.3 插補模塊的速度補償
    由于最小偏差比較法的進給規(guī)則是單次沿軸向或者沿對角線方向進給,系統(tǒng)實際運行時的速度會因為曲線各處斜率的不同而變化,降低了運行速度的穩(wěn)定性。為了解決這個問題,可以從驅(qū)動狀態(tài)機的時鐘輸入上進行考慮。由于脈沖的產(chǎn)生是通過狀態(tài)機實現(xiàn)的,因此可以通過降低沿軸向運動時的脈沖源頻率,提高沿對角線方向的脈沖源頻率來平衡不同斜率軌跡點的運行速度[6]。
    設(shè)脈沖F單獨驅(qū)動單軸運動的速度為Vf,合成速度為V??梢援嫵鯲/Vf隨α的變化的曲線圖,如圖7(a)所示。由圖可知,當(dāng)角度α=45°時,運動速度最快。

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


    則這時V/Vf對?琢的曲線圖就變?yōu)槿鐖D7(b)所示。對比圖7(a)、(b),可知其速度穩(wěn)定性有了明顯的提升。
    以上分析是插補模塊設(shè)計的理論依據(jù),在編寫模塊時需要考慮許多實際問題。但無論是直線插補模塊還是圓弧插補模塊,其實現(xiàn)方式都是通過狀態(tài)機對生成脈沖的程序進行循環(huán),根據(jù)原理推演而得到的判斷條件來產(chǎn)生各軸的驅(qū)動脈沖與相應(yīng)旋轉(zhuǎn)方向的控制信號[7]。
4 仿真與實驗
4.1 基于Matlab仿真

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

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

4.2 兩軸聯(lián)動雕刻床測試
    實際測試平臺是一個兩軸聯(lián)動雕刻床,每個軸由步進電機驅(qū)動,經(jīng)過絲杠將旋轉(zhuǎn)運動轉(zhuǎn)換為直線運動。為便于觀察,雕刻刀使用鉛筆芯代替。在上位機軟件上手繪一條待運行曲線,經(jīng)過規(guī)劃處理后轉(zhuǎn)換為G代碼,并加工執(zhí)行。
    圖3與圖10分別為上位機的手繪曲線與實際運行情況,由圖可見,系統(tǒng)能夠很完整地跟蹤手繪曲線。

參考文獻(xiàn)
[1] 吳星明,陳偉海,于守謙,等.基于PCI總線的主從式多軸控制器開發(fā)[J].北京航空航天大學(xué)學(xué)報,2008,34(1):112-116.
[2] 習(xí)俊梅,廖高華.開放式PC型多軸運動控制系統(tǒng)[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] 叢爽,李澤湘.使用運動控制技術(shù)[M].北京:電子工業(yè)出版社,2006.
[5] 李恩林.?dāng)?shù)控系統(tǒng)插補原理通論[M].北京:國防工業(yè)出版社,2007.
[6] 閆華汪,木蘭,王保升.基于FPGA的最小偏差法插補器設(shè)計與實現(xiàn)[J]. 機械設(shè)計與制造,2008(12):14-16.
[7] 吳振凱.調(diào)頻步進信號回波的速度補償[J].制導(dǎo)與引信,2010,31(1):37-42.

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