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