陳 波
文章編號:1672-5913(2009)05-0047-05
摘要:本文闡述了如何使用C/C++交互計算平臺來加強本科控制系統(tǒng)課程的教學(xué)工作。課程選擇使用Ch開發(fā)的軟件包,即Ch控制系統(tǒng)工具包CCST(Ch Control System Toolkit )和基于Web的控制系統(tǒng)設(shè)計分析系統(tǒng)WCSDAS(Web-based Control System Design and Analysis System )。CCST工具和C/C++兼容,并提供了類似MATLAB控制系統(tǒng)工具箱的功能。基于CCST的WCSDAS使學(xué)生可以在任何時候任何地點通過Web學(xué)習(xí)控制理論和設(shè)計原型控制系統(tǒng),而不需要寫任何代碼。使用這些工具有很多優(yōu)點:更好的視覺效果、更易理解、學(xué)生更有興趣。
關(guān)鍵詞:控制系統(tǒng)設(shè)計分析;基于網(wǎng)絡(luò)的控制工具;WCSDAS
中圖分類號:G642
文獻標識碼:A
1簡介
自動控制已成為絕大多數(shù)工程學(xué)科的重點研究內(nèi)容,其相關(guān)課程也是各類工程課程的組成部分[1]。隨著數(shù)學(xué)和計算技術(shù)的進步,現(xiàn)代控制工程的設(shè)計和分析方法大大擴展了可解決問題的范圍。日益發(fā)展的計算密集型方法學(xué)需要開發(fā)新的教學(xué)工具,以提高控制教學(xué)的成效。諸如MATLAB控制系統(tǒng)工具箱[2]和Mathematica控制系統(tǒng)[3]之類的軟件包已進入市場,供計算機輔助控制系統(tǒng)設(shè)計和分析。隨著萬維網(wǎng)的廣泛普及,基于Web的控制系統(tǒng)設(shè)計和分析工具正成為一種很有前景的技術(shù)。在教育領(lǐng)域,該技術(shù)能夠極大地改善控制系統(tǒng)的教學(xué)效果。這些工具使學(xué)生更積極地投入到控制課程的學(xué)習(xí),并且具有很好的遠程教育效果[4][5]?;赪eb的交互式計算工具使學(xué)生很容易嘗試不同的控制方案,并通過觀察Web上即時生成的控制結(jié)果探索新的控制策略。
本文介紹了開源Ch控制系統(tǒng)工具包CCST(Ch Control System Toolkit)和面向自動控制系統(tǒng)教學(xué)的基于Web的控制系統(tǒng)設(shè)計和分析系統(tǒng)WCSDAS(Web- based Control System Design and Analysis System),詳細說明了這些工具對提高學(xué)生學(xué)習(xí)效率的作用。利用C/C++開發(fā)的CCST控制系統(tǒng)工具包可以與實時控制軟件無縫連接。WCSDAS以Web方式調(diào)用CCST的控制功能。CCST和WCSDAS都是開源軟件,學(xué)生可以通過閱讀它們的源代碼來理解控制原理和算法是如何實現(xiàn)的,也可以通過擴展軟件功能來解決新問題,學(xué)習(xí)如何用計算機程序?qū)崿F(xiàn)控制算法。這些軟件包可供教師和學(xué)生免費使用。
2Ch控制系統(tǒng)工具包
Ch控制系統(tǒng)工具包[6][7]CSST是一款基于對象的軟件包,它是在解釋性的C/C++環(huán)境Ch[8]-[10]中開發(fā)的。CSST設(shè)計了一個C/C++控制類,提供線性時不變控制系統(tǒng)的建模、分析和設(shè)計等函數(shù)功能。它包含了控制系統(tǒng)設(shè)計和分析中常用的功能模塊,如時域響應(yīng)、頻域響應(yīng)、系統(tǒng)分析、系統(tǒng)設(shè)計、模型轉(zhuǎn)換和系統(tǒng)轉(zhuǎn)換等。大部分功能都適用于連續(xù)或離散的LTI系統(tǒng),該系統(tǒng)的模型可以是狀態(tài)空間模型、傳遞函數(shù)模型或零—極點—增益模型。CCST的成員函數(shù)與MATLAB的控制函數(shù)的對應(yīng)關(guān)系如表1所示。CCST和MATLAB控制系統(tǒng)工具箱之間詳細的語法對比見參考文獻[11]。此外,參考文獻[12]中的網(wǎng)頁以示例形式對比了這兩種方法。
表1 Ch控制工具包成員函數(shù)和等效MATLAB函數(shù)部分清單
傳統(tǒng)上,控制系統(tǒng)設(shè)計和模擬大都是在諸如MATLAB和Mathematica之類具有很強計算能力的環(huán)境中進行的,但是為這些環(huán)境寫的代碼卻無法在實時控制系統(tǒng)中直接使用。雖然這些環(huán)境大多都提供了可以將控制代碼編譯成適用實時控制(很可能是C語言)的轉(zhuǎn)換器,但是轉(zhuǎn)化效率低,且轉(zhuǎn)化后的程序代碼容易出錯。此外,某些情況下,生成的C代碼缺乏良好的組織,不易理解。因此,維護生成的C代碼并將其與工程領(lǐng)域現(xiàn)有的大型軟件系統(tǒng)集成將會比較困難。而如果用CCST來進行實時控制系統(tǒng)的設(shè)計和模擬,則會大大減少這方面的困難。由于CCST是用C/C++開發(fā)的,CCST就能更方便地以源代碼或二進制形式與現(xiàn)有的C/C++代碼對接,這就消除了代碼轉(zhuǎn)換引起的錯誤,同時用戶也可以只通過一種語言進行建模,分析、設(shè)計和控制實時系統(tǒng)。下面用一個簡單的實例來說明如何使用CCST解決控制問題。
例1:利用CCST模擬二階系統(tǒng)的階躍響應(yīng),如圖1所示。
解決這一問題的計算機程序如下:
Example1.cn
#include
int main() {
double num[1] = {200};
double den[3] = {1, 10, 200};
class CPlot plot;
class CControl sys;
sys.model("tf", num, den);
sys.step(&plot, NULL, NULL, NULL);
return 0;
}
現(xiàn)在逐行分析這個程序。程序的第一行如下:
#include
它包含了Ch控制系統(tǒng)工具包類,使程序可以在本地使用CCST成員函數(shù)。接下來的幾行對程序中隨后用到的變量進行了初始化。
int main() {
double num[1] = {200};
double den[3] = {1, 10, 200};
class CPlot plot;
class CControl sys;
變量“num”和“den”都是數(shù)組,表示傳遞函數(shù)的分子和分母。變量“plot”是CPlot類的一個實例(對象),用于生成圖形階躍響應(yīng)。變量“sys”是Ch控制系統(tǒng)工具包類的一個實例(對象)。隨后的一行初始化了系統(tǒng)模型。
sys.model("tf", num, den);
其中第一個參數(shù)“tf”表示這個模型類型是傳遞函數(shù),隨后的兩個參數(shù)“num”和“den”表示傳遞函數(shù)的分子和分母。
下一行生成圖形化的階躍響應(yīng):
sys.step(&plot, NULL, NULL, NULL);
第一個參數(shù)“plot”是之前初始化的CPlot類的一個實例。最終這個程序生成了如圖2所示的階躍響應(yīng)。
3基于Web的控制系統(tǒng)設(shè)計和分析
在CCST的基礎(chǔ)上,開發(fā)了基于Web的控制系統(tǒng)設(shè)計和分析系統(tǒng)WCSDAS[13]。這一工具的完整功能見參考文獻[14]所示的網(wǎng)址。圖3顯示了WCSDAS索引頁面的部分內(nèi)容。有了WCSDAS,任何人只要能上互聯(lián)網(wǎng),不管其電腦是否內(nèi)存不足或CPU超載,均可以進行控制系統(tǒng)的設(shè)計和分析,這就為學(xué)生提供了在Web上學(xué)習(xí)控制理論和設(shè)計控制系統(tǒng)的好機會。Web界面簡單易用,用戶可以在Web瀏覽器中選擇設(shè)計方法和分析方法,指定系統(tǒng)模型類型、系統(tǒng)類型和系統(tǒng)參數(shù)。WCSDAS對用戶的輸入進行檢查,如果輸入信息無效,則會提示用戶;接著數(shù)據(jù)被傳送到Web服務(wù)器進行數(shù)值計算,仿真結(jié)果通過Ch的CGI接口反饋給Web客戶端?;赪eb控制系統(tǒng)的獨特之處在于它的設(shè)計、分析和認證控制策略是通過Internet來完成的,無需安裝軟件,也不必進行系統(tǒng)配置和編程。由于計算純粹在服務(wù)器上執(zhí)行,計算時間就不會受到服務(wù)端和客戶端連接速度的干擾,用戶可以把精力集中到控制系統(tǒng)問題上,并通過服務(wù)器客戶端的交互獲取結(jié)果。
下面的例子說明了如何使用WCSDAS來解決控制問題。
例2:繪出圖4 所示系統(tǒng)的根軌跡。
點擊圖3所示索引頁面的“根軌跡”超級鏈接,會彈出如圖5所示頁面。選中“零—極點—增益模型”并點擊“繼續(xù)”按鈕,會出現(xiàn)如圖6所示的控制對象定義頁面??梢钥吹巾撁嫠峁┑目刂茖ο蟮牧銟O點數(shù)量跟所需要的不匹配,因此必須重新定義控制對象的零極點數(shù)量。設(shè)定一個零點和四個極點,并點擊“提交”按鈕,會出現(xiàn)如圖7所示的新頁面,用戶可以在這個頁面上輸入零點、極點和增益來定義控制對象。完成輸入后,點擊“運行”按鈕,WCSDAS會自動顯示系統(tǒng)的根軌跡,如圖8所示。通過上述步驟,用戶解決控制問題時無需編寫任何程序代碼。
圖5根軌跡首頁
圖6默認plant定義頁面
4總結(jié)
基于C/C++解釋環(huán)境開發(fā)的Ch控制系統(tǒng)工具包CCST和基于Web的控制系統(tǒng)設(shè)計和分析系統(tǒng)WCSDAS,已經(jīng)用于一門工程系統(tǒng)自動控制的大學(xué)本科課程[15]。所有軟件包、輔助文檔及課余作業(yè)答案均張貼在參考文獻[16]所示的該課程網(wǎng)頁上。使用CCST,學(xué)生只需編寫幾行C/C++代碼即可完成復(fù)雜控制系統(tǒng)的設(shè)計與分析。WCSDAS是與計算機平臺和場地?zé)o關(guān)的。使用WCSDAS可以隨時隨地解決復(fù)雜的控制問題,而無需編寫任何代碼。CCST和WCSDAS都是開源的,可從網(wǎng)上免費下載。使用過這些工具的學(xué)生對它的反映較好,學(xué)生特別喜歡這款基于Web學(xué)習(xí)工具簡潔的界面風(fēng)格。
參考文獻:
[1] S. D. Bencomo,“Control learning:present and future”,Annual Reviews in Control,vol. 28,pp. 115-136,2004.
[2] “MATLAB Control System Toolbox”,http://www.mathworks.com/products/control/.
[3] “Mathematicas Control System Professional”,http://www.wolfram.com/products/applications/control/index.html.
[4] M. Casini,D. Prattichizzo and A. Vicino,“The Automatic Control Telelab:A User-friendly Interface for Distance Learning”,IEEE Transactions on Education,vol. 46,pp. 252-257,2003.
[5] C. C. Chan,R. Kwan and S. F. Chan,“Learning Control Systems on the Web”,in Proceedings International Conference on Computers in Education,2002,pp. 894-5 vol.2|2 vol.xliii+1580.
[6] Y. Zhu,B. Chen and H. H. Cheng,“An Object-Based Software Package for Interactive Control System Design and Analysis”,ASME Journal of Computing and Information Science in Engineering,vol. 3,pp. 366-371,2003.
[7] “Ch Control System Toolkit”,http://www.softintegration.com/products/toolkit/control/.
[8] H. H. Cheng,“Ch:A C/C++ Interpreter for Script Computing”,C/C++ User's Journal,vol. 24,pp. 6-12,Jan. 2006.
[9] H. H. Cheng,“Scientific Computing in the Ch Programming Language”,Scientific Programming,vol. 2,pp. 49-75,Fall 1993.
[10] “Ch - an Embeddable C/C++ Interpreter”,http://www.softintegration.com.
[11] “Syntax Comparison of Ch Control System Toolkit with MATLAB Control System Toolkit”,http://www.softintegration. com/products/toolkit/control/ch_matlab.html.
[12] “Ch Control System Toolkit Demos”,http://www.softintegration.com/demos/toolkit/control/.
[13] Q. Yu,B. Chen,and H. H. Cheng,“Web-Based Control System Design and Analysis”,IEEE Control Systems Magazine,vol. 24,pp. 45-57,2004.
[14] “Web-Based Control System Design and Analysis”,http://www.softintegration.com/webservices/control/.
[15] B. Chen,Y.-C. Chou and H. H. Cheng,“Teaching Automatic Control of Engineering Systems Using Open Source Ch Control System Toolkit and Web-Based Design and Analysis System”,in ASME 2008 Dynamic Systems and Control Conference,Ann Arbor,Michigan,U.S.A.,2008.
[16] “Teaching Automatic Control of Engineering Systems”,http://iel.ucdavis.edu/course/EME172.
Enhancing Control Systems Learning Experience with an Interactive Computing Environment
Bo Chen, Assistant Professor
(Department of Mechanical Engineering-Engineering Mechanics, Department of Electrical and Computer Engineering,Michigan Technological University,Houghton,MI 49931,USA)
Abstract:This paper describes the use of Ch, a C/C++ Interactive computing environment, to enhance learning and interest for an undergraduate control system design and analysis course. Software packages developed in Ch, the Ch Control System Toolkit (CCST) and the Web-based Control System Design and Analysis System (WCSDAS), were chosen because these tools are C/C++ compatible and provide similar functions as MATLAB control system toolbox. Unlike other software packages, Web-based tool and WCSDAS allow students to learn control theories and prototype control systems on the Web at any time and location they desire without the need of writing a single line of code. The use of these tools presents many advantages: better visualization, quicker understanding, and higher interest levels. These software packages are freely available on the Web at http://www.softintegration.com.
Keywords: control system design and analysis; web-based control tools; WCSDAS