江鴻潮,白國(guó)振
(上海理工大學(xué) 機(jī)械工程學(xué)院,上海 200093)
PID控制器參數(shù)優(yōu)化的關(guān)鍵問題,是如何獲得偏差的比例、積分、微分三者之間的最佳組合。PID參數(shù)整定的方法很多,比如常規(guī)的Ziegler-Nichol法[1]和Cohen-Coon法等,然而常規(guī)方法在實(shí)際工程應(yīng)用中需要依賴很強(qiáng)的實(shí)踐經(jīng)驗(yàn),且不易得到理想的結(jié)果。近年來(lái),智能算法在PID控制中的成功應(yīng)用和發(fā)展為PID參數(shù)整定提供了新的路徑,如人工免疫整定[2]、蟻群算法整定[3]、魚群算法整定[4]、佳點(diǎn)遺傳算法集整定[5]等,這些智能PID整定方法,大幅提高了PID控制系統(tǒng)的控制性能。
在用于PID參數(shù)整定的各智能算法中,遺傳算法[6]GA(genetic algorithm)便是其中最常用的算法之一,由于GA僅用目標(biāo)函數(shù)在概率準(zhǔn)則引導(dǎo)下進(jìn)行全局自適應(yīng)搜索,能夠處理傳統(tǒng)優(yōu)化方法難以解決的復(fù)雜問題,具有極高魯棒性和廣泛適用性,因而在各個(gè)優(yōu)化領(lǐng)域得到了廣泛應(yīng)用.但是GA在實(shí)際應(yīng)用中存在迭代次數(shù)多、收斂速度慢、易陷入局部極值和過早收斂等缺陷和不足。
為解決這些問題,Narayanan[7]和Han Kuk-Hyun[8]等將量子計(jì)算中的量子比特(qubit)、量子態(tài)疊加和量子干涉等概念引入遺傳算法,提出了一種新的遺傳算法——量子遺傳算法(QGA),該算法使用量子比特進(jìn)行基因編碼,用量子門進(jìn)行染色體更新,有效地解決了GA中存在的染色體丟失和過早收斂的問題[9]。但QGA的旋轉(zhuǎn)角大小和方向的確定過于復(fù)雜,對(duì)于多參數(shù)函數(shù)優(yōu)化問題容易出現(xiàn)早熟現(xiàn)象[10]。標(biāo)準(zhǔn)QGA由于需要反復(fù)查表,計(jì)算量大,非常耗時(shí),不便于工程實(shí)際應(yīng)用。
針對(duì)以上問題,本文采用一種基于實(shí)數(shù)編碼的雙鏈量子遺傳算法[11-12](DCQGA)來(lái)整定PID參數(shù)。該算法在基本量子遺傳算法的基礎(chǔ)上進(jìn)行改進(jìn),對(duì)轉(zhuǎn)角方向的確定,給出了一種全新的但簡(jiǎn)單實(shí)用的確定方法;對(duì)轉(zhuǎn)角迭代步長(zhǎng)的確定,構(gòu)造出1個(gè)包含目標(biāo)函數(shù)的梯度信息的轉(zhuǎn)角函數(shù);此外,把量子比特的2個(gè)概率幅值都看做基因位,使得每條染色體帶有2條基因鏈,加快了搜索速度。通過與GA和QGA的比較,結(jié)果驗(yàn)證了DCQGA在PID參數(shù)優(yōu)化中的優(yōu)越性。
量子遺傳算法是將量子計(jì)算原理中的量子態(tài)、量子態(tài)疊加、幺正變換等引入普通遺傳算法而得到的一種新的優(yōu)化算法,其既具有普通遺傳算法優(yōu)勝劣汰不斷進(jìn)化的優(yōu)勢(shì),又具有量子計(jì)算中強(qiáng)大的并行搜索優(yōu)勢(shì)。QGA僅用1條染色體就可以同時(shí)表示多個(gè)狀態(tài),而 GA的1條染色體只能表示一種狀態(tài),這使得QGA較傳統(tǒng)GA具有更好的種群多樣性和更高的計(jì)算并行性。相較于GA的選擇、交叉和變異操作,QGA在染色體更新時(shí)采用了量子旋轉(zhuǎn)門操作,大幅地提高了算法的收斂速度。
量子比特編碼不同于遺傳算法中的二進(jìn)制編碼,它的染色體基因位不再用確定的值表示,而是用量子位表示,量子位的值通過隨機(jī)的方式取得,是一種概率表示形式。遺傳算法采用經(jīng)典比特來(lái)表征不同的信息,每個(gè)基因位要么是“0”,要么是“1”,是確定的值,它的編碼方式屬于確定論的范疇;而QGA采用的是量子比特|φ>來(lái)表征信息,其中:
|φ>=α|0>+β|1>
(1)
|α|2+|β|2=1
(2)
它的基因位不再是確定的數(shù)值,而是量子位|φ>,它是1個(gè)不確定的值,它的編碼方式屬于概率論的范疇,只有人為地去觀測(cè)時(shí)才能得到它的確定值(坍縮為基本態(tài))。就像薛定諤的貓一樣,在沒有打開箱子時(shí),它是處于既死又活的疊加態(tài),只有打開箱子才能確定貓是處于死態(tài)還是活態(tài)。
同理,量子比特也有2個(gè)基本態(tài)|0>態(tài)和|1>態(tài),未被觀察時(shí)量子比特處于兩種狀態(tài)的線性疊加態(tài),一旦有人為的觀察時(shí)就會(huì)坍縮到基本態(tài)|0>態(tài)或|1>態(tài)。其中|α|2給出了量子比特被觀察時(shí)坍縮到|0>態(tài)的概率,|β|2給出了量子比特被觀察時(shí)坍縮到|1>態(tài)的概率。這樣,用量子比特編碼的染色體不再表示一種單一的狀態(tài),而是表示多個(gè)狀態(tài)的疊加。如用n個(gè)量子位就可以表示2n個(gè)狀態(tài)。采用多量子比特編碼m個(gè)參數(shù)的基因如下[14]:
(3)
采用量子比特編碼,1條染色體就可以同時(shí)表達(dá)多個(gè)態(tài)的疊加,使得QGA比普通遺傳算法擁有更好的多樣性特征。這樣QGA相比傳統(tǒng)的GA可以大量減少種群規(guī)模,大量地減少計(jì)算時(shí)間。同時(shí)QGA通用性好,且實(shí)現(xiàn)簡(jiǎn)單。
QGA中染色體的更新是通過量子門來(lái)實(shí)現(xiàn)的,而量子旋轉(zhuǎn)門是用得最多的一種量子門,它通過對(duì)量子比特實(shí)施幺正變換來(lái)控制量子態(tài)的演化和傳遞,進(jìn)而實(shí)現(xiàn)種群的進(jìn)化,其更新過程如下[15]:
(4)
PID參數(shù)整定是多目標(biāo)優(yōu)化問題。首先給出連續(xù)優(yōu)化問題的一般描述[16]:
約束條件為n維空間,其有界閉集Ω中每個(gè)點(diǎn)都看成優(yōu)化問題的近似解,為反映這些近似解的優(yōu)劣程度,可定義適應(yīng)度函數(shù):
fit(x)=Cmax-f(x)
(6)
式中:Cmax——給定的1個(gè)適度值或目前為止的最大值。
本文采用的DCQGA中,對(duì)編碼方案進(jìn)行了改進(jìn)[16]:
(7)
式中:Pi——每一代中第i個(gè)個(gè)體的染色體;θij=2π×rand;rand為[0,1]之間隨機(jī)數(shù);i=1,2,…,m;j=1,2,…,n;m——種群規(guī)模;n——量子位數(shù)。
(8)
式中:Pic——余弦解;Pis——正弦解。
由2.1節(jié)的分析可知,無(wú)論是QGA還是DCQGA,通過染色體解碼得到的值與實(shí)際優(yōu)化問題的解空間都不一致,所以需要進(jìn)行解空間變換。變換公式如下:
(9)
(10)
2.1節(jié)給出了對(duì)QGA編碼方式的改進(jìn),下面對(duì)種群進(jìn)化策略進(jìn)行改進(jìn),DCQGA的種群進(jìn)化策略同樣運(yùn)用量子旋轉(zhuǎn)門,但在轉(zhuǎn)角方向和大小的確定上都給出了改進(jìn)措施。
2.3.1量子旋轉(zhuǎn)門的轉(zhuǎn)角方向的確定
DCQGA的量子旋轉(zhuǎn)門為
(11)
該量子旋轉(zhuǎn)門不改變量子位的長(zhǎng)度,只改變量子位的相位。其更新過程為
(12)
轉(zhuǎn)角Δθ的大小和方向直接關(guān)系到算法的速度和效率。確定轉(zhuǎn)角Δθ的方向,QGA的做法是構(gòu)造1個(gè)查詢表[14],雖然直觀但異常繁瑣,而且需要頻繁地查表,使得QGA的效率偏低。為了簡(jiǎn)化,DCQGA給出了以下確定轉(zhuǎn)角方向的策略: 令
(13)
當(dāng)A≠0時(shí),Δθ方向?yàn)?sgn(A);當(dāng)A=0時(shí),方向取正負(fù)均可。其中,α0和β0是當(dāng)前搜索到的全局最優(yōu)解中某量子位的概率幅,α1和β1是當(dāng)前解中相應(yīng)量子位的概率幅。
證明: 記量子位[α0,β0]T和[α1,β1]T在單位圓中的幅角分別為θ0和θ1,則
(14)
當(dāng)A≠0時(shí),若0<|θ1-θ0|<π,sgn(Δθ)=-sgn(θ1-θ0)=-sgn(sin(θ1-θ0))=-sgn(A);若π<|θ1-θ0|<2π,則sgn(Δθ)=sgn(θ1-θ0) =-sgn(sin(θ1-θ0))= -sgn(A)。當(dāng)A=0時(shí),由sin(θ1-θ0)=0,得θ1=θ0或|θ1-θ0|=π,此時(shí),正、反向旋轉(zhuǎn)沒有區(qū)別,效果相同,故sgn(Δθ)取正負(fù)均可。(證畢)
2.3.2量子旋轉(zhuǎn)門轉(zhuǎn)角大小的確定
量子旋轉(zhuǎn)門轉(zhuǎn)角大小的確定一般是構(gòu)造1個(gè)查詢表,如文獻(xiàn)[14],旋轉(zhuǎn)幅度大多是根據(jù)經(jīng)驗(yàn)給出,如文獻(xiàn)[7]給出了開區(qū)間(0.005π,0.100π)的范圍,但是并沒有給出選擇的具體依據(jù)。文獻(xiàn)[17]給出了一種轉(zhuǎn)角的迭代步長(zhǎng)單調(diào)下降的調(diào)整策略,是一種以進(jìn)化代數(shù)為自變量的負(fù)指數(shù)函數(shù)的自適應(yīng)調(diào)整策略?,F(xiàn)有文獻(xiàn)大多沒有考慮種群中各染色體之間的差異,也沒有充分利用目標(biāo)函數(shù)的變化趨勢(shì)。本文的改進(jìn)策略是: 把目標(biāo)函數(shù)在搜索點(diǎn)(單個(gè)染色體)處的變化趨勢(shì)(梯度)加入到轉(zhuǎn)角步長(zhǎng)函數(shù)中,讓轉(zhuǎn)角步長(zhǎng)的大小隨著目標(biāo)函數(shù)變化率增大而減小,反之亦然。這樣,既可以加快搜索速度,又不至于越過全局最優(yōu)解??紤]可微目標(biāo)函數(shù)的變化率,利用梯度定義轉(zhuǎn)角步長(zhǎng)函數(shù)為
exp(-gen/maxgen)
(15)
式中:Δθ0——迭代初值;gen——當(dāng)前代數(shù),maxgen為終止代數(shù);適應(yīng)度函數(shù)f(X)在處的梯度;fjmax,fjmin分別定義為
(18)
式中:Xp,Xc——父代和子代染色體。
除了對(duì)編碼方式以及轉(zhuǎn)角方向和大小進(jìn)行改進(jìn)外,DCQGA在基本QGA基礎(chǔ)上加入了變異處理。首先依據(jù)實(shí)際確定的變異概率隨機(jī)選擇需要變異的若干染色體,然后再用量子非門對(duì)隨機(jī)選中的量子位施加變換,使該量子位的4個(gè)概率幅互換。這樣可使2條基因鏈同時(shí)得到變異。
比如,假設(shè)某量子位幅角為θ,則變異后幅角變?yōu)棣?2-θ,也就是說(shuō)幅角正向旋轉(zhuǎn)了π/2-2θ。實(shí)際上該種變異是對(duì)量子位幅角的一種旋轉(zhuǎn): 該旋轉(zhuǎn)不與當(dāng)前最佳染色體比較,一律正向旋轉(zhuǎn),有助于增加種群的多樣性,降低早熟的概率。
實(shí)現(xiàn)上述實(shí)數(shù)雙鏈編碼梯度QGA的步驟如圖1所示。
圖1 DCQGA流程示意
1) 種群初始化。按式(7)產(chǎn)生m條染色體(2m條基因鏈)組成初始種群Q(t0);設(shè)定初始轉(zhuǎn)角步長(zhǎng)θ0、變異概率為pm。
2) 解空間變換。將每條染色體代表的近似解,由單位空間In=[-1,1]n映射到連續(xù)優(yōu)化問題式(5)的解空間Ω。
3) 計(jì)算初始種群Q(t0)的適應(yīng)度。按式(6)計(jì)算染色體的適應(yīng)度f(wàn)it。
4) 獲取最優(yōu)解及相應(yīng)自變量。記當(dāng)代最優(yōu)解為bestX,對(duì)應(yīng)染色體為bestChrome,到目前為止的最優(yōu)解為BsX,對(duì)應(yīng)染色體為BsChrome。若fit(bestX)>fit(BsX),則BsChrome=bestChrome。
5) 判斷是否滿足終止條件。終止條件的設(shè)定一般有兩種: 適應(yīng)度值達(dá)到要求時(shí)終止程序;達(dá)到指定代數(shù)時(shí)終止程序,本文采用后者。當(dāng)滿足終止條件時(shí),6)之后的步驟不執(zhí)行,而不滿足終止條件時(shí),進(jìn)入下一步的循環(huán)體。
6) 計(jì)算最大最小梯度。根據(jù)式(16)和式(17)計(jì)算最大最小梯度f(wàn)jmax,fjmin。
7) 執(zhí)行量子位旋轉(zhuǎn)。根據(jù)式(15)執(zhí)行量子位旋轉(zhuǎn),旋轉(zhuǎn)后得到1個(gè)關(guān)于轉(zhuǎn)角步長(zhǎng)Δθ的矩陣。
8) 執(zhí)行量子位變異。依據(jù)變異概率對(duì)要變異的量子位實(shí)行變異操作: Δθij=0.5π-θij。
9) 代間復(fù)制。因?yàn)橐玫较噜弮纱囊浑A差分替代梯度,所以要先把本代染色體復(fù)制上一代,即令oldchrome=chrome。
10) 生成新的量子染色體。由步驟8)得到更新后的Δθij,chrome=cos(Δθij)或chrome=sin(Δθij)得到新的量子染色體。
11) 得到新的染色體后,反復(fù)執(zhí)行步驟2)~5),直到t達(dá)到指定代數(shù)時(shí)結(jié)束。
為了驗(yàn)證DCQGA對(duì)PID控制器參數(shù)優(yōu)化的有效性,選擇如下被控對(duì)象[18]:
(21)
令輸入為一階躍信號(hào),采樣時(shí)間取為1 ms。為了獲得滿意的過渡過程動(dòng)態(tài)特性,采用誤差絕對(duì)值時(shí)間積分性能指標(biāo)作為參數(shù)選擇的最小目標(biāo)函數(shù)。另外,把控制量的平方也加入到目標(biāo)函數(shù)中,這樣可以避免控制能量過大,如下式:
(22)
式中:e(t)——系統(tǒng)誤差;u(t)——控制器輸出;tu——上升時(shí)間;ω1,ω2,ω3——權(quán)值。
為避免超調(diào),采用懲罰機(jī)制,即一旦產(chǎn)生超調(diào),將超調(diào)量也加入目標(biāo)函數(shù)中,即:
ife(t)<0
(23)
式中:ω4——權(quán)值,且ω4≥ω1。
在用PID控制器對(duì)該模型進(jìn)行控制時(shí),為優(yōu)化PID控制器參數(shù),各算法參數(shù)選擇如下:kP的取值范圍為[0,20];kI,kD的取值范圍為[0,1];取ω1=0.999,ω2=0.001,ω3=2.0,ω4=100;限定代數(shù)為160代。GA,QGA和DCQGA三種算法針對(duì)以上的參數(shù)取值均一致。
另外,DCQGA的種群規(guī)模取為10,量子位數(shù)為3,轉(zhuǎn)角步長(zhǎng)為0.002π,變異概率為0.05;GA的交叉概率取為0.9,變異概率為0.033;而QGA的種群規(guī)模取為40。
經(jīng)過160代的優(yōu)化,三種算法得到的最優(yōu)結(jié)果見表1所列。
表1 GA,QGA,DCQGA算法結(jié)果比較
表1中,fitness表示最優(yōu)適應(yīng)度值,tu表示對(duì)應(yīng)算法的上升時(shí)間。由表1可知DCQGA的bestfit最大,同時(shí)從適應(yīng)度函數(shù)變化曲線圖2中也可以看出DCQGA的曲線明顯高于另外2條,表明DCQGA可以更快地跳出局部最優(yōu)解,獲得更好的全局最優(yōu)解,優(yōu)化結(jié)果更準(zhǔn)確。
圖2 適應(yīng)度函數(shù)變化曲線
圖3為DCQGA與QGA和GA優(yōu)化的PID控制器的階躍響應(yīng)的比較。從圖3和表1可以看出DCQGA得到的曲線上升時(shí)間最快,上升時(shí)間tu最小,說(shuō)明DCQGA的響應(yīng)速度最好。
圖3 PID控制器的階躍響應(yīng)示意
本文提出一種基于實(shí)數(shù)編碼的雙鏈量子遺傳算法的PID參數(shù)自整定方法,該方法用量子比特構(gòu)成染色體,用實(shí)數(shù)對(duì)量子比特進(jìn)行編碼;相比QGA,該方法將每個(gè)量子位看做上下2個(gè)并列的基因,每條染色體包含2條并列的基因鏈,每條基因鏈代表1個(gè)最優(yōu)解。通過與普通遺傳算法和標(biāo)準(zhǔn)量子遺傳算法整定效果的對(duì)比,結(jié)果驗(yàn)證了DCQGA可以更快地跳出局部最優(yōu)解從而獲得更好的全局最優(yōu)解,同時(shí)具有更快的響應(yīng)速度和更好的多目標(biāo)尋優(yōu)能力。
參考文獻(xiàn):
[1] Ziegler J, Nichols N. Optimum Settings for Automatic Controllers[J].Transaction of ASME, 1942(64): 759-768.
[2] 劉嶼,田聯(lián)房,毛宗源.一種新型人工免疫算法的PID自整定研究[J].計(jì)算機(jī)應(yīng)用研究,2007,24(04): 84-87.
[3] 陳書謙,張麗虹.蟻群算法在 PID 控制器參數(shù)優(yōu)化中的應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用研究,2011, 28(01): 177-181.
[4] 余麗瑩,焦嵩鳴.基于魚群算法的PID優(yōu)化[J].計(jì)算機(jī)仿真,2014,31(03): 155-158.
[5] 彭勇,施寧,林滸.佳點(diǎn)遺傳算法集及其在 PID控制中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2009,26(02): 524-526.
[6] 周明,孫樹棟.遺傳算法原理及應(yīng)用[M].北京: 國(guó)防工業(yè)出版社,1999
[7] Narayanan A, Moore M.Quantum-inspired Genetic Algorithms[C]//Proceedings of IEEE International Conference on Evolutionary Computation. Nagoya, Japan, 1996: 61-66.
[8] Han Kuk-Hyun, Kim Jong-Hwan.Quantum-inspired Evolutionary Algorithm for a Class of Combinatorial Optimization[J].IEEE Trans Evolutionary Computation, 2002, 6(06): 580-593.
[9] Zhang G X, Gu Y J, Hu L, et al. A Novel Genetic Algorithm and Its Application to Digital Filter Design[C]//Proc on IEEE Intelligent Transportation System. New Jersey: IEEE Press, 2003, 2: 1600-1605.
[10] 商允偉,裘聿皇.適應(yīng)值共享對(duì)遺傳算法選擇概率的影響分析[J].控制與決策,2003,18(06): 708-711.
[11] Li P C,Li S Y.Quantum-inspired Evolutionary Algorithm for Continuous Spaces Optimization[J].Chinese Journal of Electronics, 2008, 17(01): 100-104.
[12] 李士勇,李盼池.基于實(shí)數(shù)編碼和目標(biāo)函數(shù)梯度的量子遺傳算法[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2006(08): 1216-1218.
[13] 張興華,朱筱蓉,林錦國(guó).基于量子遺傳算法的PID控制器參數(shù)自整定[J].計(jì)算機(jī)工程與應(yīng)用,2007(21): 218-220.
[14] 郁磊,史峰.Matlab智能算法30個(gè)案例分析[M].北京: 北京航空航天大學(xué)出版社,2015.
[15] 曾成,趙錫均.改進(jìn)量子遺傳算法在PID參數(shù)整定中的應(yīng)用[J].電力自動(dòng)化設(shè)備,2009(10): 125-127,139.
[16] 李士勇,李盼池.量子計(jì)算與量子優(yōu)化算法[M].哈爾濱: 哈爾濱工業(yè)大學(xué)出版社,2009.
[17] Zhang G X,Li N,Jin W D.A Novel Quantum Genetic Algorithm and Its Application[J].ACTA Electronic Sinica, 2004, 32(03): 476-479.
[18] 劉金琨.先進(jìn)PID控制Matlab仿真[M].北京: 電子工業(yè)出版社,2011: 25-26.