基于VC++与MATLAB混合编程的温度控制系统的模拟.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:8 大小:466KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

基于VC++与MATLAB混合编程的温度控制系统的模拟.pdf

基于VC++与MATLAB混合编程的温度控制系统的模拟.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

http://www.paper.edu.cn基于VC++与MATLAB混合编程的温度控制系统的模拟程国怀武汉科技大学信息科学与工程学院自动化系,武汉(430081)E-mail:chengguohuaippts@163.com摘要:应用MATLAB的engine引擎函数实现VC++与MATLAB的混合编程,结合温度PID控制系统实例,详细介绍参数的优化和接口实现的过程,最后在VC++的界面显示结果。关键词:MATLAB;VC++;混合编程;接口;PID中图法分类号:TP311VisualC++是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快,能够实现具有人机交互界面友好、简洁的系统图形用户界面(GUI)。但在科学计算方面函数库显得不够丰富、读取、显示数据图形不方便。MATLAB是一款将数值分析、矩阵计算、信号处理和图形显示结合在一起,包含大量高度集成的函数可供调用,适合科学研究、工程设计等众多学科领域使用的一种简洁、高效的编程工具。不过由于MATLAB使用的是解释性语言,大大限制了它的执行速度和应用场合。基于VC和MATLAB混合编程是很多熟悉VC++编程而又需要进行科学计算、数据仿真的科研人员常用的一种方式,其中最简单也最直接的方法就是调用MATLAB引擎,可以在一定程度上满足两个软件接口的需要。本文以下部分将详细介绍通过VC++6.0调用MATLAB7.1引擎函数来达到VC++与MATLAB数据共享,实现温度PID控制系统的模拟。1温度系统的模型及PID参数优化温度系统是具有惯性和时滞的系统,采用一阶惯性环节和一个延时环节可以模拟温度系统,本次实验通过VC++与MATLAB的混合编程实现温度系统PID控制。KGS()=e−aS温度系统模型传递函数为TS+1;(K为比例系数,T为时间常数,a为延迟时间)PID控制器摸型为:1()tdetut()=+Kpet[()etdt()+Td]∫0Tidt;加入PID控制器后的系统方框图如下:图1PID控制系统方框图在文献[1]中提出用壮敏霞和Atherson提出的PID最优参数整定法(设定点最优整定算-1-http://www.paper.edu.cn∞Jtetdt()θθ=[n(,)]2法),此方法的优化指标是:n∫0,式中et(,)θ为进入PID控制器的误差信号,θ为PID控制器参数构成的集合。根据设定点(set-point)信号的最优整定算法,最优指标有三种情况,即n=0,简记为ISE准则;n=1,简记为ISTE准则;2n=2,简记为ISTE准则。2本系统采用ISTE准则,通过查表可得各参数,则设定点最优PID参数由以下几式得Taa1Ti=ab1ab3Kp=()ab22()+Td=a3(T)到:KT;T;T;KpKi=KdKpTd=则Ti;。表1设定点最优PID参数表a0.1-11.1-2T范围22最优指标ISEISTEISTEISEISTEISTEa11.0481.0420.9681.1541.1421.061b1-0.897-0.897-0.964-0.567-0.579-0.583a21.1950.9870.9771.0470.9190.892b2-0.368-0.238-0.253-0.22-0.172-0.165a30.4890.3850.3160.490.3840.315b30.8880.9060.8920.7080.8390.8322编写所需的M文件M文件函数名为canshu和pidjiaozheng,分别计算最优PID参数和实现系统的模拟,canshu函数则按照上述最优参数整定方法计算,pidjiaozheng函数实现过程参考文献[2]如下:%温度系统PID控制function[yout,time]=pidjiaozheng(Kp,Ki,Kd,K,T,a)%将返回数据保存在yout和time数组中ts=20;%设定采样时间%延时环节sys=tf([K],[T,1],'inputdelay',a);%系统模型dsys=c2d(sys,ts,'zoh');%离散化处理[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;ei=0;fork=1:1:60-2-http://www.paper.edu.cntime(k)=k*ts;%delayplantyout(k)=-den(2)*y_1+num(2)*u