【技術(shù)領(lǐng)域】
本發(fā)明涉及一種基于種群進(jìn)化過(guò)程的自適應(yīng)遺傳算法。
背景技術(shù):
遺傳算法(geneticalgorithm-ga)是生命科學(xué)與工程科學(xué)相互交叉、互相滲透的產(chǎn)物,效法于自然選擇的生物進(jìn)化,是一種模仿生物進(jìn)化過(guò)程的隨機(jī)方法。其本質(zhì)是一種求解問(wèn)題的高度并行性全局搜索算法,它能在搜索過(guò)程中自動(dòng)獲取和積累有關(guān)搜索空間的知識(shí),并自適應(yīng)地控制搜索過(guò)程以求得最優(yōu)解。
越來(lái)越多的實(shí)踐表明,遺傳算法在解決一些復(fù)雜的問(wèn)題方面顯示出越來(lái)越多的優(yōu)越性,但是在一些方面,比如:算法的早熟問(wèn)題以及收斂性等方面還存在一些不足之處;針對(duì)sga的這些缺點(diǎn),近幾年已經(jīng)提出了多種改進(jìn)的方法,在這些改進(jìn)的遺傳算法中,自適應(yīng)遺傳算法改進(jìn)效果明顯,已得到廣泛的應(yīng)用。但是這些自適應(yīng)遺傳算法雖然在一定程度上改善了算法的性能,提高了算法的收斂性,但是對(duì)于較復(fù)雜的函數(shù),特別對(duì)于多峰函數(shù),還是容易陷入局部最優(yōu)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對(duì)現(xiàn)有自適應(yīng)遺傳算法中中存在的問(wèn)題,提出一種基于種群進(jìn)化過(guò)程的自適應(yīng)遺傳算法(balancedadaptivegeneticalgorithm-baga),通過(guò)定義種群進(jìn)化度和種群聚合度,來(lái)表征種群進(jìn)化速度和種群集中情況,再將種群進(jìn)化度和種群聚合度構(gòu)成平衡因子通過(guò)sigmoid函數(shù)來(lái)非線性調(diào)整交叉概率和變異概率,同時(shí)采用精英保留策略,單變量交叉操作,保證算法收斂。
為達(dá)到上述目的,本發(fā)明采用以下技術(shù)方案予以實(shí)現(xiàn):
一種基于種群進(jìn)化過(guò)程的自適應(yīng)遺傳算法,包括以下步驟:
1)baga算法的參數(shù)設(shè)定,設(shè)定算法的迭代次數(shù),每代種群個(gè)數(shù),自變量離散精度,總共打靶次數(shù),常數(shù)k1,k2;
2)采用二進(jìn)制編碼產(chǎn)生初始種群;在函數(shù)定義域內(nèi),根據(jù)設(shè)定的精度計(jì)算每個(gè)個(gè)體染色體的長(zhǎng)度,然后隨機(jī)產(chǎn)生n個(gè)初始種群;根據(jù)實(shí)際問(wèn)題建立目標(biāo)函數(shù)與適應(yīng)度之間的關(guān)系,然后計(jì)算每個(gè)個(gè)體適應(yīng)度;
3)判斷是否滿(mǎn)足最大迭代次數(shù),是則輸出最后一代的最優(yōu)個(gè)體,即為找到的最優(yōu)值,否則轉(zhuǎn)入步驟4);
4)建立目標(biāo)函數(shù)與適應(yīng)度函數(shù)的關(guān)系,然后計(jì)算每個(gè)個(gè)體的適應(yīng)度、當(dāng)代個(gè)體的平均適應(yīng)度,保存當(dāng)代適應(yīng)度最大的個(gè)體,根據(jù)定義計(jì)算當(dāng)代種群進(jìn)化度、種群聚合度、平衡因子、交叉概率和變異概率;
5)選擇、交叉和變異操作產(chǎn)生新種群,選擇算子采用輪盤(pán)賭技術(shù),交叉操作采用單變量交叉,變異操作采用基本位變異;
6)找出當(dāng)代種群中最優(yōu)個(gè)體,保留下來(lái),然后轉(zhuǎn)入步驟2)。
本發(fā)明進(jìn)一步的改進(jìn)在于:
步驟1)中,設(shè)定常數(shù)k1,k2的取值范圍為[110]。
步驟2)中,對(duì)于最小值和最大值的問(wèn)題建立目標(biāo)函數(shù)與適應(yīng)度函數(shù)的慣性,具體方法如下:
2-1)對(duì)最小值問(wèn)題,建立如下適應(yīng)度函數(shù)f(x)與目標(biāo)函數(shù)g(x)的映射關(guān)系:
其中,cmax是一個(gè)輸入值或是理論上的最大值;
2-2)對(duì)最大值問(wèn)題,采用下述方法:
其中,cmin是一個(gè)輸入值或是理論上的最小值。
步驟4)中,計(jì)算第t代種群的種群進(jìn)化度、種群聚合度、平衡因子、交叉概率和變異概率,具體方法如下:
第t代種群的種群進(jìn)化度定義為,
其中,fbest(t)為第t代種群中適應(yīng)度全局極值,fbest(t-1)第t-1代種群適應(yīng)度全局極值;
第t代種群的種群聚合度定義為,
其中,favg(t)為第t代種群中平均適應(yīng)度;
第t代種群的平衡因子t定義為:
第t代種群的交叉概率為:
第t代種群的變異概率為:
其中,k1和k2為常數(shù),取值范圍為[110]。
步驟5)中,單變量交叉過(guò)程如下:
交叉采用單自變量交叉,在進(jìn)行交叉操作時(shí),整個(gè)染色體上的單個(gè)自變量的染色體獨(dú)自進(jìn)行單點(diǎn)交叉,然后每個(gè)變量交叉完后再拼接在一起。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
根據(jù)種群進(jìn)化度和種群聚合度的定義,可以很清楚地反映出種群的尋優(yōu)過(guò)程。可根據(jù)種群進(jìn)化度和種群聚合度來(lái)調(diào)整交叉概率和變異概率,交叉概率和變異概率根據(jù)種群的進(jìn)化情況動(dòng)態(tài)調(diào)整,交叉概率是表征算法的全局搜索能力,變異概率表征算法的局部搜索能力,根據(jù)種群進(jìn)化情況動(dòng)態(tài)調(diào)整交叉概率和變異概率,可以平衡算法的全局搜索能力和局部搜索能力,從而大大改善算法,使算法更加智能高效。當(dāng)α(t)較小時(shí),進(jìn)化速度較快,可增大交叉和變異概率,增大種群的多樣性,使其在較大范圍內(nèi)搜索;但α(t)較大時(shí),表明進(jìn)化速度較慢,可減小交叉和變異概率,減小搜索空間,從而更快地找到最優(yōu)值。當(dāng)β(t)較小時(shí),種群比較分散,種群不易陷入局部最優(yōu),但隨著β(t)的增大,算法容易陷入局部最優(yōu),此時(shí)應(yīng)增大交叉和變異概率,提高算法全局搜索能力,防止其陷入局部最優(yōu)。因此,交叉概率和變異概率隨著種群聚合度β(t)的增大而增大,隨著種群進(jìn)化度α(t)的增大而減小,從而動(dòng)態(tài)調(diào)整算法的全局搜索能力和局部搜索能力;同時(shí)采用單變量交叉操作,加快進(jìn)化速度,使種群快速收斂到最優(yōu)解,防止算法陷入局部最優(yōu)。
【附圖說(shuō)明】
圖1為本發(fā)明的baga算法流程圖;
圖2為第一個(gè)初始位置的目標(biāo)函數(shù)值(k=0);
圖3為第一個(gè)初始位置的目標(biāo)函數(shù)值(k=0.01);
圖4為第一個(gè)初始位置的目標(biāo)函數(shù)值(k=0.1);
圖5為第二個(gè)初始位置的目標(biāo)函數(shù)值(k=0);
圖6為第二個(gè)初始位置的目標(biāo)函數(shù)(k=0.01);
圖7為第二個(gè)初始位置的目標(biāo)函數(shù)(k=0.1);
圖8為第一個(gè)初始位置的目標(biāo)函數(shù)值(k=0);
圖9為第一個(gè)初始位置的目標(biāo)函數(shù)值(k=0.01);
圖10為第一個(gè)初始位置的目標(biāo)函數(shù)值(k=0.1);
圖11為第二個(gè)初始位置的目標(biāo)函數(shù)值(k=0);
圖12為第二個(gè)初始位置的目標(biāo)函數(shù)值(k=0.01);
圖13為第二個(gè)初始位置目標(biāo)函數(shù)值(k=0.1);
圖14為目標(biāo)函數(shù)變化曲線(k=0);
圖15為目標(biāo)函數(shù)變化曲線(k=0.001);
圖16為目標(biāo)函數(shù)變化曲線(k=0.1);
圖17為目標(biāo)函數(shù)變化曲線(k=0);
圖18為目標(biāo)函數(shù)變化曲線(k=0.001);
圖19為目標(biāo)函數(shù)變化曲線(k=0.1)。
【具體實(shí)施方式】
下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步詳細(xì)描述:
為了驗(yàn)證算法的性能,采用了給出了13個(gè)測(cè)試函數(shù),其中9個(gè)基準(zhǔn)函數(shù)和4個(gè)多峰的測(cè)試函數(shù),這些函數(shù)的最小值為0,通過(guò)算法尋找函數(shù)的最小值,并且與其他5種算法進(jìn)行對(duì)比分析。
9個(gè)基準(zhǔn)函數(shù)為:
表19個(gè)基準(zhǔn)函數(shù)表達(dá)式
4個(gè)多峰的測(cè)試函數(shù):
schaffer函數(shù)f10:
函數(shù)f10是二維的復(fù)雜函數(shù),具有無(wú)數(shù)個(gè)局部極小點(diǎn),但只有一個(gè)(0,0)點(diǎn)為全局最小點(diǎn),最小值為0,該函數(shù)具有強(qiáng)烈震蕩的性態(tài),因此很難找到全局最優(yōu)解。
rosenbrock函數(shù)f11:
函數(shù)f11是一個(gè)二維單極值的非二次函數(shù),屬于單峰值函數(shù),但該函數(shù)卻是病態(tài)的,在y=x2處有一條狹長(zhǎng)深谷,極易陷入局部最優(yōu)解,難以進(jìn)行全局最優(yōu)化,該函數(shù)的全局最小點(diǎn)在(1,1),最小值為0。
trigonometric函數(shù)f12:
函數(shù)f12是一個(gè)多峰的三角函數(shù),在xi=x*時(shí)有全局最小值0,在最小值附件有大量的局部極小值,很容易陷入局部最優(yōu),令η=7,μ=1,
shubert函數(shù)f13:
函數(shù)f13存在760個(gè)局部極值點(diǎn),尋優(yōu)時(shí)極易陷入局部最優(yōu),在(-1.42513,0.80032)處取得最小值-186.7309。
根據(jù)具體的測(cè)試函數(shù),該算法包括如下步驟。
第一步:算法的參數(shù)設(shè)定,設(shè)定算法的迭代次數(shù)為200代,每代種群個(gè)數(shù)為50個(gè),自變量離散精度為1e-3,總共打靶100次,k1=2,k2=2,收斂標(biāo)準(zhǔn)為與最優(yōu)值相差小于0.01即為收斂,其他5種算法的參數(shù)設(shè)定如下。
表26種算法的參數(shù)設(shè)置
第二步:采用二進(jìn)制編碼產(chǎn)生初始種群。在函數(shù)定義域內(nèi),根據(jù)設(shè)定的精度計(jì)算每個(gè)個(gè)體染色體的長(zhǎng)度,然后隨機(jī)產(chǎn)生50個(gè)初始種群;
第三步,判斷是否滿(mǎn)足最大迭代次數(shù),是則輸出最后一代的最優(yōu)個(gè)體,即為找到的最小值,否則轉(zhuǎn)入第四步;
第四步,建立目標(biāo)函數(shù)與適應(yīng)度函數(shù)的關(guān)系,該實(shí)施例為最小值問(wèn)題,取其倒數(shù)變成適應(yīng)度函數(shù),然后計(jì)算每個(gè)個(gè)體的適應(yīng)度、當(dāng)代個(gè)體的平均適應(yīng)度,保存當(dāng)代適應(yīng)度最大的個(gè)體,計(jì)算種群進(jìn)化度和種群聚合度,然后計(jì)算當(dāng)代平衡因子、交叉概率和變異概率;
第五步,選擇、交叉和變異操作產(chǎn)生新種群,選擇算子采用輪盤(pán)賭技術(shù),交叉操作采用單變量交叉,變異操作采用單點(diǎn)變異。
第六步:找出當(dāng)代種群中最優(yōu)個(gè)體(適應(yīng)度最大),保留下來(lái),然后轉(zhuǎn)入第二步;
表36種算法對(duì)9個(gè)測(cè)試函數(shù)的測(cè)試結(jié)果
表4各算法在測(cè)試函數(shù)f10下的收斂性能
表5各算法在測(cè)試函數(shù)f11下的收斂性能
表6各算法在測(cè)試函數(shù)f12下的收斂性能
表7各算法在測(cè)試函數(shù)f13下的收斂性能
過(guò)matlab編寫(xiě)的程序,從得到的結(jié)果分析可知,從13個(gè)測(cè)試函數(shù)的仿真結(jié)果可知,在算法收斂性方面,baga算法仿真結(jié)果均接近于最優(yōu)值,并且收斂次數(shù)最多,表現(xiàn)出良好的收斂性能;在算法的穩(wěn)定性方面,baga算法的期望和均方差均較小,表現(xiàn)出很好的穩(wěn)定性,具有較高的魯棒性;baga算法能在較短的進(jìn)化時(shí)間內(nèi)自適應(yīng)地調(diào)整個(gè)體的交叉概率和變異概率,使算法能夠平衡全局收斂性能和局部收斂性能,并且交叉操作采用單自變量交叉,能夠及時(shí)的跳出局部最優(yōu),從而避免算法“早熟”。
航天器近距離相對(duì)運(yùn)動(dòng)軌跡規(guī)劃對(duì)于航天器近距離的空間交會(huì)任務(wù),一般對(duì)其燃料和時(shí)間具有一定的要求,希望燃料消耗越少越好,時(shí)間越短越好,因此在滿(mǎn)足交會(huì)軌跡的各種約束下,使燃料或時(shí)間最優(yōu),則需要對(duì)航天器交會(huì)軌跡進(jìn)行合理規(guī)劃。相對(duì)運(yùn)動(dòng)軌跡規(guī)劃與相對(duì)運(yùn)動(dòng)模型和發(fā)動(dòng)機(jī)的推力模式密切相關(guān)。對(duì)航天器近距離相對(duì)運(yùn)動(dòng)而言,由于只是針對(duì)軌道進(jìn)行規(guī)劃,因此不采用姿軌耦合的動(dòng)力學(xué)模型,而是采用忽略攝動(dòng)影響的線性化動(dòng)力學(xué)模型(c-w方程或t-h方程)。推力模式通常包括脈沖推力、繼電型推力和連續(xù)推力三類(lèi),相應(yīng)地也就有三類(lèi)軌跡規(guī)劃模型。脈沖推力假設(shè)有助于簡(jiǎn)化問(wèn)題,常用于空間任務(wù)的初步分析與設(shè)計(jì),因此采用baga算法在脈沖推力模型下對(duì)航天器近距離的相對(duì)運(yùn)動(dòng)進(jìn)行軌跡規(guī)劃。
實(shí)施例:
(1)二脈沖機(jī)動(dòng)模型
當(dāng)航天器之間的相對(duì)距離遠(yuǎn)小于它們之間的距離時(shí),航天器之間的相對(duì)運(yùn)動(dòng)模型采用c-w方程,其狀態(tài)方程如下所示:
其中,φ(t)為狀態(tài)轉(zhuǎn)移矩陣,其表達(dá)式為:
其各個(gè)分量在目標(biāo)航天器軌道坐標(biāo)下的分量為:
式中,n為目標(biāo)航天器的軌道平均角速度。
記初始時(shí)刻追蹤航天器相對(duì)運(yùn)動(dòng)狀態(tài)為x(t0),終止時(shí)刻的相對(duì)運(yùn)動(dòng)狀態(tài)為x(tf)。施加的脈沖分別為δv1,…,δvn,上標(biāo)“—”表示脈沖作用前的狀態(tài),“+”表示脈沖作用后的狀態(tài),因此對(duì)第i次脈沖有:
對(duì)于完整n次脈沖有:
其中,
將式(0-9)改寫(xiě)成如下形式:
δx=fδv(0-10)
下面分情況討論該矩陣方程。
當(dāng)n=1時(shí),一般情況下,這是一個(gè)矛盾方程組。判斷方程組是否有解的條件為:若rank([f,δx])=rank(f),則方程組有解;否則方程組無(wú)解。
當(dāng)n=2時(shí),該方程組有唯一解:
δv=f-1δx(0-11)
當(dāng)n>2時(shí),一般情況下,方程組的解不唯一,其通解為:
δv=f+δx+(i-f+f)y(0-12)
其中,f+為f的任意廣義逆矩陣,y為任意3n×1的矢量。
對(duì)于一般橢圓軌道的多脈沖相對(duì)機(jī)動(dòng),同樣可以建立類(lèi)似的數(shù)學(xué)模型,區(qū)別在于將c-w方程改成t-h方程,將狀態(tài)方程進(jìn)行相應(yīng)轉(zhuǎn)化即可。
1-1)圓軌道雙脈沖最優(yōu)相對(duì)機(jī)動(dòng)
方程(0-8)建立了多脈沖相對(duì)機(jī)動(dòng)的動(dòng)力學(xué)模型,機(jī)動(dòng)前后的運(yùn)行狀態(tài)決定了所需施加的脈沖。當(dāng)n=2時(shí),由方程(0-10)可寫(xiě)為:
若f滿(mǎn)秩,則方程(0-13)有唯一解,可求得兩次脈沖δv1和δv2;若f不滿(mǎn)秩,則方程奇異,不能求得可行解。
由方程(0-14)可知,在初始和終端狀態(tài)給定的情況下,兩次脈沖大小只與兩次脈沖的施加時(shí)刻有關(guān),只要t1和t2確定,則兩次脈沖即可確定,不存在最優(yōu)機(jī)動(dòng)問(wèn)題;但如果兩次脈沖施加時(shí)刻不確定,即:
t0≤t1<t2≤tf(0-15)
則存在脈沖最優(yōu)機(jī)動(dòng),雙脈沖最優(yōu)相對(duì)機(jī)動(dòng)可以描述為:在一定范圍內(nèi)(時(shí)間域或真近點(diǎn)角域)。追蹤航天器施加兩次脈沖,達(dá)到某一期望的最終狀態(tài),使控制代價(jià)(總?cè)剂舷幕蚩側(cè)剂虾蜁r(shí)間綜合指標(biāo))最小。
1-2)橢圓軌道雙脈沖最優(yōu)相對(duì)機(jī)動(dòng)
建立橢圓軌道的相對(duì)機(jī)動(dòng)模型,在流程和數(shù)學(xué)模型上和圓軌道類(lèi)似。如果目標(biāo)航天器位于一般橢圓軌道上,則采用t-h方程來(lái)描述相對(duì)運(yùn)動(dòng),以目標(biāo)航天器真近點(diǎn)角f,可以將其狀態(tài)方程寫(xiě)成如下形式:
其中
其中,s=ηsinβ,c=ηcosβ,η=1+ecosβ,j=r2n(t-t0)/p2,p=a(1-e2),s'=cosβ+ecos2β,c'=-(sinβ+esin2β)。
此狀態(tài)方程是以真近點(diǎn)角為自變量的方程,因此求得的狀態(tài)變量還需轉(zhuǎn)換到以時(shí)間t為自變量的狀態(tài),兩者之間的轉(zhuǎn)換如下:
其中,p,e,rt分別為目標(biāo)航天器的半通徑、偏心率和地心距。
同理,對(duì)于橢圓軌道的最優(yōu)軌道機(jī)動(dòng)轉(zhuǎn)換成設(shè)計(jì)變量為真近點(diǎn)角即:
f0≤f1<f2≤ff(0-20)
初始時(shí)刻t0,對(duì)應(yīng)目標(biāo)航天器的真近點(diǎn)角為f0,追蹤航天器的相對(duì)運(yùn)動(dòng)狀態(tài)為x(t0),在真近點(diǎn)角f0~ff內(nèi),追蹤航天器施加兩次脈沖δv1,δv2,經(jīng)過(guò)真近點(diǎn)角ff,到達(dá)期望的終止?fàn)顟B(tài)x(ff)。
令兩次脈沖的施加時(shí)刻為t1,t2,所對(duì)應(yīng)的目標(biāo)航天器真近點(diǎn)角為f1,f2,則利用公式(0-8)可得:
其中
將方程(0-21)展開(kāi),即可求得兩次脈沖的表達(dá)式:
最后,將f域的狀態(tài)變量轉(zhuǎn)換到t域上,有:
可見(jiàn)航天器機(jī)動(dòng)前后的相對(duì)狀態(tài)確定后,脈沖速度的大小與脈沖施加的時(shí)刻f1,f2有關(guān),因此可以?xún)?yōu)化脈沖施加的時(shí)刻,來(lái)找到控制代價(jià)(總?cè)剂舷幕蚩側(cè)剂虾蜁r(shí)間綜合指標(biāo))最小的最優(yōu)機(jī)動(dòng)策略。
(2)baga算法設(shè)計(jì)
baga算法主要包括編碼方法的選擇、適應(yīng)度函數(shù)的設(shè)計(jì)、選擇、交叉和變異操作的設(shè)計(jì),下面針對(duì)飛行時(shí)間不固定的二脈沖機(jī)動(dòng)模型,進(jìn)行優(yōu)化算法設(shè)計(jì)。
2-1)編碼方法選擇
針對(duì)二脈沖機(jī)動(dòng)模型,設(shè)計(jì)變量只有兩個(gè),分別為:
式中,t1表示從起始到第一次脈沖作用的飛行時(shí)間;t2表示從第一次脈沖作用后到第二次脈沖(末端)作用的飛行時(shí)間。
由于變量較少,因此采用最原始的二進(jìn)制編碼方式,今后處理時(shí),這兩個(gè)設(shè)計(jì)變量將作為兩個(gè)獨(dú)立的基因分別對(duì)待。
2-2)適應(yīng)度函數(shù)的設(shè)計(jì)
一般的脈沖機(jī)動(dòng)模型的目標(biāo)函數(shù)為燃料消耗或時(shí)間消耗,而工程中的交會(huì)優(yōu)化問(wèn)題一般不止單對(duì)時(shí)間或燃料消耗有要求;故本案例采用線性加權(quán)的方法,對(duì)于雙沖量最優(yōu)機(jī)動(dòng)模型取如下能量—時(shí)間混合優(yōu)化指標(biāo),將時(shí)間和燃料的加權(quán)作為目標(biāo)函數(shù),如下所示:
j=|δv1|+|δv2|+k(t1+t2)(0-25)
其中k是可調(diào)的權(quán)重系數(shù),|ο|表示對(duì)向量取模。
由于給定t1,t2時(shí),通過(guò)式(0-14)或(0-22)可以確定δv1,δv2的大小,故設(shè)計(jì)變量實(shí)際只有兩個(gè):t1和t2。
目標(biāo)函數(shù)與適應(yīng)度函數(shù)具有一一映射的關(guān)系,但是目標(biāo)函數(shù)不一定就是適應(yīng)度函數(shù),因?yàn)檫m應(yīng)度函數(shù)總是非負(fù)的,而且其值越大越好,因此需要把目標(biāo)函數(shù)轉(zhuǎn)換成適應(yīng)度函數(shù),這個(gè)過(guò)程稱(chēng)為適應(yīng)度函數(shù)的標(biāo)定。本案例的目標(biāo)函數(shù)是時(shí)間和燃料,希望越小越好,故可以取目標(biāo)函數(shù)的倒數(shù)轉(zhuǎn)換成最大值問(wèn)題,具體轉(zhuǎn)換如下:
1.1.12-3)選擇、交叉、變異操作設(shè)計(jì)
遺傳算法的選擇操作采用經(jīng)典的輪盤(pán)賭策略,交叉概率和變異概率的計(jì)算如上所述,并且采用精英保留策略,由于變量個(gè)數(shù)只有兩個(gè),因此不采用單自變量交叉,而是采用常規(guī)的單點(diǎn)交叉,變異也采用單點(diǎn)變異操作。
(3)圓軌道最優(yōu)機(jī)動(dòng)策略
假設(shè)目標(biāo)航天器運(yùn)行在400km的圓軌道上,初始相對(duì)狀態(tài)分別為(70000,-30000,0,-40,30,0)m和(100000,-20000,0,-20,0,0)m,交會(huì)終端相對(duì)狀態(tài)為(0,0,0,0,0,0)m。改進(jìn)的自適應(yīng)遺傳算法的參數(shù)設(shè)置為:迭代代數(shù)100代,群體規(guī)模50個(gè),交叉和變異概率的調(diào)節(jié)系數(shù)k1=k2=2。根據(jù)上面設(shè)計(jì)的遺傳算法和給出的交會(huì)模型,對(duì)于不同的初始條件,分別考慮第一次脈沖位置變化和不考慮第一次脈沖位置進(jìn)行仿真對(duì)比分析,以驗(yàn)證該改進(jìn)的自適應(yīng)遺傳算法的實(shí)用性。
表1考慮第一次脈沖位置的優(yōu)化結(jié)果
表2不考慮第一次脈沖位置的優(yōu)化結(jié)果
由表1的計(jì)算結(jié)果可知,均能找到一個(gè)較好的解,當(dāng)考慮第一次脈沖的位置時(shí),由第一個(gè)初始位置的仿真結(jié)果可知,但時(shí)間的權(quán)重k=0.01時(shí),與不考慮時(shí)間指標(biāo)的情況下所得結(jié)果基本一致,說(shuō)明當(dāng)時(shí)間的權(quán)重比較小時(shí),對(duì)其結(jié)果影響不大,從三次的仿真結(jié)果可以看出,但任務(wù)時(shí)間較長(zhǎng)時(shí),所需的燃料消耗就較小,第二個(gè)初始位置的仿真結(jié)果也得到類(lèi)似的結(jié)論;由
表2可知,在初始時(shí)刻施加脈沖時(shí),終端時(shí)刻施加的時(shí)間越晚,則所需的脈沖就越小。另外,從兩個(gè)表中可以看出,對(duì)于不同的權(quán)值k,計(jì)算的結(jié)果也不相同,當(dāng)k值較大,則交會(huì)所需的總時(shí)間較小,相應(yīng)的總?cè)剂暇统试黾于厔?shì);當(dāng)k值較小,即對(duì)燃料要求嚴(yán)格時(shí),交會(huì)所需的總時(shí)間就呈變長(zhǎng)趨勢(shì),這正是由時(shí)間和燃料的綜合指標(biāo)決定的。
另外,由兩次的數(shù)值仿真的目標(biāo)函數(shù)值可以看出,算法表現(xiàn)出較好的收斂性能和穩(wěn)定性,不管對(duì)于考慮還是不考慮第一次脈沖位置變化,對(duì)于不同的k值,從圖2到圖19可以看出,算法均在40代之內(nèi)就已經(jīng)收斂,有的甚至20代就已經(jīng)收斂,也再一次證明了算法的良好收斂性能,也說(shuō)明了改進(jìn)的自適應(yīng)遺傳算法良好的實(shí)用性。
(4)橢圓軌道最優(yōu)機(jī)動(dòng)策略
假設(shè)目標(biāo)航天器在橢圓軌道上,其長(zhǎng)半軸a=10000km,偏心率e=0.3,初始真近點(diǎn)角為0。在時(shí)間域下的初始相對(duì)狀態(tài)為(-10000,-30000,-5000,0,20,0),交會(huì)終端狀態(tài)為(0,0,0,0,0,0),改進(jìn)的自適應(yīng)遺傳算法的參數(shù)設(shè)置為:迭代代數(shù)100代,群體規(guī)模50個(gè),交叉和變異概率的調(diào)節(jié)系數(shù)k1=k2=2。分別考慮第一次脈沖位置變化和不考慮第一次脈沖位置進(jìn)行仿真對(duì)比分析,其仿真結(jié)果如下。
表3考慮第一次脈沖位置的優(yōu)化結(jié)果
表4不考慮第一次脈沖位置的優(yōu)化結(jié)果
由表3的仿真結(jié)果可知,當(dāng)考慮第一次脈沖位置時(shí),不同的k值對(duì)應(yīng)不同的目標(biāo)函數(shù),當(dāng)k值較小時(shí),對(duì)其結(jié)果影響不大,隨著k值的增大,目標(biāo)函數(shù)值也增大,由三次仿真結(jié)果可知,當(dāng)任務(wù)時(shí)間縮短時(shí),則所需脈沖變大。當(dāng)不考慮第一次脈沖位置時(shí),所得的結(jié)論與表3類(lèi)似,在初始時(shí)刻施加脈沖時(shí),終端時(shí)刻施加的時(shí)間越晚,則所需的脈沖就越小。
由表3和表4的仿真結(jié)果可知,考慮第一次脈沖位置變化和不考慮脈沖位置變化,優(yōu)化指標(biāo)值沒(méi)有明顯變化,因此不存在對(duì)一次脈沖位置進(jìn)行優(yōu)化問(wèn)題,一般在起始時(shí)就施加脈沖;另外由兩次工況的目標(biāo)函數(shù)變化曲線可知,目標(biāo)函數(shù)值均在20代左右就已經(jīng)收斂,說(shuō)明改進(jìn)的自適應(yīng)遺傳算法具有良好的收斂性能和穩(wěn)定性。
由圓軌道和橢圓軌道的相對(duì)運(yùn)動(dòng)軌跡規(guī)劃可知,對(duì)于考慮時(shí)間和燃料綜合指標(biāo)時(shí),對(duì)于不同的時(shí)間權(quán)值k,計(jì)算的結(jié)果并不相同,當(dāng)k值較大,任務(wù)所需的時(shí)間則縮短,相應(yīng)的總?cè)剂暇统试黾于厔?shì);當(dāng)k值較小,則對(duì)任務(wù)總時(shí)間變長(zhǎng),相應(yīng)的總?cè)剂暇统蕼p少趨勢(shì),同時(shí)對(duì)于橢圓軌道而已,考慮第一次脈沖位置變化和不考慮脈沖位置變化,優(yōu)化指標(biāo)值沒(méi)有明顯變化,因此不存在對(duì)一次脈沖位置進(jìn)行優(yōu)化問(wèn)題,一般在起始時(shí)刻就施加脈沖。通過(guò)兩次工況可知,baga針對(duì)實(shí)際問(wèn)題能夠表現(xiàn)出良好的實(shí)用性能,并且所有仿真案例均在40代之前已經(jīng)收斂,表明了baga具有良好的收斂性能。
以上內(nèi)容僅為說(shuō)明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護(hù)范圍,凡是按照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何改動(dòng),均落入本發(fā)明權(quán)利要求書(shū)的保護(hù)范圍之內(nèi)。