姚 磊
(四川華新現代職業學院 四川 成都 610107)
PID控制中遺傳算法優化研究
姚 磊
(四川華新現代職業學院 四川 成都 610107)
PID控制器由于原理簡單、適應性強及魯棒性好等特點,因而在生產過程的自動化控制中有著極其廣泛的應用,PID參數的優劣直接影響PID的閉環控制的效果,因此參數整定至關重要。在與使用動態特性參數法和穩定邊界法兩種傳統的工程整定法的仿真實驗對比中,本文提到的算法得到的調控效果明顯要好。
PID控制器;遺傳算法;參數優化
PID控制器由于原理簡單、方便使用、適應性強及魯棒性好等特點[1],因而在生產過程的自動化控制中有著極其廣泛的應用。PID控制在今天依然是主要而基礎的控制方式[2]。
PID參數的優劣直接影響PID的閉環控制的效果[3],因此參數整定至關重要。隨著自動控制的發展,實際控制系統越來越復雜,對控制的要求也越來越高,一方面控制對象的非線性、大時延和不穩定等特性使得精確的數學模型難以建立。
無論是工程整定還是自整定,為了滿足越來越高的生產控制要求,都必須要求參數盡可能的精確,以達到更加優質的控制效果,而新興的智能[5]計算剛好可以滿足這些要求。
遺傳算法是進化計算的一種,進化計算還包括進化策略、進化編程和遺傳編程。
利用編碼技術,將待求解問題的變量編碼成稱為染色體的串,為優化的目標建立一個適應度函數,適應度函數就是進化的方向,根據遺傳學,利用作用于染色體上的選擇(selection)、交叉(crossover)、變異(mutation)等遺傳操作在適應度函數的自然選擇機制,模擬由這些串組成的群體的進化過程,并在這個過程中完成搜索。
(一)遺傳算法編碼與解碼。編碼就是將解空間中的所有可以解轉換為遺傳算法搜索空間中的染色體串的過程。與之相對的解碼就是把染色體串轉換為問題解的過程。
常見的編碼方法有二進制編碼,浮點數編碼、格雷碼和符號編碼等。
1.二進制編碼。二進制編碼是最常用的編碼方法,編碼方法如下:
(1)編碼。假設某待求參數的取值范圍為[M,N],用長度為λ的二進制串來編碼表示該參數,由排列組合的知識我們知道,一共有2λ個不同的編碼串,記緊鄰的兩個編碼之間的長度為δ,得到對應的編碼
二進制的編碼精度為:
(2.1)
(2)解碼。假設某個體的編碼為:
X:bλbλ-1bλ-2……b2b1
則對應的解碼公式為:
(2.2)
2.浮點數編碼。采用浮點數編碼方法編碼時,每個基因值用一個范圍內的浮點數來表示,個體編碼的長度等于決策變量的個數,由于編碼使用的是決策變量的真實值,因而又稱為真值編碼方法。
3.格雷碼。格雷碼又稱為循環二進制碼或反射二進制碼,它是由二進制編碼變換過來的。相鄰的十進制數表示成格雷碼時,只有一個碼位不同。
格雷碼編碼方法的提出是為了克服二進制碼的海明懸崖(Hamming Cliff)問題,所謂編碼懸崖是指將相鄰兩個整數的二進制編碼之間的海明距離很大,使得遺傳操作的交叉和變異難以跨越。在整數的海明編碼中,相鄰整數間的海明距離恒為1,但是海明距離在整數之間的差卻又不失單調遞增的,這可能產生另一種隱海明懸崖。
4.符號編碼。符號編碼是指染色體串中的每一個基因值來自于一個沒有實際數值意義而只有代碼編號意義的符號集,對于這個符號集的選取也沒有明確的限制或要求。
(二)適應度函數。適應度函數(fitness function)也稱為評價函數,用來計算每個染色體的適應度,通過對每個個體適應度的評價決定其在后代中是被保留還是被淘汰。以TSP為例,其目標是旅行的路徑長度為最短,這里可以直接用目標函數做適應度函數
(2.3)
其中cn+1=c1,d(ci,ci+1)表示兩個城市之間的距離。
不是所有的目標函數都可以直接作為適應度函數使用的,通常需要一些變化,在使用遺傳算法工具箱的時候,不同的工具箱對目標函數的處理也不一樣,有的是求最大值有的是求最小值,需要具體情況具體對待。
(三)選擇(Selection)。選擇操作也稱為復制(reproduction)操作,根據優勝劣汰的自然進化原則,適應度高的個體在后代被保留的機會就大一些,反之被淘汰的概率就大。
簡單遺傳算法(SGA)使用的是輪盤賭的選擇策略,模擬輪盤賭玩法的一個選擇算法,在輪盤上用扇形面積的大小表示個體被期望選擇的概率,算法使用隨機數隨機地選擇在輪盤上選擇一塊與隨機數大小相等的區域,在這個區域中的個體都有可能被選擇到,而剩下的個體則不會被選擇。令fi表示種群中第i個個體的適應度值,∑fi表示群體中個體適應度之和,個體被選中的幾率就為fi/∑fi。
(四)交叉(Crossover)。交叉操作就是兩個父代染色體體交換部分基因而生產新的個體的操作。交叉操作需要確定的是交叉點的位置和用于交換的基因的部分。
1.單點交叉(Single-PointCrossover)。設染色體的編碼長度為N,雙親分別為P1和P2,單點交叉算法第一步隨機選擇1到N之間的一個整數K;第二步,從P1中選取從1~K之間的編碼,從P2中選擇從K~M之間的編碼,將這部分編碼結合構成一個新的個體,P1和P2各自剩下的編碼構成第二個新個體。
2.兩點交叉(Two-PointCrossover)。同上,設雙親分別為P1和P2,并記染色體的編碼長度為整數M。算法與單點交叉算法非常類似,第一步,先隨機選擇1~M中的兩個不同的整數m和n,(假設m 3.算術交叉(ArithmeticCrossover)。算法生成的子代每個位置上的編碼是雙親相應位置上編碼的線性組合,在幾何上來看,子代是一條分布在雙親中間的一條直線,不過算術交叉一般作用于浮點數編碼的個體。 (五)變異(Mutation)。變異操作能夠使種群中的個體產生小規模的隨機改變,該操作保證了遺傳算法的個體的多樣性和算法具有更大的空間搜索能力。 同交叉操作類似,變異操作也是需要確定變異點的位置和變異點的替換策略。 1 基本位變異(SimpleMutation) 2 均勻變異(UniformMutation) (一)PID控制原理。PID控制是依據負反饋理論建立起來的一種控制方式[11],其特點是根據輸出信號y(t)與輸入信號r(t)之間的偏差e(t)產生控制作用,并將偏差作為控制裝置的輸入信號,而輸出信號m(t)就是系統的實際控制信號。 PID控制參數調整方式包括比例控制,積分控制,微分控制等。 1.比例控制(P調節)。在式子(2.2)中,令Ti=∞,Td=0,可得 u(t)=Kpe(t) (2.4) 比例控制器體現了負反饋理論控制系統按偏差調節的基本原則,在系統的動態和穩態控制過程中都起作用。比例控制器實際上是一個比例環節,或比例放大器,從幅頻特性的角度,比例環節對任何頻率的輸入信號,只有幅值上有放大或衰減效果,而不改變信號的相位,即沒有超前或滯后作用,可以真實地復現輸入信號。增大比例增益Kp,可以使系統快速響應偏差,改善系統的穩態精度,但會降低系統的相對穩定;減小比例增益Kp,效果剛好相反,所以在實際使用中,往往和其它調節機制一同使用,而不單獨使用。 2.積分控制(I調節)。對于單獨的積分控制,設積分控制輸出的控制量為m(t),則有 (2.5) 從頻域的角度來看,積分環節是一個低通濾波器,對低頻信號有放大作用,而對高頻信號具有抑制作用,而且在幅頻特性分析中,我們知道輸入信號的頻域越低,積分環節的放大作用越強,但對于相位有滯后作用。從物理上來看,積分控制器的輸出反應的是偏差在時間上的累計,特別地,當e(t)=0時,其輸出恒為一個常數。不難看出,加入積分控制機制,可以逐漸消除穩態誤差,提供系統的穩態性;但 影響系統的快速性,同時相位的滯后,也會降低穩定性。綜合來說,積分控制器可以隨時間消除系統的穩態誤差,提高系統的穩態性能,但會降低系統的動態性能。 3.微分控制(D調節)。對于單獨的微分控制,設其輸出控制量為h(t),則有 (2.6) 從式(2.6)中可以看出,微分控制的輸出信號正比于偏差的變化率,也即微分控制是根據偏差的變化趨勢起調控作用的,當偏差恒定或變化率不明顯的時候,微分控制器不起作用,只有在偏差變化時才起作用,偏差變化越大,調劑作用越明顯,因而能很好地改善系統的動態性能,而對穩態性能基本不去任何作用。從頻域的角度來看,微分調節器是具有高通濾波的效果,從而對高頻干擾有放大作用,這是其一大缺點,在實際使用中會限制最大高頻增益。 (二)遺傳算法的改進算法。下面介紹幾種比較經典的改進算法。 1.分層遺傳算法(HGA)。分層遺傳算法(HierarchicalGeneticAlgorithm)是由John.R.Koza[14]等人提出的,該算法最突出的是提出了多子群的種群初始化方案,很好的維持了種群的多樣性,[15]增大了算法的搜索空間,盡可能的將由于個體適應度問題引起的早熟現象限制在某個局部,該算法注重子群的操作,對于遺傳因子基本沿用簡單遺傳算法的策略。 2.跨世代精英選擇算法(CHC)。L.J.Eshelman等人提出了CHC(跨世紀精英選擇策略)算法[18][19][20],在該算法中,將上個世代的個體與通過交叉產生的新的個體混合在一起擇優選擇,也即為跨世代的精英選擇,這樣可以避免好的個體被破壞掉,實際上保留每代最優個體的策略;算法在選擇交叉上提出了基于海明距離的限制策略,這樣交叉操作的兩個個體必須滿足設定的海明距離閾值才可以進行。 3.自適應遺傳算法(AHC)。遺傳算法在接近最優解時可能會出現接近最優解的個體總是被淘汰的現象,這是由于在整個遺傳算法過程中遺傳因子的值保持不變,因而在接近最優解時,適應度高的染色體會因為較高的Pc(交叉因子)或Pm(變異因子)而頻繁地被淘汰掉,自適應遺傳算法(AGA)[21][22][23]就是為了接近這個問題而提出來的。 4.小生境遺傳算法(NGA)。小生境遺傳算法(NichedGeneticAlgorithm)[25][26]的提出是基于這樣一個生物進化的事實:在進化過程中,總是特性、外貌等相似的生物(即同一物種)生活在一起,也總是同一物種間的個體相互交配繁衍后代。與SGA不同的是NGA個體之間不僅存在競爭還相互合作,競爭體現在排擠機制上,合作體現在共享機制(FintnessSharing)上。 5.并行遺傳算法(PGA)。為了提高遺傳算法的搜索速度,研究者在很早就提出了并行遺傳算法(ParallelGeneticAlgorithm)[27]的思想,并發展很多并行模型,島模型是其中非常重要也被多次討論的一個。在構建種群上,并行遺傳算法[28][29]也提出了構造多個子種群的思想。 大多數工業被控對象的傳遞函數都可以用一階慣性加存延遲滯后模型(FOFPD)近似描述。FOFPD模型被控對象傳遞函數如下: (4.1) 式中,K,τ和T分別對象模型的開環增益、延遲(滯后)時間常數和慣性時間常數。 (一)PID控制的仿真系統。啟動Matlab,進入Simulink,利用相關模塊構建一個簡單的連續仿真系統。 1.在(5.1)式中,取K,τ和T分別為1、0.5和1作為控制對象的傳遞函數,即 (4.2) 2.PID控制選用的是PID集成模塊,在Simulink中,PID有兩種集成方式,一種是典型PID集成方式,另一種是并行PID集成方式。 (1)并行PID控制。并行PID控制的傳遞函數: (4.3) (2)典型PID控制。典型PID控制的傳遞函數: (4.4) 本仿真系統選擇的默認并行模式,由于并行集成模式下,比例、積分和微分三種作用相互獨立。 3.輸入信號采用的是單位階躍信號,且從時間t=0時刻就產生階躍。 (二)實驗結果。在仿真系統下,選用動態特性參數整定法、穩定邊界整定法和本文提出的自適應遺傳算法優化法分別進行了三組實驗,并做了相應的實驗對比。 1.動態特性參數整定法。由前面的Z-N經驗公式可知: Kp=2.4;Ti=1;Td=0.25; 將這三個值做相應的變換后分別去設定PID控制器的相應參數,然后啟動仿真系統,得到的相應仿真曲線。 K=2.4;I=2.4;D=0.6 2.穩定邊界法。本文試驗中多次試驗后確定下來P=4.0比較合適,即記Ku=4.0。 Tu,在下面的截圖4.6中可以看到從t=0.5到t=9.0之間剛好有5個周期,因而確定臨界震蕩周期Tu=7.5。 按照穩定邊界整定法的整定公式,可以得到 Kp=2.4;Ti=0.85;Td=0.2125 接著將這三個參數轉化為仿真模型中PID相應的控制參數,然后啟動仿真系統,得到的相應仿真曲線。 K=2.4;I=2.82;D=0.51 3.本文的遺傳算法優化法。由遺傳算法得到PID3個參數分別為: Kp=2.2;Ti=0.957;Td=0.191; 將這三個參數轉化為仿真模型中PID相應的控制參數 K=2.2;I=2.3;D=0.42; (三)實驗結果分析。從圖5.5,圖5.6和圖5.8的對比中,本文使用的遺傳算法得到的調節圖效果要好,這是因為前面兩種方法采用的是經驗估計的方法,雖簡單適用但不夠精確,本文采用的方法通過直接尋求最優解,從數值分析的角度來看,前面兩種方法得到的解一般來說距離最優解較遠,而本文使用的方法得到的參數本身就是最優解或者是非常接近最優解,因而在精確性上應該優于前兩者。 本文提出的方法,前期比較繁瑣,需要大量的遺傳算法設計不過從長遠的角度來考慮這種繁瑣還是很值得的。 遺傳算法尋優簡單、魯棒性強、易于并行化,是一種效率很高的尋優方法。為保證遺傳算法的高效高速尋優,須合理確定遺傳算法的控制參數。在對PID參數進行優化時,必須選定合適的優化目標。同時,應將性能指標的設計和控制器參數優化設計融為一體。在此基礎上,使用遺傳算法才可以實現PID控制參數的自適應調整和滿意優化。 [1]金以慧編著.過程控制[M].北京:清華大學出版社,1993 [2]Astrom.K.J,Hagglund.PIDControllers:Theroy,DesignandTuning[J].InstrumentSocietyofAmerica,1995 [3]陶永華.新型PID控制及其應用——第一講PID控制原理和自整定策略[J].工業儀表與自動化裝置,第四期,1997年:60~64 姚磊(1984.7-),男,湖北人,四川華新現代職業學院助教,碩士,研究方向:控制工程。三、基于遺傳算法的PID設計
四、實驗及結果分析

五、結論