三相SPWM的設(shè)計(jì)及其優(yōu)化方法簡介
三相SPWM的產(chǎn)生一般可以通過三相相位上互差120°的正弦波與三角波比較來實(shí)現(xiàn)。三相正弦表可以由三個(gè)獨(dú)立的相位互差120°的正弦表組成,這在設(shè)計(jì)思路上是簡單的,但實(shí)際中卻有很大的浪費(fèi)。 目前有人采用了分時(shí)復(fù)用的方法來減少三相正弦表所占用的邏輯門[1]。從正弦波的波形
本文引用地址:http://butianyuan.cn/article/176435.htm可以看出,正弦波具有很好的對稱性,還能對正弦表再進(jìn)行優(yōu)化。
因此,本文提出了利用分時(shí)復(fù)用以及正弦波的對稱性,對三相正弦表進(jìn)一步優(yōu)化,以進(jìn)一步減少正弦表所占用的邏輯門,提高FPGA的利用率。
1 數(shù)據(jù)的合成
數(shù)據(jù)合成由分時(shí)復(fù)用電路和運(yùn)算電路兩部分組成。通過分時(shí)復(fù)用,使得所需的正弦表減少到原來的1/3,即產(chǎn)生三相正弦波只需一個(gè)正弦表。運(yùn)算電路利用正弦波的對稱性,使得實(shí)現(xiàn)一個(gè)完整周期的正弦波只需1/4周期的正弦表。兩者結(jié)合,從而完成三相正弦波只需一個(gè)1/4周期的 正弦表,達(dá)到最大程度的節(jié)省資源的目的。
1.1 分時(shí)復(fù)用原理及其應(yīng)用
分時(shí)復(fù)用的原理是各路信號占用同一信道的不同時(shí)間間隙進(jìn)行信號傳輸。具體到本電路就是利用對正弦表尋址的高速度,使一個(gè)正弦表在不同時(shí)間段查詢不同相的正弦波的幅值,以達(dá)到減少正弦表所占用的FPGA資源的目的。
電路的具體實(shí)現(xiàn):三路在相位上互差120°的地址數(shù)據(jù)并行輸入,通過一個(gè)三選一的選擇器來進(jìn)行選擇,選擇器的控制端接三進(jìn)制的計(jì)數(shù)器[1]。如,計(jì)數(shù)器為0時(shí),輸出的是A相的地址。計(jì)數(shù)器為1時(shí),輸出的是B相的地址。計(jì)數(shù)器為2時(shí),輸出的是C相的地址。因此只要使輸入的三相地址周期性變化,就實(shí)現(xiàn)了并行輸入的三相地址數(shù)據(jù)在時(shí)間上形成了連續(xù),也就實(shí)現(xiàn)了三相地址數(shù)據(jù)的合成。這樣就可以利用一個(gè)正弦表來得到三相的正弦值。把正弦表減少到?jīng)]有采用分時(shí)復(fù)用時(shí)的1/3。該部分電路的仿真波形如圖1所示。圖中ADDA,ADDB,ADDC分別為A相,B相和C相的相位值。ADDRESS為合成一路后的相位值。
1.2 正弦波的對稱性及其應(yīng)用
由正弦波波形可知,正弦波具有很好的對稱性。π/2~π的幅值大小與0~π/2的幅值大小相同,只是他們在時(shí)間上出現(xiàn)的順序剛好相反。π~3π/2的幅值與0~π/2的幅值的絕對值相同,極性相反。3π/2~2π部分的幅值與π~3π/2的大小相等,只是時(shí)間上出現(xiàn)的順序相反。因此,根據(jù)正弦波的對稱性,只在正弦表ROM中存有相位0~π/2時(shí)的幅值。利用0~π/2相位時(shí)的幅值產(chǎn)生完整的正弦波波形。 產(chǎn)生正弦波首先需要對正弦表進(jìn)行尋址,把量化的相位值轉(zhuǎn)化為對應(yīng)的量化的幅值。由于正弦表ROM中僅存有相位0~π/2時(shí)的幅值,而π/2~π,3π/2~2π的絕對值與相位0~π/2的幅值在時(shí)間上出現(xiàn)的順序相反,因此,要獲得π/2~π,3π/2~2π的幅值必須對相位0~π/2時(shí)的幅值進(jìn)行反向?qū)ぶ贰7聪鄬ぶ吠ㄟ^地址輸入矢量取反來實(shí)現(xiàn)[2]。本設(shè)計(jì)把周期2π量化為8位,即對一個(gè)正弦波周期進(jìn)行256次取樣。因此對0~π/2相位尋址所需的地址線為64條。ADDRESS定義為STD_LOGIC_VECTOR(7DOWNTO0),ADDRESS低6位用于對ROM表進(jìn)行尋址,當(dāng)?shù)刂窋?shù)據(jù)ADDRESS(6)為“1”時(shí),對地址ADDRESS的低6位取反再對ROM尋址。
正弦波的負(fù)半周的形成。由于負(fù)半周的幅值與正半周的幅值在極性上相反,因此對輸出的對應(yīng)的幅值取反。幅值是否取反由輸入的地址數(shù)據(jù)ADDRESS(7)決定,當(dāng)ADDRESS(7)為“1”時(shí),對應(yīng)的輸出幅值取反[2]。并把ADDRESS(7)取反作為最終輸出的正弦波幅值的最高位。這樣做實(shí)際上把正弦波向Y軸正方向平移了一個(gè)幅值,避免了幅值出現(xiàn)負(fù)值。
這樣在分時(shí)復(fù)用的基礎(chǔ)上,通過利用正弦波的對稱性,完成了三相數(shù)據(jù)只需一個(gè)1/4周期的ROM即可查詢。在分時(shí)復(fù)用和利用正弦波對稱性2個(gè)相對獨(dú)立的模塊連接的過程中必須考慮到時(shí)序的問題。如果只是把2個(gè)模塊簡單的連接到一塊,只能產(chǎn)生一相的SPWM,如果時(shí)序上解決不好,產(chǎn)生的三相正弦波精度會受到影響,一個(gè)周期的正弦波不再由256個(gè)點(diǎn)組成,如果這樣,也就失去了優(yōu)化的意義。
2 數(shù)據(jù)的分離
由以上可知,從一個(gè)1/4正弦波周期的ROM表中可以得到三相相位互差120°的正弦波的幅值,但是由于輸入的三相地址在時(shí)間上是連續(xù)的,即對ROM表尋址的地址只有一路,因此,雖然得到了三相正弦波的幅值,可是他們是按ADDRESS中各相之間的關(guān)系混合在一起的。因此,必須對所得到的幅值進(jìn)行分離,才能得到三相正弦波。由波形ADDRESS中各相地址的相互關(guān)系可知,分離數(shù)據(jù)只要把分時(shí)復(fù)用的合成部分反接即可,仿真波形如圖2所示(為了使在同一個(gè)波形中可以同時(shí)看清DATA中的各項(xiàng)數(shù)據(jù),圖2對MAXPLUSⅡ的仿真波形的2.0μs之前的輸出零部分進(jìn)行了截去。)圖中DATA為根據(jù)1/4周期正弦表所得的三相混合數(shù)據(jù),DATAA,DATAB,DATAC分別為分離后A相,B相和C相的相位對應(yīng)的幅值。由三相正弦波幅值之間的相互關(guān)系和變化趨勢可以得知,輸出的數(shù)據(jù)是正確的。最后把所得的三相數(shù)據(jù)鎖存,再與產(chǎn)生的三角波比較產(chǎn)生三相六路SPWM。
3 結(jié)語
由以上分析及仿真可知,采用一個(gè)1/4周期的正弦表實(shí)現(xiàn)三相正弦數(shù)據(jù)的查詢是可行的。這將極大的節(jié)省所用FPGA的門數(shù),提高其利用率,極大地降低編程的勞動量,且輸出的三相正弦波與不利用分時(shí)復(fù)用和正弦波對稱性時(shí)相比,精度不受任何影響,每個(gè)正弦周期還是由256個(gè)點(diǎn)組成,只是正弦波的頻率有所降低,這是由于系統(tǒng)的速度和占用面積之間本來就是一種矛盾。圖3是本次設(shè)計(jì)產(chǎn)生的三相六路SPWM,系統(tǒng)仿真的時(shí)鐘周期為200ns,由于FPGA的系統(tǒng)時(shí)鐘頻率可以達(dá)到很高,所以不會對輸出的SPWM頻率產(chǎn)生影響。
評論