呂曉丹,吳次南
(貴州大學大數(shù)據(jù)與信息工程學院,貴陽550000)
比例積分微分(Proportion integral differential,PID)控制是較為傳統(tǒng)的控制算法,由于其具有算法簡單、魯棒性好、可靠性高的優(yōu)點,被廣泛應(yīng)用在過程控制和運動控制中,尤其適用于可建立精確數(shù)學模型的系統(tǒng)。但是,實際工業(yè)自動化過程往往具有非線性、時變、難以建立精確數(shù)學模型的特點,而傳統(tǒng)PID控制器的3個控制參數(shù)(比例系數(shù)Kp、積分系數(shù)Ki、差分系數(shù)Kd)是一組根據(jù)經(jīng)驗設(shè)定的固定值,無法實時在線調(diào)整,導致控制效果很難讓人滿意。
神經(jīng)網(wǎng)絡(luò)具有強大的自我學習能力和非線性映射能力,可以實現(xiàn)PID控制參數(shù)的實時在線調(diào)整。于是開始有學者將神經(jīng)網(wǎng)絡(luò)應(yīng)用到PID控制領(lǐng)域,形成神經(jīng)網(wǎng)絡(luò)PID控制器[1-2]。這種方法較之傳統(tǒng)PID控制器而言,實現(xiàn)了控制參數(shù)的在線調(diào)整,提高了PID控制的品質(zhì)。
但是,神經(jīng)網(wǎng)絡(luò)的缺點是推理能力差,而模糊控制有著很好的邏輯推理能力,于是,不少學者嘗試將神經(jīng)網(wǎng)絡(luò)與模糊控制這兩種智能控制技術(shù)結(jié)合起來。1990年,Takagi[3]概括性地探討了模糊控制與神經(jīng)網(wǎng)絡(luò)未來的發(fā)展趨勢。Jang等[4-5]分別證明了神經(jīng)網(wǎng)絡(luò)與模糊控制的函數(shù)等價性,為模糊控制與神經(jīng)網(wǎng)絡(luò)的結(jié)合打下了堅實基礎(chǔ)。隨后,學者們在模糊神經(jīng)網(wǎng)絡(luò)領(lǐng)域有不少新發(fā)現(xiàn)。例如:一種帶有補償運算層的5層補償模糊神經(jīng)網(wǎng)絡(luò)[6];一種基于免疫遺傳算法的動態(tài)遞歸模糊神經(jīng)網(wǎng)絡(luò)[7];在線動態(tài)增減規(guī)則層神經(jīng)元個數(shù)的改進型模糊神經(jīng)網(wǎng)絡(luò)[8]等;除了對網(wǎng)絡(luò)的整體結(jié)構(gòu)進行改進外,也有學者對網(wǎng)絡(luò)中某一部分進行了改進和創(chuàng)新。眾所周知,網(wǎng)絡(luò)的性能受初值的影響很大,初值選擇不當網(wǎng)絡(luò)很容易陷入局部最優(yōu)解[9]。于是有學者采用混沌遺傳算法離線粗調(diào)來選擇更加合適的參數(shù)初值,再利用反向傳播(Back propagation,BP)算法在線細調(diào)來得到最優(yōu)的網(wǎng)絡(luò)參數(shù)值,進而有效改善了網(wǎng)絡(luò)的性能提高了控制效果[10]。還有學者將注意力集中在模糊規(guī)則的優(yōu)化上,試圖定義一個帶參的分段函數(shù)形式的模糊規(guī)則,然后使用思維進化算法得到模糊規(guī)則的相關(guān)參數(shù)值。實驗結(jié)果表明參數(shù)化的模糊規(guī)則對于改善控制效果是很有幫助的[11]。
但是將模糊神經(jīng)網(wǎng)絡(luò)應(yīng)用到PID控制領(lǐng)域的學者卻較少。蔣金偉等[12-13]設(shè)計了標準模糊神經(jīng)網(wǎng)絡(luò)PID控制器。本文在此基礎(chǔ)上,提出的改進型模糊神經(jīng)網(wǎng)絡(luò)智能PID控制器,是一種融合了神經(jīng)網(wǎng)絡(luò)和模糊控制各自的優(yōu)點,在模糊規(guī)則參數(shù)化及激活函數(shù)構(gòu)建等方面進行改進創(chuàng)新的新型智能PID控制器。其中,模糊規(guī)則部分采用含權(quán)重的規(guī)則解析式,讓模糊規(guī)則可以跟隨誤差和誤差變化率的大小而在線調(diào)整,豐富了專家經(jīng)驗的內(nèi)容,提高了控制的精度。同時,構(gòu)造了IThLU函數(shù)作為網(wǎng)絡(luò)的激活函數(shù),IThLU具有寬泛的敏感區(qū)并且梯度可調(diào)的特點,避免了訓練過程中的梯度消失及梯度爆炸現(xiàn)象的發(fā)生。最終的仿真結(jié)果表明本文提出的改進型模糊神經(jīng)網(wǎng)絡(luò)PID控制器(Improved fuzzy neural network PID,IFNN-PID)較之傳統(tǒng)PID控制器(Traditional PID,T-PID)、神經(jīng)網(wǎng)絡(luò)PID控制器(Neural network PID,NN-PID)、標準模糊神經(jīng)網(wǎng)絡(luò)PID控制器(Standard fuzzy neural network PID,SFNN-PID)而言,提高了響應(yīng)性、準確性和穩(wěn)定性,取得了良好的控制效果。
在工業(yè)自動化控制領(lǐng)域,PID算法是常見的控制算法。PID算法的離散控制率為[1]
式中:e(k)為系統(tǒng)輸入與輸出之間的誤差,為誤差的累加和,e(k)-e(k-1)為誤差的變化率。比例環(huán)節(jié)Kpe(k)用于快速消除輸入與輸出間的誤差,比例系數(shù)Kp越大,系統(tǒng)響應(yīng)速度越快速;積分環(huán)節(jié)用于減小系統(tǒng)的靜態(tài)誤差,積分系數(shù)Ki越大,系統(tǒng)的響應(yīng)結(jié)果越精準;差分環(huán)節(jié)Kd[e(k)-e(k-1)]用于消除控制過程中的振蕩,差分系數(shù)Kd越大,系統(tǒng)的響應(yīng)過程越穩(wěn)健。因而,Kp、Ki、Kd3個控制參數(shù)的選擇直接影響到PID算法的控制效果。工程上,這3個控制參數(shù)大多依據(jù)專家經(jīng)驗設(shè)定為固定值,其效果往往不能令人滿意,如何進行控制參數(shù)的自適應(yīng)調(diào)整就成為PID控制領(lǐng)域的一大挑戰(zhàn)。
模糊控制可以通過專家經(jīng)驗和實驗構(gòu)建知識庫,模擬人類在控制過程中的決策行為,具備強大的邏輯推理能力。神經(jīng)網(wǎng)絡(luò)具有強大的自學習能力和非線性映射能力。為了能夠?qū)崿F(xiàn)PID控制參數(shù)的自我調(diào)整,從而實現(xiàn)對非線性復雜對象的有效控制,本文將模糊理論和神經(jīng)網(wǎng)絡(luò)結(jié)合起來形成模糊神經(jīng)網(wǎng)絡(luò)并應(yīng)用到PID控制算法中,來提高控制的響應(yīng)性、穩(wěn)定性和精確性。模糊神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示。
該模糊神經(jīng)網(wǎng)絡(luò)共分為4層:
第一層為輸入層,共兩個節(jié)點。該層的每個神經(jīng)元與輸入向量i1=[e(k),ec(k)]的各分量相連,其作用是接收誤差e(k)和誤差變化率ec(k)并傳至第二層。i1代表第一層輸入向量(1行2列),o1代表第一層輸出向量(1行2列)。
第二層為模糊化層,共14個節(jié)點。該層的每個神經(jīng)元代表1個高斯隸屬度函數(shù),其作用是對輸入值劃分成7個模糊區(qū)間并進行模糊化處理。i2代表第二層的輸入向量(1行2列),o2代表第二層的輸出向量(2行7列),b和c均為隸屬度函數(shù)的參數(shù)矩陣(1行7列)。
第三層為模糊推理層(模糊規(guī)則層),共49個節(jié)點。該層的每個神經(jīng)元代表模糊規(guī)則庫的一條模糊規(guī)則,其作用是將第二層的模糊化結(jié)果經(jīng)過模糊規(guī)則函數(shù)f()處理后得到模糊推理輸出。i3代表第三層輸入矩陣(2行7列),o3代表第三層輸出矩陣(1行49列)。
第四層為輸出層,共3個節(jié)點。該層的3個神經(jīng)元代表3個計算節(jié)點,其作用是進行解模糊計算最終得到PID的3個控制參數(shù)Kp、Ki、Kd。i4代表第四層的輸入矩陣(1行3列),w代表第三層與第四層之間的連接權(quán)重矩陣(49行3列),g()代表激活函數(shù),o4代表第四層的輸出矩陣(1行3列)。
為了最大化利用神經(jīng)網(wǎng)絡(luò)的自學習能力,取得更好的控制效果,本文將模糊化層、模糊推理層、解模糊層全部進行參數(shù)化。其中模糊化層采用高斯隸屬度函數(shù)進行參數(shù)化,而模糊推理層的模糊規(guī)則函數(shù)f()和解模糊層的激活函數(shù)g()將在第2節(jié)進行詳細論述。
模糊規(guī)則是模糊控制的核心,規(guī)則的好壞直接影響著推理的結(jié)果及控制器的精度。在標準模糊神經(jīng)網(wǎng)絡(luò)PID控制器[12-13]中,僅考慮了模糊化層和解模糊化層的參數(shù)化,并沒有考慮模糊推理層的參數(shù)化。本節(jié)將對模糊規(guī)則進行參數(shù)化處理,以期對標準模糊神經(jīng)網(wǎng)絡(luò)PID控制器進行改進,取得更好的控制效果。
最初,模糊控制規(guī)則是由模糊語言進行描述的,具有if-then結(jié)構(gòu):
If input 1 and input 2 then output。
If-then結(jié)構(gòu)的模糊規(guī)則通過大量的專家經(jīng)驗和工程實驗得到,以這種方式獲得的模糊規(guī)則成本高、精度低,難以達到最優(yōu)的控制效果。為了提高控制精度,學者們開始將模糊規(guī)則用解析式來表達,常用的規(guī)則表達式為
式(10)為最小規(guī)則、式(11)為最大規(guī)則,核心原理都是取誤差及誤差變化率的最小/最大值作為控制量施加到被控對象上,來消除誤差或者誤差變化率。但是這種方式,每次只考慮了e或者ec中的一個量,信息利用率比較低,故而有學者采用式(12)累乘規(guī)則替代最小/最大規(guī)則。累乘規(guī)則同時考慮了e和ec兩個量。但是累乘規(guī)則中,e和ec的權(quán)重系數(shù)都是1,沒有考慮到兩者權(quán)重系數(shù)的差異。在工程實際中,被控對象在不同的狀態(tài)下,對e和ec的加權(quán)程度是不同的。例如,當e較大時,首先應(yīng)考慮快速消除偏差,這時e的權(quán)重系數(shù)應(yīng)該較大;當e較小時為了系統(tǒng)盡快穩(wěn)定,這時ec的權(quán)重系數(shù)應(yīng)該較大。為了讓系統(tǒng)可以根據(jù)自身狀態(tài)來調(diào)整e和ec的權(quán)重,本文將模糊規(guī)則進行參數(shù)化處理,采用式(13)作為模糊規(guī)則函數(shù)f()的解析式。
式中:α的取值直接影響著控制的品質(zhì)和效果。如何確定α也成為學者研究的內(nèi)容。比如有學者采用思維進化算法來確定α的取值[11],其核心思想在于按照不同的誤差e等級引入不同α值,這樣u就成為e的分段函數(shù),然后利用思維進化算法來尋求α的最優(yōu)解。這種方法可以在缺乏專家經(jīng)驗的情況下得到較可靠的模糊控制規(guī)則。但是,用這種方法一旦確定了α值就不可能再次修改,即無法實現(xiàn)α值的在線實時調(diào)整,當系統(tǒng)狀態(tài)發(fā)生變化時,此前確定的α值就不再是當前狀態(tài)下的最優(yōu)選擇了。
為了解決α值無法在線調(diào)整的問題,本文將列向量α(1*49)也作為神經(jīng)網(wǎng)絡(luò)需要在線實時調(diào)整的參數(shù),確定好代價函數(shù)后,讓α值沿著梯度下降的方向變化,進而得到實時狀態(tài)下使代價函數(shù)最小的α值。此時,控制規(guī)則中的誤差e和誤差變化率ec的權(quán)重系數(shù)此消彼長,隨著系統(tǒng)狀態(tài)變化而變化,提高了模糊規(guī)則的精度,改善了控制算法的效果。
各類實際系統(tǒng)的被控對象都具有非線性的特點。為了實現(xiàn)對這類系統(tǒng)的有效控制,常利用激活函數(shù)將非線性因素融入到神經(jīng)網(wǎng)絡(luò)中去,避免輸入與輸出的純線性關(guān)系,提高神經(jīng)網(wǎng)絡(luò)對模型的表達能力,解決線性模型所不能解決的問題。
起初,人們將sigmoid函數(shù)作為激活函數(shù)應(yīng)用在邏輯回歸中,它可以被理解為一種概率且求導容易。但是它不是一個零均值函數(shù),會造成信號丟失;后來,人們采用tanh函數(shù)作為激活函數(shù),相對于sigmoid函數(shù)來說tanh函數(shù)是零均值函數(shù)且收斂更快,但是仍然存在梯度消失的現(xiàn)象,不利于梯度下降法進行網(wǎng)絡(luò)訓練;為了避免梯度消失現(xiàn)象,研究者開始擴展激活函數(shù)的敏感區(qū)間,Nair等[14]提出了修正線性單元(Rectified linear unit,ReLU)激活函數(shù),該函數(shù)在x為正數(shù)時梯度恒為1,這就避免了在正半軸的梯度消失,但是當x為負數(shù)時梯度恒為0,會丟失信號的所有負數(shù)特征,造成神經(jīng)元死亡。為了解決這一問題,劉坤華等[15]提出了基于雙曲正切函數(shù)的修正線性單元(Tangent-based rectified linear unit,ThLU),ThLU函數(shù)的正半軸來自ReLU函數(shù)的正半軸,負半軸來自tanh函數(shù)的負半軸,其表達式為
為了方便作比較,現(xiàn)將sigmoid函數(shù)、tanh函數(shù)、ReLu函數(shù)以及ThLU函數(shù)繪制在一個坐標系中(圖2)。
圖2 幾個激活函數(shù)的比較Fig.2 Comparison of several activation functions
由圖2可知,ThLU函數(shù)的敏感區(qū)間較sigmoid函數(shù)和tanh函數(shù)要寬很多,從而有效避免了梯度的消失;同時ThLU函數(shù)的負半軸梯度不全為零,可以保留信號的負數(shù)特征,從而有效避免了神經(jīng)元的死亡。所以ThLU在避免梯度消失和保存全部信號特征之間取得了折中的平衡。
但是由式(14)可知,當x>0時ThLU的梯度始終為1,這樣固定的梯度值可能會引起梯度爆炸。即對于某些神經(jīng)網(wǎng)絡(luò)來說,會出現(xiàn)梯度下降過程中步子太大而越過代價函數(shù)最小值的情況,進而導致網(wǎng)絡(luò)不穩(wěn)定且網(wǎng)絡(luò)無法收斂。為了進一步控制ThLU函數(shù)的形狀,增加激活函數(shù)的柔性,避免梯度爆炸現(xiàn)象的發(fā)生,本文在ThLU基礎(chǔ)上構(gòu)建了一個改進型基于雙曲正切函數(shù)的修正線性單元(Improved tangent-based rectified linear unit,IThLU)激活函數(shù),其定義為
由式(15)可知,IThLU激活函數(shù)較之ThLU激活函數(shù)而言,差別在于其正半軸的梯度d并不是固定值,而是一個可以通過神經(jīng)網(wǎng)絡(luò)進行學習的值。這樣IThLU不僅避免了梯度消失、保存了全部信號特征還避免了可能出現(xiàn)的梯度爆炸現(xiàn)象,是對ThLU函數(shù)的有效改進?;贗ThLU的上述優(yōu)點,本文將IThLU函數(shù)作為模糊神經(jīng)網(wǎng)絡(luò)解模糊層的激活函數(shù)g(),以期獲得更好的控制效果。
改進型模糊神經(jīng)網(wǎng)絡(luò)PID控制算法是在標準模糊神經(jīng)網(wǎng)絡(luò)PID控制算法的基礎(chǔ)上,對模糊規(guī)則進行參數(shù)化并且構(gòu)造了IThLU激活函數(shù)后,形成的4層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
算法的具體流程為:
(1)確定網(wǎng)絡(luò)的拓撲結(jié)構(gòu)為2—14—49—3和代價函數(shù)L。
(2)隨機初始化向量b、向量c、矩陣w、參數(shù)d和參數(shù)α。
(3)經(jīng)神經(jīng)網(wǎng)絡(luò)的前向傳播過程,得到模糊推理的輸出Kp、Ki、Kd。
(4)經(jīng)式(1)計算控制量,施加到被控對象上,得到系統(tǒng)實際輸出。
(5)計算系統(tǒng)輸入與輸出間的誤差。
(6)經(jīng)神經(jīng)網(wǎng)絡(luò)的反向傳播過程,計算代價函數(shù)L關(guān)于步驟(2)中各個參數(shù)及參數(shù)矩陣的偏導。
(7)模糊神經(jīng)網(wǎng)絡(luò)以設(shè)定的學習率β更新向量b、向量c、矩陣w、參數(shù)d和參數(shù)α,即
式中Θ代表各個參數(shù)及參數(shù)矩陣的各分量。
(8)判斷是否達到仿真總時長。若否,則跳轉(zhuǎn)到第(3)步,繼續(xù)循環(huán)該過程;若是,則結(jié)束循環(huán),輸出最優(yōu)的Kp、Ki、Kd。
改進型模糊神經(jīng)網(wǎng)絡(luò)PID控制器(Improved fuzzy neural network PID,IFNN-PID)的系統(tǒng)結(jié)構(gòu)如圖3所示。
圖3 IFNN-PID系統(tǒng)結(jié)構(gòu)圖Fig.3 Structure of IFNN-PID system
圖3中參考輸入X(k)是目標值,經(jīng)過與實際輸出Y(k)相減得到誤差e(k),對誤差求差分后得到誤差變化率ec(k),再將e(k)和ec(k)一起輸入到改進型模糊神經(jīng)網(wǎng)絡(luò)中,經(jīng)正向傳播得到Kp、Ki、Kd3個控制參數(shù),代入式(1)得到控制量u(k),u(k)作用于對象h(z),得到實際輸出Y(k),此時計算代價函數(shù)關(guān)于各參數(shù)的梯度,再根據(jù)反向傳播梯度下降過程調(diào)整神經(jīng)網(wǎng)絡(luò)中各參數(shù)的值,以此類推,循環(huán)往復直到仿真時間截止,最終將得到使代價函數(shù)最小的Kp、Ki和Kd。
通常評價一個控制算法的優(yōu)劣,主要是看該算法作用下系統(tǒng)的響應(yīng)性、穩(wěn)定性和精確性。為了方便對不同控制算法進行對比,本文選取如下性能指標[10]:
(1)調(diào)整時間。指輸出量第一次達到穩(wěn)態(tài)值時所需要的時間,記為ts。
(2)峰值。系統(tǒng)響應(yīng)最高點的值,記為max(y)。
(3)峰值時間。指輸出曲線首次達到最高點值的時間,記為tp。
(4)最大超調(diào)量。指輸出最大值Ymax與輸出穩(wěn)定值Y∞的相對誤差,記為σ。
(5)穩(wěn)態(tài)誤差。指系統(tǒng)穩(wěn)定時的輸出值Y∞與期望輸出Ye之間的差,記為δ。
為了驗證本文所提出的IFNN-PID在控制效果上的優(yōu)勢,選擇T-PID、NN-PID、SFNN-PID作為對照組,在Simulink軟件中對它們進行仿真分析。
為了方便比較和對照,本文采用單一變量原則進行仿真實驗,即除了控制算法本身外,其他環(huán)境參數(shù)都一樣。環(huán)境參數(shù)的具體設(shè)置為:T-PID的3個控制參數(shù)選擇經(jīng)驗值Kp=0.1、Ki=0.3、Kd=0,NN-PID、SFNN-PID、IFNN-PID均采用反向傳播標準梯度下降法進行訓練,學習率都是0.000 1,各個控制器的輸入信號源為同一個階躍信號,各算法的代價函數(shù)相同均為式(19),各控制器的控制對象均為同一二階對象如式(20)所示,仿真時長100 s。
式中:代價函數(shù)L是輸入與輸出之間偏差平方的二分之一。系統(tǒng)調(diào)參的目標是消除系統(tǒng)的偏差。
各個控制器的階躍響應(yīng)曲線如圖4所示。
圖4 階躍響應(yīng)Fig.4 Step response
不同算法的代價函數(shù)曲線如圖5所示。
圖5 代價函數(shù)曲線Fig.5 Cost function curves
圖6為IFNN-PID控制器的各參數(shù)在線調(diào)整曲線。
結(jié)合圖4~6和表1評價指標,得出如下結(jié)論:
(1)4種控制器中,T-PID的控制效果最差,主要表現(xiàn)在調(diào)整時間過長且存在穩(wěn)態(tài)誤差。
(2)NN-PID的控制效果較T-PID有所提高,表現(xiàn)在調(diào)整時間縮短了39.24 s并且沒有穩(wěn)態(tài)誤差。其原因在于神經(jīng)網(wǎng)絡(luò)具有強大的自學習能力,可以實現(xiàn)控制參數(shù)Kp、Ki、Kd的在線自適應(yīng)調(diào)整。
(3)SFNN-PID的控制效果較NN-PID而言略有改進,表現(xiàn)在調(diào)整時間縮短了0.9 s。之所以只是略有改進的原因在于,SFNN-PID中加入了模糊控制的過程,雖然增加了控制精度但也同時增加了網(wǎng)絡(luò)的復雜度和計算量。
(4)4種控制器中,IFNN-PID的響應(yīng)速度最快,只需要10.41 s就能達到期望值。雖然它與SFNN-PID相比在超調(diào)量上并不占優(yōu)勢,但是由于響應(yīng)迅速可以盡快抑制系統(tǒng)的超調(diào)量,使系統(tǒng)盡快進入穩(wěn)定狀態(tài)。原因在于,IFNN-PID將模糊規(guī)則參數(shù)化后提高了控制的精度同時采用IThLU函數(shù)作為激活函數(shù)拓寬了敏感區(qū)域,避免了梯度消失和梯度爆炸,進而加快了網(wǎng)絡(luò)收斂的速度。
圖6 IFNN-PID控制器的各參數(shù)在線調(diào)整曲線Fig.6 Several parameter online adjustment curve of IFNN-PID controller
表1 評價指標Table 1 Evaluation index
綜上,本文所提出的改進型模糊神經(jīng)網(wǎng)絡(luò)PID控制器是一種可以實時在線調(diào)整控制參數(shù)且響應(yīng)性快、穩(wěn)定性好、精確性高的高性能控制器,是對PID控制算法的有效改進。
首先,本文將模糊控制的推理能力、神經(jīng)網(wǎng)絡(luò)的自學習能力及PID算法的簡單實用融為一體,構(gòu)建了一款改進型模糊神經(jīng)網(wǎng)絡(luò)PID控制器。
其次,通過對模糊規(guī)則進行參數(shù)化,提高了控制的精度;通過構(gòu)建IThLU激活函數(shù)擴展了敏感區(qū)域范圍,增強了激活函數(shù)的柔性,避免梯度消失和梯度爆炸現(xiàn)象的發(fā)生,進而加快了網(wǎng)絡(luò)收斂的速度。
再次,通過在Simulink軟件中對二階被控對象進行仿真實驗,實驗結(jié)果表明本文設(shè)計的IFNN-PID較之T-PID、NN-PID和SFNN-PID,有著較好的控制性能,特別是在響應(yīng)性上有了很大的提高。
最后,得出結(jié)論:對模糊規(guī)則的參數(shù)化處理并構(gòu)建更加合適的激活函數(shù)應(yīng)用到模糊神經(jīng)網(wǎng)絡(luò)中,是一種行之有效的改進方案,本文所設(shè)計的改進型模糊神經(jīng)網(wǎng)絡(luò)PID控制器是一款高性能控制器。