方 環(huán),華 華,彭小龍,陳家新
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
在高效伺服電機(jī)控制系統(tǒng)傳統(tǒng)的設(shè)計(jì)開發(fā)中,開發(fā)人員根據(jù)需求分析和技術(shù)規(guī)范文檔用文字,方程等方式來描述系統(tǒng),但是工程師們不可避免地存在對(duì)需求分析和技術(shù)文檔的理解差異,埋下失敗的伏筆。以及測(cè)試驗(yàn)證階段之前需要打造硬件平臺(tái),前期資金投入大[1]?;谝陨蟼鹘y(tǒng)電機(jī)控制設(shè)計(jì)開發(fā)過程存在的問題,本文基于Matlab設(shè)計(jì)PMSM電機(jī)控制系統(tǒng)虛擬開發(fā)平臺(tái),實(shí)現(xiàn)算法的早期驗(yàn)證和性能測(cè)試。
整個(gè)PMSM電機(jī)控制虛擬開發(fā)平臺(tái)由上位機(jī)GUI人機(jī)接口和PMSM電機(jī)控制系統(tǒng)模型兩部分組成[1],如圖1所示。上位機(jī)GUI人機(jī)接口系統(tǒng)主要功能有兩部分:1)接收用戶命令,修改并顯示系統(tǒng)控制參數(shù),對(duì)控制系統(tǒng)模型發(fā)送電機(jī)控制命令。2)接收并顯示控制系統(tǒng)的運(yùn)動(dòng)狀態(tài)及故障報(bào)警信息。PMSM電機(jī)控制系統(tǒng)模型由Matlab/SimulinkStateflow采用模塊化方式搭建,包括系統(tǒng)輸入模塊,嵌入式處理器模塊,逆變器和電機(jī)本體模塊,系統(tǒng)輸出分析模塊。
本文基于Matlab/Simulink,Stateflow建立了完整的伺服電機(jī)控制仿真模型,采用模塊化方式建模,如圖2所示。整個(gè)完整的系統(tǒng)包括系統(tǒng)輸入模塊,嵌入式處理器模塊,逆變器及電機(jī)本體模塊,系統(tǒng)輸出分析模塊.本文主要介紹嵌入式處理器模塊[2]。
嵌入式處理模塊包括控制算法模塊和外圍設(shè)備驅(qū)動(dòng)模塊,控制算法模塊主要包括控制模式調(diào)度系統(tǒng)模塊(Mode Schedule)和電機(jī)磁場(chǎng)定向控制器模塊(Motor Control);基于Matlab/Stateflow建立了控制模式調(diào)度系統(tǒng),如圖3所示。其作用為根據(jù)系統(tǒng)輸入命令判別控制系統(tǒng)特定階段的運(yùn)行方式,有等待模式,起動(dòng)開環(huán)控制模式,雙閉環(huán)控制模式和停止減速模式;控制算法起始于等待模式,不斷等待輸入命令(Motor_on)起動(dòng)電機(jī),一旦接收到起動(dòng)命令,系統(tǒng)進(jìn)入起動(dòng)開環(huán)控制,給電機(jī)一恒定的加速度起動(dòng)。通過正交編碼得到電機(jī)一個(gè)確定的位置信號(hào)時(shí),系統(tǒng)進(jìn)入雙閉環(huán)控制模式實(shí)現(xiàn)輸入跟隨給定。當(dāng)接收停止電機(jī)命令時(shí),電機(jī)進(jìn)入停止減速模式直到轉(zhuǎn)速為零,最后返回到等待模式[3]。
圖1 PMSM電機(jī)控制開發(fā)平臺(tái)構(gòu)圖Fig.1 Structureofdevelopmentplatform forPMSMmotorcontrolsystem
圖2 PMSM電機(jī)控制仿真模型主界面Fig.2 Themian interface of simulationmodel
電機(jī)磁場(chǎng)定向控制器模塊采用最簡(jiǎn)單的id=0轉(zhuǎn)子磁場(chǎng)定向控制方式,逆變器的驅(qū)動(dòng)控制采用空間電壓矢量控制方式(SVPWM).其各功能模塊框圖,如圖4所示。基于此功能框圖搭建Matlab電機(jī)控制模塊,電機(jī)運(yùn)行時(shí)檢測(cè)到三相定子電流,通過坐標(biāo)變換分解出定子旋轉(zhuǎn)磁場(chǎng)中與轉(zhuǎn)子磁場(chǎng)對(duì)齊的分量(直軸電流id)和產(chǎn)生轉(zhuǎn)矩的分量(交軸電流iq);通過正交編碼實(shí)時(shí)檢測(cè)轉(zhuǎn)子位置,計(jì)算得到轉(zhuǎn)速與給定轉(zhuǎn)速進(jìn)行比較,通過轉(zhuǎn)速PI控制器輸出電流環(huán)給定iq*,與上述得到的交軸電流iq比較,再經(jīng)PI控制得到Uq;設(shè)定另一個(gè)電流環(huán)給定值id=0,實(shí)現(xiàn)磁場(chǎng)定向控制。Uq,Ud通過坐標(biāo)反變換輸入U(xiǎn)a和Uβ,經(jīng)過SVPWM發(fā)生模塊生成控制三相逆變器的脈寬調(diào)制信號(hào),最終得到所需三相電流控制電機(jī)旋轉(zhuǎn)[4]。
圖3 控制模式調(diào)度系統(tǒng)Fig.3 System of contralmode schedule
圖4 SVPWM控制框圖Fig.4 Structure diagram of SVPWM control
上節(jié)已建立了完整的PMSM電機(jī)控制系統(tǒng)模型,但在算法驗(yàn)證和測(cè)試過程中需不斷改變系統(tǒng)給定值,電機(jī)參數(shù)以及系統(tǒng)控制參數(shù),并查看相應(yīng)仿真結(jié)果。為了完善整個(gè)虛擬開發(fā)平臺(tái),方便測(cè)試人員調(diào)試和驗(yàn)證,基于Matlba/GUI建立了圖形用戶界面。
MATLAB設(shè)計(jì)圖形用戶界面有兩種方法:1)使用程序(M文件)編寫的方式建立GUI;2)利用GUIDE設(shè)計(jì)圖形用戶界面。第一種方法在調(diào)整圖形組件位置時(shí)需要花費(fèi)較長(zhǎng)的時(shí)間,文中采用第二種方法。
文中中,MATLAB界面設(shè)計(jì)主要是解決GUI界面控制Simulink仿真及仿真結(jié)果的動(dòng)態(tài)顯示。
3.2.1 GUI控制Simulink仿真
GUI界面控制simulink仿真實(shí)現(xiàn)的功能是改變系統(tǒng)的給定輸入,如電機(jī)轉(zhuǎn)速,電機(jī)負(fù)載轉(zhuǎn)矩;還可調(diào)整電機(jī)本體的參數(shù),如定子相電阻Rs,極對(duì)數(shù)等等.界面亦可以調(diào)整系統(tǒng)控制器的參數(shù),如速度環(huán)K(P),電流環(huán)K(P)等等。其功能主要實(shí)現(xiàn)步驟如下[5]。
1)通過“打開模型”按鈕打開模型文件:
調(diào)用 open_system(‘sys’)函數(shù),‘sys’是 Matlab 路徑上的模型名稱。
2)通過編輯框或是滑動(dòng)條設(shè)置用戶給定值以及模型中各模塊的參數(shù):
首先調(diào)用get()函數(shù)得到所需修改參數(shù)值,如value1=get(handles.edit1, ‘string’); 接 著 通 過 set_param (‘obj’,‘parameter1’,value1)。 其 中 , ‘obj’ 模 塊 的 路 徑 名 ,‘parameter1’,value1為要設(shè)置的參數(shù)及數(shù)值。
3)通過“執(zhí)行”按鈕啟動(dòng)仿真過程:
調(diào)用 sim (model,timespan) 函數(shù);model為模型名稱,timespan為仿真的開始時(shí)間和結(jié)束時(shí)間。
3.2.2 GUI動(dòng)態(tài)顯示Simulink仿真結(jié)果及數(shù)據(jù)保存
1)顯示電機(jī)轉(zhuǎn)速,直軸電流,交軸電流,電磁轉(zhuǎn)矩波形[6]
通過判斷l(xiāng)istbox的value值,采用Switch語句實(shí)現(xiàn)不同波形的顯示功能。將simulink波形輸出信號(hào)經(jīng)過“to Workspace”模塊,保存數(shù)據(jù)至Matlab的基本工作空間,通過evalin函數(shù)將數(shù)據(jù)傳遞到回調(diào)函數(shù)中,接著采用背景擦除的方法,動(dòng)態(tài)的劃線,采用for循環(huán)或者定時(shí)器來動(dòng)態(tài)改變坐標(biāo)系 XData,YData 值 , 即 set (p,'XData',t1(1,:),'YData',m1(1,:))。
2)保存仿真數(shù)據(jù)至Excle
可通過“保存數(shù)據(jù)”按鈕可將Simulink仿真數(shù)據(jù)儲(chǔ)存在Excle中,方便開發(fā)人員進(jìn)行數(shù)據(jù)分析和處理。“保存數(shù)據(jù)”按鈕的回調(diào)函數(shù)主要功能程序如下:
[FileName, PathName]=uiputfile ({'*.xls'},'Save as');%打開文件保存對(duì)話框
xlswrite(str1,r1(1:50000,1:3),'Rotor Velocities (RPM)');%將數(shù)據(jù)存至Excle中
PMSM電機(jī)控制虛擬開發(fā)平臺(tái)GUI主界面如圖5所示。
圖5 虛擬開發(fā)平臺(tái)GUI主界面Fig.5 Themian interface of GUI
通過GUI界面設(shè)定電機(jī)轉(zhuǎn)速為1000RPM,負(fù)載轉(zhuǎn)矩為0.2 oz-in,設(shè)置好電機(jī)參數(shù)及系統(tǒng)參數(shù),如圖6。打開模型按下“執(zhí)行”按鈕,仿真系統(tǒng)開始運(yùn)行,表盤不斷顯示電機(jī)轉(zhuǎn)速和電流。按下“停止”按鈕,系統(tǒng)停止運(yùn)行??赏ㄟ^列表框查看仿真過程中各性能參數(shù)波形,并能保存參數(shù)數(shù)據(jù)和波形。
圖6 系統(tǒng)參數(shù)設(shè)置界面Fig.6 Interface of setting parameter
轉(zhuǎn)速波形圖如圖7所示,系統(tǒng)響應(yīng)速度快,沒有出現(xiàn)超調(diào),調(diào)節(jié)時(shí)間ts為 0.115 s;
圖7 轉(zhuǎn)速波形界面Fig.7 Interface of rotation rate scope
直軸電流Id波形如圖8所示,Id值基本圍繞Id=0波動(dòng),符合PMSM轉(zhuǎn)子磁場(chǎng)定向控制方式要求,驗(yàn)證了PMSM電機(jī)控制系統(tǒng)模型的正確性。
圖8 直軸電流Id界面Fig.8 Interface of Id scope
文中基于Matlab搭建了PMSM電機(jī)控制系統(tǒng)虛擬開發(fā)平臺(tái),文中詳述了PMSM電機(jī)控制系統(tǒng)模型的建立及人機(jī)接口的設(shè)計(jì),并通過實(shí)驗(yàn)操作驗(yàn)證了電機(jī)控制系統(tǒng)模型的正確性,及人機(jī)接口各個(gè)控件的功能??蓪?shí)現(xiàn)PMSM電機(jī)控制開發(fā)設(shè)計(jì)算法的早期驗(yàn)證和性能測(cè)試,方便系統(tǒng)性能和參數(shù)改進(jìn)以及后期擴(kuò)展。
[1]李永東.交流電機(jī)數(shù)字控制系統(tǒng)[M].北京:機(jī)械工業(yè)出版社,2002.
[2]劉杰,翁公羽,周宇博.基于模型的設(shè)計(jì)-MCU篇[M].北京:北京航天航空大學(xué)出版社,2011.
[3]JeffC.Jensen.Elemets of Model-Bsed Design.Department of Electrical Engineering & ComputerScience of Berkeley Journal,2010,2(15):2-3.
[4]李軍政,呂敬高,孫良友.永磁同步電動(dòng)機(jī)磁場(chǎng)定向矢量控制[J].船電技術(shù),2005(4):4-6.LI Jun-zheng,LV Jing-gao,SUN Liang-you.Field-Oriented vector control of permanent magnet synchronous motor[J].Marine Electric&Electronic Engineering,2005(4):4-6.
[5]羅華飛.Matlab GUI設(shè)計(jì)學(xué)習(xí)手記[M].北京:北京航天航空大學(xué)出版社,2011.
[6]劉煥進(jìn),王輝,李鵬.Matlab N個(gè)實(shí)用技巧[M].北京:北京航天航空大學(xué)出版社,2011.