摘 要:以氧化鈦濕敏元件等效電路模型中的參數為優化對象,提出一種改進的基于遺傳算法的等效電路優化方法。算法在選擇操作中加入最優保存策略,并對適應度函數進行適當的調整,從而提高了算法的運行效率和精確度,獲得了擬合曲線和適應度函數圖。擬合曲線直觀地證明了等效電路的正確性,而適應度函數圖更是明確地表達了算法的運行效果。改進的遺傳算法優化處理程序采用Matlab編程語言實現。
關鍵詞:濕敏元件;等效電路;參數優化;遺傳算法;Matlab
中圖分類號:TP274文獻標識碼:A
文章編號:1004-373X(2010)06-149-03
Optimization of Titania Humidity Sensor Model by Improved Genetic Algorithm
LIU Gang
(Inner Mongolia University for the Nationalities,Tongliao,028000,China)
Abstract:With equivalent circuit model parameters of Titania humidity sensor as optimizing object,an equivalent circuit optimization method is proposed based on improved genetic algorithm.Elitist strategy is added in select option of algorithm,and fitness function is suitably adjusted.Thereby,operational efficiency and accuracy of the algorithm are enhanced.Fitting curves and fitness function plots are obtained.The correctness of equivalent circuit is proved intuitionally by fitting curves.And the operating effects of algorithm are even more clearly expressed by fitness function polts.Matlab programming language is used in optimization processes of improved genetic algorithm.
Keywords:humidity sensor;equivalent circuit;parameter optimization;genetic algorithm;Matlab
遺傳算法(Genetic Algorithm)是模擬達爾文的遺傳選擇和自然淘汰的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優解的方法。它是由美國Michigan大學J.Holland教授于1975年首先提出來的,并出版了頗有影響的專著《Adaptation in Natural and Artificial Systems》[1],GA這個名稱才逐漸為人所知,J.Holland教授所提出的GA通常為簡單遺傳算法(SGA)。本文對簡單遺傳算法進行改進,在選擇操作中加入最優保存策略,并對適應度函數進行適當的調整。從而提高了算法的運行效率和精確度,適應度函數圖直觀的表達了算法的運行效果。優化處理程序采用Matlab 7.0軟件來設計。這主要是考慮到Matlab軟件具有十分強大的數值計算功能、符號處理功能,操作和編程簡便直觀。
1 算法設計
(1) 個體適應度的檢測評估
① 基本數學模型的建立。用純TiO2制成的濕敏元件感濕性能較好,逐漸成為國內外專家研究的重要方向[2]。據研究,氧化鈦濕敏元件的等效電路如圖1所示[3]。
圖1 氧化鈦濕敏元件等效電路圖
依據等效電路,寫出相應的復阻抗實部和虛部的表達式,該表達式作為算法的數學模型:
Z′(ω)=R0+
R1+R2+ω2R1R22C22(1-ω2R1R2C1C2)2+ω2(R2C1+R1C1+R2C2)2
Z″(ω)=
ω(ω2R21R22C1C22+2R1R2C1+R21C1+R22C1+R22C2)(1-ω2R1R2C1C2)2+ω2(R2C1+R1C1+R2C2)2
式中:ω為角頻率,ω=2πf;R0,R1,R2,C1,C2是待估的參數向量。
② 目標函數的建立。遺傳算法迭代搜索的目的就是尋求在等效電路模型曲線與實驗復阻抗數據曲線擬合程度較好時,R0,R1,R2,C1,C2的值。所以定義如下目標函數:
Q=∑nk=1(Z′k-z′k)2+(Z″k-z″k)2=min
式中:Zk′和為函數值的實部和虛部;z′k和z″k為實際值的實部和虛部。曲線擬合就是希望得到Q的最小值。
③ 適應度函數。遺傳算法的特點之一是它僅使用目標函數的取值便可以得到下一步的有關搜索[4]。它對目標函數值的使用是通過評價個體的適應度來實現的[5]。根據實際問題,需要預先確定好由目標函數到個體適應度之間的轉換規律。為了達到擬合程度越好(Q值越小),而適應度函數值越大的條件,這里定義適應度函數如下:
F=1/(1+Q)
(2) 選擇。選擇運算使用比例選擇算子,比例選擇也稱為輪盤賭選擇法[6]。若設種群數為M,個體i的適應度為fi,則個體i被選取的概率為[7]:
Pi=fi/∑Mk=1fk
當個體選擇的概率給定后,產生之間的均勻隨機數來決定哪個個體參加交配。若個體的選擇概率大,則能被多次選中,它的遺傳基因就會在種群中擴大;若個體的選擇概率小,則被淘汰[8]。
當遺傳算法運行時,雖然隨著種群的進化會產生越來越多的有優良個體,但是,由于選擇、交叉、變異等遺傳操作存在著隨機性,它們很可能破壞當前群體中適應度最好的個體,會降低群體的平均適應度,從而降低遺傳算法的運行效率,對收斂性不利。為了適應度最好的個體盡可能地保留到下一代群體中,這里采用最優保存策略。最優保存策略的具體操作過程如下:
① 找出當前群體中適應度最高的個體和適應度最低的個體;
② 如果當前群體中最佳個體的適應度比總的迄今為止最好個體的適應度還高,就用當前群體的最佳個體作為新的迄今為止的最好個體;
③ 用迄今為止的最好個體替換掉當前群體中的最差個體。
算法又對最優保存策略進行了推廣,即在每一代的進化過程中保留五個優良個體不參加交叉、變異等遺傳運算,而是直接將這五個優良個體復制到下一代群體中,這種方法也稱為穩態復制。
選擇操作Matlab程序如下所示:
=sort(shiyingdu,′descend′);
zhongqun2=zhongqun;
for i=1:5
zhongqun(i,:)=zhongqun2(shiyingdu_wei(i),:); end
shiyingdu_pj(1,diedai)=
shiyingdu(1,shiyingdu_wei(1))
if shiyingdu(1,shiyingdu_wei(1))>qj_zh_syd
qj_zh_syd=shiyingdu(1,shiyingdu_wei(1));
qj_zh_ejz_z=zhongqun2(shiyingdu_wei(1),:);
end
zhongqun(shiyingdu_wei(zhongqun_dx),:)=
qj_zh_ejz_z;
shiyingdu_zhi(shiyingdu_wei(zhongqun_dx))=
qj_zh_syd;
syd_he=0;
for i=6:zhongqun_dx
syd_he=syd_he+shiyingdu(1,shiyingdu_wei(i));
end
rst_xzgl=zeros(1,zhongqun_dx);
rst_ljgl=zeros(1,zhongqun_dx);
for i=6:zhongqun_dx
rst_xzgl(1,shiyingdu_wei(i))=
shiyingdu(1,shiyingdu_wei(i))/syd_he;
end
rst_ljgl(1,shiyingdu_wei(6))=
rst_xzgl(1,shiyingdu_wei (6));
for i=7:zhongqun_dx-1
rst_ljgl(1,shiyingdu_wei(i))=
rst_ljgl(1,shiyingdu_wei(i-1))+
rst_xzgl(1,shiyingdu_wei(i));
end
for i=6:zhongqun_dx
suiji_shu=rand (1);
if suiji_shu<rst_ljgl(1,shiyingdu_wei(6))
zhongqun(i,:)=zhongqun2(shiyingdu_wei(6),:)
else
for j=7:zhongqun_dx
if rst_ljgl(1,shiyingdu_wei(j-1))<=suiji_shu<=rst_ljgl(1,shiyingdu_wei(j))
zhongqun(i,:)=zhongqun2(shiyingdu_wei(j),:);
end
end
end
end
(3) 交叉。交叉運算使用單點交叉算子。只有一個交叉點位置,任意挑選經過選擇操作后種群中兩個個體作為交叉對象,隨機產生一個個交叉點位置,兩個個體在交叉點位置互換部分基因碼,形成兩個子個體。交叉概率Pc=0.6。
圖2 交叉示意圖
(4) 變異。變異運算使用基本位變異算子。為了避免問題過早收斂,對于二進制的基因碼組成的個體種群,實現基因碼的小概率翻轉,即0變為1,1變為0。變異概率Pm=0.02。
圖3 變異示意圖
2 仿真結果
圖4給出的是濕度在84.7%時,實驗測得的氧化鈦濕敏元件的復阻抗特性曲線。通過改進的遺傳算法得到氧化鈦濕敏元件等效電路模型優化后的復阻抗曲線如圖5所示。
圖4 84.7%實際復阻抗曲線
圖5 模型優化后的復阻抗曲線
并得到各參數的值,其中:
R0=1.500×104 Ω,R1=8.882×105 Ω
R2=4.365×105 Ω,C1=1.088×10-11 F
C2=2.835×10-12F
對應的適應度函數圖如圖6所示。
3 結 語
從仿真結果上來看,改進的遺傳算法能夠很好地擬合復阻抗數據,模型參數得到了優化,仿真是成功的。
最優保存策略適當的保留住了當前群體中適應度最好的個體,提高了算法的運行效率。這一點也可以從適應度函數圖中看出,加入了最優保存策略,算法在600次之前已經收斂。
圖6 模型適應度函數圖
適應度函數是在目標函數的基礎上進行改進的,將求目標函數的最小值轉變成了求適應度函數的最大值。這就將傳統的求擬合最小值的優化問題轉變到了遺傳算法中求適應度最大值的問題,很好地進行了移植。適應度函數值在遺傳操作中是不斷增加的,到600次迭代左右趨于平衡,說明算法是正確的,并不斷向最優方向發展。這里需要指出的是,交叉、變異概率對遺傳算法的求解結果和求解效率都有一定的影響,但目前尚無合理選擇它們的理論依據。在遺傳算法程序應用中,往往需要經過多次的試運行后才能夠確定這些參數的合理取值范圍。
參考文獻
[1]王小平,曹立明.遺傳算法理論應用與軟件實現[M].西安:西安交通大學出版社,2002.
[2]宋麗麗.氧化鈦濕敏元件電學特性與建模研究[D].呼和浩特:內蒙古工業大學,2007.
[3]劉罡.基于復阻抗分析法的氧化鈦濕敏元件建模與參數擬合[J].現在電子技術,2009,32(12):134-136.
[4]楊民力.遺傳算法在電化學阻抗譜數據擬合處理中的應用[D].石家莊:河北師范大學,2002.
[5]王海英.遺傳算法在等效電路模型初值估計中應用[D].哈爾濱:哈爾濱工業大學,2007.
[6]姚文俊.遺傳算法及其研究進展[J].計算機與數學工程,2004,32(4):41-43.
[7]何險峰.遺傳算法及其在化學化工中的應用[J].化學進展,1998,10(3):312.
[8]Schraudolph N,Belew R.Dynamic Parameter Encoding for Genetic Algorithms,CSE Technical Report.University of San Diego:La Jolla,1993.