1、学 号: 计算机控制技术课程设计题 目 温度控制系统设计学 院专 业班 级姓 名武汉理工大学计算机控制技术课程设计指导教师2016 年 月 日武汉理工大学计算机控制技术课程设计课程设计任务书学生姓名: _ 专业班级: _ 指导教师: 周申培 工作单位: _ 题 目: 温度控制系统设计初始条件:被控对象为电炉,采用热阻丝加热,利用大功率可控硅控制器控制热阻丝两端所加的电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温度。可控硅控制器输入为05伏时对应电炉温度0300,温度传感器测量值对应也为05伏,对象的特性为积分加惯性系统,惯性时间常数为T140秒。要求完成的主要任务: (包括课程设计工作
2、量及其技术要求,以及说明书撰写等具体要求)1设计温度控制系统的计算机硬件系统,画出框图;2编写积分分离PID算法程序,从键盘接受Kp、Ti、Td、T及的值;3计算机仿真被控对象,编写仿真程序;4通过数据分析Td改变时对系统超调量的影响。5. 撰写设计说明书。课程设计说明书应包括:设计任务及要求;方案比较及认证;系统滤波原理、硬件原理,电路图,采用器件的功能说明;软件思想,流程,源程序;调试记录及结果分析;参考资料;附录:芯片资料,程序清单;总结。时间安排:2016 年 5 月 23 日2016 年 6 月 3 日武汉理工大学计算机控制技术课程设计摘要比例-积分 -微分控制(简称 PID 控制)
3、,是控制系统中应用最为广泛的一种控制规律。实际运行的经验和理论的分析都表明,这种控制规律对许多工业过程进行控制时,都能得到满意的效果。利用计算机可以很好地使用 PID 算法对控制对象进行控制,具有较高的精度,并且可以很方便的改变 PID 参数,以达到不同的控制效果。本设计的控制对象为电炉,控制量为电炉温度,利用单片机对大功率可控硅导通角的控制,可以很方便地改变电热丝两端的电压,从而起到调节温度的作用。而热电偶配合单片机编程,能够较精确地得到炉温,使单片机能够实时发出控制信号,快速将炉温调节为给定值。当外界出现干扰使炉温发生变化时,单片机能够通过 PID 算法快速使炉温回到给定值。为了使 PID
4、 控制更加稳定可靠,本设计加入了积分分离的改进措施,当偏差较大时取消积分作用,利用 PD 控制快速使系统趋于稳定;当偏差小于某一个值时,加入积分作用,以消除静差。利用 Matlab 软件,可以通过仿真得到 Td 改变对系统超调量的影响。关键词:PID 控制;Matlab;系统超调量武汉理工大学计算机控制技术课程设计目录1 设计任务及要求 .11.1 设计任务要求 .11.2 任务要求分析 .12 方案比较及认证 .22.1 方案设计 .22.2 方案认证 .33 系统软件设计 .43.1 PID 控制算法 .43.2 积分分离的 PID 控制控制算法 .54 系统硬件设计 .64.1 系统滤波
5、原理 .64.2 硬件设计原理 .65 系统仿真 .85.1 仿真程序及图形 .85.2 仿真结果 .95.3 结果分析 .126 心得体会 .13参考文献 .14附录 A 芯片资料 15附 A1 ADC0809 芯片功能 15附 A2 DAC0832 芯片功能 16附 A3 AT89C51 单片机 .18武汉理工大学计算机控制技术课程设计附录 B 程序清单 20附 B1 单片机程序代码 .20附 B2 仿真程序代码 .27本科生课程设计成绩评定表 .28武汉理工大学计算机控制技术课程设计11 设计任务及要求 1.1 设计任务要求被控对象为电炉,采用热阻丝加热,利用大功率可控硅控制器控制热阻丝
6、两端所加的电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温度。可控硅控制器输入为05 伏时对应电炉温度 0300,温度传感器测量值对应也为 05 伏,对象的特性为积分加惯性系统,惯性时间常数为 T140 秒。要求完成的主要任务:1设计温度控制系统的计算机硬件系统,画出框图;2编写积分分离 PID 算法程序,从键盘接受 Kp、Ti 、Td 、T 及 的值;3计算机仿真被控对象,编写仿真程序;4通过数据分析 Td 改变时对系统超调量的影响。5. 撰写设计说明书。1.2 任务要求分析本系统的控制对象为电炉,被控量为温度,利用温度传感器实时检测电炉温度;将测得的数据经过 A/D 转换后送入计算机
7、;计算机系统将检测得到的温度与炉温给定值进行比较,并计算偏差;按照预置的控制算法,对可控硅控制器的导通角进行调节,从而可以控制热阻丝两端的电压,起到温度调节的作用。为了实现数据采集、转换、处理以及 PID 算法控制,并通过键盘对温度设定值和 PID控制参数进行修正,因此可以使用单片机或 PLC。由于本次控制对象为电炉,其时间常数较大,因此采用周期不宜过小,避免系统响应过于频繁,降低计算机系统的效率并使控制品质变坏;但也不能太大,否则会使误差不能及时消除。武汉理工大学计算机控制技术课程设计22 方案比较及认证2.1 方案设计用温度传感器来检测炉的温度,将炉温转变成毫伏级的电压信号,经温度变送器放
8、大并转换成电流信号。由电阻网络将电流信号变成电压信号,送入 A/D 转换器,通过采样和模数转换,所检测到的电压信号和炉温给定值的电压信号送入计算机程序中作比较,得出给定值与实际值之间的偏差,并与 进行比较,从而确定算法。计算得到的控制量输出给可控硅控制器,改变可控硅的导通角,达到调压的目的,是电阻丝两端的电压增大或较小,进而实现对炉温的控制。方案一:使用 PLC 直接对铁块温度进行 PID 调节。其基本思想为,触摸屏要设定温度给 PLC,PLC 控制光耦电路,然后对电阻丝进行控制加热。具体流程为,由触摸屏设定温度给 PLC,由 PLC 通过电路控制铁块的加热或不加热,热电偶把温度以电压的方式经
9、过 AD 转换反馈给 PLC,PLC 再经过 PID 来控制温度。其结构框图如图 2-1 所示。图 2-1 方案一设计结构图方案二:单片机热电偶温度自动控制。主要的控制芯片采用 AT89C51,要求传感器测量的电压范围和可控硅控制器的电压在 0-5,所以 A/D 与 D/A 转换芯片采用ADC0809 和 DAC0832。炉温控制在 0300内,因此采用镍铬-铜镍热电偶,同时选用运算放大器将信号放大。武汉理工大学计算机控制技术课程设计3图 2-2 方案二设计结构图2.2 方案认证根据设计要求,综合考虑选择方案二。在系统中,利用热电偶测得电阻炉实际温度并转换成毫伏级电压信号。该电压信号经过温度检
10、测电路转换成与炉温相对应的数字信号进入单片机,单片机进行数据处理后,通过液晶显示器显示温度,同时将温度与设定温度比较,根据设定计算出控制量,根据控制量通过控制继电器的导通和关闭从而控制电阻丝的导通时间,以实现对炉温的控制。程序流程图如图 2-3 所示。武汉理工大学计算机控制技术课程设计4图 2-3 程序流程图3 系统软件设计3.1 PID 控制算法模拟 PID 控制器的控制规律为(3-1)在 PID 调节中,比例控制能迅速反应误差,从而减小误差,但比例控制不能消除稳态误差,KP 的加大,会引起系统的不稳定;积分控制的作用是:只要系统存在误差,积分控制作用就不断地积累,输出控制量以消除误差,因而
11、,只要有足够的时间,积分控制将能完全消除误差,积分作用太强就会使系统超调增大,甚至使系统出现振荡;微分控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调节时间,从而改善系统的动态性能。为了便于计算机实现 PID 控制算法,必须将式(3-1)变换成差分方程,以得到数字武汉理工大学计算机控制技术课程设计5PID 位置型控制算式(3-2)根据式(3-2 )可写出 u(k-1)的表达式(3-3)将式(3-2 )与式(3-3 )相减,可以得到数字 PID 增量型控制算式为(3-4)式中,Kp 为比例增益;Ki=Kp*T/Ti 为积分系数; Kd=Kd*Td/T 为微分系
12、数。相对于位置型算法,增量型算法不需要做累加,计算误差或计算精度对控制量的计算影响较小,而位置型算法要用到过去的累加值,容易产生较大的累加误差。位置型算法不仅要占用较多的内存单元,而且不便于编写程序,并且逐渐增大的累加误差可能引起系统冲击,严重影响系统的稳定性。综合考虑,应该使用增量型数字 PID 控制算法来增加系统的稳定性以及控制精度。3.2 积分分离的 PID 控制控制算法在一般的 PID 控制中,当有较大的扰动或大幅度改变给定值时,由于此时有较大的偏 差,以及系统有惯性和滞后,故在积分项的作用下,往往会产生较大的超调和长时间的波动。特别对于温度等变化缓慢的过程,这一现象更为严重,为此,可
13、采用积分分离措施,即偏差 e(k)较大时,取消积分作用;当偏差较小时才将积分作用投入。亦即当 时,采用 PD 控制;当 时,采用 PID 控制。积分分离阈值 应根据具体对象及控制要求。若 值过大时,则达不到积分分离的目武汉理工大学计算机控制技术课程设计6的;若 值过小,则一旦被控量 y(t)无法跳出个积分分离区,只进行 PD 控制,将会出现残差,为了实现积分分离,编写程序时必须从数字 PID 差分方程式中分离出积分项,进行特殊处理。积分分离 PID 控制算法流程图如图 3-1 所示。图 3-1 积分分离 PID 控制算法流程图武汉理工大学计算机控制技术课程设计74 系统硬件设计4.1 系统滤波
14、原理一般微机应用系统的模拟输入信号中,均含有种种噪音和干扰,它们来自信号源本身、传感器、外界干扰等。噪音有两大类:一类为周期性的,另一类为不规则的。前者可采用双积分 A/D 转换器,有效地消除其影响。后者为随机信号,可用数字滤波方法予以消除。 算术平均值法式要按输入的 N 个采样为周期 ix(i=1 N),寻找这样一个 y,使y 与各采样值间的偏差的平方和为最小,使 由一元函数求值原理可得4.2 硬件设计原理该温度控制硬件设计采用了单片机 AT89C52,A/D 转换器 ADC0809 与 D/A 转换器DAC0832。其设计思想为:用热电偶来检测炉的温度,将炉温转变成毫伏级的电压信号,经温度
15、变送器放大并转换成电流信号。由电阻网络讲电流信号变成电压信号,送入 A/D 转换器ADC0809,通过采样和模数转换,所检测到的电压信号和炉温给定值的电压信号都转换成数字量送入单片机 AT80C52 进行比较,其差值即为实际炉温和给定炉温的偏差,以单片机为核心的数字 PID 控制器对偏差按照给定的方法运算,运算结果送入 D/A 转换器DAC0832 转换成模拟电压,经功率放大器放大后送入晶闸管调压器,触发晶闸管并改变其导通角的大小,从而控制电阻炉的加温电压,起到炉温调节的作用。其电路图如图 4-1 所示。武汉理工大学计算机控制技术课程设计8武汉理工大学计算机控制技术课程设计9图 4-1 硬件设
16、计电路图武汉理工大学计算机控制技术课程设计105 系统仿真5.1 仿真程序及图形被控对象为采用 simulink 仿真,通过 simulink 模块实现积分分离 PID 控制算法。 选择合适的Kp,Ki,Kd 是系统的仿真效果趋于理想状态。MATLAB 程序如下所示。clear all;close all;ts=2; %采样时间 2ssys=tf(1,40,1,0); %令 sys 为系统传递函数 dsys=c2d(sys,ts,zoh); %将 sys 离散化并加零阶保持器num,den=tfdata(dsys,v); %求 sys 多项式模型参数kp=1;ti=50;td=1;beta=0
17、.1;ki=kp*ts/ti;kd=kp*td/ts;Simulink 仿真图如图 5-1 所示。2401s 1sGs武汉理工大学计算机控制技术课程设计11图 5-1 Simulink 仿真图5.2 仿真结果(1)当 Td=0.1 时,仿真波形图如图 5-2 所示。图 5-2 当 Td=0.1 时的仿真波形图(2)当 Td=1 时,仿真波形图如图 5-3 所示。武汉理工大学计算机控制技术课程设计12图 5-3 当 Td=1 时的仿真波形图(3)当 Td=10 时,仿真波形图如图 5-4 所示。图 5-4 当 Td=10 时的仿真波形图武汉理工大学计算机控制技术课程设计13(4)当 Td=15
18、时,仿真波形图如图 5-5 所示。图 5-5 当 Td=15 时的仿真波形图(5)当 Td=20 时,仿真波形图如图 5-6 所示。武汉理工大学计算机控制技术课程设计14图 5-6 当 Td=20 时的仿真波形图(6)当 Td=30 时,仿真波形图如图 5-6 所示。武汉理工大学计算机控制技术课程设计15图 5-7 当 Td=30 时的仿真波形图(7)当 Td=40 时,仿真波形图如图 5-8 所示。此时系统出现振荡,系统不稳定。武汉理工大学计算机控制技术课程设计16图 5-7 当 Td=40 时的仿真波形图5.3 结果分析增大微分时间 Td,有利于加快系统响应,使超调量减小,稳定性增加,但系
19、统对扰动的抑制能力减弱,对扰动有较敏感的响应。通过仿真可以看出,当 K,Td,T, 取了合适的值后,改变 Td 既会改变系统的超调量,又会使系统的稳定时间发生较大的改变。在一定范围内 Td 增大,而相应的系统超调量减小,说明此时微分作用会使系统超调量减小。但超过该范围,随 Td 增大超调量增大。仿真结果中,当 Td=40 时,系统甚至出现不稳定的情况。因此,积分时间常数 Td 必须取恰当值,微分作用过强,会使系统超调过大,甚至不稳定。因此,Td 增大即微分作用的增强有助于增加系统的稳定性,还可以改善系统的动态特性,如可以明显减少超调量,缩短调节时间等,提高控制精度。但 Td 值偏大都会适得其反
20、。武汉理工大学计算机控制技术课程设计176 心得体会通过本次温度控制系统设计,个人有了很多获得:一,了解了自身各种理论知识的不足之处,强化了自身知识水平;二,知道了理论必须与实践结合,各种技术才能真正达到熟练运用的程度;三,科学技术是严密谨慎的,不能有一丝马虎,否则可能会出现较大误差;四,通过本次温度控制设计,进一步学习了单片机设计与 Matlab 仿真设计。也学习了数字 PID 控制,比较了数字 PID 位置型控制算法与数字 PID 增量型控制算法。同时了解了数字 PID 控制器改进的方法,如积分分离。为了实现积分分离,编写程序时必须从数字 PID 差分方程式中分离出积分项,进行特殊处理。武
21、汉理工大学计算机控制技术课程设计18参考文献1 于海生. 计算机控制技术M. 北京:机械工业出版社,2014:101-111.2 张毅刚,彭喜元 . 单片机原理及应用M. 北京:高等教育出版社,2010:43-82.3 刘教瑜. PLC 应用技术M. 北京:人民邮电出版社,2013:276-278.4 刘红丽. 传感与检测技术M. 北京:国防工业出版社,2012:73-81.5 王孝武,方敏,葛锁良. 自动控制理论M. 北京:机械工业出版社,2012:117-118.武汉理工大学计算机控制技术课程设计19附录 A 芯片资料附 A1 ADC0809 芯片功能A/D 转换器是将模拟电压或电流转换成
22、数字量的期间或装置,它是一种模拟系统和计算机之间的接口,它在数据采集和控制系统中,得到了广泛的应用,常用的 A/D 转换器有 ADC0809. 它是一种带有 8 通道模拟开关的 8 位逐次逼近式 A/D 转换器,转换时间为100us 左右,线性误差为1/2LSB,采用 28 脚双立直插式封装,ADC0809 由 8 通道模拟开关、通道选择逻辑、8 位 A/D 转换器及三态输出锁存缓冲器组成。(1)8 通道模拟开关及通道选择逻辑该部分的功能是实现 8 选 1 操作,通道选择信号 C、B、A 与所选通道的关系如下:表 A-1 ADC0809 模拟开关及通道选择逻辑 地址锁存允许信号(ALE、正脉冲
23、)用于通道选择信号 C、B 、A 的锁存。加至C、B、A 上的通道选择信号在 ALE 的作用下送入通道选择逻辑后,通道 i 上的模拟输入被送至 A/D 转换器转换。武汉理工大学计算机控制技术课程设计20(2)8 位 A/D 转换器图 A-1 ADC0809 引脚图如图 A-1 所示。IN0IN7 为模拟信号的 8 个输入通道。VREF,VREF 为基准电压的正极和负极。 ADDA 、ADDB 和 ADDC 为模拟信号输入通道的地址选择线。ALE 为地址锁存信号,由低电平到高电平正跳变时讲地址选择线的状态锁存,一选通相应的输入通道。 START 为启动信号,正脉冲的上升沿使内部寄存器清零,从下降
24、沿开始进行 A/D 转换。 OEC 为转换结束信号,在 START 信号之后变低,转换结束为高电平,用来申请中断。OE 为输出允许信号,有效时将输出寄存器中的数据放到数据总线上。2-82-1 为数码输出端,2-8 为最低有效位,2-1 为最高有效位。武汉理工大学计算机控制技术课程设计21附 A2 DAC0832 芯片功能D/A 转换器的功能是把二进制数字量电信号转换为与其数值成正比的模拟量电信号。常用 D/A 转换器为 DAC0832 芯片。DAC0832 工作在单缓冲寄存器方式,即当 CS 信号来时,D0D7 数据线送来的数据直通进行 D/A 转换,当 IOW 变高时,则此数据便被锁存在寄存
25、器中,因此 D/A 转换的输出也保持不变。DAC0832 讲输入的数字量转换成差动的电流输出(Iout1 和 Iout2),为了将其编程电压输出,须经过运算放大器,使其输出05V(Vref 为-5V)或 010V(Vref 为-10V),若要形成负电压输出,则 Vref 需接正的基准电压。图 A-2 DAC0832 引脚图如图 A-2 所示,DAC0832 是双列直插式 8 位 D/A 转换器。能完成数字量输入到模拟量(电流 )输出的转换。图 4 为 DAC0832 的引脚图。其主要参数如下:分辨率为 8 位,转换时间为 1s,满量程误差为1LSB,参考电压为 (+10/span-10)V,供
26、电电源为(+5+15)V,逻辑电平输入与 TTL 兼容。在 DAC0832 中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为 ILE,第二级锁存器称为 DAC 寄存器,它的锁存信号也称为通道控制信号 XFER。武汉理工大学计算机控制技术课程设计22当 ILE 为高电平,片选信号 CS 和写信号 WR1 为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。此后,当 WR1 由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据 DB 的变化而变化。对第二级锁存来说,传送控制信号 XFER 和写信号 WR2
27、同时为低电平时,二级锁存控制信号为高电平,8 位的 DAC 寄存器的输出随输入而变化,此后,当 WR2 由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到 DAC 寄存器中。其余各引脚的功能定义如下:DI7 DI0: 8 位的数据输入端,DI7 为最高位。IOUT1:模拟电流输出端 1,当 DAC 寄存器中数据全为 1 时,输出电流最大,当 DAC 寄存器中数据全为 0 时,输出电流为 0。IOUT2:模拟电流输出端 2,IOUT2 与 IOUT1 的和为一个常数。RFB:反馈电阻引出端,DAC0832 内部已有反馈电阻,所以 RFB 端可以直接接到外部运算放大器的输出端,相当于
28、将一个反馈电阻接在运算放大器的输出端和输入端之间。 VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定 0 至255 的数字量转化出来的模拟量电压值的幅度,VREF 范围为+10 。VREF 端与 D/A 内部T 形电阻网络相连。VCC:芯片供电电压,范围为 5V15V。GND :模拟量地/数字量地,即模拟/数字电路接地端。附 A3 AT89C51 单片机 AT89C51 提供以下的功能标准:4K 字节闪烁存储器, 128 字节随机存储器,32 个I/O 口, 2 个 16 位定时/计数器,1 个 5 向量两级中断结构, 1 个串行通信口,片内震荡器和时钟电路。另外,AT8
29、9C51 还可以进行 0HZ 的静态逻辑操作,并支持两种软件的节电模式。8051 单片机的内部结构十分复杂,但封装之后,只有引脚是面向用户的,所以使用者需要熟悉各引脚的用途。常用的 8051 芯片是用双列直插 40 脚封装。如图 A-3 所示。武汉理工大学计算机控制技术课程设计23图 A-3 AT89C51 引脚图其各引脚功能如下所示:VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P0 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH
30、编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 口外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并作为输入时,P2 口的管脚
31、被外部拉低,将输出电流,这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出武汉理工大学计算机控制技术课程设计24地址“1”时,利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入 “1”后,它们被内部上拉为高电平,并用作输入。P3 口也可作为 AT89C51的一些特殊功能口,P3 口同时为闪烁编程和
32、编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6,可用作对外部输出的脉冲或用于定时目的。Error!:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次 PSEN 有效。但在访问外部数据存储器时,这两次有效的Error!信号将不出现。 Error!/VPP:当Error!保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1 时,Error!将内部锁定为 RESET;当Error!端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。