摘 要:為提高果蠅優(yōu)化算法(FOA)的尋優(yōu)效率和精度,針對標(biāo)準(zhǔn)果蠅算法在全局范圍內(nèi)搜索能力不均勻?qū)е碌膯栴},提出一種步長改進(jìn)策略。該策略在運(yùn)行過程中根據(jù)當(dāng)前果蠅群體中最優(yōu)個體位置,動態(tài)地對果蠅前進(jìn)步長進(jìn)行調(diào)整,使果蠅算法能夠平衡在全局范圍內(nèi)的搜索能力,增強(qiáng)初期收斂速度和后期收斂精度。通過經(jīng)典測試函數(shù)對改進(jìn)算法進(jìn)行仿真研究,結(jié)果表明:在保證尋優(yōu)成功率的同時,該文所提出改進(jìn)算法的收斂精度和速度均得到顯著提高。風(fēng)電機(jī)組滑模控制器參數(shù)尋優(yōu)中的應(yīng)用實例也表明該算法的有效性。
關(guān)鍵詞:果蠅優(yōu)化算法;風(fēng)電機(jī)組;滑??刂疲蛔畲蠊β庶c(diǎn)跟蹤
文獻(xiàn)標(biāo)志碼:A 文章編號:1674-5124(2017)03-0101-05
Abstract: In order to improve the optimizing efficiency and precision of fruit fly optimization algorithm(FOA), an improved step-length strategy is proposed aiming at the problems caused by the unbalanced searching ability of standard FOA in global scope. The strategy can dynamically adjust the moving step length of fruit fly during operation according to the optimal fruit fly position in current population, so that the searching ability of FOA is balanced in global scope, which improves convergence rate at initial stage and precision at later stage. After the simulation research for improved algorithm based on several kinds of classical test functions, the results show that while ensuring the success ratio of optimization, the convergence accuracy and speed of the algorithm proposed in the article are significantly improved. Besides, the application case of parameter optimization for sliding mode controller of wind turbine unit also indicated the effectiveness of the proposed algorithm.
Keywords: FOA; wind turbine unit; sliding mode control; MPPT
0 引 言
中國臺灣學(xué)者潘文超受到果蠅覓食行為的啟發(fā),于2011年提出了基于群體智能的果蠅優(yōu)化算法[1](fruite fly optimization algorithm,F(xiàn)OA)。該方法實現(xiàn)簡單,全局尋優(yōu)能力較強(qiáng),尋優(yōu)精度較高,可應(yīng)用于科學(xué)計算和工程領(lǐng)域。但是,F(xiàn)OA算法與傳統(tǒng)的優(yōu)化算法類似,仍存在初期搜索速度慢、易陷入局部最優(yōu),而導(dǎo)致收斂耗時,收斂精度較低,尤其對于多局部極值、高維的較復(fù)雜優(yōu)化問題。
針對FOA算法存在的問題,國內(nèi)外學(xué)者在其基礎(chǔ)上進(jìn)行了大量研究,文獻(xiàn)[2]基于社會認(rèn)知因子和變異算子,提出了多策略果蠅優(yōu)化算法(SFOA),加快了收斂速度。文獻(xiàn)[3]將Levy飛行策略引入果蠅算法,提出了雙子群果蠅優(yōu)化算法(LFOA),取得了較好的收斂精度。文獻(xiàn)[4]將多種群協(xié)同搜索策略與標(biāo)準(zhǔn)果蠅算法相結(jié)合,平衡了全局搜索能力和局部開發(fā)能力。文獻(xiàn)[5]將混沌算法融入果蠅優(yōu)化算法中,構(gòu)成自適應(yīng)混沌果蠅優(yōu)化算法(ACFOA),具有比標(biāo)準(zhǔn)FOA更好的全局搜索能力。
以上改進(jìn)策略均在一定程度上提高了果蠅算法的尋優(yōu)能力,但未考慮到果蠅算法與其他智能算法(如粒子群算法、遺傳算法)所不同的是其在全局范圍內(nèi)搜索能力并不是均勻分布的[6],導(dǎo)致全局最優(yōu)點(diǎn)非零點(diǎn)時尋優(yōu)效率低下。本文針對這個缺點(diǎn),提出了等效步長改進(jìn)策略,根據(jù)當(dāng)前果蠅位置對果蠅前進(jìn)步長進(jìn)行實時修正,平衡了全局范圍內(nèi)的搜索能力,提高了搜索效率。
1 果蠅算法實現(xiàn)過程
果蠅算法具體步驟[7]如下:
1)參數(shù)初始化。對果蠅群體位置初始化為X1和Y1都為隨機(jī)數(shù),果蠅種群規(guī)模Sizepop,最大迭代次數(shù)maxgen。
2)賦予每只果蠅利用自身嗅覺搜尋事物的能力,此后果蠅飛行位置為(Xi,Yi)。
3)計算果蠅位置與原點(diǎn)的距離Di和味道濃度判定值Si:
4)將Si帶入味道濃度判定函數(shù)(fitness function)中,得到味道濃度判定值:
5)尋找味道濃度中最高的果蠅個體,即:
6)記錄最佳味道濃度判定值bestsmell與其坐標(biāo),其余果蠅利用視覺向該位置飛去,Smellbest為味道濃度歷史最優(yōu)值:
Smellbest=bestsmellX_axis=X(bestindex)Y_axis=Y(bestindex)
7)重復(fù)步驟2)~5)直到達(dá)到結(jié)束條件,若本次濃度判定值更大,則執(zhí)行步驟6)。
2 改進(jìn)的果蠅算法
2.1 標(biāo)準(zhǔn)果蠅算法缺陷分析
根據(jù)式(1)~式(2)可知,味道濃度判定值是果蠅與原點(diǎn)間距離的倒數(shù),該種計算方式會導(dǎo)致味道濃度判定值Si的搜索范圍不僅與果蠅前進(jìn)步長K有關(guān),而且與當(dāng)前果蠅位置有關(guān)。
在同一個果蠅前進(jìn)步長下,當(dāng)果蠅位置不同時,味道濃度判定值搜索范圍也有所不同。因此果蠅算法存在如下缺陷:
缺陷1):當(dāng)果蠅前進(jìn)步長K固定時,標(biāo)準(zhǔn)果蠅算法呈現(xiàn)出“味道濃度判定值較大時,搜索范圍大;味道濃度判定值較小時,搜索范圍小”的特性。
缺陷2):考慮到實際問題中,被優(yōu)化函數(shù)的最優(yōu)點(diǎn)往往不位于原點(diǎn)處,在這種情況下,果蠅算法這種特性反而會使其容易跨過全局最優(yōu)點(diǎn)而難以尋找到最優(yōu)值。
2.2 基于等效步長策略的改進(jìn)果蠅算法
直觀地講,直接給定味道濃度判定值搜索半徑即可平衡在全局范圍內(nèi)的搜索能力?;谏鲜鏊悸?,本文提出一種考慮當(dāng)前最優(yōu)果蠅個體位置的等效步長策略,即設(shè)味道濃度判定值的搜索半徑為等效果蠅步長,用Keq表示,其計算公式為
可以看出,等效步長Keq的含義為:當(dāng)果蠅前進(jìn)步長為K、上代最佳果蠅個體與原點(diǎn)間距離為Dbest時味道濃度判定值Si的近似搜索半徑,對其進(jìn)行變換可得:
給定等效搜索步長Keq后,根據(jù)式(4)可以計算出當(dāng)前位置果蠅個體所需要的搜索半徑,避免果蠅位置對搜索能力的影響。
3 仿真實驗及性能分析
3.1 標(biāo)準(zhǔn)測試函數(shù)
分別選取Michalewicz、Shubert兩個全局最優(yōu)點(diǎn)不在原點(diǎn)處的測試函數(shù)和Spher、Griewank兩個全局最優(yōu)點(diǎn)在原點(diǎn)處的測試函數(shù),其具體表達(dá)式如表1所示。
3.2 實驗結(jié)果及分析
分別采用PSO、基本FOA和本文所提出的改進(jìn)FOA(表示為MFOA)3種算法對測試函數(shù)進(jìn)行求解,每個測試函數(shù)獨(dú)立運(yùn)行20次,并求取20次尋優(yōu)結(jié)果的平均值、最優(yōu)值、最差值、標(biāo)準(zhǔn)方差及成功率,其實驗結(jié)果如表2所示。
圖1給出了4個測試函數(shù)的收斂曲線(為了便于觀察,對f3和f4函數(shù)的目標(biāo)函數(shù)值取以10為底的對數(shù))??梢钥闯觯簩τ谌肿顑?yōu)點(diǎn)不在原點(diǎn)的測試函數(shù),標(biāo)準(zhǔn)FOA算法很難收斂,本文所提出改進(jìn)FOA收斂效果明顯要好于標(biāo)準(zhǔn)FOA和PSO算法;對于全局最優(yōu)點(diǎn)位于原點(diǎn)的測試函數(shù),標(biāo)準(zhǔn)FOA要好于PSO算法,但等效步長改進(jìn)的FOA效果要好于前兩者,收斂精度更高。
4 應(yīng)用實例
滑模控制是目前風(fēng)電機(jī)組轉(zhuǎn)速控制中的熱門[8-10]。但由于其控制器參數(shù)較多,存在參數(shù)整定困難的問題,限制了其發(fā)展,本文應(yīng)用改進(jìn)FOA算法對其進(jìn)行尋優(yōu)。
4.1 風(fēng)電機(jī)組轉(zhuǎn)速控制器設(shè)計
設(shè)轉(zhuǎn)速跟蹤誤差及其導(dǎo)數(shù)為狀態(tài)變量:
根據(jù)文獻(xiàn)[11]中提出的非奇異快速終端滑模面設(shè)計轉(zhuǎn)速控制器,簡便起見,直接給出控制器結(jié)構(gòu):
由式(5)~式(7)即組成了滑模轉(zhuǎn)速控制器,控制器輸出為式(6)和式(7)之和,可以看出,α、β、k、p、q、g、h等參數(shù)需要整定,考慮到p、q、g、h為正奇數(shù)[11],因此直接給定其取值:p/q=15/13;g/h=9/7。此時α、β、k3個參數(shù)需要進(jìn)行整定。使用傳統(tǒng)的試湊法進(jìn)行整定時工作量很大,實際效果也不理想,因此采用本文提出的改進(jìn)果蠅算法求取滑模控制器參數(shù)最優(yōu)解。
4.2 仿真驗證
基于Matlab/Simulink平臺搭建2.4 MW風(fēng)電機(jī)組仿真模型,其轉(zhuǎn)速控制策略如圖2所示。
機(jī)組參數(shù)如下:葉片長度R=42 m,最大風(fēng)能利用系數(shù)Cpmax=0.48,最佳葉尖速比λopt=8.1,低速軸轉(zhuǎn)動慣量J=6.516 e5 kg·m2,最佳轉(zhuǎn)速風(fēng)速比Kopt=0.193。
4.2.1 滑??刂破鲄?shù)尋優(yōu)
本文選取以積分型誤差指標(biāo)ITAE為基礎(chǔ)的目標(biāo)函數(shù),同時為了保證收斂速度,增加懲罰函數(shù)t|s|,形成新的目標(biāo)函數(shù)如下[12]:
設(shè)算法迭代次數(shù)100次,等效果蠅步長Keq為2,仿真時間為20 s,風(fēng)速在5 s時由5 m/s階躍至10 m/s。適應(yīng)度曲線如圖3所示,可以看出,改進(jìn)FOA在優(yōu)化參數(shù)時速度更快,精度更高。兩種算法所得參數(shù)階躍響應(yīng)對比如圖4所示。由圖4和表3可以看出兩種算法的尋優(yōu)結(jié)果都可以達(dá)到無超調(diào),但等效步長FOA的尋優(yōu)結(jié)果上升時間更短且無穩(wěn)態(tài)誤差,其動態(tài)性能要好于標(biāo)準(zhǔn)FOA的尋優(yōu)結(jié)果。
4.2.2 多變風(fēng)速下仿真
為了體現(xiàn)尋優(yōu)后參數(shù)在轉(zhuǎn)速跟蹤過程中的效果,將等效步長FOA尋優(yōu)所得參數(shù)帶入模型中進(jìn)行仿真,結(jié)果如圖5所示,可以看出,使用尋優(yōu)參數(shù)后轉(zhuǎn)速控制器跟蹤效果較好,其跟蹤誤差在設(shè)定值的1%左右。進(jìn)一步通過對功率進(jìn)行積分的方法獲得該時間段內(nèi)葉輪所捕獲的總風(fēng)能,如表4所示,其中捕獲效率為葉輪捕獲風(fēng)能與總風(fēng)能之比。
可以看出,在仿真的300 s過程中,使用尋優(yōu)參數(shù)時所捕獲風(fēng)能比經(jīng)驗參數(shù)時增加了120 kJ左右,其捕獲效率提升了大約0.19%,提升并不明顯,其主要原因是該組經(jīng)驗參數(shù)是作者經(jīng)過多次仿真所總結(jié)得出的,已經(jīng)較為接近尋優(yōu)所得參數(shù),但這種方法需要耗費(fèi)大量時間且當(dāng)機(jī)組參數(shù)發(fā)生改變時必須重新進(jìn)行整定;而通過本文所提出的算法進(jìn)行尋優(yōu)時,只需要花費(fèi)少量時間且當(dāng)機(jī)組參數(shù)發(fā)生變化時只需重新尋優(yōu)即可。
5 結(jié)束語
針對果蠅算法在優(yōu)化全局最優(yōu)點(diǎn)非原點(diǎn)問題時所存在的缺陷,提出了一種等效步長改進(jìn)策略。該策略通過當(dāng)前果蠅位置動態(tài)調(diào)整果蠅前進(jìn)步長,平衡了果蠅在不同位置處的搜索能力。通過對4個標(biāo)準(zhǔn)測試函數(shù)的仿真,驗證了經(jīng)過等效步長改進(jìn)后的FOA與標(biāo)準(zhǔn)FOA相比尋優(yōu)速度更快、精度更高。同時,將改進(jìn)FOA算法應(yīng)用到風(fēng)電機(jī)組滑??刂破鳟?dāng)中,進(jìn)一步證明了該策略的有效性。
參考文獻(xiàn)
[1] 王克甫,薛鵬,黃全振,等. 求解旅行商問題的改進(jìn)果蠅算法[J]. 計算機(jī)工程與設(shè)計,2014,38(4):2789-2821.
[2] 鐘偉民,牛進(jìn)偉,梁毅,等. 多策略果蠅優(yōu)化算法及其應(yīng)用[J]. 化工學(xué)報,2015,66(12):4888-4894.
[3] 張前圖,房立清,趙玉龍. 具有Levy飛行特征的雙子群果蠅優(yōu)化算法[J]. 計算機(jī)應(yīng)用,2015,35(5):1348-1352.
[4] YUAN X F, DAI X S, ZHAO J G. On a novel multi-swarm fruit fly optimization algorithm and its application[J].Applied Mathematics and Computation,2014(233):260-271.
[5] 韓俊英,劉成忠. 自適應(yīng)混沌果蠅優(yōu)化算法[J]. 計算機(jī)應(yīng)用,2013,33(5):1313-1316.
[6] SHAN D, CAO G H, DONG H J. LGMS-FOA:An improved fruit fly optimization algorithm for solving optimization problems[J]. Mathematical Problems in Engineering,2013:108768.
[7] PAN W T. A new fruit fly optimization algorithm:Taking the financial distress model as an example[J]. Knowledge-Based Systems,2012,26(9):69-74.
[8] 茅靖峰. 基于擴(kuò)張狀態(tài)觀測的永磁直驅(qū)風(fēng)力發(fā)電系統(tǒng)MPPT自適應(yīng)滑??刂芠J]. 電力系統(tǒng)保護(hù)與控制,2014,
42(18):58-65.
[9] 鄭雪梅,李琳,徐殿國,等. 雙饋風(fēng)力發(fā)電系統(tǒng)最大風(fēng)能追蹤滑模變結(jié)構(gòu)控制[J]. 控制理論與應(yīng)用,2010,27(7):923-926.
[10] BARAMBONES O. Sliding mode control strategy for wind turbine power maximization[J]. Energies,2012(5):2310-2330.
[11] 李升波,李克強(qiáng),王建強(qiáng),等. 非奇異快速的終端滑??刂品椒╗J]. 信息與控制,2009,38(1):1-8.
[12] 張敏,唐東成,張君躍,等. 基于微粒群算法的永磁同步發(fā)電機(jī)滑??刂芠J]. 計算機(jī)工程與應(yīng)用,2015,51(22):266-270.
(編輯:劉楊)