基于遺傳算法的PID參數(shù)優(yōu)化設(shè)計(jì)_第1頁
基于遺傳算法的PID參數(shù)優(yōu)化設(shè)計(jì)_第2頁
基于遺傳算法的PID參數(shù)優(yōu)化設(shè)計(jì)_第3頁
基于遺傳算法的PID參數(shù)優(yōu)化設(shè)計(jì)_第4頁
基于遺傳算法的PID參數(shù)優(yōu)化設(shè)計(jì)_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于遺傳算法的PID參數(shù)優(yōu)化設(shè)計(jì)摘要:PID調(diào)節(jié)器是最早發(fā)展起來的控制策略之一,遺傳算法是一種借鑒生物界自然選擇和自然遺傳學(xué)機(jī)理上的迭代自適應(yīng)概率性搜索算法。遺傳算法模仿生物進(jìn)化的步驟,在優(yōu)化過程中引入選擇,交叉,變異等算子,選擇是從父代種群中將適應(yīng)度較高的個(gè)體選擇出來,以優(yōu)化種群;交叉是從種群中隨機(jī)地抽取一對個(gè)體,并隨機(jī)地選擇多位進(jìn)行交叉,生成新樣本,達(dá)到增大搜索空間的目的;變異是為了防止選擇和交叉丟失重要的遺傳信息,它對個(gè)體按位進(jìn)行操作,以提高GA的搜索效率和全局搜索能力。通過適應(yīng)度函數(shù)來確定尋優(yōu)方向,與其他一些常規(guī)整定方法相比,遺傳算法比較簡便,整定精度較高。關(guān)鍵字:PID調(diào)節(jié)器,遺傳算法,適應(yīng)度函數(shù)Abract:Keyword:1引言傳統(tǒng)的比例、積分、微分控制,即PID控制具有算法簡單、魯棒性好和可靠性高等優(yōu)點(diǎn),已經(jīng)被廣泛用于工業(yè)生產(chǎn)過程控制。但工程實(shí)際中,PID控制器的比例、積分和微分調(diào)節(jié)參數(shù)往往采用實(shí)驗(yàn)加試湊的方法由人工整定。PID控制作為比較成熟的控制技術(shù)廣泛應(yīng)用于工業(yè)生產(chǎn)過程,目前絕大多數(shù)底層控制都采用PID控制器。實(shí)際應(yīng)用中控制器的參數(shù)往往采用實(shí)驗(yàn)試湊的方法人工整定,該方法往往整定不良、性能不佳,而且對運(yùn)行工況的適應(yīng)性很差。近年來隨著計(jì)算機(jī)技術(shù)的廣泛應(yīng)用,人工智能算法PID整定策略發(fā)展迅速,如模糊PID、專家PID、神經(jīng)元網(wǎng)絡(luò)PID以及遺傳算法等。這些算法能夠?qū)崿F(xiàn)提高優(yōu)化性能,縮短整定時(shí)間,實(shí)際應(yīng)用方便的控制目標(biāo)。2PID控制器PID控制器是將偏差的比例(P)、積分(I)、微分(D)通過線性組合構(gòu)成控制量,對被控對象進(jìn)行控制的。模擬PID控制的系統(tǒng)原理圖如圖2-1所示。 圖2-1.模擬PID控制的系統(tǒng)原理圖模擬PID控制規(guī)律為位置式:(2-1)當(dāng)系統(tǒng)采樣周期為時(shí),對上式離散化處理,可得到離散位置式PID控制表達(dá)式:(2-2)式中,。增量式PID控制表達(dá)式可以表示為:(2-3)(2-4)2遺傳算法簡介2.1遺傳算法的基本原理遺傳算法(GeneticAlgorithm)是模擬達(dá)爾文生物進(jìn)化論的自然選擇和遺傳學(xué)機(jī)理的生物進(jìn)化過程的計(jì)算模型,將達(dá)爾文生物進(jìn)化理論引入?yún)?shù)尋優(yōu)之中,適應(yīng)度高的個(gè)體越容易被保留,經(jīng)過若干代數(shù)遺傳操作,種群各個(gè)體的適應(yīng)度不斷提高,直至滿足一定的極限條件,獲得優(yōu)化問題最優(yōu)解。此外,遺傳算法對初始值沒有特殊要求,不需要充足的先驗(yàn)知識即可求解,應(yīng)用性極強(qiáng)。 遺傳算法的主要操作步驟有:染色體編碼(含解碼)、種群選擇、交叉、變異。2.2遺傳算法的特點(diǎn)同常規(guī)優(yōu)化算法相比,遺傳算法有以下特點(diǎn):1)遺傳算法是對參數(shù)的編碼進(jìn)行操作,而不對參數(shù)本身。首先基于一個(gè)有限的字母表,把最優(yōu)化問題的自然參數(shù)集編碼為有限長度的字符串。2)遺傳算法是從許多點(diǎn)開始并行操作的,而不局限于一點(diǎn),有效防止搜索過程收斂于局部最優(yōu)解。3)遺傳算法通過目標(biāo)函數(shù)來計(jì)算適應(yīng)度,不需要其他推導(dǎo)和附加信息,對問題的依賴性較小。4)遺傳算法的尋優(yōu)規(guī)則是由概率決定的,而非確定性的。5)遺傳算法在解空間進(jìn)行高效啟發(fā)式搜索,而非盲目地窮舉或完全隨機(jī)搜索。6)遺傳算法對于待尋優(yōu)的函數(shù)基本無限制,它不要求函數(shù)連續(xù)和可微,可以是數(shù)學(xué)解析式所表達(dá)的顯函數(shù),又可以是映射矩陣甚至是神經(jīng)網(wǎng)絡(luò)等隱函數(shù),因而應(yīng)用范圍較廣。7)遺傳算法具有并行計(jì)算的特點(diǎn),因而可以通過大規(guī)模并行計(jì)算來提高計(jì)算速度。8)遺傳算法計(jì)算簡單,功能強(qiáng),更適合大規(guī)模復(fù)雜問題的優(yōu)化。3遺傳算法的基本操作3.1二進(jìn)制編碼 染色體編碼方式主要有二進(jìn)制編碼和實(shí)數(shù)編碼兩種。相比較而言,二進(jìn)制編碼的執(zhí)行效率較高,遺傳算法應(yīng)用較簡便,故在此主要介紹二進(jìn)制編碼和解碼。顧名思義,二進(jìn)制編碼是僅由0、1組成的編碼,初始個(gè)體的基因值可以用均勻分布的隨機(jī)數(shù)產(chǎn)生。假如要估計(jì)的參數(shù)個(gè)數(shù)為,染色體長度為,那么每個(gè)個(gè)體的編碼數(shù)為。針對該個(gè)體(參數(shù)組)第個(gè)元素進(jìn)行解碼有:(5)其中,與分別代表該元素取值上下限,表示該元素二進(jìn)制編碼的十進(jìn)制轉(zhuǎn)換值。3.2選擇算子 依據(jù)“優(yōu)勝劣汰,適者生存”的進(jìn)化思想,適應(yīng)度越高的個(gè)體能夠產(chǎn)生后代的概率越大,其被保留的概率也越大。一般的遺傳算法大多采用基于輪盤賭的選擇策略:假設(shè)一個(gè)種群含有個(gè)個(gè)體,每個(gè)個(gè)體的適應(yīng)度為,將其歸一化:(6)然后前項(xiàng)相加作為選擇依據(jù),即當(dāng)大于等于隨機(jī)數(shù)時(shí),選擇該個(gè)體保留。這樣適應(yīng)度較高的個(gè)體占的比例大,其被隨機(jī)選中的概率也大。3.3復(fù)制復(fù)制是從一個(gè)舊種群中選擇生命力強(qiáng)的個(gè)體位串產(chǎn)生新種群的過程。根據(jù)位串的適配值拷貝,也就是指具有高適配值的位串更有可能在下一代中產(chǎn)生一個(gè)或多個(gè)子孫。它模仿了自然現(xiàn)象,應(yīng)用了達(dá)爾文的適者生存理論。復(fù)制操作可以通過隨機(jī)方法來實(shí)現(xiàn)。若用計(jì)算機(jī)程序來實(shí)現(xiàn),可考慮首先產(chǎn)生0~1之間均勻分布的隨機(jī)數(shù),若某串的復(fù)制概率為40%,則產(chǎn)生的隨機(jī)數(shù)在0~0.40之間時(shí),該串被復(fù)制,否則被淘汰。此外,還可以通過計(jì)算方法實(shí)現(xiàn),其中較典型的幾種方法為適應(yīng)度比例法、期望值法、排位次序法等。適應(yīng)度比例法較常用。3.4交叉復(fù)制操作能從舊種群中選擇出優(yōu)秀者,但不能創(chuàng)造新的染色體。而交叉模擬了生物進(jìn)化過程中的繁殖現(xiàn)象,通過兩個(gè)染色體的交換組合,來產(chǎn)生新的優(yōu)良品種。它的過程為:在匹配池中任選兩個(gè)染色體,隨機(jī)選擇一點(diǎn)或多點(diǎn)交換點(diǎn)位置;交換雙親染色體交換點(diǎn)右邊的部分,即可得到兩個(gè)新的染色體數(shù)字串。交換體現(xiàn)了自然界中信息交換的思想。交叉有一點(diǎn)交叉、多點(diǎn)交叉、還有一致交叉、順序交叉和周期交叉。一點(diǎn)交叉是最基本的方法,應(yīng)用較廣,它是指染色體切斷點(diǎn)有一處,例如:A:1011001110->1011000101B:0010100101->00101011103.5變異變異運(yùn)算用來模擬生物在自然界的遺傳環(huán)境中由于各種偶然因素的基因突變,它以很小的概率隨機(jī)地改變遺傳基因(表示染色體的符號串的某一位)的值。在染色體以二進(jìn)制編碼的系統(tǒng)中,它隨機(jī)地將染色體的某一基因由1變?yōu)?,或由0變?yōu)?。若只有選擇和交叉,而沒有變異,則無法在初始基因組合以外的空間進(jìn)行搜索,使進(jìn)化過程在早期就陷入局部解而進(jìn)入終止過程,從而影響解的質(zhì)量。為了在盡可能大的空間中獲得質(zhì)量較高的優(yōu)化解,必須采用變異操作。4基于遺傳算法的PID控制設(shè)計(jì)4.1遺傳算法整定PID參數(shù)的優(yōu)點(diǎn)采用遺傳算法進(jìn)行PID三個(gè)系數(shù)的整定,具有以下優(yōu)點(diǎn):1)與單純形法相比,遺傳算法同樣具有良好的尋優(yōu)特性,且它克服了單純形法的初值敏感性。在初始條件選擇不當(dāng)?shù)那闆r下,遺傳算法在不需要給出調(diào)節(jié)器初始參數(shù)的情況下,仍能尋找到合適的參數(shù),使控制目標(biāo)滿足要求。同時(shí)單純形法難以解決多值函數(shù)問題以及在多參數(shù)尋優(yōu)(如串級系統(tǒng))中,容易造成尋優(yōu)失敗或時(shí)間過長,而遺傳算法的特性決定了它能很好地克服以上問題。2)與專家整定法相比,它具有操作方便,速度快的優(yōu)點(diǎn),不需要復(fù)雜的規(guī)則,只需要對字符串進(jìn)行復(fù)制、交叉、變異運(yùn)算,便可達(dá)到尋優(yōu)。避免了專家整定法中前期大量的知識庫整理工作以及大量的仿真實(shí)驗(yàn)。3)遺傳算法是從許多點(diǎn)開始并行操作,在解空間進(jìn)行高效啟發(fā)式搜索,克服了從單點(diǎn)出發(fā)的弊端以及搜索的盲目性,從而提高運(yùn)算速度,避免了過早陷入局部最優(yōu)解(如圖1所示)。4)遺傳算法不僅適用于單目標(biāo)尋優(yōu),而且也適用于多目標(biāo)尋優(yōu)。根據(jù)不同的控制系統(tǒng),針對一個(gè)或多個(gè)目標(biāo),遺傳算法均能在規(guī)定的范圍內(nèi)尋找到合適參數(shù)。遺傳算法作為一種全局優(yōu)化算法,得到了越來越廣泛的應(yīng)用。近年來,遺傳算法在控制上的應(yīng)用日益增多。圖1遺傳算法的運(yùn)算過程4.2基于遺傳算法整定PID參數(shù)的步驟(1)確定決策變量和約束條件我們知道,PID控制的三個(gè)系數(shù)為Kp、Ki、Kd,我們可以根據(jù)參數(shù)的物理意義和經(jīng)驗(yàn)來確定它們的取值范圍,即約束條件。建立優(yōu)化模型為獲取滿意的過渡過程動態(tài)特性,采用誤差絕對值時(shí)間積分性能指標(biāo)作為參數(shù)選擇最小目標(biāo)函數(shù)。為防止控制量過大,在目標(biāo)函數(shù)中加入控制輸入的平方項(xiàng)。最后選用以下公式作為參數(shù)選擇的最優(yōu)指標(biāo):J=式中,有e(t)為系統(tǒng)誤差,u(t)為控制器輸出,為上升時(shí)間,,,為加權(quán)值。同時(shí),為避免超調(diào),采用遺傳算法的處罰功能,即一旦超調(diào),將超調(diào)量作為最優(yōu)指標(biāo)的一項(xiàng),此時(shí)最優(yōu)指標(biāo)為:如果e(t)<0則J=其中,為加權(quán)值,且?。確定編碼和解碼方法。遺傳算法有二進(jìn)制、格雷碼、浮點(diǎn)數(shù)和實(shí)數(shù)編碼方法。用實(shí)數(shù)編碼無需解碼,但進(jìn)行遺傳操作時(shí)不太方便;用二進(jìn)制編碼方法,遺傳操作方便,解碼處理后即可得到最優(yōu)解。確定個(gè)體評價(jià)方法,即確定個(gè)體適應(yīng)度函數(shù)(FitnessFunction)。評價(jià)個(gè)體適應(yīng)度的一般過程是:對個(gè)體編碼串進(jìn)行解碼處理后,可得到個(gè)體的表現(xiàn)型;由表現(xiàn)型可計(jì)算出對應(yīng)個(gè)體的目標(biāo)函數(shù)值;根據(jù)最優(yōu)問題的類型,有目標(biāo)函數(shù)值按一定的轉(zhuǎn)換規(guī)則可求出個(gè)體的適應(yīng)度。確定遺傳算法的運(yùn)行參數(shù)根據(jù)實(shí)際情況確定群體大小M、遺傳代數(shù)kg、交叉概率Pc、變異概率Pm和權(quán)值,,,的大小。本文取M=30,kg=100,Pc=0.9,Pm不固定,=0.999=0.001,=2,=100。編寫遺傳算法程序,并進(jìn)行仿真,從而得到優(yōu)化后的PID參數(shù)。4.3遺傳算法PID參數(shù)整定1模型描述 對于連續(xù)二階模型(8)將其化作狀態(tài)空間結(jié)構(gòu)框圖如圖2所示。圖2系統(tǒng)狀態(tài)空間結(jié)構(gòu)框圖那么該系統(tǒng)可以轉(zhuǎn)換為狀態(tài)空間表達(dá)式(9)將其寫為微分方程組的形式,解該方程組就可以得到連續(xù)系統(tǒng)的輸出量。另一種處理方法是將該連續(xù)系統(tǒng)離散化,對于二階系統(tǒng)而言,其Z傳遞函數(shù)的分子分母最多為Z的2次。后向差分變換后,可以得到(10)本文將以,,的連續(xù)系統(tǒng)為例進(jìn)行數(shù)字PID參數(shù)整定2目標(biāo)函數(shù)表述 目標(biāo)函數(shù)選取不同,將會導(dǎo)致參數(shù)整定結(jié)果不同。因此目標(biāo)函數(shù)的選取直接關(guān)系到控制效果的優(yōu)劣。本文以二次型性能指標(biāo)函數(shù)(11)其中,為常數(shù)。由于遺傳算法選擇目標(biāo)函數(shù)值最大的個(gè)體,而實(shí)際上二次性能指標(biāo)越小越好,故可令目標(biāo)函數(shù)(12)其中為一極小的正數(shù),用于防止造成計(jì)算失誤,可令。該目標(biāo)函數(shù)充分考慮了控制量和輸出量的穩(wěn)定性和動態(tài)性能,往往能夠獲得滿意的控制效果。5遺傳算法整定PID參數(shù)的編程實(shí)現(xiàn)與仿真5.1工業(yè)對象的數(shù)學(xué)建模由于工業(yè)領(lǐng)域中的被控對象一般為一階或二階環(huán)節(jié),因此,在本文里我們擬定受控對象的傳遞函數(shù)為如下:G(s)=其中采樣時(shí)間為20s。5.2遺傳算法整定PID參數(shù)的實(shí)現(xiàn)與控制效果5.2.1編寫最優(yōu)指標(biāo)的M文件利用遺傳算法整定PID參數(shù),首先,最核心的是要編寫最優(yōu)指標(biāo)的m文件。m文件里主要是一個(gè)函數(shù),函數(shù)里包含了受控對象以及性能指標(biāo)的程序?qū)崿F(xiàn)。它是聯(lián)系遺傳算法與PID整定環(huán)節(jié)的橋梁。具體程序見附件。根據(jù)4.2的步驟(2)可以得出目標(biāo)函數(shù)J如下:J=e(t)0J=e(t)<0MATLAB程序?qū)崿F(xiàn):fori=1:1:PJi(i)=0.999*abs(error(i))+0.001*u(i)^2;B=B+Ji(i);ifi>1erry(i)=yout(i)-yout(i-1);iferry(i)<0B=B+100*abs(erry(i));endendendBsJ=B+2*tu;在控制系統(tǒng)里要求目標(biāo)函數(shù)的值越小越好。然而,在遺傳算法里是按照最大化方向進(jìn)行搜索的。因此,設(shè)計(jì)適應(yīng)度函數(shù)為:F=1/J.主程序的編程實(shí)現(xiàn)也比較簡單,具體如下:Ji=BsJi+1e-10;%避免分母為零fi=1./Ji;在MATLAB程序里用此句來調(diào)用函數(shù):[Kpidi,BsJ]=fitness(Kpidi,BsJ);因此,在寫完m文件時(shí),應(yīng)把文件命名為fitness.m。另外一個(gè)也是非常重要的,那就是傳遞函數(shù)的生成與定義輸出,實(shí)現(xiàn)如下:由于傳遞函數(shù)為:G(s)=Z變換后可得G(z)=程序?qū)崿F(xiàn):ts=20;%采樣時(shí)間20ssys=tf(1,[60,1],’inputdelay’,80);%生成傳遞函數(shù)G(s)dsys=c2d(sys,ts,'z');%Z變換G(z)[num,den]=tfdata(dsys,'v');%返回z變換后的各項(xiàng)系數(shù)其中:num(1)=0num(2)=0.2835den(1)=1den(2)=-0.7165=G(z)=,從而U(z)*0.2835=Y(z)(z-0.7165)即U(z)*num(2)=Y(z)(z+den(2))寫成差分方程為:y(k+1)=-den(2)y(k)+num(2)u(k)差分方程在程序可以如下實(shí)現(xiàn):yout(k)=-den(2)*y_1+num(2)*u_1;u_1=u(k);y_1=yout(k);5.2.1編寫主程序主程序里是遺傳算法的實(shí)現(xiàn),其中最重要的是三個(gè)遺傳操作:復(fù)制、交叉、變異。遺傳算法的程序流程圖如圖2所示:圖2遺傳算法的程序流程圖復(fù)制根據(jù)第二章的介紹,編寫復(fù)制的部分程序如下:fi_sum=sum(fi);fi_Size=(Oderfi/fi_sum)*Size;fi_S=floor(fi_Size);r=Size-sum(fi_S);Rest=fi_Size-fi_S;[RestValue,Index]=sort(Rest);fori=Size:-1:Size-r+1fi_S(Index(i))=fi_S(Index(i))+1;endk=1;fori=Size:-1:1forj=1:1:fi_S(i)TempE(k,:)=Kpid(Indexfi(i),:);k=k+1;endend交叉交叉概率在本文里設(shè)定為0.9,交叉的主要程序如下:Pc=0.90;%交叉概率fori=1:2:(Size-1)temp=rand;ifPc>tempalfa=rand;TempE(i,:)=alfa*Kpid(i+1,:)+(1-alfa)*Kpid(i,:);TempE(i+1,:)=alfa*Kpid(i,:)+(1-alfa)*Kpid(i+1,:);endendTempE(Size,:)=BestS;Kpid=TempE;變異變異部分程序的實(shí)現(xiàn)如下:Pm=0.10-[1:1:Size]*(0.01)/Size;Pm_rand=rand(Size,CodeL);Mean=(MaxX+MinX)/2;Dif=(MaxX-MinX);fori=1:1:Sizeforj=1:1:CodeLifPm(i)>Pm_rand(i,j)TempE(i,j)=Mean(j)+Dif(j)*(rand-0.5);endendend定義輸出本程序的定義了兩個(gè)輸出,一個(gè)是目標(biāo)函數(shù)值J;另一個(gè)是PID參數(shù)整定后的具體值。BestfiBestSBest_J=BestJ(G)figure(1);plot(time,BestJ);xlabel('Times');ylabel('BestJ');figure(2);plot(timef,rin,'r',timef,yout,'b');xlabel('Time(s)');ylabel('rin,yout1,yout');主程序的完整程序見附件。5.2.2仿真結(jié)果與分析根據(jù)遺傳算法優(yōu)化PID參數(shù)的步驟,運(yùn)行程序,經(jīng)過100代的進(jìn)化,可獲得優(yōu)化參數(shù)Kp=1.0814、Ki=0.9093、Kd=0.0329,性能指標(biāo)J=218.3443。性能指標(biāo)的優(yōu)化過程和經(jīng)過優(yōu)化后的PID控制階躍響應(yīng)分別如圖3和圖4所示:圖3性能指標(biāo)J的優(yōu)化過程圖4整定后的PID階躍響應(yīng)由上圖可知,基于遺傳算法整定PID的階躍響應(yīng)曲線能保證系統(tǒng)的穩(wěn)定,調(diào)節(jié)時(shí)間較短,曲線能較快速地到達(dá)穩(wěn)態(tài),但是超調(diào)量較大。附錄Matlab里遺傳算法程序:clearall;%清除了所有的變量,包括全局變量globalcloseall;globalrinyouttimef%定義全局變量Size=30;%樣本個(gè)數(shù)定為30CodeL=3;MinX(1)=zeros(1);MaxX(1)=20*ones(1);%定義Kp的取值范圍為0-20MinX(2)=zeros(1);MaxX(2)=1.0*ones(1);%定義Ki的取值范圍為0-1MinX(3)=zeros(1);MaxX(3)=1.0*ones(1);%定義Kd的取值范圍為0-1Kpid(:,1)=MinX(1)+(MaxX(1)-MinX(1))*rand(Size,1);%取值為0-1的隨機(jī)數(shù)產(chǎn)生初始種群Kpid(:,2)=MinX(2)+(MaxX(2)-MinX(2))*rand(Size,1);Kpid(:,3)=MinX(3)+(MaxX(3)-MinX(3))*rand(Size,1);G=100;%100代進(jìn)化BsJ=0;%最優(yōu)指標(biāo)初始值%***************開始運(yùn)行***************forkg=1:1:Gtime(kg)=kg;%******Step1:估計(jì)最優(yōu)指標(biāo)******fori=1:1:SizeKpidi=Kpid(i,:);[Kpidi,BsJ]=fitness(Kpidi,BsJ);%調(diào)用m函數(shù)BsJi(i)=BsJ;end[OderJi,IndexJi]=sort(BsJi);BestJ(kg)=OderJi(1);BJ=BestJ(kg);Ji=BsJi+1e-10;%避免分母為零fi=1./Ji;%轉(zhuǎn)換為適應(yīng)度函數(shù)[Oderfi,Indexfi]=sort(fi);%將適應(yīng)度值從小到大排列Bestfi=Oderfi(Size);%Bestfi取得適應(yīng)度最大值BestS=Kpid(Indexfi(Size),:);%LetBestS=E(m),mistheIndexfibelongtomax(fi)kg%輸出BJBestS%******Step2:選擇與復(fù)制******fi_sum=sum(fi);fi_Size=(Oderfi/fi_sum)*Size;fi_S=floor(fi_Size);%SelectingBiggerfivaluefloor()朝負(fù)無窮方向舍入r=Size-sum(fi_S);Rest=fi_Size-fi_S;[RestValue,Index]=sort(Rest);fori=Size:-1:Size-r+1fi_S(Index(i))=fi_S(Index(i))+1;endk=1;fori=Size:-1:1forj=1:1:fi_S(i)TempE(k,:)=Kpid(Indexfi(i),:);%選擇與復(fù)制k=k+1;%k用于復(fù)制endend%************Step3:交叉************Pc=0.90;%交叉概率fori=1:2:(Size-1)temp=rand;ifPc>temp%交叉條件alfa=rand;TempE(i,:)=alfa*Kpid(i+1,:)+(1-alfa)*Kpid(i,:);TempE(i+1,:)=alfa*Kpid(i,:)+(1-alfa)*Kpid(i+1,:);endendTempE(Size,:)=BestS;Kpid=TempE;%************Step4:變異**************Pm=0.10-[1:1:Size]*(0.01)/Size;%Pm應(yīng)取很小值Pm_rand=rand(Size,CodeL);Mean=(MaxX+MinX)/2;Dif=(MaxX-MinX);fori=1:1:Sizeforj=1:1:CodeLifPm(i)>Pm_rand(i,j)%MutationConditionTempE(i,j)=Mean(j)+Dif(j)*(rand-0.5);endendendTempE(Size,:)=BestS;Kpid=TempE;endBestfiBestSBest_J=BestJ(G)figure(1);plot(time,BestJ);xlabel('Times');ylabel('BestJ');figure(2);plot(timef,rin,'r',timef,yout,'b');xlabel('Time(s)');ylabel('rin,yout1,yout');適應(yīng)度函數(shù)的m文件(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論