摘 要: 敘述了一個六自由度機(jī)構(gòu)伺服控制系統(tǒng)的基本結(jié)構(gòu)、組成、控制原理、伺服控制算法等;介紹了TE5650A控制器模塊;同時介紹了伺服控制系統(tǒng)的軟件結(jié)構(gòu)和功能,以及對由軟件驅(qū)動的手動指令進(jìn)給的機(jī)構(gòu)抖動問題的解決方法
關(guān)鍵詞: 六自由度機(jī)構(gòu) 伺服控制系統(tǒng) 控制算法 伺服控制器 系統(tǒng)軟件 機(jī)構(gòu)抖動
本文所述的六自由度機(jī)構(gòu)是用來進(jìn)行風(fēng)洞外掛物可控軌跡實驗的主要設(shè)備,它是外掛物模型的支撐和運動執(zhí)行機(jī)構(gòu),由它來附帶一個剛性物體,在一定空間范圍內(nèi)到達(dá)任意位置并形成任意姿態(tài)。它是由計算機(jī)控制的六個自由度相互獨立運動的機(jī)電一體化裝置,包括三個作直線運動的部件(軸向X、垂直方向Z、側(cè)向Y)和三個作回轉(zhuǎn)運動的部件(俯仰α、偏轉(zhuǎn)β、滾轉(zhuǎn)γ)。各個自由度的示意圖如圖1所示。
機(jī)構(gòu)的每個自由度均由一個直流伺服電機(jī)拖動,其中軸向X、垂直方向Z、側(cè)向Y采用滾珠絲杠傳動,它們將電機(jī)的旋轉(zhuǎn)運動轉(zhuǎn)換為機(jī)構(gòu)的直線運動;而俯仰α、偏轉(zhuǎn)β、滾轉(zhuǎn)γ三個自由度均采用諧波減速和齒輪傳動相結(jié)合的傳動,以形成各個姿態(tài)角的旋轉(zhuǎn)運動。機(jī)構(gòu)的每一個自由度都帶有位置反饋環(huán)節(jié)和速度反饋環(huán)節(jié)以形成閉環(huán)系統(tǒng),而用對位置變化量進(jìn)行編碼的差分增量式光電編碼器產(chǎn)生控制器的位置和速度反饋信號。本文所述的六自由度機(jī)構(gòu)控制系統(tǒng)對機(jī)構(gòu)的各個自由度都能進(jìn)行精確的運行和位置控制,同時使機(jī)構(gòu)的各個自由度運行平穩(wěn)。
1 控制系統(tǒng)的基本結(jié)構(gòu)和功能
1.1 控制系統(tǒng)組成
該機(jī)構(gòu)控制系統(tǒng)以一臺工業(yè)PC機(jī)為核心,通過以太網(wǎng)與進(jìn)行空間位置、姿態(tài)運算的上位機(jī)相連,接收上位機(jī)發(fā)給的各個自由度的行進(jìn)指令,通過伺服控制器產(chǎn)生控制信號,然后經(jīng)電機(jī)驅(qū)動器控制電機(jī)運行。其控制系統(tǒng)組成如圖2所示。
控制系統(tǒng)主要包括工控機(jī)、2個TE5650A伺服控制器、6個自由度的直流伺服電機(jī)、伺服驅(qū)動單元(PDC)及光電編碼器、手動輕便操縱箱(MPG)和用于接受、控制機(jī)構(gòu)運行狀態(tài)的I/O接口板以及相應(yīng)的外圍控制線路。其中,TE5650A伺服控制器是實現(xiàn)機(jī)構(gòu)控制的核心,每個TE5650A模塊可以控制四個自由度的伺服電機(jī),在本系統(tǒng)中,每個TE5650A模塊控制三個自由度的伺服電機(jī)。第二個TE5650A模塊除控制伺服電機(jī)外,還用于對手動輕便操縱箱的進(jìn)給指令進(jìn)行計數(shù),以實現(xiàn)軟件驅(qū)動的手動指令進(jìn)給。直流伺服驅(qū)動器PDC將TE5650A的控制信號進(jìn)行功率放大后輸出給電機(jī)。
1.2 控制系統(tǒng)原理
各個自由度的控制回路均包含速度環(huán)和位置環(huán)兩個閉環(huán)系統(tǒng),其中速度閉環(huán)主要由伺服驅(qū)動器PDC和TE5650A控制器模塊共同構(gòu)成,而位置閉環(huán)則主要由TE5650A模塊構(gòu)成。系統(tǒng)中的速度和位置反饋信號都來自于一個差分增量式光電編碼器,其速度值是由編碼器的輸出脈沖經(jīng)過頻率/電壓變換后得到,而位置值通過對光電編碼器的輸出脈沖計數(shù)得到。各個自由度的控制原理如圖3所示。
TE5650A模塊實現(xiàn)系統(tǒng)的閉環(huán)調(diào)節(jié)過程,它接受工控機(jī)發(fā)給的運行指令,控制各個自由度的整個運行過程。伺服控制器的控制算法為典型的PID算法,伺服控制器將當(dāng)前運行軌跡過程中的目標(biāo)位置與當(dāng)前的實際位置相比較產(chǎn)生位置誤差,進(jìn)行PID調(diào)節(jié)。PID算法的示意圖如圖4所示,公式如下:
其中,TPn為n時刻應(yīng)當(dāng)?shù)竭_(dá)的目標(biāo)位置;APn為n時刻的實際位置;∑En為n時刻的誤差積分和;Kp、Ki、Kd為不同軸的系統(tǒng)傳遞函數(shù)經(jīng)過計算和實驗得出的PID控制參數(shù)。
在本系統(tǒng)中,還采用帶有速度前饋的PID算法(PIDVFF)。PIDVFF算法的示意圖如圖5所示,公式如下:
其中,VEn為n時刻的速度誤差;PCn為n時刻的位置誤差PID算法的輸出;TVn為n時刻的目標(biāo)速度;AVn為n時刻的實際速度。Kvff為速度前饋系數(shù),由用戶根據(jù)實際情況設(shè)置。PIDVFF算法可以使得電機(jī)運行更加平穩(wěn)。
2 TE5650A伺服控制器
TE5650A是美國Technology 80公司的基于DSP技術(shù)的伺服控制器產(chǎn)品。它在硬件和軟件上均采用了開放式的結(jié)構(gòu)設(shè)計,在提供伺服控制功能的同時,也給使用和開發(fā)帶來很大的方便。TE5650A模塊采用PC/AT ISA總線形式,使用I/O映射方式與計算機(jī)打交道。TE5650A各個軸伺服閉環(huán)的最小控制周期為0.4ms,最大刷新頻率為2.5kHz;TE5650A支持模擬信號和脈寬調(diào)制信號(PWM)兩種輸出控制信號。
2.1 電機(jī)運行方式
TE5650A伺服控制器支持兩種基本類型的電機(jī)運行模式:速度方式和點到點方式。在速度方式下,可以設(shè)置電機(jī)的運行速度,讓電機(jī)以恒定速度運行,直到發(fā)出指令讓其停止或者改變其速度為止,其示意圖如圖6所示。在點到點方式下,由用戶設(shè)置機(jī)構(gòu)運行的目標(biāo)位置和運行模式,使TE5650A控制電機(jī)平穩(wěn)地運行到目標(biāo)位置。點到點方式主要包括梯形和S曲線兩種運行模式,其示意圖分別如圖7、圖8所示??梢钥闯?,S曲線運行模式的加速方式是逐漸加速,減速也是如此,它比梯形運行模式更加平穩(wěn)。兩種模式都需要設(shè)置目標(biāo)位置、最大速率、加速度等參數(shù),S曲線模式還需要設(shè)置加加速度參數(shù)(jerk),這個參數(shù)是指在速度變化過程中的加速度的變化率。
2.2 TE5650A基本結(jié)構(gòu)
圖9示出了TE5650A伺服控制器的基本結(jié)構(gòu)。
每個伺服軸通過增量式編碼器的反饋來驅(qū)動各個軸運行到指定位置。運行軌跡發(fā)生器產(chǎn)生每個伺服軸在當(dāng)前運行模式下的每個時刻的目標(biāo)位置、速度、加速度等參量。數(shù)字濾波器用來實現(xiàn)PID和PIDVFF算法,以計算輸出控制信號的大小。為了精確地同步各個軸的運動,TE5650A采用了雙緩存技術(shù)來實現(xiàn)各個軸的參數(shù)和運行指令的同時發(fā)送。每個軸還有正、負(fù)限位及零點控制。計算機(jī)可以隨時對TE5650A的運行狀態(tài)進(jìn)行監(jiān)測。
3 PDC直流伺服驅(qū)動器
直流伺服驅(qū)動器主要將TE5650A輸出的控制信號進(jìn)行功率放大和整形,以匹配不同的電機(jī)特性。同時,它還具有一級速度閉環(huán)控制,使系統(tǒng)運行更加平穩(wěn)。直流伺服驅(qū)動器采用了北京寶倫機(jī)電技術(shù)公司的PDC系列驅(qū)動器,它采用了先進(jìn)的智能型功率模塊和混合集成電路,具有頻帶寬、響應(yīng)速度快、調(diào)速范圍廣、位置與速度檢測二合一等優(yōu)點,具有良好的可靠性。
4 控制系統(tǒng)軟件的基本結(jié)構(gòu)與功能
TE5650A模塊提供了多種形式的驅(qū)動程序,在Windows95\98\NT下,可以采用動態(tài)鏈接庫(DLL)形式的驅(qū)動程序。它是一個函數(shù)集,對TE5650A模塊的所有操作全都包含在這個函數(shù)集中,利用這些函數(shù),可以編寫適合于系統(tǒng)實際情況的應(yīng)用程序,同時還可以利用TE5650A的許多強(qiáng)大的初級功能。驅(qū)動程序庫對TE5650A模塊的操作是進(jìn)行直接的寄存器讀寫,這使得整個系統(tǒng)有很高的處理速度。
控制系統(tǒng)軟件是建立在TE5650A模塊驅(qū)動程序之上的,它們之間的關(guān)系如圖10所示。
控制系統(tǒng)軟件主要實現(xiàn)機(jī)構(gòu)的實時狀態(tài)顯示、伺服系統(tǒng)的電源管理、TE5650A狀態(tài)監(jiān)測、機(jī)構(gòu)故障聯(lián)鎖、故障解除、靜態(tài)調(diào)試、以及通過軟件驅(qū)動的手動操作;控制軟件還具備接收上位機(jī)發(fā)給的網(wǎng)絡(luò)控制命令以運行機(jī)構(gòu)的網(wǎng)絡(luò)控制功能;另外它還可以實現(xiàn)多個軸聯(lián)動的動、靜態(tài)調(diào)試功能。
5 軟件驅(qū)動的手動指令進(jìn)給的機(jī)構(gòu)抖動問題
該機(jī)構(gòu)可以通過手動輕便操縱箱進(jìn)行各個自由度的人為手動的小范圍內(nèi)的位置和姿態(tài)調(diào)整。手動輕便操縱箱發(fā)出的進(jìn)給信號為可以反映進(jìn)給方向和速度的差分脈沖信號。為了減少整個系統(tǒng)的硬件開銷,我們使用其中一個TE5650A模塊剩余的一個伺服控制器,利用TE5650A對增量式編碼輸出脈沖的計數(shù)功能,將手動輕便操縱箱的手動進(jìn)給脈沖接入該控制器的編碼器信號輸入端,從而實現(xiàn)手動進(jìn)給量多少的輸入,同時利用開關(guān)量進(jìn)行軸選通,由工控機(jī)發(fā)出相應(yīng)的運行指令,使機(jī)構(gòu)運行。這樣設(shè)計避免了用硬件實現(xiàn)手動進(jìn)給時額外的硬件開銷和控制線路設(shè)計。手動進(jìn)給的硬件結(jié)構(gòu)如圖11所示。
在執(zhí)行手動時,由控制軟件循環(huán)掃描TE5650A對手動進(jìn)給脈沖的計數(shù)值并且清零,同時根據(jù)軸選通開關(guān)決定哪一個軸運行并且運行多少。由于系統(tǒng)軟件的參與,一個連續(xù)的手動脈沖計數(shù)過程被程序的循環(huán)掃描過程分成了許多小段,如果TE5650A對每一個小段都執(zhí)行點對點的運行方式,由于每個小段都有升、減速乃至停止的過程,因此機(jī)構(gòu)運行在這種方式下顯得不太平穩(wěn),有明顯的抖動現(xiàn)象。由于α、β自由度機(jī)構(gòu)的運動放大作用,這種現(xiàn)象更為明顯。加快程序的循環(huán)掃描速度也不能解決這個問題。
經(jīng)過試驗,我們發(fā)現(xiàn)如果在手動過程中每一個循環(huán)掃描小段采用TE5650A的速度運行方式,即將每一個小段的手動進(jìn)給脈沖計數(shù)值乘以一個當(dāng)量系數(shù),用作TE5650A的執(zhí)行速度值,機(jī)構(gòu)運行就很平穩(wěn)。即使手動進(jìn)給的脈沖速度有快有慢,機(jī)構(gòu)運行也只是反映手動速度的快慢,并且在速度變化過程中運行也很平穩(wěn)。
整個控制系統(tǒng)體積小、結(jié)構(gòu)緊湊,具有較高的可靠性。機(jī)構(gòu)的運行控制精度較高,可以達(dá)到±3×編碼器脈沖當(dāng)量以內(nèi),能夠滿足系統(tǒng)運行的需要。采用速度運行方式可以解決軟件驅(qū)動的手動指令進(jìn)給中的機(jī)構(gòu)抖動問題。
參考文獻(xiàn)
1 章燕申,袁曾任.控制系統(tǒng)的設(shè)計與實踐.北京:清華大學(xué)出版社,1992.3
2 王子才.控制系統(tǒng)設(shè)計手冊.北京:國防工業(yè)出版社,1993
3 Model 5650.5650A Family of DSP Based Servo Control Boards Software Guide.Technology 80 Inc,1997.6
4 Model 565X DSP Family Hardware Guide.Technology 80 Inc,1997.6