日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

双极性SPWM波生成

發(fā)布時間:2024/1/1 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 双极性SPWM波生成 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本篇文章主要介紹用于逆變電路的雙極性SPWM波生成。
SPWM波就是脈沖寬度按正弦規(guī)律變化和正弦波等效的PWM波形,用于控制逆變電路中開關(guān)器件的通斷,使其輸出的脈沖電壓的面積與所希望輸出的正弦波在相應(yīng)區(qū)間內(nèi)的面積相等,經(jīng)濾波后可以得到正弦波輸出(也就是交流電)。通過改變調(diào)制波的頻率和幅值則可調(diào)節(jié)逆變電路輸出電壓的頻率和幅值。

  • 1、SPWM波生成

    簡單來說,spwm波就是以正弦波為調(diào)制波,三角波為載波調(diào)制生成的。接下來就介紹一下正弦波和三角波是怎么生成的吧。

  • 2、三角波生成

    三角波生成挺簡單的,利用計數(shù)器遞增就行了,在這里其實可以用三角波,也可以用鋸齒波,但一般來說,用三角波效果應(yīng)該會好很多。因為我寫的代碼是verilog,就直接把verilog代碼貼出來吧。

module tri_rom ( input clk, input rst_n, input [11:0]top, output reg [11:0]tri_wave );reg [11:0]cnt;always@(posedge clk or negedge rst_n) begin if(!rst_n)cnt<=12'd0;else beginif(cnt<top)cnt<=cnt+12'd1;elsecnt<=12'd0;if(cnt<(top/2))tri_wave<=cnt*2;elsetri_wave<=(top-cnt)*2;end endendmodule

或者這個

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中創(chuàng)建一個ROM


    把matlab中生成的正弦波表導(dǎo)入進來

    ROM就設(shè)置好了,需要注意的是,ROM讀取的位數(shù)和容量要和matlab生成的波表一致。

    在verilog中讀取波表的頻率可以自行控制,主要的方法是:假設(shè)我們波表中有1000個數(shù),也就是說,一個周期的正弦波采樣1000個數(shù)形成波表?,F(xiàn)在用50KHz的時鐘,以10為步進讀取波表,那么顯然需要讀取1000/10=100次才能輸出一個正弦波表。也就是說,我們需要50KHz/100=500Hz的頻率輸出一個波表,即輸出正弦波的頻率為500Hz。
    順表提一下,為了精確的控制頻率,這個步進10(也可以說是頻率控制字)可以用定點數(shù)進行運算。
    再貼一下正弦波生成的代碼

module sin( input clk, input rst_n, input [10:0]KW, output [10:0]out_sin );reg [20:0]phase;always@(posedge clk or negedge rst_n) begin if(!rst_n)phase<=21'd0;elsephase<=phase+KW;end wire [10:0]addr_sin=(phase[20:10]>11'd1024)?(phase[20:10]-11'd1024):phase[20:10];sin_rom rom_sin_inst (.address ( addr_sin ),.clock ( clk ),.q ( out_sin ) ); endmodule
  • 4、生成SPWM波

    將三角波和正弦波進行比較就可以得到SPWM波。在逆變中,要考慮到調(diào)制度以及偏置的問題,如下圖:

  • 5、單極性SPWM波和雙極性SPWM波的區(qū)別

    最后想說一下單極性和雙極性的區(qū)別。主要就是單極性在峰值(±1)處的占空比最大,占空比變化規(guī)律是從小到大,再從大到小。單極性應(yīng)該可以用余弦波代替正弦波生成(如果不是,希望指正!)

總結(jié)

以上是生活随笔為你收集整理的双极性SPWM波生成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。