自动控制系统毕业设计.docx
《自动控制系统毕业设计.docx》由会员分享,可在线阅读,更多相关《自动控制系统毕业设计.docx(30页珍藏版)》请在冰点文库上搜索。
自动控制系统毕业设计
摘要…………………………………………………………………
第1章任务要求和方案设计……………………………………
1.1任务要求………………………………………………………
2.1总体方案确定及元件选择……………………………………..
2.1.1总体设计框图………………………………………………
2.1.2控制方案确定………………………………...……………
2.1.3系统组成………………………………………………
2.1.4单片机系统………………………………………..
2.1.15D/A转换...........................................................................
2.1.5晶闸管控制………………………………………...
2.1.6传感器………………………………………………
2.1.7信号放大电路……………………………………….
2.1.8A/D转换…………………………………………….
2.1.9设定温度及显示…………………………………….
第2章系统硬件设计……………………….…………………
2.1系统硬件框图……………………………………………
2.2系统组成部分之间接线分析……………………………
第3章系统软件设计………………………………………….
3.1程序流程图..…………………………………..……………
第4章参数计算……………………………..………………...
4.1系统各模块设计及参数计算
4.1.1、温度采集部分及转换部分
1
4.1.2、传感器输出信号放大电路部分:
...........................
4.1.3、模数转换电路部分:
............................
4.1.4、ADC0804芯片外围电路的设计:
.......................
4.1.5、数值处理部分及显示部分:
.............................
4.1.6、PID算法的介绍....................................:
4.1.7、A/D转换模块..........................................
4.1.7、A/D转换模块...................................
4.1.8单片机基本系统调试...............................
4.1.9注意事项:
................................................................
第5章测试方法和测试结果
5.1系统测试仪器及设备
5.2测试方法
5.3测试结果
结束语...........................................
参考文献.…………………………………….……….……………
2
摘要
随着国民经济的发展,人们需要对各中加热炉、热处理炉、反应炉和锅炉中温度进行监测和控制。
采用单片机来对他们控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。
本系统以AT89C51,AT89C2051单片机为核心,主要包括传感器温度采集,A/D模/数转换,单片机控制,数码管数字显示等部分。
本系统采用PID算法实现温度控制功能,通过串行通信完成两片单片机信息的交互而实现温度设定、控制和显示。
为了实现高精度的水温控制,本单片机系统采用PID算法控制和PWM脉宽调制相结合的技术,通过控制双向可控硅改变电炉和电源的接通、断开,从而改变水温加热时间的方法来实现对水温的控制。
本系统由键盘显示和温度控制两个模块组成,通过模块间的通信完成温度设定、实温显示、水温升降等功能。
具有电路结构简单、程序简短、系统可靠性高、操作简便等特点。
3
第1章任务要求及设计方案
1.1基本要求
1.1.1基本要求:
一升净水由1kw的电炉加热,要求水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。
1.1.2.指标:
本课题是设计一个控制一升净水,加热器用一千瓦的电炉温度设定范围在40-90℃,最小区分度为1℃,温度控制的静态误差小于等于1℃。
(2)环境温度降低时温度控制的静态误差≤1℃。
用十进制数码管显示水的实际温度。
当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。
2.1设计方案
2.1.1总体方案的确定
本课题的总体方案设计框图如下:
3
输入量控制电路单片机控制被控对象
采样电路
2..1.2控制方法选择一般来说可以采用以下几种控制方案:
1()输出开关量控制:
这种方法通过比较给定值与被控参数的偏差来控制输出的状态:
开关或者通断,因此控制过程十分简单,也容易实现。
但由于输出控制量只有两种状态,使被控参数在两个方向上变化的速率均为最大,因此容易硬气反馈回路产生振荡,4
对自动控制系统会产生十分不利的影响,甚至会因为输出开关的频繁动作而不能满足系统对控制精度的要求。
因此,这种控制方案一般在大惯性系统对控制精度和动态特性要求不高的情况下采用。
(2)比例积分加微分控制(PID控制)
比例积分加微分控制的特点是微分的作用使控制器的输出与偏差变化的速度成正比例,它对克服对象的容量滞后有显著的效果。
在比例基础上加上微分作用,使稳定性提高,再加上积分作用,可以消除余差。
因此,PID控制适用于负荷变化大、容量滞后较大、控制品质要求又很高的控制系统。
结合本例题设计任务与要求,由于水温系统的传递函数事先难以精确获得,因而很难判断哪一种控制方法能够满足系统对控制品质的要求。
但从以上对控制方法的分析来看,PID控制方法最适合本例采用。
另一方面,由于可以采用单片机实现控制过程,无论采用上述哪一种控制方法都不会增加系统硬件成本,而只需对软件作相应改变即可实现不同的控制方案。
因此本系统可以采用PID的控制方式,以最大限度地满足系统对诸如控制精度、最小区分度、静态误差、等控制要求。
2..1.3系统组成
由于本课题是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算到输出控制电炉加热功率以实现水温控制的全过程。
因此,应以单片微型计算机为核心组成一个专用计算机应用系统,以满足检测、控制应用类型的功能要求。
另外,单片机的使用也为实现水温的智能化控制以及提供完善的人机交互界面及多机通讯接口提供了可能,而这些功能在常规数字逻辑道路中往往是难以实现或无法实现的。
所以,本例采用以单片机为核心的DDC(直接数字控制系统)。
在本课题中,控制部分主要是单片机控制和控制电路。
单片机控制是用单片机芯片来实现;控制电路部分是晶闸管电路来实现,执行部分的1KW的电炉,反馈部分是采用传感器技术。
2.1.4单片机的选择
AT89C2051、AT89C51单片机是最常用的单片机,是一种低损耗、高性能、CMOS八位微处理器。
AT89C2051与MCS-51系列的单片机在指令系统和引脚上完全兼容,而且能使系统具有许多MCS-51系列产品没有的功能,功能强、灵活性高而且价格低廉。
AT89S51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低了系统成本。
只要程序长度小于4K,四个I/O口全部提供给拥护。
系统运行中需要存放的中间变量较少,可不必再扩充外部RAM。
2.1.6功率放大
5
2.1.7传感器部分
在本课题中,才用的传感器是AD590传感器。
传感器可将温度量转换成电量进行检测,对温度的测量、控制以及对温度信号放大、变换等很方便。
温度传感器种类较多。
热电偶由于热电势较小,因而灵敏度较低;热敏电阻由于非线性而影响精度;铂电阻温度传感器由于成本高,在一般小系统中很少使用。
AD590是美国AnalogDevices公司生产的二端式集成温度传感器,具有体积小、重量轻、线性度好、性能稳定等一系列优点。
它的测温范围为-50~+155?
C,满刻度误差为0.3?
C,当电源电压在5~10V之间,稳定度为1%,误差只有0.01?
C,完全适用于本设计对水温测量的要求。
另外AD590是温度——电流传感器,对于提高系统抗干扰能力也有很大帮助,因此本设计选用AD590作为温度传感器。
综合上述及本课题的测温要求考虑,故选择选择热电偶传感器作为测温元件。
2.1.8信号放大部分放大电路部分
是利用具有放大特性的电子元件,如晶体三极管,三极管加上工作电压后,输入端的微小电流变化可以引起输出端较大电流的变化,输出端的变化要比输入端的变化大几倍到几百倍,这就是放大电路的基本原理
2.1.9A/D转换
ADC0809的IN0和放大电路输出端相连,故IN0上输入的0V-+5V范围的模拟电压经A/D转换后可由8031通过程序从P0口输入到它的内部RAM单元。
首先输入地址选择信号,在ALE信号作用下,地址信号被锁存,产生译码信号,选中一路模拟量输入。
然后输入启动转换控制信号START启动转换。
转换结束,数据送三态缓冲锁存器,同时发出EOC信号。
在允许输入信号OE的控制下,再将转换结果输入到外部数据总线。
2.1.10设定温度及显示部分
6
第3章系统硬件设计
2.1系统硬件框图
信A/D
放
此系统是一个典型的闭环控制系统,控制的目的的电炉的功率,通过单片机技术来控制晶闸管的特性,从而控制电压的大小,最终达到控制电炉的功率。
此外,该系统还有反馈装置,通过传感器检测技术随时净水的温度,经过处理反馈到单片机控制部分并有显示部分显示。
7
2.2系统组成部分接线分析
2.2.1反馈部分
反馈部分是由;
传感器到放大电路到A/D再到单片机,其接线图如下:
以AT89C51单片机为控制核心,采集到温度,经放大,AD转换后送单片机处理,再通过串行口发送到显示模块因为考虑到PID运算时需要调用浮点数运算程序库,程序需要占用很大的存储空间,8051内部的能满足此要求,所以不需要扩展外部ROM,系统中运行中需要存放的中间变量只有给定温度和实测,PID运算中间结果及输出结果等十几个变量.因而8051片内的RAM能够满足要求,可不必再扩展。
2.2.2显示部分
显示部分是单片机与键盘及显示之间的接口线路,分为数字显示和报警两部分,其接线图如下:
8
键盘显示电路
9
2.2.3控制部分
10
将前述各单元电路连接起来,可构成完整的系统硬件电路图。
在这控制过程中,控制电路中的功率放大是用可控硅来实现。
双向可控硅管和加热丝串联接在交流220V,50Hz交流试点回路。
在给定的周期T内,8031只要改变可控硅管的接通时间便可改变加热丝功率,以达到调节温度的目的。
可控硅管在给定周期T内具有不同接通时间的情况。
显然,可控硅在给定周期T的100%时间内接通的功率最大。
如下图所示:
可控硅接通时间可以通过可控硅控制板上控制脉冲控制。
该触发脉冲由受过零同步脉冲后经光偶管和驱动器输送到可P1.3引脚上产生,8031用软件在偏差控制的原理是先通常,电阻炉炉温控制采用偏差控制法。
控硅的控制极上。
然后对偏差值处理而获得控制信号去调节电求出史册炉温对所需炉温的偏差值,阻炉的假热功率,以实现对电阻炉的炉温控制。
11
第3章系统软件设计
系统软件由主程序、键盘扫描、LED显示、串行口中断组成。
由于本模块就进行键盘与显示任务,且键盘扫描与LED扫描是用同个74LS138来完成,可以将程序精简,即把键盘和显示的程序合在一起放在主程序里。
(1)初始化。
设定可编程芯片的工作方式,对内存中的工作参数区进行初始化,显示系统初始状态。
(2)读温度程序.通过DS18B20的侧温.(3)调用PID算法子程序通过键盘模块发送过来的数据,即给定值,和测量值进行计算,输出PWM波.对电炉的水温度进行控制.(4)返回
开初始
初始
P3.5=000
P3.P3.P3.7=0N
Y
30H
P消抖延N
P3.2=Y
Flaga=N
Y
消Flagb=Y
N
3231Flaga=1
FlagFlagP3.5=001
P3.P3.31H
P延.
………………P3.5=101
P3.P3.4P3.5=010
P3.P3..
…………
………….
P3.5=110
P3.3、P3.4、P3.3、P3.4、P3.5=011
………….
………….
P3.5=111
P3.4P3.3、、
P3.3、P3.4、P3.5=100
………….
12
读温度程序
入口
?
脉宽标志位是高电平N
Y
输出高电P0.0P0.输出低电0
脉宽标志位清1
把脉宽标志位置
返回
算法子程序调用PID
初始化
调用水温检测子程序调用脉宽子程序
调用PID算法子程序
返回
开起定时器
Y
定时时间到?
N
13
返回
开
复DS18B20
发跳RO命
发温度转换命
延
复DS18B20
发读存储器命
将温度转换BC
参数计算
发送温度显示温键设定温键设定温度值加一;按系统调试包括硬件调试和软件调试值减一;按设温键,可任意设置温度,输入相应的数值,按确定键即可,按取消返回水温检测子程序软件的调试府在仿键则返回前一次设置的值;按初始键则返回刚一开机的状态。
将调试跟踪等功能的支持下对各子程序分别进行调试.断点、真器提供的单步、完的工程序连接起来再调试.逐步扩大调试范围。
4.1系统各模块设计及参数计算、温度采集部分及转换部分4.1.1是美国模拟器件公司生产的单片AD590AD590我们使用来采集外界的温度。
集成两端感温电流源。
14
它的主要特性如下:
1、流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:
mA/K式中:
—流过器件(AD590)的电流,单位为mA;T—热力学温度,单位为K。
2、AD590的测温范围为-55℃~+150℃。
3、AD590的电源电压范围为4V~30V。
电源电压可在4V~6V范围变化,电流
变化1mA,相当于温度变化1K。
AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
4、输出电阻为710MW。
5、精度高。
AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。
由于AD590采集的输出数据是模拟量—电流,而且很小,不易测量,所以我们要将电流量转换成电压量,这样有利于后面的放大及D/A转换。
我们改用一个固定电阻(9.1k或10k)和一个电位器(1K)串接的方法,这样可以通过调节电位器使得每路输出电压基本一致。
如以0℃为参考值则应使其电压输出为2.73V;如以25℃为参考值,则应使其电压输出为2.98V.
4.1.2、传感器输出信号放大电路部分:
由于取得的电压量很小,我们选用LM324做为运放,以为其内部带有四个运放,可以使得运放部分在电路版上不占用太大的体积。
我们用了其内部的三个运放。
第一级运放我们做成射级跟随器的形式,起到阻抗匹配的作用。
第二级运放设计为反相比例求和电路,根据反相比例求和电路公式,我们设计了如下图的电路,U=-((10/10)*U1+10/(20+R)),其中U为第二级输出电压,R为50k的电位器。
可以通过调节电位器使得输出电压达到要求。
设0℃时,第二级的输出为2.73-2.73=0V,而25℃时,第二级的输出为2.73-2.98=-0.25V(反相)(零位调整)。
第三级运放设计为反相比例放大电路,我们设计为将第二级的输出电压放大5倍。
所以我们选用了10k和50k的电阻来实现。
4.1.3、模数转换电路部分:
这部分最初想用ADC0809的,但为了配合使用CD4051,我们最终选择了ADC0804。
ADC0804的规格及引脚图
·8位CMOS逐次逼近型的A/D转换器
·三态锁定输出
·存取时间:
135μs;
·分辨率:
8位;
·转换时间:
100μs;
·总误差:
±1LSB;
·工作温度:
ADC0804LCN——0℃~+70℃;
15
·ADC0804LCD——-40℃~+85℃;
引脚图及说明如图所示:
/CS:
芯片选择信号。
/RD:
外部读取转换结果的控制脚输出信号。
/RD为高时,DB0~DB7处于高阻抗;/RD为低时,数字数据才会输出。
/WR:
用来启动转换的控制输入,相当于ADC的转换开始(/CS=0时),当/WR由高变为低时,转换器被清除;当/WR回到高时,转换正式开始。
CLKIN,CLKR:
时钟输入或接振荡元件(R,C),频率约限制在100kHz~1460kHz,如果使用RC电路则其振荡频率为1/(1.1RC).
/INTR:
中断请求信号输出,低电平动作。
VIN(+)、VIN(-):
差动模拟电压输入。
输入单端正电压时,VIN(-)接地;而差动输入时,直接加入VIN(+)、VIN(-)。
AGND,DGND:
模拟信号及数字信号的接地。
VREF:
辅助参考电压。
DB0~DB7:
8位的数字输出。
VCC:
电源供应以及作为电路的参考电压。
众所周知,精度是数据采集系统的重要指标,模数转换器的量化误差是影响系统精度的主要因素,A/D转换器的位数越多,其量化误差越小,一个M位的A/D
转换器的量化误差可表示为:
式中Vref为模数转换器的参考基准电压。
设A/D转换电路的模拟输入电压为Vi,
则经A/D转换后的相对误差表示为:
(2)上式表明,当模数转换器的位数选定后,其相对误差D与其模拟输入电压V
i成反比。
因此只有将输入信号Vi预放大到接近参考电压Vref,才能充分发挥A/D
16
转换器位数的效能,减小量化误差,提高系统数据采集精度。
此即为引入前置放大器的目的之所在。
逐步逼近式A/D的转换公式:
NUr?
UrUx?
e?
,、Ux为输入电压、N为输出值(1-1)
nn22Ux?
N(1-2)
e当选定参考电压和A/D位数时,e为常数,由误差传递公式得:
?
N?
Ux?
,Ux是输入绝对误差(1-3)
NUx由式(1-3)知:
当输入电压越大,A/D转换的相对误差越小,当然输入电压不能大于A/D最大转换电压。
因此为了减少A/D转换误差,对输入信号进行放大。
4.1.4、ADC0804芯片外围电路的设计:
a.19脚的CLKR端接一个10k的电阻和150PF的电容,根据公式f=1/(1.1RC),可算得时钟输入频率为0.6兆左右。
b.9脚:
选择470k的电阻、5k的电位器和2.7伏的稳压管来调节芯片的相对电压。
本电路中应调节电位器使得9脚电压为2.56伏。
c.1、7、8脚接地
d.6脚接运放的输出端,采集收集到的信号,经过A/D转换最后输出8位2进制数,这样就可以送到单片机里进行处理了。
4.1.5、数值处理部分及显示部分:
数值处理部分:
我们采用8051芯片,其内部自带程序存储器。
其外接12兆的晶振来给起供应震荡频率。
9脚接一个10μF的电解电容再接地,来实现复位功能。
/RD和/WR分别与ADC0804的/RD和/WR相连,实现数据的读写控制。
P2.4脚与ADC0804的/INTR相接,可以通过编程来判断该脚的高低来得知A/D转换是否完成。
P1.4~P1.7及P2.7口分别外接一个4.7k的电阻接至三极管的C端,来控制三极管的通断,来控制5个数码管的亮暗。
P2.0~P2.2口分别与ADC0804的9、10、11脚来控制选择的路数。
显示部分:
用7447芯片与8051的P1.0~P1.3口相连,7447芯片可将8051转换好的8421BCD码转换成7段码送到数码管显示。
数码管选用共阳的,因此在其Vcc端要外接一个三极管(9013),通过控制三极管给数码管供电,来控制数码管的通断。
4.1.6、PID算法的介绍:
工业上,偏差控制又称为PID控制,这是工业控制中常用的控制形式,一17
般能收到令人满意的效果。
控制论告诉我们,PID控制的理想方程是:
1de?
)edtK(E?
?
TU?
DpTdt1式中e—测量值与给定值之间的偏差;
TD—微分时间:
T-积分时间;
nTT?
D(e?
ee?
)][U?
Ke?
1?
p1nnnnTT1?
i1n?
)?
Ke?
Ke?
K(e?
e11n1n?
pDn1i?
KP—调节器的放大系数.
将上式离散化得到数字PID位置式算法
式中在位置式算法的基础之上得到数字PID
增量式算法:
?
Un?
K(e?
e)?
Ke?
K(e?
2e?
e)2n1pn?
nnn?
10n1?
?
K?
e?
Ke?
K(?
e?
?
e)1nn?
n01pn4.1.7、A/D转换模块
由于系统对信号采集的速度要求不高,故可以采用价格低的8位逐次逼近式A/D转换器ADC0804,该转换器转换速度为100us,转换精度为0.39%,对应误差为0.2340?
C。
故采用AD0804,ADC0804是8位模数转化电路,它能把模拟电压值转化为8位二进制码,其转化公式如下:
D=V*256/V我们这里设置V等于5VREFXREFIN(因为这里悬空没接,查资料可知其为5V),则D所对应的值就是八位二进制码X
的十进制值,具体转化表如下:
温度值ADCinDX十六进温度值ADCinDX十六进制编码)制编码)(V(V78H0?
C2.34408?
30000HC
0.1562.7349C07HC135?
8BH?
20.313A0H0AHA2?
40CC4?
3.125
0.625B4H3.5163BC?
8C20H?
450.781
4
C
?
10C