本發(fā)明提出了一種基于變換函數(shù)和填充函數(shù)的智能控制系統(tǒng)優(yōu)化算法,其中智能控制系統(tǒng)是多回路反饋控制系統(tǒng),它使每一個子回路的控制對象為被優(yōu)化的函數(shù),通過各子回路的反饋和多子回路的分布,實現(xiàn)控制對象優(yōu)化;變換函數(shù)簡化目標(biāo)函數(shù),從而使其全局最小點與其它局部最小值分離;填充函數(shù)具有使智能控制系統(tǒng)從一個局部最優(yōu)點跳到另一個更小的局部最優(yōu)點的功能,如此反復(fù)若干次可以得到更加精確的全局最優(yōu)點。
背景技術(shù):
反饋控制系統(tǒng)優(yōu)化算法的基本思路來源于單回路控制系統(tǒng)的反饋思想,具體的框圖模型如下圖5所示。其中,輸入給定值R一般是一個小于目標(biāo)函數(shù)最小值的常數(shù);從圖5不難看出,反饋控制系統(tǒng)主要通過輸出反饋產(chǎn)生誤差,經(jīng)過控制器控制被控對象(被優(yōu)化的函數(shù)),從而實現(xiàn)尋優(yōu),即作為控制對象的被優(yōu)化函數(shù)通過反饋和控制器使其輸出越來越小。
在圖5中,f(k)是第k次迭代時目標(biāo)函數(shù)值;控制器采用增量式PID控制策略,單回路反饋控制系統(tǒng)優(yōu)化算法的迭代公式定義為:
x(k+1)=x(k)+kpΔE(k)+kiE(k)+kdΔ2E(k) (1)
上式中的kp,ki和kd分別是PID三個自適應(yīng)調(diào)整參數(shù)。
該算法對一些復(fù)雜的多極值點的函數(shù),有時達到一定的精度后,就很難再找到更好的極值點,或者無法達到目標(biāo)要求,為此,某個變換函數(shù)被用于簡化目標(biāo)函數(shù)(控制對象)使之盡可能地成為簡單的凸函數(shù)。當(dāng)目標(biāo)函數(shù)的值遠離零時,將其值映射到1或-1,而當(dāng)目標(biāo)函數(shù)的值接近零時,則將其值盡可能映射到零。另外,由于轉(zhuǎn)換函數(shù)在零附近變化非常大,因此,通過函數(shù)變換,可以使目標(biāo)函數(shù)的全局最小點與其它靠近零點的局部最小值分離。結(jié)合具有被簡化的控制對象的智能控制系統(tǒng),我們可以得到目標(biāo)函數(shù)的更加精確的全局最小點。
如果函數(shù)T(x)滿足以下兩個性質(zhì),我們就把它叫做目標(biāo)函數(shù)f(x)的一個函數(shù)變換:
1)T(x)(其中x>0)是一個連續(xù)、可導(dǎo)的一維函數(shù)并且在(0,1)或(-1,0)上是單調(diào)的。
2)|(T(±10)-T(0))|/T(∞)≥98%
注1:性質(zhì)1保證了變換后的函數(shù)T(x)和目標(biāo)函數(shù)f(x)有著相同的全局最優(yōu)點。性質(zhì)2是給出T(x)的有效區(qū)間。
該算法面臨兩個問題的考驗。第一個問題是:如何判斷當(dāng)前的極小值點是全局最優(yōu)值點;第二個問題是:怎樣從當(dāng)前局部極小點跳出,移向目標(biāo)函數(shù)更小的局部極小值點。
填充函數(shù)法是一種能較好的解決陷入局部極小點的方法,通過構(gòu)造填充函數(shù)能有效地跳出局部極小點,找到另一個比它更小的局部極小點。為了更好地理解填充函數(shù),下面給出三個假設(shè)。
假設(shè)1:函數(shù)f(x)的一個包含最小點的連通域B1,在其內(nèi)部任意一點x出發(fā),用速降法都收斂于但B1外面的部分任意點都不能收斂于則B1叫做f(X)的一個盆域。
假設(shè)2:如果是f(x)的最大點,則f(x)包含的谷域是-f(x)的盆域。
假設(shè)3:包含局部最小值點的盆域B2是高于包含局部最小值的盆域B1當(dāng)且僅當(dāng)
如果一個函數(shù)P(x,x*)滿足以下四個條件,則它被稱為是f(x)在局部最小值點的填充函數(shù):
1)是函數(shù)P(x,x*)的一個嚴(yán)格的局部最大點。
2)在任意一個高于盆浴B1的f(x)的盆浴,P(x,x*)沒有最小點或者鞍點。
3)如果f(x)有一個在局部最小點比盆域B1小的盆域B2,則存在一點x′使得P(x,x*)最小,且它在和x″的連接線上(它是某一個鄰域)。
4)對于屬于Ω域的任意x、y,滿足和當(dāng)且僅當(dāng)P(x)≤(<)P(y)。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于針對已有技術(shù)存在的不足,提供一種基于變換函數(shù)和填充函數(shù)的智能控制系統(tǒng)優(yōu)化算法,其智能控制系統(tǒng)是多回路反饋控制系統(tǒng),它使每一個子回路的控制對象為被優(yōu)化的函數(shù),通過各子回路的反饋和多子回路的分布,實現(xiàn)控制對象優(yōu)化。因多極值點的優(yōu)化函數(shù)易陷入局部極值點,引入變換函數(shù)簡化控制對象,使被優(yōu)化的函數(shù)的全局最小點能夠與其它靠近零點的局部最小值分離。變換函數(shù)是單調(diào)一維函數(shù),不影響目標(biāo)函數(shù)的極值點的個數(shù)。基于被優(yōu)化的函數(shù)構(gòu)造的填充函數(shù)使控制系統(tǒng)跳出當(dāng)前局部最小點,并能夠在新的位置重新開始尋找比當(dāng)前最小值更小的局部最小點,從而避免使系統(tǒng)陷入局部最小點。
為達到上述目的,本發(fā)明的構(gòu)思是:智能控制系統(tǒng)采用多回路反饋控制系統(tǒng),每一個子回路的控制對象為被優(yōu)化的函數(shù),利用變換函數(shù)對控制對象進行T變換,使被優(yōu)化函數(shù)的全局最小點(接近零點的最小值)能夠與其它靠近零點的局部最小值分離,用自適應(yīng)PID控制器尋找被優(yōu)化函數(shù)的最優(yōu)值。當(dāng)被判斷為陷入局部最小值時(即相鄰兩次迭代后的被優(yōu)化函數(shù)值之差很小時),此時進入填充函數(shù)迭代,直到跳出局部最小值并找到一個更小的最小點,在此基礎(chǔ)上繼續(xù)用自適應(yīng)PID控制器尋找系統(tǒng)最優(yōu)值。
根據(jù)上述發(fā)明構(gòu)思,本發(fā)明采用下述技術(shù)方案:
第一步:對各個參數(shù)進行初始化:在可行域內(nèi)利用隨機分布確定初始點Xn×d的初值,其中n為并行控制系統(tǒng)個數(shù),d為實際自變量的維數(shù),給各個參數(shù)局部最小點x_best,全局最小點x_allbest,局部最小值f_best,全局最小值f_allbest,慣性因子w,PID算法的參數(shù)ki,kp,kd,[0,2]之間的常數(shù)c1,c2,隨機數(shù)r1,r2區(qū)間的初值,并確定算法總循環(huán)次數(shù)MN,進入填充函數(shù)子程序的最大次數(shù)TT以及填充函數(shù)內(nèi)迭代的最大次數(shù)ND,令k=1,L=1.m=1;
第二步:判斷是否結(jié)束算法流程:k>MN或L>TT,若是,則輸出目標(biāo)函數(shù)的全局最優(yōu)值f_allbest,程序結(jié)束;否則,k=k+1,gi(x)=fi(x),i=1,2,3...n;根據(jù)下列的式(3)更新自變量Xn×d和T變換后的目標(biāo)函數(shù)n個子系統(tǒng)的值f(X)=[f1,f2...fn]并判斷向量x是否超出可行域;
第三步:判斷是否進入填充函數(shù):abs(gi(x)-fi(x))<d1且m≤ND且fi(x)≥f_allbest,若是,則x(i,k)=x(i,k)+d2×(rand(1,1)-0.5)×exp(d3(k-1)/ND)
x(i,k)=x(i,k)+d4×rand(1,1)×exp(d5(k-1)/ND)×(x(i,k)-x_allbest)/||x(i,k)-x_allbest||進入填充函數(shù),更新f(x),T變換后的目標(biāo)函數(shù)n個子系統(tǒng)的值f(X)=[f1,f2...fn],gi(x)=fi(x),i=1,2,3...n,然后轉(zhuǎn)回第三步;否則,跳轉(zhuǎn)至第四步;
第四步:更新x_best,x_allbest,f_best,f_allbest;
第五步:根據(jù)式(4)更新相關(guān)誤差量E,ΔE,Δ2E。根據(jù)式(5)調(diào)整慣性因子w,PID算法的參數(shù)ki,kp,kd,然后跳轉(zhuǎn)至第二步。
上述第二步中,對目標(biāo)函數(shù)f(x)進行T變換的具體方法:目標(biāo)函數(shù)f(x)的T變換為這里T變換函數(shù)為更新自變量Xn×d的迭代方程式為:
其中x(i,k)表示第i個子系統(tǒng)的第k次迭代向量,ki,kp,kd是PID算法的參數(shù)向量,w是慣性因子。r1,r2是初值設(shè)定區(qū)間的隨機數(shù)。c1,c2是常數(shù),一般取值范圍是[0,2]。x_best(i)是第i個子系統(tǒng)在迭代過程中的最好位置向量,x_allbest是所有系統(tǒng)在迭代過程的最好位置向量。判斷向量x是否超出可行域:x<s1或x>s2,若是,則超出可行域,x(i,k+1)=x_allbest(k),更新f(X)=[f1,f2...fn];否則,沒有超出可行域,以此次迭代結(jié)果x(i,k+1)更新f(X)=[f1,f2...fn],其中k用來累計算法循環(huán)次數(shù),g(x)用來保存該次f(x)的值,MN為算法循環(huán)次數(shù)的最大值;L用來累計進入填充函數(shù)子程序的次數(shù),TT允許進入填充函數(shù)子程序的最大次數(shù);s1,s2為自變量x有效區(qū)間的邊界。
上述第三步中,判斷是否進入填充函數(shù),其判斷條件為:abs(gi(x)-fi(x))<d1且m≤ND且fi(x)≥f_allbest,m用來累計在填充函數(shù)內(nèi)迭代的次數(shù),ND為在填充函數(shù)內(nèi)迭代的最大次數(shù),d1為設(shè)定進入填充函數(shù)子程序時的相鄰兩次f(x)之差的絕對值的最大值。
2.上述第四步中,更新x_best,x_allbest,f_best,f_allbest:若f(i,k+1)<f_best(i),則x_best(i)=x(i,k+1),f_best(i)=f(i,k+1);若f_allbest(k)>f_best(i,k+1),則x_allbest(k)=x_best(i,k+1),f_allbest(k)=f_best(i,k+1)否則跳轉(zhuǎn)至步驟5)。
上述第五步中,相關(guān)誤差量E,ΔE,Δ2E的更新公式和參數(shù)ω、kp、ki和kd的自適應(yīng)修正公式如下:
η是一個非常小的正數(shù),R是系統(tǒng)輸入,f(i,k)表示第i個子系統(tǒng)的第k次系統(tǒng)輸出f(x)的值。ΔE(i,k)表示第i個子系統(tǒng)的第k次系統(tǒng)誤差E(i,k)與第k-1次系統(tǒng)誤差E(i,k-1)的差值,Δ2E(i,k)表示第i個子系統(tǒng)的第k次系統(tǒng)誤差E(i,k)和第k-1次系統(tǒng)誤差E(i,k-1)的差值與第i個子系統(tǒng)的第k-1次系統(tǒng)誤差E(i,k-1)和第k-2次系統(tǒng)誤差E(i,k-2)的差值的差值。
本發(fā)明中用到的變換函數(shù):從圖7中可清晰看出函數(shù)T(x)在原點附近的值變化很大而定義域內(nèi)遠離原點的區(qū)域變化很平緩,這說明通過變換得到的新目標(biāo)函數(shù)在遠離原點的局部最小值被削減,而在原點附近處的全局最小值被放大了,這樣就減小了系統(tǒng)陷入局部最小點的可能性。為了驗證這一點,取一個例子F1,變換函數(shù)T(x)處理前后的曲線如圖8~9所示。
本發(fā)明提出了一種不帶參數(shù)的填充函數(shù)并給出證明:
定理1:如果x1是f(x)的一個已知的局部最小點,則x1是P(x,x1)的一個嚴(yán)格的局部最大點。證明:設(shè)B1是f(x)在局部最小點x1的一個s型盆域,即對任意x∈B1有f(x)≥f(X1),則
這表明x1是P(x,x1)的一個嚴(yán)格的局部最大點。
定理2:令x1是f(x)的一個已知的局部最小點,如果x∈S1={x|f(x)≥f(X1),x≠X1},則P(x,x1)在S1域內(nèi)無固定點或者最小點。
證明:因為x∈S1,則當(dāng)f(x)>f(X1)和x≠X1,有如果d(x)=(x-x1)和x≠X1,則因此d(x)是對于任意x∈S1,P(x,x1)的一個速降方向。當(dāng)f(y)=f(X1),有則對于滿足||x-x1||>||y-x1||和||x2-x1||<||y-x1||的任意x,x2∈S1,有因此,P(x,x1)在S1域內(nèi)無固定點或者最小點。
定理3:令x1是f(x)的一個已知的局部最小點,對于任意x2∈Ω,x2≠x1,如果f(x2)≥f(x1),則x2是P(x,x1)的一個連續(xù)點,或者x2是P(x,x1)的一個下半連續(xù)點。
證明:因為x1是f(x)的B1盆域內(nèi)的一個局部最小點,所以對于任意x∈B1,有f(x)≥f(x1),則因此,P(x,x1)在x1點是連續(xù)的。如果f(x2)≠f(x1)且x2≠x1,即f(x2)<f(x1)或f(x2)>f(x1),則或這樣存在一個鄰域N(x2,δ),δ>0使對于任意x∈N(x2,δ),即P(x,x1)在x2點是連續(xù)的。如果f(x2)=f(x1)且x2≠x1,則因此x2是P(x,x1)的一個下半連續(xù)點。
定理4:令x1是f(x)的一個已知的局部最小點,x2是滿足f(x2)<f(x1)的另一個與x1鄰近的局部最小點,則存在一點x'∈S2={x,f(x)<f(X1),x∈Ω}使得P(x,x*)最小,且它在和x″的連接線上(它是某一個鄰域)。
證明:因為x1是f(x)的一個已知的局部最小點,則存在一個s型盆域B1,對于任意x∈B1,使f(x)≥f(x1),由此得到
類似地,關(guān)于局部最小點x2,存在s型盆域B2,對于某些x3∈B2,有f(x2)≤f(x3)<f(x1),則對于x3∈B2,有
因此P(x',x1)<P(x3,x1),另外P(x1,x1)=0,則當(dāng)x遠離x1時,有P(x,x1)<0。因此,當(dāng)f(x)≥f(x1)時,P(x,x1)減小,否則P(x,x1)增加。由定理4,則存在一點x'∈S2={x,f(x)<f(X1),x∈Ω}使得P(x,x*)最小,且它在和x″的連接線上(它是某一個鄰域)。
定理5:令x1是f(x)的一個已知的局部最小點,以及d是滿足dT(x-X1)>0的一個方向,如果f(x)>f(X1),則d是P(x,x1)在x1點的一個速降方向。
證明:因為f(x)>f(X1)和dT(x-X1)>0,則
因此d是P(x,x1)在x1點的一個速降方向。
定理6:令x1是f(x)的一個已知的局部最小點,對于任意x,y∈Ω滿足
f(x)≥f(X1),f(y)≥f(X1)及||x-x1||≥||y-x1||當(dāng)且僅當(dāng)P(x,x1)≤P(y,x1)。
證明:因為對于任意x,y∈Ω滿足f(x)≥f(X1),f(y)≥f(X1),則
因為單調(diào)遞增的函數(shù),則對于||x-x1||>(≥)||y-x1||,有P(x,x1)<(≤)P(y,x1)或者對于P(x,x1)<(≤)P(y,x1),有||x-x1||>(≥)||y-x1||。
注釋1:從定理1—6,很容易看出P(x,x1)是一個填充函數(shù),因為它滿足了填充函數(shù)所有的定義,當(dāng)f(x)≥f(x1),P(x,x1)減少;當(dāng)f(x)<f(x1),P(x,x1)增加,如果d是在點滿足dT(x-X1)>0的P(x,x1)速降方向,那么通過d可以找到滿足f(x)<f(x1)的搜索方向。
令是當(dāng)前局部極小點,是當(dāng)前迭代點,λ和μ是兩個給定的常數(shù)且0<λ<μ,是在的搜索方向,使
定理7:令和如果滿足則
這里,Ω是x的可行域。
證明:如果則
注釋2:從定理3,很容易看到,如果是一個滿足的搜索方向,那么當(dāng)?shù)螖?shù)達到足夠大時,搜索將達到Ω的邊界或者找到滿足f(x)<f(X1)的點。為了實現(xiàn)
和我們選擇也就是
說,因此這里,η>0。當(dāng)邊界Ω非常大的時候,η可以選為一個較大的正數(shù),否則η可以選為一個較小的正數(shù)。另外,為了避免搜索達到邊界,有必要采用分布性的學(xué)習(xí)步長,因此η可以選為一個隨機的正數(shù)。
從填充函數(shù)的定義出發(fā)得到基于填充函數(shù)算法的思路,首先使用一種局部優(yōu)化算法得到目標(biāo)函數(shù)f(X)的一個局部極小點然后在處構(gòu)造一個填充函數(shù)F(x),在處搜索一點x1,以x1為出發(fā)點用局部優(yōu)化算法極小化填充函數(shù)F(x),得到一點x2,有填充函數(shù)的性質(zhì)可知,點x2一定在比B1低的盆域內(nèi),再從現(xiàn)已取得的極小點x2為初始點用局部最優(yōu)化方法極小化目標(biāo)函數(shù)f(X),得到f(X)的另一個更優(yōu)的局部極小點交替進行上述過程就會得到目標(biāo)函數(shù)f(X)的局部極小點列利···x*,滿足從而得到目標(biāo)函數(shù)的全局極小值點。
本發(fā)明的基于變換函數(shù)和填充函數(shù)的智能控制系統(tǒng)優(yōu)化算法與現(xiàn)有技術(shù)相比較具有如下顯而易見的突出實質(zhì)性特點和顯著優(yōu)點:
1)智能控制系統(tǒng)是多回路反饋控制系統(tǒng),它使每一個子回路的控制對象為被優(yōu)化的函數(shù),通過各子回路的反饋和多子回路的分布,實現(xiàn)控制對象優(yōu)化。
2)通過函數(shù)變換簡化了被優(yōu)化函數(shù),使其在遠離遠點的局部最小值被削減而在原點附近的局部最小值被放大了,從而減小了陷入局部最小點的可能性,很大程度上增大了找到全局最小值的可能性,提高了尋優(yōu)的精度和速度。
3)當(dāng)系統(tǒng)陷入了局部最優(yōu)點時,進入填充函數(shù)迭代,使智能控制系統(tǒng)從一個局部最優(yōu)點跳到另一個更小的局部最優(yōu)點,如此反復(fù)若干次可以得到更加精確的全局最優(yōu)點。
4)多回路系統(tǒng)并行計算的智能控制系統(tǒng)與函數(shù)變換以及填充函數(shù)法的結(jié)合,既保留了智能控制系統(tǒng)的多系統(tǒng)分布并行計算的優(yōu)點,又在一定程度上克服了智能控制系統(tǒng)算法容易陷入局部最優(yōu)點的不足。
附圖說明
圖1算法主流程圖;
圖2算法子流程圖;
圖3算法子流程圖;
圖4算法子流程圖;
圖5單回路反饋控制系統(tǒng)優(yōu)化算法的模型
圖6基于變換函數(shù)和填充函數(shù)的多回路系統(tǒng)框圖;
圖7是變換函數(shù)T(x)的曲線;
圖8是F1(x)的曲線,定義域(-6<x<6);
圖9 T變換后的F1(x)即T(F1(x))的曲線,定義域(-6<x<6);
圖10對F1基準(zhǔn)函數(shù)5個算法的仿真曲線;
圖11對F2基準(zhǔn)函數(shù)5個算法的仿真曲線;
圖12對F3基準(zhǔn)函數(shù)5個算法的仿真曲線;
圖13對F4基準(zhǔn)函數(shù)5個算法的仿真曲線;
圖14對F5基準(zhǔn)函數(shù)5個算法的仿真曲線;
具體實施方式
本發(fā)明的優(yōu)選實施例結(jié)合附圖詳述如下:
實施例一:
基準(zhǔn)函數(shù):
搜索范圍:-5.12≤xi≤5.12(本文實驗采用30維)。全局最優(yōu)值:min(F1)=F1(0,...,0)=0。參見圖1~圖9,本基于變換函數(shù)和填充函數(shù)的智能控制系統(tǒng)優(yōu)化算法,其特征在于操作步驟如下:
1)對各個參數(shù)進行初始化:在可行域內(nèi)利用隨機分布確定初始點X5×30=10.24×(rand(5,30,1)-0.5),其中5為并行控制系統(tǒng)個數(shù),30為實際自變量的維數(shù),局部最小點x_best=10.24×(rand(5,30,1)-0.5),全局最小點x_allbest=0×rand(1,30,1),局部最小值f_best=2×108×rand(5,1,1),全局最小值f_allbest=2×107,慣性因子w=0.01×rand(5,30,1),PID算法的參數(shù)ki=kd=1×10-8×rand(5,30,1),kp=5×10-8×rand(5,30,1),c1=c2=1.5,r1=r2=1.0×(rand(1,1)-0.5),算法總循環(huán)次數(shù)MN=40,進入填充函數(shù)子程序的最大次數(shù)TT=80,以及填充函數(shù)內(nèi)迭代的最大次數(shù)ND=300,d1=1×10-15,d1=1×10-7,d3=5,d4=1,d5=3,k=1,L=1,m=1;
2)判斷是否結(jié)束算法流程:k>40或L>80,若是,則輸出目標(biāo)函數(shù)的全局最優(yōu)值f_allbest,程序結(jié)束;否則,k=k+1,gi(x)=fi(x),i=1,2,3,4,5;更新自變量X5×30和T變換后的目標(biāo)函數(shù)5個子系統(tǒng)的值f(X)=[f1,f2...f5]并判斷向量x是否超出可行域;
3)判斷是否進入填充函數(shù):abs(gi(x)-fi(x))<1×10-15且m≤300且fi(x)≥f_allbest,若是,則x(i,k)=x(i,k)+1×10-7×(rand(1,1)-0.5)×exp(5×(k-1)/300)
x(i,k)=x(i,k)+1×rand(1,1)×exp(3×(k-1)/300)×(x(i,k)-x_allbest)/||x(i,k)-x_allbest||進入填充函數(shù),更新f(x),T變換后的目標(biāo)函數(shù)5個子系統(tǒng)的值f(X)=[f1,f2...f5],gi(x)=fi(x),i=1,2,3,4,5,然后轉(zhuǎn)回步驟3);否則,跳轉(zhuǎn)至步驟4);
4)更新x_best,x_allbest,f_best,f_allbest;
5)更新相關(guān)誤差量E,ΔE,Δ2E;調(diào)整慣性因子w,PID算法的參數(shù)ki,kp,kd,然后跳轉(zhuǎn)至步驟2)。
實施例二:
本實施例與實施例一基本相同,特別之處在于如下:
所述操作步驟2)中,對目標(biāo)函數(shù)f(x)進行T變換的具體方法:目標(biāo)函數(shù)f(x)的T變換為這里T變換函數(shù)為更新自變量Xn×d的迭代方程式為:
其中x(i,k)表示第i個子系統(tǒng)的第k次迭代向量,x_best(i)是第i個子系統(tǒng)在迭代過程中的最好位置向量,x_allbest是所有系統(tǒng)在迭代過程的最好位置向量;判斷x(i,k+1)是否超出可行域:x<-5.12或x>5.12,若是,則超出可行域,x(i,k+1)=x_allbest(k),更新f(X)=[f1,f2...f5];否則,沒有超出可行域,以此次迭代結(jié)果x(i,k+1)更新f(X)=[f1,f2...f5]。
所述操作步驟3)判斷是否進入填充函數(shù):判斷條件為abs(gi(x)-fi(x))<1×10-15且m≤300且fi(x)≥f_allbest,若是,則x(i,k)=x(i,k)+1×10-7×(rand(1,1)-0.5)×exp(5×(k-1)/300)
x(i,k)=x(i,k)+1×rand(1,1)×exp(3×(k-1)/300)×(x(i,k)-x_allbest)/||x(i,k)-x_allbest||進入填充函數(shù),判斷是否超出可行域,然后更新f(X)=[f1,f2...f5],對f(x)進行T變換。
所述操作步驟4)更新x_best,x_allbest,f_best,f_allbest:若f(i,k+1)<f_best(i),則x_best(i)=x(i,k+1),f_best(i)=f(i,k+1);若f_allbest(k)>f_best(i,k+1),則x_allbest(k)=x_best(i,k+1),f_allbest(k)=f_best(i,k+1)否則跳轉(zhuǎn)至步驟5)。
所述操作步驟5),相關(guān)誤差量E,ΔE,Δ2E的更新公式和參數(shù)ω、kp、ki和kd的自適應(yīng)修正公式如下:
這里η=1×10-11,系統(tǒng)輸入R=-20,初始化f(X)=0×rand(5,1,1)。
實施例三:
圖1為算法主流程圖,首先按圖1對F1進行初始化,然后判斷是否結(jié)束算法,若不結(jié)束算法按圖2更新自變量X,判斷X是否超出可行域,更新f(x);然后按圖3判斷是否進入填充函數(shù),判斷X是否超出可行域,更新f(x),對f(x)進行T變換;然后按圖4更新x_best,x_allbest,f_best,f_allbest;然后按圖1更新相關(guān)誤差量E,ΔE,Δ2E的更新公式和參數(shù)ω、kp、ki和kd,循環(huán)多次上述步驟。以圖5所示經(jīng)典單回路反饋控制系統(tǒng)為基礎(chǔ),本發(fā)明采用圖6所示基于填充函數(shù)的多回路反饋控制系統(tǒng)。圖7為算法中用到的變換函數(shù)的圖形。圖8為的圖形,從圖可以看出,F(xiàn)1有很多局部極小點,不便于尋找函數(shù)的全局最小點。圖9為對F1變換后的圖形,經(jīng)變換后全局最優(yōu)解非常突出,而邊緣的局部極小點被弱化,使全局尋優(yōu)變得更容易,更精準(zhǔn)。
圖10至圖14是以F1~F5為基準(zhǔn)函數(shù)做出的仿真結(jié)果。圖中曲線1為APID算法(參數(shù)自適應(yīng)PID反饋控制系統(tǒng)優(yōu)化算法),曲線2為MAPID算法(參數(shù)自適應(yīng)多回路PID反饋控制系統(tǒng)優(yōu)化算法),曲線3為TAPID算法(基于變換函數(shù)的參數(shù)自適應(yīng)PID反饋控制系統(tǒng)優(yōu)化算法),曲線4為TMAPID算法(基于變換函數(shù)的參數(shù)自適應(yīng)多回路PID反饋控制系統(tǒng)優(yōu)化算法),曲線5為FTMAPID算法(基于變換函數(shù)和填充函數(shù)的參數(shù)自適應(yīng)多回路PID反饋控制系統(tǒng)優(yōu)化算法,即本發(fā)明論述的算法)。橫坐標(biāo)為算法迭代次數(shù),縱坐標(biāo)為f(x)的函數(shù)值。從圖10至圖14能看出其中基于變換函數(shù)和填充函數(shù)的控制系統(tǒng)優(yōu)化算法收斂的精度能進一步得到提高,收斂的速度也變的更好。
這里對每個測試函數(shù)重復(fù)實驗30次,統(tǒng)計30次中的最大值(MAX)、最小值(MIN)、成功收斂的平均值(AVG)、置信區(qū)間(Confidence Interval,按照95%置信水平)、收斂次數(shù)N以及CPU時間(CPU-TIME)。最后為了更直觀地說明問題,在同一幅圖中給出了四個算法的仿真曲線以方便進行性能比較。實驗中允許誤差為SA,即在設(shè)定迭代步數(shù)內(nèi)仿真結(jié)果與實際最優(yōu)值之間的誤差小于SA則認(rèn)為是成功收斂,否則不收斂(用“/”表示)。
表1 F1Generalized Griewanks函數(shù)的實驗結(jié)果
表2 F2Goldstein-Price函數(shù)的實驗結(jié)果
表3 F3Shubert函數(shù)的實驗結(jié)果
表4 F4Shekel’s Family函數(shù)的實驗結(jié)果
表5 F5weierstrassy函數(shù)的實驗結(jié)果
從表1至表5的數(shù)據(jù)可以看出,基于變換函數(shù)和填充函數(shù)的控制系統(tǒng)優(yōu)化算法相對于前面四種控制算法,減少了算法陷入最優(yōu)值的可能,完成了成功收斂且收斂精度都很好。
多系統(tǒng)并行計算的智能控制系統(tǒng)與填充函數(shù)法結(jié)合的基于變換函數(shù)和填充函數(shù)的控制系統(tǒng)優(yōu)化算法,一方面,既保留了智能控制系統(tǒng)的多系統(tǒng)并行計算和群體學(xué)習(xí)的優(yōu)點,又在一定程度上克服了智能控制系統(tǒng)算法容易陷入局部最優(yōu)點的不足。另一方面,智能控制系統(tǒng)算法具有較強的局部搜索能力,而填充函數(shù)法則保證了智能控制系統(tǒng)算法的全局搜索,從而大大提高了智能控制系統(tǒng)算法的尋優(yōu)精度。
下面給出對應(yīng)于圖10至圖14,作為被優(yōu)化函數(shù)的5個基準(zhǔn)測試函數(shù):
1.Generalized Rastrigin函數(shù)
函數(shù)表達式:
搜索范圍:-5.12≤xi≤5.12(本文實驗采用30維)。
全局最優(yōu)值:min(F1)=F1(0,...,0)=0。
2.Kowalik函數(shù)
函數(shù)表達式:
搜索范圍:-2≤xi≤2(自變量4維)。
全局最優(yōu)值:min(F2)≈F2(-0.1928,0.1908,0.1231,0.1358)≈3.0749e-4
3.Shubert函數(shù)
函數(shù)表達式:
搜索范圍:-10≤xi≤10(自變量2維)。全局最優(yōu)值:min(F3)=-186.7309。
4.Shekel’s Family
函數(shù)表達式:
c=[0.1 0.2 0.2 0.4 0.4 0.6 0.3 0.7 0.5 0.5]
搜索范圍:0≤xi≤10(自變量4維)。全局最優(yōu)值:min(F4)=F4(4,4,4,4)=-10.5364。
5.Weierstrass函數(shù)
函數(shù)表達式:
a=0.5,b=3,kmax=20
搜索范圍:-5.12≤xi≤5.12(本文實驗采用10維)。全局最優(yōu)值:min(F5)=F5(0,...0)=0。