电加热器温度的数字PID控制毕业论文

上传人:xx****m 文档编号:67897561 上传时间:2022-04-01 格式:DOC 页数:37 大小:714.50KB
收藏 版权申诉 举报 下载
电加热器温度的数字PID控制毕业论文_第1页
第1页 / 共37页
电加热器温度的数字PID控制毕业论文_第2页
第2页 / 共37页
电加热器温度的数字PID控制毕业论文_第3页
第3页 / 共37页
资源描述:

《电加热器温度的数字PID控制毕业论文》由会员分享,可在线阅读,更多相关《电加热器温度的数字PID控制毕业论文(37页珍藏版)》请在装配图网上搜索。

1、2013 届 本 科 毕 业设 计(论文)电加热器温度的数字PID控制The digital PID control of electric heater 学 院:工 学 院 专业班级: 电子信息工程0902班 姓 名: 王 阿 东 学 号: 2 指导教师: 世强副教授 完成时间:2013年4月10日二一三年四月论文题目:电加热器温度的数字PID控制专 业:电子信息工程学 生:王阿东 签 名: 指导教师:世强 签 名: 摘要 温度是重要的物理量,温度的测量和控制,在工业生产和科研工作中都非常重要。本文介绍了一种以STC89C52单片机为检测控制中心的数字式水温自动控制系统。温度测量部分采用单总

2、线集成温度传感器DS18B20,使系统简单可靠,且易于操作。温度设置部分采用四个独立按键组成,显示部分采用四位共阴数码管显示,使系统变得简便而高效。温度控制采用PID数字控制算法,通过计算偏差值来控制光耦合和可控硅的通断,从而控制加热器的加热程度。实际调试表明,采用PID算法能使温度稳定在设定值附近。关键词:PID算法;单片机;温度控制;光耦合;可控硅Title: The digital PID control of electric heaterMajor:Electronic information engineeringName:Wang Adong Signature:Supervis

3、or:Zhao Shiqiang Signature:ABSTRACTTemperature is an important physical quantities,The Temperatures measurement and control are very important In industrial production and scientific research work.This article introduces a automatic digital waters temperature control system using the STC89C52 microc

4、ontroller as the detect and control center.The temperature measurement part uses the one bus integrated temperature sensor DS18B20 ,which making the system more Simple and reliable,And easy to operate.Temperature setting part is made up of four separate buttons,and Display part adopts four Led Displ

5、ay to display, which made the system easy and efficient.The Temperature is controled by thePID Digital control algorithm.The heater uses the common fast heater which the Ordinary families commonly used.Key words: PID algorithm;MCU;Temperature control;Optocoupler;Siliconcontrolled目录前言11 硬件系统设计21.1 系统

6、总体框图21.2 单片机系统31.2.1 单片STC89C5231.3数字温度传感器DS18B2041.3.1单线数字温度计DSl8B20 介绍.41.3.2 DSl8B20 工作过程与时序 .51.3.3 DS18B20连接图.51.4 温度显示部分61.5 温度设定部分61.6 光耦器件71.6.1光电耦合器件简介71.6.2 光电隔离技术的应用71.6.3 光耦器件MOC3040.81.7可控硅81.7.1可控硅简介82 PID算法102.1 PID算法简介102.2 PID算法的程序设计122.3 PID算法参数整定方法133 软件设计153.1PID控制流程153.2系统软件设计总流

7、程图164 结语17参考文献18 致20附录2033 / 37前言温度控制已成为工业生产、科研领域中很重要的一个环节, 能否成功地将温度控制在需要的围关系到整个工作的成败。由于控制对象的多样性和复杂性, 导致采用的温控手段也具有多样性。采用PID 控制原理研制成适合用于小型电加热器的温度控制器。该控制器能够达到很好的控制效果, 若精心选择PID 的各种参数, 温度控制的精度可以达到0.05。温度控制的目的就是将电加热器的工作温度以一定的精度稳定在一定的围, 这就要求根据电加热器工作时的实际情况(如产热量大小等) 采取一定的措施,来控制电加热器的加热程度。在温控系统中, 首先将需要控制的被测参数

8、温度由传感器转换成一定的信号后再与预先设定的值进行比较, 把比较得到的差值信号经过一定规律的计算后得到相应的控制值, 将控制量送给控制系统进行相应的控制, 不停地进行上述工作, 从而达到自动调节的目的。当控制对象的精确数学模型难以建立时, 比较成熟且广泛使用的控制方法是采用按差值信号的比例(Proportionality),积分(Integration)和微分(Differentiation)进行计算控制量的方法, 即PID 算法。 1 硬件系统设计1.1 系统总体框图系统总体设计思路为:当系统上电后,数码管会显示当前的温度,然后等待按键输入设定值,设定完毕后,系统开始温度自动控制过程,如果当

9、前温度高于设定温度,系统会断开光耦器件与可控硅使水温冷却,如果当前温度低于设定温度,若低于2度以上,系统会采取全加热的方式,如果温差小于2度,则采用PID算法进行控制加热。定时器0每半秒钟会进行一次温度采样然后与设定值进行比较,比较出来的值将会决定定时器1控制的可控硅器件的通断时间长短,从而实现对温度的精确控制。系统的总体框图如图1.1所示,具体连接电路如图1.2所示。主控制器单片机STC89C52双向可控硅加热器温度显示时钟振荡与复位电路温度传感器DS18B20水温设置图1.1 系统框图图1.2 总体电路1.2 单片机系统随着集成电路技术的发展,单片微型计算机(单片机)的功能也不断增强,许多

10、高性能的新型机种不断涌现出来。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中广泛应用的器件,在工业生产中成为必不可少的器件,尤其是在日常生活中发挥的作用也越来越大。1.2.1单片机STC89C52STC89C52是一种高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。STC89C52使用经典的MCS-51核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Fl

11、ash,512字节RAM, 32 位I/O 口线,看门狗定时器,置4KB EEPROM,MAX810复位电路,3个16 位 定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。STC89C52的主要特性如下:1. 增强型8051 单片机,6 时钟/机器

12、周期和12 时钟/机器周期可以任意 选择,指令代码完全兼容传统8051;2. 工作电压:5.5V3.3V(5V 单片机)/3.8V2.0V(3V 单片机);3. 工作频率围:040MHz,相当于普通8051 的080MHz,实际工作 频率可达48MHz;4. 用户应用程序空间为8K 字节;5. 片上集成512 字节RAM;6. 通用I/O 口(32 个),复位后为:P1/P2/P3/P4 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻;7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无 需专用仿真器,可通

13、过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片;8. 具有EEPROM 功能;9. 具有看门狗功能;10. 共3 个16 位定时器/计数器。即定时器T0、T1、T2;11. 外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒;12. 通用异步串行口(UART),还可用定时器软件实现多个UART;13. 工作温度围:-40+85(工业级)/075(商业级)。1.3数字温度传感器DS18B201.3.1单线数字温度计DSl8B20 介绍 DS18B20 数字温度计提供9 位(二进制)温度读数指示器件的温度信息

14、经过单线接口送 入DSl8B20 或从 DSl8B20 送出 因此从主机CPU 到DSl8B20 仅需一条线(和地线) DSl8B20 的电源可以由数据线本身提供而不需要外部电源因为每一个DSl820 在出厂时已经给定了唯一的序号因此任意多个DSl8B20 可以存放在同一条单线总线上这允许在许多不同的地方放置温度敏感器件DSl8B20 的测量围从-55 到+125 增量值为0. 5 可在l s(典型值)把温度变换成数字每一个DSl8B20 包括一个唯一的64 位长的序号该序号值存放在DSl8B20 部的ROM(只读存贮器)中开始8 位是产品类型编码(DS l 8B20 编码均为10H ) 接着

15、的48位是每个器件唯一的序号 最后8 位是前面56 位的CRC(循环冗余校验)码DSl8B20 中还有用于贮 存测得的温度值的两个8 位存贮器RAM 编号为0 号和1 号存贮器存放温度值的符号 如果温度为负( )则1 号存贮器8 位全为1 否则全为0 0 号存贮器用于存放温度值的补码 LSB(最低位) 的 1 表示0.5 将存贮器中的二进制数求补再转换成十进制数并除以2 就得到被测温度值(-55 125度) 。1.3.2 DSl8B20 工作过程与时序 DSl8B20 工作过程中的协议如下 :初始化RoM操作命令存储器操作命令处理数据 (1)初始化 单总线上的所有处理均从初始化开始 (2)RO

16、M操作指令 总线主机检测到DSl820 的存在便可以发出ROM操作命令之一指令 代码 ReadROM (读R OM ) 33H Match ROM (匹配ROM) 55H SkipROM (跳过ROM CCH Search ROM( 搜索R OM ) F0 H Alarm search( 告警搜索) ECH(3)存储器操作命令 指令 代码 Write Scratchpad( 写暂存存储器) 4EH Read Scratchpad( 读暂存存储器) BEH Copy Scratchpad( 复制暂存存储器) 48H Convert Temp erature(温度变换) 44H Recall EP

17、ROM (重新调出) B8H Read Power supply (读电源) B4H (4)时序 主机使用时间隙(tim e slots) 来读写DSl820 的数据位和写命令字的位 。初始化 主机总线在开始时刻发送一复位脉冲(最短为480S 的低电平信号) 接着在下一时刻释放总线并进入接收状态DSl820 在检测到总线的上升沿之后等待15 -6 0u s 接着DS18B20在t2 时刻发出存在脉冲(低电平持续60-240 S) .1.3.3 DS18B20连接图DS18B20的连接电路如图1.3所示。图1.3 DS18B20连接图1.4 温度显示部分温度显示部分采用4位共阳数码管来显示,位选

18、端采用4个PNP型三极管9012来驱动。数码管前两位显示温度,后两位显示摄氏度符号。具体连接电路如图1.4所示:图1.4 温度显示部分1.5 温度设定部分温度设定部分采用四个独立按键来完成,按键S0负责进入设定部分,S1和S2分别为温度加和温度减,按键S3为切换到显示当前温度。独立按键的工作原理比较简单,其具体连接图如图1.5所示。图1.5 按键连接图1.6 光电耦合器件1.6.1光电耦合器件简介光电耦合器件(简称光耦)是把发光器件(如发光二极管)和光敏器件(如光敏三极管)组装在一起,通过光线实现耦合构成电光和光电的转换器件。光电耦合器分为很多种类,常用的有三极管型光电耦合器。光电耦合器之所以

19、在传输信号的同时能有效地抑制尖脉冲和各种杂讯干扰,使通道上的信号杂讯比大为提高,主要有以下几方面的原因: (1)光电耦合器的输入阻抗很小,只有几百欧姆,而干扰源的阻抗较大,通常为105106。据分压原理可知,即使干扰电压的幅度较大,但馈送到光电耦合器输入端的杂讯电压会很小,只能形成很微弱的电流,由于没有足够的能量而不能使二极体发光,从而被抑制掉了。 光电耦合器的输入回路与输出回路之间没有电气联系,也没有共地;之间的分布电容极小,而绝缘电阻又很大,因此回路一边的各种干扰杂讯都很难通过光电耦合器馈送到另一边去,避免了共阻抗耦合的干扰信号的产生。 (2)光电耦合器可起到很好的安全保障作用,即使当外部

20、设备出现故障,甚至输入信号线短接时,也不会损坏仪表。因为光耦合器件的输入回路和输出回路之间可以承受几千伏的高压。 (3)光电耦合器的回应速度极快,其响应延迟时间只有10S左右,适于对响应速度要求很高的场合。 1.6.2 光电隔离技术的应用 (1)微机介面电路中的光电隔离 微机有多个输入端,接收来自远处现场设备传来的状态信号,微机对这些信号处理后,输出各种控制信号去执行相应的操作。在现场环境较恶劣时,会存在较大的杂讯干扰,若这些干扰随输入信号一起进入微机系统,会使控制准确性降低,产生误动作。因而,可在微机的输入和输出端,用光耦作介面,对信号与杂讯进行隔离。(2)功率驱动电路中的光电隔离 在微机控

21、制系统中,大量应用的是开关量的控制,这些开关量一般经过微机的IO输出,而IO的驱动能力有限,一般不足以驱动一些点磁执行器件,需加接驱动介面电路,为避免微机受到干扰,须采取隔离措施。如可控硅所在的主电路一般是交流强电回路,电压较高,电流较大,不易与微机直接相连,可应用光耦合器将微机控制信号与可控硅触发电路进行隔离。 3)远距离的隔离传送 在电脑应用系统中,由于测控系统与被测和被控设备之间不可避免地要进行长线传输,信号在传输过程中很易受到干扰,导致传输信号发生畸变或失真;另外,在通过较长电缆连接的相距较远的设备之间,常因设备间的地线电位差,导致地环路电流,对电路形成差模干扰电压。为确保长线传输的可

22、靠性,可采用光电耦合隔离措施,将2个电路的电气连接隔开,切断可能形成的环路,使他们相互独立,提高电路系统的抗干扰性能。若传输线较长,现场干扰严重,可通过两级光电耦合器将长线完全“浮置”起来。1.6.3 光耦器件MOC3040由于单片机是弱点,而电加热器是强电,所以用光耦合很好的解决了强弱电隔离的问题,在本设计中采用了一种比较常用的光耦器件MOC3040,其在本设计中的连接电路如图1.6所示:图1.6光耦合连接电路 1.7可控硅1.7.1可控硅简介可控硅分为单向的和双向的两种,符号也不同.单向可控硅有三个PN结,由最外层的P极和N极引出两个电极,分别称为阳极和阴极,由中间的P极引出一个控制极.

23、(1)单向可控硅单向可控硅的基本应用电路如图1.7所示。当Uak0时,若Ugk0时,若Ugk0,可控硅导通;当Uak0时,不论Ugk为何值,可控硅都处于关断状态,Iak=0。图1.7单向可控硅应用电路通过对单向可控硅的技术分析,可归纳出如下特点:1)可控硅的导通条件是在阳极A与阴极K之间加有正向电压情况下,在门极G与阴极K之间加上一个正向脉冲信号,形成门极电流,此电流将触发可控硅进入自锁的导通状态。2)门极G无法控制可控硅(2)双向可控硅双向可控硅相当于两个单向引脚多数是按T1、T2、G的顺序从左至右排列(电极引脚向下,面对有字符的一面时).加在控制极G上的触发脉冲的大小或时间改变时,就能改变

24、其导通电流的大小. 与单向可控硅的区别是,双向可控硅G极上触发脉冲的极性改变时,其导通方向就随着极性的变化而改变,从 而能够控制交流电负载.而单向可控硅经触发后只能从阳极向阴极单方向导通,所以可控硅有单双向之分. 电子制作中常用可控硅,单向的有MCR-100等,双向的有TLC336等可控硅的工作条件: 1. 可控硅承受反向阳极电压时,不管门极承受哪种电压,可控硅都处于关断状态。2. 可控硅承受正向阳极电压时,仅在门极承受正向电压的情况下可控硅才导通。 3. 可控硅在导通情况下,只要有一定的正向阳极电压,不论门极电压如何,可控硅保持导通,即可控硅导通后,门极失去作用。 4. 可控硅在导通情况下,

25、当主回路电压(或电流)减小到接近于零时,可控硅关断。注意可控硅是半控件,关断不由门极控制,而只当主电流接近零时才能关断。(3)双向可控硅在本设计中的电路连接图如图1.8所示。图1.8 可控硅连接电路2 PID算法2.1PID算法简介在过程控制中,按偏差的比例P(Proportional)、积分I(Integral)和微分D(Differential)进行控制的PID控制器是应用最为广泛的一种自动控制器。它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点 。数字PID算法分为置位式和增量式两种。当执行需要的不是控制量的绝对值,而是控制量的增量时,需要用PID的“增量算

26、法”。如图2.1所示:PID算法可控硅受控对象r +euuy-图2.1 增量式PID控制算法增量式PID控制算法可以通过2-1式推导出。由2-1可以得到控制器的第k-1个采样时刻的输出值为式2-2:式2-1 式2-2将式5-1与式5-2相减并整理,就可以得到增量式PID控制算法公式为: 式2-3其中由式5-3可以看出,如果计算机控制系统采用恒定的采样周期T,一旦确定A、B、C,只要使用前后三次测量的偏差值,就可以由式5-3求出控制量。增量式PID控制算法与位置式PID算法5-1相比,计算量小得多,因此实际中得到广泛的应用。位置式PID控制算法也可以通过增量式控制算法推出递推计算公式: 式2-4

27、式2-4就是目前在计算机控制中广泛应用的数字递推PID控制算法。a.比例系数P对系统性能的影响:比例系数加大,使系统的动作灵敏,速度加快,稳态误差减小;P偏大,振荡次数加多,调节时间加长;P太大时,系统会趋于不稳定;P太小,又会使系统的动作缓慢。P可以选负数,这主要是由执行机构、传感器以与控制对象的特性来决定的。如果P得符号选择不当对象测量值就会离控制目标的设定值越来越远,如果出现这样的情况P的符号就一定要取反。b.积分控制I对系统性能的影响:积分作用使系统的稳定性下降,I小(积分作用强)会使系统不稳定,但能消除稳态误差,提高系统的控制精度。c.微分控制D对系统性能的影响:微分作用可以改善动态

28、特性,D偏大时,超调量较大,调节时间较短;D偏小时,超调量也较大,调节时间也较长;只有D合适,才能使超调量较小,减短调节时间。2.2PID算法的程序设计要编写一个已知算法的单片机程序,首先要考虑的就是数据的结构和存储方式了。因为它直接影响到系统的控制精度,以与PID算法的实现质量。本系统从一开始的设计思路就是尽可能高的提高系统的控制精度。要提高系统的控制精度,在计算过程中仅取整数或定点小数是不够的,所以本设计采用三字节浮点数运算。对于STC89C52单片机而言,有足够的存去存储和处理这些数据。另外,为了使程序的参数修改方便,更易于应用到其他PID控制系统中去,在一开始的参数赋值程序中,参数是以

29、十进制BCD码浮点数存储的,参数赋值完成后,紧接着就是对参数进行二进制浮点数的归一化处理。这些工作在系统启动后迅速就完成了,之后PID控制器只进行PID核心控制算法的计算。PID算法的程序框图如图2.2 所示算法。由于本设计中主要用到增量式PID控制算法,所以在此我们只对增量式PID算法的程序实现做介绍。增量式PID算式为:式2-5设则有 -图2.2 PID增量式程序流程图2.3PID算法参数整定方法三个基本参数Kp、Ki、Kd在实际控制中的作用:比例调节作用:是按比例反映系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差,属于“即时”型调节控制。比例作用大,可以加快调节,减

30、少误差,但是过大的比例,使系统的稳定性下降甚至造成系统的不稳定。积分调节作用:使系统消除静态误差,提高无误差度。因为有误差,积分调节就进行,直至无误差,积分调节停止,积分调节输出一常值,属于“历史积累”型调节控制。积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。微分调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差的变化趋势,因此能产生超前的控制作用,在偏差还没有形成之前,以被微分调节作用消除,因此属于“超前或未来”型调节控制。因此

31、,可以改善系统的动态性能。在微分时间选择合适的情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反映的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。PID控制器的参数整定是控制系统设计的核心容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接使用,还必须通过工程实际

32、进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的工程整定方法,主要有临界比较法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。现在一般采用的是临界比较法。PID参数的设定是靠经验与工艺的熟悉,参考测量值跟踪与设定值曲线,从而调整P/I/D的大小。1.PID调试一般原则a.在输出不振荡时,增大比例增益P。b.在输出不振荡时,减小积分时间常数Ti。c.在输出不振荡时,增

33、大微分时间常数Td。2.数据调试的一般步骤a.确定比例增益P确定比例增益P时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0,使PID为纯比例调节。输入设定为系统允许的最大值的60%70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值得60%70%。比例增益P调试完成。b.确定积分时间常数Ti比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后再反过来,逐渐加大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前

34、值得150%180%。积分时间常数Ti调试完成。c.确定积分时间常数Td积分时间常数Td一般不用设定,为0即可,若要设定,与确定P和Ti的方法一样,取不振荡时的30%。d.系统空载,带载联调,再对PID参数进行微调,直至满足要求。3.PID参数调节中与到的问题与解决办法(1)迅速达到目标值,但是冲击很大:a.比例系统太大,致使在未达到设定值前调节比例过高;b.微分系数过小,致使对象反应不敏感;(2)经常打不到目标值,小与目标值较多a.比例系数过小,加速比例不够;b.积分系数过小,对恒偏差补偿不足; (3)基本上能够在控制目标上,但上下偏差偏大,经常波动a.微分系数过小,对即时变化反应不够快,反

35、应措施不力;b.积分系数过大,使微分反应被钝化;c.设定的基本定时周期过短,调节参数还没有来得与传递出去; (4)受工作环境影响较大,在稍有变动时就会引起温度的波动a.微分系数过小,对即时变化反应不够快,不能即时反映;b.设定的基本定时周期过长,不能与时得到修正;3 软件设计3.1 PID控制流程将设定值与测量值分别传送到PID控制器,经PID计算处理,计算出控制交流通过脉冲数的定时器1的定时值,将该定时值送入定时器,温度值将趋于设定的温度值。具体流程图如图3.1所示。图3.1 PID控制流程图3.2系统软件设计总流程图 本设计的软件设计流程是,当系统上电后,数码管会显示当前的温度,然后等待按

36、键输入设定值,设定完毕后,系统开始温度自动控制过程,如果当前温度高于设定温度,系统会断开光耦器件与可控硅使水温冷却,如果当前温度低于设定温度,若低于2度以上,系统会采取全加热的方式,如果温差小于2度,则采用PID算法进行控制加热。定时器0每半秒钟会进行一次温度采样然后与设定值进行比较,比较出来的值将会决定定时器1控制的光耦器件的通断时间长短,从而实现对温度的精确控制。具体流程图如图3.1所示。T0,T1初始化开始读温度设置值启动后采集温度温度采集标志位置1显示温度查询采集标志是否等于1存控制值PID算法采集标志位置0结束NY读温度值关T0中断T0中断写T1常数采集标志置1存温度值开T0中断置P

37、3.4=1启动T1关T1中断T1中断开T1中断P3.4=0图3.2流程图4 结语本次设计基本上实现了PID算法温度自动控制的功能,基本完成了设计要求,不足之处是没有降温控制系统,另外PID的控制也不是很精确。在本次设计过程中,我在专业理论知识上有了很大的收获,比如PID算法,比如光耦器件以与可控硅的基本知识,另外动手实践能力也得到了很大的提升,另外软件编写的能力也有很大的进步。我一定会好好总结并且铭记在这次毕设中遇到的问题以与得到的经验,从而为以后的学习和工作打下一个扎实的基础。参考文献1金以慧等.过程控制M.:清华大学,20022康华光.电子技术基础M.:高等教育,20003炳和.计算机控制

38、系统基础M.:航空航天大学,20014何克忠.计算机控制系统M.:清华大学,20015友德等.单片微机MCS-51用户手册M. :复旦大学, 19906自美. 电子线路设计(第二版)M. :华中理工大学, 20007 增圻.智能控制理论与技术M.:清华大学, 20048 诸静.模糊控制原理与应用M.:机械工业, 19959Allan R.Hambley.Electronics 2nd ed.New Jersey:Prentice Hall Inc, 200010David Johns,Ken Martin.Analog Integrated Circuit Design.New York:Jo

39、hn Wiley&Sons Inc, 1997致在历时大约3个月后,在我的导师世强教授以与其他各科老师的帮助下,我终于完成了自己的毕业设计任务。经过了这次设计过程,我不仅专业理论知识得到了巩固,动手实践能力和设计能力也得到了很大的提升,而且于我而言,最弥足珍贵的是我从我的导师以与其他老师身上学到了很多知识以外的东西,比如他们对于科学问题的探索精神,对于工作的奉献精神等等。我相信这些美好的品质都将伴随我一生的学习生活中,并且让我受益无穷。因此,在这毕设将要结束以与我的大学生涯也将画上一个句号的时刻,我要重的感,感这四年来给于我帮助与关怀的学校领导,老师,和同学朋友,我会永远记住这段美好的岁月,并

40、在以后的工作中努力上进,不辜负老师和同学们的期望,做一个成功的人,一个对社会有用的人。!附录本设计程序如下:#include #include #define uchar unsigned char#define uint unsigned intsbit DS=P37;sbit gou=P33;sbit key1=P20;sbit key2=P21;sbit key3=P22;sbit key4=P23;void display(uchar wei,uchar duan);void dis_temp(uint t);uchar code duma=0xc0,0xf9,0xa4,0xb0,0x

41、99,0x92,0x82,0xf8,0x80,0x90,0x9c,0xc6;uchar code wema=0xfe,0xfd,0xfb,0xf7; int temp;uint settemp=100;uchar data1,kp,ki,kd;uint t,hightime,count;int e1,e2,e3,duk,uk; /*延时子程序10ms*/ void delay10ms() uchar a,b;for(a=10;a0;a-)for(b=30;b0;b-);void delay1()uchar a,b;for(a=30;a0;a-)for(b=30;b0;b-); /*延时子程序,

42、空5个指令*/ void delay(void)_nop_();_nop_();_nop_();_nop_();_nop_();/*延时子程序*/ void delayb(uint count) uint i;while(count)i=200;while(i0)i-;count-;/*DS18B20初始化*/void dsreset(void) uint i; DS=0;i=103;while(i0)i-;DS=1;i=4;while(i0)i-;/*读一位数据值*/bit tmpreadbit(void) uint i;bit dat;DS=0;i+; /i+,小延时一下DS=1;i+;i

43、+;dat=DS;i=8;while(i0)i-;return (dat);/*读一个字节数据*/uchar tmpread(void) uchar i,j,dat;dat=0;for(i=1;i=8;i+)j=tmpreadbit();dat=(j1); /读出的数据最低位在最前面,这样刚好/一个字节在DAT里return(dat); /将一个字节数据返回/*写一个字节到DS18B20里*/void tmpwritebyte(uchar dat) uint i;uchar j;bit testb;for(j=1;j1;if(testb) / 写1部分DS=0;i+;i+;DS=1;i=8;w

44、hile(i0)i-;elseDS=0; /写0部分i=8;while(i0)i-;DS=1;i+;i+;/*获取温度并转化命令*/void tmpchange(void) dsreset(); /初始化DS18B20delayb(1); /延时tmpwritebyte(0xcc); /跳过序列号命令tmpwritebyte(0x44); /发送温度转换命令/*读取DS18B20中温度寄存器数据*/uint get_temp() float ftemp;uchar a,b;dsreset();delayb(1);tmpwritebyte(0xcc); tmpwritebyte(0xbe); /

45、发送读取数据命令a=tmpread(); /连续读两个字节数据,读低8位b=tmpread(); /读高8位temp=b;temp=8; /temp高8位和低8位交换,将交换过的值重新赋给temp。不懂的看C语言基础书temp=temp|a; /两字节合成一个字ftemp=temp*0.0625; /得到真实十进制温度值,因为DS18B20可以精确到0.0625度 /所以读回数据的最低位代表的是0.0625度 temp=ftemp*10+0.5; /放大十倍,这样做的目的将小数点后第一位也转换为可显示数字,同时进行一个四舍五入操作。return temp; /返回温度值/*定时器0初始化程序*

46、/void init_time0(void)TMOD |= 0x01; /使用模式1,16位定时器,使用|符号可以在使用多个定时器时不受影响 TH0=(65536-50000)/256;TL0=(65536-50000)%256; EA=1; /总中断打开 ET0=1; /定时器T0允许中断 TR0=1; /定时器T0开始工作/*定时器1初始化程序*/void init_time1(void)TMOD |= 0x10; /使用模式1,16位定时器,使用|符号可以在使用多个定时器时不受影响 TH0=(65536-50000)/256;TL0=(65536-50000)%256; EA=1; /总

47、中断打开 ET1=1; /定时器T1允许中断 /TR1=1; /定时器T1开始工作void keysan() if(key1=0)delayb(30);if(key1=0)while(1)dis_temp(settemp);if(key2=0)delayb(30);if(key2=0)break;if(key3=0)delayb(50);if(key3=0)settemp+=10;if(key4=0)delayb(50);if(key4=0)settemp-=10;/*数码管显示子程序*/void display(uchar wei,uchar duan)P0=dumaduan; /段码P1=

48、wemawei;/*将温度值处理成能直接显示在数码管上面的10进制数*/void dis_temp(uint t)uchar i;int t1;t1=t;i=t1%1000/100;/显示十位温度。display(0,i);delay1();i=t1%100/10;/显示个位温度。display(1,i);delay1();display(2,10);/显示温度摄氏符号。delay1();display(3,11);delay1();/* PID算法系数装载*/void Pid_init()hightime= 0;e1 = 0;e2 = 0;e3 = 0;kp = 10;ki = 5;kd =

49、 5;void pid_ys()if(temp20) / 如果相差2度gou=0;/全速加热else /否则运行PID算法进行平滑加热 e1 = settemp-temp;duk=(kp*(e1-e2)+ki*e1+kd*(e1-e2*2+e3)/10;uk = uk+duk;if(uk100)uk = 100;else if(uk-100)uk = -100;if(uk=settemp)/如果实际温度大于设定值/*if(temp-settemp0) /只要实际温度与设定值有偏差hightime=0; /停止加热else /其他情况运行PID算法,但参数与前面的刚好相反e1 = temp-se

50、ttemp;duk=(kp*(e1-e2)+ki*e1+kd*(e1-e2*2+e3)/10;uk = uk+duk;if(uk100)uk = 100;else if(uk-100)uk = -100;if(uk0)hightime=100-(-uk);elsehightime=100-uk;e3 = e2;e2 = e1;*/gou=1;/*主函数*/void main() init_time0();init_time1();while(1) tmpchange(); /温度转换 dis_temp(get_temp(); /显示函数keysan();pid_ys();/*定时器0定时500ms采集一次温度*/void time0(void) interrupt 1 using 1uchar t0=0;t0+;if(t0=10)get_temp();t0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;/*定时器1一次定时长为50ms*/void time1(void) interrupt 3 using 1uchar t1=0;t1+;if(t1=hightime) gou=1;t1=0;elsegou=0;TH1=(65536-50000)/256;TL1=(65536-50000)%256;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!