跪求...基于51单片机自动跟踪阳光太阳能热水器控制系统的设计
发布网友
发布时间:2022-04-24 13:13
我来回答
共3个回答
热心网友
时间:2023-10-14 00:53
对绿色能源的开发和利用是响应我国节能减排,环保*的举措,太阳能作为可持续,零污染,具有很高的环保价值和经济效益,高效利用太阳能还可以有效替代部分化石能源,从而降低因石化能源燃烧导致的污染,减轻雾霾。然而农村太阳能丰富,却没能得到很好的利用,即便现有的发电产品对太阳能电池板也大多采用固定支架。课题对此提出了能够跟踪太阳方向的云台支架,可实现太阳能电池板自动调节而始终面向光线最强的一面,提高太阳能发电的利用率。课题从云台,电机驱动,控制器,光线传感器,液晶显示等构成,课题成果不仅可以用到太阳能发电,还可以用到其它的向光场所,如天文观测等具有较高的实用价值。
随着时代的进步与科技的飞速发展,使得对能源的需求随之增加,对不可再生能源的过度依赖[1],从而使得不可再生能源的存储量急剧减少,一些不可再生能源(石油)被视为战略资源,据目前统计,煤炭、石油、天然气也会在岁月的实践中而日趋枯竭,消耗殆尽。这些不可再生能源的产生显然跟不上人类对其的需求,为更好的实现可持续发展,本课题提出了一种太阳追踪的可行方案,可以大大提升对太阳能的利用,减少对不可再生资源的过度依赖。
为了解决人们对不可再生资源的过度依赖和对清洁能源的高利用率。提出设计一款零污染高效率的装置——太阳追踪器。通过电机,控制器,采光板光线传感器等元器件之间的相互配合,实现对太阳光照射最强的方位,实现全方位无死角跟踪,恰巧正好急需这样一款具有安全、环保、高效率、以及取之不尽用之不竭的特点,也很方便就可以获取,如风能和潮汐能一样是绝对的无污染清洁能源,这也就很好的阐述了光能的可行性[2]。——对此提出太阳跟踪装置设计与制作。
优点:太阳作为一个取之不尽用之不竭的能源。在《太阳能利用技术》[3]就有相关的提到,所到达地球表面能量等同于每秒向地球源源不断的投放了500万吨煤炭。阳光所到之处,皆为财富,免费使用的同时也不需要考虑任何的运输费用以及零污染等特性。
缺点:即便如此的看似完美无缺,也存在着两个致命性缺点[4]:一是能流密度很小;二是太阳的光照强度也会因为(天气、白夜等)因素的不同而有着很大的差距,很难长时间维持在恒定值,这也在一定程度上大大的影响了使用效率[5]。
国外太阳追踪器:对太阳能的使用在两千零四年到两千零六年太阳能的发电量都是惊人的4961MW[6],在一九九七年,美国的Blackace研制了单轴追踪器,热接收率提高了百分之十五......,后期围绕高效率,轻质量展开。在太阳能游艇、太阳能飞机、太阳能瓦片等方面得到运用,也见证了太阳能利用的高效率性[7]。
国内太阳追踪器:在应用市场上面得到了不断扩张,对于太阳能追踪器的利用那也是一个相当热门的谈话主题,途径多年的经验,将其用在了太阳能热水器、太阳能路灯以及西部计划、利用太阳能发电、太阳能供暖等等[8]。
更多的往往是采用单轴跟踪的方式,相比之下更需要多轴,实现全方位无死角跟踪。
针对不同条件下,提出了自动控制和手动调节的两种工作方式:
其中以“自动模式”概述:在自动追寻的过程中,会自动判断光的强度的大小,若下面光照强度大于上面光照强度,STM32单片机就会直接驱动上端电机向下翻转;以便于在下午太阳西落的时候,获得更多的光照,若上面光照强度大于下面光照强度,STM32单片机就会直接驱动上端步进电机向上运动;若上下两个方位的光照强度均等,上端步进电机不进行动作。在上下光照均匀,左右方向运动的情况,右方位的光照强度大于左方位,STM32单片机就直接驱动下方位第一个步进电机向左方位一定角度转动;若左方位的光照强度大于右方位的光照强度,STM32单片机就直接驱动下方位第一个步进电机向左方位进行运动;当左右方位采光度也保持几乎均应的时候光照,那么下方位的第一个电机也将保持不动。
“手动模式”状态进行使用按键手动来完成设备状态的切换。四个按键对应控制电机完成:上、下、左、右的翻转动作。通过点动的方式来控制驱动步进电机的实际运动。
在给设备系统进行上电后,系统最初为“自动模式”,这样可以更好的在不受人为干预的情况下实现对太阳能的最大接收。
编译语言的选取
方案一:C语言
简洁紧凑、灵活方便;运算符的丰富性;数据结构的丰富性;结构式语言;语法局限性小,程序编写自由度大;通过对物理地址的直接访问,使得完全可以对硬件实现直接控制;程序执行效率高。
C语言面向过程,最主要的在于算法和数据结构。通过一个过程,对输入进行运算处理得到输出。
方案二:C++
C++语言是面向对象的语言,在C的基础上添加了面向对象、模板等现在程序设计语言的特性。拓展了面向对象设计的内容,使之更加符合现代程序设计的需要。
看似C++比C多了很多优点和特性,但C++并不是所有场合都适用,很多嵌入式开发系统,都只提供了C语言的开发环境,而没有提供C++的开发环境。很多C++语言不愿意干的脏活累活,C语言干起来快活得很。而C++因为过于复杂,在这方面就稍逊一筹了。
方案三:Java
Java是一种解释性语言,Java人气极高,但其代码由于需要在运行前进行解释因此性能表现更差。C++会被编译为二进制形式,因此其能够立即运行且速度更快。两个程序都足够大、而且C++的代码经过优化,两者的速度差就会变得很显著甚至很惊人,C++会比java快很多。
从系统的复杂性出发来考虑,同时整个过程的计算量比较大,因此我选用了浮点数的计算方式,选用方案一作为整个系统编译方式。
2.2 控制系统总体方案选取
方案一:视日寻迹追踪模式
这样的一种模式,是基于天文学公式来得出太阳在不同时候的理论性的方位角和俯仰角,在后根据太阳每天在当地实际的运行轨迹位置编写控制算法程序,通过使用控制算法的方式来实现对太阳所在位置的计算,最后通过驱动太阳能板的两个步进电机来达到俯仰和方位上的转动。有点是对外界环境的依赖小,同是也存在弊端,那就是不管外界环境是何种天气,它都会以同样的工作方式运动,增加了不必要的能耗和元器件的寿命磨损。
太阳的俯仰角h和方位角A的两个位置参数,可表达如下所示:
δ为赤纬角,Φ是本地纬度,Ω表示太阳时角。
方案二:光电追踪模式
该模式的核心算法是利用光敏传感器对太阳位置进行检测。具体方法:在遮阳板两侧完全对称地安装光敏传感器,当太阳光垂直照射在太阳能光伏电池板上时,安装在两侧上的光敏传感器所产生的电信号相等,将这两路信号经过放大后送入比较器进行比较,此时不驱动步进电机进行转动。当太阳位置移动后,遮阳板对阳光进行遮挡,此时两侧的光敏传感器产生的电信号不相等,从而经过放大比较后产生差信号,电机开始运动,完成太阳跟踪过程。
通过两者的比较,选择方案二,简单易操作性,更适合被普及广泛使用,在同等使用条件下,最简方案,则是最优方案。
2.3主控系统选择
方案一:51单片机作为控制芯片。主要是表现在:主要控制参数是使用设置寄存器变量得以实现,在程序的修改方面,也是相当的方便快捷,成本也是相对低廉,性能与相对简单的太阳能跟踪装置系统匹配;数字化的控制系统,可以达到较高的精度。
方案二:采用FPGA这样的大规模可编程逻辑器件,但本题属于控制类,即现场可编程门阵列[WJ1] ,它是在PAL、EPLD等可编程器件的基础上进-一步发展的产物。
方案三:ARM作为一种高性能嵌入式系统。考虑到方案的可实行性,STM32可以很好的解决数据处理和控制功能,十分适用于太阳能跟踪,虽是ARM价格昂贵,但是在后期的可拓展空间更大。[WJ2]
结合本次设计的任务要求,以及上诉三种方案的相对比较,最后选用方案三更适合本课题的设计标准,具体采用STM32F103C8T6。
2.4电机选择
方案一:选择步进电机,然而步进电机的最大优点就是可以精确地控制电机步数和角度,缺点是价格昂贵。
方案二:选择直流电机。价格便宜是它的一大亮点,通过减速齿可以提高扭力,具有更大的负载,但是对电机的高精度控制直流电机达不到设计要求。
步进电机作为一种将电脉冲转换成相应角位移或线位移的电磁机械装置。通过直接控制输入的脉冲数量,直接控制其启停,启动是速度快,步距角和转速只取决于脉冲频率,受外界影响因素小。因此,对于本设计任务要求,为更精确地完成对角度值的精度把控,更好地利用太阳能,因此我选用方案一作为本次课程设计的驱动电机。
2.5步进电机驱动系统选择
方案一:L298专业电机驱动模块的选择,这类驱动模块的操作方便以及接口简单同时他们既可以驱动步进电机,也可驱动直流电机。
方案二:三极管等分立元件搭H桥。亮点在于实惠型,控制方式简单以及结构简单。优点的同时也伴随着弊端的存在,电流的承载能力比较小,相同的驱动能力受到*,分立元件则体积较大同时稳定性也得不到保证。
方案三:采用集成芯片,ULN2003。 .
达林顿管ULN2003,该芯片最多可一次驱动八块步进电机,本设计作用于两个步进电机,在实际的使用中,往往起着放点输出的作用用于驱动大负载的步进电机等。
本次设计综合考虑,依据实际设计需求,选择方案三作为步进电机的驱动系统。
2.6实体结构框架选择
方案一:两电机互相处以垂直状态,电机一是左右的转动而电机二是上下的转动,在不引入外界条件辅助设备的情况下会出现运动死角,从成本化出发是不可取的。
方案二:将两个电机由之前的垂直安装,改变为大于90°的安装,在不引入外部设备的情况下,可以很好的避开运动死角,从而可实现全方位无死角跟踪,综合上述情况选择方案二进行本次的实体结构设计。
2.2系统设计
2.2.1 单片机构成如下图:
逻辑不通顺,要指出FPGA不适用于本题的缺点
STM32整体比FPGA便宜很多,这条论证建议修改,或者做一个成本对比表再下结论
控制方式:第一步就是将数据程序输入到输入设备里面,输入设备将程序传输给运算器CPU和存储器,各自程序都对应的传输到控制器里面,由控制器完成完成相互的指令传递,最后都是作用于输出设备,在输出设备上显示出来的结果就是最初程序所要表达的效果。
2.2.2 系统整体控制框图如下:
图2–2–2 系统整体控制框图
控制方式:完成整个驱动控制,第一步就是感光元件及光敏电阻传感器对外界光的采集,完成电压跟随,通过A/D转换,然后通过电压的比较,使用STM32F103C8T6单片机控制电机的驱动,最终完成不同电机在不同的光照强度情况下不同方向的运动,最后实现对光的最大化接收。
2.2.3 电机控制框图如下:
图2–2–3 电机控制框图
控制方式:通过光敏传感器对光的采集,实现了最后对电机运动方式的不同选择和控制。
当感光元器件第一组接受到的光照强度值大于其它三个方位的光照强度时,那么电机完成水平方向的电机正转,并返回最初状态。
当感光元器件第二组接受到的光照强度值大于其它三个方位的光照强度时,那么电机完成水平方向的电机反转,并返回最初状态。
当感光元器件第三组接受到的光照强度值大于其它三个方位的光照强度时,那么电机完成垂直方向的电机正转,并返回最初状态。
当感光元器件第四组接受到的光照强度值大于其它三个方位的光照强度时,那么电机完成垂直方向的电机反正,并返回最初状态。
当所有的感光元器件都处于接受管的均匀照射时,此时的光照强度几乎大小相等,也就电机的状态保持不运动。
2.2.4整体电路原理图如下:
图2-2-4 整体电路原理图
系统软件总体设计流程如图 2-2-4 所示。系统启动后,软件先进行初始化等工作,当程序初始化完成后,通过 感光元器件获得当前的光照强度,然后根据初始化的参数,控制步进电机将太阳能光伏板转动到理论的初始状态,预定方位。将太阳能光伏板转动到理论位置后,程序开始判断步进电机转动模式是手动模式还是自动,初始默认状态是自动跟踪模式。
当手动模式时,人为调整电机控制上下左右 4 个按键的状态,使得电机按照人们预想的方向进行运动,以此来得以控制四个方位的不同垂直转动和水平移动的俯仰角和方位角。当程序判断为自动模式后,开始自动读取检测电路的返回信号,当检测到是各个方位的光照强度值有较大的的差异是,那么单片机就发出控制指令控制步进电机进行转动,升压模块是为了给整个系统稳定供电而存在。
热心网友
时间:2023-10-14 00:53
你还真是挺执着的,呵呵。如果简单一点,可以通过时钟来控制,不过这个有误差,也需要频繁调试。最好的是光线跟踪和集热管移动分开来实现。用体积较小的光敏电阻(放置在金属管里面,类似*管),加万向移动的马达支架来寻找最佳的角度;角度确定后再启动集热管移动的马达到此位置。移动频率可以设置为一小时移动一次,如果只是在水平方向上移动的话还是有点意义的,否则跟踪本身消耗的的能量太大,就得不偿失了。
热心网友
时间:2023-10-14 00:54
我来帮你搞定!追问那谢谢你了 我的qq 号是1072960665
追答好的