基于Matlab的PMSM電機控制系統虛擬開發平臺設計
摘要:針對傳統的電機控制設計開發中測試驗證階段只能在完成原型樣機之后才能進行,前期資全投入,查錯及修正費用大,造成潛在市場風險等問題。文章以Mutlab為設計平臺,通過Simulink,Stateflow搭建完整的PMSM電機控制系統模型,并在此模型基礎上開發GUI人機接口系統,實現了電機控制設計開發全程算法的驗證和性能測試,且便于系統性能和參數改進以及后期的擴展。
本文引用地址:http://www.j9360.com/article/201610/306778.htm在高效伺服電機控制系統傳統的設計開發中,開發人員根據需求分析和技術規范文檔用文字,方程等方式來描述系統,但是工程師們不可避免地存在對需求分析和技術文檔的理解差異,埋下失敗的伏筆。以及測試驗證階段之前需要打造硬件平臺,前期資金投入大。基于以上傳統電機控制設計開發過程存在的問題,本文基于Matlab設計PMSM電機控制系統虛擬開發平臺,實現算法的早期驗證和性能測試。
1 PMSM電機控制系統虛擬開發平臺結構
整個PMSM電機控制虛擬開發平臺由上位機GUI人機接口和PMSM電機控制系統模型兩部分組成,如圖1所示。上位機CUI人機接口系統主要功能有兩部分:1)接收用戶命令,修改并顯示系統控制參數,對控制系統模型發送電機控制命令。2)接收并顯示控制系統的運動狀態及故障報警信息。PMSM電機控制系統模型由Matlab/SimulinkStateflow采用模塊化方式搭建,包括系統輸入模塊,嵌入式處理器模塊,逆變器和電機本體模塊,系統輸出分析模塊。

2 PMSM電機控制系統模型
本文基于Matlab/Simulink,Stateflow建立了完整的伺服電機控制仿真模型,采用模塊化方式建模,如圖2所示。整個完整的系統包括系統輸入模塊,嵌入式處理器模塊,逆變器及電機本體模塊,系統輸出分析模塊,本文主要介紹嵌入式處理器模塊。

嵌入式處理模塊包括控制算法模塊和外圍設備驅動模塊,控制算法模塊主要包括控制模式調度系統模塊(Mode Schedule)和電機磁場定向控制器模塊(Motor Control);基于Matlab/Srateflow建立了控制模式調度系統,如圖3所示。其作用為根據系統輸入命令判別控制系統特定階段的運行方式,有等待模式,起動開環控制模式,雙閉環控制模式和停止減速模式;控制算法起始于等待模式,不斷等待輸入命令(Motor_ on)起動電機,一旦接收到起動命令,系統進入起動開環控制,給電機一恒定的加速度起動。通過正交編碼得到電機一個確定的位置信號時,系統進入雙閉環控制模式實現輸入跟隨給定。當接收停止電機命令時,電機進入停止減速模式直到轉速為零,最后返回到等待模式。

電機磁場定向控制器模塊采用最簡單的id=0轉子磁場定向控制方式,逆變器的驅動控制采用空間電壓矢量控制方式(SVPWM),其各功能模塊框圖,如圖4所示。基于此功能框圖搭建Matlab電機控制模塊,電機運行時檢測到三相定子電流,通過坐標變換分解㈩定子旋轉磁場中與轉子磁場對齊的分量(直軸電流id)和產生轉矩的分量(交軸電流iq);通過正交編碼實時檢測轉子位置,計算得到轉速與給定轉速進行比較,通過轉速PI控制器輸出電流環給定iq*,與上述得到的交軸電流iq比較,再經PI控制得到Uq;設定另一個電流環給定值id=0,實現磁場定向控制。Uq,Ud通過坐標反變換輸入Ua和UB,經過SVPWM發生模塊生成控制三相逆變器的脈寬調制信號,最終得到所需三相電流控制電機旋轉。

3 上位機GUI人機接口
上節已建立了完整的PMSM電機控制系統模型,但在算法驗證和測試過程中需不斷改變系統給定值,電機參數以及系統控制參數,并查看相應仿真結果。為了完善整個虛擬開發平臺,方便測試人員調試和驗證,基于Matlba/GUI建立了圖形用戶界面。
3.1 GUI的制作及程序的設計
MATLAB設計圖形用戶界面有兩種方法:1)使用程序(M文件)編寫的方式建立CUI;2)利用GUIDE設計圖形用戶界面。第一種方法在調整圖形組件位置時需要花費較長的時間,文中采用第二種方法。
3.2 PMSM電機控制系統GUI界面設計
文中中,MATLAB界面設計主要是解決CUI界面控制Simulink仿真及仿真結果的動態顯示。
3.2.1 GUI控制Simulink仿真
GUI界面控制simulink仿真實現的功能是改變系統的給定輸入,如電機轉速,電機負載轉矩;還可調整電機本體的參數,如定子相電阻Rs,極對數等等,界面亦可以調整系統控制器的參數,如速度環K(P),電流環K(P)等等。其功能主要實現步驟如下。
1)通過“打開模型”按鈕打開模型文件:
調用open_system(‘sys’)函數,‘sys’是Matlab路徑上的模型名稱。
2)通過編輯框或是滑動條設置用戶給定值以及模型中各模塊的參數:
首先調用get()函數得到所需修改參數值,如valuel=get(handles.editl,‘string’);接著通過set_param(‘obj’,‘paramet erl’,valuel)。其中,‘obj’模塊的路徑名,‘parameterl’,valuel為要設置的參數及數值。
3)通過“執行”按鈕啟動仿真過程:
調用sim(model,timespan)函數;model為模型名稱,timespan為仿真的開始時間和結束時間。
3.2.2 GUI動態顯示Simulink仿真結果及數據保存
1)顯示電機轉速,直軸電流,交軸電流,電磁轉矩波形通過判斷listbox的value值,采用Switch語句實現不同波形的顯示功能。將simu link波形輸出信號經過“to Workspace”模塊,保存數據至Matlab的基本工作空間,通過evalin函數將數據傳遞到回調函數中,接著采用背景擦除的方法,動態的劃線,采用for循環或者定時器來動態改變坐標系XData,YData值,即set (p,‘XData’,t1(1,:),‘YData’,m1(1,:))。
2)保存仿真數據至Excle
可通過“保存數據”按鈕可將Simulink仿真數據儲存在Excle中,方便開發人員進行數據分析和處理。“保存數據”按鈕的回調函數主要功能程序如下:
[FileName,PathName]=uiputfile({‘*.xls’),‘Savc as’);%打開文件保存對話框
xlswrite(strl,r1(1:50000,1:3),‘Rotor Velocities(RPM)’);%將數據存至Excle中
4 虛擬開發平臺運行測試驗證
PMSM電機控制虛擬開發平臺GUI主界面如圖5所示。

通過CUI界面設定電機轉速為1000RPM,負載轉矩為0.2 oz-in,設置好電機參數及系統參數,如圖6。打開模型按下“執行”按鈕,仿真系統開始運行,表盤不斷顯示電機轉速和電流。按下“停止”按鈕,系統停止運行。可通過列表框查看仿真過程中各性能參數波形,并能保存參數數據和波形。

轉速波形圖如圖7所示,系統響應速度快,沒有出現超調,調節時間ts為0.115 s;

直軸電流Id波形如圖8所示,Id值基本圍繞Id=0波動,符合PMSM轉子磁場定向控制方式要求,驗證了PMSM電機控制系統模型的正確性。

5 結論
文中基于Matlab搭建了PMSM電機控制系統虛擬開發平臺,文中詳述了PMSM電機控制系統模型的建立及人機接口的設計,并通過實驗操作驗證了電機控制系統模型的正確性,及人機接口各個控件的功能。可實現PMSM電機控制開發設計算法的早期驗證和性能測試,方便系統性能和參數改進以及后期擴展。
評論