王曉華,王有松
(1.西門(mén)子(中國(guó))有限公司西門(mén)子中國(guó)研究院,北京 100102;2.銀河航天(北京)通信技術(shù)有限公司衛(wèi)星研發(fā)部,北京 100085)
非線(xiàn)性動(dòng)態(tài)系統(tǒng)辨識(shí)在基于模型的控制中得到了廣泛的應(yīng)用。其中,神經(jīng)網(wǎng)絡(luò)具有良好的非線(xiàn)性映射能力、容錯(cuò)能力、自學(xué)習(xí)自適應(yīng)能力和并行處理信息的能力[1],是非線(xiàn)性動(dòng)態(tài)系統(tǒng)的一種有效辨識(shí)方法[2-5]。但很多實(shí)際應(yīng)用的動(dòng)態(tài)系統(tǒng),比如電液伺服系統(tǒng),存在階數(shù)高、非線(xiàn)性特性強(qiáng)等特點(diǎn),因此尋求適當(dāng)?shù)纳窠?jīng)網(wǎng)絡(luò)結(jié)構(gòu)以解決高度復(fù)雜的動(dòng)態(tài)系統(tǒng)辨識(shí),是控制理論研究的一個(gè)重要分支,對(duì)控制系統(tǒng)設(shè)計(jì)具有重要作用[6-9]。
神經(jīng)網(wǎng)絡(luò)具有巨量信息并行處理和大規(guī)模平行計(jì)算的特點(diǎn)。FPGA是1980年代中期發(fā)展起來(lái)的新型高性能可編程邏輯器件,可以實(shí)現(xiàn)并行任務(wù)的同步執(zhí)行,快速地決策以及精確地定時(shí)和同步,而且還可以在硬件上執(zhí)行定制算法[10]。因此,在FPGA的環(huán)境下實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的系統(tǒng)辨識(shí)將極大縮短網(wǎng)絡(luò)運(yùn)行時(shí)間,提高系統(tǒng)辨識(shí)性能,具有傳統(tǒng)方法不可比擬的優(yōu)勢(shì)[11-13]。但是通常開(kāi)發(fā)FPGA需要掌握VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)等編程知識(shí),開(kāi)發(fā)神經(jīng)網(wǎng)絡(luò)應(yīng)用具有較大的難度。NI公司將FPGA技術(shù)融入LabVIEW測(cè)試系統(tǒng),可以使用LabVIEW圖形化編程定義FPGA芯片上的邏輯功能,因此不需要任何有關(guān)底層硬件描述語(yǔ)言,就能夠利用FPGA技術(shù)實(shí)現(xiàn)復(fù)雜的神經(jīng)網(wǎng)絡(luò),降低系統(tǒng)開(kāi)發(fā)難度[13-14]。
遞歸模糊神經(jīng)網(wǎng)絡(luò)引入了動(dòng)態(tài)環(huán)節(jié)能夠自動(dòng)記憶部分歷史信息,更適合非線(xiàn)性動(dòng)態(tài)系統(tǒng)的辨識(shí)與控制[15-16]。但在實(shí)際應(yīng)用中,發(fā)現(xiàn)它學(xué)習(xí)速度較慢,而且收斂到一定精度時(shí)就會(huì)停止收斂,甚至出現(xiàn)振蕩。對(duì)于一個(gè)時(shí)變系統(tǒng),系統(tǒng)在一個(gè)時(shí)刻的輸出往往與它之前的輸出相關(guān),如果在遞歸模糊網(wǎng)絡(luò)中引入輸出層的遞歸信號(hào)與隱層的遞歸信號(hào)以及輸入信號(hào)共同作為系統(tǒng)隱層的總輸入,應(yīng)該能取得更好的學(xué)習(xí)效果。基于以上想法,設(shè)計(jì)了一種新型的神經(jīng)網(wǎng)絡(luò),稱(chēng)為輸出反饋遞歸模糊神經(jīng)網(wǎng)絡(luò)(Output Feedback Recurrent Fuzzy Neural Network,OFRFNN)。本文作者利用該神經(jīng)網(wǎng)絡(luò)結(jié)合動(dòng)態(tài)反向傳播算法(動(dòng)態(tài)BP算法),在數(shù)字系統(tǒng)FPGA中實(shí)現(xiàn)系統(tǒng)辨識(shí)模型,對(duì)舵機(jī)位置伺服系統(tǒng)進(jìn)行在線(xiàn)模型辨識(shí)。實(shí)驗(yàn)證明了該系統(tǒng)滿(mǎn)足工業(yè)應(yīng)用中高精度、高實(shí)時(shí)、高確定性的要求。
OFRFNN結(jié)構(gòu)如圖1所示。第一層為輸入層,該層的結(jié)點(diǎn)直接與輸入量x連接,將輸入值傳送到下一層。
(1)
第三層的每個(gè)結(jié)點(diǎn)代表一條模糊規(guī)則,采用sum-product推理。規(guī)則層對(duì)應(yīng)的輸出為
(2)
第四層為歸一化處理層,加快訓(xùn)練網(wǎng)絡(luò)的收斂性,滿(mǎn)足網(wǎng)絡(luò)穩(wěn)定性和魯棒性要求。該層的輸出為
(3)
第五層是輸出層,實(shí)現(xiàn)清晰化計(jì)算。
(4)
(5)
式中:yd(k)、y(k)和e(k)分別為k時(shí)刻被辨識(shí)系統(tǒng)的輸出、遞歸模糊神經(jīng)網(wǎng)絡(luò)的輸出和辨識(shí)誤差。
由梯度下降法可得該遞歸模糊神經(jīng)網(wǎng)絡(luò)辨識(shí)器的自適應(yīng)學(xué)習(xí)算法如下:
(6)
式中:η為學(xué)習(xí)速率,j=l=1,2,…,m。上式中具體推導(dǎo)如下:
(7)
結(jié)構(gòu)單元到隱層的連接權(quán)ωjl的學(xué)習(xí)算法展開(kāi)為
(8)
式中:
輸出連接層到隱層權(quán)值ωyl的學(xué)習(xí)算法展開(kāi)為
(9)
式中:
(10)
式中:
參數(shù)σj的學(xué)習(xí)算法展開(kāi)為
(11)
式中:
FPGA的并行運(yùn)行方式很好地滿(mǎn)足了神經(jīng)網(wǎng)絡(luò)的并行計(jì)算需求,極大地縮短了網(wǎng)絡(luò)的計(jì)算時(shí)間。此外,F(xiàn)PGA的可重復(fù)配置特性和靈活性能夠滿(mǎn)足神經(jīng)網(wǎng)絡(luò)反復(fù)學(xué)習(xí)、權(quán)值調(diào)整甚至結(jié)構(gòu)變化的要求,因此基于FPGA的神經(jīng)網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)已經(jīng)成為新的研究熱點(diǎn)[11,14]。
此系統(tǒng)采用美國(guó)NI公司的高性能FPGA控制器,利用LabVIEW圖形化語(yǔ)言實(shí)現(xiàn)OFRFNN辨識(shí)系統(tǒng)。在FPGA中各個(gè)網(wǎng)絡(luò)層內(nèi)的神經(jīng)元數(shù)據(jù)同時(shí)計(jì)算并行處理,但在各個(gè)網(wǎng)絡(luò)層之間則是串行計(jì)算。因此,在FPGA中可以保持神經(jīng)網(wǎng)絡(luò)中數(shù)據(jù)流的特定屬性[14,17]。神經(jīng)網(wǎng)絡(luò)系統(tǒng)辨識(shí)在FPGA中的實(shí)現(xiàn)如圖2所示。
在使用FPGA執(zhí)行神經(jīng)網(wǎng)絡(luò)時(shí)應(yīng)注意精度、并行性、可配置特性等。為了改進(jìn)神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)的通用性,將動(dòng)態(tài)遞歸神經(jīng)網(wǎng)絡(luò)分為2個(gè)部分:前向單元和學(xué)習(xí)單元。前向單元完成信號(hào)處理和權(quán)值存儲(chǔ)的功能,主要包括權(quán)值的計(jì)算、積累以及激活函數(shù)的實(shí)現(xiàn)等;反向?qū)W習(xí)單元完成信號(hào)傳輸功能,包括學(xué)習(xí)算法的實(shí)現(xiàn)以及程序的并行運(yùn)算。
通過(guò)LabVIEW FPGA模塊創(chuàng)建FPGA VI,將神經(jīng)網(wǎng)絡(luò)的實(shí)時(shí)辨識(shí)程序在FPGA Target中實(shí)現(xiàn)。其中FPGA VI包括主VI和子VI,神經(jīng)網(wǎng)絡(luò)激活函數(shù)、相應(yīng)導(dǎo)函數(shù)以及權(quán)值調(diào)整學(xué)習(xí)算法等在子VI中實(shí)現(xiàn),通過(guò)主VI調(diào)用子VI。在創(chuàng)建RFNN的FPGA VI程序后,將代碼編譯成為可以在NI RIO硬件設(shè)備上運(yùn)行的程序。另外LabVIEW FPGA平臺(tái)提供了FPGA實(shí)時(shí)程序與Windows圖形用戶(hù)程序的交互功能,通過(guò)創(chuàng)建HOST VI實(shí)現(xiàn)在RIO設(shè)備的FPGA和主機(jī)處理引擎之間的數(shù)據(jù)傳輸。由于HOST VI與FPGA VI的運(yùn)行方式是異步的,此系統(tǒng)采用DMA FIFOs的方法實(shí)現(xiàn)這2個(gè)VI間的信息交換和應(yīng)用程序同步。圖3所示是創(chuàng)建一個(gè)FPGA應(yīng)用程序所經(jīng)歷的開(kāi)發(fā)過(guò)程。
利用LabVIEW 2011的LabVIEW FPGA模塊實(shí)現(xiàn)遞歸模糊神經(jīng)網(wǎng)絡(luò)的過(guò)程中,應(yīng)當(dāng)注意硬件資源的充分利用以及程序運(yùn)行在設(shè)定的時(shí)間內(nèi)。單周期定時(shí)環(huán)路(Single Cycle Timed Loop,SCTL)是LabVIEW FPGA中一個(gè)特殊結(jié)構(gòu),生成一個(gè)更為優(yōu)化的電路圖,以期望達(dá)到在一個(gè)時(shí)鐘(脈沖)周期內(nèi)執(zhí)行完所有邏輯電路分支。因此利用SCTL可以?xún)?yōu)化程序降低FPGA中不必要資源的浪費(fèi)并且縮短了程序的執(zhí)行時(shí)間。此外,F(xiàn)PGA不支持浮點(diǎn)數(shù),應(yīng)將浮點(diǎn)數(shù)轉(zhuǎn)換為定點(diǎn)數(shù)進(jìn)行運(yùn)算。
實(shí)驗(yàn)以舵機(jī)位置伺服系統(tǒng)為辨識(shí)對(duì)象,其最大輸出角位移是±45°。根據(jù)神經(jīng)網(wǎng)絡(luò)隱層神經(jīng)元數(shù)量的選擇規(guī)則和電液位置伺服系統(tǒng)的階數(shù)及特點(diǎn),選用基于FPGA的三層改進(jìn)的遞歸模糊神經(jīng)網(wǎng)絡(luò)對(duì)舵機(jī)位置伺服系統(tǒng)進(jìn)行在線(xiàn)辨識(shí)。以計(jì)算機(jī)控制系統(tǒng)的控制電壓值作為神經(jīng)網(wǎng)絡(luò)的輸入,舵機(jī)馬達(dá)的輸出作為神經(jīng)網(wǎng)絡(luò)的期望值。采用正向動(dòng)力學(xué)辨識(shí)結(jié)構(gòu)如圖4所示。
文中數(shù)字系統(tǒng)采用NI PXIe系列控制器和板卡,其中的FPGA板卡為NI PXI-7852R,是Xilinx公司推出的Virtex-5 LX50系列。整套硬件辨識(shí)系統(tǒng)如圖5所示。
Virtex-5LX50 FPGA性能優(yōu)越,資源豐富,具有7 200個(gè)可編程邏輯模塊,每個(gè)模塊中具有4個(gè)查找表和4個(gè)觸發(fā)器,并且使用雙六輸入查找表。但實(shí)現(xiàn)三層遞歸模糊神經(jīng)網(wǎng)絡(luò)仍需要對(duì)程序進(jìn)行優(yōu)化,減少硬件資源的使用,提高系統(tǒng)的辨識(shí)效率。其次,將編譯成功的二進(jìn)制文件下載到硬件7852R中,完成下位機(jī)程序的執(zhí)行。最后,上下位機(jī)通過(guò)DMA FIFO進(jìn)行通信,用戶(hù)通過(guò)HOST VI實(shí)現(xiàn)人機(jī)交互、在線(xiàn)監(jiān)測(cè)、數(shù)據(jù)記錄等功能,從而完成整套系統(tǒng)的開(kāi)發(fā)。
在舵機(jī)位置伺服系統(tǒng)輸出方波和三角波的情況下分別進(jìn)行模型辨識(shí)實(shí)驗(yàn)。圖6所示為方波跟蹤時(shí)的實(shí)驗(yàn)輸出與辨識(shí)結(jié)果,圖7所示為三角波跟蹤時(shí)的實(shí)驗(yàn)輸出與辨識(shí)結(jié)果。
由圖7和圖8可知:三層OFRFNN對(duì)位置伺服系統(tǒng)的學(xué)習(xí)速度快、辨識(shí)精度高、穩(wěn)定性強(qiáng)。主要原因是模糊邏輯適于表達(dá)模糊和定性知識(shí),推理方式類(lèi)似于人的思維模式,神經(jīng)網(wǎng)絡(luò)具有自學(xué)習(xí)、自適應(yīng)的能力,吸收二者的長(zhǎng)處在模型辨識(shí)中具有更好的性能。并且在靜態(tài)結(jié)構(gòu)的基礎(chǔ)上引入隱層和輸出層的反饋結(jié)構(gòu),使得OFRFNN每一時(shí)刻系統(tǒng)的輸出不僅與由當(dāng)前時(shí)刻輸入有關(guān),還與過(guò)去的數(shù)值有關(guān),反映了系統(tǒng)的動(dòng)態(tài)過(guò)程,且運(yùn)算速度較快,更適合于非線(xiàn)性動(dòng)態(tài)系統(tǒng)的辯識(shí)。
實(shí)驗(yàn)中,測(cè)量基于FPGA的OFRFNN對(duì)舵機(jī)位置系統(tǒng)辨識(shí)過(guò)程的運(yùn)行時(shí)間,即在數(shù)據(jù)采集之前和系統(tǒng)辨識(shí)輸出之后分別加入定時(shí)器,測(cè)得從數(shù)據(jù)采集到系統(tǒng)辨識(shí)權(quán)值調(diào)整再到數(shù)據(jù)輸出的執(zhí)行時(shí)間僅為19 μs,并且辨識(shí)周期穩(wěn)定無(wú)波動(dòng),完全滿(mǎn)足在線(xiàn)系統(tǒng)辨識(shí)高實(shí)時(shí)性、高確定性的要求。
文中研究了基于FPGA的遞歸模糊神經(jīng)網(wǎng)絡(luò)對(duì)舵機(jī)位置伺服系統(tǒng)的辨識(shí)。首先給出了一種遞歸模糊神經(jīng)網(wǎng)絡(luò)和動(dòng)態(tài)BP學(xué)習(xí)算法,其次利用LabVIEW開(kāi)發(fā)環(huán)境實(shí)現(xiàn)基于FPGA的非線(xiàn)性系統(tǒng)辨識(shí)以及運(yùn)行在Windows上的人機(jī)交互數(shù)據(jù)管理等,最后將編譯無(wú)誤的FPGA程序下載到硬件PXI-7852R中完成整套在線(xiàn)辨識(shí)數(shù)字系統(tǒng)的開(kāi)發(fā)。利用FPGA的靈活性、高可靠性和可定制性,結(jié)合LabVIEW圖形化編程,使系統(tǒng)設(shè)計(jì)簡(jiǎn)單靈活、可靠性高、實(shí)用性強(qiáng)。通過(guò)實(shí)驗(yàn)證明,采用動(dòng)態(tài)BP算法的RFNN具有辨識(shí)精度高、適應(yīng)性強(qiáng)、網(wǎng)絡(luò)學(xué)習(xí)算法收斂快等優(yōu)點(diǎn),而且OFRFNN在FPGA上實(shí)現(xiàn)完全并行的運(yùn)行方式極大提高了系統(tǒng)辨識(shí)速度,滿(mǎn)足高實(shí)時(shí)、高確定系統(tǒng)在線(xiàn)辨識(shí)的要求。因此,基于FPGA的遞歸模糊神經(jīng)網(wǎng)絡(luò)為非線(xiàn)性動(dòng)態(tài)系統(tǒng)辨識(shí)的應(yīng)用提供了一種新方向。