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

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

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

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

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

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

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

設進給脈衝(chong) 源的頻率為(wei) 3f,經過1/N分頻器分頻後再作為(wei) 進給脈衝(chong) ,由此可得新的V/Vf關(guan) 係如下:

#p#分頁標題#e#

則這時V/Vf對?琢的曲線圖就變為(wei) 如圖7(b)所示。對比圖7(a)、(b),可知其速度穩定性有了明顯的提升。
以上分析是插補模塊設計的理論依據,在編寫(xie) 模塊時需要考慮許多實際問題。但無論是直線插補模塊還是圓弧插補模塊,其實現方式都是通過狀態機對生成脈衝(chong) 的程序進行循環,根據原理推演而得到的判斷條件來產(chan) 生各軸的驅動脈衝(chong) 與(yu) 相應旋轉方向的控製信號[7]。
4 仿真與(yu) 實驗
4.1 基於(yu) Matlab仿真
基於(yu) 最小偏差法的插補模塊被封裝在FPGA中,但其算法在Matlab環境下進行了仿真,圖8所示為(wei) 半徑為(wei) 8個(ge) 脈衝(chong) 當量的運行軌跡,實現了實際軌跡與(yu) 理想曲線之間的最小偏差。

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

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

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








相關文章
熱門資訊
精彩導讀


















關注我們

