摘 "要: 采用SPWM的三相逆變技術(shù)在調(diào)速傳動(dòng)、電源轉(zhuǎn)換和電力電子控制領(lǐng)域均有著廣泛的應(yīng)用,為提高三相SPWM產(chǎn)生的效率和精度,在此設(shè)計(jì)了一種不對(duì)稱規(guī)則采樣的三相SPWM發(fā)生器。調(diào)制正弦信號(hào)采用改進(jìn)型迭代算法CORDIC產(chǎn)生,相對(duì)于查表法,無需占用大量的存儲(chǔ)器空間,利用等腰三角波與調(diào)制正弦波相比較的不規(guī)則采樣,得到SPWM的輸出信號(hào),并于Quartus Ⅱ編譯環(huán)境下采用Verilog HDL硬件描述語(yǔ)言實(shí)現(xiàn)模塊化編程設(shè)計(jì),進(jìn)行波形仿真驗(yàn)證了該設(shè)計(jì)的高效性和高精度性。該設(shè)計(jì)適用于高精度的三相逆變系統(tǒng),也可與其他模塊相結(jié)合應(yīng)用于各種三相電機(jī)的正弦驅(qū)動(dòng)等場(chǎng)合。
關(guān)鍵詞: CORDIC; SPWM; 三相逆變; FPGA; Verilog
中圖分類號(hào): TN919?34; TM464 " " " " " " " 文獻(xiàn)標(biāo)識(shí)碼: A " " " " " " " " " " "文章編號(hào): 1004?373X(2015)06?0159?04
Design of three?phase SPWM generator based on CORDIC algorithm
ZHANG Jie1, SHEN Hai?yun2, HU Qi?chao2, ZHONG Jian3, SHI Guang?hui3, YANG Shi?yong3
(1. School of Mechanical and Electrical Engineering, Southwest Petroleum University, Chengdu 610500, China;
2. School of Electronic and Information, Southwest Petroleum University, Chengdu 610500, China;
3. Technical Centre, Logging Co., Ltd., China National Petroleum Corporation Xi’an 710000, China )
Abstract: SPWM?based three?phase inversion technology is widely applied in many areas, such as speed governing transmission, power switching and power electronics control. A three?phase SPWM generator which samples with asymmetry rule is designed in the paper to improve the accuracy and efficiency of the three?phase SPWM. The modulation sinusoidal signal is achieved by an improved iterative algorithm CORDIC, which dispenses with occupation of a lot of memory space as the LUT does. The output signal of SPWM is obtained by comparing the irregular sampling of isosceles triangle wave and modulation sine wave. The modular programming design is realized via Verilog HDL under the Quartus ii compiler platform. The efficiency and accuracy of the design were verified by waveform simulation. The design is suitable for high?precision three?phase inverter system and can also be combined with other modules to be applied to sinusoidal drive of various three?phase motors.
Keywords: CORDIC; SPWM; three?phase inversion; FPGA; Verilog
三相SPWM使用SPWM模擬市電的三相輸出,在逆變器和變頻器領(lǐng)域被廣泛的采用。CORDIC算法即坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算方法,主要用于三角函數(shù)、雙曲線、指數(shù)、對(duì)數(shù)等超越函數(shù)的計(jì)算,該算法通過簡(jiǎn)單移位和加減運(yùn)算,能遞歸計(jì)算常用函數(shù)值,特別適合VLSI的實(shí)現(xiàn)。本設(shè)計(jì)使用改進(jìn)型CORDIC算法,采用流水線結(jié)構(gòu),極大提高算法在FPGA/CPLD器件中的運(yùn)算速度,實(shí)現(xiàn)脈沖寬度快速調(diào)制,響應(yīng)時(shí)間達(dá)納秒級(jí)別。
1 "SPWM不規(guī)則采樣法分析
沖量等效的窄脈沖作用在慣性系統(tǒng)上,慣性系統(tǒng)的輸出或響應(yīng)是基本相同的。SPWM 的產(chǎn)生即通過對(duì)輸入正弦波進(jìn)行脈寬調(diào)制,獲得占空比按正弦規(guī)律來排列的脈沖序列,其脈沖寬度與正弦波幅值呈正相關(guān),與脈沖間的間隔大小呈負(fù)相關(guān),其調(diào)制原理如圖1所示。
lt;E:\王芳\現(xiàn)代電子技術(shù)201506\現(xiàn)代電子技術(shù)15年38卷第6期\Image\49t1.tifgt;
圖1 SPWM示意圖
產(chǎn)生SPWM的方法有多種,本文采用一種不對(duì)稱規(guī)則采樣法,核心思想為選用正弦波作為調(diào)制信號(hào),用更高頻率的三角波作為載波,載波的頂點(diǎn)和底點(diǎn)作為抽樣點(diǎn)對(duì)正弦波進(jìn)行抽樣,再與調(diào)制波進(jìn)行比較判別,決定SPWM的脈沖寬度,局部放大如圖2所示。
lt;E:\王芳\現(xiàn)代電子技術(shù)201506\現(xiàn)代電子技術(shù)15年38卷第6期\Image\49t2.tifgt;
圖2 不對(duì)稱規(guī)則采樣局部放大圖
設(shè)調(diào)制正弦信號(hào)為[Ussin "ωt],載波信號(hào)三角波的電壓峰值為[Uc],周期為[Tc],每個(gè)三角波周期內(nèi)的峰值頂點(diǎn)和底點(diǎn)都對(duì)正弦波進(jìn)行一次采樣,如[t1]和[t2]時(shí)刻對(duì)正弦波進(jìn)行采樣,過正弦波采樣點(diǎn)幅值做平行于時(shí)間軸的水平線,在[Ts]周期內(nèi)與三角波的交點(diǎn)為C點(diǎn)和H點(diǎn),在時(shí)間軸上的投影分別為B和G點(diǎn),BG即為SPWM的導(dǎo)通時(shí)間[ton=Ta+Tb],SPWM的截止時(shí)間[toff=Tc+ton],由圖2易知:
[Ta=Tc4+aTb=Tc4+b] (1)
根據(jù)三角形相似定理,ΔABC~ΔADE和ΔFGH~ΔFJI,結(jié)合式(1)推出:
[Ta=Tc4(1+Msin ωt1)Tb=Tc4(1+Msin ωt2)] (2)
式(2)中[M=UsUc],是正弦波峰值電壓與三角波峰值電壓之比,稱為SPWM的模,模數(shù)M越大,相應(yīng)的SPWM等效的正弦波電壓越高。
令三角波頻率fc與正弦波頻率fs之比為載波比N,則:
[N=fcfs=1Tcfs] (3)
[t1=kTc2t2=(k+1)Tc2] (4)
式中[k]為采樣號(hào)[k=0,1,2,…,N-1]。故式(2)中部分因子:
[ωt1=2πfs?kTc2=kπNωt2=2πfs?(k+1)Tc2=(k+1)πN] (5)
將式(5)代入式(2)可計(jì)算出[Ta]和[Tb]如下所示:
[Ta=Tc41+MsinkπNTb=Tc41+Msin(k+1)πN] (6)
整理得,三角載波一個(gè)周期內(nèi)SPWM的導(dǎo)通時(shí)間[ton]的表達(dá)式為:
[ton=Ta+Tb=Tc42+MsinkπN+Msin(k+1)πN] (7)
由式(7)可以看出,通過確定三個(gè)參數(shù)[Tc]、[M]和[N]即可算出SPWM的脈寬[ton],據(jù)此可知,通過產(chǎn)生三路互成120°的正弦調(diào)制信號(hào)和一個(gè)單通道頻率數(shù)值遠(yuǎn)高于正弦調(diào)制信號(hào)的三角載波信號(hào)進(jìn)行判別運(yùn)算即可輸出三相SPWM,本設(shè)計(jì)可采用FPGA或CPLD作為控制器件,正弦波信號(hào)通過CORDIC算法運(yùn)算產(chǎn)生,利用其高速運(yùn)算性能保證本設(shè)計(jì)的快速響應(yīng),純數(shù)字電路計(jì)算產(chǎn)生的正弦調(diào)制信號(hào)和三角載波信號(hào)頻譜特性好,能夠有效減少輸出電壓的諧波含量,克服了常見SPWM發(fā)生裝置的輸出電壓基波相位遲滯大的缺點(diǎn),可實(shí)現(xiàn)快速控制。
2 "CORDIC算法原理
傳統(tǒng)的DDS產(chǎn)生正弦波一般是基于查找相位?幅值存儲(chǔ)表實(shí)現(xiàn),通過增加地址線位數(shù)提升相位精度指標(biāo),將導(dǎo)致存儲(chǔ)表容量相應(yīng)呈幾何級(jí)數(shù)增長(zhǎng),多路信號(hào)的硬件資源消耗巨大。本文采用的CORDIC(Coordinate Rotation Digital Computer)改進(jìn)型算法可直接計(jì)算得出正弦波形的幅值,以代替DDS中的相位幅度轉(zhuǎn)換單元,釋放查表法所需大量ROM空間,其基本原理如圖3所示。
設(shè)初始向量[V(x,y)],旋轉(zhuǎn)角度[θ]后得到向量[V′′′],坐標(biāo)對(duì)應(yīng)關(guān)系為:
[x′=cosθ(x-ytanθ)y′=cosθ(y+xtanθ)] (8)
選取每一次旋轉(zhuǎn)角度的正切值為2的倍數(shù),即[θi=arctan(2-i)],體現(xiàn)在硬件上即用FPGA的基本移位操作實(shí)現(xiàn)乘法運(yùn)算,因[cosθ=cos-θ],每次旋轉(zhuǎn)可表達(dá)成
[xi+1=Ki(xi-yi?di?2-i)yi+1=Ki(yi+xi?di?2-i)] (9)
式中:[Ki=cos(arctan(2-i))];[di=±1]表示向量的旋轉(zhuǎn)方向,+1表示逆時(shí)針旋轉(zhuǎn);-1表示順時(shí)針旋轉(zhuǎn);[Ki]的乘積為比例因子[K]:
[K=i=0n-1Ki=i=0n-111+2-2i] (10)
由式(10)進(jìn)行數(shù)學(xué)推導(dǎo)可知,當(dāng)?shù)螖?shù)足夠多時(shí),[K]收斂于一個(gè)常數(shù)0.607 252 935 008 881 3,可以將此因子和迭代的最后一級(jí)的結(jié)果相乘,以減少校正運(yùn)算,則可得迭代式(11):
[xi+1=xi-yi?di?2-iyi+1=yi+xi?di?2-i] (11)
每次旋轉(zhuǎn)后的剩余角度為:
[zi+1=zi-di?arctan2-i] (12)
所有旋轉(zhuǎn)角度的總和為:
[Φ=i=0∞di?arctan2-i] " "(13)
將所需產(chǎn)生的角度值為作[Z0]輸入,當(dāng)[Zn→0]時(shí),旋轉(zhuǎn)角度總和[Φ→Z0],此時(shí)向量為單位向量,迭代結(jié)果即實(shí)現(xiàn)了三角函數(shù)數(shù)值逼近,[cos "θ=xn],[sin "θ=yn]。
lt;E:\王芳\現(xiàn)代電子技術(shù)201506\現(xiàn)代電子技術(shù)15年38卷第6期\Image\49t3.tifgt;
圖3 CORDIC原理圖
3 "FPGA的硬件實(shí)現(xiàn)
CORDIC算法的FPGA硬件實(shí)現(xiàn)常見有兩種,循環(huán)迭代結(jié)構(gòu)和流水線結(jié)構(gòu),前者設(shè)計(jì)簡(jiǎn)單,占用資源少,但是N個(gè)迭代周期才能計(jì)算一次值,速度慢,后者結(jié)構(gòu)較為復(fù)雜,需將每一步的迭代進(jìn)行展開,插入寄存器,實(shí)現(xiàn)流水作業(yè),實(shí)質(zhì)上是以硬件資源換取速度,每一個(gè)時(shí)鐘節(jié)拍輸出一次值。本設(shè)計(jì)采用Altera公司的FPGA芯片EP2C8Q208C8N作為主控芯片,借助于Quartus ii開發(fā)平臺(tái),基于自頂向下的設(shè)計(jì)思想,分別設(shè)計(jì)出CORDIC算法和三組不對(duì)稱規(guī)則比較法SPWM產(chǎn)生模塊,相位兩兩相差為120°,構(gòu)建頂層框圖如圖4所示。
具體CORDIC算法模塊采用Verilog HDL硬件描述語(yǔ)言編寫,設(shè)計(jì)了8級(jí)流水線單元,其結(jié)構(gòu)如圖5所示。
[xi]、[yi]的字長(zhǎng)為8 b,最高位為符號(hào)位,因此弦函數(shù)的最大幅值為127,根據(jù)式(10)得出的比例因子[K]可計(jì)算出初始輸入值:
[x0=K?Us=0.607×127=77.089y0=0]
[Zi]的字長(zhǎng)為10 b,最高位和次高位判別象限,低8位對(duì)應(yīng)于0~[π2]的相位,其中一、三象限里[Zi]的低8位與函數(shù)的相位是一一對(duì)應(yīng)關(guān)系,二、四象限里[Zi]的低8位與函數(shù)的相位成逆序?qū)?yīng)關(guān)系,即需要用256減去[Zi]的低8位值后才能與函數(shù)的相位一一對(duì)應(yīng)。
lt;E:\王芳\現(xiàn)代電子技術(shù)201506\現(xiàn)代電子技術(shù)15年38卷第6期\Image\49t4.tifgt;
圖4 頂層三相SPWM原理框圖
lt;E:\王芳\現(xiàn)代電子技術(shù)201506\現(xiàn)代電子技術(shù)15年38卷第6期\Image\49t5.tifgt;
圖5 CORDIC流水線結(jié)構(gòu)圖
所設(shè)計(jì)系統(tǒng)在QuartusⅡ里的運(yùn)行結(jié)果如圖6所示。
通過分析運(yùn)行結(jié)果發(fā)現(xiàn),本設(shè)計(jì)生成的SPWM遲滯極小,頻率變換便捷快速。將此三相SPWM信號(hào)接入死區(qū)發(fā)生器輸出六路PWM信號(hào),再分配到FPGA的相應(yīng)引腳上,便可以驅(qū)動(dòng)橋式三相逆變器的三個(gè)橋臂,輸出三相電源。
lt;E:\王芳\現(xiàn)代電子技術(shù)201506\現(xiàn)代電子技術(shù)15年38卷第6期\Image\49t6.tifgt;
圖6 三相SPWM的運(yùn)行結(jié)果
綜合編譯運(yùn)行結(jié)果如圖7所示,分析可知,本設(shè)計(jì)只用到2個(gè)片內(nèi)鎖相環(huán),不需要乘法器和記憶體,邏輯資源占用不到10%,占用資源極少。
lt;E:\王芳\現(xiàn)代電子技術(shù)201506\現(xiàn)代電子技術(shù)15年38卷第6期\Image\49t7.tifgt;
圖7 綜合編譯結(jié)果
4 "結(jié) "語(yǔ)
本文設(shè)計(jì)了一種基于CORDIC算法的三相SPWM發(fā)生器,詳述了其原理和硬件實(shí)現(xiàn)方法,并通過Verilog語(yǔ)言對(duì)算法進(jìn)行模塊化設(shè)計(jì),在Quartus Ⅱ里調(diào)用生成的算法模塊,實(shí)現(xiàn)了三相SPWM的設(shè)計(jì)。基于FPGA的三相SPWM發(fā)生器模塊采用全數(shù)字結(jié)構(gòu)實(shí)現(xiàn),可實(shí)現(xiàn)準(zhǔn)確初始相位設(shè)置,相較于傳統(tǒng)SPWM具備明顯的優(yōu)勢(shì),方法新穎簡(jiǎn)單,可操作性強(qiáng),節(jié)省了大量理論計(jì)算,能夠有效抑制輸出SPWM波形的諧波含量,具有低成本、高靈活性、高精度、高可靠性和可移植性等優(yōu)點(diǎn),因此可以與其他功能模塊或IP核相結(jié)合應(yīng)用于高效率的正弦驅(qū)動(dòng)場(chǎng)合,實(shí)現(xiàn)工業(yè)級(jí)應(yīng)用。
參考文獻(xiàn)
[1] 戴珂,王艦成,陳睿,等.兩種典型的三相SPWM 逆變器電路比較[J].電工技術(shù)學(xué)報(bào),2012,27(2):82?88.
[2] 殷繼偉.SPWM逆變器驅(qū)動(dòng)下異步電機(jī)的諧波分析[D].哈爾濱:哈爾濱理工大學(xué),2012.
[3] 張燕賓.SPWM變頻調(diào)速應(yīng)用技術(shù)[M].北京:機(jī)械工業(yè)出版社,2012.
[4] LIN Fan, LI Kun, LIU Yang. A design and implementation of edge controller for SPWM waves [C]// Proceeding of the IEEE International Conference on Information and Automation. Shenzhen, China: IEEE, 2011: 764?767.
[5] LAKKA Matina, KOUTROULIS Eftichios, DOLLAS Apostolos. Development of an FPGA?based SPWM generator for high switching frequency DC/AC inverters [J]. IEEE Transactions on power electronics, 2014, 29(1): 356?365.
[6] LU Yuan, JIAO Peng?peng, ZHANG Bin. The principle and realization of single?phase SPWM wave based on the counter method [C]// International Conference on System Science, Engineering Design and Manufacturing Informatization. Chengdu, China: [s.n.], 2012, 3: 10?13.
[7] 彭卓,鄧焱,馬騁,等.基于FPGA的高精度正弦信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)[J].清華大學(xué)學(xué)報(bào):自然科學(xué)版,2014,54(2):197?201.
[8] 汪洋.基于CORDIC算法直接數(shù)字頻率合成器研究[D].哈爾濱:哈爾濱理工大學(xué),2012.
[9] 陸鵬威,梅杓春.基于CORDIC算法實(shí)現(xiàn)三角函數(shù)的運(yùn)算[J].理論與方法,2008,27(1):10?19.
[10] MILAN Ghader, MOHAMADIAN Mustafa, SEIFI Ebrahim, et al. A novel SPWM strategy for single? to three?phase matrix converter [C]// Power Electronics, Drive Systems and Technologies Conference (PEDSTC). Tehran, Iran: [s.n.], 2011, 2: 495?500.
[11] 陳義和,佘磊,李交美.基于CORDIC算法的FPGA設(shè)計(jì)與優(yōu)化[J].微電子學(xué)與計(jì)算機(jī),2012,29(8):111?114.
[12] 鄧清秀.三相逆變器PWM實(shí)現(xiàn)方法研究[D].武漢:武漢工程大學(xué),2006.
[13] WU F J, SUN B, PENG H R. Single?phase three?level SPWM scheme suitable for implementation with DSP [J]. Electronics Letters 2011, 47(17): 994?996.
[14] 宋丹.CORDIC算法在DDS中的應(yīng)用[D].成都:電子科技大學(xué),2007.
[15] 聶偉,饒金玲.基于改進(jìn)型CORDIC算法和FPGA的DDS實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2013,39(12):45?48.
[16] 陳洋,管國(guó)云,聶在平.基于DDS和DSM的多通道信號(hào)源的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)井技術(shù),2013,37(1):75?79.