精品基于msp430的家用太阳能加热控温沐浴系统.docx

上传人:b****6 文档编号:3103293 上传时间:2022-11-17 格式:DOCX 页数:22 大小:270.07KB
下载 相关 举报
精品基于msp430的家用太阳能加热控温沐浴系统.docx_第1页
第1页 / 共22页
精品基于msp430的家用太阳能加热控温沐浴系统.docx_第2页
第2页 / 共22页
精品基于msp430的家用太阳能加热控温沐浴系统.docx_第3页
第3页 / 共22页
精品基于msp430的家用太阳能加热控温沐浴系统.docx_第4页
第4页 / 共22页
精品基于msp430的家用太阳能加热控温沐浴系统.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

精品基于msp430的家用太阳能加热控温沐浴系统.docx

《精品基于msp430的家用太阳能加热控温沐浴系统.docx》由会员分享,可在线阅读,更多相关《精品基于msp430的家用太阳能加热控温沐浴系统.docx(22页珍藏版)》请在冰豆网上搜索。

精品基于msp430的家用太阳能加热控温沐浴系统.docx

精品基于msp430的家用太阳能加热控温沐浴系统

【关键字】精品

题目:

基于msp430的家用太阳能加热控温沐浴系统

摘要(中英文)

针对现在的太阳能加热,我们的系统分为三部分:

信号输入部分,加热控制控制部分以及电机控制出水温度部分。

信号输入部分我们采用便于现场控制的键盘输入和便于用户控制的红外输入,加热部分采用的是温度和容量可调的加热系统,而电机控制采用的是发展较为老练的PID控制以及定位准确的步进电机控制。

三个系统相互联系,总体上达到淋浴控温和加热目的。

ThewaterheatingbathsystemisdesignedbasedonthesolarenergywaterheatingThesystemcanbedividedintothreeparts:

definitionpart,heatingandheat–preservationpart,andsteppingmotortemperaturecontrollingpart。

Foreasycontrol,weuseinfraredcontrollingandkeypadinputmethod。

Forquicklyheating,wedefinedtwomodesforheatingandheat–preservation。

Forquicklyandstablytemperaturecontrollinginwateroutlet,weusePIDmethodinrunningsteppingmotor。

1.引言

简述系统设计的背景、目的、和所要解决的问题。

随着进入节能时代,较好地利用各种的再生资源是我们设计产品的一个重要因素。

太阳能,作为最容易获得的能量,渐渐开始成为各种绿色能源的首选。

基于这个立场,我们基于太阳能加热的方案来设计出水温度的系统,利用电机控制冷水和热水的混合来达到控制出水温度的目的。

再则考虑到晚上太阳能水箱热能散失导致温度下降热水供给不足的问题,我们可以需要给予系统加热的功能,解决晚上用户舒适洗澡的问题。

在用户使用这个模块,考虑到用户在使用的时候因为浴室的原因,用液晶显示可能模糊,所以我们选用的是数码管显示输出。

为了便于用户的操作使用,我们采用红外控制,同时作为硬件调试和用户必要时的使用,我们增加用键盘对系统进行直接的控制值设置模块。

考虑到现在的家庭一般都是3人家庭,在水位的设置上面,我们让用户可以对水位进行设定,分别是超低水位,一人,二人和三人水位。

这样既可以节约到加热的时间,同时也可以节约到在晚上的时候热水洗澡而需要的加热热水的电费。

至于电机控制模块,为了达到快,准,稳的要求,我们采用了现在比较老练度PID模块来解决电机控制。

我们利用msp43016x系列内部的DAC模块,用利用数字PID方法算出输出电压,对步进电机来进行速度和方向的控制。

从而达到了用户出水水温的快,准,稳。

2.系统方案

系统总框图:

 

系统的总体构造思想是:

用户可以在任意时候设定需要的目标值,例如水位,热水箱的温度,以及出水时候的温度。

而对于系统,我们的做法是:

水位超过的时候不给予进水,低于最低水位的时候为了保护系统必须关闭出水强行进水同时关闭加热控制。

加热控制和水位控制并行操作,可以为用户节约时间。

在超低水位时进行过热保护等措施。

为了让洗澡时候的供水温度稳定,只有水位和热水温度到了设定的参数才准许用户开水洗澡。

在出水控制这一模块,为了更好地获得稳定快速的输出,我们会采用现在较为老练的PID算法对在出水控制这一块电机输出进行控制。

最后,为了方便用户控制,我们同时采用红外和按钮键盘的方式给系统设定参数。

用红外的方式可以更好的让用户进行控制。

而按钮键盘则为了更容易对系统进行调试以及在应急情况下对系统进行控制。

3.系统硬件设计

以下是对系统的各个子系统的硬件设计进行简要说明:

水位控制模块:

水位控制框图:

 

Y

 

N

 

N

 

水位控制模块思想比较简单,只关心水位是否达到设定要求。

没有的时候就进水,有的时候就停止进水,节省用水。

设计这一块的时候为了防止因为水位过低而引起的热水箱损坏,设计时候我们设计了超低水位,用来对水箱进行保护。

当水位过低的时候,强行关闭热水阀,没有热水供出。

同时加水,烧水,到了安全情况的时候才可以继续正常使用。

热水加热模块:

加热模块框图:

 

N

 

 

YN

 

Y

 

加热模块设计思想是:

为了可以快速地达到设定的水温同时可以稳定的控制水温,我们设定两种加热模式:

快速加热模式和慢速加热模式。

假设那个温度点我们设在设定温度的70%那里,那么在设定温度的70%以下的时候,我们把加热模式设置为快速加热模式;在超过的时候,我们设置在慢速加热模式。

当温度小于设定温度,则用慢速加热。

 

淋浴供水输出模块框图:

 

N

 

Y

 

 

电机控制的主要思想是:

首先判断是否用户是否需要淋浴且机器情况正常。

机器不正常或者用户不需要都会关闭冷水阀,禁止冷水流出。

符合条件之后,电机控制冷水的进出来控制输出的水温。

用这种方法的好处是当用户不需要进水的时候或者出现突发情况时候,系统可以很及时地做出相应,而且电机的寿命可以得到延长。

同时,鉴于市面上的水阀控制,采用PID算法来控制可以得到更加平稳的调温效果和比较快捷的目标时间。

PID控制模块:

采用位置式的PID算法,控制系统如下:

设定出水温度

+

淋浴水温输出-

 

用户输入模块:

用户输入模块框图:

 

用户输入模块分为红外和键盘两部分。

都采用中断的方式,可以及时对单片机内部的参数赋值,然后让系统按照新的参数进行调节。

漏电保护模块:

如下图所示:

作为一个沐浴系统所必需的安全保护系统中最重要的漏电保护系统。

一旦出现漏电现象,立即关闭所有工作(软件控制)并切断电源(硬件电路控制)。

4.系统软件设计

详细介绍算法设计与算法流程图(不得大量复制源代码)

系统软件的设计上,在主程序开始之前,是参数的设定,有目标热水温度(aim_hot_temp),目标出水温度(aim_temp),目标水位设置(aim_water_level),用户是否使用(use)。

主程序开始部分是对各个端口的设定,以及关闭watchdog,开启各个中断模块的标识。

对单片机的资源分配如下:

P1.0~P1.6键盘输入

P1.7红外输入

P2.0~P2.3水位检测

P3.0,P3.1数码管显示

P4.0DAC步进电机电机电压控制输出

P4.1步进电机电机转向控制输出

P4.2冷水紧热水箱阀门

P4.3淋浴热水放出阀门

P4.4淋浴冷水放出阀门

P5.3P5.4热水加热模块(低速高速)

P6.0P6.1接ds18b20温度检测模块接收温度

以下是主程序的while

(1)模块:

 

while

(1)

{

intTime=40;//延时部分

{inti;

for(;Time!

=0;Time--)

{

for(i=0;i<123;i++);

}

}

if(P2IN&0xf0==0xf0)

{

water_level=0;//这里是水位监测部分。

高八位=1111时候是超低水位

}

elseif(P2IN&0xf0==0xe0)

{

water_level=1;//1是低水位

}

elseif(P2IN&0xf0==0xc0)

{

water_level=2;//2是一人水位

}

elseif(P2IN&0xf0==0x80)

{

water_level=3;//3是二人水位

}

elseif(P2IN&0xf0==0x00)

{

water_level=4;

}

elsewater_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=1是热水阀开,否则关闭

{

P4OUT&=~BIT2;

P4OUT|=BIT3;

}

else

{

P4OUT|=BIT2;

P4OUT&=~BIT3;

}

if(hot_temp<=0.7*aim_hot_temp)//加热判断,符合上述框图的条件就开启或者关闭热水加热.

{

P5OUT|=0x0c;

}

elseif(hot_temp

{

P5OUT|=0x04;//p53=1

P5OUT&=0xf7;//p54=0

}

else

{

P5OUT&=0xf3;

}

if(hot_temp>aim_hot_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)-temp_distant);

}

}

else

{

P4OUT&=~BIT3;

P4OUT&=~BIT4;

}

}

}

以下是while

(1)的流程图:

 

Y

N

N

 

Y

 

N

 

Y

 

电机控制的部分我们采用PID算法。

PID算法的控制如下:

PID控制算法框图如下:

输入

 

 

+

++

 

 

输出结果

输出

 

输出结果会直接反馈到DAC环节里里面,用电压开控制步进电机驱动来达到控制步进电机的目的。

为了防止在水温变化环境异常,比如热水箱收到破坏而造成温度骤降,以及让温度控制系统调节的时候超调量幅值较小,在这个环节里面,我们在积分环节和输出环节都采用限幅环节。

有限幅环节的PID算法会更加平稳,安全性更高,在工业现场的应用也相对广泛。

PID算法代码如下:

 

intPID_Cac

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1