目录一、设计内容 (2)1.1温度控制 (2)1.2设计方案 (2)二、软件设计 02.1主程序流程图 02.2 DS18B20实现温度转换和温度数值读取流程图 02.3显示流程图 (1)三、PID控制 (2)3.1PID简介 (2)3.2PID控制算法 (4)四、电路设计 (6)4.1功能模块设计 (6)4.2电路连接设计 (7)4.2.1温度检测电路 (7)4.2.2继电器控温电路 (7)4.2.3外部电路 (8)参考文献 (9)附录PID温度控制器程序 (10)一、设计内容1.1温度控制本设计以水为测量对象,温度测量电路接收传感器的信号,并将模拟信号通过模/数转换器转换为数字信号,送入单片机系统,与预设的温度对比,通过一定的控制算法,控制继电器的通断,从而控制加热器的工作,使得水温维持在设定的温度。
温度控制算法精确控制温度加热,以温度最小为优化目标。
温度是工业控制对象的主要的被控参数之一,如冶金,机械,食品,化工各类工业中广泛使用的各种加热炉,热处理炉,反应炉等。
在过去多是采用常规的模拟调节器对温度进行控制,本设计采用了单片微型机对温度实现自动控制。
1.2设计方案温度控制系统是一种比较常见和典型的过程控制系统。
温度是工业生产过程中重要的被控参数之一,当今计算机控制技术在这方面的应用,已使温度控制系统达到自动化、智能化,比过去单纯采用电子线路进行PID调节的控制效果要好得多,可控性方面也有了很大的提高。
温度是一个非线性的对象,具有大惯性的特点,在低温段惯性较大,在高温段惯性较小。
对于这种温控对象,一般认为它具有以下的传递函数形式:这是传统的二位式模拟控制方案,其基本思想与方案一相同,但由于采用上下限比较电路,所以控制精度有所提高。
这种方法还是模拟控制方式,因此也不能实现复杂的控制算法使控制精度做得较高,而且不能用数码管显示,对键盘进行设定。
采用89C51单片机系统来实现。
单片机软件编程灵活、自由度大,可用软件编程来实现各种控制算法和逻辑控制。
单片机系统可以使用数码管来显示水温的实际值,能用键盘输入设定值。
选用了AT89C51芯片,不需要外扩展存储器,可使系统整体结构更为简单。
采用以单片机为控制核心的控制系统,尤其对温度控制,可达到模拟控制所达不到的效果,并且实现显示和键盘设定功能,大大提高了系统的智能化。
这也使得系统所测得结果的精度大大提高。
AT89C51是一种带4k字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
而在众多的51系列单片机中,要算ATMEL 公司的AT89C51更实用,也是一种高效微控制器,因为它不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器,用户可以用电的方式达到瞬间擦除、改写。
而这种单片机对开发设备的要求非常低,开发时间也能大大缩短。
DS18B20是一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。
它具有独特的单总线接口方式,仅需使用1个端口就能实现与单片机的双向通讯。
采用数字信号输出提高了信号抗干扰能力和温度测量精度。
它的工作电压使用范围宽3.0~5.5 V,可以采用外部供电方式,也可以采用寄生电源方式,即当总线DQ为高电平时,窃取信号能量给DS18B20供电。
它还有负压特性,电源极性接反时,DS18B20不会因接错线而烧毁,但不能正常工作。
可以通过编程而实现9~12位的温度转换精度设置。
设定的分辨率越高,所需要的温度数据转换时间就越长,在实际应用中要将分辨率和转换时间权衡考虑。
RS-232接口是个人计算机上的通讯接口之一,是1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。
该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。
随着设备的不断改进,出现了代替DB25的DB9接口。
二、软件设计2.1主程序流程图系统的主程序流程图如图2-1 所示,当有信号输入时,主程序启动,根据内部设定的条件逐步运行,达到设计目的。
2.2 DS18B20实现温度转换和温度数值读取流程图图2-2为DS18B20实现温度转换和温度数值读取流程图,用于系统的温度转换和温度数值的读取。
图2-2 DS18B20实现温度转换和温度数值读取流程图2.3显示流程图图2-3为系统的显示流程图。
主要是通过对传输信号进行显示后,给操作者提供提示。
以到达为本系统提供对温度的显示和监控的目的。
三、PID 控制3.1PID 简介PID 控制器是一种线性控制器,它根据给定值厂r(t)与实际输出值y(t)构成控制偏差e(t):()()()e t r t y t =- (3.1) 将偏差()e t 的比例(Proportional )、积分(Integral )和微分(Derivative )通过线性组合构成控制量,对被控对象进行控制,因此称为PID 控制。
PID 控制系统原理如图 3-1 所示。
图2-3 显示流程图图 3-1 PID 控制系统原理图其控制规律为:011()()()()t P D de t u t K e t e t dt T T dt ⎡⎤=++⎢⎥⎣⎦⎰ (3.2)或者写成传递函数的形式为:11()(1)P D G s K T s T s =++ (3.3)式中 P K :比例系数1T :积分时间常数D T :微分时间常数PID 控制器各校正环节的作用如下:(1) 比例环节即时成比例地反映控制系统的偏差信号()e t ,偏差一旦产生,控制器立即产生控制作用,以减少偏差;(2) 积分环节主要用于消除静差,提高系统的无差度。
积分作用的强弱取决于积分时间常数,1T 越大,积分作用越弱,反之则越强;(3) 微分环节能够反映偏差信号的变化趋势(变化速率),并且能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。
3.2PID 控制算法由于计算机控制是一种采样控制系统,它只能根据采样时刻的偏差值计算控制量。
因此,(3.2)式中的积分和微分项不能直接使用,需要进行离散化处理。
现令T 为采样周期,以一系列的采样时刻点kT 代表连续时间t ,以累加求和近似代替积分,以一阶后向差分近似代替微分,做如下的近似变换:t kT = (3.4)000()()()k kt j j e t T e jT T e j ==≈=∑∑⎰ (3.5) ()()1()()(1)e kT e k T de t e k e k dt T T--⎡⎤--⎣⎦≈= (3.6) 其中,T 为采样周期,()e k 为系统第k 次采样时刻的偏差值,e(1k -)为系统第(1k -)次采样时刻的偏差值,k 为采样序号,k =0,1,2,…。
将上面的(3.5)式和(3.6)式代入(3.2)式,则可以得到离散的PID 表达式: []01()()()()(1)kD P j T T u k K e k e j e k e k T T =⎧⎫=++--⎨⎬⎩⎭∑ (3.7) 如果采样周期T 足够小,该算式可以很好的逼近模拟PID 算式,因而使被控过程与连续控制过程十分接近。
通常把(3.7)式称为PID 的位置式控制算法。
若在(3.7)式中,令:11P K T K T = (称为积分系数) P D D K T K T=(称为微分系数) 则 []10()()()()(1)k P D j u k K e k K e j K e k e k ==++--∑ (3.8)(3.8)式即为离散化的位置式PID 控制算法的编程表达式。
可以看出,每次输出与过去的所有状态都有关,要想计算()u k ,不仅涉及()e k 和(1)e k -,且须将历次()e j 相加,计算复杂,浪费内存。
下面,推导计算较为简单的递推算式。
为此,对(3.8)式作如下的变动:考虑到第(1)k -次采样时有[]101(1)(1)()(1)(2)k D P j T T u k K e k e j e k e k T T -=⎧⎫-=-++---⎨⎬⎩⎭∑ (3.9) 使(3.8)式两边对应减去(3.9)式,得[]1()(1)()(1)()()2(1)(2)D P T T u k u k K e k e k e k e k e k e k T T ⎧⎫--=--++--+-⎨⎬⎩⎭整理后得[]11012()(1)()(1)()()2(1)(2)2(1)(1)()(1)(1)(2)(1)()(1)(2)D P D D D P P P T T u k u k K e k e k e k e k e k e k T T T T T T u k K e k K e k K e k T T T Tu k a e k a e k a e k ⎧⎫=-+--++--+-⎨⎬⎩⎭=-+++-+-+-=-+--+-(3.10) 其中,01(1)D P T T a K T T =++,12(1)D P T a K T =+,2D P T a K T=,(3.10)式就是PID 位置式得递推形式。
如果令 ()()(1)u k u k u k ∆=-- 则 012()()(1)(2)u k a e k a e k a e k ∆=--+-式中的0a 、1a 、2a 同(3.10)式中的一样。
因为在计算机控制中,0a 、1a 、2a 都可以事先求出,所以,实际控制时只须获得()e k 、(1)e k -、(2)e k -三个有限的偏差值就可以求出控制增量。
由于其控制输出对应执行机构的位置的增量,故(3.11)式通常被称为PID 控制的增量式算式。
增量式PID 控制算法与位置式控制算法比较,有如下的一些优点:(1) 位置式算法每次输出与整个过去状态有关,算式中要用到过去偏差的累加值()e j ∑,容易产生较大的累计误差。
而增量式中只须计算增量,算式中不需 要累加,控制增量的确定仅与最近几次偏差采样值有关,当存在计算误差或者精度不足时,对控制量的影响较小,且较容易通过加权处理获得比较好的控制效果;(2) 由于计算机只输出控制增量,所以误动作影响小,而且必要时可以用逻辑判断的方法去掉,对系统安全运行有利;(3)手动一自动切换时冲击比较小。
鉴于以上优点,本系统的控制算法即采用增量式的PID控制算法。