张 涛, 邹会杰
(中车永济电机有限公司, 陕西 西安 710000)
控制系统性能监测的目的是提出一个在线的自动化程序,能够实时监测并评价控制系统的性能。目前的研究方法主要由基于最小方差基准(MVC)、基于用户自定义基准以及基于数据驱动等性能评价方法,然而这些方法的应用都比较繁琐和复杂,非常有必要设计针对控制系统性能评价的仿真软件,便于性能评价方法的实际应用。
MATLAB是当今科研领域最常用的应用软件之一,它具有强大的矩阵运算、符号运算和数据可视化功能,是一种简单易用、可扩展的系统开发环境和平台。
GUI(Graphical User Interface)是一种提高程序易用性、交互性的计算机编程方法,用户可以在这样的界面中通过一系列鼠标、键盘操作指挥后台程序实现某些功能。利用MATLAB/GUI设计控制系统性能评价仿真界面,用户只需输入系统的待测参数便可得到控制系统性能评价的指标值,极大地减少了工作人员的工作量,保证控制系统的安全运行。
使用控制系统性能评价软件的主要目的就是对控制系统的性能作出定量的分析,评定出它的等级,例如优、良、中和差等,并在运行早期提出控制系统可能存在的问题,它可以实时地指导操控人员对控制系统存在的潜在问题采取各种应对措施。控制系统性能评价软件向用户提供各种类型的数据和报表以便进行分析,必须具备以下几个功能:
具有良好的操作和显示界面;能够存储和共享分析数据;提供性能评价报告,具有数据查询功能;能够扩展,满足用户对软件功能不断完善的需要;对控制系统性能可以定期评价和保存历史性能信息;跟踪控制系统的参数变化及其对控制性能的影响;掌握扰动和不同操作条件对于控制系统性能的影响;具有完整的系统接口,方便进行数据的导入与导出;能够保障软件的安全和准确运行。
图形用户界面GUI是由窗口、光标、按键、菜单和文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,如实现计算、绘图等。
MATLAB是一种面向对象的高级计算机语言,其数据可视化技术中的各种图形元素,实际上都是抽象图形对象的实例。MATLAB在创建这些图形对象实例时会返回一个用于标识此对象实例的数值,称为该对象实例的句柄。通过操作句柄,用户就可以实现对相应图形对象实例的各种底层控制和设置。句柄是图形对象的标识代码,标识代码含有图形对象的各种必要的属性信息。因此,这些对象也被称为句柄图形对象。
面向对象是一种程序设计方法,是相对于面向过程而言的。面向对象的优越性在于可以重复使用对象进行编程。相对于过程而言,对象是一个更为稳定的描述单元。由于面向对象有这样一些优越性,它目前是主流的编程技术。
在MATLAB中,由图形命令产生的每一个对象都是图形对象。图形对象按父对象和子对象组成层次结构,如图1所示。
图1 图形对象的层次结构
一个好的GUI能够使程序更加容易使用,它提供给用户一个常见的界面,还提供一些空间,如按钮、列表框、滑块和菜单等。
创建MATLAB用户图形界面必须具有以下三类基本元素:
1)组件。在MATLAB GUI中的每一个项目都是一个图形化组件。组件可分为三类:图形化控件(如按钮、编辑框、列表、滚动条等)、静态元素(如窗口和文本字符串)、菜单和坐标系。
2)图形窗口。GUI的每一个组件都必须安排在图像窗口中。在画数据图像时,图像窗口会被自动创建或用函数figure来创建。
3)回应。用户单击某一按钮使相应的MATLAB语句被执行,这些相应的语句被称为回应。
GUIDE是MATLAB图形用户接口开发环境(graphical user interface development environment)的简称,它提供了一系列工具用于建立GUI对象。GUIDE是一个组件布局工具集,能够生成用具所需的组件资源并保存在一个FIG文件;其次,GUIDE还可以生成一个包含GUI初始化和发布控制代码的M文件,该文件为回调函数提供了一个框架。利用GUIDE创建GUI时,样板可以选择以下4种:Blank GUI、GUI with Uicontrols、GUI with Axes and Menu、Modal Question Dialog。一般采用默认的Blank GUI样板,编辑界面如图2所示。
GUIDE可以首先在布局GUI的同时生成以下两个文件:
1)FIG文件。该文件包括GUI的图像窗口和所有子对象(包括用户控件和坐标轴)的完全描述以及所有对象的属性值。
2)M文件。该文件包括用户用来发布控制界面和回调函数的各种函数。
图2 GUI编辑界面
图形用户界面的程序是在图形界面下创建与用户交互的控件元素,用户可以通过操作这些交互控件实现特定的功能,并且可以返回显示在程序界面响应的结果显示区域中。因此,用户只和前台界面下的控件发生交互,而所有运算、绘图等内部操作都封装在内部,终端用户不需要去追究这些复杂过程的代码。
设计好的图形界面需要考虑以下因素:简单性、一致性、习常性、其他因素(比如界面的响应要迅速、连续,对长时间运算的要给出等待的时间提示,并允许用户中断运算,等等)。
界面的制作包括界面设计和程序实现,一般制作步骤如下:分析界面所要求实现的主要功能,明确设计任务;构思草图,从使用者和功能实现的角度出发,并上机实现;编写对象的相应程序,对实现的功能进行逐项检查。
根据前面讲述的GUI设计原则和一般步骤,设计了某同步主辅发电机试验过程性能监测仿真界面如图3所示。
图3 电机试验过程性能监测仿真界面
本文基于MATLAB/GUI设计了某型号电机试验过程性能监测仿真界面。用户在界面中载入待要评价的运行数据后,系统会在后台运行程序,并将结果显示在界面中对应的文本框中。通过图3所示的性能监测界面可以很直观的看出待评价试验结果的合格与否。通过上面的仿真界面,也可方便的向别人提供性能监测的应用程序,并对试验过程进行实时监测,具有非常实际的应用价值。
参考文献
[1] 罗华飞.MATLAG GUI设计学习手记[M].北京:北京航空航天大学出版社,2009.
[2] 张涛,王印松,田靖雨.基于MATLAB/GUI的控制系统性能评价研究[J].仪器仪表用户,2015(1):16-18;76.