色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

          S-Function在TMS320F2812的SVPWM算法仿真

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

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

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

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

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

          本文引用地址:http://cafeforensic.com/article/191048.htm

          a.jpg


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

          b.jpg

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



          上一頁 1 2 3 下一頁

          關鍵詞: S-Function F2812 SVPWM 2812

          評論


          相關推薦

          技術專區(qū)

          關閉