賴培鋒,吳建華,韓勇
(上海交通大學機器人研究所,上海 200240)
伺服系統主要由控制器、功率驅動裝置、反饋裝置和電動機構成,廣泛應用于數控加工、工業(yè)機器人、包裝加工等領域[1]。隨著大規(guī)模集成電路和計算機自動控制技術的飛速發(fā)展,這些領域對伺服系統的定位精度、速度穩(wěn)定度、動態(tài)響應性、指令響應性等指標提出了更高的要求[2]。目前,多軸運動控制系統中通常采用一個運動控制器加多個伺服驅動器的結構,存在信號傳輸易受干擾、占用空間大、硬件資源浪費以及成本高等問題。驅動控制一體化可集成運動控制器、驅動器控制電路等功能為一體,使系統結構更緊湊、可靠性增加并且大大降低了成本[3]。傳統的電機控制多采用單片機,受限于CPU的運算速度慢,很難設計出優(yōu)秀的控制系統。FPGA具有高度并行性、實時性好和豐富的資源等優(yōu)點,使其對多個電機同時進行控制成為可能,FPGA已經越來越多的應用于電機控制等高性能控制領域。文獻[4]提出了基于FPGA的多軸運動控制方案,并在SCARA機器人上進行了驗證。文獻[5]將FPGA運用于三自由度傳輸機器人,作為機器人運動控制器的核心處理器。文獻[6]提出一種基于FPGA的三軸伺服驅動方案,并對系統電流環(huán)寬帶進行拓展。
針對多個電機的驅動和控制要求,提出一種以FPGA為控制核心、以IPM為驅動核心的六軸控制驅動系統。采用id=0的矢量控制方法,使用硬件描述語言(HDL)設計各模塊,并基于各模塊集成的SOPC進行軟件開發(fā),最后實驗驗證系統的可行性。
系統目的是通過FPGA完成六個永磁同步電機的電流環(huán)和速度環(huán)雙閉環(huán)控制。采用id=0的矢量控制策略對電流進行解耦控制。進行電機電流閉環(huán)運算時,需要先獲取電機位置和電流等反饋信息,矢量變換后還需通過SVPWM 算法,控制逆變器中功率開關的通斷,實現對電機的控制。根據頂層設計思想,在FPGA中開發(fā)上述各功能模塊,包括編碼器反饋、電流采樣、矢量控制運算、SVPWM 算法等模塊。系統使用的FPGA 芯片是Altera 公司Cyclone IV系列的EP4CE30F23C6。該芯片具有28848個邏輯單元,594kB的內存,最大用戶I/O數為535。
Qsys是Altera公司推出的基于圖形界面的SOPC集成工具,Qsys庫中包括軟核處理器和大量的IP核及外設,系統集成工具自動生成互聯邏輯,Qsys系統采用Avalon 總線接口來連接各IP核和子系統,從而顯著節(jié)省了時間,減輕了FPGA設計量[7]。在將各IP核集成SOPC系統過程中,Qsys會為系統中添加的所有組件生成Verilog HDL源文件,然后頂層HDL文件將Qsys中生成的系統和頂層其他的IP核連接起來,Qsys模塊實際就是一個功能更強的IP核。
系統總體框架,如圖1 所示。在Quartus II 工具中的頂層HDL文件包括PLL鎖相環(huán)、六個編碼器讀取IP核以及Qsys系統。其中,Qsys系統包括集成工具自帶的Nios II軟核處理器、電流采樣、矢量控制運算、六個PWM波生成等獨立開發(fā)的IP核。Nios II是SOPC 系統總的調控中心,相當于計算機系統中的CPU,最后Qsys工具將上述各IP核集成一個SOPC系統。系統實際運行時,編碼器讀取模塊和電流采樣模塊先分別讀各個電機的各相電流值和位置數據,Nios II將上述IP核的寄存器中讀取的數據作為矢量控制運算IP核FOC的輸入,FOC的輸出是Park逆變換的計算結果uα、uβ,它們作為PWM波生成IP核的輸入,通過SVPWM算法生成一定占空比的六路PWM控制信號,最后輸出給功率驅控板上的各個IPM,實現同時對六個永磁同步電機的驅動控制。
圖1 系統總體框架Fig.1 Overall Framework of System
伺服系統中電機所使用的編碼器為日本多摩川公司TS5667系列的單圈17位、多圈16位絕對值編碼器,它與FPGA采用RS?485 異步串行通訊協議進行通信,通訊波特率為2.5Mbps。RS?485接口采用差分信號,具備對噪聲的有效抑制能力、高效的數據傳輸速率、良好的數據傳輸的可靠性能,可進行遠距離傳輸。
控制板卡上使用德州儀器公司的RS?485收發(fā)器SN65HVD0 8,該收發(fā)器需要(3~5.5)V的供電電源,它的靜態(tài)功耗小,最高通訊波特率可達10Mbps。控制板卡上總共需要六個SN65HVD08芯片,對應六個電機的編碼器,充分利用了FPGA的高度并行處理能力。
SN65HVD08收發(fā)器接口電路,如圖2所示。差分信號Enc_A、Enc_B分別與編碼器的A、B差分線連接,RX、CTRL和TX這三個信號與FPGA芯片的引腳相連。收發(fā)芯片有驅動器和接收器兩種工作模式,FPGA通過控制CTRL信號確定芯片的工作模式。當CTRL為高電平時,DE信號有效,芯片處于驅動器工作模式,FPGA通過TX向芯片發(fā)送請求信號,然后芯片通過差分線將請求信號傳送給編碼器,編碼器接收到信號后會返回對應的位置信號給FPGA端。當CTRL為低電平時,REn信號有效,芯片處于接收器的工作模式,芯片把編碼器端的信號通過RX 傳輸給FPGA 的I/O 接口端,然后FPGA再將接收到的串行數據通過編碼器IP核解碼并轉換成并行數據。IP核工作的時鐘頻率為20MHz,從FPGA發(fā)送請求信號到位置信息返回整個時間周期約為30.7μs。
圖2 收發(fā)器接口電路圖Fig.2 Transceiver Interface Circuit Diagram
采用需采樣電阻的隔離電流傳感器對功率板上的智能功率模塊輸出給電機的電壓模擬量進行采樣、隔離放大,然后通過ADC78H89轉換為數字量。該ADC是一款低功耗,7通道的12位串行模數轉換芯片,轉換速率可達500KSPS,能夠兼容SPI通信協議。FPGA作為主設備與從設備ADC通過SPI協議進行通信獲取各電機的反饋電流值。FPGA與ADC通信原理圖,如圖3所示。
圖3 FPGA與ADC通信原理Fig.3 Communication Schematic Diagram of FPGA with ADC
永磁同步伺服電機可以看作是三相平衡負載的,故三相電流之和等于0,因此只需對電機三相電流中任意兩項進行采用即可,2個ADC的多個轉換通道分別采樣六個電機的U相、V相電流模擬信號。為了保證可靠性,每個PMSM 的兩相電流值應同時被FPGA端獲取,充分利用FPGA能并行處理的優(yōu)勢,將FPGA發(fā)出的DIN、SCLK(50KHz~8MHz)、CSn 三個信號同時發(fā)送給兩個ADC,實現FPGA同時與兩個ADC從機通信,當所有電機電流采樣完成后,IP核發(fā)出中斷請求信號,Nios II通過Avalon總線讀取IP 核的寄存器電流值,然后進行矢量控制運算。使用Verilog HDL開發(fā)電流采樣IP核,它包括時鐘分頻、邏輯控制、發(fā)送寄存器、移位寄存器、U 相接收寄存器以及V 相接收寄存器等部分。FPGA 外部提供時鐘為50MHz,因此需要對其8 分頻才能滿足ADC低于8MHz的工作時鐘范圍。
永磁同步電機矢量控制原理,如圖4所示??梢酝ㄟ^Clarke變換和Park變換將永磁同步電機數學模型從三相靜止坐標系轉換到兩相同步旋轉坐標系:
圖4 矢量控制原理圖Fig.4 Field Oriented Control Diagram
式中:p—電機極對數;Ψf—永磁體磁鏈;Ld、Lq—直軸和交軸的等效電感;Ti—積分時間常數。采用id=0的矢量控制策略時,Te=pΨfiq,此時電機電磁轉矩只與電流分量iq有關,通過控制其大小就可以控制電機輸出轉矩[8]。
矢量控制涉及大量的數學運算,為了加快系統的運行速度,基于模型設計的思想,使用DSP Builder工具設計矢量控制運算FOC IP 核。DSP Builder是Altera公司推出的一個算法級設計工具,它同時把算法仿真建模和RTL級的兩個設計連接起來,使算法的開發(fā)到硬件的實現可以無縫地過渡[9]。在MATLAB/Simulink中建立、仿真并驗證正確的算法模型(mdl文件),通過DSP Builder中的Signal Compiler模塊轉化成VHDL文件,或者作為一個自主定義的硬核集成到SOPC系統中,大大簡化了FPGA功能模塊的開發(fā)流程,同時關鍵算法模塊的硬件實現提高了程序的執(zhí)行效率。
FOC模塊包括Clarke變換、Park變換、Park逆變換和PI調節(jié)器。利用Simulink工具選擇合適的模塊組件搭建FOC控制算法模型,其中三角函數的運算使用查找表法實現。最后,將驗證無誤的FOC模型利用DSP Builder工具生成可以嵌入到FPGA的IP硬核。生成的FOC IP核,如圖5所示。輸入部分包括電流指令值iqref、PI控制參數kp和ki、電氣角度θe以及反饋電流iu和iv,輸出為uα、uβ,它們將用于SVPWM算法中。
圖5 DSP Builder聯合生成的FOC IP核Fig.5 FOC IP Core Jointly Generated by DSP Builder
考慮到空間矢量調制SVPWM 算法具有能夠優(yōu)化輸出電壓波形、母線電壓利用率高、易于數字實現等優(yōu)點,采用SVPWM控制算法生成電機控制所需的PWM信號[10]。SVPWM算法原理結構框圖,如圖6所示。矢量運算FOC IP核計算輸出的uα、uβ以及三相功率器件的開關周期T是該模塊的輸入,輸出為六路PWM控制信號。通過uα、uβ的值判斷空間電壓矢量的扇區(qū)號N,根據扇區(qū)號計算出基本電壓矢量的作用時間,然后轉化為對應的占空比。為了使諧波畸變盡可能小,采用7段式SVPWM,并通過三角載波與占空比比較得到六路兩兩互補、帶死區(qū)的PWM控制信號。使用Verilog HDL開發(fā)PWM波生成IP核,該模塊包括硬件邏輯控制、三角波產生、比較寄存器、比較單元、死區(qū)插入單元等部分,輸入為Avalon?MM總線和各相占空比,輸出為六路PWM信號。扇區(qū)判斷和各相占空比的計算通過軟件實現,PWM波生成通過IP核硬件實現。
圖6 SVPWM算法的原理結構框圖Fig.6 Principle and Structure Diagram of SVPWM Algorithm
功率驅動部分的主要作用是通過PWM控制信號作用,把整流后的直流電轉變成三相交流電供給伺服交流電機[11]。功率驅動核心部件是六個IPM模塊,采用IR公司IRAMX20UP60A型號的IPM,它集成了三相逆變驅動器、三相逆變橋、內部自舉元器件和多元化的保護電路,最高直流母線電壓為600V,PWM 的最高載波頻率為20kHz,需要(12~20)V 供電電壓,具有過電流、欠電壓、短路和過熱保護等功能[12]。功率驅動板上弱電與強電之間使用HCPL0631 光電耦合器進行光耦隔離,增加抗干擾性和安全性,FPGA控制端輸出的PWM信號經過光電耦合器后傳給IPM。為保證控制電源能夠為上橋臂功率器件提供正確的門級偏置電壓,需要在IPM外圍設計自舉電路。此外,驅動部分還包括電流采樣電路,IPM輸出的三相正弦交流電通過采樣電阻,再經過隔離電流傳感器HCPL?7520隔離放大后獲得ADC采樣的模擬量。
SOPC 系統使用32位嵌入式RISC 指令集,以Nios II軟核處理器為核心,在FPGA上完成了系統各模塊的開發(fā)后,在Qsys平臺Nios II結合Avalon總線將各個IP核集成一個SOPC系統,要想實現對電機的控制,然還需對該SOPC 硬件系統進行軟件開發(fā)。Quartus II上自帶Nios II軟核開發(fā)工具Eclipse,并提供了C/C++軟件開發(fā)套件。
Nios II程序包括主函數和中斷函數,主函數主要完成電機控制相關參數的初始化和注冊中斷服務函數。當電流采樣IP核完成所有電機的兩相電流采樣后,會向Nios II發(fā)出中斷請求信號,程序進入中斷處理子函數。
中斷處理函數主要實現以下功能:各個電機位置信息和反饋電流值讀取、速度指令值接收以及速度環(huán)計算、矢量控制運算、計算SVPWM 扇區(qū)和占空比、記錄電機實際運行數據至片上RAM中。FOC運算以及六路PWM波的輸出都是通過硬件實現的。系統中斷程序的流程,如圖7所示。
圖7 中斷程序流程圖Fig.7 Flow Chart of Interrupt Procedure
控制系統中,電機速度環(huán)和電流環(huán)控制采用PI控制器,連續(xù)PI控制器的調節(jié)規(guī)律為:
式中:u(t)—輸出;e(t)—輸入誤差;Kp—比例系數;Ti—積分時間常數。數字PI控制有位置式和增量式兩種實現方式,采用位置式,上式經離散化處理后可表達為:
式中:e(n)—第n個周期的采樣誤差;u(n)—第n個周期的輸出。為避免系統受到沖擊,需要對積分輸出和PI控制器總輸出均做出限幅處理。最后,在Eclipse平臺編寫函數實現PI控制器。
對上述開發(fā)的IP核功能模塊、集成的SOPC硬件系統以及基于Nios II控制程序進行實驗驗證??刂葡到y實驗平臺,如圖8所示。包括以FPGA為核心的控制板卡、以六個IPM為核心的功率驅動板卡和六個永磁同步電機。實驗均在電機空載下進行,永磁同步電機參數,如表1所示。
圖8 實驗平臺Fig.8 Experimental Platform
表1 永磁同步電機參數Tab.1 PMSM Parameters
Quartus Ⅱ開發(fā)平臺上使用嵌入式邏輯分析儀Signal Tap II對系統運行時PWM波生成IP核的功能進行驗證,分析儀實時監(jiān)測的實際運行結果,如圖9 所示。該功能模塊能正確生成帶0.5μs死區(qū)時間、頻率為8kHz的六路PWM控制信號。
圖9 PWM波生成測試結果Fig.9 PWM Wave Generating Test
在SOPC中添加的FPGA片上RAM 用于對電機實際運行時三相電流值、iq反饋值、轉速等數據進行記錄。用所記錄的數據在MATLAB 中繪制圖形,電流環(huán)的階躍響應實驗結果,如圖10 所示。電流環(huán)運行頻率為8kHz,電流指令值iqcmd為1A,上升時間為0.83ms,iq反饋的平均值為0.978A。對應的電機實際三相定子電流值,如圖11所示。
圖10 電流環(huán)階躍實驗Fig.10 Step Test of Current Loop
圖11 電機三相定子電流Fig.11 Three Phase Stator Current
電機轉速階躍響應實驗結果,如圖12所示。速度指令值為366r/min,上升時間約為7ms,速度平均值為365.6 r/min,實驗結果表明系統具有良好的響應特性。
圖12 速度環(huán)階躍實驗Fig.12 Step Test of Speed Loop
設計了一種以FPGA為控制核心,以IPM為驅動核心的驅控一體化多軸伺服系統?;贔PGA使用硬件描述語言實現了電機編碼器數據采集、電流采樣、矢量控制運算和PWM信號生成等功能模塊的開發(fā),并在各模塊集成的SOPC上進行嵌入式軟件編程,實現了同時對六個永磁同步電機的驅動控制。通過實驗驗證了伺服系統響應速度快,穩(wěn)態(tài)誤差小。使用FPGA對各功能模塊硬件實現,使運算能夠并行執(zhí)行,大大提高了程序運行效率、縮短開發(fā)周期,開發(fā)的伺服系統具有較高實用價值。