基于大林算法的炉温控制系统设计与仿真课程设计报告.docx

上传人:b****6 文档编号:8881139 上传时间:2023-02-02 格式:DOCX 页数:19 大小:452.08KB
下载 相关 举报
基于大林算法的炉温控制系统设计与仿真课程设计报告.docx_第1页
第1页 / 共19页
基于大林算法的炉温控制系统设计与仿真课程设计报告.docx_第2页
第2页 / 共19页
基于大林算法的炉温控制系统设计与仿真课程设计报告.docx_第3页
第3页 / 共19页
基于大林算法的炉温控制系统设计与仿真课程设计报告.docx_第4页
第4页 / 共19页
基于大林算法的炉温控制系统设计与仿真课程设计报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

基于大林算法的炉温控制系统设计与仿真课程设计报告.docx

《基于大林算法的炉温控制系统设计与仿真课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于大林算法的炉温控制系统设计与仿真课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。

基于大林算法的炉温控制系统设计与仿真课程设计报告.docx

基于大林算法的炉温控制系统设计与仿真课程设计报告

摘要

在许多实际工程中,经常遇到一些纯滞后调节系统,往往滞后时间比较长。

对于这样的系统,人们较为感兴趣的是要求系统没有超调量或很少超调量,超调成为主要的设计指标。

尤其是具有滞后的控制系统,用一般的随动系统设计方法是不行的,而且PID算法效果往往也欠佳。

在温度控制技术领域中,普遍采用控制算PID法。

但是在一些具有纯滞后环节的系统中,PID控制很难兼顾动、静两方面的性能,而且多参数整定也很难实现最佳控制。

IBM公司的大林于1968年提出一种针对工业生产过程中含有纯滞后的控制对象的控制算法,即大林算法。

它具有良好的效果,采用大林算法的意义在于大林控制算法能在一些具有纯滞后环节的系统中兼顾动静两方面的性能,若采用大林算法,可做到无或者小超调,无或小稳态误差,控制效果比较理想。

对工程实际应用具有很大的意义。

下面就PID设计和大林算法设计比较,发现二者的不同之处,然后用Matlab的GUI功能将两者制作成可简单操作的用户图形界面。

关键词:

大林算法;PID控制;GUI界面;Matlab;

 

目录

第一章大林算法在炉温控制中的应用3

1.1大林算法简介3

1.2大林算法在炉温控制中的设计思路3

1.3大林算法实现炉温控制中的代码算法及波形图6

第二章PID实现炉温控制的仿真7

2.1PID的原理及介绍7

2.2PID炉温控制算法程序设计8

第三章大林算法和PID实现炉温控制的SIMULINK仿真11

3.1大林算法SIMULINK仿真结构图及波形11

3.2PID的SIMULINK仿真12

3.3大林算法和PID的比较13

第四章GUI图形用户界面编程设计13

4.1GUI简介13

4.2GUI界面的建立14

4.2.1编写pushButton回调函数17

4.2.2仿真波形18

致谢19

参考文献20

 

第一章大林算法在炉温控制中的应用

1.1大林算法简介

大林算法是由美国IBM公司的大林(Dahllin)于1968年针对工业生产过程中含纯滞后的控制对象的控制算法。

该算法的设计目标是设计一个合适的数字控制器,使整个系统的闭环传递函数为带有原纯滞后时间的一阶惯性环节。

大林算法是运用于自动控制领域中的一种算法,是一种先设计好闭环系统的响应再反过来综合调节器的方法。

设计的数字控制器(算法)使闭环系统的特性为具有时间滞后的一阶惯性环节,且滞后时间与被控对象的滞后时间相同,此算法具有消除余差、对纯滞后有补偿作用等特点。

1.2大林算法在炉温控制中的设计思路

已知电阻炉对象数学模型为

其中,k=12,T=400,

,电阻炉的温度设定为1000℃.

要求:

(1)设计大林控制算法;

(2)设计PID控制器,并与PID算法进行比较;

(3)改变模型参数,考察模型扰动下系统性能变化情况。

设计思路:

τ—温控炉时间常数

K—调节系统总的放大倍数

θ—系统的纯滞后时间,且θ=NT,T为采样周期

在被控制对象前加一个零阶保持器,将连续系统离散化,闭环系统的脉冲传递函数为:

D(z)为温控炉按大林算法得出的数字控制器的数学模型。

为了计算机实现比较方便,把D(z)进一步简化为:

根据流程图编写程序:

图1—1程序设计流程图

1.3大林算法实现炉温控制中的代码算法及波形图

实验程序及波形图:

r=1000;

T=10;

sys=tf(12,[4001],'inputdelay',60)

sys=c2d(sys,T,'zoh');

[num,den]=tfdata(sys,'v');

Tf=input('仿真时间Tf=');

Tm=input('采样周期Tm=');

a0=1/12;

a1=exp(-Tm/400)/12;

b1=exp(-Tm/400);

b2=1-exp(-Tm/400);

u1=0;u2=0;u3=0;u4=0;u5=0;u6=0;u7=0;e1=0;y=0;y1=0;t=0;

fori=1:

Tf/Tm

e=r-y(end);

u=a0*e-a1*e1+b1*u1+b2*u7;

forj=1:

Tm/T

y=[y,-den

(2)*y1+num

(1)*u6+num

(2)*u7];

t=[t,t(end)+T];

end

u7=u6;u6=u5;u5=u4;u4=u3;u3=u2;u2=u1;u1=u;y1=y(end);

e1=e;

end

plot(t,y)

图1—2大林算法实现炉温控制波形图

性能分析:

基于大林算法的炉温控制系统仿真时,可以调节温控炉时间常数T使闭环系统的指标达到最佳。

当T很小时,响应很快但稳定性不好系统会产生震荡;当T增大,系统的响应变慢,但稳定性很好。

而且由波形图可见大林控制算法下系统几乎无超调,响应速度也很快,性能效果很好。

第二章PID实现炉温控制的仿真

2.1PID的原理及介绍

具有一阶惯性纯滞后特性的电阻炉系统,其数学模型可表示为:

(2-1)

在PID调节中,比例控制能迅速反应误差,从而减小误差,但比例控制不能消除稳态误差,

的加大,会引起系统的不稳定;积分控制的作用是:

只要系统存在误差,积分控制作用就不断地积累,输出控制量以消除误差,因而,只要有足够的时间,积分控制将能完全消除误差,积分作用太强会使系统超调加大,甚至使系统出现振荡;微分控制可以使减小超调量,克服振荡,提高系统的稳定性,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。

将P、I、D三种调节规律结合在一起,可以使系统既快速敏捷,又平稳准确,只要三者强度配合适当,便可获得满意的调节效果。

模拟PID控制规律为:

(2-2)

式中:

称为偏差值,可作为温度调节器的输入信号,其中

为给定值,

为被测变量值;

为比例系数;

为积分时间常数;

为微分时间常数;

为调节器的输出控制电压信号。

因为计算机只能处理数字信号,故上述数字方程式必须加以变换。

设采样周期为T,第

次采样得到的输入偏差为

,调节器的输出为

,作如下近似:

(用差分代替微分)

(用求和代替积分)

这样,式(2-2)便可改写为:

(2-3)

其中,

为调节器第

次输出值;

分别为第

次和第

次采样时刻的偏差值。

由式可知:

是全量值输出,每次的输出值都与执行机构的位置一一对应,所以称之为位置型PID算法。

在这种位置型控制算法中,由于算式中存在累加项,而且输出的控制量不仅与本次偏差有关,还与过去历次采样偏差有关,使得产生大幅度变化,这样会引起系统冲击,甚至造成事故。

所以在实际中当执行机构需要的不是控制量的绝对值,而是其增量时,可采用增量型PID算法。

当控制系统中的执行器为步进电机、电动调节阀、多圈电位器等具有保持历史位置的功能的这类装置时,一般均采用增量型PID控制算法。

2.2PID炉温控制算法程序设计

(1)“PID控制”控制算法程序框图如图3—1所示。

(2)“PID控制”控制算法程序代码如下:

kp=input(‘比例Kp=’);

ki=input(‘积分Ki=’);

kd=input(‘微分Kd=’);

K=input(‘K=’);

ts=10;

sys=tf([K],[400,1],'inputdelay',60);

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;

ud_1=0;

y_1=0;y_2=0;y_3=0;

error_1=0;

ei=0;

fork=1:

1:

400

time(k)=k*ts;

rin(k)=1000;

yout(k)=-den

(2)*y_1+num

(2)*u_5;

error(k)=rin(k)-yout(k);

ei=ei+error(k)*ts;

gama=0.50;

Td=kd/kp;

Ti=1;

c1=gama*Td/(gama*Td+ts);

c2=(Td+ts)/(gama*Td+ts);

c3=Td/(gama*Td+ts);

u(k)=kp*error(k)+kd*(error(k)-error_1)/ts+ki*ei;

u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);

y_3=y_2;y_2=y_1;y_1=yout(k);

error_2=error_1;

error_1=error(k);

end

plot(time,rin,'r',time,yout,'b');

xlabel('time(s)');

ylabel('rin,yout');

(3)“PID控制”控制算法波形图如下:

图3—2“PID控制”控制算法波形图

由图3—2可知,PID控制调节器超调量较大,控制效果不太理想。

 

第三章大林算法和PID实现炉温控制的SIMULINK仿真

3.1大林算法SIMULINK仿真结构图及波形

图2—1大林算法实现炉温控制的SIMULINK仿真结构图

图2—2大林算法实现炉温控制的SIMULINK仿真波形图

3.2PID的SIMULINK仿真

图2—3PID实现炉温控制的SIMULINK仿真结构图

图2—2大林算法实现炉温控制的SIMULINK仿真波形

3.3大林算法和PID的比较

大林算法适合用于没有超调或较小的超调而对快速性要求不高的场合。

PID控制多年来受到广泛的的应用,PID在解决快速性、稳态误差、超调量等问题上具有很好的应用。

PID的调整时间,动态性能都很好,但是PID也有需要改进的地方。

如:

积分项的改进在PID控制中,积分作用是消除稳态误差,提高控制精度。

但是很多时候积分作用又会对系统的动态响应造成不良影响,是系统产生大的超调或时间震荡。

具体的改进有:

(1)积分项的改进有积分分离法、抗积分饱和法;

(2)微分项的改进有不完全微分PID控制算法、微分先行PID控制算法。

 

第四章GUI图形用户界面编程设计

4.1GUI简介

MATLAB是控制系统计算机辅助分析与设计的一个卓越平台,具有开放的环境、功能极强的矩阵运算、图形绘制、数据处理、各种工具箱以及像“草稿纸”一样的工作空间等许多优点,为控制工程基础的教学提供了一个连续的、有实用价值的工具。

但命令繁多,分析起来过于零散,难于对控制系统的性质有个整体的掌握,困此.编制一个辅助教学工具箱是必要的。

在MATLAB开发平台中,有可视化编程能力很强的图形用户界面GUI,设计相应的控制系统辅助课程教学工具箱是完全可行的。

图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

借助MATLAB语言有中具有可视化编程能力很强的图形用户界面GUI,构建控制系统CAI课程教学应用软件的使用环境,开发出操作简捷,形式灵活,界面友好,实用性强的人机对话窗口,提供一个方便的软件操作平台,计算机辅助分析与设计得到简化,同时也能提高学生动手分析与设计系统的主动性和创造性。

使用本软件教学系统,除了控制系统模型的参数设置通过键盘输入以外,其他的全部工作都只需用鼠标选择菜单的操作来完成,且无需任何编程操作。

4.2GUI界面的建立

1、打开GUI或在MATLAB指令窗中运行guide得到如图3-1所示:

图4-1

2、选则BlankGUI

空白GUI设计工作台,如下图所示,包含以下4个功能区:

(1)菜单条

(2)编辑工具条

(3)控件模板区

(4)设计工作区:

图形用户界面设计在该区域进行,引出图所示的界面设计工具。

用鼠标拖动“工作区”右下角的“小黑块”,使工作区的大小与图与图大小相当

点击“轴Axes”控件图标,然后在工作区中的适当位置,拉出适当大小的绘图区。

类似上步操作,通过点击相应的“静态文本StaticText”、可编辑文本“EditText”、按键“PushButton”用鼠标拖拉出相应的控件,如图

图4—2

3、图形窗口和控件的某些参数进行设置

双击工作区或控件可引出图形和相应控件的“属性编辑框PropertyInspector”。

图显示的是轴属性的编辑框。

图4—3

Tex控件用以表示各编辑框的名称,使界面友好;AXES控件在当前界面显示仿真波形;菜单栏显示说明部分;控件Pushbutton来控制仿真。

GUI界面如图:

图4—4

图4—5

4.2.1编写pushButton回调函数

界面中,“返回”按钮用于回到主界面,回调函数为:

functionback2_Callback(hObject,eventdata,handles)

h=gcf;

fangzhengui03;

close(h);

由三个edit控件可获得其返回值,通过str2double(get(hObject,'String'))将返回值转换成整形变量,即

Tm=str2double(get(handles.Tm,'String'));Tf=str2double(get(handles.Tf,'String'));

T=str2double(get(handles.T,'String'));

在pushbutton的回调函数中编写基于大林算法的炉温控制程序,并绘制仿真图形,

其回调函数代码如下:

functionpushbutton1_Callback(hObject,eventdata,handles)

Tm=str2double(get(handles.Tm,'String'));Tf=str2double(get(handles.Tf,'String'));

T=str2double(get(handles.T,'String'));

r=1000;

[A,B,C,D]=tf2ss(12,[T1])

[G,H,Cd,Dd]=c2dt(A,B,C,Tm,60)

a0=1/12;

a1=exp(-Tm/T)/12;

b1=exp(-Tm/T);

b2=1-exp(-Tm/T);

u1=0;u2=0;u3=0;u4=0;u5=0;u6=0;u7=0;e1=0;y=0;y1=0;

t=0;x=zeros(size(G,1),1);

fori=1:

Tf/Tm

e=r-y(end);

u=a0*e-a1*e1+b1*u1+b2*u7;

x=G*x+H*u;

y=[y,Cd*x+Dd*u];

t=[t,t(end)+Tm];

u7=u6;u6=u5;u5=u4;u4=u3;u3=u2;u2=u1;u1=u;y1=y(end);

e1=e;

end

plot(t,y)

4.2.2仿真波形

得到波形界面如图:

图4-6

 

致谢

本课题在设计过程中得到杨国亮老师的悉心指导,每次设计遇到问题时老师不辞辛苦的讲解才使得我的设计顺利的进行,给予我很大的支持和鼓励。

从设计的选题到资料的搜集直至最后设计的修改的整个过程中,花费了杨老师很多的宝贵时间和精力,在此向杨老师表示衷心地感谢!

杨老师严谨的治学态度,开拓进取的精神和高度的责任心都将使我们受益终生!

在此,谨向杨老师致以诚挚的谢意和崇高的敬意,他在学习方面给了我很大的帮助,并为我们提供了良好的学习环境,让我学到了知识,掌握了学习的方法,也获得了实践锻炼的机会。

他严谨的治学态度对我的严格要求以及为人处世的坦荡将使我终身受益。

还要感谢和我同一设计小组的几位同学,是你们在我平时设计中和我一起探讨问题,并指出我设计上的误区,使我能及时的发现问题把设计顺利的进行下去,没有你们的帮助我不可能这样顺利地完成,在此表示深深的谢意。

在今后,我们将会更加努力,不管自己是否会走嵌入式系统技术这条道路,我们仍然还是会在课余时间继续对其进行更深入学习和探讨,为将来就业打下一个良好的基础。

 

参考文献

【1】杨国亮,梁礼明基于MATLAB的控制系统仿真实验软件编制中国电力教育(2012)02-0080-02

【2】于爽,张燕,肖军.基于MATLAB的过程控制系统课程仿真实验软件.辽宁石油化工大学学报,2005.12

【3】柴瑞娟.基于MATLABGUI的线性控制系统教学仿真软件的设计.计算机与现代化,2003.9

【4】黄忠霖.控制系统MATLAB计算及仿真[M].北京:

国防工业出版社,2001.

【5】吴旭光,王新民.计算机仿真技术及应用.西安:

西北工业大学出版社,1998

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1