计算机控制技术课程设计温度控制系统设计.docx
《计算机控制技术课程设计温度控制系统设计.docx》由会员分享,可在线阅读,更多相关《计算机控制技术课程设计温度控制系统设计.docx(25页珍藏版)》请在冰点文库上搜索。
计算机控制技术课程设计温度控制系统设计
计算机控制技术课程设计-温度控制系统设计
题目温度控制系统设计学院自动化学院专业自动化专业班级
姓名
指导教师
2014年6月24日
课程设计任务书
题目:
温度控制系统设计
要求完成的主要任务:
被控对象为电炉,采用热阻丝加热,利用大功率可控硅控制器控制热阻丝两端所加的电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温度。
可控硅控制器输入为0,5伏时对应电炉温度0,300?
,温度传感器测量值对应也为0,5伏,对象的特性为二阶惯性系统,惯性时间常数为T1,20秒,滞后时间常数为τ,10秒。
1)设计温度控制系统的计算机硬件系统,画出框图;
2)编写积分分离PID算法程序,从键盘接受K、T、T、T及β的值;pid
3)通过数据分析T改变时对系统超调量的影响。
i
4)撰写设计说明书。
时间安排:
6月9日查阅和准备相关技术资料,完成整体方案设计
6月10日—6月12日完成硬件设计
6月13日—6月15日编写调试程序
6月16日—6月17日撰写课程设计说明书
6月18日提交课程设计说明书、图纸、电子文档
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
本次课程设计我设计的题目是温度控制系统。
通过专业课程的学习,我将引入计算机,单片机,传感器,以及PID算法来实现电炉温度的自动控制,完成课程设计的任务。
计算机的自动控制是机器和仪表的发展趋势,它不仅解放了劳动力,也比以往的人为监控更准确,更及时。
一旦温度发生变化,计算机监控系统可以立即检测到并通过模拟量数字通道传送到计算机。
计算机接收到信号后通过与给定值进行比较后,计算出偏差,再通过PID控制算法给出下一步将要执行的指令。
最后通过模拟量输出通道将指令传送到生产过程,实现机器仪表的智能控制。
本次课程设计用到了MATLAB这一软件,通过编写程序,将被控系统离散化。
再通过MATLAB中的simulink仿真功能,可以看到随着Ki,Kp,Kd改变波形发生的改变,从而可以通过波形直观地看出PID参数对系统动态性能的影响。
关键字:
温度控制A/D转换D/A转换Simulink仿真
1.设计任务及分析........................................................................................................12.方案设计....................................................................................................................23.系统硬件设计............................................................................................................3
3.1系统硬件结构................................................................................................3
3.2系统硬件的选择.............................................................................................3
3.3系统硬件连接图............................................................................................44系统软件设计...........................................................................................................6
4.1确定程序流程................................................................................................6
4.2程序控制算法介绍........................................................................................8
4.3PID控制算法..............................................................................................105系统仿真..................................................................................................................11
5.1仿真程序及图形设计..................................................................................11心得体会......................................................................................................................13参考文献......................................................................................................................14附录1芯片资料.........................................................................................................15附录2程序清单........................................................................................................17本科生课程设计成绩评定表......................................................................................27
温度控制系统设计1.设计任务及分析
被控对象为电炉,采用热阻丝加热,利用大功率可控硅控制器控制热阻丝两端所加的电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温度。
可控硅控制器输入为0,5伏时对应电炉温度0,300?
,温度传感器测量值对应也为0,5伏,对象的特性为二阶惯性系统,惯性时间常数为T1,20秒,滞后时间常数为τ,10秒。
1)设计温度控制系统的计算机硬件系统,画出框图;
2)编写积分分离PID算法程序,从键盘接受K、T、T、T及β的值;pid
3)通过数据分析T改变时对系统超调量的影响。
i
4)撰写设计说明书。
本次设计是对电炉的温度控制,而电炉的温度是通过放在其中的热阻丝来控制的,而热阻丝的电流由可控硅控制器控制热阻丝两端所加电压来控制。
对电炉温度的控制是个动态的过程,不可能一下子就达到我们想要的温度,需要用到一些仪器比如热电偶来测量电路的温度,通过传感器将炉温转换成电压信号,送入A/D转换器,通过采样和模数转换,所检测到的电压信号和炉温给定值的电压信号送入计算机程序中作比较,得出给定值与实际值之间的偏差,单片机对偏差进行运算,将运算结果送给晶闸管调压器来调节热阻丝的电流,以此来调节电电炉的温度。
1
2.方案设计
电炉的温度控制是个动态的控制过程,需要借助计算机,单片机等很多器件的硬件连接来实现。
而电炉温度的直接控制是通过热阻丝的加热来实现的,热阻丝的加热是由流经热阻丝的电流来控制的,而热阻丝的电流是通过可控硅控制器控制热阻丝两端所加电压来控制,电压的调节是通过可控制硅控制。
需要用到热电偶时刻监测电炉的温度,通过传感器将温度信号转化为电压信号,而电压信号通过模数转换送入到计算机进行控制,计算机将转换结果送到晶闸管来控制加到热阻丝两端的电压,这样达到调节电炉温度的目的。
传感器电炉
控制电路数据采集
A/D转换D/A转换
计算机
显示电路键盘控制
图2-1温度控制系统框图
2
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存储器,不够本系统使用,因此,采用6264(8kB)的RAM作为外部数据存储器。
3
热电偶的选择:
本设计采用热电偶--镍络-铜硅热电偶(线性度较好,热电势较大,灵敏度较高,稳定性和复现性较好,抗氧化性强,价格便宜)对温度进行检测。
镍铬-铜镍热电偶在300?
时的热点势21.033mV,为满足0-5V的要求,需将其放大238倍,再通过0809将其转换为数字量被计算机读取,通过软件程序对数据进行处理,将处理的结果经0832输出,输出量控制可控硅控制器,从而改变电阻丝两端的电压,使炉温得到控制。
3.3系统硬件连接图
综合以上分析,可以得出系统的硬件连接图如图3-1所示:
4
图3-1系统硬件连接图
5
4系统软件设计
4.1确定程序流程
在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。
自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。
其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。
解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。
这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。
所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
在一般的PID控制中,当有较大的扰动或大幅度改变给定值时,由于此时有较大的偏差,以及系统有惯性和滞后,故在积分项的作用下,往往会产生较大的超调和长时间的波动。
特别对于温度等变化缓慢的过程,这一现象更为严重,为此,可采用积分分离措施,即偏差较大时,取消积分作用;当偏差较小时才e(k)
将积分作用投入。
亦即
e(k),,当时,采用PD控制;
e(k),,当时,采用PID控制。
积分分离阈值,应根据具体对象及控制要求。
若,值过大时,则达不到积分分离的目的;若,值过小,则一旦被控量无法跳出个积分分离区,只进行y(t)
PD控制,将会出现残差,为了实现积分分离,编写程序时必须从数字PID差分方程式中分离出积分项,进行特殊处理。
根据设计要求及所选硬件,程序流程如图4-1所示:
6
开始
系统初始化设
置
数据采集
A/D转换
求出温度值
信号比较
PID调节
可控硅调节
加热炉
图4-1程序主流程图
7
4.2程序控制算法介绍
由以上分析,本次设计采用的是积分分离PID控制算法,PID调节时连续系统中技术中最成熟的,应用广泛的一种调节控制方式。
在模拟控制系统中,PID算法的表达为:
tdet1()utKetetdtT(),[(),(),]pD,0TdtI
u:
调节器的输出信号;
e:
偏差信号;
K:
调节器的比例系数;
TI:
调节器的积分时间;
TD:
调节器的微分时间。
在计算机控制中,为实现数字控制,必须对式上式进行离散化处理。
用数字形式的差分方程代替连续系统的微分方程。
设系统的采样周期为T,在t=kT时刻进行采样,
kte(t)dt,Te(i),,0,0i
deekek(t)(),(,1),dtT
式中e(k):
根据本次采样值所得到的偏差;
e:
由上次采样所得到的偏差。
(k-1)
由以上可得:
kTe(k)e(k1),,u(k)K[e(k)e(i)T],,,D,pTTi,0Ike(k)e(k1),,Ke(k)e(i)k,k,,,,pidTi,0
8
式中,T为采样时间,项为积分项的开关系数,
e(k),1,,,,,e(k),,0,
积分积分分离PID控制算法程序框图如图4-2所示:
开始
初始化
数据采
集
ek(),,
YN
PID控制PD控制
控制器输出
更新参数
返回
图4-2积分分离PID控制算法图
9
4.3PID控制算法
实际运行的经验和理论的分析都表明,运用这种控制规律对许多工业过程控制时,都能得到满意的效果。
不过用计算机实现PID控制,不是简单得把模拟PID控制规律数字化,而是进一步与计算机的逻辑判断功能结合,使PID控制更加灵活,更能满足生产过程提出的要求。
PID算法推倒如下:
t1()detutKetetdtT()[()()],,,pD,0TdtI
u:
调节器的输出信号;
e:
偏差信号;
K:
调节器的比例系数;
TI:
调节器的积分时间;
TD:
调节器的微分时间。
对应的模拟PID调节器的传递函数
Us()1PDDSKTS()
(1),,,,
IEsTS()
,KPKPKP其中为比例增益,与比例带成倒数关系即=1/,TI为积分时间常数,TD为微分时间常数,u(t)为控制量,e(t)为偏差。
在计算机控制中,为实现数字控制,必须对式上式进行离散化处理。
用数字形式的差分方程代替连续系统的微分方程。
设系统的采样周期为T,在t=kT时刻进行采样,
kte(t)dt,Te(i),,0,0i
de(t)e(k),e(k,1),dtT
式中e(k):
根据本次采样值所得到的偏差;
e:
由上次采样所得到的偏差。
(k-1)
T为采样周期
K为采样序号
10
由以上可得:
kTekek1(),(,)ukK[ekeiT](),(),(),,DpTT,i0Ikekek1(),(,)Kekeik,k,(),(),,pidT,i0
式中,T为采样时间,项为积分项的开关系数,
e(k),1,,,,,e(k),,0,
5系统仿真
5.1仿真程序及图形设计
被控对象为:
G(S)=
采用simulink仿真,通过simulink模块实现积分分离PID控制算法。
选择合适的Kp,Ki,Kd是系统的仿真效果趋于理想状态。
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=10;
ki=0.25;
11
kd=5;
Simulink仿真图如图5-1所示:
图5-1simulink仿真图
12
心得体会
本次计算机控制技术课程设计我的题目是电炉温度控制系统。
通过本学期专业课程的学习,我打算通过传感器,单片机,计算机来实现炉温的自动控制系统。
最后通过simulink仿真波形,观察PID参数变化对系统结果的影响,从而对计算机控在技术中的PID控制有更深刻的理解和认识。
拿到题目后,首先我纲举目张地初步将我的整个报告完成过程分为了六个步骤:
分析题目要求,列出报告提纲,查找资料,设计硬件和软件,进行Matlab仿真,撰写课程设计说明书。
通过计算机控制技术这门专业课的学习,已经对整个控制系统的组成和原理有了初步认识,所以题目理解起来并不困难,主要就是用到了A/D和D/A转换,以及单片机编程实现。
接下来就是查阅资料和列提纲了,这两步基本是同时进行。
紧接着就是根据手头上已有的课本和网络上找到的资源进行软硬件设计,在理解了课本上的知识后,设计起来也并不复杂。
整个炉温控制系统大致工作流程是这样的:
采集当前温度数据进行A/D转换后送至计算机系统,与给定标准温度进行偏差计算,通过控制算法给出下一步执行决策,并通过D/A转换器送出至控制系统,控制系统根据指令进行人为或自动控制处理,这样整个控制流程就比较清晰了。
下一步是进行simulink仿真。
不得不说对simulink的学习仍需加强,对整个软件不是很了解的情况下就去做仿真的结果就是浪费大量时间做无用功,而且还得不出结果。
最后是撰写课程设计报告。
其实这个过程考验的是自己的细心和耐心,格式方面的修改有时候确实让人头疼,但一旦你这一次做到了这些,下次再写报告的时候就会事半功倍,为人处世也会学着更加细致谨慎。
13
参考文献
[1]李建忠.单片机原理及应用.西安:
西安电子科技大学出版社,2001.[2]潘新民.王燕芳.微型计算机控制技术.北京:
高等教育出版社,2001.[3]何立民.单片机应用系统设计.北京:
北京航空航天大学出版社,2000.[4]韩志军,沈晋源,王振波.单片机应用系统设计.北京:
机械工业出版社,2005.
[5]周航慈.单片机程序设计基础.北京:
北京航空航天大学出版社,2000.
14
附录1芯片资料
ADC0809芯片
图ADC0809芯片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:
地址输入线。
15
DAC0832芯片:
图DAC0832芯片DAC0832芯片为20引脚,双列直插式封装。
其引脚排列如图6所示。
(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
16
附录2程序清单
积分分离PID控制算法子程序:
START:
MOV68H,KP;分别将K,T,T,T,β送入指定的存PID
储单元
MOV54H,TI
MOV55H,TD
MOV56H,T
MOV57H,β
MOVA,68H;计算K=K*T/TIPI
MOVB,56H
MULAB
MOVB,54H
DIVAB
MOV69H,A
MOVA,68H;计算K=K*T/TDPD
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口地
址
17
MOVX@DPTR,A;启动A/D转换
LOOP2:
JBP3.3,LOOP2;等待转换数据
MOVXA,@DPTR;读取ADC0809的IN1口转换后的数据
MOV49H,A;将采样值数据放入指定的存储单元
MOVA,5CH;计算e(i),先取温度给定值
CLRC
SUBBA,50H;温度给定值-采样值
JNCAA0;判断e(i)的正负,如果为正,跳至AA0
CPLA;e(i)为负,下两条指令求补
ADDA,#01H
AA0:
MOVR0,57H
SUBBA,57H;|e(i)|-β
JNCAA1;|e(i)|>β跳至AA1
SJMPAA2;|e(i)|<β跳至AA2AA1:
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
18
DJNZR7,DL2
DJNZR6DL1
RET
DELAYENDP
PIDPROCNEAR
PID:
MOVA,5CH;计算e(i),先取温度给定值
CLRC
SUBBA,50H;温度给定值-温度检测值
JNCPID1;判断e(i)正负,如果为正,