張文彬
(上海電力大學自動化工程學院,上海200090)
Takagi-Sugeno(T-S)模糊是由日本學者于1985 年提出的[1],并已經(jīng)被證明可以任意精度逼近非線性模型,目前已被廣泛應用于各個領域。T-S 模糊模型與傳統(tǒng)的Mamdani 模糊模型的區(qū)別在于其后件是輸入量的組合,是確定的值而不是模糊語言。該方法的本質(zhì)是通過許多小線段來表示非線性系統(tǒng),從而實現(xiàn)對非線性系統(tǒng)的建模。
蟻獅算法(Ant Lion Optimization,ALO)是模仿自然界中蟻獅捕捉螞蟻的行為而提出的算法,是近年來新的群智能算法。由螞蟻的走動來探索解空間,而蟻獅代表了局部最優(yōu)解,并設下陷阱,來捕捉位置更優(yōu)的螞蟻。蟻獅算法的最大優(yōu)點在于其所需要的人為給定的參數(shù)少,并且容易實現(xiàn)。自2015 年被提出以來[2],就受到了廣泛的關注,對該算法的改進也在不斷地探索之中。
廣義預測控制自1987 年提出以來,憑借其優(yōu)良的控制效果受到了廣泛的關注,其對象大多為受控自回歸積分滑動平均模型(CARIMA)。其作為預測控制算法同樣具備預測模型、滾動優(yōu)化和反饋校正的特點。
廣義預測控制的對象常用以下的CARIMA 模型來描述[3]。
式中y(k),u(k)分別是對象的輸出和輸入,ξ(k)是噪聲擾動,為了簡單運算常常設C(z-1)=1。廣義預測控制的控制器目標函數(shù)如下式所示。
其中λ(j)是加權(quán)常數(shù);w(k+j)是輸出參考軌跡,其可由式(2)表示。
其中yr是設定值,a 是柔化因子。
為了求得預測輸出y(k+j),通過引入以下丟番圖方程:
其中的多項式Ej,F(xiàn)j是由步長j 和模型參數(shù)共同決定,表示為:
設Gj(z-1)=Ej(z-1)Bj(z-1),同時忽略不可測的噪聲項的干擾得到的預測輸出表達式如下所示。
令W=[w(k+1),w(k+2),...,w(k+n)]T,那么目標函數(shù)就可以表示為:
其中r=HΔu(k)+Fy(k),實際應用時只要將(GTG+λI)-1GT的第一行gT用于控制系統(tǒng)即可,即:
蟻獅算法中由蟻獅、螞蟻和精英蟻獅組成,其中精英蟻獅有著最優(yōu)的適應度,代表了全局最優(yōu)解。算法的基本流程如下:
(1)種群的初始化
隨機初始化螞蟻和蟻獅的位置,并根據(jù)適應度大小選擇蟻獅中最優(yōu)的個體作為精英蟻獅。
(2)螞蟻的隨機游走
在迭代開始后,首先根據(jù)輪盤賭的方式選擇一只蟻獅,每只螞蟻在其選擇的蟻獅和精英蟻獅的周圍進行游走。其游走位置可以有下式表示[4]:
其中t 和T 分別為當前迭代次數(shù)和最大迭代次數(shù),r(t)的值為0 或1 可定義為:
對螞蟻的位置進行標準化以確保其在解空間內(nèi)進行的游走,具體表示為:
其中ai,bi分別為第i 個變量的下限和上限分別為第t 次迭代時第i 個變量的下限和上限,同時受到被選擇的蟻獅的位置影響如式(13)所示。
其中ct,dt模仿螞蟻落入蟻獅的陷阱后,蟻獅向外刨土,最終使螞蟻進入穴底的過程。算法通過減小螞蟻的游走范圍來體現(xiàn),具體為:
w 的值隨著迭代次數(shù)的增加而增大,具體為當t>0.1T 時,w=2;t>0.5T 時,w=3;t>0.75T 時,w=4;t>0.9T時,w=5;t>0.95T 時,w=6 最終螞蟻的位置可以表示成如式(15)所示。
為了使算法能夠有更大的可能性找到全局最優(yōu)點使用混沌反向?qū)W習初始化來代替原算法的隨機初始化?;煦绯跏蓟哂须S機性和遍歷性,能使能使初始化的個體位置盡可能的遍布于整個解空間,其搜索效率明顯好于隨機初始化[5]?;诜聪?qū)W習(Opposition-Based Learning,OBL)最初由Tizhoosh 于2005 年推出,已被證明是一種增強各種優(yōu)化算法的有效方法。其主要通過計算反向解來提高找到全局最優(yōu)解的幾率,從而提高算法的收斂速度[6]。具體步驟為:
混沌初始化:本文使用Logistic 混沌算子來對N 個蟻獅位置進行初始化,其中Logistic 混沌算子如式(17)所示。
其中xn是位于0 到1 之間的隨機數(shù),通過式(17)得到N 個混沌變量,再將得到的混沌變量用于初始化種群位置。
反向?qū)W習:若個體位置表示為X={x1,x2,x3,…,xn},其 中xi∈[ai,bi],那 么xi的 反 向 位 置 可 以 表 示 為=ai+bi-xi。我們先得到N 個混沌初始化的蟻獅位置,然后在得到N 個與之對應的反向位置,再根據(jù)適應度值從這2N 個位置中挑選出較優(yōu)的N 個位置作為最終的蟻獅初始位置。
為了防止算法陷入局部最優(yōu)解,本文進行了變異操作以幫助算法跳出局部解。
根據(jù)差分算法,我們對蟻獅進行變異得到變異后的蟻獅位置如式(18)所示。
其中xE是精英蟻獅位置,xworst是適應度最差的蟻獅位置。對產(chǎn)生的變異蟻獅若其適應度優(yōu)于精英蟻獅則代替精英蟻獅,反之若優(yōu)于最差的蟻獅則代替該蟻獅。
對精英蟻獅XE={x1,x2,x3,..,xn}中隨機選擇一個元素xi令xi=li+rand*(ui-li),若變異后的適應度更優(yōu)則代替原精英蟻獅,反之則保持不變。這樣子有助于在算法迭代后期對精英蟻獅周圍的探索,跳出局部解。同時為了平衡算法的探索與局部收斂能力,對式(15)改為:
為了對算法改進的有效性進行簡單說明,本文選取了幾個基本測試函數(shù)進行測試,測試函數(shù)信息如表1所示,測試結(jié)果如圖(1-3)所示。
從上面三個函數(shù)的收斂過程中可以看出:①在迭代初期,改進的蟻獅算法的最優(yōu)值比較好,能夠有效增加收斂速度,說明了混沌反向初始化的有效性;②改進的蟻獅算法在迭代過程中能有效的跳出局部最優(yōu)點,而原始的蟻獅算法不能很好地做的該點,很好地體現(xiàn)了對原算法進行變異的作用。
廣義預測控制中的柔化因子a 和權(quán)重系數(shù)λ都是需要人為進行給定的參數(shù),而對于給定的被控對象,通過手動調(diào)速這兩個參數(shù)往往繁瑣而且難以達到滿意的效果故在本文中將改進的蟻獅算法同廣義預測控制相結(jié)合[7],通過算法來優(yōu)化優(yōu)化這兩個參數(shù)以得到滿意的效果,而目標函數(shù)選取為均方方差(MSE)如式(20)所示:
其中SP 是設定值,y 是控制輸出。
T-S 模糊的模糊規(guī)則是通過IF-THEN 規(guī)則來進行描述的:
其中xi是輸入;Air是第i 條規(guī)則的第r 個模糊集;pir是后件部分的系數(shù);R(i)表示第i 條模糊規(guī)則。而整個T-S 模糊系統(tǒng)的輸出是各個模糊規(guī)則的加權(quán)平均和,具體可以表示為:
其中C 是模糊規(guī)則數(shù);wi是第i 條規(guī)則所占權(quán)重。T-S 模糊辨識建模就是確定模型前件部分和后件部分的結(jié)構(gòu)和參數(shù)。注意到模糊規(guī)則的THEN 部分同廣義預測控制的CARIMA 模型具有相似之處,故本文使用廣義預測控制來對T-S 模糊模型進行控制。
智能材料今年來發(fā)展非常迅速,已經(jīng)被廣泛應用于精密機床、微納米平臺等,然而智能材料具有的遲滯非線性是對智能材料應用的一大阻礙,它會影響系統(tǒng)的穩(wěn)定性,和造成精度下降等問題。那么對遲滯非線性的控制研究是必不可少的。
圖1 函數(shù)f1收斂過程
表1 測試函數(shù)信息
圖2 函數(shù)f2收斂過程
圖3 函數(shù)f3收斂過程
我們使用T-S 模糊模型對遲滯非線性建模。先用如式(22)所示的電壓信號,以10kHz 的采樣頻率輸入Duhel 模型以得到對應的輸出(注意到所用的輸入電壓信號的幅值不斷減小,周期不斷增大),得到的動態(tài)模型訓練效果如圖(4)所示。
圖4 T-S建模結(jié)果
對該模型用基于改進蟻獅算法的廣義預測控制進行控制并將控制結(jié)果同單用廣義預測控制的結(jié)果相對比如圖5、圖6 所示。
圖5 控制結(jié)果對比
圖6 控制追蹤結(jié)果對比
圖5 是將系統(tǒng)控制到設定值4,從圖中可以看出使用改進蟻獅算法同廣義預測控制相結(jié)合能夠更早地達到設定值;圖6 是將系統(tǒng)的輸出跟蹤曲線4e-13tsin(2π×62t×e-t)+1 的結(jié)果,從圖中可以明顯看出所提出方法能夠更好地追蹤目標曲線。
與此同時,對系統(tǒng)的模型加入了擾動來測試其抗干擾能力,結(jié)果如圖7 所示。給模型加入擾動,系統(tǒng)也能夠很好地恢復到穩(wěn)定。
圖7 加擾動后控制結(jié)果
本文對已有的蟻獅算法進行了改進,并將其同廣義預測控制相結(jié)合,通過優(yōu)化廣義預測控制的參數(shù),來達到更好的控制效果,并將其用于對T-S 模糊模型的控制,進行仿真分析,證明了所提出方法的有效性。