【正文】
的取值范圍為 [0,1],取 w1= , W2= , w4= 100, w3= 采用實(shí)數(shù)編碼方式,經(jīng)過一百代進(jìn)化。適應(yīng)值評估 Call SARP 39。開始設(shè)計程序時,先設(shè)計一個界面,點(diǎn)擊各個按鈕,運(yùn)行各個子程序塊。D,參數(shù)整定范圍 minx(3) = 0: MaxX(3) = 1 39。. yout(k)+ = r(k) 39。I, x(2) = eerror(k) 2 * error_1 + error_2 39。preserve the 原值 ffi(i) = fi(i) Next i Call sort(fi(), 10) For i = 1 To 10 Next i Bestfi = fi(10) 39。變異 Dim pm(10) As Double Dim pm_rand(1 To 10, 1 To 3) As Double Dim mean(3) As Double, dif(3) As Double For i = 1 To 10 pm(i) = i * / 10 pm_rand(i, 1) = Rnd pm_rand(i, 2) = Rnd pm_rand(i, 3) = Rnd Next i For i = 1 To 3 mean(i) = (MaxX(i) + minx(i)) / 2 dif(i) = MaxX(i) minx(i) Next i For i = 1 To 10 For j = 1 To 3 If pm(i) pm_rand(i, j) Then TempE(i, j) = mean(j) + dif(j) * (Rnd ) End If Next j Next i End Sub 35 實(shí)數(shù)編碼遺傳算法的效果 各個子程序調(diào)試完畢,便可以進(jìn)行整體 運(yùn)算。遺傳 算法從串集開始搜索,復(fù)蓋面大,利于全局擇優(yōu)。 5.遺傳算法具有隱含的并行性 37 第五 章 基于遺傳算法 PID 整定 的進(jìn)一步探討 限幅值 為了得到更好的控制效果,在限幅值的取值中應(yīng)多試幾個數(shù)字得到最好的效果。但是種群的減少必然會減少搜索的效率及空間,因此我將交叉的次數(shù)增多,適當(dāng)調(diào)整交叉概率也能得到同樣的效果,并且交叉改為相鄰交叉,即步長為 1: For i = 1 To 9 Step 1 并且限幅值也要做相應(yīng)的調(diào)整來達(dá)到最佳的效果。 遺傳算法的改進(jìn)空間還很大,如上面所述,改變交叉的方法就可以產(chǎn)生不同的結(jié)果。 為了使程序易于改進(jìn),我將其按遺傳算法的主要過程分為了幾個主要的部分: 編碼、 PID 控制、適應(yīng)值評估、復(fù)制、交叉、 變異 。通過本次設(shè)計,我加深了對控制算法和計算機(jī)控制系統(tǒng)課程的認(rèn)識;在對書本知識的實(shí)際應(yīng)用過程中,熟悉 了 VB 語言編程,并且對 MATLAB 語言也有了更進(jìn)一步的掌握 , 相信這次畢業(yè)設(shè)計對我今后的學(xué)習(xí)和工作將起到莫大的幫助。 遺傳算法是一個新興的算法,因此僅靠幾個月的畢業(yè)設(shè)計是遠(yuǎn)遠(yuǎn)不能將其徹 底掌握的。 遺傳算法 本身 具有并行計算的特點(diǎn),因而可以通過大規(guī)模并行計算來提高計算速度;同時它也更適合大規(guī)模復(fù)雜問題的優(yōu)化,計算也比較簡單,功能也是很強(qiáng) 的 。 代數(shù)的減少,我主要通過 限幅值、 PC、并且給定 KP, KI, KD一個經(jīng)驗(yàn)的范圍減少其搜索的盲目性來達(dá)到目的,最后得出的結(jié)果相比之下更好了。 If u(k) = 10 * rin Then u(k) = 10 * rin End If 圖 51 10 倍限幅值 最高溫度 50 最低溫度 50 調(diào)節(jié)時間 65 拍 福州大學(xué)本科生畢業(yè)設(shè)計(論文) 38 If u(k) = * rin Then u(k) = * rin End If 圖 52 倍限幅值 最高溫度 最低溫度 50 調(diào)節(jié)時間 59 拍 調(diào)節(jié)時間變短了,但是出現(xiàn)了超調(diào),并且從途中可見,三個 PID 參數(shù)也相差較大,因此設(shè)計程序時應(yīng) 注意限幅值的設(shè)定。 福州大學(xué)本科生畢業(yè)設(shè)計(論文) 36 3.遺傳算法有極強(qiáng)的容錯能力 遺傳算法的初始串集本身就帶有大量與最優(yōu)解甚遠(yuǎn)的信息;通過選擇、交叉、變異操作能迅速排除與最優(yōu)解相差極大的串;這是一個強(qiáng)烈的濾波過程;并且是一個并行濾波機(jī)制。由此可見,相對于其他傳統(tǒng)的整定方法,遺傳算法的 PID 控制可以得到較為滿意的結(jié)果。 選擇 ****** Step 2 : Select and Reproduct Operation****** 福州大學(xué)本科生畢業(yè)設(shè)計(論文) 32 Dim fi_sum As Double, r As Double, sum As Double, index(10) As Integer, n As Integer Dim fi_size(10) As Double, fi_s(10) As Double, Rest(10) As Double, restt(10) As Double fi_sum = 0 For i = 1 To 10 fi_sum = fi_sum + fi(i) Next i For i = 1 To 10 fi_size(i) = 10 * fi(i) / fi_sum Next i For i = 1 To 10 fi_s(i) = Int(fi_size(i)) Next i sum = 0 For i = 1 To 10 sum = sum + fi_s(i) Next i r = 10 sum For i = 1 To 10 Rest(i) = fi_size(i) fi_s(i) restt(i) = Rest(i) Next i Call sort(Rest(), 10) For i = 1 To 10 For j = 1 To 10 If restt(j) = Rest(i) Then index(i) = j End If Next j Next i n = 10 r + 1 For i = 10 To n Step 1 fi_s(index(i)) = fi_s(index(i)) + 1 33 Next i k = 1 For i = 10 To 1 Step 1 For j = 1 To fi_s(i) Step 1 TempE(k, 1) = kpid(index(i), 1) TempE(k, 2) = kpid(index(i), 2) TempE(k, 3) = kpid(index(i), 3) k = k + 1 Next j Next i End Sub 交叉 由于采用實(shí)數(shù)編碼,它的交叉方式與二進(jìn)制編碼所采用的有所不同。cm = ji(1) 39。Calculating D 39。采用了增量式 PID 算式,初始溫度為 50度。因此它的初始值是雜亂無章的,由圖 便可以看出。 Next kg For k = 1 To P Call MMI2(k) Call CurveGenerator(timef(k) * 1, yout(k) * 1) 39。編碼 For kg = 1 To G 39。 為獲取滿意的過渡過程動態(tài)特性,采用誤差絕對值時間積分性能指標(biāo)作為參數(shù)選擇的最小目標(biāo)函數(shù)。因?yàn)檫m應(yīng)函數(shù)與目標(biāo)函數(shù)相關(guān),所以目標(biāo)函數(shù)確定以后,直接將其作為適配函數(shù)進(jìn)行參數(shù)尋優(yōu)。近年來,遺傳算法在控制上的應(yīng)用日益增多。這里采用基于遺傳算法整定的 PID 控制算法,因?yàn)椴捎眠z傳算法進(jìn)行 PID 三個系數(shù)的整定,具有以下優(yōu)點(diǎn): ( 1)與單純形法相比,遺傳算法同樣具有良好的尋優(yōu)特性,且它克服了單純形法參數(shù)初值的敏感性。 ①適當(dāng)減小 KD;②加強(qiáng)硬件與軟件抗干擾措施,例如采用軟件濾波等。②若系統(tǒng)同時又有響應(yīng)遲緩、偏差消除 太慢的問題,則應(yīng)適當(dāng)增大 比例系數(shù) KP、積分系數(shù) KI或微分系數(shù) KD。 二.PID控制器參數(shù) Kp、 KI、 KD的整定 21 1. 湊試法 : 1) PID 參數(shù)對系統(tǒng)性能指標(biāo)的影響(在只有某種控制起主要作用時) KP 響應(yīng)加快 太大 超調(diào)大 靜態(tài)誤差變小 振蕩 KI T/TI 穩(wěn)態(tài)誤差消除加快 太大 超調(diào)大 振蕩 KD TD/T 響應(yīng)加快 太大 對干擾敏感 超調(diào)變小 超調(diào)變大 2) 湊試法步驟 湊試的先后順序是:先 KP、 后 KI、再 KD。其原因是由于存在有較大慣性的組件(環(huán)節(jié))和(或)有滯后 (delay)的組件,使力圖克服誤差的作用,其變化總是落后于誤差的變化。 二、積分( I)控制 福州大學(xué)本科生畢業(yè)設(shè)計(論文) 20 在積分控制中,控制器的輸出與輸入誤差訊號的積分成正比關(guān) 系??刂葡到y(tǒng)的性能可以用穩(wěn)、準(zhǔn)、快三個字來描述。 閉環(huán)控制系統(tǒng) 閉環(huán)控制系統(tǒng) (closedloop control system)的特點(diǎn)是系統(tǒng)被控對象的輸出 (被控制量 )會反送回來影響控制器的輸出,形成一個或多個閉環(huán)。比如壓力控制系統(tǒng)要采用壓力傳感器。對遺傳算法,還需要進(jìn)一步研究其數(shù)學(xué)基礎(chǔ)理論;還需要在理論上證明它與其它優(yōu)化技術(shù)的優(yōu)劣及原因;還需研究硬件化的遺傳算法;以及遺傳算法的通用編程和形式 等。 群體大小 n 太小時難以求出最優(yōu)解,太大則增長收斂時間。 15 圖 33 遺傳算法的執(zhí)行過程 遺傳算法的應(yīng)用 遺傳算法在很多領(lǐng)域都得到應(yīng)用; 比如 從神經(jīng)網(wǎng)絡(luò)研究的角 度上考慮,最關(guān)心的是遺傳算法在神經(jīng)網(wǎng)絡(luò)的應(yīng)用。 變異 (mutation operator) 根據(jù)生物遺傳中基因變異的原理,以變異概 率 Pm 對某些個體的某些位執(zhí)行變異。對于問題求解角度來講,就是選擇出和最優(yōu)解較接近的中間解。 復(fù)制 (reproduction operator) 根據(jù)適者生存原則選擇下一代的個體。使用這種編碼方法,解空間和遺傳 算法的搜索空間就具有一一對應(yīng)的關(guān)系。前者是把求解空間中 的參數(shù)轉(zhuǎn)化成遺傳空間中的染色體或者個體 (encoding),后者是它的逆操作 (decoding) 2)確定適應(yīng)度計算函數(shù) ,可以將個體值經(jīng)過該函數(shù)轉(zhuǎn)換為該個體的適應(yīng)度 ,該適應(yīng)度的高低要能充分反映該個體對于解得優(yōu)秀程度。接著就像自然界中一樣,利用選擇機(jī)制從群體中隨機(jī)挑選個體作為繁殖過程前的個體樣本。選擇實(shí)現(xiàn)了達(dá)爾文的適者生存原則。 初始群體的生成: 每個編碼對應(yīng)問題的一個解,稱為染色體或個體。 遺傳算法的研究方向及應(yīng)用領(lǐng)域 在遺傳算法的研究中,可以看到主要有三類研究方向: 1. 研究遺傳算法本身的理論基礎(chǔ)。一般通過隨機(jī)方法確定起始的一群個體,稱為種群,在種群中根據(jù)適應(yīng)值或某種競爭機(jī)制選擇個體(適應(yīng)值就是解的滿意程度,可以由外部顯式適應(yīng)度函數(shù)計算,也可以由系統(tǒng)本身產(chǎn)生,如由協(xié)同演化時不同對策的博奕確定,或者由個體在群體中的存活量和繁殖量確定。在機(jī)器學(xué)習(xí)方面, Holland 自提出遺傳算法的基本理論后就致力于研究分類器系統(tǒng)( classifier system), Holland 希望系統(tǒng)能將外界刺激進(jìn)行分類,然后送到需要的地方去,因此命名為分類器系統(tǒng),這里的 classifier 是指一個二進(jìn)制串,代表一類情況。 50 年代末到 60年代初,受一些生物學(xué)家用計算機(jī)對生物系統(tǒng)進(jìn)行模擬的啟發(fā), Holland 開始應(yīng)用模擬遺傳算子研究適應(yīng)性。自然界中的多種生物之所以能夠 適應(yīng)環(huán)境而得以生存進(jìn)化,是和遺傳和變異生命現(xiàn)象分不開的。 5 第二章 遺傳算法概述 什么是遺傳算法 遺傳算法( geic algorithms)簡稱 GA。 圖 11 VB 集成開發(fā)環(huán)境 PID 參數(shù)的遺傳算法尋優(yōu) 遺傳算法( GA) 是一種建立在生物界自然選擇原理和自然遺傳機(jī)制的隨機(jī)化搜索法,它模擬了生物界中的生命進(jìn)化機(jī)制,在人工系統(tǒng)中實(shí)現(xiàn)特定目標(biāo)的優(yōu)化。 Visual 的新特性 2. Inter 功能的增強(qiáng) 、語言和向?qū)Х矫娴男略鎏匦? ActiveX 控件更加輕松方便 。 VB 的特點(diǎn)如下 : 1. 具有面向?qū)ο蟮目梢暬O(shè)計工具 。最優(yōu)控制理論的應(yīng)用,加上計算機(jī)的高速運(yùn)算能力,賦予 了 PID 參數(shù)優(yōu)化這樣的多變量最優(yōu)化問題新的生命力, PID 控制器的最優(yōu)化整定方法是針對特定的系統(tǒng)建立數(shù)學(xué)