牛盼情,康翔宇,何頂新
(1.華中科技大學 自動化學院,武漢430074;2.河南科技大學)
牛盼情(碩士研究生),研究方向為嵌入式系統與電機驅動控制系統;康翔宇(碩士研究生),主要研究方向為電子控制系統;何頂新(副教授),主要研究方向為嵌入式系統應用。
引 言
在機器人、機械臂和數控機床等工業控制系統中,永磁同步電機(PMSM)的驅動控制一直是此類控制系統的核心。而隨著工業技術的發展以及PMSM 應用的越來越廣泛,PMSM 的驅動控制系統對性能和精度的需求也越來越高。為了滿足高性能、高精度等需求,有學者采用高性 能 的DSP 作 為 軟 硬 件 解 決 方 案[1-2],也 有 學 者 使 用ARM 微控制器作為系統解決方案,例如使用STM32 實現的控制系統[3]。由于PMSM 控制算法愈加復雜化、控制算法對控制器性能的要求不斷提高,國外學者提出了使用FPGA 作為PMSM 的驅動控制系統解決方案[4],且效果顯著。
本文使用的控制核心板即為搭載有Zynq-7000系列芯片XC7Z020-CLG484的ZedBoard開發板。使用這類產品可以在充分發揮FPGA 并行計算優勢的前提下,利用ARM 進行快捷的操作系統移植[7]以及人機交互等軟件開發。本文的開發方案是在ARM 和FPGA 上分別實現不同的控制算法模塊,該方案在結合ARM 和FPGA 各自優勢的同時,提高了系統的控制性能和可移植性。
常見的PMSM 驅動控制系統可以分為電流環、速度環、位置環3個層次的控制模塊,以及機電傳感器信號處理接口、數據監測、人機交互等。電流環控制方案較多采用的是矢量控制算法,該算法通過檢測PMSM 的相電流值,以坐標變換的方式將定子電流分解成勵磁電流和轉矩電流,以實現各自的閉環控制[8]。而速度環、位置環控制器常用的是PID控制器。
控制系統結構如圖1所示。按照功能類型可以將系統組件劃分為機電接口組件、矢量控制算法組件和控制層組件下幾個部分。
機電接口組件主要是實現機械、電路等模塊的信號接收、發送和信號處理等功能。該組件的信號輸入捕捉模塊為隨后的算法層提供帶有指定格式的數據,信號輸出模塊為機電執行電路提供標準的可控信號波形。具體來說,該組件由以下幾個模塊構成:
①編碼器正交解碼模塊。該模塊實現對編碼器信號的處理,通過捕捉編碼器的輸出波形,計算出電動機轉速、轉子位置等數據。
②ADC 接口模塊。該模塊實現的是A/D 轉換器的傳輸協議,本系統是使用帶有SPI接口的A/D 轉換器,故而該模塊實現SPI通信協議。
③PWM 發生器。該模塊完成脈寬可調制波形(PWM)的生成,該模塊產生用于驅動本文所設計逆變器的6路PWM 信號。
矢量控制算法組件完成PMSM 的電流環相關算法。該組件包括以下幾個模塊:
①Sin&Cos模塊。該模塊完成轉子的電角度值到正弦、余弦值的計算。

圖1 控制系統結構圖
②空間坐標轉換模塊。該模塊把該系統的控制目標PMSM 等效成一臺控制算法和更簡單的直流電動機,主要包含了三相-兩相坐標變換和同步旋轉變換等模塊,實現了定子三相電流解耦成轉矩電流iq和勵磁電流id的計算過程。
③SVPWM 模塊。該模塊實現空間矢量PWM 信號的產生等功能。
控制層組件實現PMSM 的三環控制,主要包括以下幾個模塊:
①電流環轉矩電流iq和勵磁電流id的控制器模塊;
②速度環、位置環控制器,以及轉子速度、位置計算等模塊;
③輔助控制以及測試相關的模塊,主要實現人機交互、調試數據獲取等功能。
該嵌入式驅動控制系統的硬件平臺由四塊印制電路板(PCB)構成,其組成結構如圖2所示。PCB板由ZedBoard開發板、FMC接口板、信號處理板以及驅動板組成。

圖2 系統電路板組成
根據驅動控制系統原理框圖,可將系統的軟件算法模塊根據算法并行性、性能需求和可移植性需求劃分到ARM 或 者FPGA 上 實現。控制系統利用FPGA實現矢量控制電流環以提高算法并行性和計算頻率;使用ARM 實現速度環、位置環和人機交互等算法,以保證軟件開發的便捷性和算法的可移植性。而系統中ARM 和FPGA的通信使用Zynq片上高性能總線(AXI HP)以及中斷信號實現。系統軟件組成框圖略——編者注。
ARM 與FPGA 的核間通信問題是Zynq應用開發的重中之重,其核間通信總線AXI HP可采用存儲器直接訪問(DMA)的形式進行數據傳輸,總線最高位寬為64位,理論通信帶寬最高可達1 200 MB/s。采用的通信方案為中斷信號和AXI HP總線協同工作的方式,中斷信號實現ARM 和FPGA 控制周期的協同,AXI HP 總線為ARM和FPGA 提供高帶寬的通信速率。系統采用AXI HP總線以DMA 的形式直接讀寫ARM 數據空間的方案,所以在控制算法周期內ARM 無需管理通信時序。
該系統的核間通信時序圖如圖3所示。
圖中數據傳輸發生在FPGA 和ARM 的算法軟件把數據處理完成之后,此處的數據處理包括如下兩個方面:

圖3 ARM 和FPGA通信時序圖
①FPGA 端數據處理包括對編碼器、A/D 轉換器等傳感器信號的獲取和處理,以及上一周期的電流環控制算法運算過程中的重要變量數據收集和處理等工作。
②ARM 端數據處理包括速度環輸出的電流給定指令的保存、上一周期的電流環反饋數據處理,以及人機交互指令數據解析等操作。
圖3中描述的通信信號簇的數據傳輸主要是完成FPGA 數據寫到ARM 可訪問的內存空間、FPGA 讀取ARM 指定內存空間的數據兩個方面的操作。圖3中涉及的中斷信號是由FPGA 上的算法模塊發起,主要功能是同步FPGA 和ARM 的運行時序。經過上述AXI HP總線的數據傳輸和中斷信號兩個操作,可實現ARM 和FPGA 的數據交互功能,其總線頻率為90 MHz,測試其數據傳輸帶寬為284 MB/s。
該系統使用控制器XC7Z020芯片上嵌入的FPGA(Xilinx公司的Artix-7系列),其資源總量約為1.3 M 邏輯門。在本系統中電流環控制頻率為16kHz,其實現的算法框圖如圖4所示。
在FPGA 上實現的軟件包括算法和接口兩個部分,其中算法部分數據格式為16 位的Q15 定點數,該部分代碼通過Xilinx 工具ISE14.7 完成代碼的功能仿真和驗證,各個模塊占用FPGA 總資源量如表1所列。該算法代碼運行時鐘頻率為90 MHz,算法計算耗時為5.7μs,可見其運算耗時充分滿足本系統使用的16kHz電流環控制頻率的要求。

表1 FPGA算法資源占用量
運行于本系統雙核ARM Cortex-A9上的軟件程序主要包括控制組件和輔助組件兩大部分。控制組件運行于中斷服務程序中,以滿足算法對控制周期的時序要求;輔助組件運行于背景循環程序中,實現人機交互接口管理、系統監測等功能。
系統軟件的中斷服務程序運算流程如圖5所示,該中斷服務程序的中斷信號由FPGA的矢量控制算法模塊發出。

圖4 FPGA實現軟件系統框圖

圖5 運行于ARM 的軟件流程
圖中的數據處理流程包括以下幾個部分:
①人機交互數據處理。實現用戶命令解析,系統運行指令給定等功能。該系統的主要運行模式包括速度模式和位置模式兩種,運行指令包括給定電機轉動位置、轉動速度等。
②電流環反饋數據解析和處理。該環節實現對運行于FPGA 上的算法進行監控,并對電機運行數據進行封裝,以便人機交互組件進行數據發送等操作。
③電流環指令給定數據的保存。該環節主要是處理上一周期的速度控制器輸出數據,保證該數據能準確傳輸到FPGA。
完成數據處理之后,軟件運行到核心控制器環節。該環節采用的位置環控制器為比例控制器,速度環控制器為積分抗飽和的PI控制器。經過參數整定,該軟件算法能夠滿足系統控制精度等要求。
本系統使用Xilinx 開發工具套件ISE14.7、Vivado 2014.2以及SDK 實現代碼開發和工程管理工作。其中,ISE 14.7用來完成FPGA 代碼開發、算法功能仿真驗證等工作,Vivado 2014.2用來進行工程管理和Zynq ARM端的啟動文件配置等工作,SDK 用來進行ARM 端應用程序開發工作。
本系統的實驗平臺包含了以下幾個部分:
①帶有2500線編碼器的PMSM 電機,電機參數如表2所列。
②電機驅動板、信號處理板、FMC 接口板,用于供給驅動板直流母線電壓的線性電源等。
③ 搭 載 有XC7Z020-CLG484 芯 片 的ZedBoard 開發板。
給定PMSM 驅動控制系統2 400r/min的速度階躍值時電機的速度和電流響應情況圖略——編者注。該系統速度響應無超調、無靜差、電流響應迅速,可見該PMSM 控制系統具有良好的控制性能和控制精度。

表2 實驗平臺PMSM 參數
結 語
介紹了一個基于Zynq的PMSM 驅動控制系統,并介紹了異構多核控制系統的片上總線通信方案的設計。該系統充分結合了ARM 和FPGA 在嵌入式系統應用開發中的優勢,在ARM 上實現人機交互以及可移植性強的算法,在FPGA 上實現并行度高、性能要求高的算法。
通過實驗驗證了使用Zynq實現PMSM 控制系統的可行性以及便捷性,說明該方案不僅可以提高系統控制性能、提高控制精度和帶寬,而且能夠在完成高性能控制器的基礎上實現復雜算法的驗證、人性化的人機交互等功能,系統的控制性能和可擴展性都得到了大幅增強。
編者注:本文為期刊縮略版,全文見本刊網站www.mesnet.com.cn。
[1]陳應豪.基于DSP的PMSM 矢量控制在電梯控制中的應用[J].微處理機,2010(3):105-107.
[2]李長紅.PMSM 調速系統中最大轉矩電流比控制方法的研究[J].中國電機工程學報,2005,25(21):169-174.
[3]張巍.基于ARM 的PMSM 控制系統設計[J].微計算機信息:嵌入式與SOC,2010,26(11-2):70-71.
[4]Mohamed Wissem Naouar.FPGA-Based Predictive Current Controller for Synchronous Machine Speed Drive[J].IEEE TRANSACTIONS ON POWER ELECTRONICS,2008,23(4):2115-2126.
[5]李虎修.基于FPGA +ARM 的永磁同步電動機高精度轉速檢測[J].組合機床與自動化加工技術,2012(11):53-56.
[6]Xilinx.Zynq-7000 All Programmable SoC Technical Reference Manual[EB/OL].[2014-11].http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf.
[7]方華啟.多核實時操作系統TOPPERS/FMP移植研究[J].單片機與嵌入式系統應用,2013(12):4-7.
[8]陳伯時.電力拖動自動控制系統—運動控制系統[M].3版.北京:機械工業出版社,2003:190-214.