基于Wujian100多功能電機控制系統的研究*
作者簡介:陳岳海(2000—),廖墀坤、張涵(1999—),陳少真、陳星如(1998—),男,主要從事集成電路設計、自然語言處理、信號處理的研究、或器件仿真等的學習與研究。
摘要:本文提出基于Wujian100 開源SoC平臺實現一個多功能、高精度的步進電機控制系統。本系統使用自適應BP神經網絡PID算法,可動態調節控制參數,提高系統的穩定性。搭配梯形加減速、SPTA以及電機速度控制算法,實現對步進電機的旋轉角度和速度的控制。搭載溫濕度傳感器、電壓電流檢測模塊、電機表面溫度測量裝置等來保證電機工作環境的適宜性。本系統在基于對單個電機精確控制的基礎上實現了對三軸電機的多功能控制,包括角度和速度。此外為實現本地離線和遠程在線控制,系統通過串口觸摸屏、WiFi傳輸模塊,搭配阿里云物聯網平臺,設計了多種人機控制界面,均可進行多功能控制。
0 引言
隨著物聯網時代的到來以及自動控制領域的發展,以智能化為代表的機器人在社會的各行各業影響到我們,并發揮了神奇的力量。在各領域中,涉及自動化控制的系統,均與電機的控制相關,尤其在高精度系統中,要求電機控制精度非常高。由此,研究高精度、高效率、成本低的電機控制系統非常必要。
Wujian100 SoC 平臺的開發,自適應BP 神經網絡PID、梯形加減速、SPTA、電機速度閉環控制算法。最終實現了控制系統的搭建,包括硬件結構、軟件結構及系統仿真和調試。
1 電機控制系統總體設計方案
1.1 電機控制方式
本系統采用57 式兩相四線步進電機,使用DM860電機驅動器,該驅動器可實現400~40 000 細分,在本系統中使用1 600 細分的精度,驅動器有三種控制信號:PUL、DIR、ENA。PUL 可控制步進電機的轉動,每一個步進電機都有固定的步距角,即一個脈沖信號電機會運行一步,通過細分技術可以改變電機轉動一圈所需的步數,即改變所需脈沖個數[1]。在細分數不變的情況下,PUL 的頻率決定了電機轉動的速率,PUL 的脈沖個數決定了電機運行的步數。DIR 信號決定了電機運行的方向,ENA 決定了電機的鎖定狀態,在通電后,電機會被鎖定不可擰動,只能通過ENA 信號解除鎖定狀態。因此,通過調整PUL 脈沖信號的個數和頻率,即可以完成對步進電機的控制,本系統的電機控制研究均基于此原理。
1.2 電機控制系統總體方案
本步進電機控制系統基于Wujian100 綜合、實現、生成的Bit 流文件,配置Xilinx 的A7200T 的FPGA 開發板,搭配57 步進電機開發,以自適應BP 神經網絡PID 算法為核心算法。搭載WiFi 傳輸模塊、Usart-GPU串口屏等模塊,實現對步進電機的加減速、正反轉以及角度的精確控制,并可通過繼電器模塊實現開閉環的控制選擇。在應用擴展上,基于該系統使用三個步進電機,實現三軸控制。控制算法共采用了開環和閉環兩套控制算法,分別是SPTA 和BP 神經網絡PID 算法。人機交互控制界面是將阿里云物聯網平臺、安卓APP、串口觸摸屏有機地結合在一起,可實現云端互聯,通過APP操縱電機,或者直接利用串口屏進行操縱(如圖1)。
圖1 電機控制系統實物圖
2 控制系統硬件平臺
2.1 電機控制單元的選擇
主控平臺選擇面向AIoT 的國內首個開源SoC 平臺——Wujian100,搭載基于RISC-V CPU 架構的玄鐵902 處理器,提供了UART、SPI、PWM 等多種外設以及驅動,并在AHB、APB 總線上提供了dummy 接口,可實現將自主設計的IP 模塊集成到該SoC 平臺。
圖2 控制單元俯視圖
2.2 閉環控制系統的搭建
本系統的電機運動信號采集使用龍邱mini4096 線增量式光電編碼器,輸出AB 相正交信號。該編碼器在10 00 rpm 的高速條件下不會發生丟步情況,且轉動一圈AB相均會輸出4 096 個脈沖,則精度達到了0.087 9°/脈沖,當對脈沖進行4 倍頻,脈沖計數會達到16 384 個,精度會達到0.021 9°/ 脈沖,滿足實現搭建高精度位置、速度可控的電機控制系統。
2.3 外圍傳感器構成的電機保護系統
步進電機控制系統中使用DHT11 溫濕度模塊、高精度電壓電流檢測模塊和磁吸式K 型熱電偶電機測溫模塊等傳感器,以組成電機保護系統。溫/ 濕度傳感器主要負責對環境進行監測,判斷環境是否滿足電機工作條件。高精度電壓、電流檢測模塊用于檢測電機在工作狀態時的電壓電流值,判斷電機是否工作在正常狀態。磁吸式K 型熱電偶測溫模塊則用于檢測在電機工作時的表面溫度,防止電機溫度過高。綜上,多個傳感器有機結合在一起,保證電機的安全運行。
2.4 三軸電機擴展控制
本系統在基于單軸電機控制的基礎上,進行三軸電機的擴展開發應用[2],使用三個步進電機,組成仿機械臂結構,三個電機分別對應控制X、Y、Z 軸,三個軸的控制是互相獨立的,但又可作為一個整體來控制,使用三套不同的控制算法,位置控制分別是自適應PID 算法、增量式PID 算法和SPTA 算法,速度控制算法均采用閉環速度PID。可在串口觸摸屏、阿里云IoT Studio網頁端、安卓APP 端實現對三軸電機的各種控制。
3 SoC系統設計
3.1 內存擴展
在實際應用中, 為了防止Wujian100 的內存不足,在步進電機控制系統項目初期對Wujian100 內存進行了擴展,在AHB 總線上預留的兩個dummy 接口(imemdummy 和dmemdummy) 上來擴展ISRAM 及DSRAM,對應的設備是s1 和s5,防止因平臺內存不足而產生其他問題。
3.2 正交解碼脈沖計數器IP設計
本次設計是輸入AB 相信號的所有邊沿都會進行采樣,首先對輸入的信號進行數字濾波,然后采用正交信號的四倍頻技術,因此處理后只需要判斷當前兩個信號組成的數字值與上一次是否相等,如果不等便需要進行判斷,首先得出當前轉動方向,然后與設定方向比較,判斷計數器是進行加運算還是減運算。最后通過功能仿真,編寫IP 模塊接口,將其集成到Wujian100 的APB總線上,便可以通過總線訪問IP 內部寄存器。
圖3 IP模塊接口
4 控制算法設計
4.1 BP神經網路自適應調整PID算法
基于BP 神經網絡的PID 控制系統結構如圖4 所示。控制器由兩部分組成:①經典的PID 控制器:直接對被控對象進行閉環控制,并且三個參數Kp、Ki、Kd 為在線調整方式[3]。② BP 神經網絡:根據系統的運行狀態,調節PID 控制器的參數,以其達到某種性能指標的最優化,即使輸出層神經元的輸出狀態對應于PID 控制器的三個可調參數Kp、Ki、Kd,通過神經網絡的自身學習、加權系數調整,從而使其穩定狀態對應于某種最優控制規律下的PID 控制器參數[4]。
圖4 BP神經網絡PID算法結構
4.2 SPTA加減速算法
SPTA 算法是以時間計算為中心,根據時間來計算運動步數相關參數,它的做法是將步進電機的運動時間分割成若干個合適的時間片段,在每個時間片段計時達到后,它都將速度參數加到位置參數上,如果位置參數溢出,則輸出一個脈沖,控制步進電機運行一步,速度參數根據加速度參數和時間的改變而改變。隨著時間推移,速度參數越來越大,位置參數溢出頻率越來越高[5],則步進電機的運行頻率也越來越高。
4.3 電機速度控制算法
速度控制算法基于閉環控制,系統設定20 ms 采集一次編碼器的計數值。利用M 法測速,可以得出當前電機的轉速。再通過經典的速度環控制,使電機達到對應的速度。速度控制可實現達到指定速度、停止運行以及實現電機運行過程中的反轉等功能,其中也包括了三軸電機的控制,在反轉的過程,首先讓電機停止,然后繼續反向加速到指定速度。
圖5 豐富的控制界面
5 總結與展望
本文從需求出發,介紹了一個基于Wujian100 平臺的步進電機控制系統。首先介紹研究背景,接著以整體系統的功能實現為基礎介紹電機的整體方案設計,再以電機系統結構為基礎介紹SoC 系統、軟件系統的設計。根據整篇文章的介紹,可知系統采用了基于BP神經網絡自適應PID 算法,搭配SPTA、梯形加減速等工業界使用較多的步進電機控制算法。難點主要是在Wujian100 平臺上搭建了一個神經網絡,通過誤差反向傳播,適時調整權值,實現對PID 的參數Kp,Ki,Kd的自適應調節。同時結合閉環控制系統,實現了對單軸、三軸電機的高精度速度控制,并搭配阿里云物聯網平臺,設計多種人機控制方案,使整個系統控制方式更加豐富。到目前為止,一個高精度、反應速度快的步進電機系統基本完成。
但是由于只是實現了基本功能,所以還有很多后續研究工作可以開展,例如后續將繼續完善拓撲結構,使步進電機的反應更加靈敏,提高精度,以及完善APP。機械控制涉及生活的方方面面,本系統有較好的移植性,是機械精準度控制不可缺失的一部分,可移植到如云臺、機械臂、智能機器人等精確控制的領域中,后續的開發工作我們也將繼續進行下去。
參考文獻:
[1] 徐建國.步進電機智能控制的設計與實現[J].電子技術與軟件工程,2016(22):139.
[2] 李俊敏.多軸運動實驗平臺的控制系統研究[J].現代制造技術與裝備,2017(7):145-146
[3] 周建新,熊延輝.基于神經網絡的蓄熱式加熱爐的溫度控制研究
[J].科技風,2019(8):165.
[4] 陳忠華,李雷,趙力.基于BP神經網絡的自適應補償控制方法[J].計算機仿真,2012(7):202-204.
[5] 王巖.基于FPGA的SpTa自適應電機控制算法[J].科技資訊,2018(25):11-12.
(本文來源于《電子產品世界》雜志社2021年1月期)
評論