1、自动控制原理计算机辅助教学软件的开发【摘要】当今信息技术的发展,使控制原理的学习模式也有了许多变化,高性能的计算机和功能强大的 CAI 软件工具使以前费时费力都难以做好的事情现在可以轻而易举地做到了。本文将围绕自动控制原理计算机辅助教学软件的开发进行讨论。 【关键字】自动控制原理计算机辅助教学软件开发 中图分类号:TB486+.3 文献标识码:A 文章编号: 一、相关简介 Matlab 是美国 Math Works 公司推出的一套高性能数值计算和可视化软件,它以矩阵和向量 为基本数据单位,具有十分突出的矩阵计算能同时,Matlab 含有各种可选的工具箱,如神经网络、小波分析、模糊控制、信号处理
2、、鲁棒控制等功能强大的计算辅助工具,如今 Matlab 已广泛应用于各个领域,但老版本的 Matlab 也有局限性,即:不能脱离 Matlab 集成环境工作,生成复杂的人机交互式图形界面的能力不强。 Visual Basic 是一种可视化的高级程序设计语言,它避开了采用C+编程过于繁琐和抽象 的缺点,能使开发人员快速方便地开发友好的用户界面,是 Windows下简单、易学、高效的可视化软件平台,但用 Basic 语言实现复杂的算法工作 量十分庞大. 由此,利用 VB 与 Matlab 的互补性,设计开发了“自动控制原理”的计算机辅助教学软件,该辅助教学软件操作简便,界面友好、灵活,对“ 自动控
3、制原理”的教学具有一定的实用性。 二、软件的总体设计 基本设计思想是构造一套具有交互式人机接口界面友好的结构框图。控制理论部分模块由根轨迹、时域分析、频域分析三部分组成模型组成,主要以实例体现这三种分析方法,侧重于现象的产生和效果圈。有利于高职学生的理解和学习。在工程实际中,控制系统的结构往往很复杂,如果不借助专用的系统建软件,则很难准确地把一个控制系统的复杂模型输入计算机,对其进行进一步的分析与仿真。MATLAB 提供了控制系统模型图输入与仿真工具,该工具使得仿真软件进入了模型化图形组态阶段。也称为 SIMULINK,它的出现给控制系统分析与设计带来了福音。该软件可以利用鼠标在模型窗口上绘制
4、出所需要的控制系统模型,然后利用 SIMULINK 提供的功能来对系统进行仿真和分析。现就 SIMILINK 模块库按功能进行分类,包括如下 8 类子库它们分别是:Continuous(连续模块)、Discrete(离散模块)、Function Tables(函数和平台模块)、Math(数学模块)、Nonl inear(非线性模块)、signalssystems(信号和系统模块)、sinks(接收器模块)、Sources(输入源模块)。现就简单模型的建立归纳分步。 (1)建立模型窗口 (2)将功能模块由模块库窗口复制到模型窗口 (3)对模块进行连接,从而构成需要的系统模型 三、软件设计及实现
5、1、软件开发中的关键技术 在“自动控制原理”的 CAI 软件设计中,本文同时采用了 Visual Basic 和 Matlab 这两个软件来实现,两个软件之间的数据交互即相互之间的函数; 组件如何调用是一个需要解决的关键技术问题。 本文利用ActiveX 协议,以 Visual Basic 作为服务器,Matlab 应用程序为控制端,实现了 VB 调用 Matlab 来进行相关计算和绘图等功能。 2、ActiveX 介绍 ActiveX 是一种基于 Microsoft Windows 操作系统的组件集成协议,借助!“#$%& ,开发商和终端用户就能把来自不同商家的 ActiveX 组件无缝地集
6、成在自己的应用程序中,从而完成特定的目这不仅缩短了开发时间,而且有效地避免了低水平的重复开发 ActiveX 是各种面向对象技术的集合.这些技术都有的共同基础是组件对象模型 Component Object Model 简称 COM 模型用于在异型网络和操作系统中建立、应用和加入可重复使用的组件对象。从理论上说,这些组件对象可以互相通信与交互。因此,COM 模型促进和鼓励开放式系统解决方案,其规程包括一套标准API 和一个标准的接口集,以及 COM 用于支持分布式计算的网络协议。 3、VB 与 Matlab 的交互 Matlab 提供了一个非常重要的组件:Matlab 应用程序接口(Matla
7、bApplication Program Interface) ,但该接口只能实现与 C 语言和 FORTRAN 的交互,这给 Visual Basic 的使用者带来很多不便。但 Matlab 支持 ActiveX 这种自动化技术,从而使 Matlab 能施控和受控于其他组件,即 Matlab 支持的 ActiveX 有两个方面的涵义:在其他程序下运行 Matlab 的 ActiveX 部件和在 Matlab 下运行 ActiveX 其他部件。 当Matlab 受控 于其他组件时,Matlab 表现为自动化服务器 Automation Server 这样利用 ActiveX 自动化技 术就可以
8、实现与其他编程软件的混合编程。由于 Visual Basic 支持ActiveX 自动化控制端 协议,Matlab 支持 ActiveX 自动化服务器端协议,因此,如果已经建立了一个 VB 应用程序与 Matlab 之间 ActiveX 自动化连接,那么在一个应用程序中就可以调用 Matlab 命令 VB 能通过不同的方式实现对自动化对象的使用和操作。要创建一个 ActiveX 对象,只需将 CreatObject 函数返回的对象赋予一个对象变量即可。在声明对象变量时使用 As Object 字句可创建一个能包含任何类型的变量, 具体操作如下: DimobjMatlabAsObject Set
9、objMatlab =CreatObject(“Matlab.Application”) 创建一个 ActiveX 对象后,就可对其进行操作,这如同在 VB 中对其他对象进行操作一样。然后再在 VB 中执 Execute 命令,用该命令来调用 Matlab 执行一条由 Command 字符串决定的 Matlab 命令,所有在 Matlab 命令窗口可键入的命令在此都可使用,之后将结果以字符串的形式回传。此命令字符串可以是任意一个在Matlab 命令窗口的指令形式,而回传的结果也与 Matlab 命令窗口上打印出的输出结果一样。 4、软件实现 通过以上介绍的 VB 调用 Matlab 的方式,就可以实现 VB 与 Matlab 之间的混合编程。图 2 所 示的是“自动控制原理”计算机辅助教学软件的主界面,通过该界面上的各个菜单操作就可进行相关功能的演示。 【参考文献】 1黄忠霖. 控制系统 MATLAB 计算及仿真M . 北京: 国防工业出版社, 2001. 2张宜华. 精通 MATLAB 5M . 北京: 清华大学出版社, 1999. 3刘坤. MATLAB 自动控制原理习题精解M . 北京: 国防工业出版社, 2004.