利用交互计算平台加强控制系统学习经验
2009-06-15陈波
陈 波
文章编号:1672-5913(2009)05-0047-05
摘要:本文阐述了如何使用C/C++交互计算平台来加强本科控制系统课程的教学工作。课程选择使用Ch开发的软件包,即Ch控制系统工具包CCST(Ch Control System Toolkit )和基于Web的控制系统设计分析系统WCSDAS(Web-based Control System Design and Analysis System )。CCST工具和C/C++兼容,并提供了类似MATLAB控制系统工具箱的功能。基于CCST的WCSDAS使学生可以在任何时候任何地点通过Web学习控制理论和设计原型控制系统,而不需要写任何代码。使用这些工具有很多优点:更好的视觉效果、更易理解、学生更有兴趣。
关键词:控制系统设计分析;基于网络的控制工具;WCSDAS
中图分类号:G642
文献标识码:A
1简介
自动控制已成为绝大多数工程学科的重点研究内容,其相关课程也是各类工程课程的组成部分[1]。随着数学和计算技术的进步,现代控制工程的设计和分析方法大大扩展了可解决问题的范围。日益发展的计算密集型方法学需要开发新的教学工具,以提高控制教学的成效。诸如MATLAB控制系统工具箱[2]和Mathematica控制系统[3]之类的软件包已进入市场,供计算机辅助控制系统设计和分析。随着万维网的广泛普及,基于Web的控制系统设计和分析工具正成为一种很有前景的技术。在教育领域,该技术能够极大地改善控制系统的教学效果。这些工具使学生更积极地投入到控制课程的学习,并且具有很好的远程教育效果[4][5]。基于Web的交互式计算工具使学生很容易尝试不同的控制方案,并通过观察Web上即时生成的控制结果探索新的控制策略。
本文介绍了开源Ch控制系统工具包CCST(Ch Control System Toolkit)和面向自动控制系统教学的基于Web的控制系统设计和分析系统WCSDAS(Web- based Control System Design and Analysis System),详细说明了这些工具对提高学生学习效率的作用。利用C/C++开发的CCST控制系统工具包可以与实时控制软件无缝连接。WCSDAS以Web方式调用CCST的控制功能。CCST和WCSDAS都是开源软件,学生可以通过阅读它们的源代码来理解控制原理和算法是如何实现的,也可以通过扩展软件功能来解决新问题,学习如何用计算机程序实现控制算法。这些软件包可供教师和学生免费使用。
2Ch控制系统工具包
Ch控制系统工具包[6][7]CSST是一款基于对象的软件包,它是在解释性的C/C++环境Ch[8]-[10]中开发的。CSST设计了一个C/C++控制类,提供线性时不变控制系统的建模、分析和设计等函数功能。它包含了控制系统设计和分析中常用的功能模块,如时域响应、频域响应、系统分析、系统设计、模型转换和系统转换等。大部分功能都适用于连续或离散的LTI系统,该系统的模型可以是状态空间模型、传递函数模型或零—极点—增益模型。CCST的成员函数与MATLAB的控制函数的对应关系如表1所示。CCST和MATLAB控制系统工具箱之间详细的语法对比见参考文献[11]。此外,参考文献[12]中的网页以示例形式对比了这两种方法。
表1 Ch控制工具包成员函数和等效MATLAB函数部分清单
传统上,控制系统设计和模拟大都是在诸如MATLAB和Mathematica之类具有很强计算能力的环境中进行的,但是为这些环境写的代码却无法在实时控制系统中直接使用。虽然这些环境大多都提供了可以将控制代码编译成适用实时控制(很可能是C语言)的转换器,但是转化效率低,且转化后的程序代码容易出错。此外,某些情况下,生成的C代码缺乏良好的组织,不易理解。因此,维护生成的C代码并将其与工程领域现有的大型软件系统集成将会比较困难。而如果用CCST来进行实时控制系统的设计和模拟,则会大大减少这方面的困难。由于CCST是用C/C++开发的,CCST就能更方便地以源代码或二进制形式与现有的C/C++代码对接,这就消除了代码转换引起的错误,同时用户也可以只通过一种语言进行建模,分析、设计和控制实时系统。下面用一个简单的实例来说明如何使用CCST解决控制问题。
例1:利用CCST模拟二阶系统的阶跃响应,如图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;
}
现在逐行分析这个程序。程序的第一行如下:
#include
它包含了Ch控制系统工具包类,使程序可以在本地使用CCST成员函数。接下来的几行对程序中随后用到的变量进行了初始化。
int main() {
double num[1] = {200};
double den[3] = {1, 10, 200};
class CPlot plot;
class CControl sys;
变量“num”和“den”都是数组,表示传递函数的分子和分母。变量“plot”是CPlot类的一个实例(对象),用于生成图形阶跃响应。变量“sys”是Ch控制系统工具包类的一个实例(对象)。随后的一行初始化了系统模型。
sys.model("tf", num, den);
其中第一个参数“tf”表示这个模型类型是传递函数,随后的两个参数“num”和“den”表示传递函数的分子和分母。
下一行生成图形化的阶跃响应:
sys.step(&plot, NULL, NULL, NULL);
第一个参数“plot”是之前初始化的CPlot类的一个实例。最终这个程序生成了如图2所示的阶跃响应。
3基于Web的控制系统设计和分析
在CCST的基础上,开发了基于Web的控制系统设计和分析系统WCSDAS[13]。这一工具的完整功能见参考文献[14]所示的网址。图3显示了WCSDAS索引页面的部分内容。有了WCSDAS,任何人只要能上互联网,不管其电脑是否内存不足或CPU超载,均可以进行控制系统的设计和分析,这就为学生提供了在Web上学习控制理论和设计控制系统的好机会。Web界面简单易用,用户可以在Web浏览器中选择设计方法和分析方法,指定系统模型类型、系统类型和系统参数。WCSDAS对用户的输入进行检查,如果输入信息无效,则会提示用户;接着数据被传送到Web服务器进行数值计算,仿真结果通过Ch的CGI接口反馈给Web客户端。基于Web控制系统的独特之处在于它的设计、分析和认证控制策略是通过Internet来完成的,无需安装软件,也不必进行系统配置和编程。由于计算纯粹在服务器上执行,计算时间就不会受到服务端和客户端连接速度的干扰,用户可以把精力集中到控制系统问题上,并通过服务器客户端的交互获取结果。
下面的例子说明了如何使用WCSDAS来解决控制问题。
例2:绘出图4 所示系统的根轨迹。
点击图3所示索引页面的“根轨迹”超级链接,会弹出如图5所示页面。选中“零—极点—增益模型”并点击“继续”按钮,会出现如图6所示的控制对象定义页面。可以看到页面所提供的控制对象的零极点数量跟所需要的不匹配,因此必须重新定义控制对象的零极点数量。设定一个零点和四个极点,并点击“提交”按钮,会出现如图7所示的新页面,用户可以在这个页面上输入零点、极点和增益来定义控制对象。完成输入后,点击“运行”按钮,WCSDAS会自动显示系统的根轨迹,如图8所示。通过上述步骤,用户解决控制问题时无需编写任何程序代码。
图5根轨迹首页
图6默认plant定义页面
4总结
基于C/C++解释环境开发的Ch控制系统工具包CCST和基于Web的控制系统设计和分析系统WCSDAS,已经用于一门工程系统自动控制的大学本科课程[15]。所有软件包、辅助文档及课余作业答案均张贴在参考文献[16]所示的该课程网页上。使用CCST,学生只需编写几行C/C++代码即可完成复杂控制系统的设计与分析。WCSDAS是与计算机平台和场地无关的。使用WCSDAS可以随时随地解决复杂的控制问题,而无需编写任何代码。CCST和WCSDAS都是开源的,可从网上免费下载。使用过这些工具的学生对它的反映较好,学生特别喜欢这款基于Web学习工具简洁的界面风格。
参考文献:
[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