S-Function在TMS320F2812的SVPWM算法仿真
無論電壓矢量落在哪個(gè)扇區(qū),都可以用相鄰的兩個(gè)有效電壓矢量和零矢量對(duì)其合成。這里以扇區(qū)3為例,Vref=Vα+jVβ,Vx、Vy代表相鄰電壓矢量(即V1、V2)。Tpwm是開關(guān)周期,To、Tx、Ty分別是零矢量、Vx、Vy的作用時(shí)間。當(dāng)開關(guān)周期遠(yuǎn)小于信號(hào)周期時(shí),在一個(gè)開關(guān)周期中可以認(rèn)為電壓矢量是不變的,即:
![c.jpg](http://editerupload.eepw.com.cn/fetch/20131118/191048_2_0.jpg)
為了保證波形對(duì)稱,把每個(gè)狀態(tài)的作用時(shí)間一分為二,正如圖2中的開關(guān)序列圖所示,這樣既能控制電壓輸出的大小,又能消除偶次諧波。
將每個(gè)扇區(qū)中各電壓矢量作用時(shí)間都計(jì)算出來,按照?qǐng)D2所示的對(duì)稱序列分別分配給3個(gè)開關(guān)序列Sa、Sb、Sc,并轉(zhuǎn)換為TMS320F2812三個(gè)比較寄存器的比較值,便可輸出脈寬不同的脈沖波且基頻是互為120°的正弦波。
2.2 移植SVPWM工程為S-Function函數(shù)
根據(jù)上述原理在CCS中建立了一個(gè)基于TMS320F2812的SVPWM算法工程,包含對(duì)DSP進(jìn)行系統(tǒng)初始化,并初始化所需外設(shè),如EVA、GPIO、PIE等?;舅惴ù嬗贒SP28_svpwm.c文件中。具體功能配置可以參考相關(guān)書籍,篇幅所限,這里不再累述。DSP在每個(gè)上溢中斷或下溢中斷時(shí)調(diào)用SVPWM算法進(jìn)行扇區(qū)判斷、作用時(shí)間計(jì)算及比較值的確定,然后將比較值賦給EVA的3個(gè)比較值寄存器。通過與EVA的雙向計(jì)數(shù)器進(jìn)行比較,產(chǎn)生3路占空比不同的脈沖波,通過GPIO_A口的PWM1、PWM3、PWM5輸出,并且DSP會(huì)自動(dòng)將這3路信號(hào)進(jìn)行反向,通過另外3個(gè)GFIO_A口(PWM2、PWM4、PWM6)輸出。
在MATLAB中打開之前,由模板另外存為svpwm.c文件。該文件主要用于實(shí)現(xiàn)對(duì)CCS程序的接口移植。函數(shù)都是在其他C文件中編寫的,所以在本文件的開頭包含所用到的頭文件和C文件,并且將所用的頭文件和C文件都與建立的模型放在同一目錄下。這也是該種鏈接方法的關(guān)鍵和精髓,仿真完成后可以不需要改動(dòng)CCS程序便可直接在CCS中編譯使用。
3 仿真模型與仿真結(jié)果
在MATLAB/Simulink中搭建一個(gè)理想的三相全橋逆變器系統(tǒng),用以驗(yàn)證SVPWM算法的正確性。模型如圖3所示,其中SVPWM模塊被封裝成了一個(gè)子系統(tǒng),以便系統(tǒng)進(jìn)行管理和擴(kuò)展。對(duì)三相電壓進(jìn)行采樣,將得到的值送入SVPWM子系統(tǒng)中進(jìn)行處理。本文引用地址:http://m.butianyuan.cn/article/191048.htm
這里需要將三相電壓Va、Vb、Vc進(jìn)行坐標(biāo)系變換,變?yōu)閮上囔o止坐標(biāo)系中的電壓Vα、Vβ,作為S-Function的輸入?yún)?shù)。坐標(biāo)變換也用一個(gè)子系統(tǒng)完成,如圖4所示。在該子系統(tǒng)中調(diào)用C-MEX編寫的S-Function進(jìn)行比較值的計(jì)算,并通過produce PWM輸出波形。
c++相關(guān)文章:c++教程
評(píng)論