摘要 為降低FPGA實現(xiàn)3電平SVPWM算法的復雜性,減小SVPWM模塊所占用的資源,文中利用正弦函數(shù)和余弦函數(shù)的關系,采用小容量ROM提出了一種新的SVPWM控制算法。利用Verilog HDL實現(xiàn)了算法的硬件設計,并封裝成IP核以方便設計復用,在Altera公司的DE2開發(fā)板上進行了設計驗證,體現(xiàn)了SOPC嵌入式系統(tǒng)的靈活性和擴展性。
關鍵詞 有源逆變;SVPWM;IP Core;SOPC
電壓空間矢量脈沖寬度調制(SVPWM)具有諧波小、直流電壓利用率高等特點,因而廣泛應用于具有高效、節(jié)能特性的有源逆變中。由于SVPWM物理概念清晰、控制算法簡單、數(shù)字化實現(xiàn)方便。因此通常用微控制器(MCU)或數(shù)字信號處理器(DSP)實現(xiàn),使用MCU實現(xiàn)具有較大的靈活性,但速度受到一定限制;使用DSP實現(xiàn)雖可以提高開關頻率,但兩者都有開發(fā)時間相對較長、CPU占用率高的缺點。文中提出了一種基于FPGA的SVPWM硬件實現(xiàn)方案,文中方案與其他硬件設計方案相比電路結構簡單、占用FPGA資源少、便于和MCU/DSP接口。由于采用基于FPGA的硬件電路設計,因此大大降低了對MCU/DSP速度的要求,同時減小了編程工作量。
1 SVPWM基本原理
1.1 參考電壓矢量的合成
三相逆變橋電路如圖1所示,其中6個開關管受3組互補脈沖控制,總共有8種可能的開關組合,對應于8種基本空間電壓矢量
V7=V8=0 (2)
其中6種是非零基本空間電壓矢量,另外2種是零空間電壓矢量。當逆變器單獨輸出6種基本電壓空間矢量時,電動機定子磁鏈矢量矢端的運動軌跡就是一個正六邊形,如圖2中實線所示。采用8個基本電壓矢量實現(xiàn)目標電壓矢量的合成,即在一個開關周期內通過對基本電壓矢量進行組合,使其平均值與給定電壓矢量相等。具體而言,某區(qū)域中的電壓矢量可由組成這個區(qū)域的2個相鄰的非零矢量及零矢量的不同作用時間來合成。矢量的作用時間可以一次施加,也可以在一個采樣周期內分多次施加,通過控制各個電壓矢量的作用時間,使電壓空間矢量接近按圓軌跡旋轉,如圖2中虛線所示,從而使磁通逼近基準磁鏈圓,產生恒定的電磁轉矩。
[!--empirenews.page--]
以區(qū)間1中的電壓矢量Vref為例,可將其分解為矢量和之Va和Vb,這2個電壓矢量分別是電壓矢量V1和V2在時間間隔T中有效作用時間ta、tb的等效電壓矢量
為降低轉換頻率,零電壓矢量也用于矢量合成,零矢量作用時間為t0。即PWM周期TPWM等于ta、tb、t0之和
以上討論的是Vref在區(qū)間1中的情況,其中θ是Vref與該區(qū)間中那個滯后電壓矢量的夾角,對其他區(qū)間除了用于合成Vref的2個基本電壓矢量不同外,分析計算過程完全相同,滯后、超前的2個電壓矢量作用的時間亦分別由式(7)和式(6)給出。
1.2 七段式電壓空間矢量PWM波形
矢量的作用效果與其持續(xù)時間有關,為使磁鏈運動平滑,可以將各矢量分2次產生,為減少開關次數(shù)以降低開關損耗,每次僅改變三相逆變橋中一個橋臂的控制信號,由此得到各扇區(qū)橋臂開關切換順序,如表1所示,區(qū)間1相應的橋臂控制信號時序如圖3所示,考慮到開關切換順序之后,圖3中t0’=(TPWM/2-t1-t2)/2,T0’=t0/4,對奇數(shù)區(qū)間t1=ta/2,t2=tb/2;對偶數(shù)區(qū)間t1=tb/2,t2=ta/2。
[!--empirenews.page--]
2 SVPWM IP Core設計
SVPWM IP Core結構框圖如圖4所示。整個系統(tǒng)由總線接口、PWM可逆計數(shù)、分頻、ROM地址生成、正弦值存儲、時序控制、乘法器及死區(qū)發(fā)生器等模塊構成。
(1)寄存器組。
寄存器組提供了該IP Core與CPU交換信息的通道。當采用NiosII作為微控制器時,用戶可以通過Avalon總線采用基地址+偏移量的方式訪問IP Core內部的6個寄存器,如表2所示。
[!--empirenews.page--]
(2)Avalon接口設計。
Avalon接口為SVPWM IP Core提供了一個標準的Avalon從端口,通過此接口按照Avalon從端口的傳輸協(xié)議對IP Core進行控制,相關的Avalon接口信息如表3所示。
(3)乘法因子計算模塊。
這里的乘法因子是指式(6)和式(7)中的方括號內運算的結果。本模塊根據(jù)外部A/D轉換的結果、設定的TPWM及預期的參考電壓矢量的數(shù)值,計算出式(6),式(7)的方括號內的結果,用于乘法模塊中對ta和tb的計算。
(4)數(shù)據(jù)存儲模塊。
sinθ及sin(π/3-θ)在擴大255倍后,分別作為高8位和低8位存儲在容量為128×16 bit的ROM中,從而可以同時讀取分別用于式(6)中tb和式(7)中ta的計算。時序控制ROM的容量為32×3 bit,存儲表1中的開關時序,其高3位地址用于對6個扇區(qū)編碼,最低2位地址用于某區(qū)間內的時序控制,由于在同一區(qū)間中采用升降計數(shù),根據(jù)表1中橋臂開關切換的對稱性可知,只要兩位地址即可存儲時序控制信號。
(5)數(shù)據(jù)選擇器。
當0≤θ<π/6時,利用正弦值存儲模塊輸出數(shù)據(jù)的高8位計算tb,利用低8位計算ta;而當θ值為π/6≤θ<π/3時,則應該利用低8位計算tb,利用高8位計算ta。通過數(shù)據(jù)選擇器實現(xiàn)高、低8位的交換。
(6)時序控制模塊及IGBT時序控制ROM。
時序控制模塊根據(jù)當前所處的扇區(qū)、ta、tb及當前PWM的計數(shù)值生成IGBT時序控制ROM的地址。IGBT時序控制ROM中存儲的是橋臂開關控制的時序,根據(jù)時序控制模塊輸出的地址,將存儲在ROM中的開關控制量讀出后送至死區(qū)發(fā)生器模塊。
(7)死區(qū)發(fā)生器模塊。
死區(qū)發(fā)生器模塊用于將橋臂上部IGBT管的3個時序控制信號,變?yōu)橛脩粼O定死區(qū)時間的3組信號,對6個IGBT管進行控制,死區(qū)時間在0~6.3μs之間設置,步進值0.1μs。死區(qū)發(fā)生器仿真結果如圖5所示,輸入信號為pulse_in,輸出信號為pulse_a和pulse_b,死區(qū)時間設置為0.4μs。
3 設計驗證
各模塊設計完成后,用原理圖方式完成系統(tǒng)設計如圖4所示,在SOPC Builder中將之作為自定義組件添加到系統(tǒng)中生成IP Core。設計驗證在Altera公司的DE2開發(fā)板上進行,將該IP Core添加到SOPC工程中,編譯、下載到FPGA芯片中,運行測試程序后,利用SignalTapII Logic AnMyer捕捉到橋臂上方3個IGBT管的控制信號如圖6所示。圖中的sector是為方便測試而引出的扇區(qū)編號信號,由圖可知設計正確。
4 結束語
設計了一個結構簡單、性能良好的SVPWM IP核,并在Nios II平臺下將其封裝成一個模塊化的獨立元件,使之易于在其他的工程中復用,利用該IP核可以方便地構建基于Nios II嵌入式處理器的SVPWM控制系統(tǒng),體現(xiàn)了SOPC嵌入式系統(tǒng)的靈活性和擴展性。