- 永磁同步電動機變頻調速系統及其控制
- 袁登科 徐延東 李秀濤等
- 2684字
- 2020-11-21 18:33:17
第4章 PMSM的MATLAB仿真建模
4.1 MATLAB/SIMULINK簡介
MATLAB是MATrix LABoratory(矩陣實驗室)的縮寫,是一款由美國MathWorks公司開發的商業數學軟件。MATLAB是一種用于算法開發、數據可視化、數據分析以及數值計算的高級計算語言和交互式環境。除矩陣運算、繪制函數/數據圖像等常用功能外,MATLAB還可以用來創建圖形用戶界面(Graphics User Interface,GUI)、調用其他語言(包括C、C++和FORTRAN等)編寫的程序。
MATLAB的基本數據單位是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C、FORTRAN等語言完成相同的事情簡捷得多。此外MATLAB語言簡潔緊湊,使用方便靈活,庫函數極其豐富。MATLAB程序書寫形式自由,利用豐富的庫函數避開繁雜的子程序編程任務,壓縮了很多不必要的編程工作。
MATLAB大家庭有許多成員,包括應用程序開發工具、工具箱(Toolbox)、數據存取工具、狀態流圖(Stateflow)、模塊集(Blocksets)、代碼生成工具等。其中,應用程序開發工具包括MATLAB編譯器、C/C++數學庫、MATLAB Web服務器、MATLAB運行服務器,這些工具可以建立和發布獨立于MATLAB環境的應用程序。工具箱實際上是一些高度優化且面向專門應用領域的函數集合,軟件提供的工具箱可支持的領域有信號和圖像處理、控制系統設計、最優化、金融工程、符號數學、神經網絡等,其最大特點是開放性,幾乎所有函數都是用MATLAB語言寫成的(只有少數工具箱的某些函數是使用C語言寫成的動態庫函數),因而可以直接閱讀和加以改寫,用戶也可以自行開發適合特定領域的工具箱。數據存取工具提供了從外部數據源獲取數據的簡捷途徑,這些數據源包括外部硬件和外部數據庫(與OD- BC等兼容)。狀態流圖是一個專門針對事件驅動系統建模和設計的圖形化模擬環境。模塊集是面向應用領域的模塊(SIMULINK的基本單位)的集合,這些模塊可以直接用于SIMU- LINK模型中。代碼生成工具可以從SIMULINK模型或狀態流圖中產生可定制的C和Ada代碼,以便實現快速原型和硬件在線模擬。
MATLAB系統由MATLAB開發環境、MATLAB數學函數庫、MATLAB語言、MATLAB圖形處理系統和MATLAB應用程序接口(API)五大部分構成。
(1)開發環境
MATLAB開發環境是一套方便用戶使用的MATLAB函數和文件工具集,其中許多工具是圖形化用戶接口。它是一個集成的用戶工作空間,允許用戶輸入輸出數據,并提供了M文件的集成編譯和調試環境,包括MATLAB桌面、命令窗口、M文件編輯調試器、MATLAB工作空間和在線幫助文檔。
(2)數學函數庫
MATLAB數學函數庫包括了大量的計算算法。從基本算法如加法、正弦,到復雜算法如矩陣求逆、快速傅里葉變換等。
(3)語言
MATLAB語言是一種高級的基于矩陣/數組的語言,它有程序流控制、函數、數據結構、輸入/輸出和面向對象編程等特色。
(4)圖形處理系統
圖形處理系統使得MATLAB能方便地圖形化顯示向量和矩陣,而且能對圖形添加標注和打印。它包括強大的二維與三維圖形函數、圖像處理和動畫顯示等函數。
(5)應用程序接口
MATLAB應用程序接口(API)是一個使MATLAB語言能與C、Fortran等其他高級編程語言進行交互的函數庫。該函數庫的函數通過調用動態鏈接庫(DLL)實現與MATLAB文件的數據交換,其主要功能包括在MATLAB中調用C和Fortran程序,以及在MATLAB中與其他應用程序建立客戶、服務器關系。
本書采用仿真軟件MATLAB R2009a版本對永磁同步電動機進行仿真建模,軟件界面如圖4-1所示。
圖4-1 MATLAB軟件界面
SIMULINK是一個對動態系統(包括連續系統、離散系統和混合系統)進行建模、仿真和綜合分析的集成軟件包,是MATLAB的一個附加組件,其特點是模塊化操作、易學易用,而且能夠使用MATLAB提供的豐富資源。在SIMULINK環境中,用戶不僅可以觀察現實世界中非線性因素和各種隨機因素對系統行為的影響,而且也可以在仿真進程中改變感興趣的參數,實時地觀察系統行為的變化。因此,目前SIMULINK已成為控制工程領域的通用軟件,而且在許多其他的領域(如通信、信號處理、電力、金融、生物系統等)也獲得了重要應用。
和MATLAB的其他組件相比,SIMULINK的一個突出特點就是它完全支持圖形用戶界面(GUI),這樣就極大地方便了用戶的操作。用戶只需要進行簡單的拖拽操作就可以構造出復雜的仿真模型,它的外觀以框圖的形式來呈現,而且采用分層結構。從建模的角度來看,這種方法可以讓用戶將主要的精力放在具有創造性的算法和模塊結構的設計上,而不用把精力放在算法的具體實現上。從分析研究的角度來看,SIMULINK模型不僅可以讓用戶知道具體環節的動態細節,而且還可以讓用戶清晰地了解到各系統組件、各子系統、各系統之間的信息交換。
SIMULINK啟動方式有以下幾種:在MATLAB的命令窗口(command window)中從鍵盤鍵入simulink(小寫,注意MATLAB軟件環境對字母的大小寫敏感)后回車;用鼠標左鍵單擊圖4-1中的SIMULINK按鈕。
圖4-2 SIMULINK軟件包界面
啟動SIMULINK后,會彈出圖4-2所示的SIMULINK庫瀏覽器(Library Browser)。左上方的SIMULINK庫中包含了眾多的子庫,其中有常用模塊(Commonly Used Blocks)、時間連續模塊(Continuous)、時間不連續模塊(Discontinuities)、時間離散模塊(Discrete)、邏輯與位運算模塊(Logic And Bit Operations)、查表模塊(Lookup Tables)、數學運算模塊(Math Opera-tions)、模型驗證模塊(Model Verification)、模型擴展實用工具(Model-Wide Utilities)、端口與子系統模塊(Ports&Subsystems)、信號屬性模塊(Signal Attributes)、信號連接模塊(Signal Routing)、輸入模塊(Sinks)、輸出模塊(Sources)、用戶定義函數模塊(User-Defined Func-tions)、補充數學與離散模塊(Additional Math&Discrete)。讀者完全可以在實際操作中熟悉這些模塊,其功能不再詳細解釋。
如果MATLAB軟件安裝的工具箱比較完整的話,在圖4-2的界面中可以看到與SIMU-LINK處于并列位置的其他工具箱,如常用的控制系統工具箱(Control System Toolbox)、與TI公司DSP開發軟件CCS相鏈接的嵌入式開發環境(Embedded IDE link CC)、模糊邏輯控制工具箱(Fuzzy Logic Toolbox)、神經網絡工具箱(Neural Network Toolbox)、電力系統仿真庫(SimPowerSystems)、物理建模仿真庫(Simscape)、輔助的SIMULINK模塊庫(SIMULINK Ex-tras)、狀態流圖工具箱(Stateflow)、系統辨識工具箱(System Identification Toolbox)等等。
在SIMULINK中對永磁同步電動機進行仿真建模通常可以采用以下三種方法:
1)使用SIMULINK庫里已有的分立模塊進行組合來搭建電動機模型,該方法思路清晰、簡單、直觀,但需要調用較多的模塊,連線較多且不利于查錯(尤其是復雜的數學模型)。因此本方法一般較適用于簡單的、小規模系統的仿真建模。如果利用它提供的from與goto模塊代替連線,可以大大減少連線出錯。
2)用S函數(S-Function)模塊構造模型。該方法建模接近數學解析表達式,容易修改,方式靈活。這種模型處理能力強,可以方便地構建極其復雜的連續、離散動態系統和對采樣時間有較高要求的模型,非常適合PMSM的分析。
3)使用SIMULINK內部提供的PMSM模型,它包含在電力系統仿真庫(SimPowerSys-tems)的電動機庫(Machines)中。這種方法簡單、方便,適于快速構建永磁同步電動機調速系統。但由于模型已經封裝好,不能隨意進行修改,同時也不方便研究PMSM內部變量之間的關系。另外,SimPowerSystems中的模塊性質與SIMULINK中模塊性質是不同的,因此它們之間的連線需要經過特別的接口模塊(如受控電壓源(Controlled Voltage Source)、受控電流源(Controlled Current Source)、電壓檢測模塊(Voltage Measurement)、電流檢測模塊(Cur-rent Measurement)等才能順利建模。
下面分別對三種建模方法進行詳細闡述。