當前位置:編程學習大全網 - 編程語言 - 簡述數據采樣式進給位置伺服系統位置功能是如何實現的

簡述數據采樣式進給位置伺服系統位置功能是如何實現的

1 概述  現在的位置伺服系統壹般采用所謂的“軟伺服”系統,使位置增益不很大,這樣系統容易穩定,並且增加壹個閉環調速單元,速度環的增益很大。因此,很小的位置偏差就能產生很明顯的速度偏差,速度環就以很高的增益修正,從而使系統得到很高的位置分辨率[1]。作者在研制壹種數控刨齒機時,設計並完成了單軸位置伺服系統,該系統采用半閉環結構,框圖如圖1所示。本文將結合該系統,闡述位置伺服系統的組成及硬件實現。圖1 單軸位置控制系統的框圖2 位置伺服系統的組成  在圖1中,位置控制器和速度控制器均由486個人微機編程實現。電機采用北京數控設備廠的FANUC-BESK(15型)直流伺服電機,並采用該廠的A06B-6054-H005作為功率驅動模塊。由於該速度控制單元是模擬系統,因此采用12位D/A轉換器,把微機根據控制算法輸出的數字量轉換為合適的模擬電壓,控制電機向減小位置偏差的方向轉動。位置反饋采用光電編碼器,分辨率為4000線/轉,經四倍頻電路,由可編程計數器8254記錄位置脈沖數,位置控制器則根據此脈沖數和指令脈沖數計算出速度指令電壓,再輸出到壹個12位D/A轉換器,即得到模擬的速度指令電壓。速度反饋也利用同壹個光電編碼器和計數電路,速度控制器通過對位置求壹階差分計算出實際轉速,然後輸出到另壹個12位D/A轉換器,將得到的模擬電壓反饋至速度控制單元的速度反饋輸入端。實際轉速ω按ω=ΔN/Ts式求取,其中ΔN為在采樣周期內的位置脈沖增量,Ts為采樣周期,該系統取8毫秒。

作者編寫的CNC控制程序采用前、後臺軟件結構,前臺程序是壹個中斷服務程序,由硬件實現8毫秒定時中斷,主要完成精插補和位置控制功能;後臺程序是壹個循環運行程序,主要完成數據輸入、粗插補及其它輔助功能。3 伺服系統的實現  數模轉換采用芯片DAC1210,為了不降低分辨率,用壹個電子開關CD4052處理正負號,使數模轉換達到雙極性12位,為了提高驅動能力和抑制幹擾,輸出采用集成運放OP07做成射極跟隨器的形式,電路如圖2所示。圖2 雙極性12位D/A轉換3.1 四倍頻器

四倍頻器[2,3]采用微分電路來實現,其抗幹擾能力較差。作者設計了壹種四倍頻器,采用積分型單穩態電路,如圖3所示。電路的工作原理:A、B兩路相位差90°的方波脈沖,電機正向轉動時,A領先B;電機反向轉動時,B領先A。該電路在A及A的反相-A和B及B的反相-B各接了壹個積分型單穩態電路[4],在A的上升沿、下降沿分別產生壹個短脈沖A′和-A′,在B的上升沿、下降沿分別產生壹個短脈沖B′和-B′。當A為低電平時,Va為高電平,G2輸出為低電平;當A上升沿來到後,G1輸出為低電平,但由於電容兩端的電壓不能突變,所以在壹段時間裏Va仍在閾值電平之上,G2輸出為高電平,電路進入暫穩態。隨著電容的放電,Va不斷下降,當Va低於閾值電平時,G2輸出為低電平,待A回到低電平後,G1輸出為高電平,電容又開始充電,當Va恢復為高電平時,電路又達到穩態,為下壹次上升沿的到來作好準備。由以上分析可知,A′的脈沖寬度TW等於電容開始放電到Va下降至閾值電平所經歷的時間,根據對RC電路暫態過程的分析,可知電容上的電壓Va放電時間由下式決定[4]: (1) 式中 R′——RC電路放電回路的電阻

 C′——RC電路放電回路的電容

 VC(∞)——電容電壓的穩態值

 VC(0)——電容電壓的初值

 VC(t)——經過t時間放電後的電容電壓值

設LSTTL電路的輸出高電平為VOH,輸出低電平為VOL,VTH為閾值電平,R0為G1輸出低電平時的輸出電阻,將R′=R0+R、C′=C、VC(∞)=VOL、VC(0)=VOH、

VC(t)=VTH代入式(1)可得脈沖寬度TW為: (2) 考慮到電路恢復時間,應使方波脈沖序列的周期為TW的7~8倍,這樣電路才能可靠地工作。可以據此選擇合適的電阻和電容。將得到的四個短脈沖序列A′、-A′、B′、-B′按圖3所示進行與或非的邏輯組合,在U1、U2的輸出端將產生表示正轉和反轉的四倍頻脈沖序列,如圖4所示。該電路有較好的抗幹擾性能,因為高頻時容抗很小,而且脈沖經過二級與門的選擇。圖3 積分型四倍頻計數電路圖4 正、反轉四倍頻器脈沖波形(左:正轉 右:反轉)3.2 脈沖計數電路與初值跳動

8254是與微機接口非常方便的可編程計數器,在方式2下計數器可自動重復計數,利用它的兩個計數通道分別記錄正轉和反轉脈沖,在程序裏讀入計數值並使二者相減,便可得到在采樣周期內的位置脈沖增量,給後續程序作進壹步處理。作者在應用中發現8254有壹個缺陷:對它進行初始化後,輸出鎖存器殘留有隨機數,這時程序讀數就會讀到這個隨機數,所以當第壹個計數脈沖到來後,計數器開始從編程初值減壹計數。當實際位置脈沖沒有來到時,程序裏讀到的位置脈沖值為壹隨機數,當有實際位置脈沖輸入到計數器後,采樣程序讀到的是正常的位置脈沖值,所以采樣程序第壹次計算出的正轉或反轉脈沖數是不正確的,而隨後計數才進入正常狀態。第壹次讀數的這壹隨機性將引起系統的劇烈跳動,稱之為“初值跳動”。這種跳動對數控機床來說是不可接受的,必須予以消除。

作者通過程序處理解決了這壹問題,其方法:初始化後先記錄下輸出鎖存器的起始內容,在采樣程序裏把讀入輸出鎖存器的內容與此起始數值比較,若數值不變,說明沒有計數脈沖,位置增量為零;若數值發生變化,說明已有計數脈沖到來,經過程序計算得到第壹次的位置增量。此後不再判別“初值跳動”,進行正常計數。解決“初值跳動”的程序如下(用Turbo C語言實現):

實時采樣程序:

……

unsigned char cl,ch;

unsigned int clk0;

outportb(P8254+3,0xd6);

cl=inportb(P8254);

ch=inportb(p8254);

clk0=cl|(ch<<8);

if(clk0!=Old-clk0)first=1;

if(first)

{……

dsp0=……;

……

else

 dsp0=0;

……

初始化程序:

……

unsigned char ch,cl;

cl=inportb(P8254);

ch=inportb(P8254);

Old-clk0=cl|(ch<<8);

……

有關變量的說明:

Old-clk0:輸出鎖存器的起始初值

clk0:輸出鎖存器的讀數值

first:判斷是否有第壹個脈沖到來的邏輯變量

dsp0:位置增量

P8254:8254的片選地址

8254的第三個計數通道用來產生8毫秒的定時中斷,用來觸發中斷服務程序。  該伺服系統采用4000線/轉的光電編碼器,再經過四倍頻電路,脈沖當量為δ=360°/(4000×4)=0.0225°/脈沖,位置控制算法采用前向差分控制算法,調整速度反饋的D/A轉換,使輸出滿足速度控制單元A06B-6054-H005的要求:3V/1000r/min,速度環反饋系數調節為1.2,電機能在不同的恒值速度指令電壓下平穩運轉,線性度為2000r/min/7V。

經過實驗,調整位置增益為2,電機定位誤差為±8脈沖,即±0.18°。在不同的進給速度指令下,測得的穩態跟蹤誤差見下表。電機到工作臺有150∶1的減速比,上述性能指標已能滿足實際的加工要求。另外,經過軟件處理,系統徹底消除了“初值跳動”的現象。4 實驗與結論 表 不同速度下的穩態跟蹤誤差輸入指令轉速(r/min)穩態跟蹤誤差(角度°)100.81201.00301.26401.44501.80 單數秒罡線算是跟蹤誤差的‰0.5左右,不會超過1-2 好了,打了那麽多如果還有不明白的歡迎追問

  • 上一篇:國產新高爾夫不搭載EA211 EVO發動機,為何這次我支持大眾?
  • 下一篇:玉林華港中等職業學校公辦還是民辦電話學費壹年多少
  • copyright 2024編程學習大全網