当前位置:首页 期刊杂志

基于MaLtab GUI的分离式双容液位控制系统设计

时间:2024-08-31

朱鹏远

(昌吉学院物理系 新疆 昌吉 831100)

基于MaLtab GUI的分离式双容液位控制系统设计

朱鹏远

(昌吉学院物理系 新疆 昌吉 831100)

图形用户界面(Graphical User Interfaces,GUI)是人与计算机(程序)之间进行交互的工具和方法,用户可以通过鼠标或者键盘来选择、激活这些图形对象,使计算机产生某种动作和变化,如计算、绘图、输出动画等,与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受[1]。本文介绍如何通过MatLab GUIDE功能结合simulink实现分离式双容液位控制。

MatLab GUI;simulink;PID;参数整定

1 引言

在自动控制或其相关的课程中,传统的教学教学模式都是通过黑板讲授或PPT显示图片的形式实现,内容单一、枯燥,很难提高学生的学习兴趣。Simulink提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点。如果再联合GUIDE的面向对象可视化编程,可以说是锦上添花!将Simulink融入到GUIDE中可以方便模型的终端用户,很容易直接可视化的操控模型参数和显示仿真结果,而此时并不需要进入Simulink环境。

2 构建simulink模型

该部分我们构建一个simulink模型以方便在后面的GUIDE中使用,现在我们以一个简单的“分离式双容液位过程”为例吧。“分离式双容液位过程”如下图1所示,图2为该液位过程的过程模型。

在simulink设置中,输入和输出分别选用Sources模块下的step和Commonly Used Blocks模块下的out1,并设置step的Final Value为位置参数sv;并选中Configuration Parameters--Data Import/Export--Save to workspace中的Time和Output属性。设过程参数,上位水箱:K0=1,T0=2.53;下位水箱:K0= 0.9,T0=1.8,系统设定值SV=20。本仿真系统运行30S,在10S时增加一个设定值(sv)2%的白噪音扰动信号。

图1 分离式双容液位控制过程

图2 过程模型

PID控制器和disturb均采用封装的形式,其中PID控制器内部结构如图3所示。

图3 PID控制器

3 创建GUI界面

3.1 Description

guide displays the GUI Layout Editor open to a new untitled FIG-file.guide('filename.fig')opens the FIG-file named filename.fig.You can specify the path to a file not on your MATLAB path.guide('figure_handles')opens FIG-files in the Layout Editor for each existing figure listed in figure_handles.MATLAB copies the contents of each figure into the FIG-file,with the exception of axes children(image,light,line,patch,rectangle,surface,and text objects),which are not copied。[2]

3.2 创建GUI界面

首先打开Matlab,在Command Window中输入guide回车打开GUIDE Quick Start界面;当然你也可以通过工具栏的GUIDE按钮直接打开。在GUIDE Quick Start界面上有两个标签:“Creat New GUI”和“Open Existing GUI”,选择“Creat New GUI”标签下的“Blank GUI(Default)”(空白GUI),点击OK,正式进入GUIDE界面。在此界面下按照图4添加相应模块。

图4 Guide界面

本GUI包含一个Axes控件、三个Push Button控件、五个Edit Text控件和九个Static Text控件。

3.3 设置控件属性

双击相应控件,打开Property Inspector对话框,更改控件属性。主要更改的几个属性有:"string"、" fontsize"、"Tag"等,此设置方式和VB中的控件属性设置较为相像。

3.4 书写GUI回调函数(callback)代码

在保存GUI程序时,Matlab会自动生成.fig和.m文件,其中的.m就是我们现在要操作的对象。在M文件中添加控件的回调函数,即:相应用户的操作!这也是GUI编程的核心内容,这就要求我们必须掌握Matlab基本编程以及图形句柄(handles)语句![3]

由于函数有自己的状态空间(不是Base Workspace),因此在函数中使用sim()函数进行模型仿真时,即使你在函数中定义了模型的必要参数,但是这些参数只存在于函数状态空间中,模型在仿真是没法获取。由于函数状态空间和基本状态空间的变量和数据不兼容,这大大增加了我们在GUI中调用simulink的难度。还好Simulink中提供的simset()函数,我们可以将Simulink设置为从当前工作空间运行。

Simset Description:The simset command creates a structure called options,in which the named simulation parameters and solver properties have specified values.All unspecified parameters and properties take their default values.It is only necessary to enter enough leading characters to uniquely identify the parameter or property.Case is ignored for parameters and properties.options=simset(property,value,...)sets the values of the named properties and stores the structure in options.[4]

3.5 调节器参数整定

本文的参数整定采用实验凑试法,实验凑试法是通过闭环运行或模拟,观察系统的响应曲线,然后根据各参数对系统的影响,反复凑试参数,直至出现满意的响应,从而确定PID控制参数。

整定步骤:实验凑试法的整定步骤为“先比例,再积分,最后微分”。

(1)整定比例控制:将比例控制作用由小变到大,观察各次响应,直至得到反应快、超调小的响应曲线。

(2)整定积分环节:若在比例控制下稳态误差不能满足要求,需加入积分控制。先将步骤(1)中选择的比例系数减小为原来的50~80%,再将积分时间置一个较大值,观测响应曲线。然后减小积分时间,加大积分作用,并相应调整比例系数,反复试凑至得到较满意的响应,确定比例和积分的参数。

(3)整定微分环节:若经过步骤(2),PI控制只能消除稳态误差,而动态过程不能令人满意,则应加入微分控制,构成PID控制。先置微分时间TD=0,逐渐加大TD,同时相应地改变比例系数和积分时间,经过反复试凑至获得满意的控制效果,本次实验仿真其调节器参数Kp=20,Ki=1,Kd=8。

3.6 仿真实验结果

仿真结果如图5所示:

图5 Gui仿真界面图

通过仿真结果显示可以看出:系统超调量较小(低于5%),在10S时加入了2%*sv的白噪音干扰后的稳态误差也很小,各项性能指标均较好。

3.7 部分回调函数(callback)代码

4 结束语

本文设计了基于MatLab GUI的pid仿真系统,以分离式双容液位过程为例,通过GUI界面形象的展示了各参数之间关系及显示控制结果,既发挥了MatLab GUI界面逼真、直观的特点,又结合了Simulink适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等。

[1]罗建军杨琦.精讲多练MATLAB(第2版)[M].西安:西安交通大学出版社,2010.

[2]MATLAB Function Reference,MATLAB7.0(doc guide)

[3]http://www.ilovematlab.cn/

[4]MATLAB Function Reference,MATLAB7.0(doc simset)

TP13

A

1671-6469(2012)01-0089-04

2011-11-06

朱鹏远(1982-),男,陕西省西安市人,昌吉学院物理系,助教,研究方向:测控技术与仪器。

(责任编辑:马海燕)

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!