APP下载

PID控制器实现:VB和Matlab混合编程

2016-09-27张玉叶张小青

咸阳师范学院学报 2016年4期
关键词:被控应用程序燃气

张玉叶,张小青

(咸阳师范学院 物理与电子工程学院,陕西 咸阳 712000)

PID控制器实现:VB和Matlab混合编程

张玉叶,张小青

(咸阳师范学院 物理与电子工程学院,陕西 咸阳 712000)

以小型燃气热水炉炉温控制系统为研究对象,采用VB进行人机界面设计,Matlab完成系统PID控制算法的计算。以VB与Matlab接口混合编程技术为基础,在VB中调用Matlab的Active X部件实现VB与Matlab之间的链接,并将计算结果返回至VB,由VB完成系统关键曲线的显示。利用Matlab的强大数值计算的能力,又结合VB的可视化友好界面,实现了小型燃气热水炉炉温控制的PID仿真分析,也可进一步实现相关软件的开发和设计。

Matlab;Visual Basic;PID算法;Active X部件

实际工程应用中,通常采用VB可视化高级语言来编写应用程序的界面,而用Matlab软件来进行数值分析、矩阵运算、信号处理和图形图像的显示。如果把这两种软件结合起来使用既可回避VB软件在程序编写过程中过分繁琐和抽象的缺点,又能够克服软件本身数据结构单一、数值计算和处理能力弱的缺陷,从而方便地实现了可视化交互界面的操作。另外,Matlab本身的GUI界面设计是基于句柄的编程背景,句柄编程是基于界面底层的编程,编程十分繁琐。因此,Matlab与VB接口编程技术,是将Matlab软件和VB软件各自的优势结合起来,实现VB与Matlab的无缝链接,将提高软件的开发效率,对解决工程实际应用问题有重要意义。本设计以一个工程实际问题——小型燃气热水炉的炉温控制系统为例,基于ActiveX技术实现VB与Matlab的数据交换。根据被控对象的参数和PID控制器的参数,由Matlab软件进行PID算法的计算,由VB应用程序进行分析界面设计和接口编程,最终在VB界面实现关键曲线的显示。从而达到结果直观,分析方便的目的[1]。本文以Visual Basic进行人机界面的开发,而以Matlab作为运算模块,进行PID控制算法的设计,从而进行VB与Matlab之间双向的数据交换。

1 被控对象的PID分析

1.1控制对象的数学模型

自动控制系统的设计,首要考虑建立被控对象的数学模型。本文以小型燃气热水炉控制系统为例。被控对象是热水锅炉,控制量是水温。影响热水温度的因素有很多,如进水流量和温度、燃气流量等。考虑到本文所采用的控制算法并不要求被控对象模型十分精确,所以采用了一个近似模型作为设计的参考对象[2]。通常,温度控制系统的模型可近似为一阶延迟系统或者二阶延迟系统。燃气热水锅炉是一个非线性、具有大滞后的系统,本文选择被控对象的模型形式为:

其中K0为锅炉正常运行的开环增益,τ为延迟时间,T1、T2为时间常数。被控对象模型的参数获得是通过对样品锅炉的实验测试得到。实验的环境温度18oC,每5 s采样一个数据点。控制执行机构,将燃气调节阀调开度由0快速增加至50%,记录整个温升过程中的温度变化数据,用Matlab软件将温度数据画成温升曲线如图1所示。

图1 燃气热水炉温度曲线

得到了温升曲线之后,可以利用经验公式对系统进行辨识,经辨识得到控制系统近似模型:

1.2PID控制原理

PID调节技术是一种有效而实用的经典控制策略,在工业控制领域应用非常广泛。PID控制的特点是在被控对象数学模型未知或者不精确的前提下,只需对控制器参数,即比例系数KP、积分系数KI和微分系数KD进行调整,就可获得满意的控制效果,PID控制的原理图如图2所示。PID控制系统由PID控制器和被控对象组成,根据设定目标值r(t)与实际输出值y(t)构成的控制偏差e(t),将此偏差e(t)的比例,积分和微分通过线性组合构成控制量,对受控对象进行控制[3]。

控制器的控制量为偏差信号e(t),表达式为:

控制器时域输出u(t)方程为:

PID控制器的参数整定是控制系统设计的核心内容。PID参数整定依赖一定的经验,通常有固有的规律可循。

图2 PID控制原理图

1.3PID控制器各参数对系统动态性能的影响

单独调节参数P(另外两个参数为常数):当KP增大,系统灵敏度增大,在稳定的前提下,稳态误差减小,而KP过大,系统振荡次数将会太多。

单独调节参数I:系统控制精度会提高,可以消除稳态误差,会使系统稳定性下降,KI过大系统将不稳定[4]。

微分控制不单独使用,经常与积分控制或者比例控制联合使用,引入微分控制往往会改善系统动态性能,当KD偏小,超调量较大,调节时间也较长,当KD合适,不仅可以提高系统响应速度,也可以提高稳定性[5]。

当KP、KI和KD在调节系统动态性能指标方面,往往根据实际情况兼顾各方面性能,在实际系统的参数调节过程中,可以参阅文献[5]所给的参数经验法,给出基本的凑法范围,可选定综合性良好的参数。

2 VB与Matlab接口的实现

2.1Active X技术

Active X技术是Microsoft面向对象程序技术的模块集成的新协议,最主要的技术是组件对象模型COM。它允许应用程序或组件控制另一个应用程序或组件的运行。在程序中加入Active X部件后,它将成为开发和运行环境的一部分,并为应用程序提供新的功能。Active X部件保留了一些普通VB控制的属性、事件和方法。Active X部件特有的方法和属性大大地增强了程序设计者的能力和灵活性,Active X实际上是在调用一种部件,而无需要求该部件对应的程序正在运行,这会使得其功能更加强大。在VB中创建Matlab的Active X对象后,就可以使用这个对象所包含的各种方法,实现对MATLAB的调用[6]。在VB中创建Matlab Active X的方法如下:

Dim MatlabAs Object

Set Matlab=CreatObject(“matlab application”)

在创建Matlab Active X对象后。就可以利用该对象所包含的各种方法实现对Matlab的调用。

2.2VB与Matlab接口实现

实现VB应用程序与Matlab的接口,也就是说实现VB应用程序与Matlab之间的数据交换的关键步骤为[7]:

(1)新建项目。

(2)添加控件,根据实际情况在当前窗口添加控件,例如Button按钮控件、Text文本控件等。

(3)设置属性,将Label与Command按钮的Text属性设置为与界面一致。

(4)添加代码,代码提前在Matlab环境下编辑好,以备调用。

(5)运行。点击VB环境下的运行按钮,则实现VB对Matlab的直接调用结果,显示在VB界面下。

2.3若干接口界面及控制效果对比分析

采用时域分析法分析燃气热水炉炉温控制系统,在Matlab环境下,提前在Matlab环境下编写好时域分析程序段。在VB环境下,设计好用户界面,利用接口链接语句达到VB环境下调用Matlab运算结果。图3即是Matlab的分析结果在VB用户界面下的呈现。从绘图结果来看时域分析效果,系统调节时间较长,超调量较大,指标不理想。

燃气热水炉炉温控制系统的单位阶跃响应参数整定效果如图4示。界面设计了PD、PI、PID 3种整定方案,图4运行的效果是选定参数为:

P=0.608 4;I=6.126 9;D=0.145 0。

PID控制算法提前由Matlab编程并存储,VB调用Matlab的绘图函数即可生成校正曲线。由图4可知,给系统加PID校正后性能指标得到一定的改善,在图4的界面下,可以方便地修改参数,观察P、I、D 3种参数的变化对系统性能的影响以及改善情况[8],从而选择相对合适的参数,以满足实时控制系统动态性能指标得要求。

图3 VB界面下调用Matlab时域分析结果

图4 VB界面下显示加PID参数校正后的曲线

2.4若干接口链接代码

VB是可视化编程软件,首先进行窗体设计,将所需要的空间在窗体下进行排列,属性设置,然后以图4为例,在图4所示的窗体下编写的接口实现代码如下:

1:private sub command1_click()//声明一个点击事件

2:Dim Matlab as Object//声明要调用Matlab的Active X

3:Dim result as string

4:SetMatlab=CreatObject(“Matlab.application”)//建立联系

5:Call Matlab.minimizecommandwindow

If Label12.Caption=""Then

num=Text10.Text

den=Text11.Text

Else

num=Label12.Caption

den=Label13.Caption

End If

6:result=Matlab.execute("sim('mlmx',5,[])")

7:result=Matlab.execute("set_param('mlmx/PID Controller','P','"&Text1.Text&"','I','"&Text2.Text &"','D','"&Text3.Text&"')")

8:result=Matlab.execute("set_param('mlmx/Transfer Fcn','Numerator','["&num&"]','Denominator','[" &den&"]')")

9:result=Matlab.execute("set_param('mlmx/Transfer Fcn1','Numerator','["&num&"]','Denominator',' ["&den&"]')")

10:result=Matlab.execute("clear")

11:result=Matlab.execute("sim('mlmx',5,[])")

12:result=Matlab.execute("plot(t,y1)")

13:result=Matlab.execute("grid;")

14:result=Matlab.execute("title('Mutil-loopSystem Step Response')")

15:result=Matlab.execute("print-f1-dbitmap c: stepphoto.bmp")

16:Picture1.Picture=LoadPicture("c:stepphoto. bmp")

17:Call Matlab.quit

最后点击运行,代码无误的前提下,运行结果正如图4所示。认真理解吃透一个窗体下的程序代码,其他界面的代码编写也是相类似的,这样可以进行其他控制系统的性能分析。

3 结论

能力。应用Matlab进行自动控制系统分析或者设计大大提高了工作效率。若将Matlab与VB结合,既可以利用Matlab的运算能力,将其作为后台运行软件,又可以利用VB强大的界面设计能力,将它作为前台界面设计软件。这样,以一个实际的PID控制器在工程上的应用(小型燃气热水炉温度控制)为例,可以做成一个软件系统,系统界面整洁、便利,参数可调,只需要按相关控件即可。这样的设计方法一方面,VB应用程序将PID的整定参数通过COM传递到Matlab,由Matlab应用程序完成控制算法的计算。另一方面,将计算结果通过COM传递到VB,这样的一种混合编程方法是兼顾了VB和Matlab各自的优点,大大提高了代码执行的效率,这在工程中有广泛的应用性。

[1]欧阳明,李玉清,曾海霞,等.VB与MATLAB混合编程在工程中的应用[J].电子技术,2009,15(7):45-47.

[2]杨长亮.基于模糊PID控制的燃气热水锅炉燃烧控制系统的研究[D].成都:电子科技大学,2010(5):13-18.

[3]王朝晖,宋军.自整定PID控制策略在温度控制中的应用[J].计算技术与现代化,2006,25(4):45-47.

[4]吴春,庞洪,陈明,等.一种自整定模糊PID控制仿真[J].桂林航天工业高等专科学校学报,2008(4):17-19.

[5]许辉,桂波,杨敏.某锅炉减温水调节方案优化与实施[J].化工自动化及仪表,2012,39(6):792-794.

[6]闫斐,柴茂.ActiveX技术综述[J].山西煤炭管理干部学院学报,2005,29(4):45-46.

[7]汤红梅,张军.基于ActiveX的Matlab与VB接口技术在仿真软件设计中的应用[J].煤矿机械,2004,45(12):86-87.

[8]周慕逊,王正初.基于VB与MATLAB接口的PID控制器实现[J].测控技术,2010,29(3):46-47.

Matlab具有强大的数据处理能力和方便的绘图

Realization of PID Controller Based on the Interface Programming Technique Between Matlab and VB

ZHANG Yuye,ZHANG Xiaoqing
(School of Physics and Electronics Engineering,Xianyang Normal University,Xianyang 712000,Shaanxi,China)

In this dissertation,the furnace temperature control system of a minitype gas-fired hot water boiler as the study object is mainly focused on.VB is used to build man-machine interface (MMI)of the given system.And the PID control algorithm is carried out by Matlab.Combining programming technology of VB and Matlab,the link of VB and Matlab can be realized by the callback function of ActiveX components of Matlab.And you can have execution results or drowned curve.In this way,integration of the friendly human-machine interfaces of VB and the strong analysis ability of Matlab can be achieved.And the PID simulation and analysis of the furnace temperature control system of a boiler thus can be done.And highly effective application and development of this method help to further develop related softwares.

Matlab;Visual Basic;PID algorithm;Active X components

TP31

A

1672-2914(2016)04-0038-04

2016-05-01

咸阳师范学院大学生创新训练项目(2015045);咸阳师范学院教改项目(2015Z006)。

张玉叶(1979—),女,陕西礼泉县人,咸阳师范学院物理与电子工程学院讲师,硕士,研究方向为控制理论与控制工程。

猜你喜欢

被控应用程序燃气
对一起燃气泄漏爆炸引发火灾的调查
教材《燃气工程施工》于2022年1月出版
近期实施的燃气国家标准
探讨燃气工程的造价控制及跟踪审计
港警在“修例风波”中拘捕近万人
删除Win10中自带的应用程序
大惯量系统位置控制策略研究
谷歌禁止加密货币应用程序
三星电子将开设应用程序下载商店
微软软件商店开始接受应用程序