基于某大林算法地温度控制系统设计Word文档下载推荐.docx
《基于某大林算法地温度控制系统设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于某大林算法地温度控制系统设计Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
〔2〕可以通过按键任意设定一个恒定的温度。
〔3〕将水环境数据与所设置的数据进展比拟,当水温低于设定值时,开启加热设备,进展加热;
当水温高于设定温度时,停止加热,从而实现对水温的自动控制。
〔4〕当系统出现故障,超出控制温度围时,自动蜂鸣报警。
1.1.2扩展功能:
〔1〕具有通信能力,可接收其他数据设备发来的命令,或将结果传送到其他数据设备。
〔2〕采用适当的控制方法实现当设定温度或环境温度突变时,减小系统的调节时间和超调量。
(3)温度控制的静态误差。
1.2课题的任务与要求
一升水由800W的电热设备加热,要求水温可以在一定围由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度根本不变。
〔1〕温度测量围:
10~100℃,最小区分度不大于1℃。
℃以,温度控制的静态误差小于1℃。
〔3〕用十进制数码管显示实际水温。
第二章系统方案设计
2.1水温控制系统的总体介绍
本次设计采用采样值和键盘设定值进展比拟运算的方法来简单准确地控制温度。
先通过键盘输入设定温度,保存在AT89S52单片机的指定单元中,再利用温度传感器DS18B20进展信号的采集,送入单片机中,保存在采样值单元。
然后把采样值与设定值进展比拟运算,得出控制量,从而调节继电器触发端的通断,来实现将水温控制在一定的围。
当水温超出单片机预存温度时,蜂鸣器进展报警。
单片机控制系统是一个完整的智能化的集数据采集、显示、处理、控制于一体的系统。
由传感器、LED显示单片机与执行机构控制局部等组成。
2.2系统框图
2.3闭环系统的工作原理
本设计以AT89S52单片机系统进展温度采集与控制。
温度信号由模拟温度传感器DS18B20采集输入AT89S52,利用温度传感器采集到当前的温度,通过AT89S52单片机进展控制,最后通过LED数码管以串行口传送数据实现温度显示。
可以通过按键任意设定一个恒定的温度。
将水环境数据与所设置的数据进展比拟,当水温低于设定值时,开启加热设备,进展加热;
当系统出现故障,超出控制温度围时,自动蜂鸣报警。
用单片机控制水温可以在一定围设定,并能在环境温度变化时保持温度不变。
第三章系统硬件设计
系统原理图
在温度测量控制系统中,实际温度值由PT100恒流工作调理电路进展测量。
为了克制PT100线性度不好的缺点,在信号调理电路中参加负反应非线性校正网络;
调理电路的输出电压经ADC0808转换后送入单片机AT89S51;
对采样数据进展滤波与标定处理后,由3位7段数码管显示。
输入的设定值由4位独立按键电路进展设定,可分别对设定值的十位和个位进展加1、减1操作。
设定值送入单片机后,由另外一组3位7段数码管显示。
数码管的段码由74HC05驱动,位码由三极管2N2222A驱动。
系统采用PID闭环控制方案。
将预置初值与温度传感器反应信号比拟得到偏差(e)进展PID运算处理得到控制量(u),通过此量来控制加热器的加热时间,从而控制加热功率。
由于水本身具有很大的热惯性,所以必须对水温的变化趋势作出预测,并且根据需要与时反方向抑制,以防止出现较大的超调量的波动。
在PID控制中,积分环节〔I〕具有很强的滞后效应,而微分环节〔D〕具有预见性,所以该方案最终采用PD算法,能够很好的控制超调,并且稳态误差也很小。
图3-1系统原理图
单片机最小系统设计
根本的AVR硬件线路,包括以下几局部:
(1)复位线路的设计
AT89S52已经置了上电复位设计。
并且在熔丝位里,可以控制复位时的额外
时间,故AVR外部的复位线路在上电时,可以设计得很简单:
直接拉一只10K的电
阻到VCC即可(R6)。
为了可靠,再加上一只的电容(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振
荡。
图3-3晶振电路设计
(3)电源设计
AVR单片机最常用的是5V与两种电压。
本线路以转换成5V直流电压,电路需要变压器把220交流电压转换成28V交流电,再通过整流器,把交流电转化成直流电,通过7809和7805三端正电源稳压电路转化成直流5V。
电源如图3-4。
图3-4电源电路设计图
第四章大林控制算法设计
4.1大林控制算法原理:
在许多工业过程中,被控对象一般都有纯滞后特性,而且经常遇到纯滞后较大的对象。
美国IBM公司的大林,在1968年提出了一种针对工业生产过程中,含有纯滞后对象的控制算法,具有较好的效果。
假设带有纯滞后的一阶、二阶惯性环节的对象为:
式中,为纯滞后时间,、为时间常数,K为放大系数。
为简单起见,设=NT,N为正整数。
大林算法的设计目标是设计适宜的数字控制器,使整个闭环系统的传递函数为具有时间纯滞后的一阶惯性环节,而且要求闭环系统的纯滞后时间等于对象的纯滞后时间。
4.2控制器的设计与公式推导过程
被控对象的传递函数:
采样周期T=1s,期望闭环传递函数的惯性时间常数:
设期望闭环传递函数为:
系统的广义对象传递函数:
系统广义对象的脉冲传递函数为:
系统的闭环脉冲传递函数为:
数字控制器的脉冲传递函数为:
当输入为单位阶跃时,输出为:
控制量的输出为:
4.3采样周期的选择:
在本实验中,定时中断间隔选取100ms,采样周期T要求既是采样中断间隔的整数倍,又要满足,而由被控对象的表达式可知,所以取N=1,=T,=1s,取T=1s。
因为,,因为采样周期T=1s,定时中断为1s,就是说1个定时中断后进展采样。
第五章水温控制系统的仿真
直接用上述控制算法构成闭环控制系统时,人们发现数字控制器输出U〔z)会以1/2采样频率大幅度上下摆动。
这种现象称为振铃现象。
振铃现象与被控对象的特性、闭环时间常数、采样周期、纯滞后时间的大小等都有关系。
振铃现象中的振荡是衰减的,并且于由被控对象中惯性环节的低通特性,使得这种振荡对系统的输出几乎无任何影响,但是振铃现象却会增加执行机构的磨损。
在交互作用的多参数控制系统中,振铃现象还有可能影响到系统的稳定性,所以,在系统设计中,应设法消除振铃现象。
可引入振铃幅度RA来衡量振荡的强烈程度。
振铃幅度RA的定义为:
在单位阶跃信号的作用下,数字控制器D〔z〕的第0次输出与第1次输出之差值。
设数字控制器D(z)可以表示为:
〔5-1〕
其中
〔5-2〕
那么,数字控制器D〔z)输出幅度的变化完全取决于Q〔z),如此在单位阶跃信号的作用下的输出为:
〔5-3〕
根据振铃的定义,可得:
〔5-4〕
上述明确,产生振铃现象的原因是数字控制器D〔z〕在z平面上位于z=-1附近有极点。
当z=-1时,振铃现象最严重。
在单位圆离z=-1越远,振铃现象越弱。
在单位圆右半平面的极点会减弱振铃现象,而在单位圆右半平面的零点会加剧振铃现象。
由于振铃现象容易损坏系统的执行机构,因此,应设法消除振铃现象。
大林提出了一个消除振铃的简单可行的方法,就是先找造成振铃现象的因子,然后令该因子中的z=1.这样就相当于取消了该因子产生振铃的可能性。
根据终值定理,这样处理后,不会影响输出的稳态值。
本设计的被控对象是含有纯滞后的一阶惯性环节,大林算法求得的数字控制器为式:
〔5-5〕
有可表示为式3-14所示:
〔5-6〕
可能引起振铃现象的因子是式3-15所示:
〔5-7〕
其振铃的幅度为:
〔5-8〕
根据r值的不同,有一下几种情况:
〔1〕当r=0时,不存在振铃极点因子,此时不产生振铃现象
〔2〕当r=1时,存在一个极点z=-();
当τ<
=时,z≈-1,存在严重的振铃。
当r=2时,存在极点Z=
<
T时,z≈,Z≈1时,存在振铃现象。
对于r=2时的振铃极点,令Z=1代入式中可得:
=
此时就求得的消除振铃的数字控制器D〔z)表达式为
Matlab仿真
Matlab仿真图〔无振铃现象〕
5.2大林算法控制系统编程设计:
根据系统的总体功能和键盘设置选择一种最适宜的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。
本局部详细介绍了基于AT89S52单片机的多路温度采集控制系统的软件设计。
根据系统功能,可以将系统设计分为假如干个子程序进展设计,如温度采集子程序,数据处理子程序、显示子程序、执行子程序。
采用KeiluVision3集成编译环境和C语言来进展系统软件的设计。
本章从设计思路、软件系统框图出发,先介绍整体的思路后,再逐一分析各模块程序算法的实现,最终编写出满足任务需求的程序。
采集到当前的温度,通过LED数码管实现温度显示。
通过按键任意设定一个恒定的温度将水环境数据与所设置的数据进展比拟。
当水温低于设定值时,开启加热设备,进展加热;
当水温高于设定温度时,停止加热。
当系统出现故障,超出控制温度围时,自动蜂鸣报警并对温度进展实时显示。
采用C语言编写代码,鉴于篇幅限制与DS18B20的应用已经规和成熟,本文仅就主程序流程图和显示子程序流程图与其代码进展说明。
通过定时器口的定时来实现,在此不再赘述。
有关DS18B20的读写程序,编程时序分析等请见附录三。
功能主程序流程图主程序通过调用温度采集子程序完成温度数据采集,然后调用温度转换子程序转换读取温度数据,调用显示子程序进展温度显示和判断温度数据。
主程序〔见附录二〕调用四个子程序,分别是温度采集程序、数码管显示程序、温度处理程序和数据存储程序。
温度采集程序:
对温度芯片送过来的数据进展处理,进展判断和显示。
数码管显示程序:
向数码的显示送数,控制系统的显示局部。
温度处理程序:
对采集到的温度和设置的上、下限进展比拟,做出判断,向继电器输出关断或闭合指令。
数据存储程序:
对键盘的设置的数据进展存储。
图1系统总流程图
设计
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进展一次。
这样可以在一秒之测量一次被测温度,其程序流程见图2所示。
通过调用读温度子程序把存入存储中的整数局部与小数局部分开存放在不同的两个单元中,然后通过调用显示子程序显示出来。
图2主程序流程图
读出温度子程序的主要功能是读出RAM中的