李翠明,王 寧,張 晨
(蘭州理工大學(xué) 機電工程學(xué)院,蘭州 730050)
近年來太陽能作為一種可再生的綠色清潔能源,受到了廣泛的關(guān)注,光伏產(chǎn)業(yè)在我國得到了大力發(fā)展.太陽能光伏系統(tǒng)的核心部件是太陽能光伏板,其發(fā)電效率與接收到的太陽輻射強度、時長密切相關(guān).我國西部地區(qū)有極豐富的太陽能資源,很多大型并網(wǎng)光伏電站都建設(shè)于此,但因空氣中沙塵較多,沙塵極易附著在光伏組件上[1],光伏組件覆灰在極大程度上提高了光伏組件的衰減速率,嚴重影響太陽電池板的使用壽命[2].因此,及時對太陽能板表面進行清潔至關(guān)重要.對太陽能板表面覆灰典型的清潔方式有傳統(tǒng)人工高壓水槍清洗、爬壁式智能清潔設(shè)備清潔、太陽能板自潔技術(shù)、車載移動式清洗機清潔等[3].考慮到我國西部地區(qū)的特殊環(huán)境條件,車載移動式的清洗設(shè)備比較適應(yīng)這種惡劣的自然環(huán)境.目前,對于用移動清潔機器人對光伏電站進行清潔問題的研究相對較少.文獻[4]采用低成本的Kinect2深度傳感器對半結(jié)構(gòu)化環(huán)境進行實時三維環(huán)境重建,在重建得到的三維環(huán)境地圖中用D*算法和彈性帶算法實時規(guī)劃出了清洗機器人的運動路徑.文獻[5]將機器人工作的空間分解成一系列具有二值信息的柵格網(wǎng)絡(luò),采用優(yōu)先級啟發(fā)式算法規(guī)劃出了清潔機器人的運行路線.文獻[6]利用Unity3D軟件對西部某光伏產(chǎn)業(yè)園的真實地形進行仿真,運用融合了跳點搜索策略的改進A*算法在仿真地圖上進行清潔機器人的路徑規(guī)劃.
上述研究只考慮了如何讓清潔機器人快速、無碰撞地到達指定的清潔位置,并未考慮由于環(huán)境影響,不同區(qū)域的光伏板發(fā)電量不同,清掃順序會對整體發(fā)電效率產(chǎn)生影響.本文根據(jù)西部地區(qū)特殊的環(huán)境特點,研究了清潔機器人對大面積光伏電站光伏板清潔作業(yè)時的任務(wù)規(guī)劃問題.按照光伏板是否處在風(fēng)口位置、光照時長等環(huán)境因素,對光伏電站進行分區(qū),并確定各分區(qū)的清掃優(yōu)先等級,利用Hamilton圖將太陽能光伏板清潔問題轉(zhuǎn)化為巡回旅行商問題(TSP).TSP問題是典型的NP-hard問題,目前解決TSP問題的方法大致可以分為兩個方向[7],一種是能夠找到問題最優(yōu)解的精確算法;另一種是一般能夠較為高效地求得可接受的問題解的近似算法,如:遺傳算法[8]、蟻群算法[9]、布谷鳥搜索算法[10]等.這些近似算法大大縮小了解空間并增加了在有限時間內(nèi)找到問題最優(yōu)解的概率[11].在這些近似算法中,遺傳算法在解決離散組合優(yōu)化問題上的有效性引起了更多學(xué)者的關(guān)注.因此,本文在遺傳算法的基礎(chǔ)上,提出一種改進遺傳算法(IGA)求解此TSP問題,運用將錦標賽選擇法與輪盤賭選擇法相結(jié)合的混合選擇算子,提高算法的收斂速度;采用基于分段規(guī)則的交叉算子,使算法更容易跳出局部最優(yōu),并且增強算法的穩(wěn)定性;最后,運用IGA對清潔機器人的分級任務(wù)規(guī)劃進行求解,并與自適應(yīng)遺傳算法(AGA)對比仿真,驗證了IGA的優(yōu)越性.本文對光伏電站光伏板清潔問題的研究可為大面積光伏電站提高整體的發(fā)電效率提供一種新的研究思路.
對我國西部地區(qū)大面積光伏電站提出分區(qū)規(guī)劃策略,對放置在風(fēng)口位置極易積灰、嚴重影響發(fā)電效果和光照充足、發(fā)電效率高的區(qū)域分配較高的優(yōu)先級,其余區(qū)域給予相同的優(yōu)先級,則可將西部某地區(qū)的光伏電站劃分為若干區(qū)域,如圖1所示.劃分區(qū)域后的光伏電站如圖2所示.其中:x為各區(qū)域圍成的多邊形幾何中心的橫坐標;y為各區(qū)域圍成的多邊形幾何中心的縱坐標.每個點表示一片區(qū)域,并用數(shù)字對其進行編號.各區(qū)域的優(yōu)先級如表1所示.優(yōu)先級分為6級,數(shù)字越大表明優(yōu)先級越高.
劃分區(qū)域之后的光伏電站清潔問題本質(zhì)上就是TSP問題,即已知各個區(qū)域的坐標,清潔機器人從起點出發(fā),遍歷每個區(qū)域且每個區(qū)域只經(jīng)過一次,最后回到起點.TSP問題是圖論中最著名的問題之一,TSP問題可以通過構(gòu)造Hamilton圖求解.可將每一片區(qū)域看成頂點,區(qū)域間的距離看成邊,構(gòu)造Hamilton圖G=(V,E),如圖3所示.其中:V={1, 2, …,n}為頂點集;E={1, 2, …,m}為邊集.任意兩頂點的連線表示邊集,考慮到實際情況,兩片區(qū)域之間基本不可能直接到達.因此,本文取頂點間的Manhattan距離構(gòu)成邊集.光伏電站清潔任務(wù)的分級規(guī)劃問題,就是在圖3中尋找一條最短的Hamilton回路.
由于對各個區(qū)域指定了優(yōu)先級,首先對各區(qū)域按優(yōu)先級排序,先清潔優(yōu)先級高的區(qū)域;優(yōu)先級相同時,采用IGA進行清潔任務(wù)規(guī)劃的求解.為了更接近實際問題,染色體采用實數(shù)編碼方式,如圖4所示.遺傳算法存在比其他傳統(tǒng)優(yōu)化算法效率低、容易過早收斂等問題,針對遺傳算法的這些不足,本文對遺傳算法的選擇、交叉操作進行了改進.
適應(yīng)度函數(shù)是對染色體的優(yōu)劣進行評價的標準,適應(yīng)度函數(shù)設(shè)計不當(dāng),將難以體現(xiàn)個體的差異,選擇操作的作用就難以體現(xiàn)出來,從而造成早熟收斂等特點[12],因此,合理選擇適應(yīng)度函數(shù)在算法執(zhí)行過程中至關(guān)重要.所求問題的目標函數(shù)為各區(qū)域的距離之和,距離越小越優(yōu),而適應(yīng)度函數(shù)則越大越好,因此需要對其進行變換.如果直接取倒數(shù),會導(dǎo)致適應(yīng)度函數(shù)之間的相對差別很小,從而導(dǎo)致各個體被選擇的概率差別很小,這將會弱化遺傳算法的選擇功能,本文對目標函數(shù)采用動態(tài)線性標定[13]的方法將其轉(zhuǎn)化為適應(yīng)度函數(shù).變換公式為
(1)
(2)
式中:M、c為常數(shù),c∈[0.9, 0.99].參數(shù)M是為了增大個體之間被選擇概率的差別而設(shè)置的,根據(jù)所研究的問題,經(jīng)過多次實驗驗證,M取為600,c取為0.99.
將錦標賽選擇法[14]和輪盤賭選擇法[15]相結(jié)合作為選擇算子.錦標賽選擇法是隨機從父代中選擇一定數(shù)目(即競賽規(guī)模N)的個體,將其中適應(yīng)度高的個體保留到子代.反復(fù)執(zhí)行本過程,直到子代的個數(shù)達到預(yù)先設(shè)定的終止條件.若種群大小用S表示,每個競賽規(guī)模中選取適應(yīng)度最高的個體,則共有S/N(取整數(shù)位)個個體保留到子代.本文選擇的競賽規(guī)模為10.
輪盤賭選擇法用于在每個錦標賽選擇法選出的競賽規(guī)模中選取進行下一步交叉操作的一個父代,另一個父代在競賽規(guī)模中隨機選取.通過兩種方法的結(jié)合,既確保了優(yōu)秀個體遺傳到下一代,又保證了參加交叉操作的父代質(zhì)量.
順序交叉(OX)算子是一種常用的交叉算子,OX 算子可將父代染色體中指定的基因片段遺傳給子代.但這種操作不考慮邊之間的關(guān)系,不會加快遺傳算法的收斂速度[16],且計算結(jié)果不穩(wěn)定.針對OX算子的這種特點,提出一種基于分段規(guī)則的交叉算子,此算子采用OX和自身交叉兩種算子,當(dāng)所求路徑長度大于所設(shè)閾值Q時,交叉操作采用順序交叉;當(dāng)所求路徑長度小于Q時,采用自身交叉.閾值Q是通過分析改進之前的算法結(jié)果所確定的.經(jīng)過多次實驗,未改進之前的算法多次陷入局部最優(yōu),其局部最優(yōu)值在 800~1 000 之間.針對這種情況引入自身交叉算子,并通過實驗確定閾值Q.通過本次改進,增加了交叉操作產(chǎn)生最優(yōu)個體的概率,提高了算法的收斂速度,增強了算法穩(wěn)定性,本文中閾值Q選為900.
順序交叉首先在兩個父代上選擇相同的區(qū)域:
然后,將兩個父代交叉點之間的部分提取出來,得到:
記錄父代1和父代2從第2個交叉點開始的數(shù)字排列順序,當(dāng)?shù)竭_末尾時,繼續(xù)從初始位置記錄,直到回到第2個交叉點為止,由此便得到了父代1和父代2從第2個交叉點開始的數(shù)字排列順序,分別為7→8→9→1→2→3→4→5→6和5→3→7→4→6→1→8→2→9.子代1已有從父代1繼承的3、4、5、6,將其從父代2的數(shù)字排列順序中去除,得到7→1→8→2→9,然后將此序列從第2個交叉點開始填入到子代1中,獲得新個體子代1′.同理可得,新個體子代2′:
自身交叉首先在父代上隨機選取兩個位置,兩個位置中間構(gòu)成一塊區(qū)域:
然后,將區(qū)域內(nèi)的數(shù)字左右對調(diào)一下,形成新的個體:
目前,變異算子有很多種,如倒位變異算子、2-opt變異算子、啟發(fā)式變異算子等,其中效果較好的是啟發(fā)式變異算子[17].選用啟發(fā)式變異算子,其操作步驟如下.
步驟1假設(shè)A=1 2 3 4 5 6 7 8.
步驟2隨機選擇3個點,如:1、2、6,任意交換其位置可得5個不同個體為
A1=2 1 3 4 5 6 7 8
A2=6 2 3 4 5 1 7 8
A3=1 6 3 4 5 2 7 8
A4=2 6 3 4 5 1 7 8
A5=6 1 3 4 5 2 7 8
步驟3從其中選擇適應(yīng)度最高的個體作為新個體.
IGA流程圖如圖5所示,基本流程如下.
步驟1輸入各區(qū)域坐標,并將各區(qū)域按優(yōu)先級排序,先確定優(yōu)先級高的區(qū)域清潔順序,再確定參與IGA的區(qū)域個數(shù).
步驟2生成初始種群,設(shè)定相關(guān)參數(shù),包括適應(yīng)度函數(shù)中的M和c,錦標賽選擇法中的競賽規(guī)模N,交叉操作中的閾值Q,交叉概率Pc,啟發(fā)式變異概率Pm,最大迭代次數(shù)Tmax,種群數(shù)目S.
步驟3對各區(qū)域間的距離進行動態(tài)線性標定,轉(zhuǎn)化為求最大值的適應(yīng)度函數(shù).
步驟4用錦標賽選擇法篩選出直接進入下一代的個體;用輪盤賭法選取參與交叉的父代.
步驟5對父代進行交叉操作,當(dāng)本次迭代最優(yōu)路徑大于閾值Q時,執(zhí)行順序交叉;否則,執(zhí)行自身交叉.
步驟6對生成的子代進行啟發(fā)式變異操作.
步驟7判斷是否滿足終止條件.若達到,則輸出最優(yōu)解;若未達到,則返回步驟3.
根據(jù)上述算法步驟,利用MATLAB R2020a對算法進行設(shè)計實現(xiàn),使用的CPU為AMD Ryzen 7 4800H,主頻為2.90 GHz,內(nèi)存為8.00 GB.其中,區(qū)域數(shù)為30,各區(qū)域的優(yōu)先級見表1.種群數(shù)為100,交叉概率為0.8,變異概率為0.05,迭代次數(shù)為500次,仿真結(jié)果如圖6所示,其中:L為路徑總長度.由圖6可知,IGA求解的機器人清潔各個區(qū)域的任務(wù)順序為:30→29→28→27→6→24→···→7→20→4→22→30,路徑總長度為760 km.IGA求解的最優(yōu)路徑隨迭代次數(shù)變化情況如圖7所示,其中:T為迭代次數(shù);o為最優(yōu)解.由圖7可以看出,當(dāng)算法迭代到181次時,能夠求得此最優(yōu)順序.
圖6 改進遺傳算法規(guī)劃出的任務(wù)順序
圖7 改進遺傳算法求解的o隨T的變化
同時選取同樣的參數(shù),用自適應(yīng)遺傳算法對本文問題進行求解,其求解的最優(yōu)路徑隨迭代次數(shù)變化情況如圖8所示.由圖8可以看出,AGA陷入了局部最優(yōu),在迭代到188次時,算法達到最優(yōu),最優(yōu)路徑長度為 1 454 km,明顯大于用所提算法求解的最優(yōu)路徑長度.分別用兩種算法對本問題求解10次,其對比結(jié)果如表2所示.由表2可知,IGA可以更高效、準確地求解出最優(yōu)清潔任務(wù)順序.
圖8 自適應(yīng)遺傳算法求解的o隨T的變化
表2 兩種算法求解本文問題時的性能比較
本文通過對大面積光伏電站清潔任務(wù)規(guī)劃問題的分析,將其轉(zhuǎn)化為TSP問題,并提出IGA對單個清潔機器人的任務(wù)規(guī)劃問題進行求解.通過對適應(yīng)度函數(shù)的動態(tài)線性標定,保證了遺傳算法的選擇功能;采用混合選擇算子和基于分段規(guī)則的交叉算子,增加了最優(yōu)個體的產(chǎn)生概率,提高了算法的收斂速度,增強了算法穩(wěn)定性.與AGA仿真結(jié)果的對比可以看出,IGA可以更為快速、準確地規(guī)劃出機器人清潔光伏電站的任務(wù)順序.分級任務(wù)規(guī)劃為之后清潔機器人進行實際作業(yè)時的路徑規(guī)劃提供了理論依據(jù).