1 引言
工業(yè)CT 機運動控制系統(tǒng)往往需要對多個軸的運動進行精確、實時控制,在以往的系統(tǒng)中多采用工控機+多塊板卡的結(jié)構(gòu)進行運動控制器的設(shè)計。隨著工業(yè)CT 機整體功能日趨復(fù)雜,整體系統(tǒng)對運動控制系統(tǒng)的體積、成本、功耗等方面的要求越來越苛刻。另一方面,運動控制系統(tǒng)控制的軸數(shù)越來越多、控制精度要求越來越高、控制對象的實時性要求越來越強。
現(xiàn)有的工控機+多塊板卡組成的控制系統(tǒng)逐漸呈現(xiàn)出運動控制方面的劣勢。ARM+FPGA 的硬件方案,將工控機從現(xiàn)有的運動控制系統(tǒng)中解放出來,取而代之的是體積小、功耗低、功能強的ARM 處理器。強大的嵌入式Linux 操作系統(tǒng)保證ARM 處理器的功能可以發(fā)揮到最佳。
2 硬件系統(tǒng)關(guān)鍵技術(shù)設(shè)計與實現(xiàn)
本系統(tǒng)采用ARM+FPGA的結(jié)構(gòu)進行運動控制系統(tǒng)的設(shè)計,與目前應(yīng)用中常見的IPC(IndustrialPersonal Computer)+板卡的運動控制系統(tǒng)相比具有以下優(yōu)點:
(1) 采用FPGA 完成運動控制細節(jié)任務(wù),實現(xiàn)硬件軟化的設(shè)計思想。即具有軟件可編程、可重構(gòu)的特性,又有硬件高性能、高可靠、高一致性的優(yōu)點。
(2) 采用嵌入式應(yīng)用方案與現(xiàn)有IPC+板卡結(jié)構(gòu)相比無論從體積、成本、還是性能方面相比都具有較大的優(yōu)越性。
(3) FPGA 具有高速并行的執(zhí)行能力,系統(tǒng)的實時性能得到較大的提高。
(4) 將ARM 中操作底層硬件的驅(qū)動程序進行打包,方便應(yīng)用程序調(diào)用,可以較快完成用戶的二次開發(fā)。
2.1 硬件系統(tǒng)總體設(shè)計
工業(yè)CT 運動控制系統(tǒng)結(jié)構(gòu)如圖1 所示。該系統(tǒng)以Atmel 公司一款A(yù)RM9 核處理器AT91RM9200和Altera 公司的Cyclone 系列芯片EP1C6Q240C8 為核心。ARM9 作為主控芯片負責整個系統(tǒng)的控制,通過AHB[3]總線協(xié)調(diào)與FPGA 之間的數(shù)據(jù)交換,并將接收到的數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到工業(yè)控制計算機進行圖像的處理與重建。FPGA 則負責接收數(shù)據(jù)采集系統(tǒng)的串行數(shù)據(jù),并把其轉(zhuǎn)化成并行數(shù)據(jù)存入FPGA 的RAM 中,同時對ARM 發(fā)出中斷請求響應(yīng),通知ARM9 讀取。AT91RM9200、SDRAM、FLASH 以及電源等基本外圍電路構(gòu)成嵌入式Linux 運行的最小系統(tǒng),而FPGA 最小系統(tǒng)則由EPlC6Q240C8、時鐘電路、配置接口等組成。然后兩者通過高速AHB 總線進行連接,實現(xiàn)數(shù)據(jù)的快速傳輸。
圖1 工業(yè)CT 運動控制系統(tǒng)結(jié)構(gòu)圖
2.2 ARM 與FPGA 接口設(shè)計
在系統(tǒng)中ARM 作為通用處理器,用來實現(xiàn)系統(tǒng)任務(wù)的觸發(fā)、系統(tǒng)命令的發(fā)送和任務(wù)的調(diào)度等功能。
FPGA 作為ARM 的外設(shè),用來對ARM 經(jīng)地址數(shù)據(jù)總線傳送過來的命令進行解析,并最終按照ARM 命令的要求,完成脈沖發(fā)送和脈沖計數(shù)的功能及具體的運動控制細節(jié)任務(wù)。
兩塊FPGA通過各自的地址/數(shù)據(jù)總線與ARM的地址/數(shù)據(jù)總線連接起來,雙方可以進行雙向的數(shù)據(jù)交換。
ARM 與FPGA 通過地址選通信號線連接起來,兩塊FPGA 各自作為ARM 的外設(shè)芯片,運行在獨立的地址空間,地址選通信號結(jié)合地址總線實現(xiàn)ARM對 FPGA 內(nèi)部寄存器的尋址。
3 軟件系統(tǒng)關(guān)鍵技術(shù)設(shè)計與實現(xiàn)
系統(tǒng)軟件總體采用分層思想進行設(shè)計。整個系統(tǒng)軟件主要由宿主機操作系統(tǒng)、宿主機開發(fā)軟件、目標板操作系統(tǒng)、目標板底層硬件驅(qū)動程序、目標板應(yīng)用程序、HDL 硬件描述語言組成。宿主機操作系統(tǒng)選擇REDHAT-LINUX9.0 版本;宿主機開發(fā)軟件主要由一些交叉編譯環(huán)境、匯編和鏈接工具組成;目標板操作系統(tǒng)選用ARM-LINUX 操作系統(tǒng);目標板應(yīng)用程序使用C 代碼進行編寫;HDL 語言用于對FPGA 的功能進行描述。
軟件系統(tǒng)分層示意圖如圖2 所示。在宿主機中,交叉編譯將要在目標板平臺上運行的應(yīng)用程序代碼和底層硬件驅(qū)動程序代碼展開,然后通過宿主機與目標板之間的硬件接口傳遞到目標板中,目標板通過底層硬件驅(qū)動程序控制FPGA 模塊中配置的各功能寄存器,從而完成具體的控制任務(wù)。本文重點介紹FPGA內(nèi)部功能模塊的設(shè)計及驅(qū)動程序接口設(shè)計。
圖2 軟件系統(tǒng)分層示意圖
3.1 FPGA 內(nèi)部關(guān)鍵功能模塊設(shè)計
FPGA 不擅長對數(shù)據(jù)進行運算處理,但本系統(tǒng)對每個軸的控制都要進行相應(yīng)的運算,因此在每個軸的控制模塊設(shè)計中盡量不涉及復(fù)雜的算法實現(xiàn),算法部分留給ARM 進行處理。原則上FPGA 僅僅接收經(jīng)ARM 進行處理過的數(shù)據(jù),而后按照ARM 主控單元的處理結(jié)果進行處理。
單軸控制模塊框圖如圖3 所示。在每個位置管理單元中都配置了兩個計數(shù)器:邏輯位置計數(shù)器和實際位置計數(shù)器。其中邏輯位置計數(shù)器的輸入端接到脈沖發(fā)生器的輸出端,其功能是計量從脈沖發(fā)生器實際發(fā)出的脈沖數(shù)量。實位計數(shù)器的輸入端接到編碼器的輸出端,其功能是計量從編碼器發(fā)出的脈沖個數(shù)。邏輯位置寄存器和實際位置寄存器實際上構(gòu)成一個閉環(huán)系統(tǒng),前者為閉環(huán)系統(tǒng)的輸入,后者為閉環(huán)系統(tǒng)的輸出。當兩者的誤差范圍不超過某一個限度時,在FPGA中對實時的脈沖發(fā)送速率進行調(diào)節(jié);當兩者的誤差超過某一個設(shè)定的范圍時,F(xiàn)PGA 向ARM 發(fā)送一個中斷請求。當某個軸接收到減速信號SD 或者極限到位信號EL 時,在FPGA 內(nèi)部經(jīng)過同樣一個中斷發(fā)生器模塊向ARM 發(fā)送一個中斷。ARM 接收到中斷信號后,開啟運動控制進程,對PID 控制參數(shù)進行整定,計算控制量。
圖3 單軸控制模塊設(shè)計
3.2 驅(qū)動程序接口設(shè)計
在系統(tǒng)設(shè)計中,兩片F(xiàn)PGA 作為ARM 的外設(shè),掛在ARM 的外設(shè)地址空間。當ARM 要訪問FPGA時,首先要在ARM 中運行包含F(xiàn)PGA 所在地址空間地址的指令,而后ARM 的片選線選中FPGA,F(xiàn)PGA檢測到自己被選中,從而開始檢測地址總線上傳來的ARM 指令所包含的地址數(shù)據(jù)。根據(jù)從ARM 地址線傳來的地址總線上的數(shù)據(jù),F(xiàn)PGA 讀取從ARM 數(shù)據(jù)總線上傳來的數(shù)據(jù)總線上的數(shù)據(jù),而后開始進行相應(yīng)的動作,從而完成一次控制任務(wù)。寄存器是本運動控制系統(tǒng)的基本組成部分之一,ARM 對FPGA 的控制就是通過配置在FPGA 內(nèi)部的寄存器來實現(xiàn)的。完成配置的FPGA 整體結(jié)構(gòu)如圖4 所示。
圖4 FPGA 內(nèi)部結(jié)構(gòu)圖
4 控制算法設(shè)計與仿真
4.1 單神經(jīng)元自適應(yīng)PID 控制器設(shè)計
單神經(jīng)元自適應(yīng)PID 控制器的結(jié)構(gòu)如圖5 所示。
圖5 單神經(jīng)元自適應(yīng)PID 控制器
圖5 中,神經(jīng)元的3 個狀態(tài)變量分別為:
單神經(jīng)元自適應(yīng)控制器是通過對加權(quán)系數(shù)的調(diào)整來實現(xiàn)自適應(yīng)、自學(xué)習(xí)功能,權(quán)系數(shù)的調(diào)整是根據(jù)有監(jiān)督的Hebb 學(xué)習(xí)規(guī)則實現(xiàn)的。
控制器的輸出為:
其中:
式(5)中,w'i為加權(quán)系數(shù),可在線修正。加權(quán)值的在線學(xué)習(xí)則采用規(guī)范化的學(xué)習(xí)算法,公式為式(6):
式(7)中ηi(i = I、P、D ), ηI 、ηP 、ηD 分別為積分、比例、微分的學(xué)習(xí)速率。
4.2 算法仿真
仿真系統(tǒng)的參數(shù):比例、積分、微分的學(xué)習(xí)速率分別為 ηP =0.40 , ηI =0.35 , ηD =0.40 ,系統(tǒng)初始誤差量值設(shè)置為1,仿真曲線如圖6 所示。從仿真結(jié)果可以看出,系統(tǒng)PID 控制參數(shù)隨系統(tǒng)的運行在線整定,經(jīng)整定的PID 參數(shù)對系統(tǒng)進行控制,系統(tǒng)的誤差最終趨于0。
圖6 單神經(jīng)元PID 控制誤差曲線
5 運行結(jié)果
5.1 系統(tǒng)位移調(diào)試結(jié)果
為了測試運動控制系統(tǒng)的位置控制效果,在電機空載時進行了100 次試驗,圖7 所示為在實驗室中測定的電機空載時的位移測試結(jié)果曲線圖,各試驗數(shù)據(jù)均是取100 次實驗數(shù)據(jù)的平均值。圖7 為各實驗數(shù)據(jù)的曲線擬合圖。從圖中可以看出,電機空載時脈沖發(fā)生器和脈沖計數(shù)器的誤差曲線經(jīng)歷了一個積累的過程,當誤差超過設(shè)定值0.18%時單神經(jīng)元自適應(yīng)PID控制器開始在線整定PID 控制參數(shù),整定結(jié)果使系統(tǒng)的誤差趨于0。
圖7 系統(tǒng)位移調(diào)試結(jié)果
5.2 系統(tǒng)速度調(diào)試結(jié)果。
為了測量系統(tǒng)的速度響應(yīng)結(jié)果,系統(tǒng)使用M/T法[7]對速度數(shù)據(jù)進行測量,M/T 法的計算公式如式(8)所示:
式(8)中f 為基準時鐘頻率;P 為光電編碼器每轉(zhuǎn)一周產(chǎn)生的脈沖個數(shù);M1 和M2 分別是在相同的時間內(nèi)對編碼器脈沖和基準時鐘脈沖進行計數(shù)的計數(shù)值。
在電機空載時進行了100 次試驗,圖8 所示為在實驗室中測定的電機空載時的速度測試結(jié)果,各個參數(shù)值均是取100 次實驗數(shù)據(jù)的平均值。圖8 中設(shè)定速度值對應(yīng)程序運行時在脈沖發(fā)生器中設(shè)定的分頻系數(shù),驅(qū)動器顯示電機轉(zhuǎn)速對應(yīng)設(shè)定速度時對應(yīng)的誤差,使用M/T 測得的轉(zhuǎn)速對應(yīng)讀取速度時對應(yīng)的誤差。
圖8 電機空載時速度測試結(jié)果
6 結(jié)論
采用嵌入式方案設(shè)計的運動控制系統(tǒng)不管在體積、成本還是功能方面,較原有的工控機+板卡的結(jié)構(gòu)均有較大的優(yōu)勢。該系統(tǒng)突破了原有的工業(yè)CT 運動控制系統(tǒng)本身固有的一些缺點,采用嵌入式的ARM+FPGA 解決方案進行設(shè)計,控制系統(tǒng)內(nèi)部采用基于單神經(jīng)元自適應(yīng)PID 控制器進行設(shè)計。系統(tǒng)運行結(jié)果證明方案的可行性。為今后進一步研發(fā)擁有自主知識產(chǎn)權(quán)的基于嵌入式系統(tǒng)的多軸智能運動控制器做了基礎(chǔ)性的探索工作。
-
處理器
+關(guān)注
關(guān)注
68文章
19349瀏覽量
230281 -
FPGA
+關(guān)注
關(guān)注
1630文章
21759瀏覽量
604333 -
ARM
+關(guān)注
關(guān)注
134文章
9110瀏覽量
368029 -
嵌入式
+關(guān)注
關(guān)注
5087文章
19148瀏覽量
306161
發(fā)布評論請先 登錄
相關(guān)推薦
評論