官术网_书友最值得收藏!

4.3 基于S-Function的PMSM仿真建模

S-Function是MATLAB系統(tǒng)函數(System Function)的簡稱,是指采用非圖形化的方式(即計算機語言,區(qū)別于SIMULINK的系統(tǒng)模塊)描述的一個功能塊。用戶可以采用MATLAB代碼、C、C++、FORTRAM或Ada等語言編寫S函數。S函數由一種特定的語法構成,用來描述并實現(xiàn)連續(xù)系統(tǒng)、離散系統(tǒng)以及混合系統(tǒng)等動態(tài)系統(tǒng);S函數能夠接受來自SIMULINK求解器的相關信息,并對求解器發(fā)出的命令做出適當的響應,這種交互作用非常類似于SIMULINK系統(tǒng)模塊與求解器的交互作用。

S函數作為MATLAB與其他語言相結合的接口,可以使用各種編程語言提供的強大能力。例如,MATLAB語言編寫的S函數可以充分利用MATLAB提供的豐富資源,方便地調用各種工具箱函數和圖形函數;使用C語言編寫的S函數可以方便地實現(xiàn)對操作系統(tǒng)的訪問,如實現(xiàn)與其他進程的通信和同步等。

S函數模塊位于SIMULINK模塊庫的用戶自定義函數(User-Defined Functions)子庫下,使用S函數可以方便地構建SIMULINK模型。

采用S-Function函數模塊來實現(xiàn)PMSM的仿真建模,與前一種方法的區(qū)別僅僅是在圖4-3b中的PMSMnons子系統(tǒng)的內部結構,如圖4-18所示。其中的S函數模塊中使用了PMSMdq.m的S函數,雙擊圖中的s函數模塊,出現(xiàn)圖4-19所示的參數設置對話框,里面除了對S函數的函數源文件進行設置,還需要以數組形式設置S函數使用的參數:[L R psi f IFP(3)IFP(1)IFP(2)],[id0,iq0,wr0,theta0]。

978-7-111-50228-9-Chapter04-19.jpg

圖4-18 S函數對PMSM建模的內部結構圖

978-7-111-50228-9-Chapter04-20.jpg

圖4-19 S函數參數設置對話框

為使用方便,把圖4-18的模型建成子系統(tǒng),同時為方便輸入電動機的各項參數,使用封裝子系統(tǒng)(Mask Subsystem)功能建立接口變量,如圖4-20所示。封裝后的子系統(tǒng)被鼠標左鍵雙擊后會提供電動機參數輸入的對話框,如圖4-21所示。

978-7-111-50228-9-Chapter04-21.jpg

圖4-20 封裝圖4-18的參數對話框

978-7-111-50228-9-Chapter04-22.jpg

圖4-21 電動機參數輸入對話框

SIMULINK在每個時間步(time step)內會多次調用S函數,每次調用時通過傳入標志(flag)參數通知S函數分別進行模塊初始化、變量輸出和狀態(tài)變量的更新等任務。從附錄C的程序中可以看出模型主要使用了標志(flag):0、1、3。當flag為0時,S函數執(zhí)行初始化部分;當flag為1時,S函數計算連續(xù)狀態(tài)變量的微分值;當flag為3時,S函數執(zhí)行程序的輸出部分。

由于PMSM模型包含4個一階微分方程,可以選擇idiqωθ4個變量為狀態(tài)變量,S函數內容詳見附錄C。該函數的輸入依次為:

t:時間;

x:狀態(tài)變量;

u:輸出;

flag:標志變量;

parameters:電動機的參數,與圖4-19中的參數設置對話框相對應;

x0_in:狀態(tài)變量初始設定值,如圖4-19所示。

函數的輸出依次為:

sys:系統(tǒng)變量,同一時間步中,在不同標志(flag)下的sys含義不同;

x0:狀態(tài)變量初始值;

str:SIMULINK保留位置,默認設置為空;

ts:S函數的采樣時間(Sample Time),用于離散系統(tǒng)。

上述S函數的PMSM數學模型是建立在dq旋轉坐標系中的,因此輸入的電壓也必須是旋轉坐標系的變量,使用到的變換矩陣同圖4-4。

主站蜘蛛池模板: 龙陵县| 屏边| 陕西省| 盱眙县| 吉林市| 龙岩市| 哈尔滨市| 扬中市| 海盐县| 林甸县| 花莲市| 博湖县| 旬阳县| 桃源县| 峡江县| 望奎县| 井冈山市| 黑龙江省| 垣曲县| 苍溪县| 濉溪县| 澄江县| 青浦区| 上蔡县| 西城区| 始兴县| 河北省| 莱州市| 且末县| 武安市| 姜堰市| 泽库县| 鄂伦春自治旗| 乡城县| 文化| 大连市| 开化县| 茂名市| 九龙坡区| 谢通门县| 九龙城区|