林孫闖
(江西理工大學(xué),贛州 341000)
工業(yè)機(jī)械臂在如注塑、自動(dòng)焊接等現(xiàn)代制造業(yè)中有著廣泛應(yīng)用,一般存在著大量重復(fù)性操作。對(duì)于一個(gè)重復(fù)進(jìn)行相同操作的系統(tǒng),傳統(tǒng)的比例-積分-導(dǎo)數(shù)(Proportion-Integral-Differential,PID)控制屬于非學(xué)習(xí)控制器,每次運(yùn)行都會(huì)產(chǎn)生幾乎相同的輸出誤差,是因?yàn)樗粫?huì)利用先前操作產(chǎn)生的有效信息。迭代學(xué)習(xí)控制可以利用重復(fù)操作的特點(diǎn)優(yōu)化控制,因此迭代學(xué)習(xí)控制是解決工業(yè)機(jī)械臂控制問題的有效方法[1]。文獻(xiàn)[2]提出了迭代學(xué)習(xí)控制算法收斂性分析的一般框架,給出了各類迭代學(xué)習(xí)控制收斂性的必要條件。但是,經(jīng)典的迭代學(xué)習(xí)控制只考慮了批次間的控制性能,沒有考慮批次中的實(shí)時(shí)反饋性能,導(dǎo)致控制系統(tǒng)實(shí)際上是一個(gè)不包含實(shí)時(shí)反饋信息的開環(huán)控制系統(tǒng)。模型預(yù)測(cè)控制應(yīng)用于過程工業(yè)時(shí)展現(xiàn)出了優(yōu)越性能[3],現(xiàn)已成功應(yīng)用于軌跡跟蹤控制[4]。它通過預(yù)測(cè)未來的系統(tǒng)狀態(tài)及輸出,優(yōu)化滾動(dòng)時(shí)域,能及時(shí)處理實(shí)時(shí)干擾,保證時(shí)域跟蹤性能。迭代學(xué)習(xí)預(yù)測(cè)控制利用迭代學(xué)習(xí)控制和模型預(yù)測(cè)控制的優(yōu)點(diǎn),根據(jù)工業(yè)機(jī)械臂重復(fù)操作的特點(diǎn)來提高控制精確度。
非線性系統(tǒng)可表示為
式中:x(t)、u(t)和y(t)分別為系統(tǒng)的狀態(tài)變量、控制信號(hào)和系統(tǒng)輸出;f和g為向量函數(shù)。
假設(shè)系統(tǒng)在有限時(shí)間[0,T]上重復(fù)運(yùn)行,且f和g每次重復(fù)運(yùn)行時(shí)函數(shù)關(guān)系不變,則它們描述的系統(tǒng)有可重復(fù)性。
重復(fù)運(yùn)行的非線性系統(tǒng)可以表示為
式中:t∈[0,T];k為迭代次數(shù)。
迭代學(xué)習(xí)控制問題可以描述為對(duì)一個(gè)有限時(shí)間內(nèi)可達(dá)到期望輸出的控制系統(tǒng)。設(shè)計(jì)控制律,通過重復(fù)操作得到使系統(tǒng)輸出盡可能接近期望軌跡yd(t)的控制信號(hào)。
定義系統(tǒng)輸出誤差為
控制律的設(shè)計(jì)是研究如何利用上一次控制信號(hào)uk-1(t)和輸出誤差ek-1(t)來計(jì)算當(dāng)前操作的控制信號(hào)uk(t)。迭代學(xué)習(xí)控制方法,如圖1所示。
圖1 迭代學(xué)習(xí)控制方法
Yk=[yk(0),yk(1),…,yk(T)]、Uk=[uk(0),uk(1),…,uk(T)]、Ek=[ek(0),ek(1),…,ek(T)]分別為第k次操作全部的系統(tǒng)輸出、控制信號(hào)、輸出誤差。可以看出,迭代學(xué)習(xí)控制每次優(yōu)化得到的都是一次完整操作的控制信號(hào),即在批次軸上優(yōu)化。
模型預(yù)測(cè)控制原理,如圖2所示。在某個(gè)控制時(shí)刻,根據(jù)對(duì)預(yù)測(cè)模型的輸出采樣和反饋校正環(huán)節(jié),求解目標(biāo)優(yōu)化函數(shù),得到新的控制信號(hào),并將新的控制信號(hào)輸入預(yù)測(cè)模型得到新的預(yù)測(cè)輸出,重復(fù)上述過程即可對(duì)整個(gè)控制進(jìn)行優(yōu)化。整個(gè)控制建立在滾動(dòng)優(yōu)化、預(yù)測(cè)模型和反饋校正的基礎(chǔ)上。
圖2 模型預(yù)測(cè)控制基本原理
預(yù)測(cè)模型是預(yù)測(cè)控制的基礎(chǔ)。任何預(yù)測(cè)控制算法都建立在預(yù)測(cè)模型上。預(yù)測(cè)模型的作用是預(yù)測(cè)系統(tǒng)未來的動(dòng)態(tài),即能夠根據(jù)系統(tǒng)某個(gè)時(shí)刻的狀態(tài)和控制信號(hào),預(yù)測(cè)下個(gè)時(shí)刻的系統(tǒng)輸出。根據(jù)預(yù)測(cè)系統(tǒng)輸出與期望值的偏差改變控制信號(hào),使預(yù)測(cè)輸出最大限度地接近期望值。因此,預(yù)測(cè)模型的重點(diǎn)是它的預(yù)測(cè)作用,而不是其結(jié)構(gòu)形式。
預(yù)測(cè)模型分為參數(shù)模型和非參數(shù)模型兩類。在系統(tǒng)階躍響應(yīng)的基礎(chǔ)上建立的動(dòng)態(tài)矩陣控制和在系統(tǒng)脈沖響應(yīng)的基礎(chǔ)上建立的模型算法控制,使用的預(yù)測(cè)模型都是參數(shù)模型。使用受控自回歸積分滑動(dòng)平均模型作為數(shù)學(xué)模型的廣義預(yù)測(cè)控制。使用的預(yù)測(cè)模型是非參數(shù)模型。
滾動(dòng)優(yōu)化是預(yù)測(cè)控制的主要特點(diǎn)。與一般的全局優(yōu)化不同,預(yù)測(cè)控制會(huì)根據(jù)當(dāng)前的狀況實(shí)時(shí)計(jì)算系統(tǒng)控制信號(hào),下一時(shí)刻重新考察系統(tǒng)狀況計(jì)算新的控制信號(hào)。這種計(jì)算隨時(shí)間推進(jìn)重復(fù)進(jìn)行,“滾動(dòng)”二字生動(dòng)體現(xiàn)了這一特點(diǎn)。預(yù)測(cè)控制使用的目標(biāo)優(yōu)化函數(shù)只涉及當(dāng)前時(shí)刻和未來有限時(shí)間,因此預(yù)測(cè)控制是滾動(dòng)的有限時(shí)域優(yōu)化。
預(yù)測(cè)模型一般得到的都是一組預(yù)測(cè)輸出,輸出長度就是預(yù)測(cè)步數(shù)。根據(jù)對(duì)未來有限時(shí)刻的預(yù)測(cè),可以得到預(yù)測(cè)步數(shù)的控制信號(hào)。在實(shí)際控制中,通常存在模型誤差、噪聲等。基于固定預(yù)測(cè)模型的預(yù)測(cè)輸出不可能完全與期望輸出完全相同。為了防止誤差的累積,預(yù)測(cè)控制只實(shí)現(xiàn)當(dāng)前時(shí)刻的控制信號(hào),再根據(jù)預(yù)測(cè)輸出和實(shí)際輸出得到預(yù)測(cè)誤差,從而實(shí)時(shí)修正控制 信號(hào)。
迭代學(xué)習(xí)控制方法,如圖3所示。迭代學(xué)習(xí)預(yù)測(cè)控制可以分為兩部分,圖3下半部分為迭代學(xué)習(xí)控制,圖3上半部分為模型預(yù)測(cè)控制。在第k次操作時(shí),讀取內(nèi)存中k-1次操作的控制信號(hào)Uk-1和輸出誤差Ek-1,利用迭代學(xué)習(xí)控制律得到第k次操作的控制信號(hào)Uk。從Uk中取出t時(shí)刻的控制信號(hào)ukilc(t),加上模型預(yù)測(cè)控制得到的預(yù)測(cè)控制信號(hào)ukmpc(t|t),得到第k次操作的實(shí)際控制信號(hào)uk(t)。
圖3 迭代學(xué)習(xí)模型預(yù)測(cè)控制方法
迭代學(xué)習(xí)控制沿批次軸的二次成本函數(shù)為
假設(shè)線性化后的機(jī)械臂模型為G,則有
結(jié)合式(4)和式(5),可以得到迭代學(xué)習(xí)控制律為
下面以一個(gè)2關(guān)節(jié)機(jī)械臂模型對(duì)其進(jìn)行仿真。機(jī)械臂的動(dòng)力學(xué)模型如下[5]
2自由度機(jī)械臂系統(tǒng)參數(shù)的具體詳情,如表1所示。
表1 2自由度機(jī)械臂系統(tǒng)參數(shù)表
設(shè)定系統(tǒng)期望軌跡為q1=sin 2t,q2=cos 2t,t∈[0,3], 可重復(fù)未知擾動(dòng)Ta=[0.3sint0.1(1-e-t)]T,則關(guān)節(jié)q1、q2的最大輸出誤差圖如圖4所示。
圖4 最大輸出誤差隨迭代次數(shù)變化
可以看到,迭代學(xué)習(xí)預(yù)測(cè)控制最大輸出誤差明顯小于經(jīng)典迭代學(xué)習(xí)控制,且能用更少的迭代次數(shù)實(shí)現(xiàn)精準(zhǔn)控制。因此,相對(duì)于經(jīng)典迭代學(xué)習(xí)控制,迭代學(xué)習(xí)預(yù)測(cè)控制的控制效果更好。
迭代學(xué)習(xí)模型預(yù)測(cè)控制結(jié)合了迭代學(xué)習(xí)控制與模型預(yù)測(cè)控制的優(yōu)點(diǎn),有效利用重復(fù)操作產(chǎn)生的經(jīng)驗(yàn),通過實(shí)時(shí)優(yōu)化確保運(yùn)行過程中機(jī)械臂操作的精準(zhǔn)。但是,模型預(yù)測(cè)控制需要大量實(shí)時(shí)運(yùn)算,需要計(jì)算機(jī)擁有更高的算力。