郭驥翔
(中國鐵路設計集團有限公司電化電信工程設計研究院 天津 300412)
在傳統(tǒng)的直線驅動場合,都是采用旋轉電機,再由絲杠、齒條等中間過程轉為直線運動。期間造成了大量能源的浪費,且摩擦噪聲大,給系統(tǒng)維護帶來了麻煩,影響系統(tǒng)精度和可靠性。永磁同步直線電機以其高可靠性、高精度、響應快速、高效率等優(yōu)勢在工農業(yè)生產、航空航天、國防以及日常生活中得到了廣泛應用[1]。永磁同步直線電機的原理與傳統(tǒng)的同步電機相同,只是將傳統(tǒng)電機的結構進行改進,使其能夠適應高速高精度的運動場合。永磁同步電機分為有鐵心和無鐵心兩大類,有鐵心直線電機雖然輸出轉矩大,但由于存在齒槽效應和端部效應其推力波動也較大[12],不適合精度要求較高的場合。U型結構的無鐵心直線電機由于不存在鐵心并且定子永磁體磁場對稱,推力波動大為降低。并且無鐵芯結構減少了動子質量,很大程度上削弱了齒槽效應產生的電機推力波動。使得這類電機可以應用于精密機床、數(shù)控雕刻機[4,14-16]等高精設備。因此,直線電機在機床進給伺服系統(tǒng)中的應用,在世界機床行業(yè)得到重視[2],直線電機的線性直驅“零傳動”模式使得機床的控制性能得到了極大提高。在工業(yè)生產和各種加工制造業(yè)中,經常需要加工設備能夠完成空間內的運動,二維插補算法簡單,易于編程實現(xiàn),在數(shù)控系統(tǒng)中廣泛應用,但不能滿足復雜加工工藝要求[3]。對于復雜三維運動,需要采用三維空間插補方法來滿足精度、速度等加工指標要求。把直線電機與三維運動平臺相結合,充分發(fā)揮直線電機定位精度高、進給速度大、響應快速等優(yōu)點,大幅度提升三維運動平臺的速度和精度。
一套完整控制系統(tǒng)由上位機、控制器、驅動器、電機、位置檢測元件、電流檢測元件、電壓檢測元件等構成。完成指令下發(fā)、數(shù)據(jù)采集、數(shù)據(jù)處理、信號放大驅動等一系列功能。其結構如圖1所示。三維直線電機運動平臺如圖2所示。直線電機的控制器采用固高科技的GTS-400系列中的四軸控制器,驅動器選用elmo公司的harmonica工業(yè)級小型驅動器??刂破鹘邮胀ㄟ^專用PCI卡接收上位機發(fā)出的控制指令,完成數(shù)據(jù)采集與分析,并把處理的數(shù)據(jù)送到驅動器;驅動器進行功率放大,驅動電機運動;位置檢測元件采集位置信息回饋到控制器和驅動器形成閉環(huán)系統(tǒng)
圖1 控制系統(tǒng)結構圖
圖2 三維直線電機運動平臺實物圖
直線插補和圓弧插補是機床行業(yè)的基本插補運動,直線插補與圓弧插補的原理相似,且相比于圓弧插補較為簡單,因此這里只對實現(xiàn)圓弧插補的算法進行討論,空間圓弧方程有多種方程表示方法,一般情況下習慣于用球面和平面相交表示,這種表示方式并不適合圓弧插補運動的方程表達方式。對于空間三維插補運動,空間圓弧的參數(shù)方程表示方法有其獨特優(yōu)勢[9]。把空間圓弧的交線方程表達式(1)改成式(2)的參數(shù)方程形式。圓心坐標為方向向量為其中為單位向量且和兩兩垂直。θ為圓弧從0到2π的變化角度,則空間圓弧可表示為式(2)所示。
Matlab /GUI 是一種新型的基于 Matlab 的強大計算功能的圖形用戶界面開發(fā)工具,可方便、快速地用來開發(fā)一些常規(guī)圖形界面應用程序[5-7]。圓弧插補的實質是“數(shù)據(jù)的密化”。為了能夠直觀的看出需要插補的圓弧以及插補過程,將插補算法在matlab中進行編寫,通過matlab畫圖功能直觀的看出插補運動的軌跡,便于對算法進行改進??臻g圓弧運動軌跡需要三維運動平臺協(xié)同工作來完成。本文采用逐點比較法來完成空間圓弧插補操作。首先對插補算法進行編程驗證。逐點比較法每運行一步便進行一次軌跡偏差計算。協(xié)調三軸運動,使得運行軌跡以折線方式逼近圓弧。插補誤差小,在三維圓弧插補運動中的插補誤差不會超過一個脈沖當量。該方法具有方法簡單、運算速度快等優(yōu)點,空間圓弧插補流程圖如圖3所示,并在此基礎上完成了Matlab的GUI界面開發(fā)。空間圓弧插補的圖形化界面,如圖4所示。
在三維圓弧插補過程中,由流程圖可知,運動軸是基于距離最遠的坐標軸來選擇的,因此,每個軸相對于被插補點的平面投影距離不大于0.5單位脈沖當量。即在xoy平面、xoz平面、yoz平面的最大誤差分別為dx≤0.5單位脈沖當量、dy≤0.5單位脈沖當量、dz≤0.5單位脈沖當量??臻g最大插補誤差出現(xiàn)在dx=dy=dz=0.5單位脈沖向量。由空間坐標分布和三角不等式關系可得插補誤差為??傻米畲蟛逖a誤差為單位脈沖當量。
為了驗證算法的有效性,本文選擇vs2010作為開發(fā)平臺,使用C++作為編程語言,將m文件中的程序利用C++進行實現(xiàn),并將程序通過vs2010下載到運動控制器,將運動控制器產生的脈沖信號傳輸給驅動器,驅動三軸平臺電機,完成空間圓弧的插補運動。插補算法流程如圖5所示。
圖3 空間圓弧插補流程圖
圖4 空間圓弧圖形化界面
圖5 C++算法流程圖
圖6 空間圓弧投影
圖7 三維運動平臺運動軌跡圖
圖8 三維運動平臺xoy軌跡投影
圖9 三維運動平臺xoz軌跡投影
1)提出用三維圓弧的參數(shù)方程形式更適合圓弧插補運動的實現(xiàn);
2)分析得到了空間圓弧插補算法的插補誤差;
3)用Matlab的GUI功能開發(fā)了三維圓弧插補的圖形化界面;
4)從三維直線電機運動平臺得到的曲線來看,三維圓弧插補得到了很好的實現(xiàn),證明了算法的可行性。