摘 要: 敘述了一個(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)問(wèn)題的解決方法
關(guān)鍵詞: 六自由度機(jī)構(gòu) 伺服控制系統(tǒng) 控制算法 伺服控制器 系統(tǒng)軟件 機(jī)構(gòu)抖動(dòng)
本文所述的六自由度機(jī)構(gòu)是用來(lái)進(jìn)行風(fēng)洞外掛物可控軌跡實(shí)驗(yàn)的主要設(shè)備,,它是外掛物模型的支撐和運(yùn)動(dòng)執(zhí)行機(jī)構(gòu),,由它來(lái)附帶一個(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ī)為核心,通過(guò)以太網(wǎng)與進(jìn)行空間位置,、姿態(tài)運(yùn)算的上位機(jī)相連,,接收上位機(jī)發(fā)給的各個(gè)自由度的行進(jìn)指令,通過(guò)伺服控制器產(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)都來(lái)自于一個(gè)差分增量式光電編碼器,其速度值是由編碼器的輸出脈沖經(jīng)過(guò)頻率/電壓變換后得到,,而位置值通過(guò)對(duì)光電編碼器的輸出脈沖計(jì)數(shù)得到,。各個(gè)自由度的控制原理如圖3所示。
TE5650A模塊實(shí)現(xiàn)系統(tǒng)的閉環(huán)調(diào)節(jié)過(guò)程,,它接受工控機(jī)發(fā)給的運(yùn)行指令,,控制各個(gè)自由度的整個(gè)運(yùn)行過(guò)程。伺服控制器的控制算法為典型的PID算法,,伺服控制器將當(dāng)前運(yùn)行軌跡過(guò)程中的目標(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)過(guò)計(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是美國(guó)Technology 80公司的基于DSP技術(shù)的伺服控制器產(chǎn)品,。它在硬件和軟件上均采用了開(kāi)放式的結(jié)構(gòu)設(shè)計(jì),在提供伺服控制功能的同時(shí),,也給使用和開(kāi)發(fā)帶來(lái)很大的方便,。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ù)是指在速度變化過(guò)程中的加速度的變化率,。
2.2 TE5650A基本結(jié)構(gòu)
圖9示出了TE5650A伺服控制器的基本結(jié)構(gòu)。
每個(gè)伺服軸通過(guò)增量式編碼器的反饋來(lái)驅(qū)動(dòng)各個(gè)軸運(yùn)行到指定位置,。運(yùn)行軌跡發(fā)生器產(chǎn)生每個(gè)伺服軸在當(dāng)前運(yùn)行模式下的每個(gè)時(shí)刻的目標(biāo)位置,、速度、加速度等參量,。數(shù)字濾波器用來(lái)實(shí)現(xiàn)PID和PIDVFF算法,,以計(jì)算輸出控制信號(hào)的大小。為了精確地同步各個(gè)軸的運(yùn)動(dòng),,TE5650A采用了雙緩存技術(shù)來(lái)實(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)測(cè),。
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)速范圍廣,、位置與速度檢測(cè)二合一等優(yōu)點(diǎn),具有良好的可靠性,。
4 控制系統(tǒng)軟件的基本結(jié)構(gòu)與功能
TE5650A模塊提供了多種形式的驅(qū)動(dòng)程序,,在Windows95\98\NT下,可以采用動(dòng)態(tài)鏈接庫(kù)(DLL)形式的驅(qū)動(dòng)程序,。它是一個(gè)函數(shù)集,,對(duì)TE5650A模塊的所有操作全都包含在這個(gè)函數(shù)集中,利用這些函數(shù),,可以編寫適合于系統(tǒng)實(shí)際情況的應(yīng)用程序,,同時(shí)還可以利用TE5650A的許多強(qiáng)大的初級(jí)功能。驅(qū)動(dòng)程序庫(kù)對(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)測(cè),、機(jī)構(gòu)故障聯(lián)鎖,、故障解除、靜態(tài)調(diào)試,、以及通過(guò)軟件驅(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)問(wèn)題
該機(jī)構(gòu)可以通過(guò)手動(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)的硬件開(kāi)銷,,我們使用其中一個(gè)TE5650A模塊剩余的一個(gè)伺服控制器,利用TE5650A對(duì)增量式編碼輸出脈沖的計(jì)數(shù)功能,將手動(dòng)輕便操縱箱的手動(dòng)進(jìn)給脈沖接入該控制器的編碼器信號(hào)輸入端,,從而實(shí)現(xiàn)手動(dòng)進(jìn)給量多少的輸入,,同時(shí)利用開(kāi)關(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í)額外的硬件開(kāi)銷和控制線路設(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ù)軸選通開(kāi)關(guān)決定哪一個(gè)軸運(yùn)行并且運(yùn)行多少,。由于系統(tǒng)軟件的參與,,一個(gè)連續(xù)的手動(dòng)脈沖計(jì)數(shù)過(guò)程被程序的循環(huán)掃描過(guò)程分成了許多小段,,如果TE5650A對(duì)每一個(gè)小段都執(zhí)行點(diǎn)對(duì)點(diǎn)的運(yùn)行方式,,由于每個(gè)小段都有升、減速乃至停止的過(guò)程,,因此機(jī)構(gòu)運(yùn)行在這種方式下顯得不太平穩(wěn),,有明顯的抖動(dòng)現(xiàn)象。由于α,、β自由度機(jī)構(gòu)的運(yùn)動(dòng)放大作用,,這種現(xiàn)象更為明顯。加快程序的循環(huán)掃描速度也不能解決這個(gè)問(wèn)題,。
經(jīng)過(guò)試驗(yàn),,我們發(fā)現(xiàn)如果在手動(dòng)過(guò)程中每一個(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)速度的快慢,,并且在速度變化過(guò)程中運(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)問(wèn)題,。
參考文獻(xiàn)
1 章燕申,,袁曾任.控制系統(tǒng)的設(shè)計(jì)與實(shí)踐.北京:清華大學(xué)出版社,1992.3
2 王子才.控制系統(tǒng)設(shè)計(jì)手冊(cè).北京:國(guó)防工業(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