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