水温自动控制系统设计_第1页
水温自动控制系统设计_第2页
水温自动控制系统设计_第3页
水温自动控制系统设计_第4页
水温自动控制系统设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河北大学工商学院 2012 届本科生毕业论文(设计)水温自动控制系统设计摘要 水温自动控制系统在工业及日常生活中应用广泛,在生产中发挥着重要作用。实现水温控制的方法很多,如单片机控制、PLC 控制等等。而其中用单片机控制实现的水温控制系统,具有可靠性高、价格低、简单易实现等多种优点。单片机用于工业控制是近年来发展非常迅速的领域,现在许多自动化的生产车间里,都是靠单片机来实现的。温度是工业控制对象主要被控参数之一,在温度控制中,由于受到温度被控对象特性(如惯性大、滞后大、非线性等)的影响,使得控制性能很难提高,有些工艺过程其温度控制的好坏直接影响着产品的质量,因此设计一种较为理想的温度控制系统是

2、非常有价值的。为了实现高精度的水温测量和控制,本文介绍了一种以 Atmel 公司的低功耗高性能CMOS 8 位单片机为核心,以 PID 算法控制以及 PID 参数整定相结合的方法来实现的水温控制系统,其硬件电路包括温度采集、温度控制、温度显示、键盘输入以及 RS232 接口等电路。该系统可实现对温度的测量,并能根据设定值对温度进行调节,实现控温的目的。关键词:AT89S52;温度控制;PT1000;PID河北大学工商学院 2012 届本科生毕业论文(设计)Design of Temperature Automatic Control SystemABSTRACTThe temperature

3、is one of the mainly charged parameters which are industrial control targets. It is difficult to enhance the control performance due to the characteristics of the temperature charged object. Such as inertia, hysteresis and non-linear, etcIts temperature control process will have a direct impact on t

4、he quality of the product in some technological process. Therefore it is absolute valuable to design a ideal temperature control system.In order to realize the high accuracy survey and control of water temperature. Systematic core is AT89S52, which is a low-power loss, high-performance 8-bit MCU of

5、Atmel Company. The system unifies PID control algorithm and PID parameter tuning to control the water temperature. Its hardware circuit also includes temperature gathering, temperature control and temperature display, keyboard input and RS232 interfaces. The system can realize to survey the water te

6、mperature, and it can adjust the temperature according to the setting value.Keywords:AT89S52; temperature control; PT1000; PID河北大学工商学院 2012 届本科生毕业论文(设计)目 录1 引言.11.1 课题背景 .11.2 国内外研究现状 .11.3 研究方法 .12 系统方案.22.1 水温控制系统设计任务和要求 .22.2 水温控制系统 .22.2.1 方案选择 .22.2.2 温度控制系统算法分析 .43 系统硬件设计.93.1 总体设计框图及说明 .93.2

7、外部电路设计 .93.2.1 温度采集电路 .93.2.2 温度控制电路 .113.3 单片机系统电路设计 .113.3.1 A/D 转换电路.113.3.2 串口通讯部分电路 .143.3.3 数码显示电路 .164 系统软件设计.174.1 程序框架结构 .17河北大学工商学院 2012 届本科生毕业论文(设计)4.2 程序流程图及部分程序 .174.2.1 主程序模块 .174.2.2 系统初始化 .194.2.3 按键程序 .194.2.4 A/D 采样数据处理.214.2.5 PID 计算.244.2.6 继电器控制 .255 系统安装调试与测试.275.1 串口调试 .275.2

8、继电器测试 .275.3 温度采集与测试 .276 结论.28参考文献.29致 谢.30河北大学工商学院 2012 届本科生毕业论文(设计)11 引言1.1 课题背景温度控制是无论是从工业生产过程中,还是在日常生活中都起着至关重要的作用,过低的温度或者过高的温度都会使水资源失去应用的作用,从而造成水资源的巨大浪费。特别是在当前全球水资源极度匮乏的情况下,我们就更应该掌握好对水温的控制,在环境恶劣或温度较高等场合下,为了保证生产过程正常安全地进行,提高产品的质量和数量,及减轻工人的劳动强度、节约能源,要求对加热炉炉温进行测示、显示、控制,使之达到工艺标准,以单片机为核心设计的水温控制系统,可以同

9、时采集多个数据,并将数据通过通讯口送至上位机进行显示和控制。1.2 国内外研究现状目前,国外温度控制系统及仪表正朝着高精度智能化、小型化等方面快速发展。 温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同国外的日本、美国、德国等先进国家相比,仍然有着较大的差距。目前,我国在这方面总体技术水平处于 20 世纪 80 年代中后期水平。成熟产品主要以“点位”控制及常规的 PID 控制器为主,它只能适应一般温度系统控制,难于控制滞后复杂时变温度系统控制,而且适应于较高控制场合的智能化、自适应控制仪表国内技术还不十分成熟,形成商品化并广泛应用的控制仪

10、表较少。现在,我国在温度等控制仪表业与国外还有着一定的差距。随着嵌入式系统开发技术的快速发展及其在各个领域的广泛应用,人们对电子产品的小型化和智能化要求越来越高,作为高新技术之一的单片机以其体积小、价格低、可靠性高、适用范围大以及本身的指令系统等诸多优势,在各个领域、各个行业都得到了广泛应用。1.3 研究方法本文主要介绍单片机温度控制系统的设计过程,其中涉及系统结构设计、元器件的选取和控制算法的选择、程序的调试和系统参数的整定。以 AT89S52 为 CPU,温度信号由Pt1000 和电压放大电路提供。电压放大电路用超低温漂移高精度运算放大器 OP07 将温度-电压信号进行放大,用单片机控制

11、SSR 固态继电器的通断时间以控制水温,系统控制对象为 1 升净水,容器为搪瓷器皿。水温可以在环境温度降低时实现自动控制,以保持设定的温度基本不变,具有较好的快速性与较小的超调。河北大学工商学院 2012 届本科生毕业论文(设计)22 系统方案2.1 水温控制系统设计任务和要求该系统设计任务:设计一个水温自动控制系统,控制对象为 1 升净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。系统设计具体要求为:温度设定范围为 4090;环境温度降低时温度控制的静态误差1;采用适当的控制方法,当设定温度突变(由 40提高到 60)时,减小

12、系统的调节时间和超调量;用十进制数码管显示水的实际温度。2.2 水温控制系统水温控制系统是一个过程控制系统,组成框图如图 2-1 所示,由控制器、执行器、被控对象及反馈作用的测量变送组成。图 2-1 控制系统框图除了以上的组成元件以外,还需要选择合适的算法以实现所要求的控制精度,以下我会对关键的元件以及电路的确定进行详细的分析。因为方案选取的好坏将直接影响着整个系统实现效果的优劣。2.2.1 方案选择方案一:采用 8031 作为控制器,使用最为普遍的器件 ADC0804 作模数转换,控制上使用对电阻丝加电使其升温和开动风扇使其降温。此方案简易可行,器件的价格便宜,但 8031 内部没有程序存储

13、器,需要扩展,增加了电路的复杂性。方案二:此方案采用 89S52 单片机实现,此单片机软件编程自由度大,可用编程实河北大学工商学院 2012 届本科生毕业论文(设计)3现各种控制算法和逻辑控制。控制电路部分采用 SSR 固态继电器控制电炉丝的通断此方案电路简单并且可以满足题目中的各项要求的精度。将两个方案相比较后可得出一个结论,采用 Atmel 单片机来实现本题目,无论是从结构上,还是从工作量上都有很大的优势,所以我最后选择使用 AT89S52 作为该控制系统的核心。根据水的温度变化慢,并且控制精度不易掌握的特点,我们设计了以 AT89S52单片机为检测控制中心的水箱温度自动控制系统,总体框图

14、如图 2-2 所示。 图 2-2 控制器设计总体框图温度控制采用改进的 PID 数字控制算法,数码显示采用 3 位 LED 静态显示。该设计结构简单,控制算法新颖,控制精度高,有较强的通用性。 图 2-3 为整个水温控制系统的原理图,分别由测温电路,继电器控制电路,串口通讯电路,LED 显示电路等部分组成。河北大学工商学院 2012 届本科生毕业论文(设计)4图 2-3 水温控制电路原理图2.2.2 温度控制系统算法分析系统算法控制采用工业上常用的位置型 PID 数字控制,并且结合特定的系统加以算法的改进,形成了变速积分 PID积分分离 PID 控制相结合的自动识别的控制算法。该方法不仅大大减

15、小了超调量,且有效地克服了积分饱和的影响,使控制精度大为提高。长期以来国内外科技工作者对温度控制器进行了广泛深入的研究,研究了大批温度控制器,如性能成熟应用广泛的 PID 调节器、智能控制 PID 调节器、自适应控制等。此处主要对一些控制器特性进行分析以便选择适合的控制方法应用于改造。常用的控制算法有以下几种: 1.经典的比例积分微分控制算法; 2.根据动态系统的优化理论得到的自适应控制和最优控制方法;3.根据模糊集合理论得到模糊控制算法。自适应控制、最优控制方法以及模糊控制算法是建立在精确的数学模型基础上的,在实时过程控制中,由于控制对象的精确数学模型难于建立,系统参数经常发生变化,运用控制

16、理论进行综合分析要花很大代价。同时由于所得到的数学模型过于复杂难于实现。在实时控制系统中要求信号的控制信号的给出要及时,所以在目前的过程控制系统中较少采用自适应控制、最优控制方法和模糊控制算法。目前在过程控制中应用较多的河北大学工商学院 2012 届本科生毕业论文(设计)5还是 PI 控制算法、PD 控制算法和 PID 控制算法。水温控制系统的控制对象具有热储存能力大,惯性较大的特点,水在容器内的流动或热量传递都存在一定的阻力,因此可以归于具有纯滞后的一阶惯性环节。对于大惯性系统的过渡过程控制,一般可采用以下几种控制方案:1.开关量控制 这种方法通过比较给定值与被控参数的偏差来控制输出的状态,

17、开通或关断,因此控制过程十分简单,也容易实现;但由于输出控制量只有两种状态,使被控参数在两个方向上变化的速率均为最大,因此容易引起反馈回路振荡,控制精度不高;这种控制方案一般在大惯性系统对控制精度和动态特性要求不高的情况下采用。如图 2-4 所示。 tyty图 2-4 开关量控制2.比例控制(P 控制) 比例控制的输出与偏差成比例关系,当负荷变化时,抗干扰能力强,过渡过程时间短,但过程终了存在余差;适用于控制通道滞后较小、负荷变化不大、允许被控量在一定范围内变化的系统。如图 2-3 所示。3.比例积分控制(PI 控制) 控制器的输出与偏差的积分成比例,积分的作用使过渡过程结束时无余差,但降低了

18、系统的稳定性;PI 控制适用于滞后较小,负荷变化不大,被控量不允许有余差的控制系统。如图 2-4 所示。4.比例积分加微分控制(PID 控制) 微分的作用使控制器的输出与偏差变化的速度成比例,它对克服对象的容量滞后有显著的效果;在比例基础上加入微分作用,使稳定性提高,再加上积分作用,可以消除余差;PID 控制适用于负荷变化大、容量滞后较大、控制品质要求又很高的控制系统。如图 2-5 所示。河北大学工商学院 2012 届本科生毕业论文(设计)6 tyty图 2-5 PID 控制结合本设计任务与要求,由于水温系统的传递函数事先难以精确获得,因而很难判断哪一种控制方法能够满足系统对控制品质的要求;但

19、从以上对控制方法的分析来看,PID 控制方法最适合本例采用:一方面,由于可以采用单片机实现控制过程,无论哪一种控制方法都不会增加系统硬件成本,而只需对软件作相应改变即可实现不同的控制方案;另一方面,采用 PID 的控制方式可以最大限度地满足系统对诸如控制精度、调节时间和超调量等控制品质的要求。由图 2-6 可知 PID 调节器是一种线性调节器,这种调节器是将设定值 w 与实际输出值 y 进行比较构成偏差 (2-1)ywe并将其比例、积分、微分通过线性组合构成控制量。其动态方程为: (2-2) dttdeKdtteKteKtudip)()()()(其中-为调节器的比例放大系数pK-为积分时间常数

20、iK-为微分时间常数dKPID 调节器的离散化表达式为; (2-3)1()()()()(kekeTKkTeKkeKkudip其增量表达形式为:)1()()(kukuku (2-4) )2() 1(2)(/)()1()(kekekeTKkTeKkekeKdip河北大学工商学院 2012 届本科生毕业论文(设计)7其中 T 为采样周期。图 2-6 模拟 PID 控制温度 PID 调节器有三个可设定参数,即比例放大系数、积分时间常数、微分时pKiK间常数。dK比例调节的作用是使调节过程趋于稳定,但会产生稳态误差;积分作用可消除被调量的稳态误差,但可能会使系统振荡甚至使系统不稳定;微分作用能有效的减小

21、动态偏差。图 2-7 中,初始水温为 26。实现思想:Ui(k)为第 k 次采样温度值,Ur 为设定值。e(k) 使用 PD 算法;e(k) 使用变速积分 PID 算法。图 2-7 温度控制曲线图河北大学工商学院 2012 届本科生毕业论文(设计)8该控制系统是把输出量检测出来,经过物理量的转换,再反馈到输入端去与给定量进行比较(综合) ,并利用控制器形成的控制信号通过执行机构 SSR 对控制对象进行控制,抑制内部或外部扰动对输出量的影响,减小输出量的误差,达到控制目的。自动控制框图如图 2-8 所示,在此控制系统中单片机就相当于常规控制系统中的运算器控制器,它对过程变量的实测值和设定位之间的

22、误差信号进行运算然后给出控制信息。单片机的运算规则称为控制法则或控制算法。图 2-8 自动控制框图河北大学工商学院 2012 届本科生毕业论文(设计)93 系统硬件设计3.1 总体设计框图及说明本系统是一个简单的单回路控制系统。为了实现温度的自动测量和控制,根据系统总体方案,系统由单片机基本系统、前向通道、后向通道和人机对话通道等 4 个主要功能模块组成。单片机是整个控制系统的核心,AT89S52 可以提供系统控制所需的 I/O 口、中断、定时及存放中间结果的 RAM 电路;前向通道是信息采集的通道,主要由传感器、信号放大、A/D 转换等电路组成;由于水温变化是一个相对缓慢的过程,因此前向通道

23、中没有使用采样保持电路;信号的滤波可由软件实现,并可以简化硬件、降低硬件成本。键盘设定:用于温度设定,共三个按键。数据采样:将由传感器及相关电路采集到的温度转为电压信号,经 A/D 转换后,送入 AT89S52 相应接口中,换算成温度值,用于控制和显示。数据显示:采用了共阴极数码管 LED 进行显示设置温度与测量温度。串行口传输:将采样温度值,上传至 PC 机,可利用 PC 机的端口下载程序。继电器/热电管:通过三极管控制继电器的开关来完成对热电炉的功率控制。图 3-1 系统框图3.2 外部电路设计3.2.1 温度采集电路本系统运放采用高精度单片运算放大器 OP07,此运放具有很低的输入失调电

24、压和漂移。OP07 的优良特性使它特别适合作前级放大器,放大微弱信号。使用 OP07 一般不用考虑调零和频率问题就可以满足要求。河北大学工商学院 2012 届本科生毕业论文(设计)10主要特点:低输入失调电压:75uV(最大)低失调电压温漂:1.3uV/(最大)低失调电压时漂:1.5uV/月(最大)低噪声:0.6uV P-P(最大)宽输入电压范围:14V 宽电源电压范围:3V18V温度采集采用的温度传感器铂电阻 Pt1000,对于温度的精密测量而言,温度测量部分是整个系统设计的第一步。温度传感器的选择是这块电路的关键,它是直接影响整个系统的性能与效果的关键因素。这里采用的是精密级铂电阻温度传感

25、器 Pt1000,它的金属铂含量达 99. 9999%,因为铂电阻的物理和化学性能在高温和氧化介质中都很稳定、价格又便宜,常作为工业测量元件,以铂电阻温度计作基准器线性好,温度系数分散性小,在 0100 摄氏度时,最大非线性偏差小于 0.5 摄氏度,性能稳定,广泛应用于精密温度测量和标定。铂热电阻与温度关系式: (3-1)1 (20BtAtRRt其中:-温度为 t 摄氏度时的电阻; -温度为 0 摄氏度时的电阻;tR0RA、B-温度系数 A=3.94*102/;其中 B=-/;)( 710*84. 5T-任意温度。河北大学工商学院 2012 届本科生毕业论文(设计)11图 3-2 测温电路3.

26、2.2 温度控制电路此部分时通过控制继电器的通断从而控制电加热管(俗称“热得快” ) ,采用对加在电热管两端的电压进行通断的方式进行控制,以实现对水加热功率的调整,从而达到对水温控制的目的,即在闭环控制系统中对被控对象进行控制。此部分的继电器采用的是 SSR 继电器,即固态继电器。其工作原理为:固态继电器是一种无触点电子开关,主要由输入(控制)电路,驱动电路和输出(负载)电路三部分组成。固态继电器的输入电路是为输入控制信号提供一个回路,使之成为固态继电器的触发信号源。固态继电器的输入电路多数为直流输入,个别的为交流输入。固态继电器的输出电路是在触发信号的控制下,实现对固态继电器的通断切换。输出

27、电路主要由输出器件(芯片)和起瞬态抑制作用的吸收回路组成,固态继电器是一种全电子电路组合元件,它依靠半导体器件和电子元件的电、磁和光特性来完成隔离和继电切换功能。固态继电器与传统的电磁继电器相比,是一种没有机械、不含运动零部件的继电器,但具有与电磁继电器本质上相同的功能。图 3-3 加热棒控制电路3.3 单片机系统电路设计3.3.1 A/D 转换电路ADC0804 引脚及使用说明:ADC0804 是 CMOS 集成工艺制成的逐次比较型 A/D 转换器芯片。ADC0804 分辨率为 8位,转换时间为 100s,输出电压范围为 05V,在增加某些外部电路后,输入模拟电压可为5V。该芯片内有输出数据

28、锁存器,当与计算机连接时,转换电路的输出可以直河北大学工商学院 2012 届本科生毕业论文(设计)12接连接到 CPU 的数据总线上,而不再需要附加逻辑接口电路。1234567891011121314151617181920CSRDWRCLKININTRAGNDDGNDVCLKRDDDDDDDDIN+IN-REF/2VVVCC01234567ADC0804100s输出高阻CSRDWRINTR读数数据图 3-4 ADC0804 引脚图 图 3-5 ADC0804 控制信号的时序图ADC0804 引脚名称及意义如下:VIN+、VIN:ADC0804 的两模拟信号输入端,用以接收单极性、双极性和差模

29、输入信号。D7D0:A/D 转换器数据输出端,该输出端具有三态特性,能与微机总线相连接。AGND:模拟信号地。DGND:数字信号地。CLKIN:外电路提供时钟脉冲输入端。CLKR:内部时钟发生器外接电阻端,与 CLKIN 端配合,可由芯片自身产生时钟脉冲,其频率为 1/1.1RC。CS:片选信号输入端,低电平有效,一旦 CS 有效,就表明 A/D 转换器被选中,可启动工作。WR:写信号输入,接受微机系统或其他数字系统控制芯片的启动输入端,低电平有效,当 CS、WR 同时为低电平时,启动转换。RD:读信号输入,低电平有效,当 CS、RD 同为低电平时,可读取转换输出数据。INTR:转换结束输出信

30、号,低电平有效。输出低电平表示本次转换已经完成。该信号经常作为向微机系统发出的中断请求信号。在使用时我们应注意以下几点:(1)转换时序ADC0804 控制信号的时序图如图 3-5 所示,由图所示,各控制信号时序关系为:当CS 与 WR 同为低电平时,A/D 转换器启动,且在 WR 上升沿后 100S 模数转换完成,转换结果存入数据锁存器,同时 INTR 自动变为低电平,表示本次转换结束。如果 CS、RD 同时为低电平,则数据锁存器三态门打开,数据信号送出,而 RD 高电平到来后三态门处于河北大学工商学院 2012 届本科生毕业论文(设计)13高阻状态。(2)参考电压的调节在使用 A/D 转换器

31、时,为保证转换精度,要求输入电压满量程使用。如输入电压动态范围较小,则可调节参考电压 VREF,以确保小信号输入时 ADC0804 芯片 8 位的转换精度。(3)接地模数、数模转换电路中要特别注意到地线的正确连接,否则将会产生干扰,以致影响转换结果准确性。A/D、D/A 及取样保持芯片上都提供了独立的模拟地(AGND)和数字地(DGND) 。在线路设计中,一定要将所有器件的模拟地和数字地分别进行相连,然后将模拟地与数字地仅在一点上相连接。地线的正确连接方法如图 3-6 所示。图 3-6 正确的地线连接系统由微处理器、存储器和 A/D 转换器组成,它们之间通过数据总线(DBUS)和控制总线(CB

32、US)连接,系统信号采用总线传送方式。采集数据时,首先微处理器执行一条传送指令,在指令执行过程中,微处理器在控制总线的同时产生 CS1、WR1 低电平信号,A/D 转换器启动开始工作,ADC0804 经 100S后将输入模拟信号转换为数字信号并存于输出锁存器,在 INTR 端产生低电平表示转换结束,并通知微处理器可来取数。当微处理器通过总线查询到 INTR 为低电平时,立即执行输入指令,以产生 CS、RD2 低电平信号到 ADC0804 相应引脚,将数据取出并存入存储器中。整个数据采集过程中,微处理器有序地将执行若干指令完成。AD0804 的连接图如图3-7 所示河北大学工商学院 2012 届

33、本科生毕业论文(设计)14图 3-7 AD0804 连接图3.3.2 串口通讯部分电路系统设计要求控制系统能同 PC 联机通信,以利用 PC 图形处理能力打印显示温度曲线以及下载程序。由于 AT89S52 串行口电平和 PC 不一致,AT89S52 的 I/O 为 TTL 电平,PC 串行口为 RS232 电平利用单片机片内串行口外加逻辑电平转换电路组成 RS-232C 标准接口以实现系统相互通道的扩展,逻辑电平转换电路采用了一片专用芯片 MAX232,外加少量电容即可完成 TTL 到 RS-232 或 RS-232 到 TTL 的逻辑电平转换。表 3-1 RS-232C 引脚型号定义名称信号

34、方功能25 芯脚9 芯脚FRD保护地1TXD输出发送数据23RXD输入接收数据32RTS输出请求对方发送数据47CTS输入可向对方发送数据58DSR输入对方已经准备好接收数据66GND信号地75DCD输入对方已收到载波81DTR输出通知对方,本方可以接受数据204RJ输出对方送来的振铃指示信号229河北大学工商学院 2012 届本科生毕业论文(设计)15图 3-8 串口通讯电路UART 模块提供了一个全双工标准通信口,用于完成 AT89S52 与外设之间的串行通信。根据 RS-232 的标准,AT89S52 单片机是按照字节传输数据的。图 3-9 单片机连接电路单片机上的 P25 口接 S1,

35、P26 口接 S2,P27 口接 S3。S1:设置温度的十位数:09S2:设置温度的个位数:09S3:工作模式选择键,两种工作模式为:正常工作状态、温度重新设置。系统上电后,数码管全部显示为零,根据按 S1 次数,十位的数码管顺序增加。同样河北大学工商学院 2012 届本科生毕业论文(设计)16S2,也如此。按 S3 后,系统开始测温,并与采集的温度进行比较,通过软件来控制电炉的开关。3.3.3 数码显示电路数码管作为单片机系统中最常用的输出器件,在显示时可以由数字和少量字母组合完成输出功能的系统中应用十分方便。图 3-10 为一个四位共阴数码管,DIG0、DIG1、DIG2、DIG3 分别与

36、单片机的 P21、P22、P23、P24 相连,每一个都拥有一个共阴级的位选端。从而可以通过单片机选通所需显示的数码管。SegA-SegDp 口传输要显示的数据,利用其串/并转换功能,送入数码管显示。在此外接了一个 10K 的电阻来保护LED。图 3-10 数码管显示电路河北大学工商学院 2012 届本科生毕业论文(设计)174 系统软件设计4.1 程序框架结构整体的系统软件设计是由各个在系统里起着不同作用的模块整合在一起,从而实现系统所要实现的功能。本系统硬件接口如下:P1-AD;P00P07-LEDaLEDdp.;P25P27-S1S3;P20P23-COM1COM3;系统包括主控制程序,

37、A/D 采样数据处理程序,PID 算法程序,LED 显示及按键处理程序。结构框架图如图 4-1 所示。图 4-1 程序结构图主程序模块负责对子程序模块的调用进行管理,它主要负责初始化 IO 口;等待键盘的被按下,并调用相应的模块进行处理;在适当的时候接受 A/D 采样的数据,并与所设定的值进行比较,然后通过调用 PID 算法处理数据,处理后而控制继电器的通断,从而控制热电管达到水温控制的目的。河北大学工商学院 2012 届本科生毕业论文(设计)184.2 程序流程图及部分程序4.2.1 主程序模块由于模块化程序的设计,通过调用程序即可实现所用功能,主程序流程图如图 4-2所示。图 4-2 主程

38、序流程图主程序如下:int main(void) int KeyValue; status = temperature_set; System_Initial();PID_Initial();/PID 初始化while(1)河北大学工商学院 2012 届本科生毕业论文(设计)19 KeyValue = GetCh(); /键盘扫描、去抖动处理、取键值 key_value_process(KeyValue); /键值处理 if(status = temperature_control) display_AD_temperature(); /测量温度显示、PID 计算 if(Out0 x0255)

39、 K = 0.079; /确定温度系数 else K = 0.076; fT = adc_data * K; /换算成温度值/将温度值转换成十进制用于 LED 显示guiLED_Value0 = (int)fT/10; guiLED_Value1 = (int)fT%10; guiLED_Value2 = (int)(fT*10)%10;stPID.Proportion = 1; / 设置 PID 比例值stPID.Integral = 0.5; / 设置 PID 积分值stPID.Derivative = 0.0; / 设置 PID 微分值Out = 100*PIDCalc ( &s

40、tPID,(int)(fT*10) ); / PID 计算 图 4-5 是数据采样中断服务程序的流程图,此中断程序采用的是 2Hz 中断定时 0.5秒钟采样一次。河北大学工商学院 2012 届本科生毕业论文(设计)23图 4-5 数据采样的中断程序流程图int adc_data_cmp() int max; int min; int Sum; int i; max = ADC_DataSave0; for(i=0;imax) max = ADC_DataSavei; /取出最大值 min = ADC_DataSavei; for(i=0;i10;i+) if(ADC_DataSaveimin)

41、 min = ADC_DataSavei; /取出最小值 for(i=0;iSetPoint*10 - NextPoint; / 偏差 pp-SumError += Error; / 积分 dError = pp-LastError - pp-PrevError; / 当前微分 pp-PrevError = pp-LastError;河北大学工商学院 2012 届本科生毕业论文(设计)25 pp-LastError = Error; return (pp-Proportion * Error / 比例项 + pp-Integral * pp-SumError / 积分项 + pp-Deriva

42、tive * dError / 微分项 );4.2.6 继电器控制继电器是和 AT89S52 单片机的 P25 口相连,它的开断完全取决于 P25 口的输出,即PID 计算的结果。当输出小于零说明设定值小于实际输出值,这就是要关闭电炉,同时关闭定时器的计时。当输出值大于设定值 2 摄氏度时,我们就可以开电炉对水开始加热。如果设定值与实际输出值差值在 2 摄氏度以内时,我们就调用中断程序定时加热。图 4-6 是控制程序的中断服务程序,用来对继电器定时加热。它利用中断定时器10ms 确定加热时间,当加热时间未到时,继续时间累积,若加热时间到时,就调用关定时器子程序,从而停止计时。图 4-6 控制程序中断程序流程图void active()if(Out30*stPID.Proportion) /温度低于设定值 2 摄氏度 turn_on_relay(); /开电炉加热 else turn_on_relay();SP_INT_TIMEB() ; /初始化定时器,开始定时加热 河北大学工商学院 2012 届本科生毕业论文(设计)275 系统安装调试与测试5.1 串口调试通过 RS232 和 PC 机进行连接,利用 PC 调试助手进行调试。调试过程中把单片机和PC 机的波特率设置为相同值(如 9600bit/s) 。验证上位机和下位

温馨提示

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

评论

0/150

提交评论