自动控制原理水温控制新版系统实验报告.docx
- 文档编号:14324406
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:39
- 大小:241.64KB
自动控制原理水温控制新版系统实验报告.docx
《自动控制原理水温控制新版系统实验报告.docx》由会员分享,可在线阅读,更多相关《自动控制原理水温控制新版系统实验报告.docx(39页珍藏版)》请在冰点文库上搜索。
自动控制原理水温控制新版系统实验报告
恒温控制系统
设计汇报
学院:
电子信息学院
班级:
12级电子信息工程
指导老师:
xxx
姓名:
zzz
学号:
序言
水温控制不管是在工业生产中,还是在日常生活中全部起着很关键作用,过低温度或过高温度全部会使水资源失去应有作用,从而造成水资源巨大浪费。
为了确保生产过程正常安全地进行,提升产品质量和数量,和减轻工人劳动强度、节省能源,要求对水温进监测、显示、控制,使之达成工艺标准,满足需要。
因为电子行业迅猛发展,计算机技术和传感器技术不停改善,而且计算机和传感器价格也日益降低,可靠性逐步提升,用信息技术来实现水温控制并提升控制正确度不仅是能够达成而且是轻易实现。
其发展必将带来新一轮工业化革命和社会发展飞跃。
在计算机没有发明之前,这些控制全部是我们难以想象。
而当今,伴随电子行业迅猛发展,计算机技术和传感器技术不停改善,而且计算机和传感器价格也日益降低,可靠性逐步提升,用信息技术来实现水温控制并提升控制正确度不仅是能够达成而且是轻易实现。
用高新技术来处理工业生产问题, 排除生活用水问题实施对水温控制已成为我们电子行业任务,以此来加强工业化建设,提升人民生活水平。
采取PID算法进行温度控制,它含有控制精度高,能够克服容量滞后特点,尤其适适用于负荷改变大、容量滞后较大、控制品质要求又很高控制系统。
所以,我们在此基础上利用PID控制器方案制作温度控制器。
序言
摘要………………………………………………………………3
第1章设计方案论证……………………………………….3
1.1主控芯片选择………………………………………2
1.2温度控制模块……………………………….…………3
1.3温度采集模块………………………………….………4
1.4温度显示模块……………………………..……………4
第2章系统设计…………………………………….………..5
2.1总体方案设计………………………………..…………5
2.2硬件电路设计…………………………………..………5
2.2.1stc89c52最小系统模块………...…………..5
2.2.2温度控制模块…………………………….…….6
2.2.3温度采集模块…………………………………..7
2.2.4温度显示模块…………………………………..8
2.2.5键盘输入模块………………………….……….9
2.3软件设计…………………………………..…………...10
2.3.1程序步骤图……………………………...…….10
2.3.2PWM输出程序设计…………………………11
2.3.3PID程序设计……………………………...…..11
2.3.4DS18B20温度采集程序设计………...…..12
2.3.5数码管显示程序设计………………...……...13
2.3.6独立按键扫描程序设计…………….…….…15
第3章系统测试………………………………………….….17
3.1测试数据统计……………………………………….…17
3.2数据分析和结论……………………………………....18
第4章总结……………………………………………….…..18
参考文件…………………………………………………..…….19
附录…………………………………………………………..…..19
附录1关键元器件明细表
附录2仪器设备清单
附录3程序设计
摘要:
本设计基于STC89C52RC单片机水温测量及控制系统设计。
系统硬件部分由单片机电路、温度采集电路、键盘电路、LED显示电路、MOS管控制电路等组成。
本系统采取数字式温度传感器DS18B20作为温度传感器,简易实用,方便拓展。
软件设计中由两个定时器产生一个PWM波,并经过PID控制PWM波占空比从而控制MOS管通断时间以控制加热功率。
本系统可实现水温动态平衡,稳态温差0.1摄氏度。
关键词:
STC89C52占空比PID
第1章设计方案论证
1.1主控芯片选择
方案一:
STC89C52RC
STC89C52RC单片机是宏晶科技推出新一代高速/低功耗/超强抗干扰单片机,指令代码完全兼容传统8051单片机,STC89C52为8位通用微处理器,采取工业标准C51内核。
内部含有两个16位定时器模块,两个外部中止,8k字节flash闪速存放器,256字节RAM,支持位操作指令
方案二:
MSP430F149
Msp430f149是TI企业推出超低功耗处理器,工作电压3.6V~1.8V,正常工作模式280μA@1MHz,2.2V,待机模式1.6μA,RAM数据保留掉电模式下0.1μA。
五级节电模式。
内部含有2个16位计数器,16个外部中止,60k字节flash闪速存放器,2k字节RAM。
因为温度含有很强滞后性,所以对处理器速度要求不高;又因为单片机功耗和加热功耗相比很小,所以我们选择操作简单,价格廉价STC89C52RC单片机作为主控芯片。
1.2温度控制模块
方案一:
采取可控硅来控制加热器有效功率。
可控硅是一个半控器件,应用于交流电功率控制有两种形式:
控制导通交流周期数达成控制功率目标;控制导通角控制交流功率。
由交流过零检测电路输出方波经合适延时控制双向可控硅导通角,延时时间即移相偏移量由温度误差计算得到。
能够实现对交流电单个周期有效值周期性控制,确保系统动态性能指标。
该方案电路稍复杂,需使用光耦合驱动芯片和变压器等器件。
但该方案能够实现功率连续调整,所以反应速度快,控制精度高。
方案二:
采取继电器控制。
使用继电器能够很轻易地实现经过较高电压和电流,在正常条件下,工作十分可靠。
继电器无需外加光耦,本身即可实现电气隔离。
这种电路无法正确实现电热丝功率控制,电热丝只能工作在最大功率或零功率,对控制精度将造成影响。
但能够由多路加热丝组成功率控制,由单片机对温差处理实现分级功率控制提升系统动态性能。
方案三:
采取MOS管控制
MOS管(FieldEffectTransistor缩写(FET))简称场效应管。
由多数载流子参与导电,也称为单极型晶体管。
它属于电压控制型半导体器件。
含有输入电阻高(10^8~10^9Ω)、噪声小、功耗低、动态范围大、易于集成、没有二次击穿现象、安全工作区域宽等优点,场效应管能在很小电流和很低电压条件下工作,而且它制造工艺能够很方便地把很多场效应管集成在一块硅片上,所以场效应管在大规模集成电路中得到了广泛应用。
可控硅电途经载能力小,尤其是短路时必需要由快速熔短器来保护,安全性能差;继电器无法正确实现电热丝功率控制;所以我们选择方案三
1.3温度采集模块
方案一:
选择Harris企业生产采取激光修正精密集成温度传感器AD590。
AD590岑温范围是-55~+150℃,最大非线性误差为±0.3℃,响应时间为20us,反复性误差低至±0.05℃,功耗低,仅为2mW。
方案二:
采取热敏电阻。
选择这类元件优点价格廉价,但因为热敏电阻非线性特征会带来较大误差。
方案三:
使用带有A/D(模数转换)单片集成DS18B20传感器。
DS18B20数字温度计是DALLAS企业生产即单总线器件,无需其它外加电路,直接输出数字量。
可直接和单片机通信,读取测温数据。
含有线路简单,性能稳定体积小特点。
比较以上方案,结合设计精度要求最小区分度为1℃,所以选择方案三。
1.4温度显示模块
方案一:
采取8个LED八段数码管分别显示温度十位、个位和小数位。
数码管含有低能耗,低损耗,寿命长,耐老化,对外界环境要求低。
但LED八度数码管引脚排列不规则,动态显示时要加驱动电路,硬件电路复杂。
方案二:
采取带有字库12864液晶显示器。
12864液晶显示器(LCD)含有功耗低、轻薄短小无辐射危险,平面显示及影像稳定,不闪烁,可视面积大,画面效果好,抗干扰能力强。
同时,12864带有字库,编程轻易,且含有多个功效:
光标显示、画面移位、睡眠模式,增加可读性,降低功耗。
因为要显示只有设定和测量两个温度值,8位数码管足够使用,所以我们选择方案一。
第2章系统设计
2.1总体方案设计
2.2硬件电路设计
2.2.1stc89c52最小系统模块
STC89C52RC单片机是宏晶科技推出新一代高速/低功耗/超强抗干扰单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期能够任意选择。
关键特征以下:
1、兼容MCS51指令系统;
2、8kB可反复擦写(大于1000次)FlashROM;
3、32个双向I/O口;
4、256x8bit内部RAM;
5、3个16位可编程定时/计数器中止;
6、时钟频率0-24MHz;
7、2个串行中止,可编程UART串行通道;
8、2个外部中止源,共8个中止源;
9、2个读写中止口线,3级加密位;
10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功效;
11、有PDIP、PQFP、TQFP及PLCC等多个封装形式,以适应不一样产品需求。
AT89C52为8位通用微处理器,采取工业标准C51内核。
关键管脚有:
XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。
RST/Vpd(9脚)为复位输入端口,外接电阻电容组成复位电路。
VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源正负端。
P0端口(第39-32脚):
双向信号,多功效端口。
它是八位漏极开路双向I/O端口;
在拓展外部总线时,分时作为低八位总线和八位双向数据总线。
P0端口可驱动八个LSTTL负载。
P0口漏极开路,即高阻状态,适适用于输入/输出,可独立输入/输出低电平和高阻状态,若需要输出高电平,则需使用外部上拉电阻。
P1端口(第1-8脚):
双向信号,含有内部上拉电阻8位准双向I/O端口,可驱动四个LSTTL负载。
P2端口(第21-28脚):
双向信号,多功效端口,含有内部上拉电路8位准双向I/O端口;在拓展外部总线时,用作高八位地址总线,可驱动四个LSTTL负载。
P3端口(第10-17脚):
双向信号,多功效端口,含有内部上拉电路8位准双向I/O端口,可驱动四个LSTTL负载;该端口每一位全部能够作为其它功效模块输入/输出及控制引脚使用。
图2.2.1STC89C52RC最小系统
2.2.2温度控制模块
此部分电路关键由MOS管控制。
MOS管源极接地;漏极接一个50W,10欧姆加热电阻接15V直流电;栅极接单片机PWM波输出端口。
单片机经过输出PWM波占空比控制MOS管闭合时间来控制加热功率;控制部分电路图图2.2.2所表示:
图2.2.2温度控制电路
2.2.3温度采集模块
温度采集模块选择高度集成芯片DS18B20。
DS18B20为单总线结构,总共有三个引脚VCC、GND和信号线。
电路连接简单方便,只需格外接少许电阻电容。
硬件电路图图2.2.3所表示:
图2.2.3DS18B20硬件连接图
2.2.4温度显示模块
温度显示模块采取8个八位共阴极数码管,经过8位锁存器MC74HC573完成段选和位选,节省IO口使用。
硬件连接电路图图2.2.4所表示:
图2.2.4数码管显示电路
2.2.5键盘输入模块
按键输入模块选择四个独立按键,经过独立按键扫描方法输入设定值。
硬件电路图图2.2.5所表示:
图2.2.5独立按键硬件连接图
2.3软件设计
2.3.1程序步骤图
Yes
No
图2.3.1程序步骤图
2.3.2PWM输出程序设计
本模块经过STC89C52RC两个定时器协调工作输出一个频率为50Hz,占空比可调PWM波形,并经过P2.0口输出以控制MOS管。
其中定时器1初始值恒定为0xb800,正确定时0.02ms。
经过改变定时器0初始值改变占空比大小,程序每实施一个循环重新装载一次定时器0初始值。
程序以下:
voidinit_time(void)
{
TMOD|=0X01;TMOD|=0X10;
TH1=0Xb8;TL1=0X00;
ET0=1;ET1=1;
EA=1;PT1=0;
PT0=0;TR1=1;
}
//定时器0中止服务函数
voidtime0(void)interrupt1//
{
PWM_OUT=0;
TR0=0;
}
//定时器1中止服务函数
voidtime1()interrupt3
{
TH1=0Xb8;
TL1=0X00;
PWM_OUT=1;
TH0=th0;
TL0=tl0;
TR0=1;
}
2.3.3PID程序设计
PID是百分比(P)、积分(I)、微分(D)控制算法,计算公式为dout=kp*e+ki*se+kd*de;百分比(P)、积分(I)、微分(D)控制算法各有作用:
百分比,反应系统基础(目前)偏差e(t),系数大,能够加紧调整,减小误差,但过大百分比使系统稳定性下降,甚至造成系统不稳定;
积分,反应系统累计偏差,使系统消除稳态误差,提升无差度,因为有误差,积分调整就进行,直至无误差;
微分,反应系统偏差信号改变率e(t)-e(t-1),含有预见性,能预见偏差改变趋势,产生超前控制作用,在偏差还没有形成之前,已被微分调整作用消除,所以能够改善系统动态性能。
不过微分对噪声干扰有放大作用,加强微分对系统抗干扰不利。
积分和微分全部不能单独起作用,必需和百分比控制配合。
PID算法程序以下:
voidpid(void)
{
floatt0,zkb;
uintt0_value;
floate=0,de=0,dout=0;
e=set_value-test_value;
se=se+e;
de=e-le;
dout=kp*e+ki*se+kd*de;
le=e;
zkb=15+dout;
if(zkb<2)
zkb=2;
elseif(zkb>80)
zkb=80;
t0=184.31*zkb;
t0=65535-t0;
t0_value=(uint)t0;
th0=(t0_value&0xff00)>>8;
tl0=(t0_value&0x00ff);
}
2.3.4DS18B20温度采集程序设计
DS18B20是单总线结构,最高精度0.0625摄氏度。
要读取温度时首先经过单总线向DS18B20发送跳过ROM指令,然后发送温度转换命令,等候温度转换完成后向DS18B20发送读取温度命令,然后就能够读取DS18B2012位采样值。
程序以下:
//18b20温度转换和读温度操作函数
voidread_18b20()
{
shortwendu;
shorta;
shortb;
uintwd;
init_18b20();
display_value();
keyscan();
write_bites(0xcc);
write_bites(0x44);
delay_750ms();
init_18b20();
display_value();
keyscan();
write_bites(0xcc);
write_bites(0xbe);
display_value();
a=read_bites();
b=read_bites();
wendu=b*256+a;
test_value=wendu*0.0625;
wd=wendu*0.625;
value[3]=wd/100;
value[4]=wd/10%10;
value[5]=wd%10;
display_value();
}
2.3.5数码管显示程序设计
数码管显示程序采取8个共阴极数码管动态刷新模式进行,经过8位锁存器MC74HC573完成段选和位选,节省IO口使用。
程序以下:
voiddisplay_value(void)
{
P0=sz[12];
DU=1;DU=0;
P0=0x7f;
WE=1;WE=0;
delay_ms
(1);
P0=sz[value[5]];
DU=1;DU=0;
P0=0xbf;
WE=1;WE=0;
delay_ms
(1);
P0=sz[value[4]]+0x80;
DU=1;DU=0;
P0=0xdf;
WE=1;WE=0;
delay_ms
(1);
P0=sz[value[3]];
DU=1;DU=0;
P0=0xef;
WE=1;WE=0;
delay_ms
(1);
P0=sz[12];
DU=1;DU=0;
P0=0xf7;
WE=1;WE=0;
delay_ms
(1);
P0=sz[value[2]];
DU=1;DU=0;
P0=0xfb;
WE=1;WE=0;
delay_ms
(1);
P0=sz[value[1]]+0x80;
DU=1;DU=0;
P0=0xfd;
WE=1;WE=0;
delay_ms
(1);
P0=sz[value[0]];
DU=1;DU=0;
P0=0xfe;
WE=1;WE=0;
delay_ms
(1);
}
2.3.6独立按键扫描程序设计
独立按键扫描程序采取4个独立按键不间断扫描方法进行,当独立按键按下后,对应IO口会变成低电平,消抖后经过判定对应IO口是否为低电平来判定按键是否按下。
四个按键中,key1功效为设定温度整数部分-1,key2功效为设定温度整数部分+1,key3功效为设定温度小数部分-1,key4功效为设定温度小数部分+1,程序设计以下:
voidkeyscan(void)
{
if(key4==0)
{
display_value();
if(key4==0)
{
while(!
key4)//等候按键松开
{
display_value();
}
if(value[1]==0)
{
value[1]=9;
value[0]--;
}
else
{
value[1]--;
}
set_value=value[0]*10+value[1]+value[2]*0.1;
}
}
if(key3==0)
{
display_value();
if(key3==0)
{
while(!
key3)
{
display_value();
}
if(value[1]==9)
{
value[1]=0;
value[0]++;
}
else
{
value[1]++;
}
set_value=value[0]*10+value[1]+value[2]*0.1;
}
}
if(key2==0)
{
display_value();
if(key2==0)
{
while(!
key2)
{
display_value();
}
if(value[2]==0)
{
value[2]=9;
if(value[1]==0)
{
value[0]--;
value[1]=9;
}
else
{
value[1]--;
}
}
else
{
value[2]--;
}
set_value=value[0]*10+value[1]+value[2]*0.1;
}
}
if(key1==0)
{
display_value();
if(key1==0)
{
while(!
key1)
{
display_value();
}
if(value[2]==9)
{
value[2]=0;
if(value[1]==9)
{
value[0]++;
value[1]=0;
}
else
{
value[1]++;
}
}
else
{
value[2]++;
}
set_value=value[0]*10+value[1]+value[2]*0.1;
}
}
}
第3章系统测试
3.1测试数据统计
初始温度:
38.5℃
设定温度:
44.7℃
加热电压:
15V
加热电阻:
10欧姆
全速加热功率:
19W
试验所测数据表格如表3.1所表示:
时间t/分钟
0
1
2
3
4
5
6
7
8
9
10
测量温度/摄氏度
38.5
40.8
41.9
43
43.6
44.1
44.5
44.6
44.6
44.6
44.6
时间t/分钟
11
12
13
14
15
16
17
18
19
20
21
测量温度/摄氏度
44.6
44.6
44.6
44.6
44.6
44.6
44.6
44.6
44.6
44.6
44.6
表3.1时间、温度统计表
3.2数据分析和结论
由试验所测数据表格绘制图3.2所表示温度测量曲线图:
图3.2温度测量曲线图
由温度测量曲线图能够看出系统从设定温度38.5℃逐步靠近设定温度44.7℃,并最终稳定在44.6℃不变。
当系统稳定在44.6℃时,输出占空比为40.5%,加热功率为9.6W。
另试验时观察输出占空比发觉占空比在缓慢增加,当占空比缓慢增加到一定程度,系统将稳定在44.7℃。
在程序中可合适增加PID中积分参数I大小以使温度愈加快稳定在设定温度。
由温度测量曲线图能够看出本水温控制系统稳态误差为0.1℃,系统上升时间7分钟。
所以该水温控制系统很好完成了设计要求。
第4章总结
本系统稳态误差小,超调量小,整体性能良好。
另外,系统还能够经过按键设置设定温度大小,设定温度和控制温度可正确到一位小数;经过数码管动态实时显示设定温度和目前测量温度,人机交互界面良好。
但设计也有些不足地方:
系统要用开关电源供电;加热功率最大20W,系统上升时间较长;系统所处环境改变或所烧水量发生改变后,系统响应曲线会发生改
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动控制 原理 水温 控制 新版 系统 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)