採用MATLAB對SPWM進行輔助設計

2021-01-08 電子產品世界

本文引用地址:http://www.eepw.com.cn/article/179556.htm

1概述

傳統的SPWM採用頻率數倍於正弦波的三角波調製正弦波,可得到近似於正弦波的輸出。三角波的頻率越高,即載波比越高,諧波的頻率就越高,輸出端濾波器就更容易去除諧波。在輸出頻率固定的場合,如正弦波逆變電源,其輸出頻率固定在50Hz左右,這種場合採用軟體設計可降低系統的成本,一般將數據存入存儲器,通過CPU的定時器中斷調用可完成SPWM控制。在變頻場合,如三相交流異步電機的驅動,由於需要輸出三相變頻的SPWM信號,一般採用8254可編程定時器,以減少CPU的工作量。

SPWM設計採用傳統方法得到的正弦波較理想,由於三角波是超越方程,正弦信號用單片機產生也較困難,因此,傳統方法較難實現。現在有許多新方法產生,這些方法實現簡單但對生成的正弦波影響不大,如對稱規則採樣法,雙緣調製法等。

MATLAB是一個高級的數學分析與運算軟體,具有強大的計算功能。SPWM控制通過MATLAB進行分析和設計,可取得事半功倍的效果。

以下的分析若無特殊說明,均基於雙極型調製,基頻為50Hz的SPWM控制。

2SPWM數據的計算

採用MATLAB可方便地得到正弦波與三角波的交點。在判斷交點時,可通過交點的數學定義來判斷。所謂交點,就是在交點附近時刻兩函數之差值的絕對值趨於0,而在交點附近的極小區域,離交點越遠,差值的絕對值逐漸增大。以下子程序為計算交點的MATLAB程序。x為基波數據,y為載波數據,m為交點時刻數據。

fori=2:n

if(abs(x(i)-y(i))=abs(x(i+1)-y(i+1)))&(abs(x(i)-y(i))=abs(x(i-1)-y(i-1)))

m(j)=i;

j=j+1

end;

end;

3各種SPWM算法的分析

(1)傳統的SPWM法

將50Hz的正弦波與10kHz的三角波相交,將採樣的數據存為n。

計算功率頻譜程序

l=fft(n,1024);

p=l.*conj(1)/1024;

f=l:1024;

plot(f,p,`b');

由以上程序可得輸出頻譜圖,如圖1所示。

圖1中橫軸為數字頻率,數字n對應的頻率f=50n

將三角波頻率提高4倍,輸出頻譜圖如圖2所示。

可見,隨著三角波頻率的提高,輸出的電壓中諧波頻率也隨之提高。

圖1m=0.94,f=2.5kHz對應的輸出頻譜


相關焦點

  • Matlab輔助DSP設計FIR數字濾波器
    嵌入式對象 在Matlab環境中創建,該對象可代表嵌入在目標C程序中的變量,由其可以直接對嵌入在目標DSP存貯器/寄存器中的變量進行操作。  下面利用Matlab與CCS及目標DSP的連接利用Matlab輔助DSP實現一個低通FIR數字濾波器並把實現的濾波結果和Matlab中仿真的濾波結果進行比較。
  • matlab中的成型濾波器設計
    matlab 中成型濾波器設計有好幾個函數:rcosineFd=9600;Fs=38.4e3;[num,den] = rcosine(Fd,Fs,'sqrt',0.25);freqz(num);其中的Fd表示輸入數據的採樣率
  • 應用matlab進行多項式擬合
    採用matlab軟體中的polyfit()函數進行多項式擬合,分別採用5階多項式和9階多項式進行擬合,並對擬合結果進行繪圖對比。
  • 使用 matlab 進行傅立葉分析和濾波
    );title('合成信號'),xlabel('時間/s');運行結果如下所示:快速傅立葉matlabx,y定義如上,N是正整數,表示進行N點快速傅立葉變換。如果x長度小於N,則對x補零,使之與N相等;反則,則對x進行截取。對應的逆變換有兩種,分別為x=ifft(y)和x=ifft(y.N)。一般而言,N點fft的結果y,在處對應的頻率為最高採樣率的一半,y的後一半與前一半對稱。下例 是將振幅為1的5Hz正弦波和振幅為0.5的10Hz正弦波相加之後進行傅立葉分析。
  • 一種改進型的FIR數字濾波器設計
    目前常用的濾波器設計方法普遍採用matlab仿真,dsp實現。但這一傳統設計方法需要的開發周期較長,且設計過程反覆進行,非常不便。 本文引用地址:http://www.eepw.com.cn/article/20805.htm 針對這一問題,出現了系統級設計方法的構想將matlab算法仿真和dsp的實現融合在一起。
  • SPWM變頻調速的基本原理與在交流伺服電機中SPWM變頻調速方法
    本文引用地址:http://www.eepw.com.cn/article/201710/365267.htm    spwm變頻調速  spwm的應用  SA8281型SPWM波發生器原理及在變頻器中的應用  脈寬調製技術通過一定的規律控制開關元件的通斷,來獲得一組等幅而不等寬的矩形脈衝波形,用以近似正弦電壓波形。脈寬調製技術在逆變器中的應用對現代電力電子技術以及現代調速系統的發展起到極大的促進作用。
  • 用matlab對信號進行傅立葉變換的入門實例
    來源:博客園-走豈來的博客傅氏變換分析是信號分析中很重要的方法,藉助matlab可以很方便的對各類信號進行傅氏頻域分析
  • 基於MATLAB的理想低通濾波器的設計
    打開APP 基於MATLAB的理想低通濾波器的設計 發表於 2018-01-26 13:34:52 對於不同濾波器而言,每個頻率的信號的強弱程度不同
  • 如何利用ARM裡的PWM模塊產生SPWM波
    主要程序如下:本文引用地址:http://www.eepw.com.cn/article/201611/316675.htmconst INT16U spwmwidth[spwmct]={24,72,120,168,215,262,308,353,398,441,484,525,565,604,641,677, 711,743,774,803,829,854,877,897,916,932,946,958,967,974,979,981
  • 用matlab對信號進行傅立葉變換
    傅氏變換分析是信號分析中很重要的方法,藉助matlab可以很方便的對各類信號進行傅氏頻域分析。
  • 小波變換進行圖像壓縮matlab原始碼源程序
    小波變換進行圖像壓縮matlab原始碼源程序
  • 如何用matlab對信號進行傅立葉變換
    傅氏變換分析是信號分析中很重要的方法,藉助matlab可以很方便的對各類信號進行傅氏頻域分析。
  • 基於MATLAB軟體心跳呼吸模型建立與仿真設計
    在生命探測和醫學研究領域,都需要進行心跳呼模型的仿真。MATLAB是MathWorks公司於1982年推出的一款高性能的數值計算和可視化數學軟體。它可以用來求解各類學科問題,包括信號處理、圖象處理、神經網絡、控制系統辨識等。用MATLAB對心跳呼吸進行仿真,可以大大提高仿真工作效率。
  • 一文解析stm32產生spwm原理及程序
    打開APP 一文解析stm32產生spwm原理及程序 發表於 2018-05-18 09:11:49 本文主要詳解stm32產生spwm原理及程序,首先來了解一下生成SPWM波的基理是什麼,具體得跟隨小編一起來了解一下。
  • 基於EG8010-SPWM純正弦波逆變器設計
    摘要:為滿足風力發電系統對純正弦波逆變器的要求,設計了一種以EG8010-SPWM為核心的逆變器。主電路採用升壓斬波電路和單相全橋逆變電路,降低了噪聲,提高了效率。
  • stc12c5a60s2單片機spwm發生程序帶仿真文件
    包含文件和仿真文件的下載地址:http://www.51hei.com/f/stc12c5a60s2_spwm.zip下面是主程序部分:#include #include
  • matlab矩陣及其運算(三)
    大家好,感謝大家對matlab愛好者公眾號的厚愛!
  • 有關matlab三角函數角度與弧度計算的小竅門
    不知你有沒有注意到,當在matlab計算sin(30),cos(60)時候出來的並不是你想要的0.5,這到底是為啥呢,原來matlab這種形如「sin, cos, tan」等函數計算的時候採用的是弧度制而不是我們平常所理解的角度制。那麼問題來了,該如何解決這個問題呢?
  • matlab濾波器設計-IIR濾波器的設計與仿真
    1 引言 在現代通信系統中,由於信號中經常混有各種複雜成分,所以很多信號的處理和分析都是基於濾波器而進行的。但是,傳統的數字濾波器的設計使用繁瑣的公式計算,改變參數後需要重新計算,從而在設計濾波器尤其是高階濾波器時工作量很大。
  • matlab矩陣及其運算(五)
    感謝大家對matlab愛好者公眾號的關注!如果公眾號文章對您有幫助,別忘了點擊分享和「在看」哦!