牟方厲,吳 丹,董云飛
(清華大學機械工程系,北京 100084)
機器人技術結合了當代機械工程、自動控制、材料、計算機、生命科學等多學科的發(fā)展成果,是本世紀偉大且具有代表性的技術成就之一.機器人系統(tǒng)是一個具有高度非線性和不確定性的復雜系統(tǒng),機器人的控制系統(tǒng)是它的核心,機器人控制中的一個重要問題是通過給定各關節(jié)力矩使得機器人關節(jié)狀態(tài)跟蹤理想軌跡.目前對機器人控制方法的研究已取得了豐富的成果,常見的控制算法有計算力矩法、前饋補償法、PID控制、魯棒控制、自適應控制、模糊控制、神經網絡控制、迭代學習控制、滑??刂坪头囱菘刂频萚1-3].
然而,實際機器人系統(tǒng)受到系統(tǒng)建模精度,環(huán)境不確定性,參數辨識能力,計算實時性等諸多方面因素的制約,因此依賴于系統(tǒng)數學模型的大多數現代控制理論方法目前仍未在實際機器人系統(tǒng)中得到廣泛的應用.比例積分微分(proportion integral differential,PID)控制器由于具有不基于被控過程的模型,結構簡單,易于實現等優(yōu)點,仍是當前機器人系統(tǒng)(特別是關節(jié)層面)中最為主要的控制器形式.然而,受制于控制律形式,PID控制器將很難讓受控機器人兼顧良好的動態(tài)性能和靜態(tài)性能,尤其當需要機器人執(zhí)行高速、大范圍運動時,PID控制將不再有效甚至導致受控系統(tǒng)的不穩(wěn)定[4].
自抗擾控制技術(active disturbance rejection control,ADRC)是韓京清教授于20世紀90年代末期,基于PID控制思想提出的一種新型控制方法[5].自抗擾控制器不依賴于系統(tǒng)精確的數學模型,以擴張狀態(tài)觀測器(extended state observer,ESO)為核心,利用擾動估計,狀態(tài)誤差反饋和擾動補償等方法在系統(tǒng)輸出產生影響之前實現對總擾動的主動補償[6].自抗擾控制器設計時只需要知道系統(tǒng)的階次和輸入輸出通道等少量系統(tǒng)信息,具有強抗擾能力和強控制魯棒性等優(yōu)點,近年來在伺服控制系統(tǒng)[7]、工業(yè)過程控制[8]、航天航空[9]等領域內得到了廣泛的應用,具有良好的工程應用前景.
而與前述領域相比,ADRC在機器人控制上的應用目前還較少.Castaneda等[10]設計了基于ADRC的自適應控制器,用以求解具有不確定動力學模型的Delta并聯機器人的軌跡跟蹤問題.Nadhynee等[11]研究了基于擾動估計的兩足機器人魯棒控制問題,提出了一種基于高增益類線性擴展狀態(tài)觀測器的魯棒控制器來實現擾動消除.Castellanos等[12]基于ADRC設計了一種用于踝足矯形器(ankle foot orthosis,AFO)的步態(tài)跟蹤控制器.Yi Long等[13]提出了一種基于自抗擾控制的應用于下肢康復外骨骼的步態(tài)跟蹤策略,數值仿真和實驗結果均表明采用ADRC控制方法的康復系統(tǒng)能比傳統(tǒng)PID控制更準確地跟蹤目標的步態(tài).Ren等[14]針對協(xié)作機器人系統(tǒng)利用ESO提出了一種基于本體傳感器(編碼器和扭矩傳感器)的碰撞檢測方法.
以上研究展示了ADRC在機器人控制中的應用潛力,但是對于具有高速、高精度要求的機器人關節(jié)控制器,控制參數整定等控制器設計方法上仍需要進一步的研究.對機器人進行動力學前饋可以在提高穩(wěn)態(tài)、動態(tài)性能的同時減少控制器設計和整定難度.機器人動力學前饋方法主要可以分為兩類:一類是基于動力學建模和動力學參數辨識的計算力矩方式[15],如何構建準確的模型和設計有效的辨識算法是此類方法的關鍵;另一類是基于機器學習的數據驅動方式[16],確保得到的系統(tǒng)穩(wěn)定和避免參數過學習是該類方法的重點.本文將上述兩類方法進行了結合,在動力學建模和辨識的基礎上搭建了一個對建模誤差和不確定進行補償的深度神經網絡,以此來進一步提高控制性能.
本文針對機器人關節(jié)控制器展開研究,提出了一種基于ADRC的機器人關節(jié)控制器,構建Lyapunov函數證明了該控制器的穩(wěn)定性,基于遺傳算法(genetic algorithm,GA)完成了控制器參數的整定,在動力學建模和參數辨識的基礎之上設計了一個多層感知器(multilayer perceptron,MLP)網絡以完成對動力學建模不確定性的補償.最后,對提出的控制方法性能進行了仿真分析和實驗驗證.
一個具有N自由度的串聯機器人如圖1所示.其動力學模型可由以下的二階微分方程描述[17]:
圖1 N自由度串聯機器人模型Fig.1 Model of a N-joint robot
記x1=q,u=τ,則控制對象(1)可以描述為
為便于后續(xù)控制器設計,下文忽略各關節(jié)間的耦合影響,采用模組設計思想對每個關節(jié)進行獨立的控制器設計.此時每個關節(jié)的控制對象均為如下形式:
自抗擾控制器主要由生成過渡過程(微分跟蹤器(tracking differentiator,TD))、擴張觀測器(ESO)、誤差反饋律和擾動補償這幾部分組成.以二階控制對象和三階擴張觀測器為例,自抗擾控制器的結構可由如圖2所示.
圖2 自抗擾控制器結構Fig.2 Diagram of ADRC for second-order systems
圖中:v為期望輸入;u為系統(tǒng)控制輸入;uf為前饋補償輸入;y為系統(tǒng)實際輸出;v1為v的過渡過程;v2為過渡過程的微分;e1,e2為過渡過程信號與觀測信號的誤差函數;u0為中間控制量;z1,z2,z3為系統(tǒng)狀態(tài)的觀測量;b0為增益參數.
ADRC的離散表達如下:
1) 以控制目標v0為輸入的TD微分器.
2) 以控制輸入量u和系統(tǒng)輸出y為輸入估計系統(tǒng)狀態(tài)和擾動的擴張狀態(tài)觀測器.
3) 誤差反饋律和系統(tǒng)擾動補償:
其中:fhan為最速控制函數,其具體形式可見文獻[5];h為系統(tǒng)采樣步長;r0為速度因子;g1(e),g2(e),g3(e)為擴張觀測器反饋函數;fcon(e1,e2)為控制律函數;β01,β02,β03,b0為控制器參數.
本文設計的ADRC控制器為機器人關節(jié)位置控制器,其輸出控制量為關節(jié)電機的期望力矩.將系統(tǒng)(3)中存在的非線性部分、動態(tài)時變特性以及運行過程中系統(tǒng)存在的擾動整合為總擾動
并將fw擴張為新的系統(tǒng)狀態(tài)x3,此時系統(tǒng)擴張為如下的線性控制系統(tǒng):
使用以下形式的三階線性ESO對擴張系統(tǒng)進行估計和觀測:
結合TD跟蹤器和ESO觀測器,可得到以下表達,其中:r1,r2為反饋律誤差函數,e1,e2,e3為觀測誤差函數.
由系統(tǒng)方程(7),ESO方程(8)和式(9)可得到如下線性觀測器誤差系統(tǒng):
定義如下系統(tǒng)狀態(tài)與給定信號的誤差函數s1,s2:
根據式(6),使用如下形式的誤差反饋控制律:
由式(7)(10)-(11),可得到誤差系統(tǒng)
定理1考慮對系統(tǒng)(7)構建的ESO系統(tǒng)(8),在總擾動fw連續(xù)可微的假設下[18],當β01,β02,β03>0,β01β02>β03時,可以保證該觀測器誤差系統(tǒng)是漸近穩(wěn)定的.
證記Y=E=[e1e2e3]T,ue=w,有
式中:
系統(tǒng)矩陣A的特征多項式為
當β01,β02,β03>0,β01β02>β03時,系統(tǒng)穩(wěn)定且狀態(tài)完全可控可觀,并有
根據文獻[3],提高β01,β02,β03可以減小對擴張狀態(tài)的觀測誤差并提高觀測器的收斂速度,但相應的觀測器對測量噪聲將更加敏感.在初步設計時可通過近似選取β01=3ωo,將參數調節(jié)轉換為觀測器帶寬ωo的選擇.
定理2考慮閉環(huán)系統(tǒng)(13),線性ESO(8)和誤差反饋控制律(12),通過調節(jié)合適的參數k1和k2,可以保證這個閉環(huán)系統(tǒng)(13)是大范圍一致漸近穩(wěn)定的.該定理的具體證明過程可見文獻[19].
根據文獻[4],k1,k2的調節(jié)原則可以與對應的比例微分(proportion differential,PD)控制器整定過程類似,通過提高k1來加快響應與減小殘差,通過提高k2來加快響應與減小超調,且越大系統(tǒng)的相對穩(wěn)定性越高.
從上節(jié)分析可知,與PID控制相比,ADRC的控制參數數量較多,TD跟蹤器中的參數有速度因子r0和濾波因子h0;ESO中的參數有β01,β02,β03,b0;誤差反饋律中的參數有k1,k2,b0.這些控制參數的選擇將對系統(tǒng)的控制性能產生較大的影響.
在這些參數中,速度因子r0和濾波因子h0可以根據實際控制器對快速性的需要和系統(tǒng)能提供的最大加速度進行設置.
機器人關節(jié)控制器處于機器人控制架構中的底層,故控制器參數整定應盡可能的離線完成以減少在線調參可能帶來的風險.下文在對ESO和誤差反饋律的控制參數設計時依據ADRC的分離性原理,即先基于系統(tǒng)響應分別完成對擴張觀測器和誤差反饋律進行設計,再根據完整閉環(huán)系統(tǒng)進行參數的調整.
本文利用遺傳算法(GA)對剩余控制參數進行離線優(yōu)化以實現最優(yōu)控制,該過程僅需要基于一能實現系統(tǒng)穩(wěn)定運動的激勵源.本文的激勵源為一簡單設計的PID控制器(由于該控制器只需要考慮穩(wěn)定性,故設計和實現十分容易)完成系統(tǒng)響應數據的采集.完整的參數設計過程如下:
算法1ADRC控制參數優(yōu)化過程:
1) 設計一穩(wěn)定的激勵源(文中為PID控制器0);
2) 采集在控制器0運行下系統(tǒng)的控制輸入和系統(tǒng)響應;
3) 根據2)中結果離線優(yōu)化ESO參數;
4) 根據2)中結果離線學習系統(tǒng)模型;
5) 基于3)-4)中獲得結果離線優(yōu)化誤差反饋律參數;
6) 將上述離線優(yōu)化得到的參數根據閉環(huán)響應進行調整.
在ESO參數設計中使用遺傳算法進行離線優(yōu)化,優(yōu)化變量為β01,β02,β03,b0,ESO的目標是通過輸出信號根據控制輸入信號重構系統(tǒng)狀態(tài),為使得獲得的ESO具有快速估計系統(tǒng)狀態(tài)的能力,對于文中系統(tǒng),其觀測狀態(tài)為關節(jié)角度、關節(jié)角速度和關節(jié)角加速度.因此一個良好的ESO將同時具有更小的角度觀測誤差和角速度觀測誤差,故在此使用誤差絕對值積分J1作為優(yōu)化指標
單純使用J1作為優(yōu)化目標可能導致過大的ESO參數β01,β02,β03,這意味著過高的觀測帶寬.由于學習數據為PID控制下的實驗結果,故ESO的最大加速度補償輸出應與PID控制量較為一致,為了提高得到的ESO對噪聲的抑制能力并使優(yōu)化中控制參數不會無限制增長,使用J2對優(yōu)化函數進行正則
將上述指標函數進行加權組合,得到系統(tǒng)目標優(yōu)化函數J為
則該優(yōu)化問題可由下式表述:
類似地,在誤差反饋律參數設計中構建的優(yōu)化函數Je為
其中:J1主要反映了整個過程的快速性,J2體現了跟蹤過程的超調量,J3反映了最終的穩(wěn)態(tài)誤差,一個良好的控制律應使被控對象同時具有快速性、小超調和低穩(wěn)態(tài)誤差.相應的優(yōu)化問題為
本文的建模過程采用Lagrange方法,通過構建參數集將式(1)的動力學模型轉化為如下的基本參數集表述形式:
式中:KKK∈Rm×1(m <10n)為基本參數集;∈Rn×m為對應的回歸矩陣;τf∈Rn×1為關節(jié)摩擦力矩.文中采用的關節(jié)摩擦模型為如下的庫侖-粘性摩擦形式:
參數辨識的目標即為利用機器人跟蹤激勵軌跡的過程數據估計出基本參數集KKK和摩擦參數集{fc,fw},參數辨識過程詳見文獻[20].
實驗中采用的激勵軌跡為基頻0.01 Hz,20階次疊加的傅里葉軌跡,實驗使用的6自由度機器人(圖7所示)模型的基本參數集維度為22,摩擦參數集的維度為12.實驗中關節(jié)輸出扭矩是通過測量關節(jié)電流而間接獲得的,該轉換操作已由設備廠商封裝好,實際上位機中可直接從數據幀中得到各關節(jié)的力矩值.
實驗中使用滑動平均法進行辨識前的數據預處理,整個模型辨識過程在MATLAB環(huán)境下離線完成,對一次實驗數據進行辨識的時間消耗大約為25 min,使用多組辨識軌跡的辨識平均值作為最終的辨識模型.辨識結果如圖3所示.
采用關節(jié)誤差力矩的均方根誤差E1和最大關節(jié)誤差力矩比E2作為辨識精度指標,它們分別反映了平均辨識精度和最大辨識誤差水平,其定義如下:
式中:τr(i)為第i個數據點的測量力矩值,τp(i)為該點對應的預測力矩值.參數辨識結果如表1所示,其中均方根誤差E1的單位為Nm,最大關節(jié)誤差力矩比E2為無量綱的比值.
圖3 關節(jié)力矩預測值與測量值Fig.3 Prediction and measurement of the joint torque
表1 參數辨識結果Table 1 Parameter identification results
上述辨識誤差主要來源于建模誤差、系統(tǒng)中難以建模部分和參數的不確定性.為減少補償誤差、進一步提高控制性能,本文構建了一個MLP補償網絡來完成對關節(jié)誤差力矩的實時估計與補償.該網絡的輸入為一定時間T內(實驗中為連續(xù)10個采樣周期)的各關節(jié)位置、速度信息,輸出為各關節(jié)相應的誤差補償力矩.
基于辨識模型和MLP補償網絡的完整補償流程如圖4所示,最終獲得的動力學前饋力矩τfw為辨識模型的計算力矩τ1和MLP網絡補償力矩τ2之和,即τfw=τ1+τ2.這種方式可以結合動力學建模具有的可靠性及物理意義和深度神經網絡具有的強大學習能力,減少神經網絡所需的輸出值和學習負擔以及神經元產生飽和的可能.
該MLP補償網絡的具體結構如圖5所示.該網絡擁有4個隱層,層間均加有Dropout以減少過學習,激活函數均為Relu 形式,共計24,710個學習參數.該網絡在單個GPU環(huán)境下網絡訓練時間約為1 h,對輸入進行一次預測的時耗約45 μs.
圖4 動力學前饋補償流程Fig.4 Dynamic feedforward compensation process
圖5 MLP補償網絡結構Fig.5 Structure of MLP network
對相同測試數據同樣采用關節(jié)誤差力矩的均方根誤差E1和最大關節(jié)誤差力矩比E2作為精度指標,結果如表2所示.
表2 采用MLP補償后結果Table 2 Results using MLP compensation
從表中結果可知,采用MLP補償網絡后各關節(jié)誤差力矩的均方根誤差E1得到小幅優(yōu)化(約0.1~0.4 Nm),而各關節(jié)最大誤差力矩比E2均得到較大程度的改善(10%~30%),可見使用MLP補償網絡可以在不過度增加計算時間消耗的前提下減小辨識誤差,使補償力矩的可信度和精度均得到了提高.
仿真環(huán)境為MATLAB Simulink,在仿真中使用的模型物理參數為D=4,C=0.01,I=3.7.廣義擾動項d由d1,d2,d33部分構成,其中:d1為摩擦項;d2為噪聲項;d3為施加的系統(tǒng)擾動項,在仿真過程中擾動項d1,d2總是存在,控制力矩輸出限制為15 Nm.GA優(yōu)化參數中種群大小為400,最大迭代次數為400,交叉率為0.8,變異率為0.2,個體遷移率為0.2.ESO優(yōu)化權值為λ1=1,λ2=2,控制律優(yōu)化權值為λ1=1,λ2=1.5,λ3=100,利用相同的優(yōu)化目標函數和優(yōu)化參數分別對PID控制器和ADRC控制器進行參數優(yōu)化設計.
當不存在系統(tǒng)擾動項d3,跟蹤的期望軌跡為幅值等于10°的階躍信號時,仿真結果如圖6(a)所示.從仿真結果可知,使用文中設計的ADRC控制器可以獲得比bang-bang控制器和PID控制器更好的控制效果,在實現關節(jié)快速穩(wěn)定的軌跡跟蹤的同時具有良好的控制精度.
圖6 系統(tǒng)在不同擾動下關節(jié)控制效果對比Fig.6 Joint trajectories of the robot under different forms of disturbance
圖6(b)-6(c)展示了上述控制器在系統(tǒng)施加有不同形式系統(tǒng)擾動項d3下的控制效果.圖6(b)給出了在外部施加正弦擾動力矩下系統(tǒng)的控制效果.圖6(c)給出了在系統(tǒng)存在內部擾動下控制器的控制效果.從仿真結果可知,文中設計的ADRC控制器具有很好的魯棒性和較強的擾動抑制能力,不論該擾動是外部擾動還是內部擾動.
通過仿真研究驗證了所設計的關節(jié)ADRC控制器的可行性和抗擾能力,為進一步考量該方法在工程應用中的有效性與實用性,在機器人系統(tǒng)實驗平臺上進行驗證.
實驗中使用的機器人為圖7所示的大族6自由度機器人,使用具有RT內核的ROS環(huán)境完成算法1 kHz的實時運行,使用EtherCAT進行通信.在數據采集階段采用的PID控制器參數為P=10,I=0.1,D=5.優(yōu)化過程和優(yōu)化中使用的各項參數與上節(jié)的仿真中一致.
圖7 六自由度實驗機器人Fig.7 Six degrees of freedom experimental robot
實驗中各關節(jié)的期望跟蹤軌跡信號為幅值大于10°的階躍函數,經過優(yōu)化設計得到的ADRC控制器與機器人自帶PID控制器的對比實驗結果如圖8所示.
圖8 實驗機器人關節(jié)控制效果對比Fig.8 Response performances for different controllers of experimental robot
圖8(a)給出了機器人各關節(jié)的控制效果對比情況,圖8(b)給出了在文中設計的ADRC控制器下機器人各關節(jié)的跟蹤誤差曲線,圖8(c)給出了機器人關節(jié)2和關節(jié)5在施加外擾動力矩下的效果對比.由實驗結果可知,文中的ADRC控制器能控制實際機器人在約0.7 s內完成各關節(jié)大角度階躍信號的高速平穩(wěn)跟蹤,實現無超調的目標關節(jié)角度轉換,控制穩(wěn)態(tài)精誤差在0.012°之內,同時在受擾動下更快的完成擾動補償.該控制器可以獲得比傳統(tǒng)PID控制器更好的控制效果,在實現關節(jié)大范圍快速穩(wěn)定軌跡跟蹤的同時具有良好的控制精度和更強的擾動抑制能力.
本文利用自抗擾控制算法實現了機器人的關節(jié)控制,該算法具有不依賴系統(tǒng)模型,抗干擾能力強,能兼顧動態(tài)性能和穩(wěn)態(tài)精度,控制律設計較為簡單等優(yōu)點.針對受控機器人系統(tǒng)特性給出了一套實際控制器的完整設計方法與參數整定方法,根據控制指標設計相應優(yōu)化函數并利用GA算法完成了最優(yōu)控制參數的優(yōu)化,在對機器人進行動力學參數辨識的基礎上設計了一深度MLP網絡完成對建模不確定性的實時補償,提高了控制補償精度與系統(tǒng)動態(tài)性能.仿真和實驗結果均表明該控制算法能夠實現機器人快速穩(wěn)定的軌跡跟蹤,具有良好的控制精度并有很強的抗干擾能力,此外該算法不依賴于精確的系統(tǒng)模型,對硬件系統(tǒng)的要求較低,能完成對機器人的實時控制,具有較強的工程應用價值.下一步研究將完善對控制律和控制參數的優(yōu)化設計,并研究控制器在特定作業(yè)任務下的控制效果.