空调控制系统设计论文Word格式文档下载.doc

上传人:wj 文档编号:8705958 上传时间:2023-05-13 格式:DOC 页数:22 大小:369.66KB
下载 相关 举报
空调控制系统设计论文Word格式文档下载.doc_第1页
第1页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第2页
第2页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第3页
第3页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第4页
第4页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第5页
第5页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第6页
第6页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第7页
第7页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第8页
第8页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第9页
第9页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第10页
第10页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第11页
第11页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第12页
第12页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第13页
第13页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第14页
第14页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第15页
第15页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第16页
第16页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第17页
第17页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第18页
第18页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第19页
第19页 / 共22页
空调控制系统设计论文Word格式文档下载.doc_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

空调控制系统设计论文Word格式文档下载.doc

《空调控制系统设计论文Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《空调控制系统设计论文Word格式文档下载.doc(22页珍藏版)》请在冰点文库上搜索。

空调控制系统设计论文Word格式文档下载.doc

(5):

对程序进行汇编,调试和修改,直到程序运行结果正确为止。

计划设计进程

一、总体方案设计

二、控制系统的建模和数字控制器设计

三、硬件的设计和实现

1、选择计算机字长(选用51内核的单片机);

2、设计支持计算机工作的外围电路(EPROM、RAM、I/O端口、键盘、显示接口电路等);

3、设计输入信号接口电路;

4、设计输出控制电路;

5、其它相关电路的设计或方案(电源、通信等)。

四、软件设计

1、分配系统资源,编写系统初始化和主程序模块框图;

2、编写A/D转换和位置检测子程序框图;

3、编写控制程序和D/A转换控制子程序模块框图;

4、其它程序模块(显示与键盘等处理程序)框图。

五、编写课程设计说明书,绘制完整的系统电路图(A3幅面)

参考文献

1、于海生计算机控制技术[M]北京:

机械工业出版社,2007.6

2、周荷琴等微型计算机原理及接口技术[M]合肥:

中国科技大学出版社,2008.6

3、李刚民等单片机原理及应用技术[M]北京:

高等教育出版社

4、楼然苗51系列单片机设计实例[M]北京:

北京航空航天大学出版社

5、计算机控制技术实验指导书

2009---2010第一学期

摘 要

本文详细叙述了利用51单片机构建了一个空调控制系统。

确定了影响室内温度参数检测控制方法,并对其传感器测量电路、控制器执行电路及软件系统进行了设计。

用Matlab软件对系统进行仿真,结果表明系统运行稳定,能达到预期的控制要求。

关键词:

空调模型51单片机MATLAB控制系统

目录

1.本课程设计的目的与意义 4

1.1设计的目的 4

1.2课程设计的与意义 4

2.设计任务 5

2.1设计内容 5

2.2设计要求 5

3.空调模型 5

3.1模型分析 5

3.2MATLAB仿真 6

3.3仿真结果 6

4硬件设计 6

4.1硬件系统框图 6

4.2各部分硬件的设计 7

5.软件设计 12

5.1工作模式分析 12

5.2系统程序流程图 13

5.3AD转化程序设计 13

5.4PID算法设计 13

6.总结 14

7.感谢 14

1.本课程设计的目的与意义

1.1设计的目的

通过该课程的学习使我们对计算机控制系统有一个全面的了解、掌握常规控制算法的使用方法、掌握简单微型计算机应用系统软硬的设计方法,进一步锻炼同学们在微型计算机应用方面的实际工作能力。

1.2课程设计的与意义

《计算机控制系统》课程是我们自动化专业在这个学期学的一门专业课程。

通过该课程的学习使我们对微机系统有一个基本的了解、掌握常规控制算法的使用方法、掌握简单微型计算机应用系统软硬的设计方法。

而通过《计算机控制系统》课程设计还进一步锻炼了同学们在计算机应用方面的实际工作能力。

计算机科学在自动化控制应用上得到了飞速发展,因此,学习这方面的知识必须紧密联系实际,掌握这方面的知识更要强调解决实际问题的能力。

我们要着重学会面对一个实际问题,如何去自己的收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地提高分析和解决问题的能力。

2.设计任务

2.1设计内容

2.2设计要求

五、总体方案设计

六、控制系统的建模和数字控制器设计

七、硬件的设计和实现

1、选择计算机字长(选用51内核的单片机)

2、设计支持计算机工作的外围电路(EPROM、RAM、I/O端口、键盘、显示接口电路等);

3、设计输入信号接口电路;

4、设计信号输出控制电路;

5、其它相关电路的设计或方案(电源、通信等)。

八、软件设计

1、分配系统资源,编写系统初始化和主程序模块框图;

2、编写A/D转换和位置检测子程序框图;

3、编写控制程序和D/A转换控制子程序模块框图;

4、其它程序模块(显示与键盘等处理程序)框图。

五、编写课程设计说明书,绘制完整的系统电路图。

3.空调模型

3.1模型分析

(1)空调模型相当于一个积分环节与一个惯性环节的串联。

(2)由任务书给定条件:

房间热惯性时间常数=450,空气导热延迟τ=35,通过分析,我们选择PID控制算法进行控制。

3.2MATLAB仿真

图1MATLAB仿真

3.3仿真结果

图2MATLAB仿真结果

4硬件设计

4.1硬件系统框图

根据任务书可知,该系统需要人机界面(按键输入LCD1602显示),AD采样,以及单片机控制部分等模块,并且可以得到以下硬件系统框图

图3硬件系统框图

4.2各部分硬件的设计

(1).a温度传感器选择

根据任务要求我们选择了AT590作为温度传感器,根据电阻分压(如下图左),实现由温度到电压值的转换,因为AT590的温度系数比较大,经计算当温度变化范围是0-99度时,可以不用运放,直接送到AD采样的输入端进行AD采样。

b.温度传感器AD590基本知识

AD590产生的电流与绝对温度成正比,它可接收的工作电压为4V-30V,检测的温度范围为-55℃-+150℃,它有非常好的线性输出性能,温度每增加1℃,其电流增加1uA,AD590温度与电流的关系如表1所示。

摄氏温度

AD590电流

经10KΩ电压

0℃

273.2uA

2.732V

10℃

283.2uA

2.832V

20℃

293.2uA

2.932V

30℃

303.2uA

3.032V

40℃

313.2uA

3.132V

50℃

323.2uA

3.232V

60℃

333.2uA

3.332V

100℃

373.2uA

3.732V

表1

图4温度传感器电路

(2).AD转换器的选择

因为温度变化范围是-50--50度,理论上AD位数只要7位(128级)就够了,

所以系统采用了经典的ADC0809(8位AD)作为AD采样芯片。

温度的计算公式:

V=5*Rt/(R+R1+Rt)。

ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和单片机直接接口。

a.ADC0809的内部逻辑结构

8路模拟量开关

8路A/D转换器

三态输出锁存器

地址锁存与译码器

IN0

IN1

IN2

IN3

IN4

IN5

IN6

IN7

A

B

C

ALE

VREF(+)

VREF(-)

OE

EOC

D0

D1

D2

D3

D4

D5

D6

D7

CLK

ST

图5ADC0809内部原理

由图5可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

b.引脚结构(如图6)

IN0-IN7:

8条模拟量输入通道图6ADC0809引脚图

ADC0809对输入模拟量要求:

信号单极性,电压范围是0-5V,若信号太小,必须进行放大;

地址输入和控制线:

4条。

ALE为地址锁存允许输入线,高电平有效。

当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。

A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

通道选择表如表2所示。

选择的通道

1

表2

数字量输出及控制线:

11条

ST为转换启动信号。

当ST上跳沿时,所有内部寄存器清零;

下跳沿时,开始进行A/D转换;

在转换期间,ST应保持低电平。

EOC为转换结束信号。

当EOC为高电平时,表明转换结束;

否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;

OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

CLK为时钟输入信号线。

因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。

c.ADC0809应用说明

①ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。

②初始化时,使ST和OE信号全为低电平。

③送要转换的哪一通道的地址到A,B,C端口上。

④在ST端给出一个至少有100ns宽的正脉冲信号。

⑤是否转换完毕,我们根据EOC信号来判断。

⑥当EOC变为高电平时,给OE为高电平,转换的数据就输出给单片机了。

(3).按键输入

因为按键数目不多,所以系统直接采用非编码方式,直接连接单片机I/O口。

图7按键电路

(4).显示部分

系统采用LCD1602,P0和P3.0-P3.2作为输出口,控制LCD显示器,如图8。

图8LCD1602

(5).输出控制

设计使用LCD1602显示当前设定温度和实际测量温度,用两个LED指示当前空调状态(加热或制冷),51单片机的低电平驱动能力较强,LED可以直接连接单片机的I/O口;

单片机输出PWM波经驱动电路从而控制压缩机的转速。

(6)系统硬件设计图

图9硬件原理图

5.软件设计

5.1工作模式分析

由系统要求可以列出表3。

工作

模式

设定

温度

实际

压缩机

制冷

25.0度

小于25.0度

制热

保持

表3

根据上表,我们列出一系列子程序,再根据当前状况选择相应的子程序。

例如控制部分子程序如下:

voidoutput(inttemp1,inttemp2)

{

unsignedchartable[3];

table[2]=temp1%10;

table[1]=(temp1/10)%10;

table[0]=(temp1/100)%10;

DisplayString(0,1,"

CurrentT:

"

);

//显示当前测量温度

DisplayOneChar(10,1,table[0]+0x30);

DisplayOneChar(11,1,table[1]+0x30);

DisplayOneChar(8,1,'

.'

DisplayOneChar(12,1,table[2]+0x30);

DisplayOneChar(13,1,'

C'

table[2]=temp2%10;

table[1]=(temp2/10)%10;

table[0]=(temp2/100)%10;

DisplayString(0,0,"

SetUpT:

//显示空调设定温度

DisplayOneChar(10,0,table[0]+0x30);

DisplayOneChar(11,0,table[1]+0x30);

DisplayOneChar(8,0,'

DisplayOneChar(12,0,table[2]+0x30);

DisplayOneChar(13,0,'

if(temp1>

temp2){motor=0;

cold=0;

hot=1;

}//当前温度大于设定温度,制冷

elseif(temp1<

cold=1;

hot=0;

}//当前温度小于设定温度,加热

else{motor=1;

}//当前温度等于设定温度,保持

}

5.2系统程序流程图

图10系统流程图

5.3AD转化程序设计

(1)进行A/D转换之前,要启动转换的方法:

ABC=000选择第一通道。

ST=0,ST=1,ST=0产生启动转换的正脉冲信号

(2)进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P1端口读入进行处理。

5.4PID算法设计

voidpid(void)

{

error=ideal_speed-pulse_speed;

d_error=error-pre_error;

pre_error=error;

pre_d_error=d_error;

PWM+=kp*d_error+ki*error+kd*(error+pre_d_error-2*pre_error);

}

6.总结

经过两周的课程设计,终于完成了《空调控制系统》的设计。

此设计已经达到了最初期望的设计要求,完成了需求。

在这次《空调控制系统》的设计过程中我受到很大启发,体会到了理论与实际结合的重要性,认识到实践中应该更加注重设计的规划及按步骤实施。

本次设计是大学所学知识的综合运用,是理论与实践相结合的产物。

在此期间,不但巩固了所学的书本知识。

而且还学到了许多课堂上和书本上无法学到的实践知识,提高了自学能力,增强了专业技术的水平,为今后从事本专业的工作打下一定的基础。

但是,由于时间仓促以及本人水平有限,本系统还有很多不完善之处,也难免存在错漏,以后我回继续完善该系统。

7.感谢

经过两个星期的忙碌,本次任务已经接近尾声,作为一个实践经验不足的学生,难免有许多考虑不周全的地方,如果没有老师的指导,队友的努力以及同学们的支持,想要完成这个设计是难以想象的。

在此,向他们致以最诚挚的谢意!

1.于海生编著计算机控制技术.北京:

机械工业出版社,2009

2.余锡存曹国华著单片机原理与接口技术.西安:

西安电子科技大学出版社,2003年。

3.田良黄正谨著综合电子设计与实践.南京:

东南大学出版社,2007年。

4.俊杰编著检测技术与仪表武汉:

武汉理工大学出版社2006年

附录

/*

*********************************************************************

*空调控制系统设计

*

*Teammember石婷婷,孙军,陈阳

*

*(c)Copyright2009

*

*File:

main.c

*By:

ChenYang

*Email:

sunshinechenyang@

*time:

2009.12.28

*Version:

V0.1

*/

*函数声明

#include<

reg52.h>

void Lcd_WriteData(unsigned char TempData);

void Lcd_WriteCmd(unsigned char TempData,unsigned charBuysC);

voidLcd_ReadStatus(void);

voidLcd_Init(void);

//LCD初始化

unsignedcharLcd_ReadData(void);

voidDisplayString(unsignedcharX,unsignedcharY,unsignedchar*DData);

voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData);

voidDelay(unsigned int delaytime);

unsignedintADC0809();

voidsetup(unsignedchar);

voidoutput(inttemp1,inttemp2);

unsignedcharkey_scan();

*全局变量定义

sbit Lcd_RS=P3^0;

sbit Lcd_RW=P3^1;

sbit Lcd_E=P3^2;

#define Lcd_Data P0

sbitST=P2^5;

sbitEOC=P2^6;

sbitOE=P2^7;

sbitCLK=P2^4;

#defineADC_OUTP1

sbitup=P3^4;

sbitdown=P3^5;

sbitmotor=P2^0;

sbithot=P2^1;

sbitcold=P2^2;

intsetup_t=250;

*主函数

voidmain(void)

{

unsignedintcurrent_t;

unsignedcharkey;

Lcd_Init();

//lcd初始化

while

(1)

{

current_t=ADC0809();

key=key_scan();

setup(key);

output(current_t,setup_t);

}

*子函数定义

unsignedcharkey_scan()

{

unsignedchartemp=0;

if(up==0){temp=1;

while(!

up);

}

elseif(down==0){temp=2;

while(!

down);

}

return(temp);

voidsetup(unsignedchart1)

if(t1==1)setup_t++;

if(t1==2)setup_t--;

table[1]=(temp1/10)%10;

table[0]=(temp1/100)%10;

DisplayOneChar(10,1,table[0]+0x30)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2