《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于PC和FPGA的運動控制系統
基于PC和FPGA的運動控制系統
來源:電子技術應用2011年第4期
賴曉豐, 劉敬猛, 顧天宇, 李善鋒
北京航空航天大學 自動化科學與電氣工程學院, 北京 100191
摘要: 針對運動控制系統對高速度與高精度的要求,基于二次插補原理及最小偏差插補法,提出一種以PC機為主控制器、FPGA為從控制器的主從式運動控制系統的設計。主控制器的功能是對系統運行過程進行控制規劃和粗插補;從控制器的功能是對加工進行精插補和執行速度控制。該系統在Matlab環境下進行了插補仿真,并在兩軸數控雕刻床上進行了加工測試,驗證了系統的可靠性與高精度。加工精度可達0.01 mm,為高精度、高速插補數控系統提供了有效的解決方案。
中圖分類號: TP24
文獻標識碼: 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


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

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

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

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

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

3.2.2 插補模塊實現
    插補模塊在FPGA中實現的流程圖如圖6所示。

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

    設進給脈沖源的頻率為3f,經過1/N分頻器分頻后再作為進給脈沖,由此可得新的V/Vf關系如下:
  


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

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

    圖9所示為當插補半徑為800個脈沖當量時軌跡情況。可以看出,對于任何實際執行的圓弧指令(半徑一般大于1 000個脈沖當量),如此細小的誤差完全可以忽略不計。使用最小偏差法實現圓弧插補,流程明確,又是整數計算,特別適合基于FPGA的設計。而且準確性已非常高,所以使用最小偏差法來進行圓弧的精插補是最優方案。

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

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产在线一区视频| 很黄很污的视频在线观看| 人体内射精一区二区三区| 国产精品制服丝袜一区| 夜夜爱夜夜做夜夜爽| 久久一区不卡中文字幕| 欧美乱色理伦片| 免费国产美女爽到喷出水来视频| 香蕉97超级碰碰碰碰碰久| 国产精彩对白综合视频| 一本到卡二卡三卡免费高| 日本男人操女人| 亚洲国产成人va在线观看网址| 精品久久久久久久久中文字幕| 国产午夜福利精品一区二区三区| 91大神精品视频| 强行扒开双腿猛烈进入| 久久人妻内射无码一区三区| 欧美国产日韩在线| 亚洲综合第一区| 精品欧美一区二区精品久久| 国产在AJ精品| 亚洲jizzjizz妇女| 国产麻豆天美果冻无码视频| α片毛片免费看| 无毒不卡在线观看| 久久精品卫校国产小美女| 欧美日韩在线免费观看| 免费人妻精品一区二区三区| 老师吸大胸校花的奶水漫画| 国产成人A亚洲精V品无码| 2016天天干| 国色天香精品一卡2卡3卡| 一个人看的www日本高清视频 | 国产国产精品人在线视| 14又嫩又紧水又多| 在线播放免费播放av片| а√最新版地址在线天堂| 成年女人黄小视频| 国产偷窥熟女精品视频| 4虎1515hh永久免费|