朱鵬遠
(昌吉學院物理系 新疆 昌吉 831100)
基于MaLtab GUI的分離式雙容液位控制系統(tǒng)設計
朱鵬遠
(昌吉學院物理系 新疆 昌吉 831100)
圖形用戶界面(Graphical User Interfaces,GUI)是人與計算機(程序)之間進行交互的工具和方法,用戶可以通過鼠標或者鍵盤來選擇、激活這些圖形對象,使計算機產生某種動作和變化,如計算、繪圖、輸出動畫等,與早期計算機使用的命令行界面相比,圖形界面對于用戶來說在視覺上更易于接受[1]。本文介紹如何通過MatLab GUIDE功能結合simulink實現分離式雙容液位控制。
MatLab GUI;simulink;PID;參數整定
在自動控制或其相關的課程中,傳統(tǒng)的教學教學模式都是通過黑板講授或PPT顯示圖片的形式實現,內容單一、枯燥,很難提高學生的學習興趣。Simulink提供一個動態(tài)系統(tǒng)建模、仿真和綜合分析的集成環(huán)境。在該環(huán)境中,無需大量書寫程序,而只需要通過簡單直觀的鼠標操作,就可構造出復雜的系統(tǒng)。Simulink具有適應面廣、結構和流程清晰及仿真精細、貼近實際、效率高、靈活等優(yōu)點。如果再聯合GUIDE的面向對象可視化編程,可以說是錦上添花!將Simulink融入到GUIDE中可以方便模型的終端用戶,很容易直接可視化的操控模型參數和顯示仿真結果,而此時并不需要進入Simulink環(huán)境。
該部分我們構建一個simulink模型以方便在后面的GUIDE中使用,現在我們以一個簡單的“分離式雙容液位過程”為例吧。“分離式雙容液位過程”如下圖1所示,圖2為該液位過程的過程模型。
在simulink設置中,輸入和輸出分別選用Sources模塊下的step和Commonly Used Blocks模塊下的out1,并設置step的Final Value為位置參數sv;并選中Configuration Parameters--Data Import/Export--Save to workspace中的Time和Output屬性。設過程參數,上位水箱:K0=1,T0=2.53;下位水箱:K0= 0.9,T0=1.8,系統(tǒng)設定值SV=20。本仿真系統(tǒng)運行30S,在10S時增加一個設定值(sv)2%的白噪音擾動信號。

圖1 分離式雙容液位控制過程

圖2 過程模型
PID控制器和disturb均采用封裝的形式,其中PID控制器內部結構如圖3所示。

圖3 PID控制器
3.1 Description
guide displays the GUI Layout Editor open to a new untitled FIG-file.guide('filename.fig')opens the FIG-file named filename.fig.You can specify the path to a file not on your MATLAB path.guide('figure_handles')opens FIG-files in the Layout Editor for each existing figure listed in figure_handles.MATLAB copies the contents of each figure into the FIG-file,with the exception of axes children(image,light,line,patch,rectangle,surface,and text objects),which are not copied。[2]
3.2 創(chuàng)建GUI界面
首先打開Matlab,在Command Window中輸入guide回車打開GUIDE Quick Start界面;當然你也可以通過工具欄的GUIDE按鈕直接打開。在GUIDE Quick Start界面上有兩個標簽:“Creat New GUI”和“Open Existing GUI”,選擇“Creat New GUI”標簽下的“Blank GUI(Default)”(空白GUI),點擊OK,正式進入GUIDE界面。在此界面下按照圖4添加相應模塊。

圖4 Guide界面
本GUI包含一個Axes控件、三個Push Button控件、五個Edit Text控件和九個Static Text控件。
3.3 設置控件屬性
雙擊相應控件,打開Property Inspector對話框,更改控件屬性。主要更改的幾個屬性有:"string"、" fontsize"、"Tag"等,此設置方式和VB中的控件屬性設置較為相像。
3.4 書寫GUI回調函數(callback)代碼
在保存GUI程序時,Matlab會自動生成.fig和.m文件,其中的.m就是我們現在要操作的對象。在M文件中添加控件的回調函數,即:相應用戶的操作!這也是GUI編程的核心內容,這就要求我們必須掌握Matlab基本編程以及圖形句柄(handles)語句![3]
由于函數有自己的狀態(tài)空間(不是Base Workspace),因此在函數中使用sim()函數進行模型仿真時,即使你在函數中定義了模型的必要參數,但是這些參數只存在于函數狀態(tài)空間中,模型在仿真是沒法獲取。由于函數狀態(tài)空間和基本狀態(tài)空間的變量和數據不兼容,這大大增加了我們在GUI中調用simulink的難度。還好Simulink中提供的simset()函數,我們可以將Simulink設置為從當前工作空間運行。
Simset Description:The simset command creates a structure called options,in which the named simulation parameters and solver properties have specified values.All unspecified parameters and properties take their default values.It is only necessary to enter enough leading characters to uniquely identify the parameter or property.Case is ignored for parameters and properties.options=simset(property,value,...)sets the values of the named properties and stores the structure in options.[4]
3.5 調節(jié)器參數整定
本文的參數整定采用實驗湊試法,實驗湊試法是通過閉環(huán)運行或模擬,觀察系統(tǒng)的響應曲線,然后根據各參數對系統(tǒng)的影響,反復湊試參數,直至出現滿意的響應,從而確定PID控制參數。
整定步驟:實驗湊試法的整定步驟為“先比例,再積分,最后微分”。
(1)整定比例控制:將比例控制作用由小變到大,觀察各次響應,直至得到反應快、超調小的響應曲線。
(2)整定積分環(huán)節(jié):若在比例控制下穩(wěn)態(tài)誤差不能滿足要求,需加入積分控制。先將步驟(1)中選擇的比例系數減小為原來的50~80%,再將積分時間置一個較大值,觀測響應曲線。然后減小積分時間,加大積分作用,并相應調整比例系數,反復試湊至得到較滿意的響應,確定比例和積分的參數。
(3)整定微分環(huán)節(jié):若經過步驟(2),PI控制只能消除穩(wěn)態(tài)誤差,而動態(tài)過程不能令人滿意,則應加入微分控制,構成PID控制。先置微分時間TD=0,逐漸加大TD,同時相應地改變比例系數和積分時間,經過反復試湊至獲得滿意的控制效果,本次實驗仿真其調節(jié)器參數Kp=20,Ki=1,Kd=8。
3.6 仿真實驗結果
仿真結果如圖5所示:

圖5 Gui仿真界面圖
通過仿真結果顯示可以看出:系統(tǒng)超調量較小(低于5%),在10S時加入了2%*sv的白噪音干擾后的穩(wěn)態(tài)誤差也很小,各項性能指標均較好。
3.7 部分回調函數(callback)代碼


本文設計了基于MatLab GUI的pid仿真系統(tǒng),以分離式雙容液位過程為例,通過GUI界面形象的展示了各參數之間關系及顯示控制結果,既發(fā)揮了MatLab GUI界面逼真、直觀的特點,又結合了Simulink適應面廣、結構和流程清晰及仿真精細、貼近實際、效率高、靈活等。
[1]羅建軍楊琦.精講多練MATLAB(第2版)[M].西安:西安交通大學出版社,2010.
[2]MATLAB Function Reference,MATLAB7.0(doc guide)
[3]http://www.ilovematlab.cn/
[4]MATLAB Function Reference,MATLAB7.0(doc simset)
TP13
A
1671-6469(2012)01-0089-04
2011-11-06
朱鵬遠(1982-),男,陜西省西安市人,昌吉學院物理系,助教,研究方向:測控技術與儀器。
(責任編輯:馬海燕)