基于混合编程的《自动控制原理》辅助教学系统开发
2013-01-10李靖平
李靖平,汪 岚
(1. 黎明职业大学 信息与电子工程学院,福建 泉州 362000;2. 黎明职业大学 机电工程与自动化学院)
《自动控制原理》是电子信息、自动化和测控技术等专业的必修课程,主要研究自动控制的基本原理、常用基本控制系统的分析和设计方法.它以《工程数学》等课程为基础,同时又是后续《过程控制技术》、《先进控制技术》等专业课程的基础,在教学环节中起着承上启下的重要作用.但是该课程对数学基础要求较高,理论分析往往来源于复杂的数学运算和推导,这将导致学生把大量时间用于手工数学运算,过度关注信号与系统分析的数学过程,而忽视分析结果在控制工程中的实际应用,并且高职高专的电类学生数学基础又都较为薄弱,因此一味采用传统式教学,纯粹依靠做习题来巩固和理解教学内容,并不利于教学质量的提高.
基于此,本文利用混合编程技术[1~3],开发出一套《自动控制原理》课程的辅助教学系统平台软件,利用该平台,用户无需掌握编程技术,只需在人机界面上输入相关参数,即可在后台自动完成复杂的数值计算,并通过界面将结果或图形表达出来,教师就能结合图形来辅助教学.任课教师可以有更多的时间和精力把教学重点放在对知识的实际应用上,不仅能使上课效率有所提高,而且能让学生在理论够用的基础上,看到更为直观易懂的可视化计算结果,提高学生的学习兴趣和主动性,从而有效的提高教学质量.
1 系统实现
Matlab[4]是美国MathWorks公司开发的一款用于数学的软件,专用于数值计算、分析、数据可视化和算法优化的高级技术计算语言和交互式环境,主要包括Matlab和Simulink两大部分.基于这款软件,用户可免于繁杂的数学运算分析、可轻松完成各种图形的绘制和编辑,实现计算结果仿真,非常利于用户学习和掌握.
Matlab软件内部自带有控制系统工具箱,且具有很好的数值运算能力,已成为《自动控制原理》及其工程应用领域有效的计算和仿真工具,但Matlab存在保密性低、界面开发功能较弱等缺点.而Visual Basic是一种非常有利于界面开发的应用软件,若能将二者混合编程,便可实现优势互补.因此,系统的实现基于VB6.0和MATLAB7.0混合编程方法,开发出能提高数值计算能力和图形处理效率,利于《自动控制原理》课程教学的应用系统.因自控这门课程主要利用Matlab的编程与框图建模来实现对控制系统的分析与仿真,所以软件设计过程中所用的关键技术如下:
1.1 VB和Matlab混合编程技术
Matlab与VB混合编程的方法可根据编程时是否需要Matlab运行环境分为两大类:Matlab在后台运行和可脱离Matlab环境运行.具体方法有:①MatrixVB技术.②利用ActiveX自动化服务技术.③利用DDE技术.④利用可执行M文件技术.⑤利用Matlab COM Builder.
鉴于本文设计的目的是开发一种能脱离Matlab运行环境而独立使用的应用软件,故采用最后一种方法.以PID整定分析为例,说明混合编程的实现方法如下[4~5]:
①编写PID整定模块对应的m文件“PID.m”.利用Matlab COM Builder的“mypid”工程中添加“PID.m”函数并编译,生成mypid_1_0.dll组件.
②将生产的COM组件打包并生产能自解压执行的程序,将其复制到将要运行软件的目标计算机上执行.
③在VB界面中添加诸如“仿真”、“返回”等相关控件后,在Tool->OLE/COM Object Viewer->选中新建的组件mypid,并生成mypid_1_0.h和mypid_1_0.c文件.
④将生成的mypid_1_0.h和mypid_1_0.c文件添加到工程中并设置VB使用COM组件所对应的头文件路径,添加所需的头文件和库文件;为软件界面添加其余控件和相应的代码.
这样,M函数文件转变成为独立的进程内COM组件,该组件作为独立的COM对象,供VB直接调用,没有必要进行环境切换,因此可获得最快的运行速度,且编程风格一致,可读性较好.
1.2 SIMULINK仿真技术
Matlab7.0中自带内容丰富的控制系统工具箱Simulink具有非常强大的功能,可非常方便的实现控制系统的建模、仿真和动态分析.实现方法是:首先,用户在VB环境中输入的相应系统参数,并传输给Simulink仿真环境下动态结构图,获得输出响应.其次,在系统模型增加一个输出模块,可将仿真数据输出值Matlab中的Workspace.最后,在VB中利用Image控件,将Matlab的仿真曲线在VB环境中显示出来.
1.3 仿真曲线、文本和图形显示
Matlab拥有强大的计算和绘图能力,可在Simulink环境中利用示波器scope观察控制系统对应的输出图形和曲线.但是,scope生成的相关图形却无法在VB环境下输出.为了在VB中观察对应的输出曲线,可先将Matlab软件生成的图形保存为BMP格式文件,然后嵌入VB中的picturebox控件中,这样仿真曲线就可在VB的环境中显示出来.
同样,Matlab仿真过程中的文本和图片则可利用VB中的richtext控件来实现.先在word中输入要显示的文本内容,将其保存为rtf类型的文件,然后将其嵌入VB中的richtext控件中,即可显示对应的文本内容.
2 系统结构
整个软件系统主要包括三大模块:Matlab计算及仿真模块,即在Matlab环境下实现6个部分的计算与分析,分别为典型环节性能分析、二阶系统时域分析、二阶系统频域分析、线性系统根轨迹分析、系统的PID调节以及系统帮助.其中,系统帮助模块则是介绍系统使用说明.数据库模块,即基于COM组件技术,通过ADO接口访问SQL Server数据库,获取各部分计算的数据,仿真的曲线等信息.VB系统界面设计模块,即负责人机界面及其相应的操作.具体系统结构框图如图1所示.
图1 系统软件结构图
3 系统应用实例
基于上述所选的VB和Matlab混合编程技术,完成软件的开发,分别以二阶系统时域分析和PID调节分析来介绍系统的应用.二阶系统时域分析中的动态性能指标分析界面如图2所示.
图2 动态性能指标分析界面
在图2中,选择二级时域分析下拉菜单选择动态性能指标,则系统切换到动态性能指标分析界面.界面分为左右两部分,其中右边有输入和输出功能.首先,在参数设定框中输入传递函数对应的分子分母系数,在传递函数框就会显示与之对应的表达式,点击“仿真”按钮,则在左边图形框内显示传递函数对应的动态仿真曲线,且在右边的仿真结果框中显示包括上升时间、调节时间等4个二阶系统动态性能指标数值.
系统的PID调节界面如图3和图4所示.
图3 PID模型界面
图4 PID参数整定界面
图3的左边是要分析的系统Simulink模型,在右边的参数设定中,输入预整定的PID参数,如比例系数、采样时间和采样个数等参数.点击“仿真”按钮,则系统界面切换到图4,在图4的左边显示对应系统模型的响应曲线.在图4中,也可直接在右边输入参数,再次获得曲线,无需切换回图3进行参数切换.
对于《自动控制原理》课程而言,教学内容中对应的数据模型相对比较固定,主要教学重点是固定模型中不同参数对于各自动控制系统的性能影响.通过上述两个应用实例发现,系统界面简单易操作,而应用该辅助教学软件,学生无需了解具体的Matlab编程及代码函数、无需进行繁杂的计算,即可通过形象直观的仿真曲线或数值来分析系统的性能好坏,提高学生的学习兴趣.
4 结论
本文基于混合编程技术及COM组件,将Matlab强大的数值计算功能和VB完美的人机界面开发能力结合起来,开发出了《自动控制原理》辅助教学系统.应用该系统,可实现对《自动控制原理》课程的改革,使课程内容更具有实际意义,教学效果得到明显的提高.而且,系统操作简单、图形显示和数值读取清晰明了,学生能很直观的理解自动控制系统相关的分析方法和相关理论知识,大大的提高了学生学习的主动性.
参考文献:
[1]王永虎,王欣,王红梅.VB与MATLAB混合编程在CAI系统中的应用[J].航空技术,2010(1):71-74.
[2]陈飞,陈惠侠.基于LabVIEW和Matlab的自动控制虚拟实验系统[J].实验科学与技术,2008,7(1):75-77.
[3]罗朝明,李文,李延平,刘杰.基于Matlab和VB的《信号与系统》虚拟实验系统[J].湖南理工学院学报,2007,20(1):59-61.
[4]杨高波,亓波.精通MATLAB7.0混合编程[M].北京:电子工业出版社,2006.
[5]孟力力,杨其长.VB调用Matlab的COM组件实现而这混合编程[J].电脑开发与应用,2008,21(6):24-26.