唐 柳,張雅嫻
(1.貴陽職業(yè)技術(shù)學院,貴州 貴陽 550081;2.貴州交通職業(yè)技術(shù)學院,貴州 貴陽 551400)
工程控制原理課程是機械類專業(yè)學生的必修課程,本課程理論性較強,知識點難于理解,需要配套相應完善的實驗環(huán)節(jié)加強學生的實踐知識。受實驗設(shè)備及場地的限制,我系所開設(shè)的操作性實驗尚不能滿足課程實驗要求。從增強本課程理論認識的角度,希望通過開發(fā)相應的控制仿真實驗交互系統(tǒng),加強學生的實踐認識,并能提升教學效果。
MATLAB擁有圖形用戶編輯能力(GUI),也就是MATLAB中的Visual Basic,可以使MATLAB程序的終端用戶輕易操作該程序,而這和本次的仿真實驗的目的要求相吻合,可以利用GUI來實現(xiàn)工程控制系統(tǒng)建模的仿真。
拖動GUI中的控件到方格主界面進行編輯和布局,并能通過屬性查看器修改控件的屬性,最終完成本次仿真的主界面設(shè)計。
為了方便學生和用戶更好地應用此系統(tǒng),主界面的風格設(shè)計簡潔實用,整個界面就是一個典型的工程控制反饋系統(tǒng)框圖(圖1)。
圖1 主界面
用戶可以手動輸入系統(tǒng)傳函,不論是開環(huán)還是閉環(huán),想用MATLAB實現(xiàn)這一功能,需要在GUI里建立幾個編輯文本框(Edit Text),以及一個普通按鈕(Pushbutton),在編輯文本框內(nèi)輸入系統(tǒng)傳函的系數(shù)或者零極點,然后點擊這個按鈕,系統(tǒng)就會提取編輯文本框里的東西,然后再通過一些命令把它變成傳遞函數(shù),并將它顯示出來。
按照以上的構(gòu)思,需要在普通按鈕(Pushbutton)對應的m文件里的Callback里輸入相應的代碼。
在“應用”按鈕(Pushbutton)的Callback下鍵入如下的代碼,便可實現(xiàn)用戶想要實現(xiàn)的功能。
global num den sel;
num=str2num(get(handles.fenzi,'string'));
den=str2num(get(handles.fenmu,'string'));
sys=tf(num,den);
set(handles.text6,'string',evalc('sys'));
sel=get(hObject,'Value');
Value=1;
首先將num、den和sel定義為全球變量,方便在不同的子文件中提取應用,num和den分別為編輯文本框里的字符串(傳函系數(shù))中輸入的分子和分母系數(shù),sel是下拉菜單的一個變量。
.fenzi和.fenmu則是兩個編輯文本框的tag,提取各式為“string”,用MATLAB里自帶的函數(shù)語句“tf”,可以把提取出來的num和den轉(zhuǎn)換為系統(tǒng)傳函,再用set語句配合evalc(‘sys’),可以把傳函顯示在tag為text6的靜態(tài)文本框里,最后設(shè)置下拉菜單value值為1。
利用定位回調(diào)函數(shù)的方法找到階躍響應的callback,開始編寫代碼:figure(‘NumberTitle’,‘off’,‘Name’,‘階躍響應’); 意思是點擊菜單欄里的階躍響應后會跳出一個figure窗口,窗口名字叫階躍響應。
然后再將要用到的變量用global喚出,方便接下來的使用,因為時域分析一般都是針對閉環(huán)傳函,所以還是要用feedback將sys轉(zhuǎn)換成閉環(huán)傳函,并賦值予G,再用MATLAB自帶的step函數(shù)便可在figure里畫出系統(tǒng)的階躍響應曲線,假設(shè)一控制系統(tǒng),H(s)=1,運行后得到的曲線圖像如圖2。
圖2 階躍響應曲線
為了更完整的分析,要求顯示圖像的同時顯示出其性能指標,所以要用GUI新建一個fig文件,在里面拖入一些靜態(tài)文本框,調(diào)整好位置,這些特征量包括超調(diào)量、延遲時間、上升時間、峰值時間和調(diào)整時間。
在性能指標的子編程文件里寫好相應的代碼,保存名為“xnzb.m”。返回主編程文件,也就是“zhujiemian.m”的階躍響應的callback里寫入:“run xnzb”。這樣,點擊階躍響應按鈕后便會跳出除響應曲線以外的第二個窗口,性能指標分析如圖3所示。
圖3 性能指標
和階躍響應的編碼相仿,也是先建立一個figure,用global提取有用的變量,用feedback將系統(tǒng)轉(zhuǎn)換成閉環(huán)的,最后用impulse命令畫出脈沖響應的曲線,仍采用前述系統(tǒng)模型,得到的曲線圖像如圖4。
圖4 脈沖響應曲線
可以用兩種輸入方式建立起系統(tǒng)的傳遞函數(shù),一個實際的系統(tǒng),一旦建立起數(shù)學模型,就可以采用適當?shù)姆椒▽ζ湫阅苓M行全面的分析和計算,本次仿真實驗從時域方面采用了包含階躍響應和脈沖響應的分析方法,既能得到性能指標的數(shù)值,也能生成相應的圖像供讀者分析。