基于神經網絡電機 速度控制器的SOPC系統(tǒng)
作為機器人執(zhí)行機構的伺服系統(tǒng),其伺服性能和工作的可靠性對機器人的整體工作性能起著決定性的作用;但是傳統(tǒng)的控制方法及其封閉式結構,已經不能滿足現(xiàn)代伺服控制的要求。神經網絡控制由于能夠很好地克服機器人伺服系統(tǒng)中模型參數的變化和非線性等不確定因素的影響,很適合用于時變非線性、強耦合的工業(yè)機器人控制系統(tǒng)中。可編程片上系統(tǒng)SOPC和大規(guī)模現(xiàn)場可編程門陣列FPGA的出現(xiàn),為神經網絡控制器的硬件實現(xiàn)提供了新的載體。
本文以Altera FPGA及內含的一個Nios II嵌入式軟核處理器作為上位機來研究機械手臂直流電機速度伺服控制器的片上可編程系統(tǒng)(SOPC)。根據模塊化的設計思想,采用Verilog HDL語言,將神經網絡控制器和其他電路模塊在FPGA芯片內以硬件方式實現(xiàn)。
1 系統(tǒng)總體結構
控制部分用A1trea公司Cyclone II EP2C35芯片取代了傳統(tǒng)的單片機或DSP。FPGA與單片機最大的區(qū)別就在于它的并行性,能夠并行地采集、處理和輸出信號,是實現(xiàn)神經網絡并行運算的關鍵,為提高整個系統(tǒng)的運行速度起了很大的作用。其FPGA芯片內集成的Nios II軟核處理器作為上位機,根據末端執(zhí)行器的速度,采用C++語言進行坐標變換和軌跡規(guī)劃,定時向伺服控制系統(tǒng)發(fā)出控制命令和運行參數。系統(tǒng)總體框圖如圖1所示。
2 電機運動控制模塊的組成
伺服控制系統(tǒng)模塊接收到速度給定信號和命令后進行速度調節(jié),如圖2所示。速度調節(jié)器的輸出就是PWM脈寬調制電路的控制信號,之后產生PWM信號傳給伺服電機驅動器驅動電機。速度反饋信號由裝在電機軸上的光電編碼器產生。為了提高反饋信號的分辨率,對光電編碼器的輸出信號進行倍頻,從而提高了編碼器的分辨率,也就提高了速度反饋信號的分辨率。速度調節(jié)采用神經網絡參數辨識自適應控制。
3 參數辨識自適應控制系統(tǒng)
用作自適應控制器的BPNNC,輸入為電機給定轉速y與實際轉速yf相比較得到的轉速誤差e及其變化率ec,輸出為PWM的控制信號Vp(k)。用作參數辨識的BPN―NI的輸入為驅動系統(tǒng)的實際輸入(即BPNNC的輸出值Vp)和電機實際轉速yf,輸出為辨識的系統(tǒng)輸出y*。y*為預測轉速,用y*代替yf,用作RBFNNC的在線訓練。圖3為參數辨識自適應控制框圖。
2個BPNN都是兩輸入單輸出網絡,離線訓練的樣本均通過實驗的方法獲得。NNC的輸入樣本向量為Xci=(e(k),ec(k)},輸出樣本向量為Yci={Vp(k)}。NNI的輸入樣本向量XIi=(Vp(k一1),yf(k一1)},其輸出樣本向量為YIi={y*(k)}。網絡參數的學習分為兩步進行:先在離線訓練中確定隱層節(jié)點的個數及其各層的網絡連接初始權值,再通過在線訓練自適應地調整權值。
2個BPNN都采用3層的網絡。輸入層節(jié)點只起信號傳輸的作用,隱含層和輸出層神經元的激活函數采用Sigmoid函數:
網絡的訓練采用負梯度下降的誤差反向傳播算法。
當輸入一個樣本時,每個神經元從前到后依次計算:
4 硬件電路的FPGA實現(xiàn)
4.1 BPNN在FPGA中的硬件可重構實現(xiàn)
目前基于SRAM工藝的FPGA具有易失性的特點,每次重新加電FPGA都要重配置,才能使FPGA進人工作狀態(tài)。配置信息通常存放在片外存儲器中,導致FPGA器件的資源配置可改變特性剛好可以滿足由上述可知的BP網絡的結構可重構、激活函數可重構和學習算法可重構的要求。
從計算的角度考慮,BP網絡的算法可以劃分成3個步驟,即前向傳播、誤差反向傳播以及權值更新。但是考慮到神經網絡的復雜性和設計文件的復用性,BP神經網絡的硬件實現(xiàn)必須解決與算法有關的運算速度、計算精度、并行性和可存儲性等問題。本著層次化、模塊化的原則,采用由Verilog HDL硬件描述語言輸入的自上而下的設計方法,把BP神經網絡分為前向運算模塊、誤差反傳及權值調整模塊、權值存儲模塊、權值分配模塊等幾個大的功能模塊。系統(tǒng)結構框圖如圖4所示。
將各個BP網絡運算模塊進行組合就可以實現(xiàn)一整套人工神經網絡,但是僅僅將這些模塊簡單連在一起并不能讓網絡進行工作或訓練。還必須精確設定在每一個時鐘沿對每一個模塊發(fā)出正確的使能信號,使每一個模塊處于工作狀態(tài)或者停滯狀態(tài),并且還必須要有合適的地址信號發(fā)生器在正確的時間產生正確的地址信號,使每一次數據都能從正確的位置讀出并寫入正確的位置。本文根據BP算法的運算規(guī)則設計控制模塊,并且采用一個共用的地址發(fā)生器,控制模塊有7個輸出信號,分別是前向模塊使能信號、學習模塊使能信號、片內RAM及地址產生模塊使能信號、片內RAM寫入控制信號wen、片內RAM讀出控制信號ren、片外存儲器寫控制信號save、片外存儲器讀控制信號load。最后的控制器可以使網絡進行離線訓練時將前向模塊、誤差反傳模塊和相應的控制模塊同時配置到FPGA中進行網絡訓練;而當訓練好的網絡正常工作時,只在FPGA中配置前向模塊和相應的控制模塊就可以高速運行該神經網絡。工作流程如圖5所示。
4.2 其他主要模塊在FPGA中的實現(xiàn)
三角波脈寬調制器(PWM)采用等腰三角形作為載波,將輸入信號與三角波信號比較產生。測速模塊、鑒相倍頻電路模塊可根據其原理設置相應的乘法器和除法器即可實現(xiàn)。
5 實驗結果
參考文獻通過對一些典型應用的研究和分析,認為16位定點數是不削弱神經網絡能力的最小精度要求,并且為避免運算規(guī)模過于龐大和節(jié)約芯片資源,所以對32位的輸出數據進行了截尾操作,僅取32位中的前16位。
速度伺服控制器電路中的所有模塊均用硬件語言Verilog HDL進行描述,在源代碼通過功能仿真和時序仿真測試后,再綜合生成網表文件,最后在Altera公司的Cyclone II EP2C35器件中實現(xiàn),整個設計消耗的資源已經接近飽和。BP網絡控制器的QuartusII仿真結果如圖6所示。由圖可知經過多次訓練后系統(tǒng)輸出值f接近于給定值t,誤差err變小[llg2],小于給定誤差。
驅動對象是一臺直流電機,輸入電壓是DC 27 V,額定電流為2.5 A,最大空載轉速為600 r/min。圖7為空載狀態(tài)下轉速指令由O上升到1lO r/min階躍輸入時的系統(tǒng)跟蹤結果。由圖7可知,系統(tǒng)能很快地響應給定轉速的變化,有較好的跟蹤能力和穩(wěn)定性。
結 語
運用神經網絡控制的方法,在FPGA中硬件實現(xiàn)速度反饋調控電路,采用C++語言在FPGA片內集成的NiosII軟核處理器內進行坐標變換和軌跡規(guī)劃,構成一個完整的機械臂關節(jié)速度控制器的SOPC系統(tǒng)。通過實驗結果可知,此控制方案進一步提高了速度伺服系統(tǒng)的精度,增加了系統(tǒng)的集成度、抗干擾性和穩(wěn)定性,同時提高了系統(tǒng)的調試效率,是現(xiàn)代機器人伺服系統(tǒng)向模塊化、智能化發(fā)展的方向。
伺服電機相關文章:伺服電機工作原理
評論