欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    空调控制系统设计.doc

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

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

    空调控制系统设计.doc

    1、空调控制系统设计报告空调控制系统设计任务书设计内容设计一空调房间温度控制系统,该系统能准确测量房间温度,并根据设定温度进行有效控制。空调设计变频空调制冷(热)量与压缩机转速有关,通过控制压缩机转速频率来控制所需热量。空调模型相当于一个积分环节与一个惯性环节的串联。房间模型主要考虑室内外温度干扰与散热片热量共同作用于具有初始温度房间,经空气导热延迟,简化为具有一阶惯性环节。设房间热惯性时间常数=450,空气导热延迟=35,选择合适的控制算法进行控制。设计步骤总体方案设计一、控制系统的建模和数字控制器设计二、硬件的设计和实现选择计算机字长(选用 51内核的单片机)设计支持计算机工作的外围电路(EP

    2、ROM、RAM、I/O端口、键盘、显示接口电路等);设计输入信号接口电路;设计信号输出控制电路;其它相关电路的设计或方案(电源、通信等)。三、软件设计分配系统资源,编写系统初始化和主程序模块框图;编写A/D转换和位置检测子程序框图;编写控制程序和D/A转换控制子程序模块框图;其它程序模块(显示与键盘等处理程序)框图。四、编写课程设计说明书,绘制完整的系统电路图(A3幅面)。目 录1.课程设计的目的与意义32.设计任务32.1设计内容32.2计划设计进程33.设计方案44.空调模型44.1模型分析44.2 MATLAB仿真54.3仿真结果55.硬件设计55.1硬件系统框图55.2各部分的硬件设计

    3、56软件设计116.1工作模式分析116.2系统程序流程图126.3 AD转化程序设计126.4 PID算法设计137.学习心得及体会138.感谢149.参考文献1410.附录15摘要本文详细叙述了利用51单片机构建了一个空调控制系统。确定了影响室内温度参数检测控制方法,并对其传感器测量电路、控制器执行电路及软件系统进行了设计。用Matlab软件对系统进行仿真,结果表明系统运行稳定,能达到预期的控制要求。关键词: 空调模型 51单片机MATLAB 控制系统1.课程设计的目的与意义通过该课程的学习使我们对计算机控制系统有一个全面的了解、掌握常规控制算法的使用方法、掌握简单微型计算机应用系统软硬的

    4、设计方法,进一步锻炼同学们在微型计算机应用方面的实际工作能力。课程设计是一项综合性的专业实践活动,目的是让学生将所学的基础理论和专业知识运用到具体的工程实践中,以培养学生综合运用知识能力、实际动手能力和工程实践能力,计算机科学在自动化控制应用上得到了飞速发展,因此,学习这方面的知识必须紧密联系实际,掌握这方面的知识更要强调解决实际问题的能力。我们要着重学会面对一个实际问题,如何去自己的收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地提高分析和解决问题的能力。2.设计任务2.1设计内容设计一空调房间温度控制系统,该系统能准确测量房间温度,并根据设定温度进行有效控制。

    5、空调设计变频空调制冷(热)量与压缩机转速有关,通过控制压缩机转速频率来控制所需热量。空调模型相当于一个积分环节与一个惯性环节的串联。房间模型主要考虑室内外温度干扰与散热片热量共同作用于具有初始温度房间,经空气导热延迟,简化为具有一阶惯性环节。2.2计划设计进程 一、总体方案设计二、控制系统的建模和数字控制器设计三、硬件的设计和实现1、选择计算机字长(选用 51内核的单片机)2、设计支持计算机工作的外围电路(EPROM、RAM、I/O端口、键盘、显示接口电路等);3、设计输入信号接口电路;4、设计信号输出控制电路;5、其它相关电路的设计或方案(电源、通信等)。四、软件设计1、分配系统资源,编写系

    6、统初始化和主程序模块框图;2、编写A/D转换和位置检测子程序框图;3、编写控制程序和D/A转换控制子程序模块框图;4、其它程序模块(显示与键盘等处理程序)框图。五、编写课程设计说明书,绘制完整的系统电路图(A3幅面)。3.设计方案空调控制系统可以划分为七大部分:系统控制部分、室内温度采集部分、键盘控制部分、温度显示部分、压缩机控制部分、四通阈控制部分、风机控制部分。各模块电路的框图如图所示。4.空调模型4.1模型分析(1)空调模型相当于一个积分环节与一个惯性环节的串联。房间模型主要考虑室内外温度干扰与散热片热量共同作用于具有初始温度房间,经空气导热延迟,简化为具有一阶惯性环节。 (2)由任务书

    7、给定条件:房间热惯性时间常数为450,空气导热延迟=35,通过分析,我们选择PID控制算法进行控制。 4.2 MATLAB仿真图 1 MATLAB仿真4.3仿真结果图 2 MATLAB仿真结果5.硬件设计5.1硬件系统框图根据任务书可知,该系统需要人机界面(按键输入LCD1602显示),AD采样,以及单片机控制部分等模块,并且可以得到以下硬件系统框图图3 硬件系统框图5.2各部分的硬件设计1温度传感器选择根据任务要求我们选择了AT590作为温度传感器。AD590电流输出型两端温度传感器是美国模拟器件公司生产的单片集成两端感温电流源。它的主要特性如下: (1)流过器件的电流(mA)等于器件所处环

    8、境的热力学温度(开尔文)度数,即:mA/K式中:流过器件(AD590)的电流,单位为mA;T热力学温度,单位为K。 2、AD590的测温范围为-55+150。 3、AD590的电源电压范围为4V30V。电源电压可在4V6V范围变化,电流 变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。4、精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55+150范围内,非线性误差为0.3。其规格如下: 温度每增加1,它会增加1A输出电流。 可量测范围-55至150。 供应电压范围+4V至30V。AD590的接脚图及零件符号如下图

    9、所示: AD590的输出电流值说明如下: 其输出电流是以绝对温度零度(-273)为基准,每增加1,它会增加1A输出电流,因此在室温25时,其输出电流Io=(273+25)=298A。 Vo的值为Io乘上10K,以室温25而言,输出值为2.98V(10K298A)。 量测Vo时,不可分出任何电流,否则测量值会不准。电路分析:AD590的输出电流I=(273+T)A(T为摄氏温度),因此电压V为(273+T)A 10K= (2.73+T/100)V。为了将电压量测出来又需使输出电流I不分流出来,我们使用电压追随器其输出电压V2等于输入电压V。 由于一般电源供应较多零件之后,电源是带杂讯的,因此我们

    10、使用齐纳二极体作为稳压零件,再利用可变电阻分压,其输出电压V1需调整至2.73V。接下来我们使用差动放大器其输出Vo为(100K/10K)(V2-V1)=T/10V。如果现在为摄氏28度,输出电压为2.8V。 (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的内部逻辑结构IN

    11、0IN1IN2IN3IN4IN5IN6IN7ALEBCA地址锁存与译码器VREF(+)OEVREF(-)D0EOCD1D3D4D5D6三态输出锁存器8路A/D转换器8路模拟量开关D7D2CLKST图4 ADC0809内部原理由图4可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。b.引脚结构(如图)IN0IN7:8条模拟量输入通道 图6 ADC0809引脚图ADC

    12、0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;地址输入和控制线:4条。图5ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁 存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择表如表2所示。CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7表 1数字量输出及控制线:11条ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换

    13、期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(),VREF()为参考电压输入。c.ADC0809应用说明 ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。初始化时,使ST和OE信号全为低电平。送要转换的哪一通道的地址到A,B,C端口上。

    14、在ST端给出一个至少有100ns宽的正脉冲信号。是否转换完毕,我们根据EOC信号来判断。当EOC变为高电平时,给OE为高电平,转换的数据就输出给单片机了。(3)按键输入因为按键数目不多,所以系统直接采用非编码方式,直接连接单片机I/O口。图5 按键电路(4)显示部分系统采用LCD1602,P0和P3.0-P3.2作为输出口,控制LCD显示器,如图8。图6 LCD1602(5)输出控制设计使用LCD1602显示当前设定温度和实际测量温度,用两个LED指示当前空调状态(加热或制冷),51单片机的低电平驱动能力较强,LED可以直接连接单片机的I/O口;单片机输出PWM波经驱动电路从而控制压缩机的转速

    15、。(6)系统硬件设计图图7 硬件原理图6软件设计6.1工作模式分析由系统要求可以列出表3。工作模式设定温度实际温度压缩机制冷25.0度小于25.0度工作制热25.0度小于25.0度工作保持25.0度小于25.0度不工作表 3根据上表,我们列出一系列子程序,再根据当前状况选择相应的子程序。例如控制部分子程序如下:void output(int temp1,int temp2) unsigned char table3; table2=temp1%10; table1=(temp1/10)%10; table0=(temp1/100)%10; DisplayString(0,1,Current T

    16、:); /显示当前测量温度 DisplayOneChar(10,1,table0+0x30); DisplayOneChar(11,1,table1+0x30); DisplayOneChar(8,1,.); DisplayOneChar(12,1,table2+0x30); DisplayOneChar(13,1,C); table2=temp2%10; table1=(temp2/10)%10; table0=(temp2/100)%10; DisplayString(0,0,SetUp T:); /显示空调设定温度 DisplayOneChar(10,0,table0+0x30); Di

    17、splayOneChar(11,0,table1+0x30); DisplayOneChar(8,0,.); DisplayOneChar(12,0,table2+0x30); DisplayOneChar(13,0,C); if(temp1temp2)motor=0; cold=0;hot=1; /当前温度大于设定温度,制冷 else if(temp1temp2)motor=0; cold=1;hot=0; /当前温度小于设定温度,加热 else motor=1; cold=1;hot=1; /当前温度等于设定温度,保持 6.2系统程序流程图 开始LED初始化A/D转换算法分析输出控制按键扫

    18、描图 10 系统流程图6.3 AD转化程序设计(1) 进行A/D转换之前,要启动转换的方法:ABC000选择第一通道。ST0,ST1,ST0产生启动转换的正脉冲信号(2) 进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P1端口读入进行处理。6.4 PID算法设计void pid(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

    19、*(error+pre_d_error-2*pre_error); 7.学习心得及体会通过本此课程设计我已经可以熟练使用一些控制算法及设计方法。与此同时,也锻炼了我们的基本设计能力,为我们日后的学习打下了坚实的基础。通过这次课程设计,进一步加深了对计算机控制技术的了解,让我对它有了更加浓厚的兴趣。特别是每当程序编写调试成功时,心里特别的开心。但是有时也遇到了不少问题,特别是硬件之间的连接,总是有错误的存在,但是在我们细心的检查下,终于找出了错误和警告的所在,排除困难后,心里终于舒了一口气。在空调控制系统的设计过程中,再一次认识到团队精神以及协同合作的重要性和优越性,无论是学习,还是日常生活,都

    20、应该继承和发扬这种珍贵的团队精神。虽然这次学习时间并不长,但是对自主学习的要求提高了,通过这样的学习形式,提高了我的学习能力。此次的计算机控制技术课程设计,得到了不少的启示。思考问题以及进行实践都要严谨,缜密。真所谓小心取证,就是这个道理。让我重新认识了团队精神的重要性及如何在团队中尽可能的发挥自己的长处、优势;如何去学习别人的长处、优点来弥补自身的不足都有了一定程度的提升。通过学习空调控制系统的设计,更加了解可编程控制器的构造及应用,激发我们的创新意识。在学习与进行设计的过程中,利用已经掌握的知识及查阅的资料,自行完成课程设计任务以及设计完成。“学无止境,上下求索”,在今后的工作中,我将把学

    21、到的知识和自己的同伴的知识融合,并灵活的运用到学习、工作和生活当中。课程设计的学习生活使我的人生有了较高的起点,在这个起点上,我将不断向前,用自己辛勤的汗水,铿锵的脚步和竖韧不拔的精神,体验人生的涵义,谱写对生命的承诺。只有不断挑战自己、超越自己,才能跟上时代的步伐。8.感谢 本次课程设计历时两周,但是由于经验的匮乏和理论知识的不足,在理论设计与实现上难免有许多考虑不周全的地方,多亏丁健和刘伟老师全力给予我们的帮助,实时关注我们的进展情况,督促我们按进程完成阶段性任务,使得我们能顺利完成这次设计任务。他严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。在此,谨向丁老师和刘老师致以最诚挚

    22、的谢意!9.参考文献1于海生 编著 计算机控制技术. 北京:机械工业出版社,2009 2余锡存 曹国华著 单片机原理与接口技术西安:西安电子科技大学出版社,2003年。3田良 黄正谨著 综合电子设计与实践 南京:东南大学出版社,2003年。10.附录#include voidLcd_WriteData(unsignedcharTempData); voidLcd_WriteCmd(unsignedcharTempData,unsignedchar BuysC); void Lcd_ReadStatus(void); void Lcd_Init(void); /LCD初始化 unsigned c

    23、har Lcd_ReadData(void);void DisplayString(unsigned char X, unsigned char Y, unsigned char *DData); void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData); void Delay(unsignedintdelaytime);unsigned int ADC0809();void setup(unsigned char);void output(int temp1,int temp2);unsigned c

    24、har key_scan();/* 全局变量定义*/ sbitLcd_RS=P30; sbitLcd_RW = P31; sbitLcd_E = P32; #defineLcd_DataP0 sbit ST=P25;sbit EOC=P26;sbit OE=P27; sbit CLK=P24;#define ADC_OUT P1sbit up=P34;sbit down=P35;sbit motor=P20;sbit hot=P21;sbit cold=P22;int setup_t=250/* 主函数*/void main(void) unsigned int current_t; unsi

    25、gned char key; Lcd_Init(); /lcd初始化 while(1) current_t=ADC0809(); key=key_scan(); setup(key); output(current_t,setup_t); /* 子函数定义*/unsigned char key_scan()unsigned char temp=0;if(up=0) temp=1; while(!up); else if(down=0) temp=2;while(!down); return(temp); void setup(unsigned char t1) if(t1=1) setup_t

    26、+; if(t1=2) setup_t-;void output(int temp1,int temp2) unsigned char table3; table2=temp1%10; table1=(temp1/10)%10; table0=(temp1/100)%10; DisplayString(0,1,Current T:); DisplayOneChar(10,1,table0+0x30); DisplayOneChar(11,1,table1+0x30); DisplayOneChar(12,1,.); /LCD显示测量值 DisplayOneChar(13,1,table2+0x

    27、30); DisplayOneChar(14,1,C); table2=temp2%10; table1=(temp2/10)%10; table0=(temp2/100)%10; DisplayString(0,0,SetUp T:); DisplayOneChar(10,0,table0+0x30); DisplayOneChar(11,0,table1+0x30); DisplayOneChar(12,0,.); /LCD显示测量值 DisplayOneChar(13,0,table2+0x30); DisplayOneChar(14,0,C); if(temp1temp2)motor=

    28、0; cold=0;hot=1; else if(temp1temp2)motor=0; cold=1;hot=0; else motor=1; cold=1;hot=1; void pid(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); /* A/D转换程序*/unsigned int A

    29、DC0809() unsigned int adc; unsigned longint getdata; ST=0; OE=0; ST=1; ST=0; while(1) CLK=CLK ; if(EOC=1) break; /AD时钟脉冲 OE=1; getdata=ADC_OUT; OE=0; adc=getdata*500/256; return(adc);/* LCD1602驱动程序*/voidLcd_WriteData(unsignedcharTempData)Lcd_ReadStatus(); Lcd_Data = TempData;Lcd_RS = 1;Lcd_RW = 0;Lc

    30、d_E = 0; Lcd_E = 0; Lcd_E = 1;Lcd_E = 0; /写指令voidLcd_WriteCmd(unsignedcharTempData,unsignedcharBuysC)if (BuysC) Lcd_ReadStatus(); Lcd_Data = TempData;Lcd_RS = 0;Lcd_RW = 0;Lcd_E = 0;Lcd_E = 0;Lcd_E = 1;Lcd_E = 0;Lcd_E = 0; /读数据unsigned char Lcd_ReadData(void)Lcd_RS = 1;Lcd_RW = 1;Lcd_E = 0;Lcd_E = 0

    31、;Lcd_E = 0;Lcd_E = 0;Lcd_E = 1;Lcd_E = 0;return(Lcd_Data);void Lcd_ReadStatus(void) Delay(100);void Lcd_Init(void) /LCM初始化Lcd_Data = 0;Lcd_WriteCmd(0x38,0); /三次显示模式设置,不检测忙信号Delay(6000);Lcd_WriteCmd(0x38,0);Delay(6000);Lcd_WriteCmd(0x38,0);Delay(6000);Lcd_WriteCmd(0x38,1); /显示模式设置,开始要求每次检测忙信号Lcd_Writ

    32、eCmd(0x08,1); /关闭显示Lcd_WriteCmd(0x01,1); /显示清屏Lcd_WriteCmd(0x06,1); / 显示光标移动设置Lcd_WriteCmd(0x0C,1); / 显示开及光标设置 /按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)Y &= 0x1;X &= 0xF; /限制X不能大于15,Y不能大于1if (Y) X |= 0x40; /当要显示第二行时地址码+0x40;X |= 0x80; /算出指令码Lcd_WriteCmd(X

    33、, 0); /这里不检测忙信号,发送地址码Lcd_WriteData(DData);/按指定位置显示一串字符void DisplayString(unsigned char X, unsigned char Y, unsigned char *DData)unsigned char ListLength;ListLength = 0;Y &= 0x1;X &= 0xF; /限制X不能大于15,Y不能大于1while (DDataListLength!=0) /若到达字串尾则退出if (X = 0xF) /X坐标应小于0xFDisplayOneChar(X, Y, DDataListLength); /显示单个字符ListLength+;X+;void Delay(unsignedintdelaytime)while(delaytime-);课程设计评语指导教师评语设计成绩注21


    注意事项

    本文(空调控制系统设计.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922