摘 要:針對(duì)異步電動(dòng)機(jī)輸入/輸出參數(shù)繁多及電動(dòng)機(jī)不同模型比較的需要,提出一種通用解決方案。采用層次化、模塊化和面向?qū)ο蟮脑O(shè)計(jì)思想,給出GUI的概念,并對(duì)GUI設(shè)計(jì)中的對(duì)象層次結(jié)構(gòu)、用戶控件、參數(shù)傳遞進(jìn)行介紹,并以此為基礎(chǔ)設(shè)計(jì)一種基于圖形用戶界面的異步電動(dòng)機(jī)仿真系統(tǒng)。結(jié)果表明,GUI界面具有可操作性和人機(jī)交互性強(qiáng)的特點(diǎn),得到正確的電動(dòng)機(jī)時(shí)域、頻域及功率譜圖形。
關(guān)鍵詞:GUI;用戶控件;參數(shù)傳遞;異步電動(dòng)機(jī)
中圖分類號(hào):TP311. 56 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004-373X(2008)06-178-03
Simulation System of Asynchronous Motor Based on Graphical User Interface(GUI)
HUANG Fei,LIU Zhenxin,LUO Ming
(Wuhan University of Science and Technology,Wuhan,430081,China)
Abstract:In order to meet the requirement of asynchronous motor input-output parameters and expediently compare different modems,a general solution is offered.Adopting hierarchy,modularity and object-oriented designing ideas.This paper gives GUI′s conception and introduces GUI′s structural levels of object,user control,parameter passing.Based on it,a simulation system of asynchronous motor is designed.The results indicate that GUI is easy to manipulate with rich contents and interact with human.This paper comes to a right conclusion about motor′s time/frequency domain figures and power spectrum figures.
Keywords:GUI;user control;parameter passing;asynchronous motor
用戶界面(或接口)是指人與機(jī)器(或程序)之間交互作用的工具和方法,如:鍵盤、鼠標(biāo)、跟蹤球、話筒等\\[1]。
圖形用戶界面是包含圖形對(duì)象,如:窗口、圖標(biāo)、菜單和文本的用戶界面,以某種方式選擇或激活這些對(duì)象引起動(dòng)作或發(fā)生變化。最常見的激活方法是用鼠標(biāo)或其他點(diǎn)擊設(shè)備去控制屏幕上的鼠標(biāo)指向運(yùn)動(dòng)\\[2\\],比如,實(shí)現(xiàn)計(jì)算、繪圖等。
1 GUI的對(duì)象層次結(jié)構(gòu)
Matlab 7.0中句柄圖形對(duì)象(如圖1所示)的結(jié)構(gòu)和元素做了較大調(diào)整,增加部分對(duì)象,對(duì)各種圖元對(duì)象和場(chǎng)景對(duì)象進(jìn)行重新分類。但是,比較各個(gè)版本的對(duì)象層次結(jié)構(gòu)圖可以發(fā)現(xiàn),不同版本所使用的句柄圖形對(duì)象都存在以下一些特點(diǎn):都有4個(gè)對(duì)象層次,Root對(duì)象和Figure對(duì)象作為第1層次和第2層次;舊版本第4層次中的圖元對(duì)象被放到核心對(duì)象節(jié)點(diǎn)中;對(duì)象類型進(jìn)一步豐富,增加了繪圖對(duì)象、組對(duì)象、隱藏的Annotation Axes對(duì)象和Annotation對(duì)象。
2 GUI的用戶控件
Matlab為用戶開發(fā)圖形界面提供一個(gè)方便高效的集成環(huán)境,即:GUIDE。GUIDE將用戶設(shè)計(jì)好的圖形界面保存在*.fig文件中,同時(shí)自動(dòng)生成保存程序代碼的*.m文件\\[3]。
常見的GUI控件有:Push Button,Slider,Radio Button,Check Box,Edit Text,Pop-Up Menu,List box,Toggle Button,Axes,Panel,Button Group,ActiveX Control??丶[放完畢后,通過界面設(shè)計(jì)編輯器(添加并排列圖形窗口中的組件對(duì)象)、屬性檢查器(檢查并設(shè)置組件的屬性值)、對(duì)象瀏覽器(顯示圖形窗口中所有對(duì)象的繼承關(guān)系)、菜單編輯器\\[4\\](創(chuàng)建窗口菜單和文本菜單)等完成控件屬性設(shè)置。之后,在*.m文件中進(jìn)行編程。主要內(nèi)容包括:創(chuàng)建GUI M文件;打開GUI M文件;在回調(diào)間共享數(shù)據(jù);在初始化函數(shù)中添加代碼;用對(duì)象瀏覽器識(shí)別回調(diào)。其中,回調(diào)是當(dāng)用戶完成指定動(dòng)作時(shí)執(zhí)行的函數(shù)\\[5]。每個(gè)控件都有一個(gè)指定的回調(diào)屬性。創(chuàng)建GUI時(shí),也必須編寫控制GUI操作的回調(diào)函數(shù)\\[6]。因此,控件擺放、屬性設(shè)置、程序編寫3部分組成一個(gè)完整的GUI設(shè)計(jì)。
3 GUI的參數(shù)傳遞
參數(shù)傳遞是GUI實(shí)現(xiàn)中的難點(diǎn),本文現(xiàn)將各種參數(shù)傳遞方法總結(jié)如下:
(1) 聲明全局變量global,不需tag屬性,也不需findobj函數(shù)去獲取對(duì)象。全局變量global通常使一個(gè)函數(shù)有效。
(2) 控件的Userdata,Value,String屬性。其中:Userdata用于在函數(shù)之間或遞歸函數(shù)的不同部分之間傳遞參數(shù);Value,String則是根據(jù)不同的控件來定義不同的參數(shù)。
使用方法:將參數(shù)寫入相應(yīng)控件,需要時(shí)就從對(duì)應(yīng)控件中提取。其中,設(shè)置參數(shù)用set或setappdata,讀取參數(shù)用get 或getappdata\\[7]。注意:setappdata,getappdata操作對(duì)象最好為圖形對(duì)象句柄。
(3) 使用findobj函數(shù)搜索對(duì)象句柄,然后進(jìn)行值傳遞。
本文使用的就是這種方法。他可以有效地實(shí)現(xiàn)不同*.fig之間的參數(shù)傳遞,但耗時(shí)長。
(4) 將數(shù)據(jù)存在硬盤上,然后用load,save讀取。
此方法不推薦。在Matlab中制作圖形用戶界面,用戶希望實(shí)時(shí)更新數(shù)據(jù),而該方法卻以提取數(shù)據(jù)為前提。例如實(shí)時(shí)更新異步電動(dòng)機(jī)仿真系統(tǒng)中的電壓Un值(從380 V變?yōu)?20 V)。若用load,save,先需將數(shù)據(jù)保存到*.txt文件,當(dāng)系統(tǒng)運(yùn)行完Un=380 V時(shí),用戶再回到*.txt文件修改Un=220 V,然后再調(diào)用load或save。若這樣,就體現(xiàn)不出面向用戶對(duì)象程序設(shè)計(jì)交互性的優(yōu)勢(shì)。
4 異步電動(dòng)機(jī)基本原理
異步電動(dòng)機(jī)以其結(jié)構(gòu)簡單、價(jià)格低廉、維修工作量小而在工業(yè)領(lǐng)域中得到廣泛應(yīng)用。
正常情況下的異步電動(dòng)機(jī)定子轉(zhuǎn)子繞組為三相對(duì)稱結(jié)構(gòu),呈Y連接或△連接。定子包括3個(gè)獨(dú)立回路,對(duì)應(yīng)的相電流用ia,ib,ic表示;轉(zhuǎn)子導(dǎo)條均勻分布,若設(shè)轉(zhuǎn)子導(dǎo)條數(shù)為n,則可將轉(zhuǎn)子繞組看成是n相對(duì)稱繞組,另加一個(gè)端環(huán)回路,共有(n+1)支轉(zhuǎn)子獨(dú)立回路,對(duì)應(yīng)的各回路電流用i1,i2,…,in,ie表示,這樣定轉(zhuǎn)子獨(dú)立回路共有(n+4)支。
定子匝間短路、斷條和端環(huán)斷裂、氣隙偏心是異步電動(dòng)機(jī)常見故障。誘發(fā)原因主要有:設(shè)計(jì)制造不合理、頻繁起停、交變負(fù)載等。
當(dāng)轉(zhuǎn)子出現(xiàn)斷條、端環(huán)斷裂時(shí),會(huì)在定子電流中產(chǎn)生頻率為\\[8,9]:
fbr=(1±2ks)f1(1)
的故障特征成分。其中k=1,2,…;s為轉(zhuǎn)差率;f1為外加電壓頻率。若不能及時(shí)發(fā)現(xiàn)故障而讓電動(dòng)機(jī)繼續(xù)“帶病”運(yùn)行,時(shí)間過長可能造成設(shè)備損壞,產(chǎn)量下降,維護(hù)費(fèi)用增大等不良后果。
5 異步電動(dòng)機(jī)仿真系統(tǒng)GUI實(shí)例分析
異步電動(dòng)機(jī)有正弦波供電和非正弦波供電,本文僅正弦波供電情況,分析電動(dòng)機(jī)兩種模型“正?!?、“導(dǎo)條斷裂1/2根”的電流時(shí)域、頻域及功率譜變化。同時(shí),實(shí)時(shí)更新額定電壓Un(如圖3所示)的數(shù)值,例如Un=220 V,會(huì)發(fā)現(xiàn)電動(dòng)機(jī)在2種模型下的圖形差異。本文初始化Un=380 V,兩種模型輸出圖形均是Un初始化時(shí)的情況,如圖4所示。
5.1 設(shè)計(jì)步驟
(1) 分析兩種模型的輸入/輸出參數(shù),明確設(shè)計(jì)任務(wù),啟動(dòng)GUIDE,擺放控件。
本文使用靜態(tài)文本框、編輯框表示輸入輸出參量,使用界面設(shè)計(jì)編輯器調(diào)整控件,最后采用組合框?qū)⑺锌丶M裝在一起。
為了得到2種模型下電動(dòng)機(jī)的輸出圖形,可以使用Push Button,Pop-Up Menu或菜單編輯器。本文采用Push Button控件。
(2) 利用屬性檢查器設(shè)置窗口和控件的屬性。常見屬性有:string,tag,position,fontsize,callback等。
(3) 編寫回調(diào)函數(shù)。這是整個(gè)GUI設(shè)計(jì)中的關(guān)鍵。需注意以下2點(diǎn):
① 由于文本框的值是string形式,因此在編寫回調(diào)函數(shù)時(shí)要注意類型轉(zhuǎn)換;
② 為了實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新與參數(shù)傳遞,對(duì)于編輯框仍需保留回調(diào)屬性。但對(duì)于靜態(tài)文本框,基于標(biāo)簽功能和程序冗長性的考慮,可以將回調(diào)屬性刪除。
5.2 操作步驟及運(yùn)行結(jié)果顯示
整個(gè)GUI設(shè)計(jì)完成之后,回到設(shè)計(jì)首頁,點(diǎn)綠色運(yùn)行小三角按鈕,首先顯示主頁面,如圖2所示。在主頁面中,點(diǎn)“退出”按鈕,關(guān)閉用戶界面;點(diǎn)“進(jìn)入”按鈕,進(jìn)入下一頁面,如圖3所示。
在圖3中有2個(gè)命令按鈕。點(diǎn)擊“計(jì)算輸出參數(shù)”按鈕,計(jì)算機(jī)根據(jù)事先定義的輸入/輸出公式,計(jì)算輸出參數(shù)并在文本框中予以顯示。實(shí)時(shí)更新輸入?yún)?shù),再次點(diǎn)擊“計(jì)算輸出參數(shù)”按鈕,會(huì)發(fā)現(xiàn)輸出參數(shù)的值會(huì)隨著輸入?yún)?shù)而發(fā)生變化。點(diǎn)擊“進(jìn)入圖形界面”按鈕,進(jìn)入下一頁面圖4中。
在圖4中,點(diǎn)擊“正常仿真圖形”、“導(dǎo)條斷裂1根仿真”、“導(dǎo)條斷裂2根仿真”,依次可以得到電動(dòng)機(jī)正常與導(dǎo)條斷裂1/2根的電流時(shí)域、頻域、功率譜圖形。通過橫/縱向比較圖4輸出圖形,可以得出兩種模型下電動(dòng)機(jī)工作狀態(tài)的異同。
就此,異步電動(dòng)機(jī)仿真系統(tǒng)GUI設(shè)計(jì)完成,圖2、圖3、圖4組成了一個(gè)完整的用戶界面。
6 結(jié) 語
本文提出一種基于GUI的異步電動(dòng)機(jī)仿真系統(tǒng),利用這種面向?qū)ο蟮膱D形用戶界面,不僅方便理解3種模型的區(qū)別與聯(lián)系,而且也便于輸入/輸出參數(shù)的實(shí)時(shí)更新。
參考文獻(xiàn)
[1]張志涌,徐彥琴.基于6.X版本MATLAB教程\\[M\\].北京:北京航空航天大學(xué)出版社,2001.
[2]李人厚,張平安.精通Matlab綜合輔導(dǎo)與指南\\[M\\].西安:西安交通大學(xué)出版社,1997.
[3]韓芝俠,王強(qiáng),脫慧.基于Matlab GUI的數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)\\[J\\].陜西理工學(xué)院學(xué)報(bào),2007,23(1):33-37.
[4]徐俊文,王強(qiáng),金珩.Matlab環(huán)境下的GUI編程\\[J\\].內(nèi)蒙古民族大學(xué)學(xué)報(bào),2006,21(6):640-641.
[5] 蘇金明,王永利.Matlab 7.0實(shí)用指南\\[M\\].北京:電子工業(yè)出版社,2004.
[6]施曉紅,周佳.精通GUI圖形界面編程\\[M\\].北京:北京大學(xué)出版社,2003.
[7]李南南,吳清,曹輝林.Matlab 7簡明教程\\[M\\].北京:清華大學(xué)出版社,2006.
[8]Tavner P J,Penman J.Condition Monitoring of Electrical Machines\\[M\\].New York: Research Studies Press Ltd,Wiley,1989.
[9]劉振興,張哲,尹項(xiàng)根.異步電動(dòng)機(jī)的狀態(tài)監(jiān)測(cè)與故障診斷技術(shù)綜述\\[J\\].武漢科技大學(xué)學(xué)報(bào),2001,24(3):285-289.
作者簡介 黃 菲 女,1982年出生,湖北武漢人,碩士。研究方向?yàn)橹悄芸刂?、圖像處理。
劉振興 男,1965年出生,湖南桃江人,博士,教授,博士生導(dǎo)師。研究方向?yàn)殡姍C(jī)控制與故障診斷。