SPWM(Sinusoidal Pulse Width Modulation),即正弦脈寬調(diào)制,它以頻率與期望的輸出電壓波相同的正弦波作為調(diào)制波,以頻率比期望波高得多的等腰三角波作為載波,當(dāng)調(diào)制波與載波相交時,由它們的交點確定逆變器開關(guān)器件的通斷時刻,從而獲得幅值相等、寬度按正弦規(guī)律變化的脈沖序列。雙極性控制的PWM方式如圖1所示。
圖1 雙極性控制的PWM方式
接下來介紹FPGA的實現(xiàn)過程,首先用Quartus II軟件、波形生成工具或者matlab等生成一定頻率的正弦波和等腰三角波的mif格式的文件,如圖2所示。
圖2 生成的mif文件
建立工程,并使用兩個單端口rom的ip核,分別存放正弦波和三角波的mif文件的數(shù)據(jù),如圖3所示。
圖3 配置rom的ip核
編寫設(shè)計文件和仿真文件,并包含到工程中,同時設(shè)置仿真參數(shù)。設(shè)計文件的核心語句如下:
//cnt_sine:正弦波rom對應(yīng)地址
always @ (posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n)
cnt_sine<=11'd0;
else if(cnt_sine==CNT_SINE_MAX)
cnt_sine<=11'd0;
else
cnt_sine<=cnt_sine+1'b1;
end
//cnt_triangle:三角波rom存放地址
always @ (posedge sys_clk or negedge sys_rst_n) begin
if(!sys_rst_n)
cnt_triangle<=8'd0;
else if(cnt_triangle==CNT_TRIANGLE_MAX)
cnt_triangle<=8'd0;
else
cnt_triangle<=cnt_triangle+1'b1;
end
//生成PWM信號
assign pwm_0=(q_sine > q_triangle) ? 1'b1 : 1'b0;
assign pwm_1=~pwm_0;
assign pwm_2=pwm_0;
assign pwm_3=pwm_1;
接下來對工程進(jìn)行編譯,編譯通過后啟動功能仿真。在modelsim進(jìn)行一些基本的配置后,生成的仿真波形如圖4所示,驗證通過。
圖4 仿真波形
-
matlab
+關(guān)注
關(guān)注
188文章
2995瀏覽量
233189 -
正弦波
+關(guān)注
關(guān)注
11文章
651瀏覽量
56278 -
PWM
+關(guān)注
關(guān)注
116文章
5364瀏覽量
217991 -
逆變器
+關(guān)注
關(guān)注
293文章
4857瀏覽量
210011 -
仿真
+關(guān)注
關(guān)注
51文章
4234瀏覽量
135290 -
SPWM
+關(guān)注
關(guān)注
14文章
360瀏覽量
61438
發(fā)布評論請先 登錄
請教一下FPGA做SPWM波時幅度控制的原理是什么?
請問FPGA做SPWM波時幅度控制的原理是什么?
SPWM波調(diào)制技術(shù)
基于STM32的SPWM調(diào)制實現(xiàn)方法是什么
STM32的SPWM產(chǎn)生的原理及其過程是怎樣的
SPWM調(diào)制技術(shù)及其應(yīng)用

SPWM調(diào)制方法對比分析
采用FPGA的SPWM變頻系統(tǒng)設(shè)計

基于FPGA的SPWM變頻系統(tǒng)設(shè)計

評論