欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于大林算法的温度控制系统设计.pdf

    • 资源ID:77323388       资源大小:690.03KB        全文页数:18页
    • 资源格式: PDF        下载积分:24金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要24金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于大林算法的温度控制系统设计.pdf

    计算机控制技术课程设计计算机控制技术课程设计2015/2016 学年第二学期设计课题:基于大林算法的电路温度控制系统的设计专业:_ _班级:_ _学号:_ _姓名:_ _ _2016 年 5 月目目 录录第一章 课题简介.11。1 课题的目的.11.1。1 本机实现的功能.11。1。2 扩展功能:.11。2 课题的任务及要求.1第二章 系统方案设计.12.1 水温控制系统的总体介绍.12。2 系统框图.22.3 闭环系统的工作原理.2第三章 系统硬件设计.23。1 系统原理图.23.2 单片机最小系统设计.2第四章 大林控制算法设计.34.1 大林控制算法原理:.34.2 控制器的设计及公式推导过程.44.3 采样周期的选择:.4第五章 水温控制系统的仿真.45.1 振铃现象.45。2 Matlab 仿真.55。2 大林算法控制系统编程设计:.55。3 各模块子程序设计.75。3.1 主程序设计.75。3。2 读出温度子程序.75。5。3 数码管显示模块.85.5.4 温度处理程序.9第六章 小结与体会.9第七章 参考文献.10第八章 附录.10第一章第一章 课题简介课题简介1.11.1 课题的目的课题的目的1.11.1。1 1 本机实现的功能本机实现的功能(1)利用温度传感器采集到当前的温度,通过 AT89S52 单片机进行控制,最后通过 LED 数码管以串行口传送数据实现温度显示。(2)可以通过按键任意设定一个恒定的温度.(3)将水环境数据与所设置的数据进行比较,当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热,从而实现对水温的自动控制.(4)当系统出现故障,超出控制温度范围时,自动蜂鸣报警.1.1.21.1.2 扩展功能扩展功能:(1)具有通信能力,可接收其他数据设备发来的命令,或将结果传送到其他数据设备。(2)采用适当的控制方法实现当设定温度或环境温度突变时,减小系统的调节时间和超调量。(3)温度控制的静态误差.1.21.2 课题的任务及要求课题的任务及要求一升水由 800W 的电热设备加热,要求水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。(1)温度测量范围:10100,最小区分度不大于1。(2)控制精度在 0.2以内,温度控制的静态误差小于1.(3)用十进制数码管显示实际水温.第二章第二章 系统方案设计系统方案设计2 2。1 1 水温控制系统的总体介绍水温控制系统的总体介绍本次设计采用采样值和键盘设定值进行比较运算的方法来简单精确地控制温度。先通过键盘输入设定温度,保存在 AT89S52 单片机的指定单元中,再利用温度传感器DS18B20 进行信号的采集,送入单片机中,保存在采样值单元。然后把采样值与设定值进行比较运算,得出控制量,从而调节继电器触发端的通断,来实现将水温控制在一定的范围内.当水温超出单片机预存温度时,蜂鸣器进行报警.单片机控制系统是一个完整的智能化的集数据采集、显示、处理、控制于一体的系统.由传感器、LED 显示单片机及执行机构控制部分等组成。19S52按键2 2。2 2 系统框图系统框图单片机加热继电器指示灯蜂鸣器2 2。3 3 闭环系统的工作原理闭环系统的工作原理本设计以 AT89S52 单片机系统进行温度采集与控制。温度信号由模拟温度传感器DS18B20 采集输入 AT89S52,利用温度传感器采集到当前的温度,通过 AT89S52 单片机进行控制,最后通过 LED 数码管以串行口传送数据实现温度显示。可以通过按键任意设定一个恒定的温度。将水环境数据与所设置的数据进行比较,当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热,从而实现对水温的自动控制。当系统出现故障,超出控制温度范围时,自动蜂鸣报警。用单片机控制水温可以在一定范围内设定,并能在环境温度变化时保持温度不变。第三章第三章 系统硬件设计系统硬件设计3.13.1 系统原理图系统原理图在温度测量控制系统中,实际温度值由PT100 恒流工作调理电路进行测量。为了克服 PT100 线性度不好的缺点,在信号调理电路中加入负反馈非线性校正网络;调理电路的输出电压经 ADC0808 转换后送入单片机 AT89S51;对采样数据进行滤波及标定处理后,由 3 位 7 段数码管显示.输入的设定值由 4 位独立按键电路进行设定,可分别对设定值的十位和个位进行加 1、减 1 操作.设定值送入单片机后,由另外一组 3 位 7 段数码管显示。数码管的段码由 74HC05 驱动,位码由三极管 2N2222A 驱动。系统采用 PID 闭环控制方案。将预置初值与温度传感器反馈信号比较得到偏差(e)进行 PID 运算处理得到控制量(u),通过此量来控制加热器的加热时间,从而控制加热功率。由于水本身具有很大的热惯性,所以必须对水温的变化趋势作出预测,并且根据需要及时反方向抑制,以防止出现较大的超调量的波动。在PID 控制中,积分环节(I)具有很强的滞后效应,而微分环节(D)具有预见性,所以该方案最终采用 PD 算法,能够很好的控制超调,并且稳态误差也很小。图 3-1 系统原理图3.23.2 单片机最小系统设计单片机最小系统设计基本的 AVR 硬件线路,包括以下几部分:(1)复位线路的设计AT89S52 已经内置了上电复位设计。并且在熔丝位里,可以控制复位时的额外时间,故 AVR 外部的复位线路在上电时,可以设计得很简单:直接拉一只 10K 的电阻到 VCC 即可(R6)。2为了可靠,再加上一只 0。1uF 的电容(C0)以消除干扰、杂波。D3(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V 左右,另一作用是系统断电时,将R1(10K)电阻短路,让C0 快速放电,让下一次来电时,能产生有效的复位。当 AVR 在工作时,按下 S0 开关时,复位脚变成低电平,触发AVR 芯片复位。重要说明:实际应用时,如果你不需要复位按钮,复位脚可以不接任何的零件,AVR 芯片也能稳定工作。即这部分不需要任何的外围零件。图 3-2复位电路设计(2)晶振电路的设计Mega16 已经内置 RC 振荡线路,可以产生 1M、2M、4M、8M 的振荡频率。不过,内置的毕竟是 RC 振荡,在一些要求较高的场合,比如要与 RS232 通信需要比较精确的波特率时,建议使用外部的晶振线路.早期的 90S 系列,晶振两端均需要接 22pF 左右的电容。Mega 系列实际使用时,这两只小电容不接也能正常工作。不过为了线路的规范化,我们仍建议接上。重要说明:实际应用时,如果你不需要太高精度的频率,可以使用内部 RC 振荡。即这部分不需要任何的外围零件。图 33晶振电路设计(3)电源设计AVR 单片机最常用的是 5V 与 3.3V 两种电压。本线路以转换成 5V 直流电压,电路需要变压器把 220 交流电压转换成 28V 交流电,再通过整流器,把交流电转化成直流电,通过 7809和 7805 三端正电源稳压电路转化成直流5V。电源如图 34。图 3-4电源电路设计图第四章第四章 大林控制算法设计大林控制算法设计4 4。1 1 大林控制算法原理大林控制算法原理:在许多工业过程中,被控对象一般都有纯滞后特性,而且经常遇到纯滞后较大的对象.美国 IBM 公司的大林,在 1968 年提出了一种针对工业生产过程中,含有纯滞后对象的控制算法,具有较好的效果.假设带有纯滞后的一阶、二阶惯性环节的对象为:式中,为纯滞后时间,、为时间常数,K 为放大系数。为简单起见,设=NT,N 为正整数。大林算法的设计目标是设计合适的数字控制器,使整个闭环系统的传递函数为具有时间纯滞后的一阶惯性环节,而且要求闭环系统的纯滞后时间等于对象的纯滞后时间。34.24.2 控制器的设计及公式推导过程控制器的设计及公式推导过程-D/AD/A电炉电炉A/DA/D被控对象的传递函数:采样周期 T=1s,期望闭环传递函数的惯性时间常数:设期望闭环传递函数为:系统的广义对象传递函数:系统广义对象的脉冲传递函数为:系统的闭环脉冲传递函数为:数字控制器的脉冲传递函数为:当输入为单位阶跃时,输出为:控制量的输出为:温度传感器温度传感器4.34.3 采样周期的选择:采样周期的选择:在本实验中,定时中断间隔选取100ms,采样周期 T 要求既是采样中断间隔的整数倍,又要满足,而由被控对象的表达式可知,所以取 N=1,=T,=1s,取 T=1s.因为,因为采样周期 T=1s,定时中断为 1s,就是说 1 个定时中断后进行采样。第五章第五章 水温控制系统的仿真水温控制系统的仿真5.15.1 振铃现象振铃现象直接用上述控制算法构成闭环控制系统时,人们发现数字控制器输出U(z)会以 1/2 采样频率大幅度上下摆动。这种现象称为振铃现象。振铃现象与被控对象的特性、闭环时间常数、采样周期、纯滞后时间的大小等都有关系。振铃现象中的振荡是衰减的,并且于由被控对象中惯性环节的低通特性,使得这种振荡对系统的输出几乎无任何影响,但是振铃现象却会增加执行机构的磨损。在交互作用的多参数控制系统中,振铃现象还有可能影响到系统的稳定性,所以,在系统设计中,应设法消除振铃现象。可引入振铃幅度 RA 来衡量振荡的强烈程度。振铃幅度 RA 的定义为:在单位阶跃信号的作用下,数字控制器 D(z)的第 0 次输出与第 1 次输出之差值.设数字控制器 D(z)可以表示为:4(51)其中(5-2)那么,数字控制器 D(z)输出幅度的变化完全取决于 Q(z),则在单位阶跃信号的作用下的输出为:(5-3)根据振铃的定义,可得:(5-4)上述表明,产生振铃现象的原因是数字控制器D(z)在z 平面上位于 z=-1 附近有极点。当 z=-1 时,振铃现象最严重.在单位圆内离 z=1 越远,振铃现象越弱。在单位圆内右半平面的极点会减弱振铃现象,而在单位圆内右半平面的零点会加剧振铃现象。由于振铃现象容易损坏系统的执行机构,因此,应设法消除振铃现象。大林提出了一个消除振铃的简单可行的方法,就是先找造成振铃现象的因子,然后令该因子中的 z=1。这样就相当于取消了该因子产生振铃的可能性。根据终值定理,这样处理后,不会影响输出的稳态值。本设计的被控对象是含有纯滞后的一阶惯性环节,大林算法求得的数字控制器为式:(5-5)有可表示为式 314 所示:(56)可能引起振铃现象的因子是式3-15 所示:(57)其振铃的幅度为:(5-8)根据 r 值的不同,有一下几种情况:(1)当 r=0 时,不存在振铃极点因子,此时不产生振铃现象(2)当 r=1 时,存在一个极点 z=-();当=时,z-1,存在严重的振铃.当 r=2 时,存在极点 Z=当T 时,z,Z1 时,存在振铃现象。对于 r=2 时的振铃极点,令 Z=1 代入式中可得:=此时就求得的消除振铃的数字控制器D(z)表达式为5 5。2 Matlab2 Matlab 仿真仿真Matlab 仿真图(无振铃现象)5 5。2 2 大林算法控制系统编程设计大林算法控制系统编程设计:根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。本部分详细介绍了基于 AT89S52 单片机的多路温度采集控制系统的软件设计。根据系统功能,可以将系统设计分为若干个子程序进行设计,如温度采集子程序,数据处理子程序、显示子程序、执行子程序。采用Keil uVision3 集成编译环境和 C 语言来进行系统软件的设5计.本章从设计思路、软件系统框图出发,先介绍整体的思路后,再逐一分析各模块程序算法的实现,最终编写出满足任务需求的程序.采集到当前的温度,通过 LED 数码管实现温度显示。通过按键任意设定一个恒定的温度将水环境数据与所设置的数据进行比较。当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热。当系统出现故障,超出控制温度范围时,自动蜂鸣报警并对温度进行实时显示。采用 C 语言编写代码,鉴于篇幅限制及 DS18B20 的应用已经规范和成熟,本文仅就主程序流程图和显示子程序流程图及其代码进行说明。通过定时器T0 P3。4 口的定时来实现,在此不再赘述。有关 DS18B20 的读写程序,编程时序分析等请见附录三。功能主程序流程图主程序通过调用温度采集子程序完成温度数据采集,然后调用温度转换子程序转换读取温度数据,调用显示子程序进行温度显示和判断温度数据.主程序(见附录二)调用四个子程序,分别是温度采集程序、数码管显示程序、温度处理程序和数据存储程序。温度采集程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码的显示送数,控制系统的显示部分.温度处理程序:对采集到的温度和设置的上、下限进行比较,做出判断,向继电器输出关断或闭合指令。数据存储程序:对键盘的设置的数据进行存储。设定温度值显示当前温度判断当前温度值是超过设定 1报警低于设定 1否否是报警图 1 系统总流程图65 5。3 3 各模块子程序设计各模块子程序设计5.3。1 主程序设计主程序的主要功能是负责温度的实时显示、读出并处理DS18B20 的测量的当前温度值,温度测量每 1s 进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图 2 所示。通过调用读温度子程序把存入内存储中的整数部分与小数部分分开存放在不同的两个单元中,然后通过调用显示子程序显示出来。开始调用读温度子程序数字变换程序显示子程序图 2 主程序流程图5。3.2 读出温度子程序读出温度子程序的主要功能是读出RAM 中的 9 字节,在读出时需进行 CRC 校验,校验有错时不进行温度数据的改写.DS18B20 的各个命令对时序的要求特别严格,所以必须按照所要求的时序才能达到预期的目的,同时,要注意读进来的是高位在后低位在前,共有 12 位数,小数 4 位,整数 7 位,还有一位符号位。DS18B20 的数据读写是通过时序处理位来确认信息交换的。当总线控制器发起读时序时,DS18B20 仅被用来传输数据给控制器。因此,总线控制器在发出读暂存器指令 BEh或读电源模式指令B4H后必须立刻开始读时序,DS18B20 可以提供请求信息。所有读时序必须最少 60us,包括两个读周期间至少1us 的恢复时间.当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放在总线控制器发出读时序后,DS18B20 通过拉高或拉低总线上来传输 1 或 0。当传输逻辑 0 结束后,总线将被释放,通过上拉电阻回到上升沿状态.从 DS18B20 输出的数据在读时序的下降沿出现后 15us 内有效。因此,总线控制器在读时序开始后必须停止把 I/O 脚驱动为低电平 15us,以读取 I/O脚状态。7DS18B20 复位、应答子程序跳过 ROM 匹配命令写入子程序温度转移命令写入子程序延时显示子程序DS18B20 复位、应答子程序跳过 ROM 匹配命令写入子程序读温度命令子程序终止图 3 读出温度子程序5。5。3 数码管显示模块本系统采用八位共阳极数码管,用模拟串口的动态显示数据.其流程图如图 4 所示:8子程序入口初始化查表取段码段码送驱动显示位码送译码器选通低位数码管N数字是否显示亮Y关显示显示缓冲区左移返回图 4 数码管显示流程图5.5。4 温度处理程序基于单片机水温控制系统通过DS18B20 温度传感器采集到的温度和设置的温度上、下限进行比较得出结果。如果低于下限温度或是高于上限温度,则报警器进行进行报警。第六章第六章 小结与体会小结与体会这次的课程设计分配到两个人一组完成,虽然只有短短的两周时间,但是通过这些天的学习使我收获巨大,让我更加深刻的复习了课本知识,使得自己在专业技能和动手能力方面有了很大的提高,为以后自己进入社会打下了一个良好的基础。在这次的课程设计过程中,我与周航一组,我很感谢老师对我的指导及同学的帮助,我主要负责软件的仿真,周航负责硬件系统的设计。在大林控制算法的设计中,遇到了许多的难题,9对于原理概念十分模糊,一些公式也忘了如何去使用,拿出了以前的课本对遗忘的知识进行了回顾,在同学的帮助下,与周航的讨论中一步一步的完成了控制器的设计和大林算法公式的推导。使得我能够顺利的完成此次的课程设计,通过完成这次的课程设计,使我深刻的体会到了团队的重要性,这次的课程设计很,但两人一组的团队的合作使课程设计简单了许多,每个人都有明确的分工,这样,再加上自己的努力终能取得成功。感谢此次的课程设计让我收获良多!第七章第七章 参考文献参考文献1于海生主编,微型计算机控制技术M,北京:清华大学出版社,20092李小坚,赵山林,冯晓军,龙怀冰.Protel DXP 电路设计与制版实用教程(第2 版).北京:人民邮电出版社.20093全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品选编(第一届-第五届)。北京:北京理工大学出版社。20044张琳娜,刘武发.传感检测技术及应用.北京:中国计量出版社。19995沈德金,陈粤初。MCS51 系列单片机接口电路与应用程序实例。北京:北京航空航天大学出版社。19906周立功等。增强型 80C51 单片机速成与实战.北京:北京航空航天大学出版社。2003.77马忠梅等。单片机的C 语言应用程序设计。北京:北京航空航天大学出版社社.1998。108胡汉才。单片机原理及接口技术。北京:清华大学出版社社。19969李志全等。智能仪表设计原理及应用。北京:国防工业出版社。1998.610何立民MCS-51 系列单片机应用系统设计。北京:北京航空航天大学出版社。1990。1第八章第八章 附录附录附录一:系统程序include 0;a-)for(b=100;b0;b);void init()EA=1;ET1=1;TR1=1;TMOD=0 x10;TH1=(655364000)/256;TL1=(65536-4000)256;flag=0;high=100;jdq=1;void didi()beep=0;led=0;delay(500);beep=1;led=1;delay(500);void dsreset(void)/DS18b20 复位,初始化函数11uint i;ds=0;i=103;while(i0)i-;ds=1;i=4;while(i0)i-;/延时最短 480us/等待 16-60us,收到低电平一个约 60-240us 则复位成功bit tempreadbit(void)uint i;bit dat;ds=0;i+;ds=1;i+;i+;dat=ds;i=8;while(i0)i-;return(dat);uchar tempread(void)/读 1 位数据函数/i+起到延时作用/读 1 字节的数据函数uint i,j,dat;dat=0;for(i=1;i=8;i+)j=tempreadbit();dat=(j1);/读出的数据最低位在最前面,这样刚好一个字节在dat 里return(dat);void tempwritebyte(uchar dat)/向 DS18B20 写一个字节的数据函数uint i;uchar j;bit testb;for(j=1;j=8;j+)testb=dat0 x01;dat=dat1;if(testb)/写 1ds=0;12i+;i+;ds=1;i=8;while(i0)i-;else/写 0ds=0;i=8;while(i0)i-;ds=1;i+;i+;void tempchange(void)dsreset();delay(1);tempwritebyte(0 xcc);tempwritebyte(0 x44);uint get_temp()uchar a,b;dsreset();delay(1);tempwritebyte(0 xcc);tempwritebyte(0 xbe);a=tempread();b=tempread();temp=256*b+a;f_temp=temp*0。0625;temp=f_temp*10+0.5;return temp;void keyscan()if(s1=0)P2=0 xff;delay(5);if(s1=0)/DS18B20 开始获取温度并转换/写跳过读 ROM 指令/写温度转换指令/读取寄存器中存储的温度数据/写跳过读 ROM 指令/写温度转换指令/读低 8 位/读高 8 位/温度在寄存器中为12 位,分辨率为 0。0625/乘以 10 表示小数点后面只取一位/temp 是整型13while(!s1);s1num+;if(s1num=1)flag=1;if(s1num=2)s1num=0;flag=0;if(s1num=1)flag=1;if(s2=0)delay(5);if(s2=0)while(!s2);high+=10;if(high=1000)high=100;if(s3=0)delay(5);if(s3=0)while(!s3);high=10;if(high=0)high=100;void main()/主函数init();while(1)14tempchange();/温度转换函数if(temphigh10)jdq=0;didi();if(temp=high10)&(temp=high))jdq=0;beep=1;if((temphigh)&(temphigh+10)jdq=1;didi();void time1()interrupt3TH1=(655364000)/256;TL1=(655364000)256;t+;keyscan();if(flag=0)if(t=4)t=0;switch(t)case 1:P0=tableget_temp()/100;P2=0 xfd;break;case 2:P0=table1get_temp()100/10;P2=0 xfb;break;case 3:P0=tableget_temp()10;P2=0 xf7;break;if(flag=1)if(t=4)t=0;switch(t)15case 0:P0=0 xff;P2=0 xfe;break;case 1:P0=0 xff;P2=0 xfd;break;case 2:P0=tablehigh/100;P2=0 xfb;break;case 3:P0=tablehigh%100/10;P2=0 xf7;break;班级:姓名:学号:1。简要叙述系统的工作原理。2。简述复位电路设计原理.3.系统如何产生报警?4.简述大林算法的原理。5。采样周期如何确立?16

    注意事项

    本文(基于大林算法的温度控制系统设计.pdf)为本站会员(小***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开