本發(fā)明涉及一種空間碎片主動(dòng)清除任務(wù)規(guī)劃方法。
背景技術(shù):
近年來(lái),隨著航天技術(shù)的不斷發(fā)展,人類航天活動(dòng)越來(lái)越頻繁。與此同時(shí),空間碎片以指數(shù)速度增加,成為未來(lái)空間資源有效利用所面臨的一個(gè)嚴(yán)峻挑戰(zhàn)。盡管為了應(yīng)對(duì)太空碎片的威脅,一些規(guī)避、防護(hù)等被動(dòng)的措施已經(jīng)廣泛采用,但是為從根本上治理空間環(huán)境,還需要采取主動(dòng)清除措施,所以開展對(duì)空間碎片的在軌主動(dòng)清除研究具有重要意義。空間碎片的清除工具主要包括機(jī)械臂、飛網(wǎng)、充氣式結(jié)構(gòu)、標(biāo)槍繩以及靜電吸附毯。機(jī)械臂在高轉(zhuǎn)矩或剛性結(jié)構(gòu)點(diǎn)捕獲時(shí)性能最好,其技術(shù)成熟且有多個(gè)自由度,便于推力調(diào)整;飛網(wǎng)具有質(zhì)量輕并且成本低的優(yōu)點(diǎn),適合抓取形狀不規(guī)則的空間碎片,但是不能控制碎片的角自由度;充氣式結(jié)構(gòu)同樣具有質(zhì)量輕和成本低的優(yōu)點(diǎn),但是充氣式結(jié)構(gòu)容易發(fā)生泄漏;標(biāo)槍繩適合牽引推力器,但同樣缺乏對(duì)碎片角自由度的控制;套索可以將碎片套住,降低碎片的角速度;靜電吸附毯非常輕,常用于初始接觸和捕獲。
現(xiàn)有的任務(wù)規(guī)劃方法分類如下:
(1)集中式任務(wù)規(guī)劃系統(tǒng)
在集中式任務(wù)規(guī)劃系統(tǒng)中,任務(wù)分配、路徑規(guī)劃等均由地面控制站或者任務(wù)執(zhí)行機(jī)構(gòu)中的leader完成,其他的任務(wù)執(zhí)行機(jī)構(gòu)處于從屬地位,本身沒(méi)有自主決策能力,在整個(gè)系統(tǒng)中充當(dāng)?shù)氖且?guī)劃決定的執(zhí)行者。這種任務(wù)分配的缺點(diǎn)是計(jì)算量以及信息傳輸量都比較大,給通信網(wǎng)絡(luò)帶來(lái)了很大的負(fù)擔(dān)。并且對(duì)任務(wù)重新規(guī)劃的能力比較弱,對(duì)環(huán)境變化的反應(yīng)較慢。
(2)分布式任務(wù)規(guī)劃系統(tǒng)
在分布式任務(wù)規(guī)劃系統(tǒng)中,每一個(gè)任務(wù)執(zhí)行機(jī)構(gòu)都具有自主決策能力。它們相互連接、影響和通信,并且都有一定的感知、測(cè)量、存儲(chǔ)和計(jì)算的能力。任務(wù)規(guī)劃由系統(tǒng)中的每個(gè)執(zhí)行機(jī)構(gòu)完成。與集中式任務(wù)規(guī)劃相比,分布式任務(wù)規(guī)劃具有更好的實(shí)時(shí)性、容錯(cuò)性、開放性。另外,分布式任務(wù)規(guī)劃在計(jì)算量、運(yùn)行成本、系統(tǒng)限制、魯棒性、擴(kuò)展性等方面有著巨大的優(yōu)勢(shì)。而實(shí)現(xiàn)分布式任務(wù)規(guī)劃采用最多的方法就是多agent方法。agent理論和技術(shù),特別是多agent技術(shù)的理論和技術(shù),為分布式任務(wù)規(guī)劃的分析、設(shè)計(jì)和實(shí)現(xiàn)提供了一條嶄新的途徑。多執(zhí)行機(jī)構(gòu)的任務(wù)規(guī)劃問(wèn)題可以很自然的表達(dá)成一個(gè)多agent網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)系統(tǒng)在物理上就是一個(gè)分布式系統(tǒng)。
針對(duì)于任務(wù)規(guī)劃任務(wù),也會(huì)有研究人員想到利用遺傳算法進(jìn)行任務(wù)規(guī)劃,但是目前的利用遺傳算法進(jìn)行任務(wù)規(guī)劃系統(tǒng)或者方法,中采用不同的編碼方式,常常對(duì)于算法的性能產(chǎn)生重要影響。遺傳算法中最重要的編碼就是由holland提出的二進(jìn)制編碼。它采用最小字符編碼原則,優(yōu)點(diǎn)是便于進(jìn)行編/解碼操作,交叉、變異操作易于實(shí)現(xiàn)。缺點(diǎn)是在用于多維、高精度數(shù)值問(wèn)題優(yōu)化時(shí),不能不能很好地克服連續(xù)函數(shù)離散化時(shí)的映射誤差;二進(jìn)制編碼同樣不能反映問(wèn)題的固有結(jié)構(gòu),同時(shí)也存在精度不高、個(gè)體長(zhǎng)度達(dá)、內(nèi)存占用高等問(wèn)題。如果采用其他編碼方式則會(huì)給遺產(chǎn)過(guò)程的交叉和變異操作造成問(wèn)題,使優(yōu)化過(guò)程容易陷入局部最優(yōu)。
針對(duì)平臺(tái)利用載荷清除跨尺度、多數(shù)據(jù)量、長(zhǎng)期性空間碎片的任務(wù),需要研究平臺(tái)的實(shí)時(shí)任務(wù)規(guī)劃問(wèn)題。以往大多數(shù)任務(wù)規(guī)劃研究都集中于地面任務(wù),針對(duì)空間任務(wù)規(guī)劃問(wèn)題的研究比較少,且大部分集中于理論,以實(shí)際空間任務(wù)為背景的任務(wù)規(guī)劃則更少。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為了解決現(xiàn)有的遺傳算法的編碼方式和交叉、變異操作容易導(dǎo)致空間碎片主動(dòng)清除任務(wù)規(guī)劃陷入局部最優(yōu)的問(wèn)題。
基于遺傳算法的空間碎片主動(dòng)清除任務(wù)規(guī)劃方法,包括以下步驟:
步驟1、編碼:
碎片清除任務(wù)考慮采用機(jī)械臂進(jìn)行碎片抓取,機(jī)械臂從平臺(tái)觸發(fā)進(jìn)行碎片清除;
設(shè)碎片的數(shù)量為n-1;考慮將平臺(tái)視為第1個(gè)城市,碎片作為第2~n個(gè)城市;以城市的遍歷次序作為編碼,即(z1,z2,...,zn)是{1,2,...,n}的一個(gè)全排列,其中z1,z2,...,zn表示每次遍歷所有城市的次序,將每次遍歷所有城市的次序z1,z2,...,zn作為編碼;共有(n-1)!種可能,!表示階乘;將每種可能產(chǎn)生的次序編碼作為個(gè)體,所有可能的次序編碼組合起來(lái)作為初始種群;
步驟2、初始化群體:
根據(jù)碎片清除任務(wù)所給出的碎片相對(duì)位置得到各個(gè)城市間的距離矩陣;距離矩陣表示在空間中隨機(jī)分布的空間碎片之間的位置關(guān)系;
定義哈密頓圈的長(zhǎng)度為機(jī)械臂從平臺(tái)出發(fā)清除所有碎片后回到平臺(tái)所經(jīng)歷的路徑長(zhǎng)度
初始化群體、種群大小m、最大迭代次數(shù)t1、交叉概率pc=0.5、變異概率pm=0.01;
步驟3、個(gè)體適應(yīng)度計(jì)算:
計(jì)算每個(gè)個(gè)體的適應(yīng)度:
步驟4、選擇中間群體:
計(jì)算種群中所有個(gè)體的適應(yīng)度總和;
計(jì)算每個(gè)個(gè)體的相對(duì)適應(yīng)度大小,即各個(gè)個(gè)體在選擇操作中被選中的概率;使用模擬賭盤操作,來(lái)確定各個(gè)個(gè)體被選中的次數(shù),得到中間群體;
具體過(guò)程包括以下步驟:
步驟4.1、首先計(jì)算出計(jì)算種群中所有個(gè)體的適應(yīng)度總和
步驟4.2、計(jì)算每個(gè)個(gè)體被遺傳到下一代群體中的概率:
步驟4.3、并算出每個(gè)個(gè)體的累積概率:
步驟4.4、接下來(lái)要在[0,1]區(qū)間產(chǎn)生一個(gè)均勻分布的偽隨機(jī)數(shù)r;
步驟4.5、若r<q1,則選擇個(gè)體1;否則,選擇個(gè)體i,使得:qi≤r≤qi+1成立;
步驟4.6、重復(fù)步驟4.4、步驟4.5共計(jì)m次完成選擇操作,得到中間群體;
步驟5、交叉操作:
對(duì)選擇操作得到的中間群體進(jìn)行以下操作:以交叉概率pc從中間群體中隨機(jī)地選出需要進(jìn)行交叉的個(gè)體,對(duì)這些個(gè)體隨機(jī)地兩兩配對(duì);在2~n之間產(chǎn)生兩個(gè)隨機(jī)數(shù)k和l;k,l表示交叉點(diǎn)的位置;對(duì)已經(jīng)配對(duì)的兩個(gè)個(gè)體分別記為個(gè)體a和個(gè)體b,取出個(gè)體a和個(gè)體b編碼中第k位與l之間的基因片段,分別記為a和b;將基因片段a與個(gè)體b進(jìn)行比對(duì),將個(gè)體b每位上的編碼與基因片段a每位上的編碼相同的編碼刪除,形成編碼片段β,并將基因片段a連接在編碼片段β的后面形成個(gè)體b′,個(gè)體b′為個(gè)體b交叉后的個(gè)體;
利用基因片段b對(duì)個(gè)體a進(jìn)行相同的交叉操作,得到個(gè)體b交叉后的個(gè)體a′;
步驟6、變異操作:
針對(duì)交叉操作之后的群體,以變異概率pm隨機(jī)地從群體中選出的個(gè)體上,首先在2~n之間產(chǎn)生兩個(gè)隨機(jī)數(shù)g,h;這兩個(gè)數(shù)表示變異點(diǎn)的位置;將個(gè)體編碼中第g位與h位上對(duì)應(yīng)的基因互換,得到變異后的個(gè)體;
步驟7、確定清除的任務(wù)規(guī)劃:
針對(duì)變異后的群體,返回步驟3,直至最大迭代次數(shù)t1,結(jié)束操作,得到機(jī)械臂從平臺(tái)觸發(fā)進(jìn)行碎片清除的任務(wù)規(guī)劃。
基于遺傳算法的空間碎片主動(dòng)清除任務(wù)規(guī)劃方法,包括以下步驟:
步驟1、編碼:
設(shè)碎片的數(shù)量為n-1;考慮將平臺(tái)視為第1個(gè)城市,碎片作為第2~n個(gè)城市;以城市的遍歷次序作為編碼,即(z1,z2,...,zn)是{1,2,...,n}的一個(gè)全排列,其中z1,z2,...,zn表示每次遍歷所有城市的次序,將每次遍歷所有城市的次序z1,z2,...,zn作為編碼;共有(n-1)!種可能,!表示階乘;將每種可能產(chǎn)生的次序編碼作為個(gè)體,所有可能的次序編碼組合起來(lái)作為初始種群;
采用機(jī)械臂和飛網(wǎng)結(jié)合進(jìn)行抓取規(guī)劃,當(dāng)n-1為偶數(shù)時(shí),飛網(wǎng)需要抓取
為處理問(wèn)題的方便,當(dāng)n-1為偶數(shù)時(shí),設(shè)定遺傳算法的編碼序列z1,z2,...,zn的前一半的序列
步驟2、初始化群體:
根據(jù)碎片清除任務(wù)所給出的碎片相對(duì)位置得到各個(gè)城市間的距離矩陣;距離矩陣表示在空間中隨機(jī)分布的空間碎片之間的位置關(guān)系;
初始化:飛網(wǎng)每次抓捕兩個(gè)目標(biāo),飛網(wǎng)抓取碎片的單位距離所花費(fèi)的時(shí)間記為t1,每次抓捕兩個(gè)目標(biāo)需要消耗的能量記為q1;機(jī)械臂抓取碎片的單位距離所花費(fèi)的時(shí)間記為t2,每次抓捕單個(gè)目標(biāo)需要消耗的能量記為q2;
d(ci,ci+1)表示兩個(gè)城市之間的距離;ci表示次序編碼中zi所對(duì)應(yīng)的城市,ci+1表示zi+1對(duì)應(yīng)的城市;
初始化群體、種群大小m、最大迭代次數(shù)t1、交叉概率pc=0.5、變異概率pm=0.01;
步驟3、個(gè)體適應(yīng)度計(jì)算:
計(jì)算每個(gè)個(gè)體的適應(yīng)度:
當(dāng)n-1為偶數(shù)時(shí)
當(dāng)n-1為奇數(shù)時(shí)
其中k為加權(quán)系數(shù);
步驟4、選擇中間群體:
計(jì)算種群中所有個(gè)體的適應(yīng)度總和;
計(jì)算每個(gè)個(gè)體的相對(duì)適應(yīng)度大小,即各個(gè)個(gè)體在選擇操作中被選中的概率;使用模擬賭盤操作,來(lái)確定各個(gè)個(gè)體被選中的次數(shù),得到中間群體;
步驟4的具體過(guò)程包括以下步驟:
步驟4.1、首先計(jì)算出計(jì)算種群中所有個(gè)體的適應(yīng)度總和
步驟4.2、計(jì)算每個(gè)個(gè)體被遺傳到下一代群體中的概率:
步驟4.3、并算出每個(gè)個(gè)體的累積概率:
步驟4.4、接下來(lái)要在[0,1]區(qū)間產(chǎn)生一個(gè)均勻分布的偽隨機(jī)數(shù)r;
步驟4.5、若r<q1,則選擇個(gè)體1;否則,選擇個(gè)體i,使得:qi≤r≤qi+1成立;
步驟4.6、重復(fù)步驟4.4、步驟4.5共計(jì)m次完成選擇操作,得到中間群體;
步驟5、交叉操作:
對(duì)選擇操作得到的中間群體進(jìn)行以下操作:以交叉概率pc從中間群體中隨機(jī)地選出需要進(jìn)行交叉的個(gè)體,對(duì)這些個(gè)體隨機(jī)地兩兩配對(duì);在2~n之間產(chǎn)生兩個(gè)隨機(jī)數(shù)k和l;k,l表示交叉點(diǎn)的位置;對(duì)已經(jīng)配對(duì)的兩個(gè)個(gè)體分別記為個(gè)體a和個(gè)體b,取出個(gè)體a和個(gè)體b編碼中第k位與l之間的基因片段,分別記為a和b;將基因片段a與個(gè)體b進(jìn)行比對(duì),將個(gè)體b每位上的編碼與基因片段a每位上的編碼相同的編碼刪除,形成編碼片段β,并將基因片段a連接在編碼片段β的后面形成個(gè)體b′,個(gè)體b′為個(gè)體b交叉后的個(gè)體;
利用基因片段b對(duì)個(gè)體a進(jìn)行相同的交叉操作,得到個(gè)體b交叉后的個(gè)體a′;
步驟6、變異操作:
針對(duì)交叉操作之后的群體,以變異概率pm隨機(jī)地從群體中選出的個(gè)體上,首先在2~n之間產(chǎn)生兩個(gè)隨機(jī)數(shù)g,h;這兩個(gè)數(shù)表示變異點(diǎn)的位置;將個(gè)體編碼中第g位與h位上對(duì)應(yīng)的基因互換,得到變異后的個(gè)體;
步驟7、確定清除的任務(wù)規(guī)劃:
針對(duì)變異后的群體,返回步驟3,直至最大迭代次數(shù)t1,結(jié)束操作,得到飛網(wǎng)和機(jī)械臂從平臺(tái)觸發(fā)進(jìn)行碎片清除的任務(wù)規(guī)劃。
本發(fā)明的有益效果:
本發(fā)明將任務(wù)規(guī)劃的方法用到碎片抓捕路徑優(yōu)化問(wèn)題上,首先針對(duì)平臺(tái)的任務(wù)特點(diǎn),設(shè)定碎片清除任務(wù);然后將平臺(tái)任務(wù)規(guī)劃問(wèn)題數(shù)學(xué)建模為旅行商城市路徑最短問(wèn)題。針對(duì)于空間碎片的特點(diǎn)分別設(shè)計(jì)了適用于機(jī)械臂抓捕方案的適應(yīng)度函數(shù)以及適用于飛網(wǎng)和機(jī)械臂抓捕方案的適應(yīng)度函數(shù);并設(shè)定特定的遺傳參數(shù),采用遺傳算法進(jìn)行優(yōu)化求解,不僅不容易陷入局部最優(yōu),使整個(gè)任務(wù)的總體性能指標(biāo)達(dá)到最優(yōu),而且收斂速度快,任務(wù)規(guī)劃容易實(shí)現(xiàn)。
仿真驗(yàn)證了本發(fā)明的有效性。并且中考慮了空間碎片的實(shí)際分布情況,并全面考慮了抓捕碎片的實(shí)際過(guò)程中的多種約束條件,算法收斂速度快,結(jié)果誤差小。綜上,本通過(guò)平臺(tái)任務(wù)規(guī)劃可以實(shí)現(xiàn)平臺(tái)清除碎片過(guò)程中以最優(yōu)路徑進(jìn)行快速補(bǔ)充、更換與抓捕。
僅用機(jī)械臂進(jìn)行碎片抓捕的情況,本發(fā)明的收斂速度非??欤诜N群數(shù)量少于100,即迭代次數(shù)小于100的情況下就可以找到全局最優(yōu)解。由于平臺(tái)任務(wù)所設(shè)定的相關(guān)數(shù)據(jù)具有較大的對(duì)稱性,所以最優(yōu)解所對(duì)應(yīng)的最優(yōu)序列不唯一。隨著種群數(shù)量的增加,初始迭代所得到的最優(yōu)路徑會(huì)比較大,但最終仍然可以較快收斂到最優(yōu)值。針對(duì)于本任務(wù)節(jié)點(diǎn)數(shù)為8個(gè),空間碎片的尺度范圍為10m,載荷可以同時(shí)處理8個(gè)任務(wù)節(jié)點(diǎn),因此,本發(fā)明的技術(shù)指標(biāo)達(dá)到良好的捕捉效果。
利用飛網(wǎng)和機(jī)械臂抓捕碎片的情況,本發(fā)明的收斂速度非??欤诜N群數(shù)量少于100,迭代次數(shù)小于100的情況下就可以找到局部最優(yōu)解。由于空間碎片成不規(guī)則分布,所以可以得到唯一的全局最優(yōu)解。針對(duì)于本任務(wù)節(jié)點(diǎn)數(shù)為8個(gè),空間碎片的尺度范圍為10m,載荷可以同時(shí)處理8個(gè)任務(wù)節(jié)點(diǎn),因此,本發(fā)明的技術(shù)指標(biāo)達(dá)到良好的捕捉效果。
附圖說(shuō)明
圖1是實(shí)施例中通過(guò)機(jī)械臂進(jìn)行抓捕碎片的最優(yōu)抓捕路徑;
圖2是實(shí)施例中通過(guò)飛網(wǎng)和機(jī)械臂結(jié)合進(jìn)行碎片抓捕的最優(yōu)抓捕路徑。
具體實(shí)施方式
具體實(shí)施方式一:
基于遺傳算法的空間碎片主動(dòng)清除任務(wù)規(guī)劃方法,包括以下步驟:
步驟1、編碼:
碎片清除任務(wù)考慮采用機(jī)械臂進(jìn)行碎片抓取,機(jī)械臂從平臺(tái)觸發(fā)進(jìn)行碎片清除;
設(shè)碎片的數(shù)量為n-1;考慮將平臺(tái)視為第1個(gè)城市,碎片作為第2~n個(gè)城市;以城市的遍歷次序作為編碼,即(z1,z2,...,zn)是{1,2,...,n}的一個(gè)全排列,其中z1,z2,...,zn表示每次遍歷所有城市的次序,將每次遍歷所有城市的次序z1,z2,...,zn作為編碼;共有(n-1)!種可能,!表示階乘;將每種可能產(chǎn)生的次序編碼作為個(gè)體,所有可能的次序編碼組合起來(lái)作為初始種群;
步驟2、初始化群體:
根據(jù)碎片清除任務(wù)所給出的碎片相對(duì)位置得到各個(gè)城市間的距離矩陣;距離矩陣表示在空間中隨機(jī)分布的空間碎片之間的位置關(guān)系;
定義哈密頓圈的長(zhǎng)度為機(jī)械臂從平臺(tái)出發(fā)清除所有碎片后回到平臺(tái)所經(jīng)歷的路徑長(zhǎng)度
初始化群體、種群大小m、最大迭代次數(shù)t1、交叉概率pc=0.5、變異概率pm=0.01;
步驟3、個(gè)體適應(yīng)度計(jì)算:
計(jì)算每個(gè)個(gè)體的適應(yīng)度:
步驟4、選擇中間群體:
計(jì)算種群中所有個(gè)體的適應(yīng)度總和;
計(jì)算每個(gè)個(gè)體的相對(duì)適應(yīng)度大小,即各個(gè)個(gè)體在選擇操作中被選中的概率;使用模擬賭盤操作,來(lái)確定各個(gè)個(gè)體被選中的次數(shù),得到中間群體;
步驟5、交叉操作:
對(duì)選擇操作得到的中間群體進(jìn)行以下操作:以交叉概率pc從中間群體中隨機(jī)地選出需要進(jìn)行交叉的個(gè)體,對(duì)這些個(gè)體隨機(jī)地兩兩配對(duì);在2~n之間產(chǎn)生兩個(gè)隨機(jī)數(shù)k和l;k,l表示交叉點(diǎn)的位置;對(duì)已經(jīng)配對(duì)的兩個(gè)個(gè)體分別記為個(gè)體a和個(gè)體b,取出個(gè)體a和個(gè)體b編碼中第k位與l之間的基因片段,分別記為a和b;將基因片段a與個(gè)體b進(jìn)行比對(duì),將個(gè)體b每位上的編碼與基因片段a每位上的編碼相同的編碼刪除,形成編碼片段β,并將基因片段a連接在編碼片段β的后面形成個(gè)體b′,個(gè)體b′為個(gè)體b交叉后的個(gè)體;
利用基因片段b對(duì)個(gè)體a進(jìn)行相同的交叉操作,得到個(gè)體b交叉后的個(gè)體a′;
步驟6、變異操作:
針對(duì)交叉操作之后的群體,以變異概率pm隨機(jī)地從群體中選出的個(gè)體上,首先在2~n之間產(chǎn)生兩個(gè)隨機(jī)數(shù)g,h;這兩個(gè)數(shù)表示變異點(diǎn)的位置;將個(gè)體編碼中第g位與h位上對(duì)應(yīng)的基因互換,得到變異后的個(gè)體;
步驟7、確定清除的任務(wù)規(guī)劃:
針對(duì)變異后的群體,返回步驟3,直至最大迭代次數(shù)t1,結(jié)束操作,得到機(jī)械臂從平臺(tái)觸發(fā)進(jìn)行碎片清除的任務(wù)規(guī)劃。
過(guò)去,針對(duì)平臺(tái)利用載荷清除跨尺度、多數(shù)據(jù)量、長(zhǎng)期性空間碎片的任務(wù),需要研究平臺(tái)的實(shí)時(shí)任務(wù)規(guī)劃問(wèn)題。以往大多數(shù)任務(wù)規(guī)劃研究都集中于地面任務(wù),針對(duì)空間任務(wù)規(guī)劃問(wèn)題的研究比較少,且大部分集中于理論,以實(shí)際空間任務(wù)為背景的任務(wù)規(guī)劃則更少。而本發(fā)明以空間碎片清除為任務(wù)背景,將任務(wù)規(guī)劃的方法用到碎片抓捕路徑優(yōu)化問(wèn)題上,研究平臺(tái)如何實(shí)時(shí)規(guī)劃每項(xiàng)任務(wù)的執(zhí)行順序及執(zhí)行路徑,并使整個(gè)任務(wù)的總體性能指標(biāo)達(dá)到最優(yōu)。
同時(shí),在以往的任務(wù)規(guī)劃理論研究中也有研究人員考慮用遺傳算法進(jìn)行,但是采用的編碼方式會(huì)給遺產(chǎn)過(guò)程的交叉和變異操作造成問(wèn)題,使優(yōu)化過(guò)程容易陷入局部最優(yōu)。而本發(fā)明則很好的解決了這個(gè)問(wèn)題,使整個(gè)任務(wù)的總體性能指標(biāo)達(dá)到最優(yōu),并且能夠?qū)嶋H應(yīng)用于實(shí)際任務(wù)規(guī)劃和清除空間碎片。
具體實(shí)施方式二:
本實(shí)施方式步驟4的具體過(guò)程包括以下步驟:
步驟4.1、首先計(jì)算出計(jì)算種群中所有個(gè)體的適應(yīng)度總和
步驟4.2、計(jì)算每個(gè)個(gè)體被遺傳到下一代群體中的概率:
步驟4.3、并算出每個(gè)個(gè)體的累積概率:
步驟4.4、接下來(lái)要在[0,1]區(qū)間產(chǎn)生一個(gè)均勻分布的偽隨機(jī)數(shù)r;
步驟4.5、若r<q1,則選擇個(gè)體1;否則,選擇個(gè)體i,使得:qi≤r≤qi+1成立;
步驟4.6、重復(fù)步驟4.4、步驟4.5共計(jì)m次完成選擇操作,得到中間群體。
其他步驟和參數(shù)與具體實(shí)施方式一相同。
具體實(shí)施方式三:
本實(shí)施方式所述的t1=1000。在空間碎片少于12個(gè)時(shí),只需要將t1設(shè)為1000就能使總體性能指標(biāo)達(dá)到最優(yōu),且耗費(fèi)時(shí)間短、收斂速度快。
其他步驟和參數(shù)與具體實(shí)施方式一或二相同。
具體實(shí)施方式四:
本實(shí)施方式所述的設(shè)碎片的數(shù)量為8個(gè),也就是n-1=8。當(dāng)空間碎片少于12個(gè)時(shí),只需要將t1設(shè)為1000就能使總體性能指標(biāo)達(dá)到最優(yōu),且耗費(fèi)時(shí)間短、收斂速度快。并且當(dāng)式述的設(shè)碎片的數(shù)量為8個(gè),利用以上設(shè)置的參數(shù)進(jìn)行任務(wù)規(guī)劃時(shí),在保證總體性能指標(biāo)達(dá)到最優(yōu)的前提下,耗費(fèi)時(shí)間最短、收斂速度最快。
其他步驟和參數(shù)與具體實(shí)施方式一至三之一相同。
具體實(shí)施方式五:
基于遺傳算法的空間碎片主動(dòng)清除任務(wù)規(guī)劃方法,包括以下步驟:
步驟1、編碼:
設(shè)碎片的數(shù)量為n-1;考慮將平臺(tái)視為第1個(gè)城市,碎片作為第2~n個(gè)城市;以城市的遍歷次序作為編碼,即(z1,z2,...,zn)是{1,2,...,n}的一個(gè)全排列,其中z1,z2,...,zn表示每次遍歷所有城市的次序,將每次遍歷所有城市的次序z1,z2,...,zn作為編碼;共有(n-1)!種可能,!表示階乘;將每種可能產(chǎn)生的次序編碼作為個(gè)體,所有可能的次序編碼組合起來(lái)作為初始種群;
采用機(jī)械臂和飛網(wǎng)結(jié)合進(jìn)行抓取規(guī)劃,當(dāng)n-1為偶數(shù)時(shí),飛網(wǎng)需要抓取
為處理問(wèn)題的方便,當(dāng)n-1為偶數(shù)時(shí),設(shè)定遺傳算法的編碼序列z1,z2,...,zn的前一半的序列
步驟2、初始化群體:
根據(jù)碎片清除任務(wù)所給出的碎片相對(duì)位置得到各個(gè)城市間的距離矩陣;距離矩陣表示在空間中隨機(jī)分布的空間碎片之間的位置關(guān)系;
在使用機(jī)械臂抓捕基礎(chǔ)上,我們進(jìn)一步考慮飛網(wǎng)和機(jī)械臂兩種抓捕方式,并且考慮燃料和時(shí)間加權(quán)最優(yōu)的目標(biāo);因此,這里需要初始化:飛網(wǎng)每次抓捕兩個(gè)目標(biāo),飛網(wǎng)抓取碎片的單位距離所花費(fèi)的時(shí)間記為t1,每次抓捕兩個(gè)目標(biāo)需要消耗的能量記為q1;機(jī)械臂抓取碎片的單位距離所花費(fèi)的時(shí)間記為t2,每次抓捕單個(gè)目標(biāo)需要消耗的能量記為q2;
d(ci,ci+1)表示兩個(gè)城市之間的距離;ci表示次序編碼中zi所對(duì)應(yīng)的城市,ci+1表示zi+1對(duì)應(yīng)的城市;
初始化群體、種群大小m、最大迭代次數(shù)t1、交叉概率pc=0.5、變異概率pm=0.01;
步驟3、個(gè)體適應(yīng)度計(jì)算:
計(jì)算每個(gè)個(gè)體的適應(yīng)度:
當(dāng)n-1為偶數(shù)時(shí)
當(dāng)n-1為奇數(shù)時(shí)
其中k為加權(quán)系數(shù);
步驟4、選擇中間群體:
計(jì)算種群中所有個(gè)體的適應(yīng)度總和;
計(jì)算每個(gè)個(gè)體的相對(duì)適應(yīng)度大小,即各個(gè)個(gè)體在選擇操作中被選中的概率;使用模擬賭盤操作,來(lái)確定各個(gè)個(gè)體被選中的次數(shù),得到中間群體;
步驟5、交叉操作:
對(duì)選擇操作得到的中間群體進(jìn)行以下操作:以交叉概率pc從中間群體中隨機(jī)地選出需要進(jìn)行交叉的個(gè)體,對(duì)這些個(gè)體隨機(jī)地兩兩配對(duì);在2~n之間產(chǎn)生兩個(gè)隨機(jī)數(shù)k和l;k,l表示交叉點(diǎn)的位置;對(duì)已經(jīng)配對(duì)的兩個(gè)個(gè)體分別記為個(gè)體a和個(gè)體b,取出個(gè)體a和個(gè)體b編碼中第k位與l之間的基因片段,分別記為a和b;將基因片段a與個(gè)體b進(jìn)行比對(duì),將個(gè)體b每位上的編碼與基因片段a每位上的編碼相同的編碼刪除,形成編碼片段β,并將基因片段a連接在編碼片段β的后面形成個(gè)體b′,個(gè)體b′為個(gè)體b交叉后的個(gè)體;
利用基因片段b對(duì)個(gè)體a進(jìn)行相同的交叉操作,得到個(gè)體b交叉后的個(gè)體a′;
步驟6、變異操作:
針對(duì)交叉操作之后的群體,以變異概率pm隨機(jī)地從群體中選出的個(gè)體上,首先在2~n之間產(chǎn)生兩個(gè)隨機(jī)數(shù)g,h;這兩個(gè)數(shù)表示變異點(diǎn)的位置;將個(gè)體編碼中第g位與h位上對(duì)應(yīng)的基因互換,得到變異后的個(gè)體;
步驟7、確定清除的任務(wù)規(guī)劃:
針對(duì)變異后的群體,返回步驟3,直至最大迭代次數(shù)t1,結(jié)束操作,得到飛網(wǎng)和機(jī)械臂從平臺(tái)觸發(fā)進(jìn)行碎片清除的任務(wù)規(guī)劃。
具體實(shí)施方式六:
本實(shí)施方式所述的步驟4的具體過(guò)程包括以下步驟:
步驟4.1、首先計(jì)算出計(jì)算種群中所有個(gè)體的適應(yīng)度總和
步驟4.2、計(jì)算每個(gè)個(gè)體被遺傳到下一代群體中的概率:
步驟4.3、并算出每個(gè)個(gè)體的累積概率:
步驟4.4、接下來(lái)要在[0,1]區(qū)間產(chǎn)生一個(gè)均勻分布的偽隨機(jī)數(shù)r;
步驟4.5、若r<q1,則選擇個(gè)體1;否則,選擇個(gè)體i,使得:qi≤r≤qi+1成立;
步驟4.6、重復(fù)步驟4.4、步驟4.5共計(jì)m次完成選擇操作,得到中間群體。
其他步驟和參數(shù)與具體實(shí)施方式五相同。
具體實(shí)施方式七:
本實(shí)施方式步驟3所述的加權(quán)系數(shù)k為0.8。針對(duì)于加權(quán)的目標(biāo)函數(shù),不能輕易收斂達(dá)到最優(yōu),時(shí)間以秒為標(biāo)準(zhǔn)單位,能量以焦耳為標(biāo)準(zhǔn)單位的情況下,當(dāng)k為0.8時(shí),本發(fā)明的捕捉收斂速度快。
其他步驟和參數(shù)與具體實(shí)施方式五或六相同。
具體實(shí)施方式八:
本實(shí)施方式所述的t1=1000。
其他步驟和參數(shù)與具體實(shí)施方式五至七之一相同。
具體實(shí)施方式九:
所述的設(shè)碎片的數(shù)量為8個(gè),也就是n-1=8。
其他步驟和參數(shù)與具體實(shí)施方式五至八之一相同。
實(shí)施例:
針對(duì)于利用機(jī)械臂抓捕碎片的情況,記為任務(wù)一:
設(shè)計(jì)8個(gè)碎片主動(dòng)清除任務(wù)規(guī)劃,將平臺(tái)視為第1個(gè)城市,其余8個(gè)碎片編碼為第2~9個(gè)城市,選擇t1=1000,定義種群數(shù)目為1000,9個(gè)城市個(gè)數(shù)。接下來(lái),分別設(shè)置交叉與變異的概率分別為pc=0.5,pm=0.01,且滿足任務(wù)所規(guī)定范圍。最后根據(jù)空間碎片和平臺(tái)之間的相對(duì)位置初始化距離矩陣。這里,需要第一個(gè)城市必須為平臺(tái),其余城市不能為平臺(tái),且從最后一個(gè)城市回到平臺(tái)的過(guò)程在求取哈密頓圈時(shí)將被考慮。
平臺(tái)與碎片相對(duì)位置可以求得距離矩陣為:
任務(wù)一:matlab初始化程序?yàn)椋?/p>
%生成初始群體
t=1000;%%迭代次數(shù)
m=1000;num=9;%%種群大小與城市個(gè)數(shù)
pc=0.5;pm=0.01;%%交叉與變異概率,必須選取在規(guī)定范圍內(nèi)
o=zeros(m,num);%%用于存放種群個(gè)體
%%生成距離矩陣
%%根據(jù)任務(wù)一中平臺(tái)與碎片相對(duì)位置算得
個(gè)體適應(yīng)度計(jì)算:
計(jì)算個(gè)體的適應(yīng)度,即與種群中某一個(gè)個(gè)體r相對(duì)應(yīng)的哈密頓圈長(zhǎng)的倒數(shù),其中哈密頓圈長(zhǎng)為
比例選擇操作具體執(zhí)行過(guò)程包括:計(jì)算種群中所有個(gè)體的適應(yīng)度總和;計(jì)算每個(gè)個(gè)體的相對(duì)適應(yīng)度大小,即各個(gè)個(gè)體在選擇操作中被選中的概率;使用模擬賭盤操作,來(lái)確定各個(gè)個(gè)體被選中的次數(shù),得到中間群體。
%計(jì)算種群中所有個(gè)體的適應(yīng)度總和
對(duì)選擇操作得到的中間群體進(jìn)行以下操作:以交叉概率pc從中間群體中隨機(jī)地選出需要進(jìn)行交叉的個(gè)體,對(duì)這些個(gè)體隨機(jī)地兩兩配對(duì);在1~(num-1)之間產(chǎn)生兩個(gè)隨機(jī)數(shù)k,l,這兩個(gè)數(shù)表示交叉點(diǎn)的位置;對(duì)已經(jīng)配對(duì)的兩個(gè)個(gè)體,相互對(duì)應(yīng)地交換第k到l位的數(shù)字。
%%交叉操作
對(duì)于交叉操作之后的群體進(jìn)行變異操作,其操作方法為:首先在1~num之間產(chǎn)生兩個(gè)隨機(jī)數(shù)g,h,這兩個(gè)數(shù)表示變異點(diǎn)的位置;最后再以變異概率隨機(jī)地從群體中選出的個(gè)體上,將g,h兩位置上的數(shù)互換。
%%交叉操作
%%g,h為2個(gè)變異點(diǎn)的位置
通過(guò)遺傳算法求解平臺(tái)碎片抓捕任務(wù),可以得到如下仿真結(jié)果:
表1種群大小為1000
表2迭代次數(shù)為100
最優(yōu)抓捕路徑如圖1所示;圖1中,platform表示平臺(tái),debris表示碎片,capturepath表示捕獲路徑。
分析以上仿真結(jié)果可以發(fā)現(xiàn),遺傳算法的收斂速度非???,在種群數(shù)量少于100,即迭代次數(shù)小于100的情況下就可以找到全局最優(yōu)解。由于平臺(tái)任務(wù)所設(shè)定的相關(guān)數(shù)據(jù)具有較大的對(duì)稱性,所以最優(yōu)解所對(duì)應(yīng)的最優(yōu)序列不唯一。隨著種群數(shù)量的增加,初始迭代所得到的最優(yōu)路徑會(huì)比較大,但最終仍然可以較快收斂到最優(yōu)值。
由于本任務(wù)節(jié)點(diǎn)數(shù)為8個(gè),空間碎片的尺度范圍為10m,載荷可以同時(shí)處理8個(gè)任務(wù)節(jié)點(diǎn),因此,本發(fā)明的技術(shù)指標(biāo)達(dá)到了的要求。
針對(duì)于利用飛網(wǎng)和機(jī)械臂抓捕碎片的情況,記為任務(wù)二:
如果碎片清除裝置中加入了飛網(wǎng),且飛網(wǎng)可以同時(shí)抓捕2個(gè)碎片。由以上分析的碎片抓捕多個(gè)過(guò)程分離原則,該任務(wù)同樣可以滿足機(jī)械臂或飛網(wǎng)失效更換過(guò)程獨(dú)立于碎片抓捕過(guò)程。
由于時(shí)間與燃料具有相互的制約關(guān)系,因此,這里將燃料和時(shí)間進(jìn)行加權(quán)組合成單目標(biāo),進(jìn)而考慮其最優(yōu)化問(wèn)題。任務(wù)二最大的難點(diǎn)在于飛網(wǎng)的抓捕過(guò)程與機(jī)械臂的抓捕過(guò)程是同時(shí)進(jìn)行的,總?cè)剂舷氖秋w網(wǎng)的燃料消耗與機(jī)械臂燃料消耗之和,但抓捕總時(shí)間則是飛網(wǎng)抓捕時(shí)間和機(jī)械臂抓捕時(shí)間中最長(zhǎng)的時(shí)間。由于飛網(wǎng)抓捕目標(biāo)和機(jī)械臂抓捕目標(biāo)是未知,因此,任務(wù)二無(wú)法轉(zhuǎn)化為標(biāo)準(zhǔn)的旅行商問(wèn)題進(jìn)行求解。但由于遺傳算法中適應(yīng)度函數(shù)具有非常好的靈活性,我們?nèi)匀豢梢酝ㄟ^(guò)編碼規(guī)則及適應(yīng)度函數(shù)的選取來(lái)完成任務(wù)二的求解。
綜上所述,對(duì)任務(wù)二的求解算法僅在任務(wù)一的編碼和適應(yīng)度函數(shù)部分進(jìn)行了改進(jìn),其他部分未做修改,這里不在累述。
%%生成初始群體及編碼規(guī)則改變
disp(dmatrix);%%考慮碎片在空間分布中的不確定與不規(guī)則性,設(shè)置一個(gè)隨機(jī)矩陣來(lái)描述空間碎片的分布位置
通過(guò)遺傳算法求解平臺(tái)任務(wù)二,可以得到如下仿真結(jié)果
表3種群大小為1000
表4迭代次數(shù)為100
最優(yōu)抓捕路徑如圖2所示,圖2中,platform表示平臺(tái),debris表示碎片,mainpulatorcapturepath表示機(jī)械臂捕獲路徑,netcapturepath表示飛網(wǎng)臂捕獲路徑。
分析以上仿真結(jié)果可以發(fā)現(xiàn),遺傳算法的收斂速度非???,在種群數(shù)量少于100,迭代次數(shù)小于100的情況下就可以找到局部最優(yōu)解。由于空間碎片成不規(guī)則分布,所以可以得到唯一的全局最優(yōu)解。
由于本任務(wù)節(jié)點(diǎn)數(shù)為8個(gè),空間碎片的尺度范圍為10m,載荷可以同時(shí)處理8個(gè)任務(wù)節(jié)點(diǎn),因此,本發(fā)明的技術(shù)指標(biāo)達(dá)到了的要求。