史永宏,張茜
PID控制因其算法簡(jiǎn)單、可靠性高以及便于實(shí)現(xiàn)的特點(diǎn),成為應(yīng)用最為廣泛的控制策略之一。目前,PID控制主要是與人工神經(jīng)網(wǎng)絡(luò)、模糊數(shù)學(xué)和遺傳算法相結(jié)合,以實(shí)現(xiàn)智能化,使其能夠較好地適應(yīng)具有非線性、時(shí)變性和難以建立精確數(shù)學(xué)模型的被控對(duì)象;通過 FPGA的硬件方式來實(shí)現(xiàn),則可以較好地適應(yīng)實(shí)時(shí)性要求較高的嵌入式場(chǎng)合。
PID控制器是最早發(fā)展起來的控制策略之一,其結(jié)構(gòu)如圖1所示。
圖1 經(jīng)典PID控制器原理圖
根據(jù)給定值r(t)與實(shí)際輸出值y(t)所構(gòu)成的控制偏差:
將偏差的比例、積分和微分運(yùn)算,通過線性組合構(gòu)成控制量u(t),通過對(duì)Kp,Ki,Kd三個(gè)參數(shù)的調(diào)節(jié),即可實(shí)現(xiàn)對(duì)被控對(duì)象的控制,其控制規(guī)律為:
隨著微機(jī)技術(shù)的迅猛發(fā)展,實(shí)際應(yīng)用中大多已采用數(shù)字PID控制器,其具有很好的靈活性,且實(shí)現(xiàn)方便。然而,現(xiàn)場(chǎng)狀況千差萬別,需要工程師具有豐富的現(xiàn)場(chǎng)經(jīng)驗(yàn),設(shè)置適當(dāng)?shù)?PID參數(shù),才能得到可觀的控制效果。因此,如何增強(qiáng) PID控制的自適應(yīng)性,使其具有參數(shù)自整定功能,成為PID控制研究的重要方向,而蓬勃發(fā)展的模糊數(shù)學(xué),人工神經(jīng)網(wǎng)絡(luò)及遺傳算法等,為PID控制的智能化提供了可能。
近年來,人工神經(jīng)網(wǎng)絡(luò)的理論研究取得了突破性進(jìn)展,其中最具代表意義的是,1986年 Rumelhart,Hinton和Williams提出的誤差反向傳播訓(xùn)練算法(簡(jiǎn)稱 BP算法),系統(tǒng)地解決了多層網(wǎng)絡(luò)中隱含單元連接權(quán)的學(xué)習(xí)問題,應(yīng)用此算法所構(gòu)成的網(wǎng)絡(luò)我們稱為BP網(wǎng)絡(luò)。
BP網(wǎng)絡(luò)是前向反饋網(wǎng)絡(luò)的一種,建立在梯度下降法的基礎(chǔ)上,是當(dāng)前應(yīng)用最為廣泛的一種網(wǎng)絡(luò)。算法的主要思想是通過兩個(gè)階段完成對(duì)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練:
第一階段為正向傳播過程:輸入信息由輸入層節(jié)點(diǎn)開始逐級(jí)向前傳播,經(jīng)過各層單元的激活函數(shù)運(yùn)算后,運(yùn)算結(jié)果由輸出節(jié)點(diǎn)輸出。
第二階段即反向傳播過程:若在輸出層未得到符合精度要求的輸出值,則將誤差逐級(jí)返回,根據(jù)算法,修改各層連接權(quán)的權(quán)值,再經(jīng)過正向傳播過程得到輸出。
經(jīng)過以上兩個(gè)過程若干次的循環(huán),當(dāng)輸出值達(dá)到所期望的精度時(shí),網(wǎng)絡(luò)的訓(xùn)練過程結(jié)束。
對(duì)于控制領(lǐng)域的研究者來說,BP網(wǎng)絡(luò)的優(yōu)勢(shì)在于:含有一個(gè)隱含層的BP網(wǎng)絡(luò),可以以任意精度逼近任何連續(xù)非線性函數(shù),從而形成非線性動(dòng)力學(xué)系統(tǒng),以表示某些被控對(duì)象的模型,并能夠?qū)W習(xí)和適應(yīng)不確定性系統(tǒng)的動(dòng)態(tài)特性;此外,信息分布式存儲(chǔ),運(yùn)算具有極高的并行性。
因此,在控制理論的諸多領(lǐng)域,都能看到BP網(wǎng)絡(luò)的應(yīng)用。通過BP網(wǎng)絡(luò)對(duì)系統(tǒng)性能的學(xué)習(xí),可實(shí)現(xiàn)具有最佳組合的PID控制,基于BP網(wǎng)絡(luò)的PID控制器如圖2所示:
圖2 基于BP網(wǎng)絡(luò)的PID控制器
控制器由兩個(gè)部分組成:
(1) 經(jīng)典PID控制器,用于直接對(duì)被控對(duì)象進(jìn)行閉環(huán)控制;
(2) BP網(wǎng)絡(luò)根據(jù)系統(tǒng)的運(yùn)行狀態(tài),調(diào)節(jié)PID控制器的參數(shù),以達(dá)到系統(tǒng)誤差的最小化。
但是,人們?cè)谑褂眠^程中發(fā)現(xiàn)BP網(wǎng)絡(luò)也存在諸多不足,例如:易陷入局部極小值,學(xué)習(xí)過程收斂速度慢,網(wǎng)絡(luò)的結(jié)構(gòu)難以確定等??蒲泄ぷ髡咄ㄟ^各種努力來彌補(bǔ)BP網(wǎng)絡(luò)的缺陷,遺傳算法的優(yōu)良特性為改善BP網(wǎng)絡(luò)的性能提供了新的思路。
遺傳算法是一種基于生物進(jìn)化過程的全局優(yōu)化方法,美國(guó)John H. Holland教授在其1975年出版的《Adaptation in Natural and Artificial Systems》一書中系統(tǒng)地提出了遺傳算法理論,并給出了相應(yīng)的數(shù)學(xué)理論證明。
一個(gè)標(biāo)準(zhǔn)的遺傳算法一般包括以下3個(gè)步驟:
(1) 初始化:確定參數(shù)的編碼方案,并根據(jù)編碼方案構(gòu)造合適的適應(yīng)度函數(shù),并產(chǎn)生初始種群;
(2) 進(jìn)行遺傳操作:運(yùn)用復(fù)制、交叉和變異等操作對(duì)種群中的個(gè)體進(jìn)行進(jìn)化;
(3) 終止條件判斷:當(dāng)算法滿足期望的精度時(shí),終止算法,當(dāng)前群體中的最優(yōu)個(gè)體即為最終的尋優(yōu)結(jié)果。否則,返回步驟2繼續(xù)執(zhí)行,直到滿足終止條件為止。
相對(duì)于BP網(wǎng)絡(luò)易陷入局部極值的缺陷,遺傳算法從多個(gè)起點(diǎn)同時(shí)計(jì)算,可以有效地避開局部最優(yōu)解。但是,遺傳算法往往能夠快速地逼近到全局最優(yōu)解附近,卻不易獲得最優(yōu)解,其局部尋優(yōu)能力較弱,而BP網(wǎng)絡(luò)卻有較強(qiáng)的局部尋優(yōu)能力。因此,將神經(jīng)網(wǎng)絡(luò)和遺傳算法相融合,可以彌補(bǔ)各自的不足,基于遺傳算法優(yōu)化的智能控制器結(jié)構(gòu)如圖 3所示:
圖3 基于遺傳算法優(yōu)化的智能控制器結(jié)構(gòu)圖
目前有關(guān)遺傳算法與神經(jīng)網(wǎng)絡(luò)相結(jié)合的研究工作主要包括3個(gè)方面:
(1) 利用遺傳算法進(jìn)化神經(jīng)網(wǎng)絡(luò)的連接權(quán):
神經(jīng)網(wǎng)絡(luò)的權(quán)值訓(xùn)練過程即通過某種確定的規(guī)則逐步調(diào)整,最終得到一個(gè)較好權(quán)值分布的過程。但是目前廣泛使用的BP網(wǎng)絡(luò),有關(guān)參數(shù)的選取尚無理論指導(dǎo),完全憑借經(jīng)驗(yàn)確定,如果取值不當(dāng),極易引起網(wǎng)絡(luò)不收斂,又易陷入局部極值等問題。用遺傳算法作為訓(xùn)練規(guī)則進(jìn)化神經(jīng)網(wǎng)絡(luò)的連接權(quán),則可以有效地改善上述缺陷。
(2) 利用遺傳算法進(jìn)化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu):
神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)對(duì)其處理能力有很大的影響,好的網(wǎng)絡(luò)結(jié)構(gòu)應(yīng)含有較少的冗余節(jié)點(diǎn)和冗余連接權(quán)。目前,網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)主要是采取試探法,也沒有系統(tǒng)的理論指導(dǎo),經(jīng)驗(yàn)的因素占有很大的比例。因此,可以利用遺傳算法在多種網(wǎng)絡(luò)結(jié)構(gòu)組成的群體中,通過遺傳運(yùn)算,進(jìn)化出一個(gè)較優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)。
(3) 利用遺傳算法進(jìn)化神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)規(guī)則:
神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中,學(xué)習(xí)規(guī)則是確定的,但未必是最優(yōu)的??梢岳眠z傳算法來設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)規(guī)則,使神經(jīng)網(wǎng)絡(luò)能夠適應(yīng)多變的具體環(huán)境。在學(xué)習(xí)規(guī)則的進(jìn)化中,對(duì)規(guī)則的編碼還沒有非常成功的范例,因此,對(duì)學(xué)習(xí)規(guī)則的進(jìn)化研究還只處于起步階段。
隨著計(jì)算機(jī)技術(shù)的迅猛發(fā)展,智能控制在工業(yè)現(xiàn)場(chǎng)控制中得到了廣泛應(yīng)用,實(shí)現(xiàn)手段也多種多樣。傳統(tǒng)的方法是在馮·諾曼體系結(jié)構(gòu)的數(shù)字計(jì)算機(jī)上編制程序,利用微處理器、微控制器等豐富的數(shù)學(xué)運(yùn)算功能,通過軟件模擬實(shí)現(xiàn)人工神經(jīng)網(wǎng)絡(luò)、遺傳算法等智能算法。此種方法成本低、靈活性強(qiáng),但數(shù)字計(jì)算機(jī)的特點(diǎn)是存儲(chǔ)程序,順序執(zhí)行,因此,計(jì)算機(jī)只能把神經(jīng)網(wǎng)絡(luò)和遺傳算法中大量的并行運(yùn)算,通過串行的方法來模擬實(shí)現(xiàn),從根本上失去了算法并行處理信息的特征。因而,研究人員將目光投向了硬件直接實(shí)現(xiàn)的方式,而ASIC高昂的成本令許多廠商望而卻步,F(xiàn)PGA則為研究人員提供了新的解決方案。
FPGA的并行架構(gòu)非常適合實(shí)現(xiàn)人工神經(jīng)網(wǎng)絡(luò)及遺傳算法,并且,各FPGA廠商提供了多種成熟的IP(Intellectual Property)以供使用,因此可以將原本設(shè)計(jì)在板卡上的諸多功能(如通信模塊等)集中在FPGA內(nèi)部實(shí)現(xiàn),可大大減小板卡的設(shè)計(jì)復(fù)雜度,以提升系統(tǒng)的穩(wěn)定性。使用FPGA實(shí)現(xiàn)的智能控制器已經(jīng)取得了長(zhǎng)足的進(jìn)步?;贔PGA的設(shè)計(jì),一般采用自頂而下的設(shè)計(jì)方法,將整個(gè)系統(tǒng)分割成若干個(gè)小模塊,每個(gè)模塊獨(dú)立實(shí)現(xiàn),并通過接口相互傳遞信息,當(dāng)系統(tǒng)模塊劃分完畢,即可使用硬件描述語言(VHDL或 Verilog)完成模塊設(shè)計(jì),利用有限自動(dòng)機(jī)或者內(nèi)嵌的處理器(軟核或硬核)完成對(duì)系統(tǒng)的控制。
隨著微電子技術(shù)的迅猛發(fā)展,實(shí)現(xiàn)基于遺傳算法,人工神經(jīng)網(wǎng)絡(luò)和 PID控制技術(shù)的智能片上系統(tǒng)已經(jīng)成為可能,尤其是基于可重構(gòu)技術(shù)的系統(tǒng),以FPGA為載體,其高性能與靈活性已經(jīng)引起了研究人員的極大熱情,但是無論是理論研究還是實(shí)踐應(yīng)用都還有待深化。
[1] 龔安,張敏.網(wǎng)絡(luò)自適應(yīng)學(xué)習(xí)率研究[J] .科學(xué)技術(shù)與工程,2006,6(1):64-66.
[2] 周明,孫樹棟.遺傳算法原理及應(yīng)用[M] .北京:國(guó)防工業(yè)出版社,1999:7-8.
[3] 賴鑫生.神經(jīng)網(wǎng)絡(luò)結(jié)合遺傳算法優(yōu)化應(yīng)用[J] .貴州大學(xué)學(xué)報(bào).2004,21(2):179-184.
[4] 魯華祥,王守覺.半導(dǎo)體人工神經(jīng)網(wǎng)絡(luò)的研究與發(fā)展[J] .電子科技導(dǎo)報(bào),1996,(9):10-12.
[5] 李昂,王沁,李占才,萬勇.基于FPGA的神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)方法[J] .北京科技大學(xué)學(xué)報(bào),2007,29(1):90-95.