基于大林算法的炉温控制系统设计与仿真课程设计报告.docx
《基于大林算法的炉温控制系统设计与仿真课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于大林算法的炉温控制系统设计与仿真课程设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
基于大林算法的炉温控制系统设计与仿真课程设计报告
电气工程与自动化学院
课程设计报告
(控制基础)
题目:
基于大林算法的炉温控制系统设计与仿真
专业班级:
自动化101班
学号:
26号
学生姓名:
许瑞新
指导老师:
杨国亮
2012年12月21日
摘要
在许多实际工程中,经常遇到一些纯滞后调节系统,往往滞后时间比较长。
对于这样的系统,人们较为感兴趣的是要求系统没有超调量或很少超调量,超调成为主要的设计指标。
尤其是具有滞后的控制系统,用一般的随动系统设计方法是不行的,而且PID算法效果往往也欠佳。
在温度控制技术领域中,普遍采用控制算PID法。
但是在一些具有纯滞后环节的系统中,PID控制很难兼顾动、静两方面的性能,而且多参数整定也很难实现最佳控制。
IBM公司的大林于1968年提出一种针对工业生产过程中含有纯滞后的控制对象的控制算法,即大林算法。
它具有良好的效果,采用大林算法的意义在于大林控制算法能在一些具有纯滞后环节的系统中兼顾动静两方面的性能,若采用大林算法,可做到无或者小超调,无或小稳态误差,控制效果比较理想。
对工程实际应用具有很大的意义。
下面就PID设计和大林算法设计比较,发现二者的不同之处,然后用Matlab的GUI功能将两者制作成可简单操作的用户图形界面。
关键词:
大林算法;PID控制;GUI界面;Matlab;
第一章大林算法在炉温控制中的应用
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”控件