武汉理工大学计控课设温度控制系统设计.docx

上传人:b****7 文档编号:10436444 上传时间:2023-02-11 格式:DOCX 页数:30 大小:280.42KB
下载 相关 举报
武汉理工大学计控课设温度控制系统设计.docx_第1页
第1页 / 共30页
武汉理工大学计控课设温度控制系统设计.docx_第2页
第2页 / 共30页
武汉理工大学计控课设温度控制系统设计.docx_第3页
第3页 / 共30页
武汉理工大学计控课设温度控制系统设计.docx_第4页
第4页 / 共30页
武汉理工大学计控课设温度控制系统设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

武汉理工大学计控课设温度控制系统设计.docx

《武汉理工大学计控课设温度控制系统设计.docx》由会员分享,可在线阅读,更多相关《武汉理工大学计控课设温度控制系统设计.docx(30页珍藏版)》请在冰豆网上搜索。

武汉理工大学计控课设温度控制系统设计.docx

武汉理工大学计控课设温度控制系统设计

学号:

04

课程设计

 

题目

温度控制系统的设计

学院

自动化学院

专业

自动化专业

班级

自动化1005班

姓名

柳元辉

指导教师

向馗副教授

 

2013

6

23

课程设计任务书

学生姓名:

柳元辉专业班级:

自动化1005班

指导教师:

向馗副教授工作单位:

自动化学院

题目:

温度控制系统设计

初始条件:

被控对象为电炉,采用热阻丝加热,利用大功率可控硅控制器控制热阻丝两端所加的电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温度。

可控硅控制器输入为0-5伏时对应电炉温度0-300℃,温度传感器测量值对应也为0-5伏,对象特性为二阶惯性系统,惯性时间常数均为20秒。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.设计温度控制系统的计算机硬件系统,画出框图;

2.编写积分分离PID算法程序,从键盘接受Kp、Ti、Td、T及β的值;

3.通过数据分析Td改变时对系统超调量的影响。

4.撰写设计说明书。

时间安排:

6月26日查阅和准备相关技术资料,完成整体方案设计

6月27日—6月28日完成硬件设计

6月29日—6月30日编写调试程序

7月1日—7月4日撰写课程设计说明书

7月5日提交课程设计说明书、图纸、电子文档

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

摘要

温度是工业生产中常见的工艺参数之一,任何物理变化和化学反应过程都与温度密切相关,因此温度控制是生产自动化的重要任务。

对于不同生产情况和工艺要求下的温度控制,所采用的加热方式,燃料,控制方案也有所不同。

随着集成电路技术的发展,单片微型计算机的功能也不断增强,许多高性能的新型机种不断涌现出来。

本文主要介绍了利用8051为主控制电路实现的炉温调节控制系统,详细阐述了系统的功能,硬件组成以及软件设计,利用热电偶采集温度信号经A/D转换器转化后与给定信号送入微机系统,系统分析控制算法,信号再经D/A转换后控制调节可控硅控制器来改变炉内的温度。

关键字:

8051;PID;二阶系统;积分分离;仿真

温度控制系统设计

1设计任务及要求

被控对象为电炉,采用热阻丝加热,利用大功率可控硅控制器控制热阻丝两端所加的电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温度。

可控硅控制器输入为0~5伏时对应电炉温度0-300℃,温度传感器测量值对应也为0~5伏,对象的特性为二阶惯性系统,惯性时间常数为T=20秒。

要求完成的主要任务

(1)设计温度控制系统的计算机硬件系统,画出框图;

(2)编写积分分离PID算法程序,从键盘接受Kp、Ti、Td、T及β的值;

(3)通过数据分析Td改变时对系统超调量的影响。

2方案比较论证

用温度传感器来检测炉的温度,将炉温转变成毫伏级的电压信号,经温度变送器放大并转换成电流信号。

由电阻网络讲电流信号变成电压信号,送入A/D转换器,通过采样和模数转换,所检测到的电压信号和炉温给定值的电压信号送入计算机程序中作比较,得出给定值与实际值之间的偏差,并与β进行比较,从而确定算法。

计算得到的控制量输出给可控硅控制器,改变可控硅的导通角,达到调压的目的,是电阻丝两端的电压增大或较小,进而实现对炉温的控制。

下面有两个方案:

方案一:

热电偶温度自动控制系统。

方案二:

数字温度传感器温度控制系统。

这两个方案都是采用单片机控制,两个方案的比较部分为温度检测部分。

方案一温度检测部分检测部分采用热电偶,它需要冷端补偿电路与其配套,并且热电偶输出电压只有几毫负,必须经过放大处理才能A/D转换和D/A转换器接口,若采用8位A/D转换器,ADC0809则输人端需采用仪用放大器,把几毫伏的电压信号放大到5伏左右。

由于热电偶属于非线性器件,因此每个温度值都必须通过分度表,查表才能获得,这给软件编程和数据处理增加了难度。

这种系统具有测量温度范围可以从零下一XX到早上千摄氏度,而且有很多热电偶精度非常高这是这种测量系统的优点。

但构成系统复杂,抗干扰能力不强。

方案二采用数字温度传感器DS18B20,它的最高分辨率为12位,可识别0.0625摄氏度的温度。

它具有直接输出数字信号和数据处理,并且它和单片机接口只需要一位I/O口,因此由它构成的系统简单使用,由于DS18B20,按照工业设计要求设计,抗干扰性能强。

但温度测量范围从-55摄氏度—-125摄氏度。

根据设计要求,综合考虑选择方案一。

主要的控制芯片采用8051,要求传感器测量的电压范围和可控硅控制器的电压在0-5℃,所以A/D与D/A转换芯片采用ADC0809和DAC0832。

炉温控制在0-300℃内,因此采用镍铬-铜镍热电偶,同时选用运算放大器将信号放大。

由以上分析控制过程,可以得到如图1的系统结构框图:

图1系统结构框图

3系统硬件设计

炉温信号T通过温度检测及变送,变成电信号,与温度设定值进行比较,计算温度偏差e和温度的变化率de/dt,再由智能控制算法进行推理,并得控制量u,可控硅输出部分根据调节电加热炉的输出功率,即改变可控硅管的接通时间,使电加热炉输出温度达到理想的设定值。

3.1系统硬件结构

ADC0809的INT0端口所连接的电阻起到给定预定值的作用,通过调节滑动变阻器划片的位置,改变INT0端口的电压,该电压通过0809转换为数字量被计算机读取。

将一个0-5V的电压表连接到可变电阻上,测量其电压,再将其表盘改装为温度表盘,即将原来的0-5V的刻度均匀分为300份,每一份代表1℃,则可以读取预定的温度值。

ADC0809的INT1端口与热电偶相连。

由8051构成的核心控制器按智能控制算法进行推算,得出所需要的控制量。

由单片机的输出通过调节可控硅管的接通时间,改变电炉的输出功率,起到调温的作用。

3.2系统硬件的选择

微型计算机的选择:

选择8051单片机构成炉温控制系统。

它具有8位CPU,32根I/O线,4kB片内ROM存储器,128kB的RAM存储器。

8051对温度是通过可控硅调节器实现的。

在系统开发过程中修改程序容易,可以大大缩短开发周期。

同时,系统工作过程中能有效地保存一些数据信息,不受系统掉电或断电等突发情况的影响。

8051单片机内部有128B的RAM存储器,不够本系统使用,因此,采用62648kB的RAM作为外部数据存储器。

热电偶的选择:

本设计采用热电偶--镍络-铜硅热电偶线性度较好,热电势较大,灵敏度较高,稳定性和复现性较好,抗氧化性强,价格便宜对温度进行检测。

镍铬-铜镍热电偶在300℃时的热点势21.033mV,为满足0-5V的要求,需将其放大238倍,再通过ADC0809将其转换为数字量被计算机读取,通过软件程序对数据进行处理,将处理的结果经DAC0832输出量控制可控硅控制器,从而改变电阻丝两端的电压,使炉温得到控制。

3.3系统硬件连接图

综合以上分析,可以得出系统的硬件连接图如图2所示:

4系统软件设计

4.1确定程序流程

比例控制能迅速反应误差,从而减小误差,但比例积分不能消除误差,Kp的加大会引起系统的不稳定;积分控制的作用是:

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

在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。

自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。

其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。

解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。

这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。

所以对有较大惯性或滞后的被控对象,比例微分PD控制器能改善系统在调节过程中的动态特性。

在一般的PID控制中,当有较大的扰动或大幅度改变给定值时,由于此时有较大的偏差,以及系统有惯性和滞后,故在积分项的作用下,往往会产生较大的超调和长时间的波动。

特别对于温度等变化缓慢的过程,这一现象更为严重,为此,可采用积分分离措施,即偏差ek较大时,取消积分作用;当偏差较小时才将积分作用投入。

亦即

当ek时,采用PD控制;当ek时,采用PID控制。

积分分离阈值应根据具体对象及控制要求。

若值过大时,则达不到积分分离的目的;若值过小,则一旦被控量yt无法跳出个积分分离区,只进行PD控制,将会出现残差,为了实现积分分离,编写程序时必须从数字PID差分方程式中分离出积分项,进行特殊处理。

根据设计要求及所选硬件,程序流程如图3所示

图3程序的主流程图

4.2程序控制算法介绍

由以上分析,P本次设计采用的是积分分离PID控制算法,ID调节时连续系统中技术中最成熟的,应用广泛的一种调节控制方式。

在模拟控制系统中,PID算法的表达为:

 

式中,

:

调节器的输出信号

调节器的偏差信号

调节器的比例系数

调节器的积分时间

调节器的微分时间

在计算机控制系统中,PID控制规律的实现必须用数值逼近的方法。

当采样周期相当短时,用求和代替积分、用后向差分代替微分,使模拟PID离散化变为差分方程。

用数字形式的差分方程代替连续系统的微分方程。

设系统的采样周期为T,在t=kT时刻进行采样,

式中e(k):

根据本次采样值所得到的偏差;

e(k-1):

由上次采样所得到的偏差。

由以上可得:

式中,T为采样时间,

项为积分项的开关系数

积分积分分离PID控制算法程序框图如图4所示:

图4积分分离PID控制算法程序框图

5系统仿真

又已知惯性常数T=20秒,所以被控对象的传递函数为:

采用simulink仿真,通过simulink模块实现积分分离PID控制算法。

选择合适的Kp,

是系统的仿真效果趋于理想状态。

MATLAB编写程序如下:

clearall;

closeall;

ts=2;%采样时间2s

sys=tf([1],[400,40,1]);

dsys=c2d(sys,ts,'zoh');%将sys离散化

[num,den]=tfdata(dsys,'v');%求sys多项式模型参数

kp=5;

ki=0.25;%即

kd=5;%即

当β值过大时,达不到积分分离的目的,若β值过小,则一旦被控量无法跳出各积分分离区,只进行PD控制,将会出现残差。

根据题意,故选取β=0.2为积分分离阈值。

运用凑试法确定较合适的PID参数,可以得到kp=5、ki=0.25、kd=5较合适的参数值。

当kd=5时,据

此时

=2。

保持其他参数不变,只改变

Simulink仿真图如下:

图4Simulink仿真图

(1)当kd=5时,即

=2时的仿真图如下:

图5

=2时的仿真图

(2)当kd=0.5时,即

=0.2的仿真图如下:

图6

=0.2的仿真图

(3)当kd=10时,即

=4的仿真图如下:

图7即

=4的仿真图

(4)当kd=20时,即

=8的仿真图如下:

图8

=8的仿真图

微分调节的动作与偏差的变化速度成正比。

其效果是阻止被调参数的一切变化,有超前调节的作用。

对滞后大的对象有很好的效果,但不能克服纯滞后。

适用于温度调节。

使用微分调节可使系统收敛周期的时间缩短。

但微分时间太长也会引起振荡。

6心得体会

通过本次设计,我了解了微机控制中PID积分分离法的基本概念及其对系统设计的相关应用,通过对初步知识的了解,对系统各种方案的比较,进一步了解了微机控制系统的合理性和实用性。

什么样的课程设计都离不开理论与实际相结合的真理,设计过程中的方案选择和参数设定使我进一步深刻认识到算法的控制对整个系统的重要作用。

一个细小的参数设定出现偏差,可能导致最后的性能指标不和标准。

所以选择一个优良的方案结于实验至关重要。

我认为,在设计时应该怎样少走一些弯路,怎样能够非常透彻的理解系统并用简单方法设计一个微机控制系统,我想这是这次课程设计最锻炼人的地方。

然而这也要求我们有相当厚实的理论基础,并能很好地运用到实际中去。

这是我们学习和掌握好自控原理最重要的。

我们运用Matlab软件进行系统仿真验证,这不仅对我们设计带来了方便,也能很准确地为我们改动参数提供依据,同时也让我们对Matlab软件进行了又一步的学习,也为我们再次熟练运用Matlab打下了基础。

参考文献

[1]李建忠.单片机原理及应用.西安:

西安电子科技大学出版社,2001.

[2]潘新民.王燕芳.微型计算机控制技术.北京:

高等教育出版社,2001.

[3]何立民.单片机应用系统设计.北京:

北京航空航天大学出版社,2000.

[4]韩志军,沈晋源,王振波.单片机应用系统设计.北京:

机械工业出版社,2005.

[5]周航慈.单片机程序设计基础.北京:

北京航空航天大学出版社,2000.

 

附录一两个重要芯片

图9DAC0832引脚图

DAC0832芯片为20引脚,双列直插式封装。

其引脚排列如图10所示。

(1)数字量输入线D7~D0(8条)

(2)控制线(5条)

(3)输出线(3条)

(4)电源线(4条)

DAC0832的技术指标

(1)分辨率:

8位

(2)电流建立时间:

1µS

(3)线性度(在整个温度范围内)8、9或10位

(4)增益温度系数:

0.0002%FS/℃

(5)低功耗:

20mW

(6)单一电源:

+5~+15V

图10ADC0809的引脚图

ADC0809各脚功能如下:

D7-D0:

8位数字量输出引脚。

IN0-IN7:

8位模拟量输入引脚。

VCC:

+5V工作电压。

GND:

地。

REF(+):

参考电压正端。

REF(-):

参考电压负端。

START:

A/D转换启动信号输入端。

ALE:

地址锁存允许信号输入端。

(以上两种信号用于启动A/D转换)

EOC:

转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。

OE:

输出允许控制端,用以打开三态数据输出锁存器。

CLK:

时钟信号输入端(一般为500KHz)。

A、B、C:

地址输入线。

附录二程序清单

积分分离PID控制算法子程序:

START:

MOV68H,KP;分别将KP,TI,TD,T,β送入指定的存储单元

MOV54H,TI

MOV55H,TD

MOV56H,T

MOV57H,β

MOVA,68H;计算KI=KP*T/TI

MOVB,56H

MULAB

MOVB,54H

DIVAB

MOV69H,A

MOVA,68H;计算KD=KP*TD/T

MOVB,55H

MULAB

MOVB,56H

DIVAB

MOV6AH,A

LOOP0:

MOVDPTR#7FF0H;读取预定温度值,送ADC0809的IN0口地址

MOV@DPTR,A;启动A/D转换

LOOP1JBP3.3,LOOP1;等待转换数据

MOVXA,@DPTR;读取ADC0809的IN0口转换后的数据

MOV5CH,A;将预定值数据放入指定的存储单元

MOVDPTR,#7FF1H;读取采样温度值,送ADC0809的IN1口地址

MOVX@DPTR,A;启动A/D转换

LOOP2:

JBP3.3,LOOP2;等待转换数据

MOVXA,@DPTR;读取ADC0809的IN1口转换后的数据

MOV49H,A;将采样值数据放入指定的存储单元

MOVA,5CH;计算ei,先取温度给定值

CLRC

SUBBA,50H;温度给定值-采样值

JNCAA0;判断ei的正负,如果为正,跳至AA0

CPLA;ei为负,下两条指令求补

ADDA,#01H

AA0:

MOVR0,57H

SUBBA,57H;|ei|-β

JNCAA1;|ei|>β跳至AA1

SJMPAA2;|ei|<β跳至AA2

AA1:

LCALLPD;调用PD算法

AA2:

LCALLPID;调用PID算法

MOVA,7CH;将△Ui通过DAC0832输出

MOVDPTR,#7FF2H

MOVX@DPTR,A

INCDPTR

MOVX@DPTR,A

LCALLDELAY;调用延时子程序,等待下一次采样计算

SJMPLOOP0;进入下一次控制计算

DELAYPROCNEAR

DL0:

MOVR6,#FFH

DL1:

MOVR7,#FFH

DL2:

MOVR5,#FFH

DLS:

DJNZR5,DLS

DJNZR7,DL2

DJNZR6DL1

RET

DELAYENDP

PIDPROCNEAR

PID:

MOVA,5CH;计算ei,先取温度给定值

CLRC

SUBBA,50H;温度给定值-温度检测值

JNCPID1;判断ei正负,如果为正,跳至PID1

CPLA;ei为负,下两条指令求补

ADDA,#01H

SETB30H;ei为负,符号位置1

SJMPPID2

PID1:

CLR30H;ei为正,符号位置0

PID2:

MOV6BH,A;ei值存放在6BH单位元中

MOVR1,6BH;计算ei-ei-1,先将ei值,送R1

MOVC,30H;将ei的符号位值送20H位

MOV20H,C

MOVR2,6CH;将ei-1值送R2

MOVC,31H;将ei-1的符号位值送21H位

MOV21H,C

LCALLDJF;调用单字节带符号的减法子程序

MOV6EH,R3;将差值ei-ei-1送6EH单元

MOVC,22H;将差值ei-ei-1的符号位送33H位

MOV33H,C

MOVR1,6CH;计算ei-1-ei-2,先将ei-1值送R1

MOVC,31H;将ei-1符号位送20H位

MOV20H,C

MOVR2,6DH;将ei-2的值送R2

MOVC,32H;将ei-2的符号位值送21H位

MOV21H,C

LCALLDJF;调用单字节带符号的减法子程序

MOV6FH,R3;将差值ei-1-ei-2送6FH单元

MOVC,22H;将差值ei-1-ei-2的符号位送34H位

MOV34H,C

MOVR1,6EH;计算(ei-ei-1)-(ei-1-ei-2),将ei-ei-1值送R1

MOVC,33H;将ei-ei-1符号位送20H位

MOV20H,C

MOVR2,6FH;将ei-1-ei-2值送R2

MOVC,34H;将ei-1-ei-2符号位送21H位

MOV21H,C

LCALLDJF;调用单字节带符号的减法子程序

MOV70H,R3;将差值(ei-ei-1)-(ei-1-ei-2)送70H单元

MOVC,22H;将差值(ei-ei-1)-(ei-1-ei-2)的符号位值送35H位

MOV35H,C

MOVA,68H;计算Kp*(ei-ei-1),将Kp值送A

MOVB,6EH;将ei-ei-1值送B

MULAB;两数相乘

MOV71H,B;Kp*(ei-ei-1)值存71H,72H单元

MOV72H.A

MOVA,69H;计算KI*ei,将KI值送A

MOVB,6BH;将ei值送B

MULAB;两数相乘

MOV73H,B;KI*ei值存73H,74H单元

MOV74H,A

MOVA,6AH;计算KD*[(ei-ei-1)-(ei-1-ei-2)],将KD送A

MOVB,70H;将(ei-ei-1)-(ei-1-ei-2)值送B

MULAB;两数相乘

MOV75H,B;KD*[(ei-ei-1)-(ei-1-ei-2)]值存75H,76H单元

MOV76H,A

MOVR1,71H;计算Kp*(ei-ei-1)+KI*ei,将Kp*(ei-ei-1)值送R1,R2

MOVR2,72H

MOVC,33H;将Kp*(ei-ei-1)的符号位值送23H位

MOV23H,C

MOVR3,73H;将KI*ei值送R3,R4

MOVR4,74H

MOVC,30H;将KI*ei值的符号位懂24H位

MOV24H,C

LCALLSJF;调用双字节带符号加法子程序

MOV77H,R5;将Kp*(ei-ei-1)+KI*ei值送77H,78H

MOV78H,R6

MOVC,25H;将Kp*(ei-ei-1)+KI*ei值的符号位送36H位

MOV36H,C

MOVR1,77H;计算△Ui,将将Kp*(ei-ei-1)+KI*ei值送R1,R2

MOVR2,78H

MOVC,36H;将Kp*(ei-ei-1)+KI*ei值的符号位送23H位

MOV23H,C

MOVR3,75H;将KD*[(ei-ei-1)-(ei-1-ei-2)]的值送R3,R4

MOVR4,76H

MOVC,35H;将KD*[(ei-ei-1)-(ei-1-ei-2)]的符号位送23H位

MOV24H,C

LCALLSJF;调用双字节带符号加法子程序

MOV79H,R5;将△Ui值送79H,7AH

MOV7AH,R6

MOVC,25H;将△Ui值的符号位送37H

MOV37H,C

MOVR1,7DH;计算Ui,将Ui-1值送R1,R2

MOVR2,7EH

CLR23H;Ui-1值的符号位值恒为0

MOVR3,79H;将△Ui值送R3,R4

MOVR4,7AH

MOVC,37H;将△Ui值的符号位送24H

MOV24H,C

LCALLSJF;调用双字节带符号加法子程序

JNB25H,PID3;判断计算结果是否为负

MOV7BH,#00H;如果是负数,则输出电压为0

MOV7CH,#00H

SJMPPID4

PID3:

MOV7BH,R5;否则,将计算得到的Ui值置7BH,7CH

MOV7CH,R6

PID4:

MOV6DH,6CH;数据迭代,ei-1值送ei-2存储单元

MOV6CH,6BH;ei值送ei-1存储单元

MOV7DH,7BH;Ui值

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

当前位置:首页 > 幼儿教育 > 育儿理论经验

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

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