双极性SPWM波生成
本篇文章主要介紹用于逆變電路的雙極性SPWM波生成。
SPWM波就是脈沖寬度按正弦規律變化和正弦波等效的PWM波形,用于控制逆變電路中開關器件的通斷,使其輸出的脈沖電壓的面積與所希望輸出的正弦波在相應區間內的面積相等,經濾波后可以得到正弦波輸出(也就是交流電)。通過改變調制波的頻率和幅值則可調節逆變電路輸出電壓的頻率和幅值。
-
1、SPWM波生成
簡單來說,spwm波就是以正弦波為調制波,三角波為載波調制生成的。接下來就介紹一下正弦波和三角波是怎么生成的吧。
-
2、三角波生成
三角波生成挺簡單的,利用計數器遞增就行了,在這里其實可以用三角波,也可以用鋸齒波,但一般來說,用三角波效果應該會好很多。因為我寫的代碼是verilog,就直接把verilog代碼貼出來吧。
或者這個
module tri_rom( input clk, input [15:0] top, output reg [15:0] tri_wave ); reg [15:0] cnt=16'd0; always@(posedge clk) begin if(cnt<top) cnt<=cnt+1'd1; else cnt<=15'd0; if(cnt<(top/2))tri_wave<=cnt*8; elsetri_wave<=(top-cnt)*8; end endmodule也可以用波表來生成。
原理大家自己理解,挺簡單的,不做過多描述
-
3、正弦波生成
正弦波的生成就是靠波表。先在matlab生成一個正弦波波表。然后在quatus中創建一個ROM
把matlab中生成的正弦波表導入進來
ROM就設置好了,需要注意的是,ROM讀取的位數和容量要和matlab生成的波表一致。在verilog中讀取波表的頻率可以自行控制,主要的方法是:假設我們波表中有1000個數,也就是說,一個周期的正弦波采樣1000個數形成波表?,F在用50KHz的時鐘,以10為步進讀取波表,那么顯然需要讀取1000/10=100次才能輸出一個正弦波表。也就是說,我們需要50KHz/100=500Hz的頻率輸出一個波表,即輸出正弦波的頻率為500Hz。
順表提一下,為了精確的控制頻率,這個步進10(也可以說是頻率控制字)可以用定點數進行運算。
再貼一下正弦波生成的代碼
-
4、生成SPWM波
將三角波和正弦波進行比較就可以得到SPWM波。在逆變中,要考慮到調制度以及偏置的問題,如下圖:
-
5、單極性SPWM波和雙極性SPWM波的區別
最后想說一下單極性和雙極性的區別。主要就是單極性在峰值(±1)處的占空比最大,占空比變化規律是從小到大,再從大到小。單極性應該可以用余弦波代替正弦波生成(如果不是,希望指正!)
總結
以上是生活随笔為你收集整理的双极性SPWM波生成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 65款天文摄影宇宙星空清晰效果Light
- 下一篇: 《Photoshop Lightroom