本發明提出了一(yi)種基于(yu)變換函(han)數(shu)(shu)和(he)填充函(han)數(shu)(shu)的智(zhi)能控(kong)(kong)制系統優化(hua)算法,其(qi)中智(zhi)能控(kong)(kong)制系統是多回(hui)(hui)路(lu)反(fan)饋(kui)控(kong)(kong)制系統,它(ta)使每一(yi)個(ge)子回(hui)(hui)路(lu)的控(kong)(kong)制對象為被優化(hua)的函(han)數(shu)(shu),通過各(ge)子回(hui)(hui)路(lu)的反(fan)饋(kui)和(he)多子回(hui)(hui)路(lu)的分布,實現控(kong)(kong)制對象優化(hua);變換函(han)數(shu)(shu)簡(jian)化(hua)目標函(han)數(shu)(shu),從而使其(qi)全局(ju)(ju)最(zui)(zui)小(xiao)點(dian)與其(qi)它(ta)局(ju)(ju)部最(zui)(zui)小(xiao)值分離;填充函(han)數(shu)(shu)具有使智(zhi)能控(kong)(kong)制系統從一(yi)個(ge)局(ju)(ju)部最(zui)(zui)優點(dian)跳到另一(yi)個(ge)更小(xiao)的局(ju)(ju)部最(zui)(zui)優點(dian)的功能,如此反(fan)復若干次可以得到更加精確的全局(ju)(ju)最(zui)(zui)優點(dian)。
背景技術:
反(fan)饋控(kong)(kong)(kong)制系(xi)統優(you)化(hua)(hua)算法的基本思路來源于單回(hui)路控(kong)(kong)(kong)制系(xi)統的反(fan)饋思想,具體的框圖模型如下圖5所(suo)示。其(qi)中,輸(shu)入給定值R一般是一個小(xiao)于目標函數(shu)最小(xiao)值的常數(shu);從(cong)圖5不難看出(chu),反(fan)饋控(kong)(kong)(kong)制系(xi)統主(zhu)要通過(guo)輸(shu)出(chu)反(fan)饋產(chan)生(sheng)誤差,經過(guo)控(kong)(kong)(kong)制器控(kong)(kong)(kong)制被控(kong)(kong)(kong)對(dui)象(被優(you)化(hua)(hua)的函數(shu)),從(cong)而(er)實現尋(xun)優(you),即作(zuo)為(wei)控(kong)(kong)(kong)制對(dui)象的被優(you)化(hua)(hua)函數(shu)通過(guo)反(fan)饋和控(kong)(kong)(kong)制器使(shi)其(qi)輸(shu)出(chu)越來越小(xiao)。
在圖5中(zhong),f(k)是第k次迭(die)代時目標函數值;控(kong)制器采(cai)用增(zeng)量式PID控(kong)制策(ce)略,單(dan)回路反(fan)饋控(kong)制系統優(you)化算法的迭(die)代公式定義為:
x(k+1)=x(k)+kpΔE(k)+kiE(k)+kdΔ2E(k) (1)
上式中的kp,ki和kd分別(bie)是(shi)PID三個自適應調整參(can)數。
該(gai)算法(fa)對(dui)一些復雜(za)的(de)多極(ji)值點(dian)的(de)函(han)(han)(han)(han)(han)數(shu)(shu),有時(shi)達到(dao)(dao)一定(ding)的(de)精(jing)度后,就很難再找(zhao)到(dao)(dao)更好的(de)極(ji)值點(dian),或者無(wu)法(fa)達到(dao)(dao)目(mu)(mu)標(biao)(biao)要求,為此,某(mou)個變(bian)換函(han)(han)(han)(han)(han)數(shu)(shu)被(bei)用于簡化目(mu)(mu)標(biao)(biao)函(han)(han)(han)(han)(han)數(shu)(shu)(控(kong)制(zhi)對(dui)象)使之盡(jin)可(ke)能(neng)(neng)地(di)成(cheng)為簡單的(de)凸(tu)函(han)(han)(han)(han)(han)數(shu)(shu)。當目(mu)(mu)標(biao)(biao)函(han)(han)(han)(han)(han)數(shu)(shu)的(de)值遠離(li)零(ling)(ling)(ling)時(shi),將其值映射(she)到(dao)(dao)1或-1,而當目(mu)(mu)標(biao)(biao)函(han)(han)(han)(han)(han)數(shu)(shu)的(de)值接(jie)近(jin)零(ling)(ling)(ling)時(shi),則將其值盡(jin)可(ke)能(neng)(neng)映射(she)到(dao)(dao)零(ling)(ling)(ling)。另外,由(you)于轉(zhuan)換函(han)(han)(han)(han)(han)數(shu)(shu)在零(ling)(ling)(ling)附近(jin)變(bian)化非常大,因此,通過函(han)(han)(han)(han)(han)數(shu)(shu)變(bian)換,可(ke)以使目(mu)(mu)標(biao)(biao)函(han)(han)(han)(han)(han)數(shu)(shu)的(de)全(quan)局(ju)最(zui)(zui)小點(dian)與其它靠(kao)近(jin)零(ling)(ling)(ling)點(dian)的(de)局(ju)部最(zui)(zui)小值分離(li)。結合具有被(bei)簡化的(de)控(kong)制(zhi)對(dui)象的(de)智能(neng)(neng)控(kong)制(zhi)系統(tong),我們可(ke)以得到(dao)(dao)目(mu)(mu)標(biao)(biao)函(han)(han)(han)(han)(han)數(shu)(shu)的(de)更加精(jing)確(que)的(de)全(quan)局(ju)最(zui)(zui)小點(dian)。
如(ru)果函(han)數(shu)T(x)滿足(zu)以下兩個性質,我們就把它叫(jiao)做目標函(han)數(shu)f(x)的一個函(han)數(shu)變換:
1)T(x)(其中(zhong)x>0)是一個連續、可導的(de)一維函數并且(qie)在(zai)(0,1)或(huo)(-1,0)上(shang)是單調(diao)的(de)。
2)|(T(±10)-T(0))|/T(∞)≥98%
注(zhu)1:性質1保證了變換后的(de)函數T(x)和目標函數f(x)有(you)著相(xiang)同的(de)全局最優點。性質2是給出T(x)的(de)有(you)效(xiao)區間。
該(gai)算法面臨兩個(ge)問(wen)題(ti)的考驗。第一個(ge)問(wen)題(ti)是:如何判斷當前(qian)的極小(xiao)(xiao)(xiao)值(zhi)點(dian)(dian)是全局(ju)(ju)最優值(zhi)點(dian)(dian);第二個(ge)問(wen)題(ti)是:怎(zen)樣(yang)從當前(qian)局(ju)(ju)部極小(xiao)(xiao)(xiao)點(dian)(dian)跳(tiao)出(chu),移向目標函(han)數更小(xiao)(xiao)(xiao)的局(ju)(ju)部極小(xiao)(xiao)(xiao)值(zhi)點(dian)(dian)。
填(tian)(tian)充函數法是一種(zhong)能(neng)較好(hao)的(de)解決(jue)陷入局部極(ji)(ji)小點的(de)方法,通過構造(zao)填(tian)(tian)充函數能(neng)有效地跳出局部極(ji)(ji)小點,找到另一個比它更(geng)小的(de)局部極(ji)(ji)小點。為了更(geng)好(hao)地理解填(tian)(tian)充函數,下面給(gei)出三(san)個假設。
假設1:函數f(x)的一個包含最小點的連通域B1,在其內部任意一點x出發,用速降法都收斂于但B1外面的部分任意點都不能收斂于則B1叫(jiao)做f(X)的(de)一個盆域。
假設2:如(ru)果是f(x)的(de)最大點,則f(x)包(bao)含的(de)谷域是-f(x)的(de)盆(pen)域。
假設3:包含局部最小值點的盆域B2是高于包含局部最小值的盆域B1當且僅當
如果一個函數P(x,x*)滿足(zu)以(yi)下(xia)四個條件,則它(ta)被稱為是f(x)在局部最(zui)小值點的(de)填(tian)充函數(shu):
1)是函數P(x,x*)的(de)一(yi)個嚴(yan)格(ge)的(de)局部最(zui)大(da)點。
2)在任意一個高于盆浴B1的f(x)的盆浴,P(x,x*)沒有最小點或者(zhe)鞍點。
3)如果f(x)有一個在局部最小點比盆域B1小的盆域B2,則存在一點x′使得P(x,x*)最(zui)小(xiao),且它在和(he)x″的連(lian)接線上(它是某一(yi)個鄰域)。
4)對于屬(shu)于Ω域的任意(yi)x、y,滿足和(he)當(dang)(dang)且僅(jin)當(dang)(dang)P(x)≤(<)P(y)。
技術實現要素:
本發(fa)明的(de)(de)(de)目的(de)(de)(de)在于(yu)(yu)針對(dui)已有技術存(cun)在的(de)(de)(de)不足(zu),提供一(yi)種基于(yu)(yu)變(bian)換(huan)函(han)數和(he)填(tian)充(chong)函(han)數的(de)(de)(de)智能(neng)控(kong)制(zhi)(zhi)系(xi)統優(you)(you)(you)化算法,其(qi)(qi)智能(neng)控(kong)制(zhi)(zhi)系(xi)統是多回(hui)路反(fan)饋控(kong)制(zhi)(zhi)系(xi)統,它使每一(yi)個子(zi)回(hui)路的(de)(de)(de)控(kong)制(zhi)(zhi)對(dui)象為被優(you)(you)(you)化的(de)(de)(de)函(han)數,通過(guo)各(ge)子(zi)回(hui)路的(de)(de)(de)反(fan)饋和(he)多子(zi)回(hui)路的(de)(de)(de)分布,實(shi)現控(kong)制(zhi)(zhi)對(dui)象優(you)(you)(you)化。因(yin)多極值點(dian)(dian)的(de)(de)(de)優(you)(you)(you)化函(han)數易(yi)陷入(ru)局(ju)(ju)部(bu)極值點(dian)(dian),引(yin)入(ru)變(bian)換(huan)函(han)數簡化控(kong)制(zhi)(zhi)對(dui)象,使被優(you)(you)(you)化的(de)(de)(de)函(han)數的(de)(de)(de)全局(ju)(ju)最(zui)(zui)小(xiao)點(dian)(dian)能(neng)夠與(yu)其(qi)(qi)它靠近零點(dian)(dian)的(de)(de)(de)局(ju)(ju)部(bu)最(zui)(zui)小(xiao)值分離(li)。變(bian)換(huan)函(han)數是單調一(yi)維函(han)數,不影響(xiang)目標函(han)數的(de)(de)(de)極值點(dian)(dian)的(de)(de)(de)個數。基于(yu)(yu)被優(you)(you)(you)化的(de)(de)(de)函(han)數構(gou)造(zao)的(de)(de)(de)填(tian)充(chong)函(han)數使控(kong)制(zhi)(zhi)系(xi)統跳出當前局(ju)(ju)部(bu)最(zui)(zui)小(xiao)點(dian)(dian),并能(neng)夠在新的(de)(de)(de)位置重(zhong)新開始(shi)尋(xun)找比(bi)當前最(zui)(zui)小(xiao)值更小(xiao)的(de)(de)(de)局(ju)(ju)部(bu)最(zui)(zui)小(xiao)點(dian)(dian),從而避(bi)免使系(xi)統陷入(ru)局(ju)(ju)部(bu)最(zui)(zui)小(xiao)點(dian)(dian)。
為(wei)達到上(shang)述目的(de),本發明的(de)構思是:智能(neng)控(kong)(kong)(kong)制(zhi)(zhi)系(xi)統(tong)采用(yong)(yong)多回路(lu)反饋控(kong)(kong)(kong)制(zhi)(zhi)系(xi)統(tong),每一個(ge)子回路(lu)的(de)控(kong)(kong)(kong)制(zhi)(zhi)對象(xiang)為(wei)被(bei)優化的(de)函(han)(han)數(shu),利(li)用(yong)(yong)變換函(han)(han)數(shu)對控(kong)(kong)(kong)制(zhi)(zhi)對象(xiang)進(jin)行(xing)T變換,使被(bei)優化函(han)(han)數(shu)的(de)全局(ju)最(zui)小(xiao)(xiao)(xiao)點(dian)(接(jie)近零點(dian)的(de)最(zui)小(xiao)(xiao)(xiao)值(zhi)(zhi)(zhi)(zhi))能(neng)夠與其它(ta)靠近零點(dian)的(de)局(ju)部最(zui)小(xiao)(xiao)(xiao)值(zhi)(zhi)(zhi)(zhi)分離(li),用(yong)(yong)自適(shi)應PID控(kong)(kong)(kong)制(zhi)(zhi)器尋(xun)找被(bei)優化函(han)(han)數(shu)的(de)最(zui)優值(zhi)(zhi)(zhi)(zhi)。當被(bei)判斷為(wei)陷入局(ju)部最(zui)小(xiao)(xiao)(xiao)值(zhi)(zhi)(zhi)(zhi)時(shi)(即相鄰(lin)兩次迭代(dai)后的(de)被(bei)優化函(han)(han)數(shu)值(zhi)(zhi)(zhi)(zhi)之差很小(xiao)(xiao)(xiao)時(shi)),此時(shi)進(jin)入填充函(han)(han)數(shu)迭代(dai),直到跳出局(ju)部最(zui)小(xiao)(xiao)(xiao)值(zhi)(zhi)(zhi)(zhi)并找到一個(ge)更小(xiao)(xiao)(xiao)的(de)最(zui)小(xiao)(xiao)(xiao)點(dian),在此基礎上(shang)繼續(xu)用(yong)(yong)自適(shi)應PID控(kong)(kong)(kong)制(zhi)(zhi)器尋(xun)找系(xi)統(tong)最(zui)優值(zhi)(zhi)(zhi)(zhi)。
根據上述發明(ming)構思,本(ben)發明(ming)采用(yong)下述技(ji)術方案:
第一步:對各個參數進行初始化:在可行域內利用隨機分布確定初始點Xn×d的初值,其中n為并行控制系統個數,d為實際自變量的維數,給各個參數局部最小點x_best,全局最小點x_allbest,局部最小值f_best,全局最小值f_allbest,慣性因子w,PID算法的參數ki,kp,kd,[0,2]之間的常數c1,c2,隨機數r1,r2區(qu)間的(de)(de)(de)初值(zhi),并確定算法(fa)總循(xun)環次數MN,進(jin)入填充函數子(zi)程(cheng)序的(de)(de)(de)最大(da)次數TT以(yi)及填充函數內迭代(dai)的(de)(de)(de)最大(da)次數ND,令k=1,L=1.m=1;
第二步:判斷是否結束算法流程:k>MN或L>TT,若是,則輸出目標函數的全局最優值f_allbest,程序結束;否則,k=k+1,gi(x)=fi(x),i=1,2,3...n;根據下列的式(3)更新自變量Xn×d和T變換后的目標函數n個子系統的值f(X)=[f1,f2...fn]并判斷向量x是否超出可行域;
第三步:判斷是否進入填充函數: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||進入填充函數,更新f(x),T變換后的目標函數n個子系統的值f(X)=[f1,f2...fn],gi(x)=fi(x),i=1,2,3...n,然后轉回第三(san)步(bu);否則(ze),跳轉至第四步(bu);
第四步:更新x_best,x_allbest,f_best,f_allbest;
第五步:根據式(4)更新相關誤差量E,ΔE,Δ2E。根據式(5)調整慣性因子w,PID算法的參數ki,kp,kd,然后跳(tiao)轉至第二步。
上述第二步中,對目標函數f(x)進行T變換的具體方法:目標函數f(x)的T變換為這里T變換函數為更新自變量Xn×d的迭代方程式為:
其中x(i,k)表示第i個子系統的第k次迭代向量,ki,kp,kd是PID算法的參數向量,w是慣性因子。r1,r2是初值設定區間的隨機數。c1,c2是常數,一般取值范圍是[0,2]。x_best(i)是第i個子系統在迭代過程中的最好位置向量,x_allbest是所有系統在迭代過程的最好位置向量。判斷向量x是否超出可行域:x<s1或x>s2,若是,則超出可行域,x(i,k+1)=x_allbest(k),更新f(X)=[f1,f2...fn];否則,沒有超出可行域,以此次迭代結果x(i,k+1)更新f(X)=[f1,f2...fn],其中k用來累計算法循環次數,g(x)用來保存該次f(x)的值,MN為算法循環次數的最大值;L用來累計進入填充函數子程序的次數,TT允許進入填充函數子程序的最大次數;s1,s2為自(zi)變量x有效區間的邊界(jie)。
上述第三步中,判斷是否進入填充函數,其判斷條件為:abs(gi(x)-fi(x))<d1且m≤ND且fi(x)≥f_allbest,m用來累計在填充函數內迭代的次數,ND為在填充函數內迭代的最大次數,d1為設定進入填(tian)充函數子程序時(shi)的(de)相鄰兩次f(x)之差的(de)絕(jue)對值的(de)最大值。
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)否則跳轉(zhuan)至步驟5)。
上述第五步中,相關誤差量E,ΔE,Δ2E的更新公式和參數ω、kp、ki和kd的自適(shi)應修(xiu)正(zheng)公式如(ru)下:
η是一個非常小的正數,R是系統輸入,f(i,k)表示第i個子系統的第k次系統輸出f(x)的值。ΔE(i,k)表示第i個子系統的第k次系統誤差E(i,k)與第k-1次系統誤差E(i,k-1)的差值,Δ2E(i,k)表(biao)示第(di)i個子(zi)系(xi)統的(de)第(di)k次(ci)系(xi)統誤(wu)(wu)差(cha)E(i,k)和第(di)k-1次(ci)系(xi)統誤(wu)(wu)差(cha)E(i,k-1)的(de)差(cha)值與(yu)第(di)i個子(zi)系(xi)統的(de)第(di)k-1次(ci)系(xi)統誤(wu)(wu)差(cha)E(i,k-1)和第(di)k-2次(ci)系(xi)統誤(wu)(wu)差(cha)E(i,k-2)的(de)差(cha)值的(de)差(cha)值。
本(ben)發明中用(yong)到的(de)變(bian)(bian)換函(han)數:從(cong)圖7中可(ke)清(qing)晰看出(chu)函(han)數T(x)在原(yuan)點(dian)附近的(de)值(zhi)變(bian)(bian)化(hua)很(hen)大(da)而定義域內遠離原(yuan)點(dian)的(de)區域變(bian)(bian)化(hua)很(hen)平緩,這(zhe)(zhe)說明通過變(bian)(bian)換得到的(de)新目標函(han)數在遠離原(yuan)點(dian)的(de)局部(bu)最(zui)小(xiao)值(zhi)被削減(jian),而在原(yuan)點(dian)附近處的(de)全局最(zui)小(xiao)值(zhi)被放大(da)了,這(zhe)(zhe)樣就減(jian)小(xiao)了系統陷入局部(bu)最(zui)小(xiao)點(dian)的(de)可(ke)能性。為了驗證(zheng)這(zhe)(zhe)一點(dian),取一個例子(zi)F1,變(bian)(bian)換函(han)數T(x)處理(li)前后的(de)曲線如圖8~9所示(shi)。
本發明(ming)提出(chu)了一種不帶參數(shu)的填充(chong)函數(shu)并給出(chu)證明(ming):
定理1:如果x1是f(x)的一個已知的局部最小點,則x1是P(x,x1)的一個嚴格的局部最大點。證明:設B1是f(x)在局部最小點x1的一個s型盆域,即對任意x∈B1有f(x)≥f(X1),則
這表明x1是P(x,x1)的(de)一(yi)個嚴格的(de)局(ju)部最大點。
定理2:令x1是f(x)的一個已知的局部最小點,如果x∈S1={x|f(x)≥f(X1),x≠X1},則P(x,x1)在S1域內(nei)無(wu)固定點(dian)或者最小點(dian)。
證明:因為x∈S1,則當f(x)>f(X1)和x≠X1,有如果d(x)=(x-x1)和x≠X1,則因此d(x)是對于任意x∈S1,P(x,x1)的一個速降方向。當f(y)=f(X1),有則對于滿足||x-x1||>||y-x1||和||x2-x1||<||y-x1||的任意x,x2∈S1,有因此,P(x,x1)在S1域內無固定點或者最小點。
定理3:令x1是f(x)的一個已知的局部最小點,對于任意x2∈Ω,x2≠x1,如果f(x2)≥f(x1),則x2是P(x,x1)的一個連續點,或者x2是P(x,x1)的一(yi)個(ge)下半(ban)連續點。
證明:因為x1是f(x)的B1盆域內的一個局部最小點,所以對于任意x∈B1,有f(x)≥f(x1),則因此,P(x,x1)在x1點是連續的。如果f(x2)≠f(x1)且x2≠x1,即f(x2)<f(x1)或f(x2)>f(x1),則或這樣存在一個鄰域N(x2,δ),δ>0使對于任意x∈N(x2,δ),即P(x,x1)在x2點是連續的。如果f(x2)=f(x1)且x2≠x1,則因此x2是P(x,x1)的(de)一個下半連(lian)續點。
定理4:令x1是f(x)的一個已知的局部最小點,x2是滿足f(x2)<f(x1)的另一個與x1鄰近的局部最小點,則存在一點x'∈S2={x,f(x)<f(X1),x∈Ω}使得P(x,x*)最小(xiao),且它在和x″的連接(jie)線上(shang)(它是(shi)某一個鄰域)。
證明:因為x1是f(x)的一個已知的局部最小點,則存在一個s型盆域B1,對于任意x∈B1,使f(x)≥f(x1),由此得到
類似地,關于局部最小點x2,存在s型盆域B2,對于某些x3∈B2,有f(x2)≤f(x3)<f(x1),則對于x3∈B2,有
因此P(x',x1)<P(x3,x1),另外P(x1,x1)=0,則當x遠離x1時,有P(x,x1)<0。因此,當f(x)≥f(x1)時,P(x,x1)減小,否則P(x,x1)增加。由定理4,則存在一點x'∈S2={x,f(x)<f(X1),x∈Ω}使得P(x,x*)最小,且(qie)它(ta)在和x″的連(lian)接線(xian)上(shang)(它(ta)是某一個鄰(lin)域)。
定理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)的(de)(de)一個已知的(de)(de)局部最小(xiao)點,對于任意x,y∈Ω滿足
f(x)≥f(X1),f(y)≥f(X1)及||x-x1||≥||y-x1||當且僅當P(x,x1)≤P(y,x1)。
證明:因為對于任意x,y∈Ω滿足f(x)≥f(X1),f(y)≥f(X1),則
因為單調遞增的函數,則對于||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)是一個填充函數,因為它滿足了填充函數所有的定義,當f(x)≥f(x1),P(x,x1)減少;當f(x)<f(x1),P(x,x1)增加,如果d是在點滿足dT(x-X1)>0的P(x,x1)速降方向,那么通過d可以找到滿足f(x)<f(x1)的搜索方向。
令(ling)是當(dang)前(qian)局部極小點,是當(dang)前(qian)迭代點,λ和μ是兩個(ge)給定的常數且0<λ<μ,是在(zai)的搜索方向,使
定理7:令和(he)如果(guo)滿(man)足則
這里,Ω是x的可行域(yu)。
證明:如果則
注釋2:從定理3,很容易看到,如果是一個滿足的搜索方向,那么當迭代次數達到足夠大時,搜索將達到Ω的邊界或者找到滿足f(x)<f(X1)的點。為了實現
和我們選擇也就是
說,因(yin)此這里,η>0。當(dang)邊界(jie)Ω非常大的(de)(de)時候,η可(ke)以(yi)選為(wei)一(yi)個較大的(de)(de)正數,否則(ze)η可(ke)以(yi)選為(wei)一(yi)個較小的(de)(de)正數。另(ling)外,為(wei)了避免(mian)搜索達到邊界(jie),有必要采用分布性的(de)(de)學習步長,因(yin)此η可(ke)以(yi)選為(wei)一(yi)個隨機的(de)(de)正數。
從填充函數的定義出發得到基于填充函數算法的思路,首先使用一種局部優化算法得到目標函數f(X)的一個局部極小點然后在處構造一個填充函數F(x),在處搜索一點x1,以x1為出發點用局部優化算法極小化填充函數F(x),得到一點x2,有填充函數的性質可知,點x2一定在比B1低的盆域內,再從現已取得的極小點x2為初始點用局部最優化(hua)方法極(ji)(ji)小(xiao)(xiao)(xiao)化(hua)目標函數(shu)(shu)f(X),得(de)(de)到f(X)的(de)另一個(ge)更優的(de)局部極(ji)(ji)小(xiao)(xiao)(xiao)點交替進行上述過程就會得(de)(de)到目標函數(shu)(shu)f(X)的(de)局部極(ji)(ji)小(xiao)(xiao)(xiao)點列利···x*,滿(man)足從(cong)而得(de)(de)到目標函數(shu)(shu)的(de)全(quan)局極(ji)(ji)小(xiao)(xiao)(xiao)值點。
本發明的(de)基于(yu)變換函數和填充函數的(de)智能(neng)控制系統(tong)優化算法(fa)與現有技(ji)術相比較具有如下顯(xian)而(er)易見的(de)突出實質性特(te)點和顯(xian)著優點:
1)智能(neng)控制系(xi)統(tong)(tong)是多(duo)回路(lu)(lu)反(fan)饋控制系(xi)統(tong)(tong),它使每一個(ge)子(zi)回路(lu)(lu)的(de)控制對(dui)象為被優化(hua)的(de)函數(shu),通過(guo)各子(zi)回路(lu)(lu)的(de)反(fan)饋和多(duo)子(zi)回路(lu)(lu)的(de)分布(bu),實現控制對(dui)象優化(hua)。
2)通過函數(shu)變換簡化了(le)被優化函數(shu),使(shi)其在遠(yuan)離遠(yuan)點的(de)局部最小(xiao)(xiao)值(zhi)被削(xue)減而在原(yuan)點附近的(de)局部最小(xiao)(xiao)值(zhi)被放(fang)大了(le),從而減小(xiao)(xiao)了(le)陷入局部最小(xiao)(xiao)點的(de)可能(neng)性,很大程(cheng)度(du)(du)上增(zeng)大了(le)找到全局最小(xiao)(xiao)值(zhi)的(de)可能(neng)性,提高了(le)尋優的(de)精度(du)(du)和速度(du)(du)。
3)當(dang)系統陷入了局部最優點時,進入填充(chong)函數迭代,使智能控(kong)制系統從一個局部最優點跳(tiao)到(dao)另一個更(geng)小的(de)局部最優點,如(ru)此反復若干次可以得到(dao)更(geng)加精確(que)的(de)全局最優點。
4)多回(hui)路系(xi)(xi)統(tong)并行(xing)計算的(de)智能(neng)控制系(xi)(xi)統(tong)與函數(shu)變換以(yi)及填充(chong)函數(shu)法(fa)的(de)結合(he),既保(bao)留了(le)智能(neng)控制系(xi)(xi)統(tong)的(de)多系(xi)(xi)統(tong)分布并行(xing)計算的(de)優點,又在一定(ding)程度上克服了(le)智能(neng)控制系(xi)(xi)統(tong)算法(fa)容易(yi)陷入局(ju)部最優點的(de)不足。
附圖說明
圖1算法主流程圖;
圖2算法子流程圖;
圖3算法子流程圖;
圖4算法子流程圖;
圖(tu)5單回路反饋控(kong)制系統(tong)優(you)化算法的模型(xing)
圖(tu)6基于變換(huan)函(han)數和填充函(han)數的多(duo)回(hui)路系統框圖(tu);
圖7是變換函數T(x)的曲線;
圖8是F1(x)的曲線,定義域(-6<x<6);
圖9 T變換后的F1(x)即T(F1(x))的曲線,定義域(-6<x<6);
圖10對F1基準函數5個算法(fa)的仿真曲線;
圖11對F2基(ji)準函數5個算(suan)法的仿真(zhen)曲(qu)線(xian);
圖12對(dui)F3基準函數5個算法的仿真(zhen)曲線;
圖13對F4基準函數5個(ge)算法的仿真(zhen)曲(qu)線;
圖14對F5基準函(han)數5個算法的仿真曲(qu)線(xian);
具體實施方式
本發(fa)明的優(you)選實(shi)施例結(jie)合附圖(tu)詳述(shu)如下:
實施例一:
基準函數:
搜索范圍:-5.12≤xi≤5.12(本文(wen)實驗采用30維(wei))。全局(ju)最優值:min(F1)=F1(0,...,0)=0。參(can)見圖1~圖9,本基于變換函數(shu)和填充函數(shu)的(de)智能控(kong)制系統優化算法(fa),其特征(zheng)在于操作(zuo)步驟如下(xia):
1)對各個參數進行初始化:在可行域內利用隨機分布確定初始點X5×30=10.24×(rand(5,30,1)-0.5),其中5為并行控制系統個數,30為實際自變量的維數,局部最小點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算法的參數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),算法總循環次數MN=40,進入填充函數子程序的最大次數TT=80,以及填充函數內迭代的最大次數ND=300,d1=1×10-15,d1=1×10-7,d3=5,d4=1,d5=3,k=1,L=1,m=1;
2)判斷是否結束算法流程:k>40或L>80,若是,則輸出目標函數的全局最優值f_allbest,程序結束;否則,k=k+1,gi(x)=fi(x),i=1,2,3,4,5;更新自變量X5×30和T變換后的目標函數5個子系統的值f(X)=[f1,f2...f5]并判斷向量x是否(fou)超出可行域;
3)判斷是否進入填充函數: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||進入填充函數,更新f(x),T變換后的目標函數5個子系統的值f(X)=[f1,f2...f5],gi(x)=fi(x),i=1,2,3,4,5,然后轉(zhuan)回步驟3);否(fou)則,跳轉(zhuan)至步驟4);
4)更新x_best,x_allbest,f_best,f_allbest;
5)更新相關誤差量E,ΔE,Δ2E;調整慣性因子w,PID算法的參數ki,kp,kd,然后跳轉(zhuan)至(zhi)步驟2)。
實施例二:
本實(shi)施例(li)與實(shi)施例(li)一基本相同,特別之處(chu)在于(yu)如下:
所述操作步驟2)中,對目標函數f(x)進行T變換的具體方法:目標函數f(x)的T變換為這里T變換函數為更新自變量Xn×d的迭代方程式為:
其中x(i,k)表示第i個子系統的第k次迭代向量,x_best(i)是第i個子系統在迭代過程中的最好位置向量,x_allbest是所有系統在迭代過程的最好位置向量;判斷x(i,k+1)是否超出可行域:x<-5.12或x>5.12,若是,則超出可行域,x(i,k+1)=x_allbest(k),更新f(X)=[f1,f2...f5];否則,沒有超出可行域,以此次迭代結果x(i,k+1)更新f(X)=[f1,f2...f5]。
所述操作步驟3)判斷是否進入填充函數:判斷條件為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||進入填充函數,判斷是否超出可行域,然后更新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)否則(ze)跳轉至步驟5)。
所述操作步驟5),相關誤差量E,ΔE,Δ2E的更新公式和參數ω、kp、ki和kd的自適(shi)應修正公(gong)式如(ru)下:
這里η=1×10-11,系統輸(shu)入R=-20,初始化f(X)=0×rand(5,1,1)。
實施例三:
圖1為算法主流程圖,首先按圖1對F1進行初始化,然后判斷是否結束算法,若不結束算法按圖2更新自變量X,判斷X是否超出可行域,更新f(x);然后按圖3判斷是否進入填充函數,判斷X是否超出可行域,更新f(x),對f(x)進行T變換;然后按圖4更新x_best,x_allbest,f_best,f_allbest;然后按圖1更新相關誤差量E,ΔE,Δ2E的更新公式和參數ω、kp、ki和kd,循環(huan)多次(ci)上述步驟(zou)。以(yi)圖(tu)(tu)5所示經(jing)典單回(hui)路反饋(kui)控(kong)制(zhi)系(xi)統(tong)為(wei)基(ji)礎,本(ben)發明采(cai)用圖(tu)(tu)6所示基(ji)于填充函數的(de)(de)多回(hui)路反饋(kui)控(kong)制(zhi)系(xi)統(tong)。圖(tu)(tu)7為(wei)算法中用到的(de)(de)變換(huan)函數的(de)(de)圖(tu)(tu)形(xing)(xing)。圖(tu)(tu)8為(wei)的(de)(de)圖(tu)(tu)形(xing)(xing),從圖(tu)(tu)可以(yi)看出,F1有很多局部極(ji)小點,不便于尋(xun)找函數的(de)(de)全(quan)局最小點。圖(tu)(tu)9為(wei)對F1變換(huan)后的(de)(de)圖(tu)(tu)形(xing)(xing),經(jing)變換(huan)后全(quan)局最優解非常突出,而邊緣的(de)(de)局部極(ji)小點被弱(ruo)化(hua),使全(quan)局尋(xun)優變得更(geng)容易,更(geng)精準。
圖10至圖14是以(yi)F1~F5為(wei)基(ji)準函(han)(han)(han)數(shu)(shu)(shu)(shu)(shu)做出的(de)仿真(zhen)結(jie)果。圖中曲線(xian)(xian)1為(wei)APID算(suan)(suan)法(fa)(fa)(fa)(參(can)(can)數(shu)(shu)(shu)(shu)(shu)自(zi)適(shi)應(ying)PID反(fan)饋(kui)(kui)控(kong)(kong)制(zhi)系(xi)(xi)統(tong)(tong)(tong)優(you)化(hua)(hua)算(suan)(suan)法(fa)(fa)(fa)),曲線(xian)(xian)2為(wei)MAPID算(suan)(suan)法(fa)(fa)(fa)(參(can)(can)數(shu)(shu)(shu)(shu)(shu)自(zi)適(shi)應(ying)多(duo)回(hui)路PID反(fan)饋(kui)(kui)控(kong)(kong)制(zhi)系(xi)(xi)統(tong)(tong)(tong)優(you)化(hua)(hua)算(suan)(suan)法(fa)(fa)(fa)),曲線(xian)(xian)3為(wei)TAPID算(suan)(suan)法(fa)(fa)(fa)(基(ji)于(yu)變(bian)換函(han)(han)(han)數(shu)(shu)(shu)(shu)(shu)的(de)參(can)(can)數(shu)(shu)(shu)(shu)(shu)自(zi)適(shi)應(ying)PID反(fan)饋(kui)(kui)控(kong)(kong)制(zhi)系(xi)(xi)統(tong)(tong)(tong)優(you)化(hua)(hua)算(suan)(suan)法(fa)(fa)(fa)),曲線(xian)(xian)4為(wei)TMAPID算(suan)(suan)法(fa)(fa)(fa)(基(ji)于(yu)變(bian)換函(han)(han)(han)數(shu)(shu)(shu)(shu)(shu)的(de)參(can)(can)數(shu)(shu)(shu)(shu)(shu)自(zi)適(shi)應(ying)多(duo)回(hui)路PID反(fan)饋(kui)(kui)控(kong)(kong)制(zhi)系(xi)(xi)統(tong)(tong)(tong)優(you)化(hua)(hua)算(suan)(suan)法(fa)(fa)(fa)),曲線(xian)(xian)5為(wei)FTMAPID算(suan)(suan)法(fa)(fa)(fa)(基(ji)于(yu)變(bian)換函(han)(han)(han)數(shu)(shu)(shu)(shu)(shu)和(he)填(tian)充函(han)(han)(han)數(shu)(shu)(shu)(shu)(shu)的(de)參(can)(can)數(shu)(shu)(shu)(shu)(shu)自(zi)適(shi)應(ying)多(duo)回(hui)路PID反(fan)饋(kui)(kui)控(kong)(kong)制(zhi)系(xi)(xi)統(tong)(tong)(tong)優(you)化(hua)(hua)算(suan)(suan)法(fa)(fa)(fa),即本(ben)發明(ming)論述的(de)算(suan)(suan)法(fa)(fa)(fa))。橫坐標(biao)(biao)為(wei)算(suan)(suan)法(fa)(fa)(fa)迭代次數(shu)(shu)(shu)(shu)(shu),縱坐標(biao)(biao)為(wei)f(x)的(de)函(han)(han)(han)數(shu)(shu)(shu)(shu)(shu)值(zhi)。從圖10至圖14能(neng)看(kan)出其(qi)中基(ji)于(yu)變(bian)換函(han)(han)(han)數(shu)(shu)(shu)(shu)(shu)和(he)填(tian)充函(han)(han)(han)數(shu)(shu)(shu)(shu)(shu)的(de)控(kong)(kong)制(zhi)系(xi)(xi)統(tong)(tong)(tong)優(you)化(hua)(hua)算(suan)(suan)法(fa)(fa)(fa)收斂(lian)的(de)精度(du)能(neng)進一步得到提高(gao),收斂(lian)的(de)速度(du)也變(bian)的(de)更好。
這里對每(mei)個(ge)測試函數重(zhong)復實驗30次,統計30次中的最(zui)大(da)值(zhi)(MAX)、最(zui)小值(zhi)(MIN)、成功收斂的平(ping)均值(zhi)(AVG)、置信區間(jian)(Confidence Interval,按照95%置信水平(ping))、收斂次數N以及CPU時間(jian)(CPU-TIME)。最(zui)后為(wei)(wei)了(le)更直觀地說明(ming)問(wen)題(ti),在同一幅(fu)圖(tu)中給出了(le)四個(ge)算法的仿(fang)真(zhen)曲線以方便進行性(xing)能比(bi)較。實驗中允許誤差為(wei)(wei)SA,即在設定迭代(dai)步數內仿(fang)真(zhen)結果(guo)與實際(ji)最(zui)優(you)值(zhi)之(zhi)間(jian)的誤差小于SA則認(ren)為(wei)(wei)是成功收斂,否則不收斂(用“/”表(biao)示(shi))。
表1 F1Generalized Griewanks函數的實驗結(jie)果(guo)
表2 F2Goldstein-Price函數的實驗結果
表(biao)3 F3Shubert函數的實(shi)驗結果(guo)
表(biao)4 F4Shekel’s Family函數的實驗(yan)結果(guo)
表5 F5weierstrassy函數的實(shi)驗結果
從(cong)表1至表5的(de)(de)(de)數據可以看(kan)出,基(ji)于變換函數和填充函數的(de)(de)(de)控制系統(tong)優化算(suan)法(fa)相(xiang)對于前面(mian)四種控制算(suan)法(fa),減少了算(suan)法(fa)陷入(ru)最優值的(de)(de)(de)可能,完成(cheng)了成(cheng)功(gong)收斂且收斂精度都很好。
多系(xi)(xi)(xi)統(tong)(tong)并行計(ji)算的(de)(de)(de)(de)智(zhi)(zhi)能(neng)(neng)控(kong)制(zhi)(zhi)(zhi)系(xi)(xi)(xi)統(tong)(tong)與填(tian)(tian)充(chong)函數(shu)法(fa)(fa)結合的(de)(de)(de)(de)基于變換函數(shu)和填(tian)(tian)充(chong)函數(shu)的(de)(de)(de)(de)控(kong)制(zhi)(zhi)(zhi)系(xi)(xi)(xi)統(tong)(tong)優(you)(you)(you)化(hua)算法(fa)(fa),一(yi)方(fang)面,既保留了智(zhi)(zhi)能(neng)(neng)控(kong)制(zhi)(zhi)(zhi)系(xi)(xi)(xi)統(tong)(tong)的(de)(de)(de)(de)多系(xi)(xi)(xi)統(tong)(tong)并行計(ji)算和群體學習(xi)的(de)(de)(de)(de)優(you)(you)(you)點,又在(zai)一(yi)定程度上(shang)克服了智(zhi)(zhi)能(neng)(neng)控(kong)制(zhi)(zhi)(zhi)系(xi)(xi)(xi)統(tong)(tong)算法(fa)(fa)容(rong)易陷入(ru)局(ju)部最(zui)優(you)(you)(you)點的(de)(de)(de)(de)不(bu)足。另一(yi)方(fang)面,智(zhi)(zhi)能(neng)(neng)控(kong)制(zhi)(zhi)(zhi)系(xi)(xi)(xi)統(tong)(tong)算法(fa)(fa)具(ju)有(you)較強(qiang)的(de)(de)(de)(de)局(ju)部搜(sou)索能(neng)(neng)力,而填(tian)(tian)充(chong)函數(shu)法(fa)(fa)則保證(zheng)了智(zhi)(zhi)能(neng)(neng)控(kong)制(zhi)(zhi)(zhi)系(xi)(xi)(xi)統(tong)(tong)算法(fa)(fa)的(de)(de)(de)(de)全局(ju)搜(sou)索,從(cong)而大大提高了智(zhi)(zhi)能(neng)(neng)控(kong)制(zhi)(zhi)(zhi)系(xi)(xi)(xi)統(tong)(tong)算法(fa)(fa)的(de)(de)(de)(de)尋優(you)(you)(you)精度。
下面給(gei)出對應于圖(tu)10至(zhi)圖(tu)14,作為被優(you)化函(han)數的(de)5個(ge)基準測(ce)試函(han)數:
1.Generalized Rastrigin函數
函數表達式:
搜索范圍:-5.12≤xi≤5.12(本文實(shi)驗(yan)采用(yong)30維)。
全局最優值:min(F1)=F1(0,...,0)=0。
2.Kowalik函數
函數表達式:
搜索范圍:-2≤xi≤2(自變量4維)。
全局最(zui)優(you)值:min(F2)≈F2(-0.1928,0.1908,0.1231,0.1358)≈3.0749e-4
3.Shubert函數(shu)
函數表達式:
搜索范圍:-10≤xi≤10(自(zi)變量2維)。全局最優值:min(F3)=-186.7309。
4.Shekel’s Family
函數表達式:
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維)。全局最優值(zhi):min(F4)=F4(4,4,4,4)=-10.5364。
5.Weierstrass函數
函數表達式:
a=0.5,b=3,kmax=20
搜索范圍:-5.12≤xi≤5.12(本文實驗采用10維)。全(quan)局最優值:min(F5)=F5(0,...0)=0。