自动控制系统工程案例.docx
- 文档编号:4041892
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:14
- 大小:101.84KB
自动控制系统工程案例.docx
《自动控制系统工程案例.docx》由会员分享,可在线阅读,更多相关《自动控制系统工程案例.docx(14页珍藏版)》请在冰豆网上搜索。
自动控制系统工程案例
自动控制系统工程
设计论文
论文题目:
温室大棚温湿度系统的设计
姓名:
班级:
学号:
授课老师:
日期:
温室大棚温湿度控制系统的设计
一、温室控制系统设计的背景
随着经济和社会的快速发展,人们的生活水平也在不断的提高,对农产品的需求量也越来越大。
农用大棚为解决我国城乡居民菜篮子问题,促进农民增收和推进农业结构调整发挥了重要作用。
温室种植已在农业生产中占有重要地位。
而传统的室种植是在大温室棚内悬挂温度计,工人根据读取的温度值调节大棚内的温度;而湿度控制只能根据工人的经验判断是否需要进行灌溉。
这种靠人工控制温湿度的方式,既耗费人力又不精确传统的温湿度调节措施表现出极大地局限性
建造先进温室有利于解决靠天吃饭的问题,防止恶劣天气,排除季节因素给生物创造出一个适宜的生长环境,消除对作物生长不利的环境因素来促进生物生长,使其部分或完全克服外界气候的制约,从而缩短作物的生长周期,提高作物的产量,获得一定的经济效益。
我国设施农业目前还存在着诸如土地利用率低、盲目引进温室、设施结构不合理、能源浪费严重、运营管理费用高、管理技术水平低、劳动生产率低及单位面积产量低等诸多问题,但随着社会的进步和科学的发展,我国设施农业的发展将向着地域化、节能化、专业化发展,向着高科技、自动化、机械化、规模化、产业化的工厂农业发展,为社会提供更加丰富的无污染、安全、优质的绿色健康食品。
二、温室控制系统的控制要求
该温室大棚的控制需要满足以下要求:
当温室大棚内的温度和湿度发生变化时,该系统能够进行实时的调节,控制电机带动卷帘门和通风口的大小,来调节棚内的温度和湿度,来维持作物的正常生长。
本系统利用单片机作为主控机,对温室内的温度和湿度进行实时的监测和调控,以满足温室内植物生长的环境要求。
1、温湿度实时、准确的显示。
通过单总线数字式温度传感器DS18B20进行温度采集,采用湿敏电容HS1100对适度参数进行采集,通过单片机AT89C51对采集到的数据进行处理,由LCD显示屏对当前的温度值和湿度值进行显示。
2、键盘输入并显示。
操作人员可根据不同作物的不同时期的最适宜生长环境将温度值和湿度值由键盘输入并且由显示器进行显示。
便于调节作物在不同生长期所需的最适宜生长环境,以满足不同用户的需求。
3、超限报警功能。
报警模块具有两项功能,即为报警灯和声音报警。
当采集到的温度、湿度值与标准值之间存在较大差异时,及时启动报警装置进行报警,并采取相应的措施,实现通信功能。
配有通信接口可方便的与计算机进行通信,将采集到的温度值和湿度值传送到计算机上,以便进行实时的监控。
三、温室控制系统的硬件设计
大棚温湿度控制原理图
1、温度调节模块
方案一电路图
如图所示,由PWM控制温度调节模块,当PWM端输入高电平时,电流经Q1放大,光耦导通,光耦输出电流经Q2放大后,使双向可控硅导通,M4QA045电机运转,当PWM端输入低电平时,双向可控硅控制端输入电流为0,交流电过零以后,双向可控硅截止,M4QA045电机停止运转。
方案二电路图
如图所示,由PWM控制温度调节模块,当PWM端输入高电平时,电流经Q4放大,常开端5闭合,M4QA045电机运转,当PWM端输入低电平时,常开端5断开,M4QA045电机停止运转。
方案一采用光耦隔离强电,方案二采用继电器隔离强电,但方案一没有实现强电与直流源的隔离,且方案一环节复杂,计算难度大,过多的环节延长响应时间,从而影响温度调整模块的性能,所以选择方案二。
2、报警电路的设计
如图所示,单片机在BUZZER端输入信号控制湿度报警模块。
当湿度大于65%RH或者小于45%RH时,BUZZER端输入高电平,电流经Q3放大,使蜂鸣器工作;当湿度处于45%RH和65%RH之间时,BUZZER端输入低电平,蜂鸣器不工作。
四、控制系统设备的选型
1、单片机的选择:
由于温室大棚所控制的量比较少,且所要求实现的功能也不是很多,所以最后选择了8位的51系列单片机。
AT89C51片内喊有28字节的数据存储器RAM,主要用工作寄存器、堆栈、软件标志和数据缓冲器。
对于简单的测控系统,用它存放运算的中间结果,容量是够用的。
但是对于大量数据采集处理系统,则需要在片外扩展RAM。
由于本设计采用大量温湿度传感器,所以一片AT89C51芯片是不够用的,所以要对AT89C51的数据存储器进行扩展,因此,选用6264数据存储器一片。
单片机的测量过程如下:
测量过程是先温度后湿度的顺序,首先对温度进行采样,每一个温度点采样5次,计算平均值作为采样值送入显示和存储的相应单元进行存储和传感器的编号和温度的显示,然后判断温度是否超过设定温度,如果温度超标则报警并根据传感器的位置判断启动通风设备还是加热设备,如果不超标就继续检测下一个点的温度,知道整个大棚的多个点温度全部测试完成,然后计算和显示大棚的平均温度,然后对8个点的湿度进行测量并且显示,也是按照每个点测量5次然后取平均值的方法计算,来减少干扰因素带来的误差,8个点的湿度测量完成后计算并显示大棚的平均湿度。
同样与设定的湿度值比较如果超标就报警,并启动风扇进行通风处理。
然后系统返回再进行温度和湿度的巡回测量和显示。
2、传感器的选择:
本设计中使用DS18B20来实现对大棚内温度的采集,该传感器与传统的热敏电阻温度传感器不同,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
使用DS18B20可使系统结构更简单,可靠性更高。
芯片的耗电量很小,一般不用独立的电源进行供电。
该芯片在检测点已把被测信号数字化了。
因此在单总线上传输的是数字信号,这使得系统的抗干扰性好、可靠性高、传输距离远。
3、显示器的选择:
当传感器采集回来的温度和湿度经过单片机处理后,要送到显示器显示出来。
显示器由LED和LCD液晶显示器两种。
LED显示器主要有使用寿命长、响应速度快、可视距离远、规格品种多、数字化程度高、亮度高、可视角度大,功耗低等优点。
LCD显示器分辨率比较高,但是价格比较高。
所以综合考虑,本系统中采用LED作为显示器来显示温室内的湿度和温度。
既满足了工程设计的要求,又节省了成本。
4、为了方便工作人员实时的对温室内的温度和湿度进行监视,本设计还将传感器采集回来的数据通过RS232串口传到计算机中的上位机上,来进行监视。
五、系统的软件设计
1、整体方案设计:
2、PWM程序设计:
如图所示,进行中断程序初始化,设置定时器T0中断时间为1ms,中断100次,即100ms作为一个脉冲周期,每中断一次,由变量T0_number进行计数,当变量T0_number大于100时,给变量T0_number赋值0,重新开始计数,当变量T0_number小于变量PWM_width_H时,输出高电平,当变量T0_number大于变量PWM_width_H时,输出低电平,以此控制脉宽。
#include
#include
#defineLCD_DBP2
sbitDQ=P1^0;
sbitBUZZER=P1^1;
sbitPWM=P1^2;
sbitLCD_RS=P1^4;
sbitLCD_RW=P1^5;
sbitLCD_E=P1^6;
sbitHEAT=P1^7;
voidinitial(void);
voidread_DHT11(void);
voidLCD_write_command(unsignedcharcom);
voidLCD_display_char(unsignedcharx,unsignedchary,unsignedchardat);
unsignedcharread_DHT11_char(void);
voidcontrol_temperature_humidity(void);
voiddelay_xms(unsignedinttime_xms);
voiddelay_x10us(unsignedinttime_x10us);
unsignedcharstop_system=0;
unsignedcharlineOne[]=“TS(0-50):
C”;
unsignedcharlineTwo[]=“HS(20-90):
%RH”;
unsignedintT0_number=0,T1_number,PWM_width_H;
unsignedchartemperature_ten,temperature_one,humidity_ten,humidity_one;
unsignedchartemperature_H,temperature_L,humidity_H,humidity_L,checkData;
voidinitial(void)
{
unsignedchari,j;
TMOD=0x11;//定时器0工作方式1,16位计数器;定时器1工作方式1,16位计数器
TH1=0xFC;//定时器1溢出周期1ms,延时
TH1=0x66;
TH0=0xFC;//定时器0中断周期1ms,PWM
TL0=0x66;
EA=1;
ET1=1;
ET0=1;
EX0=1;
IT1=1;
TR0=1;
LCD_write_command(0x38);//设置8位格式,2行,5x7
LCD_write_command(0x0c);//设置整体显示,关闭光标,且不闪烁
LCD_write_command(0x06);//设置输入方式,增量不移位
LCD_write_command(0x01);//清屏
for(i=0;i<16;i++)
{
LCD_display_char(i,1,lineOne[i]);
}
for(j=0;j<16;j++)
{
LCD_display_char(j,2,lineTwo[j]);
}
LCD_display_char(14,1,0xDF);//显示
}
voidread_DHT11(void)
{
DQ=0;
delay_xms(18);
DQ=1;
delay_x10us
(2);
if(DQ==0)
{
while(DQ==0);
while(DQ==1);
humidity_H=read_DHT11_char();
humidity_L=read_DHT11_char();
temperature_H=read_DHT11_char();
temperature_L=read_DHT11_char();
}
}
unsignedcharread_DHT11_char(void)
{
unsignedchari,temp_one,temp_two;
for(i=0;i<8;i++)
{
while(DQ==0);
delay_x10us(3);
if(DQ==0)
{
temp_one=0;
}
else
{
temp_one=1;
}
temp_two<<=1;
temp_two|=temp_one;
while(DQ==1);
}
returntemp_two;
}
voidLCD_write_command(unsignedcharcom)
{
LCD_DB=com;
LCD_RS=0;
LCD_RW=0;
LCD_E=1;
delay_xms
(1);
LCD_E=0;
delay_xms(5);
}
voidLCD_display_char(unsignedcharx,unsignedchary,unsignedchardat)
{
if(y==1)
{
LCD_write_command(0x80+x);
}
else
{
LCD_write_command(0xc0+x);
}
LCD_DB=dat;
LCD_RS=1;
LCD_RW=0;
LCD_E=1;
delay_xms
(1);
LCD_E=0;
delay_xms(5);
}
voidLCD_display_DHT11(void)
{
temperature_ten=temperature_H/10+0x30;
temperature_one=temperature_H%10+0x30;
humidity_ten=humidity_H/10+0x30;
humidity_one=humidity_H%10+0x30;
LCD_display_char(12,1,temperature_ten);
LCD_display_char(13,1,temperature_one);
LCD_display_char(11,2,humidity_ten);
LCD_display_char(12,2,humidity_one);
}
voidcontrol_temperature_humidity(void)
{
if(temperature_H>28)//温度→转速
{
PWM_width_H=100;
}
elseif(temperature_H<18)
{
PWM_width_H=0;
HEAT=1;
}
else
{
if(temperature_H>=23)
{
HEAT=0;
}
PWM_width_H=(temperature_H-18)*10;
}
if(humidity_H>65||humidity_H<45)//湿度→蜂鸣
{
BUZZER=1;
}
else
{
BUZZER=0;
}
}
voiddelay_xms(unsignedinttime_xms)
{
T1_number=0;
TR1=1;
while
(1)
{
if(time_xms==T1_number)
{
break;
}
}
TR1=0;
}
voiddelay_x10us(unsignedinttime_x10us)
{
while(time_x10us--)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}
voidmain(void)
{
initial();
while
(1)
{
delay_xms(2000);
read_DHT11();
LCD_display_DHT11();
control_temperature_humidity();
}
}
voidINT_0(void)interrupt0
{
stop_system=1;
}
voidTimer_0(void)interrupt1
{
TH0=0xFC;//定时器0中断周期1ms,PWM
TL0=0x66;
T0_number++;
if(T0_number>100)
{
T0_number=0;
}
elseif(T0_number { PWM=1; } else { PWM=0; } } voidTimer_1(void)interrupt3 { TH1=0xFC;//定时器1溢出周期1ms,延时 TL1=0x66; T1_number++; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动控制系统 工程 案例