單軸位置伺服系統(tǒng)的設計與實現(xiàn)
1概述 現(xiàn)在的位置伺......
1 概述
現(xiàn)在的位置伺服系統(tǒng)一般采用所謂的“軟伺服”系統(tǒng),使位置增益不很大,這樣系統(tǒng)容易穩(wěn)定,并且增加一個閉環(huán)調速單元,速度環(huán)的增益很大。因此,很小的位置偏差就能產生很明顯的速度偏差,速度環(huán)就以很高的增益修正,從而使系統(tǒng)得到很高的位置分辨率[1]。作者在研制一種數(shù)控刨齒機時,設計并完成了單軸位置伺服系統(tǒng),該系統(tǒng)采用半閉環(huán)結構,框圖如圖1所示。本文將結合該系統(tǒng),闡述位置伺服系統(tǒng)的組成及硬件實現(xiàn)。
2 位置伺服系統(tǒng)的組成
在圖1中,位置控制器和速度控制器均由486個人微機編程實現(xiàn)。電機采用北京數(shù)控設備廠的FANUC-BESK(15型)直流伺服電機,并采用該廠的A06B-6054-H005作為功率驅動模塊。由于該速度控制單元是模擬系統(tǒng),因此采用12位D/A轉換器,把微機根據控制算法輸出的數(shù)字量轉換為合適的模擬電壓,控制電機向減小位置偏差的方向轉動。位置反饋采用光電編碼器,分辨率為4000線/轉,經四倍頻電路,由可編程計數(shù)器8254記錄位置脈沖數(shù),位置控制器則根據此脈沖數(shù)和指令脈沖數(shù)計算出速度指令電壓,再輸出到一個12位D/A轉換器,即得到模擬的速度指令電壓。速度反饋也利用同一個光電編碼器和計數(shù)電路,速度控制器通過對位置求一階差分計算出實際轉速,然后輸出到另一個12位D/A轉換器,將得到的模擬電壓反饋至速度控制單元的速度反饋輸入端。實際轉速ω按ω=ΔN/Ts式求取,其中ΔN為在采樣周期內的位置脈沖增量,Ts為采樣周期,該系統(tǒng)取8毫秒。
作者編寫的CNC控制程序采用前、后臺軟件結構,前臺程序是一個中斷服務程序,由硬件實現(xiàn)8毫秒定時中斷,主要完成精插補和位置控制功能;后臺程序是一個循環(huán)運行程序,主要完成數(shù)據輸入、粗插補及其它輔助功能。
3 伺服系統(tǒng)的實現(xiàn)
數(shù)模轉換采用芯片DAC1210,為了不降低分辨率,用一個電子開關CD4052處理正負號,使數(shù)模轉換達到雙極性12位,為了提高驅動能力和抑制干擾,輸出采用集成運放OP07做成射極跟隨器的形式,電路如圖2所示。
3.1 四倍頻器
四倍頻器[2,3]采用微分電路來實現(xiàn),其抗干擾能力較差。作者設計了一種四倍頻器,采用積分型單穩(wěn)態(tài)電路,如圖3所示。電路的工作原理:A、B兩路相位差90°的方波脈沖,電機正向轉動時,A領先B;電機反向轉動時,B領先A。該電路在A及A的反相-A和B及B的反相-B各接了一個積分型單穩(wěn)態(tài)電路[4],在A的上升沿、下降沿分別產生一個短脈沖A′和-A′,在B的上升沿、下降沿分別產生一個短脈沖B′和-B′。當A為低電平時,Va為高電平,G2輸出為低電平;當A上升沿來到后,G1輸出為低電平,但由于電容兩端的電壓不能突變,所以在一段時間里Va仍在閾值電平之上,G2輸出為高電平,電路進入暫穩(wěn)態(tài)。隨著電容的放電,Va不斷下降,當Va低于閾值電平時,G2輸出為低電平,待A回到低電平后,G1輸出為高電平,電容又開始充電,當Va恢復為高電平時,電路又達到穩(wěn)態(tài),為下一次上升沿的到來作好準備。由以上分析可知,A′的脈沖寬度TW等于電容開始放電到Va下降至閾值電平所經歷的時間,根據對RC電路暫態(tài)過程的分析,可知電容上的電壓Va放電時間由下式決定[4]:
式中 R′——RC電路放電回路的電阻
C′——RC電路放電回路的電容
VC(∞)——電容電壓的穩(wěn)態(tài)值
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)
本文有[www.0574-laser.com]提供,請及時關注[www.0574-laser.com]提供的內容
考慮到電路恢復時間,應使方波脈沖序列的周期為TW的7~8倍,這樣電路才能可靠地工作。可以據此選擇合適的電阻和電容。將得到的四個短脈沖序列A′、-A′、B′、-B′按圖3所示進行與或非的邏輯組合,在U1、U2的輸出端將產生表示正轉和反轉的四倍頻脈沖序列,如圖4所示。該電路有較好的抗干擾性能,因為高頻時容抗很小,而且脈沖經過二級與門的選擇
圖4 正、反轉四倍頻器脈沖波形(左:正轉 右:反轉)
3.2 脈沖計數(shù)電路與初值跳動
8254是與微機接口非常方便的可編程計數(shù)器,在方式2下計數(shù)器可自動重復計數(shù),利用它的兩個計數(shù)通道分別記錄正轉和反轉脈沖,在程序里讀入計數(shù)值并使二者相減,便可得到在采樣周期內的位置脈沖增量,給后續(xù)程序作進一步處理。作者在應用中發(fā)現(xiàn)8254有一個缺陷:對它進行初始化后,輸出鎖存器殘留有隨機數(shù),這時程序讀數(shù)就會讀到這個隨機數(shù),所以當?shù)谝粋€計數(shù)脈沖到來后,計數(shù)器開始從編程初值減一計數(shù)。當實際位置脈沖沒有來到時,程序里讀到的位置脈沖值為一隨機數(shù),當有實際位置脈沖輸入到計數(shù)器后,采樣程序讀到的是正常的位置脈沖值,所以采樣程序第一次計算出的正轉或反轉脈沖數(shù)是不正確的,而隨后計數(shù)才進入正常狀態(tài)。第一次讀數(shù)的這一隨機性將引起系統(tǒng)的劇烈跳動,稱之為“初值跳動”。這種跳動對數(shù)控機床來說是不可接受的,必須予以消除。
作者通過程序處理解決了這一問題,其方法:初始化后先記錄下輸出鎖存器的起始內容,在采樣程序里把讀入輸出鎖存器的內容與此起始數(shù)值比較,若數(shù)值不變,說明沒有計數(shù)脈沖,位置增量為零;若數(shù)值發(fā)生變化,說明已有計數(shù)脈沖到來,經過程序計算得到第一次的位置增量。此后不再判別“初值跳動”,進行正常計數(shù)。解決“初值跳動”的程序如下(用Turbo C語言實現(xiàn)):
實時采樣程序:
……
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:輸出鎖存器的讀數(shù)值
first:判斷是否有第一個脈沖到來的邏輯變量
dsp0:位置增量
P8254:8254的片選地址
8254的第三個計數(shù)通道用來產生8毫秒的定時中斷,用來觸發(fā)中斷服務程序。
4 實驗與結論
該伺服系統(tǒng)采用4000線/轉的光電編碼器,再經過四倍頻電路,脈沖當量為δ=360°/(4000×4)=0.0225°/脈沖,位置控制算法采用前向差分控制算法,調整速度反饋的D/A轉換,使輸出滿足速度控制單元A06B-6054-H005的要求:3V/1000r/min,速度環(huán)反饋系數(shù)調節(jié)為1.2,電機能在不同的恒值速度指令電壓下平穩(wěn)運轉,線性度為2000r/min/7V。