《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > S-Function在TMS320F2812的SVPWM算法仿真
S-Function在TMS320F2812的SVPWM算法仿真
單片機與嵌入式系統
鐘美蘭,程玉華,關 健,雷 凱,羅建明
摘要: S-Function有兩種形式,一種是M文件,另一種是C-MEX文件,前者支持功能強大的工具箱,后者支持C、C++等語言,并且在仿真上更快速有效。基于TMS320C2812的SVPWM算法在TI的CCS軟件中實現,并且支持C、C++語言,這給程序通過S-Function移植到MATLAB中進行仿真提供了一種有效途徑。利用在Simulink中搭建的三相全橋逆變器模型與S-Function編寫的算法模塊相結合,并進行仿真,簡單有效地說明了S-Funetion的實際應用并驗證了SVPWM算法的正確性。
Abstract:
Key words :

摘要:S-Function有兩種形式,一種是M文件,另一種是C-MEX文件,前者支持功能強大的工具箱,后者支持C、C++等語言,并且在仿真上更快速有效。基于TMS320C2812的SVPWM算法在TI的CCS軟件中實現,并且支持C、C++語言,這給程序通過S-Function移植到MATLAB中進行仿真提供了一種有效途徑。利用在Simulink中搭建的三相全橋逆變器模型與S-Function編寫的算法模塊相結合,并進行仿真,簡單有效地說明了S-Funetion的實際應用并驗證了SVPWM算法的正確性。
關鍵詞:S-Function;SVPWM;MATLAB仿真;CCS

引言
    利用MATLAB仿真CCS算法的方法在很多文章中都有介紹,歸納起來主要有兩類:一類是利用MATLAB/Simulink中的S-Function編寫所需算法模塊,仿真成功后將算法移植到CCS中建立新的算法工程;另一類是在MATLAB中建立仿真模型,然后通過CClink的直接代碼生成法建立CCS工程文件。這兩類方法都有各自的缺點。第一類方法只注重對算法思想的驗證,要在CCS中實現卻要經過很復雜的算法移植過程,增加了算法實現的難度。第二類方法避免了此類問題,而將MATLAB仿真模型直接生成CCS代碼,省略了再移植的過程,然而這種方法形成的代碼具有可讀性差、缺乏優化、占用資源大等缺點,使得TMS320F2812芯片的內存利用率大大降低。結合這兩種方法的優點和弊端,本文利用C-MEXS-Func-tion提出了一種全新的將CCS程序與MATLAB仿真聯系起來的方法,實現了CCS程序到MATLAB仿真的簡單移植。該方法高效、簡單并且易于理解和實現,可以通過S-Function作為接口直接使用CCS編寫的SVPWM程序在MATLAB環境下進行仿真,算法驗證正確后不用再修改程序可直接在CCS中編譯并下載到目標板使用。這就大大降低了仿真與實際應用之間轉化的難度,也簡化了軟件人員在幾種編程環境中反復修改程序的過程。

1 S-Function程序建立方法
    S-Function有兩種建立方式,一種是用M文件來實現,另一種是用C-MEX來實現。前者效率低下,但是開發速度快,可以方便調用MATLAB和工具箱函數;后者支持不同的編程語言,如:C、c++、Fortran等,運行速度快,滿足實時性要求,可以實現M文件不能實現的許多功能,如復數的處理等。
    考慮到基于TMS320F2812的SVPWM算法仿真對實時性要求比較高,且CCS工程是用C語言編寫的,因此本文選用C-MEX形式來建立S-Function程序。在MATLAB的安裝根目錄matlabroot/simulink/src下有一個用C語言編寫的C-MEX S-Function文件模板:sfuntmpl basic.c。該模板幾乎包含了所有C-MEXS-function文件可執行的必需和可選的回調函數的基本結構,只需要進行少許改動,就可以實現各種功能的函數。
    建立S-Function可以按以下步驟進行:
    首先進行環境設置。初次使用C-MEX S-Function之前,需要在MATLAB中激活,可以在命令窗口鍵入mex-setup,然后根據提示設置編譯器。
    然后打開C-MEX S-Function文件模板,將模板另存為svpwm.c文件,然后再進行必要的設置,這樣不會破壞模板,當需要其中的一些必要函數時還可以再查閱。模板中的第一行代碼#define S_FUNCTION_NAME XXX是用來設置函數名的,這是調用函數時的唯一標識,這里可以將其改為#define S_FuNCTION_NAME svpwm,那么svpwm就是該函數的函數名。
    最后編譯動態鏈接庫。S-Function函數編寫完成后,需要在MTLAB中進行編譯生成動態鏈接庫與Simulink鏈接,這樣才能在模型中調用S-Function模塊。注意編寫的文件與生成的文件以及建立的模型都必須在同一目錄下。在MATLAB的命令窗口輸入mex svpwm.c,這樣就會在當前目錄下創建一個svpwm.dll文件。在模型中加入S-Function模塊,并雙擊它,在sfunction name一欄填入函數名svpwm。注意這個函數名要與接口程序中設置的函數名保持一致。這樣就可以在模型中使用S-Function函數模塊了。

2 實現CCS中SVPWM算法移植
2.1 SVPWM算法原理簡單介紹
    空間矢量調制(SVPWM)技術即是將3個互為120°的電壓矢量投影到兩相靜止坐標系中,通過三相逆變器開關組合,合成一個空間電壓矢量的方法。
    三相逆變器電路如圖1所示,用Sa、Sb和Sc分別表示三組開關的通斷狀態。采用180°導通方式,“1”表示上橋臂導通,“0”表示下橋臂導通。這樣就形成了8種開關組合狀態,分別是100、110、010、011、001、101、111、000。

a.jpg


     每個開關序列對應一個基準電壓矢量,按空間位置排列正好形成了一個六邊形。其中,有6個有效電壓空間矢量(V1~V6)和2個零矢量(V7、V8),選用對稱的空間矢量調制序列以消除偶次諧波。具體開關狀態Sa、Sb、Sc與電壓矢量在兩相靜止坐標系中的關系以及各扇區和開關序列圖如圖2所示。

b.jpg


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

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

d.jpg


    這里需要將三相電壓Va、Vb、Vc進行坐標系變換,變為兩相靜止坐標系中的電壓Vα、Vβ,作為S-Function的輸入參數。坐標變換也用一個子系統完成,如圖4所示。在該子系統中調用C-MEX編寫的S-Function進行比較值的計算,并通過produce PWM輸出波形。

e.jpg


    在系統仿真模型中,開關頻率為9 kHz,直流母線電壓為350 V,三相電壓為給定的峰峰值159 V,頻率50Hz,互差120°的正弦電壓。經過10 s仿真得到的仿真結果如圖5所示。

f.jpg

g.jpg


    從仿真結果中可以看出,三相全橋輸出的電壓波形與三相參考電壓波形完全同頻同相,這也驗證了CCS中SVPWM算法的正確性和可行性。

結語
    隨著科學技術的日益發展,不同軟件間的聯系也越來越緊密,完成一項工程通常需要熟悉和掌握幾種軟件。作為算法仿真的必備軟件,MATLAB已經提供了與其他軟件建立通信的方法,但是也不可能做到面面俱到。本文利用S-Function簡單有效地實現了CCS程序到MATLAB仿真的移植,并得出正確結果,為CCS程序與MATLAB仿真的連接提供了一種簡單有效的途徑,大大降低了算法移植的難度,簡化了程序員的軟件編寫流程,在實際工程中具有較為廣泛的應用前景。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲精品国产品国语在线app| 午夜精品久久久久久久久久久久 | 日韩一级精品视频在线观看| 精品动漫3d一区二区三区免费版| 国产精品美女久久久久久2018| 欧美日韩国产精品一区二区亚洲| 免费视频亚洲| 噜噜噜91成人网| 久久香蕉精品| 久久人人爽人人爽| 久久深夜福利免费观看| 久久人人97超碰精品888| 久久精品欧美日韩| 久久成人资源| 久久综合给合久久狠狠色| 久久综合九色九九| 久久欧美中文字幕| 久热精品在线视频| 欧美成人国产| 欧美精品一区二区在线播放| 欧美日本韩国一区二区三区| 欧美日韩精品一区视频| 欧美日韩另类一区| 国产精品高精视频免费| 国产精品久久国产精麻豆99网站| 国产精品久久久久久久午夜 | 亚洲国产成人91精品| 激情国产一区二区| 好看不卡的中文字幕| 在线精品高清中文字幕| 亚洲国产一二三| 最近中文字幕日韩精品| 一本色道久久加勒比精品| 亚洲一级在线观看| 欧美一区二区三区视频在线| 亚洲电影免费在线观看| 亚洲激情自拍| 99视频热这里只有精品免费| 亚洲一区二区三区精品视频| 欧美一级网站| 毛片一区二区三区| 欧美激情1区2区3区| 欧美日韩国产综合视频在线观看中文| 欧美乱妇高清无乱码| 国产精品极品美女粉嫩高清在线| 国产精品视频男人的天堂| 国产一区再线| 91久久中文字幕| 亚洲一线二线三线久久久| 久久精品国产欧美激情| 99国产麻豆精品| 亚洲欧美日韩人成在线播放| 久久久亚洲欧洲日产国码αv| 欧美成人一区二区在线| 欧美视频在线不卡| 国产一区二区| 亚洲狼人综合| 欧美一级大片在线免费观看| 亚洲另类视频| 欧美在线日韩在线| 欧美va亚洲va国产综合| 国产精品久久久久久久久久久久久 | 久久精品一本| 欧美国内亚洲| 国产精品你懂的在线欣赏| 黄色日韩网站| 亚洲特级片在线| 亚洲高清在线观看| 亚洲一区二区三区精品视频| 久久午夜视频| 国产精品日韩欧美| 最新国产の精品合集bt伙计| 亚洲综合日本| 日韩亚洲欧美中文三级| 久久久久久一区| 国产精品久久久99| 亚洲大片精品永久免费| 亚洲欧美中文日韩在线| 一区二区三区欧美在线| 久久亚洲欧美| 国产精品日韩久久久久| 亚洲日本黄色| 亚洲承认在线| 先锋影音久久久| 欧美绝品在线观看成人午夜影视 | 国产一区二区精品久久91| 在线综合+亚洲+欧美中文字幕| 亚洲高清在线观看一区| 欧美一区综合| 欧美色道久久88综合亚洲精品| 激情久久综合| 欧美一级在线视频| 亚洲欧美日韩视频一区| 欧美激情按摩在线| 韩国女主播一区二区三区| 亚洲欧美精品在线观看| 亚洲午夜一区二区| 欧美精品一区二区三| 精品av久久707| 欧美专区在线观看一区| 亚洲毛片在线看| 国产真实精品久久二三区| 夜夜狂射影院欧美极品| 亚洲精品影院在线观看| 另类av一区二区| 狠狠爱成人网| 欧美一区二区三区免费视| 欧美一区二区三区的| 国产精品拍天天在线| 一区二区三区视频在线看| 一区二区三区 在线观看视频| 免费看黄裸体一级大秀欧美| 精品成人一区二区| 午夜精彩视频在线观看不卡| 亚洲男人影院| 国产精品成人一区二区网站软件 | 99视频精品免费观看| 欧美成人精品在线观看| 在线观看日韩av电影| 亚洲二区在线观看| 久久久久综合一区二区三区| 国产偷国产偷亚洲高清97cao| 亚洲男女自偷自拍图片另类| 亚洲欧美日韩国产成人精品影院| 欧美先锋影音| 亚洲无线视频| 午夜日韩在线观看| 国产精品一级| 欧美一区二区精美| 久久九九精品| 影音先锋中文字幕一区二区| 亚洲国产综合在线| 欧美激情精品久久久久久大尺度| 最新国产の精品合集bt伙计| 夜夜夜久久久| 国产精品极品美女粉嫩高清在线| 亚洲一区欧美激情| 久久久国产精品一区| 狠狠色丁香婷婷综合影院| 最新国产乱人伦偷精品免费网站| 欧美高清一区| 一区二区三区四区五区精品| 翔田千里一区二区| 国产一区二区按摩在线观看| 久久精品免费电影| 欧美搞黄网站| 一区二区久久久久| 性欧美1819性猛交| 国产自产2019最新不卡| 久久精品国产欧美激情| 欧美激情在线| 亚洲午夜成aⅴ人片| 久久精品国产亚洲a| 在线免费观看视频一区| 一区二区三区 在线观看视| 国产精品美女久久福利网站| 欧美在线黄色| 欧美精品二区| 亚洲一区二区三区在线播放| 久久成人免费网| 亚洲片在线观看| 亚洲欧美文学| 激情综合色综合久久| 亚洲免费成人| 国产精品一区二区久久久久| 久久国内精品视频| 欧美另类视频在线| 亚洲欧美日韩视频二区| 欧美+日本+国产+在线a∨观看| 日韩视频在线一区二区| 欧美制服丝袜第一页| 亚洲国产经典视频| 性欧美超级视频| 亚洲国产精品久久91精品| 亚洲一区在线观看视频| 伊人久久噜噜噜躁狠狠躁| 中文日韩在线视频| 国产一区二区av| 亚洲少妇一区| 一区二区三区我不卡| 亚洲一区二区三区高清| 在线观看亚洲视频| 亚洲综合日韩| 亚洲国产精品一区二区第一页| 亚洲免费视频在线观看| 亚洲第一伊人| 欧美一级视频精品观看| 亚洲另类自拍| 久久久久在线观看| 中文亚洲免费| 欧美黄色一级视频| 欧美在线播放高清精品| 欧美日韩精品在线视频| 久久精品亚洲一区二区| 国产精品久久久久久影视| 亚洲片区在线| 国产午夜精品理论片a级大结局| 一本色道久久综合亚洲精品婷婷| 国产一区二区0| 午夜精品剧场|