




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、论文格式*注意:此为封面格式*2011-2012德州仪器C2000及MCU创新设计大赛项目报告题 目: 基于msp430的家用太阳能加热控温沐浴系统 学校: 西安电子科技大学 组别: 本科组 应用类别: 控制系统类 平台: (MSP430或Cortex-M或C2000) 正文和附录中均不得大段复制源代码和原理图,只允许能充分体现创新方法或关键设计的少量源代码示例和原理图,滥用源代码和原理图的,评委有权扣分。正文+附录尽量控制在20页内,超过25页的部分不会被阅读*题 目:基于msp430的家用太阳能加热控温沐浴系统 摘要(中英文)针对现在的太阳能加热,我们的系统分为三部分:信号输入部分,加热控
2、制控制部分以及电机控制出水温度部分。信号输入部分我们采用便于现场控制的键盘输入和便于用户控制的红外输入,加热部分采用的是温度和容量可调的加热系统,而电机控制采用的是发展较为成熟的PID控制以及定位准确的步进电机控制。三个系统相互联系,总体上达到淋浴控温和加热目的。The water heating bath system is designed based on the solar energy water heating The system can be divided into three parts : definition part , heating and heat preser
3、vation part , and stepping motor temperature controlling part 。 For easy control , we use infrared controlling and keypad input method 。 For quickly heating , we defined two modes for heating and heat preservation 。 For quickly and stably temperature controlling in water outlet , we use PID method i
4、n running stepping motor 。 1. 引言简述系统设计的背景、目的、和所要解决的问题。随着进入节能时代,较好地利用各种的再生资源是我们设计产品的一个重要因素。太阳能,作为最容易获得的能量,渐渐开始成为各种绿色能源的首选。基于这个立场,我们基于太阳能加热的方案来设计出水温度的系统,利用电机控制冷水和热水的混合来达到控制出水温度的目的。再则考虑到晚上太阳能水箱热能散失导致温度下降热水供给不足的问题,我们可以需要给予系统加热的功能,解决晚上用户舒适洗澡的问题。在用户使用这个模块,考虑到用户在使用的时候因为浴室的原因,用液晶显示可能模糊,所以我们选用的是数码管显示输出。为了便于用
5、户的操作使用,我们采用红外控制,同时作为硬件调试和用户必要时的使用,我们增加用键盘对系统进行直接的控制值设置模块。考虑到现在的家庭一般都是3人家庭,在水位的设置上面,我们让用户可以对水位进行设定,分别是超低水位,一人,二人和三人水位。这样既可以节约到加热的时间,同时也可以节约到在晚上的时候热水洗澡而需要的加热热水的电费。至于电机控制模块,为了达到快,准,稳的要求,我们采用了现在比较成熟度 PID模块来解决电机控制。我们利用msp43016x系列内部的DAC模块,用利用数字PID方法算出输出电压,对步进电机来进行速度和方向的控制。从而达到了用户出水水温的快,准,稳。2. 系统方案 系统总框图:用
6、户设定加热控制水位控制出水控制 系统的总体构造思想是:用户可以在任意时候设定需要的目标值,例如水位,热水箱的温度,以及出水时候的温度。而对于系统,我们的做法是:水位超过的时候不给予进水,低于最低水位的时候为了保护系统必须关闭出水强行进水同时关闭加热控制。加热控制和水位控制并行操作,可以为用户节约时间。在超低水位时进行过热保护等措施。为了让洗澡时候的供水温度稳定,只有水位和热水温度到了设定的参数才准许用户开水洗澡。在出水控制这一模块,为了更好地获得稳定快速的输出,我们会采用现在较为成熟的PID算法对在出水控制这一块电机输出进行控制。最后,为了方便用户控制,我们同时采用红外和按钮键盘的方式给系统设
7、定参数。用红外的方式可以更好的让用户进行控制。而按钮键盘则为了更容易对系统进行调试以及在应急情况下对系统进行控制。3. 系统硬件设计以下是对系统的各个子系统的硬件设计进行简要说明:水位控制模块:水位控制框图:用户设定参数水位检测水位超出? Y 关闭热水阀 N超低水位? N进水水位控制模块思想比较简单,只关心水位是否达到设定要求。没有的时候就进水,有的时候就停止进水,节省用水。设计这一块的时候为了防止因为水位过低而引起的热水箱损坏,设计时候我们设计了超低水位,用来对水箱进行保护。当水位过低的时候,强行关闭热水阀,没有热水供出。同时加水,烧水,到了安全情况的时候才可以继续正常使用。热水加热模块:加
8、热模块框图:用户参数设定热水水温检测 N水温比较低?(要快速加热吗) Y N水温小于设 定水温?快速加热模式 Y 慢速加热模式加热模块设计思想是:为了可以快速地达到设定的水温同时可以稳定的控制水温,我们设定两种加热模式:快速加热模式和慢速加热模式。假设那个温度点我们设在设定温度的70%那里,那么在设定温度的70%以下的时候,我们把加热模式设置为快速加热模式;在超过的时候,我们设置在慢速加热模式。当温度小于设定温度,则用慢速加热。淋浴供水输出模块框图:需要淋浴出而且情况正常? 冷水水阀关闭 N Y冷水水阀打开计算温度偏差(实际出水温度-目标出水温度)PID计算输出电压 电压驱动输出 电机控制的主
9、要思想是:首先判断是否用户是否需要淋浴且机器情况正常。机器不正常或者用户不需要都会关闭冷水阀,禁止冷水流出。符合条件之后,电机控制冷水的进出来控制输出的水温。用这种方法的好处是当用户不需要进水的时候或者出现突发情况时候,系统可以很及时地做出相应,而且电机的寿命可以得到延长。同时,鉴于市面上的水阀控制,采用PID算法来控制可以得到更加平稳的调温效果和比较快捷的目标时间。PID控制模块:采用位置式的PID算法,控制系统如下: 设定出水温度 + 淋浴水温输出 - PID控制算法D/A 电机调节温水输出用户输入模块:用户输入模块框图: 用户参数设定(第一次是标准值) 红外扫描中断输入键盘扫描中断输入用
10、户输入模块分为红外和键盘两部分。都采用中断的方式,可以及时对单片机内部的参数赋值,然后让系统按照新的参数进行调节。漏电保护模块:如下图所示:作为一个沐浴系统所必需的安全保护系统中最重要的漏电保护系统。一旦出现漏电现象,立即关闭所有工作(软件控制)并切断电源(硬件电路控制)。4. 系统软件设计详细介绍算法设计与算法流程图(不得大量复制源代码)系统软件的设计上,在主程序开始之前,是参数的设定,有目标热水温度(aim_hot_temp),目标出水温度(aim_temp),目标水位设置(aim_water_level), 用户是否使用(use)。主程序开始部分是对各个端口的设定,以及关闭watch d
11、og,开启各个中断模块的标识。对单片机的资源分配如下:P1.0P1.6 键盘输入 P1.7 红外输入P2.0P2.3 水位检测P3.0,P3.1 数码管显示P4.0 DAC步进电机电机电压控制输出P4.1 步进电机电机转向控制输出P4.2 冷水紧热水箱阀门P4.3 淋浴热水放出阀门P4.4 淋浴冷水放出阀门P5.3 P5.4 热水加热模块(低速高速)P6.0 P6.1 接ds18b20温度检测模块接收温度以下是主程序的while(1)模块:while(1) int Time = 40; /延时部分 int i; for(;Time!=0;Time-) for(i=0;i<123;i+);
12、 if( P2IN & 0xf0 = 0xf0) water_level = 0;/这里是水位监测部分。高八位=1111时候是超低水位 else if( P2IN & 0xf0 = 0xe0 ) water_level = 1;/1是低水位 else if( P2IN & 0xf0 = 0xc0 ) water_level = 2;/2是一人水位 else if( P2IN & 0xf0 = 0x80 ) water_level = 3;/3是二人水位 else if( P2IN & 0xf0 = 0x00 ) water_level = 4; else
13、 water_level = 8;/(异常处理) now_temp = Do1Convert();/Do1Convert()是ds18b20 检测出水水温的传递函数 hot_temp = Do2Convert();/Do2Convert()是ds18b20 检测水箱热水水温的传递函数 initdisplay(); /对显示模块初始 display( now_temp ); /显示现在的出水温度 if (use) aim_water_level -=1;use = 0; if(water_level >= aim_water_level ) /p42 = 1 是冷水阀门开 否则关闭 p43
14、 = 1是热水阀开,否则关闭 P4OUT &= BIT2; P4OUT |= BIT3; else P4OUT |= BIT2; P4OUT &= BIT3; if(hot_temp <= 0.7 * aim_hot_temp)/加热判断,符合上述框图的条件就开启或者关闭热水加热. P5OUT |= 0x0c; else if(hot_temp < aim_hot_temp) P5OUT |= 0x04; /p53=1 P5OUT &= 0xf7; /p54=0 else P5OUT &= 0xf3; if(hot_temp > aim_hot
15、_temp - 3) /当热水温度低于目标热水温度3摄氏度的时候可以淋浴 P4OUT |= BIT3; P4OUT |= BIT4; if(P4OUT & 0x04 = 0x04)/如果热水阀开了 控制电机 temp_distant = PID_Caculate(aim_temp - now_temp); if(temp_distant >= 0 )/电机部分 P4OUT |= 0x02;/正向 DAC12_Set0( (int)temp_distant ); /电压控制转动,下面亦然 else P4OUT &= 0xfd;/反方向 DAC12_Set0( (int)-t
16、emp_distant ); else P4OUT &= BIT3; P4OUT &= BIT4; 延时程序以下是while(1)的流程图:检测参数(当前水箱水温,出水水温,水位)用户正在使用use=1?目标水位-=1use = 0 Y 水位到了吗?打开相应阀门进水 N N Y水箱温度符合要求吗? N Y电机控制调节出水温度 电机控制的部分我们采用PID算法。PID算法的控制如下:PID控制算法框图如下: 温度误差误差记录队列 比例放大 P 积分环节 微分环节 限幅环节 限幅环节 输入 + + + 输出结果 输出输出结果会直接反馈到DAC环节里里面,用电压开控制步进电机驱动来达
17、到控制步进电机的目的。为了防止在水温变化环境异常,比如热水箱收到破坏而造成温度骤降,以及让温度控制系统调节的时候超调量幅值较小,在这个环节里面,我们在积分环节和输出环节都采用限幅环节。有限幅环节的PID算法会更加平稳,安全性更高,在工业现场的应用也相对广泛。PID算法代码如下:int PID_Caculate(int Error) int i; float OutPut; if(FirstFlag) /判断第一次上电 FirstFlag=0;/以后再也不执行 for(i=0;i<10;i+) Prev_Errori=Error; /上电第一次测量时填满队列,以免微分计算错误 for(i=
18、0;i<9;i+) Prev_Errori+1=Prev_Errori; /FIFO队列 Prev_Error0=Error; /记录前10次 Ek=Error-Prev_ErrorDiff_Order; /相邻N个数取差分Delta E=Ek; P=P_Coefficient*Error; /计算比例分量 I=I_Coefficient*Integral; /计算积分分量 /D=D_Coefficient*(Error-Prev_ErrorDiff_Order); /计算微分分量(传统算法) D=D_Coefficient*E; /计算微分分量 (带一阶低通的微分) OutPut=P+
19、I+D; if(OutPut>2700)|(Error>300)|(Error<-300) /饱和或偏差大不积分(效果不太好) if (Integral>0)&&(Error<0) Integral+=Error; if (Integral<0)&&(Error>0) Integral+=Error; /两种有助于控制的情况例外 else /较小偏差时才启动积分 Integral+=Error; if(Integral<-Set_Integral) Integral = -Set_Integral ; /积分限幅
20、if(Integral> Set_Integral) Integral = Set_Integral; if(OutPut>Set_Output) OutPut=Set_Output; else if (OutPut<-Set_Output) OutPut=-Set_Output; /输出限幅,Set_Output表示的是输出的幅值 return (OutPut);中断部分模块设计:中断部分主要包括两个部分:控制信号输入中断、水位过低信号中断以及漏电保护系统。控制信号中断每次修改参数的时候都会引发中断,待用户设定好参数之后恢复现场继续主程序。而水位过低信号中断则是当水位过低的时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 60670-24:2024 EXV EN Boxes and enclosures for electrical accessories for household and similar fixed electrical installations - Part 24: Particular requirements for encl
- 2025-2030年中国镁锰电池市场规模分析及发展建议研究报告
- 2025-2030年中国辣椒制品行业运行动态与投资战略研究报告
- 2025-2030年中国蒿甲醚行业市场现状调研与前景规模预测报告
- 2025-2030年中国自动高压蒸汽灭菌器市场发展状况及前景趋势分析报告
- 2025-2030年中国育发水市场发展状况及投资规划研究报告
- 2025安全员-C证考试题库
- 2025-2030年中国糯玉米汁饮料市场发展预测及前景调研分析报告
- 2025-2030年中国粉针类头孢制剂行业需求分析与十三五规划研究报告
- 2025-2030年中国移动电源车产业运行动态及前景趋势预测报告
- 四川省公务员考试行测真题
- 2024年广东省初中学业水平考试中考英语试卷(真题+答案解析)
- DL-T-255-2012燃煤电厂能耗状况评价技术规范
- 家庭教育家长会教案及反思(3篇模板)
- 职业培训师三级操作技能鉴定卷库及答案
- 【视频号运营】视频号运营108招
- 新能源客车安全应急处理指南
- (正式版)JTT 421-2024 港口固定式起重机安全要求
- 地连墙施工MJS工法桩施工方案
- 《电力建设施工技术规范 第2部分:锅炉机组》DLT 5190.2
- 教案设计常见问题及解决措施
评论
0/150
提交评论