《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 基于SoPC的神經(jīng)網(wǎng)絡(luò)速度控制器的實(shí)現(xiàn)

基于SoPC的神經(jīng)網(wǎng)絡(luò)速度控制器的實(shí)現(xiàn)

2009-03-24
作者:李利歌,閻保定,孫立功

??? 摘 要: 一種基于SoPC的神經(jīng)網(wǎng)絡(luò)速度控制器的設(shè)計(jì)方案。速度控制器采用神經(jīng)網(wǎng)絡(luò)參數(shù)辨識(shí)自適應(yīng)控制,以現(xiàn)場(chǎng)可編程門陣列(FPGA)為硬件平臺(tái),用Nios II軟核處理器作為上位機(jī),實(shí)現(xiàn)一個(gè)完整的速度控制器的片上可編程系統(tǒng)(SoPC)。實(shí)驗(yàn)結(jié)果表明,該控制系統(tǒng)能夠滿足現(xiàn)代速度控制系統(tǒng)高速度、高精度的要求。
??? 關(guān)鍵詞: 神經(jīng)網(wǎng)絡(luò);速度控制;片上可編程系統(tǒng)

?

??? 由于時(shí)變非線性和強(qiáng)耦合的控制系統(tǒng)還沒有精確的數(shù)學(xué)模型,因而傳統(tǒng)的依賴被控對(duì)象數(shù)學(xué)模型的控制策略及其控制系統(tǒng)的封閉式結(jié)構(gòu)很難對(duì)其實(shí)施有效控制。神經(jīng)網(wǎng)絡(luò)控制能夠很好地克服系統(tǒng)中模型參數(shù)的變化和非線性等不確定因素影響[1],并且隨著可編程片上系統(tǒng)SoPC和大規(guī)模現(xiàn)場(chǎng)可編程門陣列FPGA的出現(xiàn),為神經(jīng)網(wǎng)絡(luò)控制器的硬件實(shí)現(xiàn)提供了新的載體[2]
??? 本文以Altera FPGA及內(nèi)含的一個(gè)Nios II嵌入式軟核處理器作為上位機(jī)來研究機(jī)械手臂直流電機(jī)速度控制器的片上可編程系統(tǒng)(SoPC)。根據(jù)模塊化的設(shè)計(jì)思想,采用Verilog HDL語言,將神經(jīng)網(wǎng)絡(luò)控制器和其他電路模塊在FPGA芯片內(nèi)以硬件方式實(shí)現(xiàn)。
1 系統(tǒng)總體結(jié)構(gòu)
??? 系統(tǒng)控制部分采用Altera公司的CycloneII EP2C35芯片,取代了傳統(tǒng)的單片機(jī)或DSP。FPGA與單片機(jī)最大的區(qū)別是它的并行性,F(xiàn)PGA能夠并行地采集、處理和輸出信號(hào),是實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)并行運(yùn)算的關(guān)鍵,對(duì)提高系統(tǒng)的運(yùn)行速度起了很大的作用。其FPGA芯片內(nèi)集成的Nios II軟核處理器作為上位機(jī),根據(jù)末端執(zhí)行器的速度,采用C++語言進(jìn)行坐標(biāo)變換和軌跡規(guī)劃,定時(shí)向伺服控制系統(tǒng)發(fā)出控制命令和運(yùn)行參數(shù)。系統(tǒng)總體框圖如圖1所示。

?


2 神經(jīng)網(wǎng)絡(luò)速度控制器
2.1 神經(jīng)網(wǎng)絡(luò)參數(shù)辨識(shí)自適應(yīng)控制的基本原理

?? ?用作自適應(yīng)控制器的BPNNC,輸入為電機(jī)給定轉(zhuǎn)速y與實(shí)際轉(zhuǎn)速yf相比較得到的轉(zhuǎn)速誤差e及其變化率ec,輸出為PWM的控制信號(hào)Vp(k)。用作參數(shù)辨識(shí)的BPNNI的輸入為驅(qū)動(dòng)系統(tǒng)的實(shí)際輸入(即BPNNC的輸出值Vp)和電機(jī)實(shí)際轉(zhuǎn)速yf,輸出為辯識(shí)的系統(tǒng)輸出y*,y*為預(yù)測(cè)轉(zhuǎn)速,利用y*代替yf,用作RBFNNC的在線訓(xùn)練。圖2為參數(shù)辨識(shí)自適應(yīng)控制方框圖。

?


??? 本文所用的兩個(gè)BPNN都是雙輸入單輸出網(wǎng)絡(luò),離線訓(xùn)練的樣本均通過實(shí)驗(yàn)方法獲得。NNC的輸入樣本向量為Xci={e(k),ec(k)},輸出樣本向量為Yci={Vp(k)};NNI的輸入樣本向量XIi={Vp(k-1),yf(k-1)},輸出樣本向量YIi={y*(k)}。網(wǎng)絡(luò)參數(shù)的學(xué)習(xí)分兩步進(jìn)行:先在離線訓(xùn)練中確定隱層節(jié)點(diǎn)的個(gè)數(shù)及其各層的網(wǎng)絡(luò)連接初始權(quán)值,再通過在線訓(xùn)練自適應(yīng)地調(diào)整權(quán)值。
??? 兩個(gè)BPNN都采用三層網(wǎng)絡(luò)。輸入層結(jié)點(diǎn)只起信號(hào)傳輸作用,隱含層和輸出層神經(jīng)元的激活函數(shù)采用Sigmoid函數(shù):
????
網(wǎng)絡(luò)訓(xùn)練采用負(fù)梯度下降的誤差反向傳播算法。
???
2.2 BPNN在FPGA中的硬件可重構(gòu)實(shí)現(xiàn)
??? 目前基于SRAM工藝的FPGA具有易失性的特點(diǎn),每次重新加電后FPGA都要重配置,才能使其進(jìn)入工作狀態(tài)。配置信息通常存放在片外存儲(chǔ)器中,因此導(dǎo)致FPGA器件的資源配置可改變特性剛好可以滿足由上述可知的BP網(wǎng)絡(luò)的結(jié)構(gòu)可重構(gòu)、激活函數(shù)可重構(gòu)和學(xué)習(xí)算法可重構(gòu)的要求。
??? 從計(jì)算的角度考慮,BP網(wǎng)絡(luò)的算法可以分為三個(gè)步驟,即前向傳播、誤差反向傳播以及權(quán)值更新。但是考慮到神經(jīng)網(wǎng)絡(luò)的復(fù)雜性和設(shè)計(jì)文件的復(fù)用性,BP神經(jīng)網(wǎng)絡(luò)的硬件實(shí)現(xiàn)必須解決與算法有關(guān)的運(yùn)算速度、計(jì)算精度、并行性和可存儲(chǔ)性等問題。本文本著層次化、模塊化的原則,采用由VerilogHDL硬件描述語言輸入的自上而下的設(shè)計(jì)方法,把BP神經(jīng)網(wǎng)絡(luò)分為前向運(yùn)算模塊、誤差反傳及權(quán)值調(diào)整模塊、權(quán)值存儲(chǔ)模塊、權(quán)值分配模塊等幾大功能模塊。系統(tǒng)結(jié)構(gòu)如圖3。

?


??? 將上述各個(gè)BP網(wǎng)絡(luò)運(yùn)算模塊組合后就可以實(shí)現(xiàn)一整套人工神經(jīng)網(wǎng)絡(luò)。但是僅僅將這些模塊簡(jiǎn)單連在一起并不能讓網(wǎng)絡(luò)進(jìn)行工作或訓(xùn)練,還必須精確設(shè)定在每一個(gè)時(shí)鐘沿對(duì)每一個(gè)模塊發(fā)出正確的使能信號(hào),使每一個(gè)模塊處在工作狀態(tài)或者停滯狀態(tài),并且還必須有合適的地址信號(hào)發(fā)生器在正確的時(shí)間產(chǎn)生正確的地址信號(hào),使每一次數(shù)據(jù)都能從正確位置讀出并寫入正確的位置。本文根據(jù)BP算法的運(yùn)算規(guī)則設(shè)計(jì)控制模塊,并且在整個(gè)系統(tǒng)中采用一個(gè)共用的地址發(fā)生器??刂颇K有七個(gè)輸出信號(hào),分別是:前向模塊使能信號(hào)、學(xué)習(xí)模塊使能信號(hào)、片內(nèi)RAM及地址產(chǎn)生模塊使能信號(hào)、片內(nèi)RAM寫入控制信號(hào)wen、片內(nèi)RAM讀出控制信號(hào)ren、片外存儲(chǔ)器寫控制信號(hào)save、片外存儲(chǔ)器讀控制信號(hào)load。因此最后的控制器可以使網(wǎng)絡(luò)進(jìn)行離線訓(xùn)練時(shí)將前向模塊、誤差反傳模塊和相應(yīng)的控制模塊同時(shí)配置到FPGA中進(jìn)行網(wǎng)絡(luò)訓(xùn)練。當(dāng)訓(xùn)練好的網(wǎng)絡(luò)正常工作時(shí),只要在FPGA中配置前向模塊和相應(yīng)的控制模塊就可以高速運(yùn)行該神經(jīng)網(wǎng)絡(luò)。邏輯工作流程如圖4所示。

?


2.3 BP網(wǎng)絡(luò)控制器的仿真結(jié)果
??? 文獻(xiàn)[6]中,通過對(duì)一些典型應(yīng)用的研究和分析發(fā)現(xiàn),16位定點(diǎn)數(shù)是不削弱神經(jīng)網(wǎng)絡(luò)能力的最小精度要求。為避免運(yùn)算規(guī)模過于龐大和節(jié)約芯片資源,本設(shè)計(jì)對(duì)32位的輸出數(shù)據(jù)進(jìn)行了截尾操作,僅取32位中的前16位。
??? 源代碼通過功能仿真和時(shí)序仿真測(cè)試后綜合生成網(wǎng)表文件,最后在Altera公司的Cyclone II EP2C35器件中實(shí)現(xiàn)。BP網(wǎng)絡(luò)控制器的QuartusⅡ仿真結(jié)果如圖5所示。由圖5可知經(jīng)過多次訓(xùn)練后系統(tǒng)輸出值f越來越接近于給定值t,誤差err變小,小于給定誤差。

?


3 應(yīng)用舉例
??? 根據(jù)前面的仿真結(jié)果,把神經(jīng)網(wǎng)絡(luò)速度控制器應(yīng)用在一個(gè)機(jī)械臂上,具體實(shí)驗(yàn)與結(jié)果如圖6。

?


??? 如圖6,運(yùn)動(dòng)控制系統(tǒng)模塊接收到速度給定信號(hào)和命令后進(jìn)行速度調(diào)節(jié)。速度調(diào)節(jié)器的輸出就是PWM脈寬調(diào)制電路的控制信號(hào),之后產(chǎn)生PWM信號(hào)傳給伺服電機(jī)驅(qū)動(dòng)器驅(qū)動(dòng)電機(jī)。速度反饋信號(hào)由裝在電機(jī)軸上的光電編碼器產(chǎn)生。為了提高反饋信號(hào)的分辨率,對(duì)光電編碼器的輸出信號(hào)進(jìn)行倍頻,從而提高了編碼器的分辨率,也就提高了速度反饋信號(hào)的分辨率。速度調(diào)節(jié)采用神經(jīng)網(wǎng)絡(luò)參數(shù)辨識(shí)自適應(yīng)控制。
??? 驅(qū)動(dòng)對(duì)象是一臺(tái)直流力矩電機(jī),輸入電壓為DC27V,額定電流2.5A,最大空載轉(zhuǎn)速600r/min。圖7為空載狀態(tài)下轉(zhuǎn)速指令由0上升到 110 r/min的階躍輸入時(shí)的系統(tǒng)跟蹤結(jié)果。由圖7可知,系統(tǒng)能快速響應(yīng)給定轉(zhuǎn)速的變化,有較好的跟蹤能力和穩(wěn)定性。

?


??? 本文運(yùn)用神經(jīng)網(wǎng)絡(luò)控制方法并且通過FPGA中的硬件實(shí)現(xiàn)速度反饋調(diào)控電路,采用C++語言在FPGA片內(nèi)集成的Nios Ⅱ軟核處理器中進(jìn)行坐標(biāo)變換和軌跡規(guī)劃,構(gòu)成一個(gè)完整的機(jī)械臂關(guān)節(jié)速度控制器的SoPC系統(tǒng)。此方案使控制器系統(tǒng)的集成度變高,增加了系統(tǒng)的抗干擾性和穩(wěn)定性,同時(shí)提高了系統(tǒng)調(diào)試效率和控制精度,是現(xiàn)代機(jī)器人伺服系統(tǒng)向模塊化、智能化發(fā)展的方向。
參考文獻(xiàn)
[1] 魏海坤.神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的理論與方法[M].北京:國(guó)防工業(yè)出版社,2005.
[2] 李昂,王沁,李占才,等.基于FPGA的神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)方法[J].北京科技大學(xué)學(xué)報(bào),2007,29(1):90-95.
[3] 范崢,劉宏飛,戚新波.交流伺服電動(dòng)機(jī)神經(jīng)PID自適應(yīng)控制器的研究與開發(fā)[J].微特電機(jī),2006(8).
[4] 周兆勇,李鐵才,高橋敏男.基于矢量控制的高性能交流電機(jī)速度伺服控制器的FPGA實(shí)現(xiàn)[J].中國(guó)電機(jī)工程學(xué)報(bào),2004,24(5):168-173.
[5] 王金明.Verilog HDL程序設(shè)計(jì)教程[M].北京:電子工業(yè)出版社,2005.
[6] HIKAWA H.A new digital pulse-mode neuron with adjustable activation function[J].IEEE Trans Neural Netw,2003,14(1):236-42.
[7] 夏長(zhǎng)亮.基于RBF神經(jīng)網(wǎng)絡(luò)的超聲波電機(jī)參數(shù)辨識(shí)與模型參考自適應(yīng)控制[J].中國(guó)電機(jī)工程學(xué)報(bào),2004(7):117-121.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。