摘 要:基于Simulink平臺下無刷直流電機模型,將遺傳算法與Simulink結合起來,利用電機模型的輸出進行算法最優(yōu)指標的判斷,對電機模型轉速環(huán)PI控制參數(shù)利用改進的遺傳算法進行優(yōu)化。仿真結果表明算法的有效性和合理性。
關鍵詞:遺傳算法;無刷直流電機;Simulink;PI控制
1 概述
PID控制器在工業(yè)控制中得到了廣泛的應用,而其控制參數(shù)的整定是對PID控制器設計和應用的核心問題之一,控制器參數(shù)整定的合理與否對控制器的性能具有重要的影響。但是,常規(guī)的PID參數(shù)的整定過程復雜而繁瑣,即使對工程經(jīng)驗豐富的技術人員而言,用經(jīng)驗規(guī)則加試湊的方法來調整PID參數(shù)也是一個耗時又費力的過程,另外,實際系統(tǒng)千差萬別,又有滯后、非線性等因素的制約,參數(shù)整定的效果若不能令人滿意,則系統(tǒng)的控制效果將受到影響。
PID參數(shù)優(yōu)化方法有很多,比如單純形法、專家整定法等。遺傳算法(Genetic Algorithms,GA)PID控制是智能PID控制的一種,比專家整定法操作方便、速度快,不需要大量的先驗經(jīng)驗,而且克服了單純形法參數(shù)初值的敏感性問題。
目前關于遺傳算法整定PI控制參數(shù)的論文有很多,但其中大多數(shù)都是將控制對象簡化為一個二階或三階系統(tǒng),用一個簡單的傳遞函數(shù)來表示。文章將遺傳算法與Simulink結合起來,利用改進后的遺傳算法直接對Simulink電機模型進行PI參數(shù)尋優(yōu),并對仿真結果進行比較分析。
2 遺傳算法
遺傳算法是一種基于生物進化理論的隨機平行搜素算法, 20世紀60年代提出后,眾多學者就一直致力于推動GA的發(fā)展。它對所優(yōu)化目標的先驗信息需要很少,僅根據(jù)適應度評價函數(shù)來迭代尋優(yōu),而且無需連續(xù)性或可微性的限制,被認為是一種具有較高魯棒性和廣泛適用性的優(yōu)化算法。
遺傳算法的構成要素主要包括染色體編碼方法、個體適應度評價、遺傳算子和基本運行參數(shù)四個方面。
2.1 染色體編碼方法
染色體編碼方法一般可分為二進制編碼和實數(shù)編碼,后來也有格雷編碼等。文章采用二進制編碼,每個參數(shù)采用10位無符號二進制表示,總共有兩個參數(shù)需要優(yōu)化,即P、I參數(shù),所以總共編碼長度是20。
2.2 個體適應度評價
個體適應度直接決定當前種群中個體遺傳到下一代群體中的概率,所以算法尋優(yōu)效果和效率跟個體適應度函數(shù)有很大關系。在文章中,個體適應度F=■,J為最優(yōu)指標值,A為固定的某常數(shù),根據(jù)J的范圍確定。J的評價體系內包含了穩(wěn)態(tài)誤差、上升時間、轉速震蕩和超調。并且引入懲罰因子,對于上升時間過長和超調過大的情況,采用不同的懲罰因子進行懲罰,可以更快地篩除不良個體。
2.3 遺傳算子
基本遺傳算法使用選擇、交叉、變異算子。文章所使用的各算子具體計算方式如下:
選擇:首先將種群按適應度值從小到大重新排序,種群大小為S,按下式重新定義個體的適應度情況:
交叉:交叉方式采用單點交叉。
變異:對每個染色體的每一位按照變異概率隨機進行變異操作,但是變異概率不是固定不變的,隨著適應度的提高,變異概率逐漸減小。具體計算公式如下:
Pm=0.001-Sl*0.01/30
式中,Pm表示變異概率,Sl取值范圍是1~30,表示某個體的適應度在整個種群中的排序,按適應度從小到大排序。所以如果排序越高,表示適應度越高,變異概率就越低。既提高種群的多樣性,也維持一定的收斂速度。
2.4 基本遺傳算法運行參數(shù)
有四個參數(shù)需要在算法開始前確定:種群大小,終止代數(shù),交叉概率,變異概率。一般交叉概率取為0.49~0.99,變異概率0.0001~0.1。文章采用種群大小30,終止代數(shù)40,交叉概率0.6,變異概率自適應。遺傳算法尋優(yōu)過程如圖2所示:
3 無刷直流電機模型
Matlab自帶的power_brushlessDCmotor.mdl是無刷直流電機模型,并且已經(jīng)對其進行了轉速環(huán)PI控制,其默認的PI控制參數(shù)為0.013、16.61。在默認參數(shù)下,電機模型運行效果如圖3所示。
實際轉速能夠很好地跟隨指令轉速,并且沒有超調。在0.2s時,給電機加上1Nm的負載轉矩,可以看出,在該組PI參數(shù)下,系統(tǒng)抗干擾能力也較好。
4 優(yōu)化算法與模型的結合仿真
遺傳算法運行所需的終止代數(shù)、測試的轉速上升過程在模型屬性內的回調函數(shù)中預先設置,默認的迭代代數(shù)為40,轉速階越響應過程為1200rpm~1300rpm。也可以在打開模型后,在MATLAB工作空間改變。電機模型的開啟、關閉及轉速由遺傳算法控制。算法需要涉及許多數(shù)據(jù)的存儲,在Simulink內,采用Signal和Data Store Memory進行數(shù)據(jù)存儲和交換。對優(yōu)化過程中每代的最優(yōu)個體和適應度,在算法尋優(yōu)結束的時候輸出到工作空間。仿真模型如圖4所示。
遺傳算法控制模塊為圖中最左邊的GA Control模塊,該模塊首先在尋優(yōu)范圍內隨機產生初始種群,然后向PI控制器模塊npi發(fā)送解碼后的PI參數(shù),并對電機模型在此PI參數(shù)下運行的轉速進行采樣,采樣過程為從1200rpm~1300rpm的轉速階越響應過程,根據(jù)最優(yōu)指標評判標準對當前PI參數(shù)進行個體適應度評價,并如此迭代運行,直到運行代數(shù)滿足所設定的終止代數(shù),輸出尋優(yōu)過程并結束仿真。
尋優(yōu)仿真時,初始種群P范圍[0 1],I范圍[5 20],其余參數(shù)按照第二章中設置,仿真運行40代后,得到最優(yōu)PI值為0.0236,16.6129。
與MATLAB自帶參數(shù)運行效果比較如圖5-圖7所示。
由圖5及圖7可以看出,遺傳算法所找到的PI參數(shù)跟MATLAB自帶的參數(shù)相比,在穩(wěn)態(tài)誤差、超調及抗干擾方面,性能都類似,但是從圖6的細節(jié)圖中可以看出,遺傳算法尋找到的PI參數(shù)在上升時間上略有優(yōu)勢。
5 結束語
文章基于無刷直流電機模型,設計了一種自適應遺傳算法,根據(jù)電機模型轉速穩(wěn)態(tài)誤差、超調、上升時間、上升抖動四方面指標來判定其適應度函數(shù),并且加入了懲罰因子,更快地剔除性能表現(xiàn)不良的個體。
最終仿真結果證明,改進后的遺傳算法能夠較好地實現(xiàn)參數(shù)尋優(yōu),PI轉速控制在系統(tǒng)動態(tài)性能和穩(wěn)態(tài)性能方面,效果理想,系統(tǒng)抗干擾能力也達到較好效果,解決了人工整定PI參數(shù)過程中的復雜、繁瑣。
參考文獻
[1]曹一家.程時杰進化算法在工程應用中的若干實用技術[J].電力系統(tǒng)自動化,2001(01).
[2]王隨平,趙志剛,等.基于遺傳算法的PID控制器及應用[J].化工自動化行業(yè)應用,2009(6):106-108.
[3]劉金琨.先進PID控制MATLAB仿真[M].北京:電子工業(yè)出版社,2005.
[4]夏長亮.無刷直流電機控制系統(tǒng)[M].北京:科學出版社,2009.