摘要:嵌入式技術突飛猛進的發展,為運動控制系統的研究和應用注入了新的活力,并且使得開發成本和周期都大為縮減。本論文將多電機驅動、電機控制器、多電機串聯控制器、在線調試等功能在ZedBoard開發平臺中實現,突出了Zynq-7000 AP SoC系列處理器資源豐富、配置靈活的特點。系統使用集成半橋驅動器BTS7960實現了高效電機驅動板設計。在設計方法上使用軟硬件協同設計方法,在大大擴展系統功能的基礎上,有效地縮短了開發時間。
關鍵詞:Zynq-7000 AP SoC;多軸串聯控制;集成電機驅動器
DOI: 10.3969/j.issn.1005-5517.2013.1.008
引言
運動控制系統廣泛應用于工業自動化領域。系統需求日漸復雜,系統的響應速度、精度要求越來越高。多軸串聯控制技術已在工業界得到廣泛的應用,主要用于消除傳動間隙,驅動大慣量、高負載對象等。使用多軸串聯控制技術既可以改善系統傳動間隙的影響,又能夠提升系統的響應性能和魯棒性。
由于各個軸之間的驅動電機性能存在差異,使用傳統速度控制方案或者主從結構方案都難以達到理想的控制效果。Y. Koren教授于1980年提出了交叉耦合控制方案,并逐步應用于多軸串聯控制系統中。但是要實現這種方案,需要復雜的硬件設計、強大的實時計算能力、昂貴的系統配置和較高的系統功耗。
Zynq-7000 All Programmable SoC(Zynq-7000 AP SoC)是Xilinx公司推出的新型All Programmable解決方案,是用來應對高級運動控制、實時工業網絡、機器視覺以及新一代工業自動化應用的挑戰。Zynq-7000 AP SoC集成了雙核Cortex-A9 MPCore處理器系統,支持Xilinx 28nm可編程邏輯的ARM TrustZone安全技術。同時Zynq-7000內部集成了豐富的邏輯資源,其Programmable Logic(PL)部分包含約1.3M等效邏輯門和220個DSP Slices。這些邏輯資源提供了完善的高級運動控制解決方案。本設計通過ZedBoard開發系統實現了從底層驅動至上位機人機交互等一整套完整的系統功能。

多軸串聯控制系統
本系統設計借助于ZedBoard開發系統強大的性能和美信公司完善的硬件支持,實現了快速、高效的系統開發。前期系統模型和分析利用Matlab完成。通過Matlab與Xilinx產品的相互支持,設計者可以快速確定控制器方案和具體實施細節。本設計將電機驅動、交叉補償單元、電機標準接口均在ZedBoard開發系統中應用實現。系統外部同時連接兩臺直流電機。各電機的實時狀態也通過接口反饋到上位機,并可以傳遞給Matlab進行數據分析和參數調試。
系統的電機驅動PI控制器和補償PI控制器均利用PL實現。由于使用了Xilinx的DSP開發套件System Generator(XSG),使得開發周期縮短、開發難度降低。在Matlab/ Simulink仿真環境下,設計相關PID模塊。通過XSG,系統可以直接生成PL可執行模塊。該模塊可以利用Matlab與其他模塊仿真,通過這項功能進行參數調整將大大節約開發的時間。
在此基礎上,本設計采用交叉補償方案完成電機串聯控制。在單電機驅動結構之外,系統增加張力扭矩PI補償,控制兩臺電機保持協同消隙所需要的扭矩關系。所設計的系統結構框圖如圖1所示。張力扭矩軌跡表示兩臺電機力矩的關系。其指令意義表示兩臺電機驅動的電流指令之差,物理意義表示兩臺電機輸出力矩之差。
上述控制器使用Zynq-7000 AP SoC設計實現。Processing System(PS)移植實現了 Natural Tiny Shell(NTShell—一種小型嵌入式系統的開源命令解析器)作為人機交互界面。PL部分實現了系統控制算法。系統采用 Zynq-7000 AP SoC內部總線通道M_ AXI_GP總線作為PS和PL的指令、數據傳輸通道。系統控制器作為一個含有AXI從機接口的IP核掛載在M_AXI_ GP總線上。總線接口以及用戶代碼的移植和IP核的封裝,都是在Xilinx開發環境XPS的工具向導“Create and Import Peripheral Wizard”的幫助下完成。本系統借助AXI內部總線實現了控制指令信號的完整性和實時性,進而實現了控制器參數動態配置。系統通過Universal/Asynchronous Receiver/Transmitter(UART)與Personal Computer(PC)串口終端通信,并可以將系統信息直接顯示在終端界面中。PL可以通過PS發送至PC終端的信號量包括各個控制器的參數、速度信號偏差、電流信號偏差、補償器輸出等。通過PC終端,用戶可以設置各個控制器參數、速度設定值、張力扭矩軌跡值等等。

基于ZedBoard的運動控制系統
電機驅動設計
經過考察選型,綜合價格、供貨穩定性、驅動器本身性能,本電機驅動方案使用半橋型驅動器BTS7960芯片。該驅動器能夠實現驅動電流43A,輸入最大電壓45V。本設計電源管理芯片使用美信公司芯片MAX603實現5V穩壓。
驅動板原理圖如圖2所示。該設計使用額定電壓11.1V的鋰電池供電,經過穩壓芯片穩壓輸出5V電平。5V電平為驅動板上所有數字邏輯電路和增量式編碼器供電。驅動板輸入信號為多軸控制器輸出的Pulse-Width Modulation(PWM)信號和電機轉動方向信號。該兩路信號經過驅動邏輯電路處理后輸入到BTS7960芯片上。兩個BTS7960芯片組成H橋型電機驅動電路。
PL硬件設計
本設計中,Zynq的PL部分實現了多軸串聯控制器。其中的主要單元包括PS-PL系統通信模塊、信號處理模塊、電機驅動模塊、多軸控制器模塊、電機接口模塊等。各個部分之間采用狀態機進行跳轉。采用PL實現上述功能,可以讓系統實時高速運行,并實現無縫信息交換。具體硬件設計框圖如圖所示。
在上述硬件框圖基礎上,運用PL實現通用計數器模塊。此模塊用于控制整個狀態機的跳轉。模塊計數溢出信號作為狀態機跳轉的標志信號。通過嚴格的時序控制,可以實現各個模塊的復用和信號同步翻轉。如系統中的兩個電機速度閉環控制器和補償PI控制器就是時分復用了同一個PID控制器模塊。而系統包含兩個PWM模塊,這樣可以保證電機的驅動信號并行更新和執行。
系統實現
本系統實驗平臺及開發環境如圖3所示。其中包括Xilinx ISE Design Suit 14.1開發環境、雙電機實驗平臺、電機驅動模塊、ZedBoard、11.1V-3S1P鋰電池。
完整的系統在Z ed B oa rd的XC7Z20芯片上實現,僅占用PL的1119個Slices、3個DSP48E1s,為該芯片PL資源的8%。可見本系統僅占用很少的片上資源就實現了多軸串聯控制系統。部分模塊通過時序控制進行了復用,實現了資源的高效利用率。
總結
本系統利用基于Xilinx Zynq-7000 AP SoC系列處理器的ZedBoard開發平臺,實現多軸串聯控制系統。設計主要實現:
(1)實現多軸控制算法及電機驅動控制,可驅動至少2臺電機運行于串聯連接狀態。控制系統可有效發揮各單軸驅動性能,保證系統響應迅速,抗擾動能力強。
(2)系統實現了基于NT-Shell的人機交互界面。用戶可利用上位機調試和監測系統,系統參數可以在線動態配置。
(3)系統支持可重配置通用接口,可連接不同電機驅動。系統通用性強,可應用于不同場合。
(4)項目采用軟/硬件協同設計方式進行開發。系統開發效率高,并且易于根據用戶需求開發定制型服務和擴展功能。
(5)利用Matlab科學計算軟件協助嵌入式系統的開發和控制器的設計與調試,提高控制器開發的效率和靈活性。
參考文獻:
[1] 與非網.賽靈思Zynq-7000 All Programmable SoC加速工業自動化生產力[EB/OL]. http://www.openhw.org/ article/12-11/261353988798.html?sort=1129_1551_0_0
[2] Zynq-7000 EPP Technical Reference Manual UG585[Z]. v1.1.Xilinx Inc., 2012-06-25
[3] Zynq-7000 EPP Software Developers Guide UG821[Z]. v2.0.Xilinx Inc., 2012-04-24
[4] MAX603/MAX604 5V/3.3V or Adjustable, Low-Dropout, Low IQ, 500mA Linear Regulators[Z].Maxim Integrated Inc.[5] 陳伯時.電力拖動自動控制系統(自動控制系統)[M].第三版.北京:機械工業出版社,2003