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