资源描述:
《基于单总线技术的育雏舍恒温控制系统设计的单片机实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于单总线技术的育雏舍恒温控制系统设计的单片机实现42目录摘要3§1系统模型的建立3§1.1温度控制算法3§1.2单总线技术概述9§1.3系统组织9§1.4电路原理图12§1.5硬件配置清单12§2各功能模块的详细设计及编码实现13§2.1初始化DS18B20(Init_DS18B20)14§2.2基础显示模块(XIAN_SHI)15§2.3显示模块(Display)15§2.4显示管理模块(X2)16§2.5键盘管理(JIAN_PAN)18§2.6DS18B20的操作19§2.7数据处理模块(SHU_JU_CHU_LI)21§2.8系统调度指针表(ZHI_ZHEN_BIAO)23
2、§3设计体会及小结24§4参考文献25附录12542摘要在农业生产中,农作物对温度、湿度、光照、通风等条件都比较敏感。尤其是在饲养鸡、鸭、鹅时,育雏环节对温度的要求就更高了。本文就鸡、鸭、鹅的生产活动中的育雏舍的温度控制提出一种解决方案。本文所使用的单总线技术是基于DALLAS公司生产的DS18B20温度传感器。该温度传感器适用于低速(单个DS18B20极限速率约为16Kbps)测控系统中,应用在育雏舍温度控制系统中绰绰有余。使用一根普通的网线就可以实现多个地点的检测,极大的简化了电路结构并且节省了硬件开销。并运用6中取3码为继电器分配ID,实现多个地点控制继电器,继而驱动加热设备
3、。而所有的控制部分仅需要一片单片机即可。§1系统模型的建立§1.1温度控制算法育雏舍的温度系统是一个具有大滞后、非线性的特性,且找不到精确的数学模型。于是,我们选择采用模糊控制。它属于智能控制的范畴,非常适合应用于大滞后、非线性的系统控制,并且具有很好的鲁棒性。1.模糊控制器的设计。(此控制器是基于现今已经成熟的模糊控制的一般控制算法,所以这个模型需要根据具体的试验情况进行必要的修正)1)论域、模糊子集、模糊语言集的确定温度偏差E:E=所测温度-设定温度其相应的模糊子集为Ai(i=1,2,3,4,5,6,7,8,9)的语言取值为NB,NM,NS,NZ,ZO,PZ,PS,PM,PB分
4、别代表负大,负中,负小,负很小,零,正很小,正小,正中,正大(下同)其相应的论域E=-8,-7,-6,-5,-4,-3,-2,-1,0,+1,+2,+3,+4,+5,+6,+7,+8共分为17档。温度偏差变化率EC:EC=E(1分钟后所测)-E(1分钟前所测)温度均为一分钟测一次。其相应的模糊子集为Bi(i=1,2,3,4,5,6,7,8,9)的语言取值为NB,NM,NS,NZ,ZO,PZ,PS,PM,PB其相应的论域EC=-8,-7,-6,-5,-4,-3,-2,-1,0,+1,+2,+3,+4,+5,+6,+7,+8共分为17档。输出控制U的论域范围U=-8,-7,-6,-5,
5、-4,-3,-2,-1,0,+1,+2,+3,+4,+5,+6,+7,+842输出控制Ui(i=1,2,3,4,5,6,7,8,9)的语言取值为NB,NM,NS,NZ,ZO,PZ,PS,PM,PB2)实际偏差与论域的转化温度偏差E转换表(单位:℃)级别温度范围级别温度范围0[-0.2,0.2)-1[-0.7,-0.2)+1[0.2,0.7)-2[-1.2,-0.7)+2[0.7,1.2)-3[-1.7,-1.2)+3[1.2,1.7)-4[-2.3,-1.7)+4[1.7,2.3)-5[-3.3,-2.3)+5[2.3,3.3)-6[-5,-3.3)+6[3.3,5)-7[-8,-
6、5)+7[5,8)-8[-∞,-8)+8[8,∞)温度偏差变化率EC转换表(单位:℃)级别变化范围级别变化范围0[-0.2,0.2)-1[-0.7,-0.2)+1[0.2,0.7)-2[-1.2,-0.7)+2[0.7,1.2)-3[-1.7,-1.2)+3[1.2,1.7)-4[-2.3,-1.7)+4[1.7,2.3)-5[-2.8,-2.3)+5[2.3,2.8)-6[-3.3,-2.8)+6[2.8,3.3)-7[-4,-3.3)+7[3.3,4)-8[-∞,-4)+8[4,∞)3)隶属函数模糊子集Ai、Bi语言值的隶属函数:PB:μ(x)=e-(x-8)22πPM:μ(x
7、)=e-(x-5)22πPS:μ(x)=e-(x-3)22πPZ:μ(x)=e-(x-1.5)22πZO:μ(x)=e-(x-0)22πNZ:μ(x)=e-(x+1.5)22πNS:μ(x)=e-(x+3)22πNM:μ(x)=e-(x+5)22πNB:μ(x)=e-(x+8)22π运用Excel可计算出下面的隶属函数表:隶属函数μAx-8-7-6-5-4-3-2-10+1+2+3+4+5+6+7+842PB0000000000000.10.20.50.91PM000