<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > S-Function在TMS320F2812的SVPWM算法仿真

          S-Function在TMS320F2812的SVPWM算法仿真

          作者: 時間:2011-08-19 來源:網絡 收藏

          無論電壓矢量落在哪個扇區(qū),都可以用相鄰的兩個有效電壓矢量和零矢量對其合成。這里以扇區(qū)3為例,Vref=Vα+jVβ,Vx、Vy代表相鄰電壓矢量(即V1、V2)。Tpwm是開關周期,To、Tx、Ty分別是零矢量、Vx、Vy的作用時間。當開關周期遠小于信號周期時,在一個開關周期中可以認為電壓矢量是不變的,即:
          c.jpg
          為了保證波形對稱,把每個狀態(tài)的作用時間一分為二,正如圖2中的開關序列圖所示,這樣既能控制電壓輸出的大小,又能消除偶次諧波。
          將每個扇區(qū)中各電壓矢量作用時間都計算出來,按照圖2所示的對稱序列分別分配給3個開關序列Sa、Sb、Sc,并轉換為TMS320三個比較寄存器的比較值,便可輸出脈寬不同的脈沖波且基頻是互為120°的正弦波。
          2.2 移植工程為函數(shù)
          根據(jù)上述原理在CCS中建立了一個基于TMS320算法工程,包含對DSP進行系統(tǒng)初始化,并初始化所需外設,如EVA、GPIO、PIE等?;舅惴ù嬗贒SP28_svpwm.c文件中。具體功能配置可以參考相關書籍,篇幅所限,這里不再累述。DSP在每個上溢中斷或下溢中斷時調用算法進行扇區(qū)判斷、作用時間計算及比較值的確定,然后將比較值賦給EVA的3個比較值寄存器。通過與EVA的雙向計數(shù)器進行比較,產生3路占空比不同的脈沖波,通過GPIO_A口的PWM1、PWM3、PWM5輸出,并且DSP會自動將這3路信號進行反向,通過另外3個GFIO_A口(PWM2、PWM4、PWM6)輸出。
          在MATLAB中打開之前,由模板另外存為svpwm.c文件。該文件主要用于實現(xiàn)對CCS程序的接口移植。函數(shù)都是在其他C文件中編寫的,所以在本文件的開頭包含所用到的頭文件和C文件,并且將所用的頭文件和C文件都與建立的模型放在同一目錄下。這也是該種鏈接方法的關鍵和精髓,仿真完成后可以不需要改動CCS程序便可直接在CCS中編譯使用。

          3 仿真模型與仿真結果
          在MATLAB/Simulink中搭建一個理想的三相全橋逆變器系統(tǒng),用以驗證SVPWM算法的正確性。模型如圖3所示,其中SVPWM模塊被封裝成了一個子系統(tǒng),以便系統(tǒng)進行管理和擴展。對三相電壓進行采樣,將得到的值送入SVPWM子系統(tǒng)中進行處理。

          本文引用地址:http://www.ex-cimer.com/article/191048.htm

          d.jpg


          這里需要將三相電壓Va、Vb、Vc進行坐標系變換,變?yōu)閮上囔o止坐標系中的電壓Vα、Vβ,作為的輸入?yún)?shù)。坐標變換也用一個子系統(tǒng)完成,如圖4所示。在該子系統(tǒng)中調用C-MEX編寫的進行比較值的計算,并通過produce PWM輸出波形。

          e.jpg

          c++相關文章:c++教程




          關鍵詞: S-Function F2812 SVPWM 2812

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();