第1章 绪论..................................................................................................................... 1
1.1 课题研究背景..................................................................................................... 1 1.2 本课题研究的主要内容..................................................................................... 4 第2章 太阳能电池的研究和分析 ................................................................................ 5
2.1 太阳能电池的原理............................................................................................. 5 2.2 太阳能电池的分类............................................................................................. 5 2.3 太阳能电池的等效电路..................................................................................... 6 2.4 太阳能电池板的主要参数................................................................................. 7 2.5 本章小结........................................................................................................... 11 第3章 蓄电池充电技术研究 ...................................................................................... 12
3.1 蓄电池的一般特性........................................................................................... 12 3.2 太阳能----蓄电池充电技术研究 ..................................................................... 15 3.3 本章小结........................................................................................................... 18 第4章 系统硬件设计 .................................................................................................. 19
4.1太阳能充/放电器原理 ...................................................................................... 19 4.2系统硬件设计.................................................................................................... 20 4.3 单片机的防干扰技术....................................................................................... 28 4.4 本章小结........................................................................................................... 31 第5章 系统软件设计 .................................................................................................. 32
5.1 protues仿真 ....................................................................................................... 32 5.2 keil程序调试..................................................................................................... 33 5.3流程图................................................................................................................ 35 5.4本章小结............................................................................................................ 35 结论................................................................................................................................. 38 参考文献......................................................................................................................... 39
I
东北石油大学本科生毕业设计(论文)
致 谢............................................................................................................................... 40 附录................................................................................................................................. 40
II
东北石油大学本科生毕业设计(论文)
第1章 绪论
1.1 课题研究背景
1.1.1 太阳能发电
太阳能是一种干净的可再生的新能源,越来越受到人们的重视,在人们生活、工作中有广泛的作用, 其中之一就是将太阳能转换为电能,太阳能电池就是利用太阳能工作的。而太阳能热电站的工作原理则是利用汇聚的太阳光,把水烧至沸腾变为水蒸气,然后用来发电。
太阳能发电有更加激动人心的计划。一是日本提出的创世纪计划。准备利用地面上沙漠和海洋面积进行发电,并通过超导电缆将全球太阳能发电站联成统一电网以便向全球供电。据测算,到2000年、2050年、2100年,即使全用太阳能发电供给全球能源,占地也不过为 65.11万平方公里、 186.79万平方公里、829.19万平方公里。829.19万平方公里才占全部海洋面积 2.3%或全部沙漠的 51.4%,甚至才是撒哈拉沙漠的 91.5% 。因此这一方案是有可能实现的。
另一是天上发电方案。早在1980年美国宇航局和能源部就提出在空间建设太阳能发电站设想,准备在同步轨道上放一个长10公里、宽5公里的大平板,上面布满太阳电池,这样便可提供500万千瓦电力。但这需要解决向地面无线输电问题。现已提出用微波束、激光束等各种方案。目前虽已用模型飞机实现了短距离、短时间、小功率的微波无线输电,但离真正实用还有漫长的路程。
随着我国技术的发展,在2006年,中国有三家企业进入了全球前十名,标志着中国将成为全球新能源科技的中心之一,世界上太阳能光伏的广泛应用,导致了目前缺乏的是原材料的供应和价格的上涨,我们需要将技术推广的同时,必须采用新的技术,以便大幅度降低成本,为这一新能源的长远发展提供原动力!
1.1.2 太阳能的应用领域
1、用户太阳能电源:[1]小型电源10-100W不等,用语边远无电地区如高原、海岛、牧区、边防哨所等军民生活用电,如照明、电视、收录机等;[2]3-5KW家庭屋顶并网发电系统;[3]光伏水泵:解决无电地区的深水井饮用、灌溉。
2、交通领域:如航标灯、交通/铁路信号灯、交通警示/标志灯、路灯、高空障碍灯、高速公路/铁路无线电话亭、无人值守道班供电等。
3、通讯/通信领域:太阳能无人值守微波中继站、光缆维护站、广播/通讯/寻呼电源系统;农村载波电话光伏系统、小型通信机、士兵GPS 供电等。
1
东北石油大学本科生毕业设计(论文)
4、石油、海洋、气象领域:石油管道和水库闸门阴极保护太阳能电源系统、石油钻井平台生活及应急电源、海洋检测设备、气象/水文观测设备等。
5、家庭灯具电源:如庭院灯、路灯、手提灯、野营灯、登山灯、垂钓灯、黑光灯、割胶灯、节能灯等。
6、光伏电站:10KW-50MW 独立光伏电站、风光互补电站、各种大型停车厂充电站等。
7、太阳能建筑:将太阳能发电与建筑材料相结合,使得未来的大型建筑实现电力自给,是未来一大发展方向。
8、其他领域包括:[1]与汽车配套:太阳能汽车/电动车、电池充电设备、汽车空调、换气扇、冷饮箱等;[2]太阳能制氢加燃料电池的再生发电系统;[3]海水淡化设备供电;[4]卫星、航天器、空间太阳能电站等。
目前美国、欧洲各国特别是德国及日本、印度等都在大力发展太阳电池应用,开始实施的\"十万屋顶\"计划、\"百万屋顶\"计划等,极大地推动了光伏市场的发展,前途十分光明。
1.1.3 光伏发电的特点
太阳能利用可分为热利用和光伏发电两种方式,热利用主要在采暖领域多,形式比较单一;而光伏发电可以把太阳能转换为当今最普遍的能源利用形式——电能,从而具有热利用不可比拟的优势。太阳能发电又分为光电发电、光化学发电、光感应发电和光生物发电。光伏发电是利用光伏电池这种半导体器件吸收太阳光辐射,使之转化成电能的直接发电形式,光伏发电当今太阳能发电的主流。与常规发电和其他绿色发电技术相比,光伏发电系统具有如下的优势:
1、 是真正的无污染排放、不破坏环境的可持续发展的绿色能源。太阳能不用燃料,运行成本很小,并且发电部件不易损坏,维护简单;
2、 利用场合广泛和灵活,既可以独立于电网运行,也可以与电网并行运行; 3、 可作为电力用户供电可靠或提高电能质量的不停电电源; 4、 接近负载中心,减少电网的线损; 5、 发电的效率不随发电规模的大小而变;
6、 就地可去,无需运输。光伏发电系统建设周期短,由于是模块化安装,不仅可用于小到太阳能计算器的几个毫伏,大到数十兆瓦的光伏电站,而且可以根据负荷的增减,任意添加或减少太阳电池容量,既方便灵活,又避免了浪费。
由于太阳能存在上述的优势,光伏发电在世界范围内受到高度的重视,发展很快。但是,目前光伏发电与电网供电的比较,光伏发电价格还比较高,不过其维修费用很少,随着发电量的增加,其价格会下降,优势才逐渐体现出来。
2
东北石油大学本科生毕业设计(论文)
1.1.4 单片机发展前景
单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroller),由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。单片机是70年代中期发展起来的一种大规模集成电路芯片,是CPU、RAM、ROM、I/O接口和中断系统集成于同一硅片的器件。单片机用于控制有利于实现系统控制的最小化和单片化,简化一些专用接口电路,如编程计数器、锁相环(PLL)、模拟开关、A/D和D/A变换器、电压比较器等组成的专用控制处理功能的单板式微系统。
单片机是所有微处理机中性价比最高的一种,随着种类的不断全面,功能不断完善,其应用领域也迅速扩大。单片机在智能仪表、实时控制、机电一体化、办公机械、家用电器等方面都有相当的应用领域。当前,8位单片机主要用于工业控制,如温度、压力、流量、计量和机械加工的测量和控制场合;高效能的16位单片机(如MCS-96、MK-68200)可用在更复杂的计算机网络。可以说,微机测控技术的应用已渗透到国民经济的各个部门,微机测控技术的应用是产品提高档次和推陈出新的有效途径。
纵观单片机的发展过程,可以预示单片机的发展趋势,大致有: 1、低功耗CMOS化
MCS-51系列的80C51推出时的功耗达120mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,更适合于在要求低功耗像电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。
2、微型单片化
常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。
3
东北石油大学本科生毕业设计(论文)
3、主流与多品种共存
现在虽然单片机的品种繁多,各具特色,但仍以MCS-51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的WinBond系列单片机。以8031为核心的单片机占据了半壁江山,在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。
1.2 本课题研究的主要内容
1、 分析太阳能电池板和蓄电池的特性。
2、 根据太阳能电池输出特性和蓄电池的特性,设计蓄电池的充/放电控制方法。
3、 画出电路图,并生成相应的PCB。 4、 进行仿真,并编写单片机的执行程序。
4
东北石油大学本科生毕业设计(论文)
第2章 太阳能电池的研究和分析
2.1 太阳能电池的原理
太阳能光伏电池表面有一层金属薄膜似的半导体薄片。当太阳光照射时,其中一部分被表面反射掉,其余部分被半导体吸收或透过。被吸收的光,当然有一些变成热,另一些光子则同组成半导体的原子价电子碰撞,于是产生电子——空穴对。这样,光能就以产生电子——空穴对的形式转变为电能。薄片的另一侧和金属薄膜之间将产生一定的电压,这一现象称为光伏效应。太阳能光伏电池正是一种利用光伏效应直接将光能转化为电能的装置。对于半导体P-N结,光伏效应更明显。因此,太阳能光伏电池都是由半导体构成的。
太阳能电池的基本结构相当于一个大面积二极管,其基本特性也与二极管类似。当用适当波长的太阳光照射到半导体上时,光能被半导体吸收后,在导带和价带中产生非平衡载流子--电子和空穴。半导体内在P型和N型交界面两边形成势垒电场,能将电子驱向N区,空穴驱向P区,从而使得N区有过剩的电子,P区有过剩的空穴,在P-N结附近形成与势垒电场方向相反的光生电场。光生电场的一部分除抵消势垒电场外,还使P型层带正电,N型层带负电,在N区与P区之间的薄层产生所谓光生伏特电动势。若分别在P型层和N型层焊上金属引线,接通负载,外电路则有电流通过。如此形成的一个个电池元件,把它们串联、并联起来,就能输出一定的电压、电流和功率。这样,太阳的光能就直接变成了可付诸实用的电能。
另外,在受光面上,覆盖着一层很薄的天蓝色氧化硅薄膜以减少入射太阳光的反射,提高太阳能电池对于入射光的吸收率。
2.2 太阳能电池的分类
目前,有许多材料可以用来做太阳能光伏电池的半导体层,但是能产生高能量转换效率的光伏材料并不多。全世界应用和研究的光伏材料主要包括单晶硅、多晶硅、砷化镓晶体材料以及非晶硅等薄膜材料。从对太阳能光吸收效率、能量转换效率、制造技术的成熟与否以及制造成本等多个因素来看,每种光伏材料各有其有缺点。
目前市场上的太阳能电池板繁多,根据太阳能电池板所用材料的不同可分为:① 硅太阳能电池;② 以无机盐如砷化镓III-V化合物,硫化镉、铜铟硒等多元化
5
东北石油大学本科生毕业设计(论文)
合物为材料的太阳能电池;③ 功能高分子材料(有机半导体)制备的太阳能电池;④ 纳米晶太阳能电池等。这里采用的是硅太阳能电池。硅系列太阳能电池中,单晶硅太阳能电池转换效率最高,技术也最为成熟。在电池制作中,一般都采用表面织构化、发射区钝化、分区掺杂等技术。开发的电池主要有平面单晶硅电池和刻槽埋栅电极单晶硅电池,电池转化效率20%左右。多晶硅薄膜电池所使用的硅远较单晶硅少,又无较大效率衰退问题,并且有可能在廉价衬底材料上制备,其成本远低于单晶硅电池,而效率高于非晶硅薄膜电池,电池效率达12%左右。非晶硅薄膜太阳能电池与结晶硅电池相比转换效率偏底,但其成本低,便于大规模生产,受到人们普遍的重视并得到迅速发展,电池最高转换效率为10%左右。
2.3 太阳能电池的等效电路
光伏电池受光的照射便产生电流。这个电流随着光强的增加而增大,当接受的光强度一定时,可以将光伏电池看作恒流电源。目前使用的光伏电池可看作P-N结型二极管,因为在光的照射下产生正向偏压,所以在P-N结为理想状态的情况下,可根据图2-1表示的等效电路来考虑。
I太阳光 ILILV IO
图2-1理想状态的太阳能电池等效电路图
在这种等效电路中,加给负荷的电压V和流过负荷的电流I之间的关系式,可由下式给出。
qvIILIOexp1 nKT (2-1)
当I=0时,可以得到太阳能电池的开路电压
VKTIlnL1qIO (2-2)
6
东北石油大学本科生毕业设计(论文)
其中I为电池单元输出电流;IL为PN结电流(A);IO为二极管的反向饱和电流(A);V为外加电压(V);q是单位电荷(1.61019K库仑);K是玻耳兹曼常数(1.381023J/K);T是绝对温度(Tt273K);n为二极管指数。
但是在实际的光伏电池中,由于电池表面和背面的电极和接触,以及材料本身具有一定的电阻率,流经负载的电流经过它们时,必然引起损耗,在等效电路中可将它们的总效果用一个串联电阻RS来表示。同时,由于电池边沿的漏电,在电池的微裂痕、划痕等处形成的金属桥漏电等,使一部分本该通过负载的电流短路,这种作用可用一个并联电阻R s h来等效表示。此时的等效电路可根据图2-2来描述,其伏安特性可由2-2式给出。
I 太阳光 Rsh ILIsh VIL IO
图2-2 实际光伏电池等效电路
IILIOexpqvRSIIV+RS 1nKTRs h (2-3)
此式叫做光伏电池的超越方程式。
2.4 太阳能电池板的主要参数
2.4.1光伏电池的主要参数
光伏电池的几个重要技术:
① 短路电流ISC:在给定日照强度和温度下的最大输出电流。 ② 开路电压VOC:在给定日照强度和温度下的最大输出电压。
7
东北石油大学本科生毕业设计(论文)
③ 最大功率点电流(IM):在给定日照强度和温度下相应最大功率点的电流。 ④ 最大功率点电压(VM):在给定日照和温度下相应于最大功率点的电压。 ⑤ 最大输出功率(PM):在给定日照和温度下光伏电池可能输出的最大功率。 ⑥ 填充因子 FFPMVOCISC (2-4)
⑦ 光伏电池的转换效率:输出功率PM与阳光投射到电池表面上的功率PS之比,其值取决于工作点。通常采用光伏电池的最大效率值作为其效率,
MPPTPM/PS。
以上各个参数可以在图2-3中表示如下:
I ISC PM IM0 VM VOCV
图2-3太阳能电池的I-V特性关系曲线
P(w) PM PMAX VMAX V(v)
图2-4太阳能电池的P-V特性曲线
8
东北石油大学本科生毕业设计(论文)
图2-3中,在I-V曲线上总可以找到一个工作点,此点处的输出功率最大,此点就是最大功率点(MPPT),即图中M点。M点所对应的电流IM为最佳工作电流,VM为最佳工作电压,PM为最大输出功率,由图和公式还可以看出,光伏电池不工作于最大功率点时,其效率都低于按此定义的效率值,甚至会低到零。原则上讲,可对输出功率求导使其为0,即可得到该电池的最佳工作点IM,VM,从而求出最大输出功率:PMIMVM。但是要求出其解析解,几乎不可能。因为它受太阳能电池内部等效的串、并联电阻的影响,其特性方程由公式2.3可知一个超越指数方程,无法用线性方程表示,具有非线性。图2-4可表示太阳能电池的P-V曲线。
从图2.3可见,IM和VM的乘积就是最佳工作点的纵横坐标所确定的矩形面积,在曲线范围内这个面积越大,表明电池的输出特性越优越。如果在一定光照下的I-V特性曲线是理想的矩形,那么IM和VM乘积就等于ISC和VOC的乘积。对实际光电池,引人填充因子FF(Fill factor)概念来表征光电池的这一特性,填充因子FF定义为式2-4。它表示最大输出功率的值所占的以VOC和ISC为边长的矩形面积的百分比,填充因子是表征光电池的输出特性好坏的重要参数之一。它的值越大,表明输出特性曲线越“方”,电池的转换效率也越高。
2.4.2太阳的光照强度对光伏电池转换效率的影响
图2-5、图2-6分别是太阳能电池阵列在温度为25℃时,不同日照(S)下表现出的电流-电压(I-V)和功率-电压(P-V)特性。从图2-5可知,太阳能电池阵列的输出短路电流(ISC)和最大功率点电流(IM)随日照强度的上升而显著增大虽然日照的变化对阵列的输出开路电压影响不是那么大,但对为电流与电压相乘的结果最大输出功率来说,变化显著,如图2-6中虚线与各实线的交点所示。
9
东北石油大学本科生毕业设计(论文)
I(A)2.01.51.00.5P(W)S1000W/m21000800600400200S800W/m2S600W/m21000W800W600W400W200WS400W/mS200W/m22O100200300400500UVO100200300400500UV
图2-5不同日照下的I-V关系曲线图 图2-6不同日照下的P-V曲线图
2.4.3 温度对光伏电池输出特性的影响
图2-7,图2-8分别给出了太阳能电池阵列在日照射为1000w/m2,和在变化温度(T)的情况下,表现出典型的I-V和P-V特性。可以看出,温度对太阳能电池阵列的输出电流影响不大,但对它的输出开路电压影响较大。因而对最大输出功率影响明显,见图2-8中各实线的波峰的幅值变化。
I(A)2.01.51.00.5S1000W/m250C25oCoP(W)1000800600400200S1000W/m20C100200300400500600o0oC25oC50oCU(V)100200300400500600
图2-7不同温度下的I-V特性曲线 图2-8不同温度下的P-V特性曲线
综上,太阳能电池板的输出特性具有以下特点:
① 太阳能电池的输出特性近似为矩形,即低压段近似为恒流源,接近开路电压时近似为恒压源;
② 开路电压近似同温度成反比,短路电流近似同日照强度强成正比;太阳能电池板的输出功率随着光强和温度成非线性变化;
③ 输出功率在某一点达到最大值,该点即为太阳能电池板的最大功率点(MPP,Maximum Power Point),且随着外界环境的变化而变化。
10
东北石油大学本科生毕业设计(论文)
2.5 本章小结
本章内容主要介绍太阳能电池板的相关知识。首先介绍了太阳能电池的原理,即太阳能电池板进行光电转换的原理;其次对太阳能电池板的等效电路进行了分析;介绍了太阳能电池的分类;最后结合可能影响太阳能电池板内部和外部因素对其输出特性作了分析介绍。
11
东北石油大学本科生毕业设计(论文)
第3章 蓄电池充电技术研究
太阳能充电系统中充电器最主要的功能是控制太阳能电池向蓄电池充电,控制蓄电池向负载供电,控制整个系统的正常、可靠运行。蓄电池的性能和充放电的方式有很大的关系,为了寻求最佳方案,在设计充电器之前必须做的一项工作是对蓄电池原理作一个详细的分析研究。
3.1 蓄电池的一般特性
3.1.1 主要参数指标
描述蓄电池特性的参数有很多,主要的有:蓄电池的充放电容量、蓄电池效率、荷电状态、放电深度和蓄电池寿命等。当然对于不同的蓄电池还有不同的参数,后面用到铅酸蓄电池时再详述。下面介绍其中一些参数的概念及相互间的关系。
1 蓄电池充放电容量
蓄电池充电容量QC:蓄电池充电时消耗的电量。 QCtC0ICdt (3-1)
式中IC为充电电流,tc为充电时间。
蓄电池放电容量Qd:完全充足电的蓄电池在一定放电条件下放出的电量。
Qdtd0Iddt (3-2)
式中Id为放电电流,td为放电时间。 影响蓄电池放电容量的主要因素有:
a) 放电率放电时间越短,放电电流就越大,蓄电池的终止电压越低,蓄电池的容量就越小。
b) 电解液的温度当电解液温度在10-35℃变化时,温度每升高1℃,蓄电池容量约增加额定容量的0.008。
通常采用25℃下10小时放电率取得的容量作为蓄电池的额定容量。 2 蓄电池效率
放电时能放出的全部电量与充电时充入的全部电量的百分比。可用安时效率
A或瓦时效率W表示,它们的关系为
12
东北石油大学本科生毕业设计(论文)
wIdUdtdIcUctcAUdUc100% (3-3)
式中UC和Ud分别为蓄电池充放电时的平均电压。 3 荷电状态(SOC)
己充电量与蓄电池额定容量的比值。
SOCQ(t)Qr (3-4)
式中Q(t)是蓄电池实际带电量,Qr是额定容量。 荷电状态是描述蓄电池实际工作状态的重要参数。 4 放电深度(DOD)
蓄电池放电量与额定容量的比值。
DOC1SOC (3-5)
5 蓄电池寿命
a) 浮动充电寿命:蓄电池保持在浮动充电条件下的使用寿命。即在一个固定的浮充电压和特定的电解液温度条件下的使用寿命。
b) 循环寿命:在一定的充电条件下,蓄电池被全充全放的次数。蓄电池的寿命与放电深度、充电电压和环境温度密切相关。选择放电深度30-50%,环境温度10-25℃可充分延长蓄电池使用寿命。
3.1.2 铅酸蓄电池的充放电特性
铅酸蓄电池充电后,正极板二氧化铅(PbO2),在硫酸溶液中水分子的作用
OH4)下,少量二氧化铅与水生成可离解的不稳定物质--氢氧化铅(Pb,氢氧根
离子在溶液中,铅离子(Pb4)留在正极板上,故正极板上缺少电子。铅酸蓄电池充电后,负极板是铅(Pb),与电解液中的硫酸(H2SO4)发生反应,变成铅离子(Pb2),铅离子转移到电解液中,负极板上留下多余的两个电子(2e)。可见,在未接通外电路时(电池开路),由于化学作用,正极板上缺少电子,负极板上多余电子,如图3-1所示,两极板间就产生了一定的电位差,这就是电池的电动势。
13
东北石油大学本科生毕业设计(论文)
PbO2Pb2H2OHSO42Pb42OHPb2Pb2SO422HH2SO4图3-1铅酸蓄电池电动势产生原理
其原理可通过下面的反应方程式来表示:
2H负极: PbH2SO4PbSO4正极: 总反应:
PbO2HS4O2222e (3-8)
PbS2O42H2e (3-9)
HOHOPbPb2O2HSO24PbS2O42 (3-10)
图3-2 是固定放电电流下电池端电压与放电时间的示意图。从图可以看出,在大部分放电过程中,电池端电压是稳定下降的,说明电池释放的能量与电池端电压的降低量间存在一定的关系。但到了放电末期,出现转折点,此时电池端电压急剧下降,这是因为电解液中,硫酸的浓度已经很低,电解液扩散到极板的速度不及放电的速度,在电解质不足的情况下,极板的电动势急剧降低,造成电池端电压的下降,至此应停止放电,否则会造成电池的过度放电。过放电会致使电池内部大量的硫酸铅被吸附到蓄电池的阴极表面,造成电池阴极“硫酸盐化”,由于硫酸铅是一种绝缘体,它的形成必将对蓄电池的充、放电性能产生很大的负面影响,因此在阴极上形成的硫酸盐越多,蓄电池的内阻也越大,电池的充、放电性能就越差,从而使蓄电池的寿命缩短。
14
东北石油大学本科生毕业设计(论文)
U电池端电压 转折点 放电时间
图3-2 铅酸电池端电压与放电时间的关系
3.2 太阳能----蓄电池充电技术研究
对蓄电池的充电方法有很多种,如恒流充电、恒压充电、恒压限流充电、两阶段充电、三阶段充电、快速充电、智能充电、均衡充电等方法
3.2.1 恒流充电
恒流充电就是以一定的电流进行充电,在充电过程中随着蓄电池电压的变化要进行电流调整使之恒定不变。这种方法特别适合于有多个蓄电池串联的蓄电池组进行充电,能使落后的蓄电池的容量易于得到恢复,最好用于小电流长时间的充电模式。
这种充电方式的不足之处是,蓄电池开始充电电流偏小,在充电后期充电电流又偏大,充电电压偏高,整个充电过程时间长,特别在充电后期,析出气体多,对极板冲击大,能耗高,其充电效率不足65%。为避免充电后期电流过大的缺点,一种改进型的恒流方法得到应用,它就是分段恒流充电,这种方法在充电后期把电流减小。具体充电电流的大小、充电时间以及何时转换为小电流,必须参照蓄电池维护使用说明书中的有关规定,否则容易损坏蓄电池。充电过程中电压、电流变化关系如图3-3所示。
15
东北石油大学本科生毕业设计(论文)
U,I U U,IUII t t
图3-3恒流充电曲线 图3-4恒压充电曲线
3.2.2 恒压充电
恒压充电就是指以一恒定电压对蓄电池进行充电。因此在充电初期由于蓄电池电压较低,充电电流很大,但随着蓄电池电压的渐渐升高,电流逐渐减小。在充电末期只有很小的电流通过,这样在充电过程中就不必调整电流。
相对恒流充电来说,此法的充电电流自动减小,所以充电过程中析气量小,充电时间短,能耗低,充电效率可达80%,如充电电压选择适当,可在8小时内完成充电。此法的充电特性曲线如图3-4所示,此法也有其不足之处:
① 在充电初期,如果蓄电池放电深度过深,充电电流会很大,不仅危及充电控制器的安全,而且蓄电池可能因过流而受到损伤。
② 如果蓄电池电压过低,后期充电电流又过小,充电时间过长,不适合串联数量多的电池组充电。
③ 蓄电池端电压的变化很难补偿,充电过程中对落后电池的完全充电也很难完成。
这种充电方式,在光伏小系统中常采用,由于其充电电源来自太阳能阵列,其功率不足以使蓄电池产生很大的电流,所以在这样的系统中蓄电池组串联不多。
3.2.3 恒压限流充电
恒压限流充电方式是为克服恒压充电时初始电流过大而进行改进的一种方式。它是在充电电源与蓄电池之间串联一限流电阻,当电流大时,其上的电压降就大,从而减小了充电电压;当电流小时,限流电阻上的电压降也小,从而加到蓄电池上的电压也增大,这样就自动调整了充电电流,使之在某个限定范围内,这样在充电初期的电流就得到限制,虽然充电控制器输出是恒压,但加在蓄电池上的电压不为恒压,因此也称这种方式为准恒压方式。
16
东北石油大学本科生毕业设计(论文)
3.2.4 两阶段、三阶段充电
这种方式是以克服恒流与恒压充电的缺点而结合的一种充电策略。它要求首先对蓄电池采用恒流充电方式充电,蓄电池充电到达一定容量后,然后采用恒压方式进行充电。这样蓄电池在初期充电不会出现很大的电流,在后期也不会出现高电压,使蓄电池产生析气。其充电特性如图3-5所示。
在两阶段充电完毕,即蓄电池容量到达其额定容量(当时环境条件下)时,许多充电控制器允许对蓄电池继续以小电流进行充电,以弥补蓄电池的自放电,这种以小电流充电的方式也称为浮充。这就是在两阶段基础上的第三阶段,但在这一阶段的充电电压要比恒压阶段的要低。如图3-5的虚线段Uf。本系统采用的就是三阶段充电阶段。
U,I IUU Uf t
图3-5两阶段、三阶段充电曲线
3.2.5 快速充电
正常充电方式蓄电池从0%到100%容量比,一般需要8-20小时,充电时间长。在某些场合需要缩短充电时间,但采用电流过大时蓄电池的温度会升高过快,对蓄电池有损害,且电流利用率也下降。快速充电就是采用大电流和高电压对蓄电池充电,在1-2小时内把蓄电池充好,而且在这个过程中不会使蓄电池产生大量析气和使蓄电池电解液温度过高(一般在45℃以下)。这种方式解决不产生大量析气和不使温度升高过大的方法是采用不断地脉冲充电和反向电流短时间放电相结合方法。短时反向放电的目的是消除蓄电池大电流充电过程中产生的极化。这样就可以大大地提高充电速度,缩短充电时间。当然脉冲充电电流、持续时间和放电电流以及持续时间必须根据蓄电池的要求进行。
17
东北石油大学本科生毕业设计(论文)
3.2.6 智能充电
智能充电是以美国人J.A.MAS(马斯)研究提出的蓄电池快速充电的一些基本规律为基础。它是以最低析气率为前提,找出蓄电池能够接受的最大充电电流和可以接受的充电电流曲线。
虽说可以使蓄电池的充电电流始终保持在可接受电流的附近,从而使蓄电池能得到快速充电,且对蓄电池影响较小。但是在光伏系统中因为充电电源本身并不是真正意义上的“无限电源”,而是来自太阳能光伏阵列这个“有限电源”,对蓄电池充电的同时还必须考虑电源电流的“来源”是否足够。因此还未见到在光伏系统中采用充电可接受电流控制的智能充电的研究报道。
3.3 本章小结
介绍了蓄电池的相关知识。首先通过对蓄电池的概念和一般特性的介绍,使我们对蓄电池有了更多的了解;并结合上一章对太阳能电池板的介绍,简单的对太阳能----蓄电池充电技术作了简单的研究。
18
东北石油大学本科生毕业设计(论文)
第4章 系统硬件设计
4.1太阳能充/放电器原理
太阳能充放/电控制器的作用是有效地控制太阳能电池板给蓄电池充电,同时控制蓄电池为负载放电,以12V蓄电池为例,以其配套的太阳能电池板在有一定光照强度下的开路电压为21V,接入控制器后的电压为17V,蓄电池的电压为10~14V,不同的蓄电池其充放电特性是不同的,若为小容量蓄电池,当接通太阳能电池板与蓄电池后,蓄电池的电压会在很短的时间内被电池板充到14V,若不加控制,蓄电池电压甚至会更高,我们判断蓄电池是否已经充满的标准就是检测蓄电池的电压值,实际上在这种方式下检测出的结果是不准确的,因此此时检测到得蓄电池电压是虚电压,而等电池稳定后,再测量电压,会发现电压下降了许多,我们加入控制器的目的就是当检测到蓄电池电压达到一定值时,使用控制器控制连接太阳能电池板与蓄电池之间的MOS管的开关,以一种脉宽调制的方式,降低充电电流以进一步为蓄电池充电,直到最后用很微小的电流将蓄电池电压维持在某一固定值。控制负载是需要注意,当蓄电池电压放电到一定电压值以下时,要关断负载,以保护蓄电池不能太过放电,若控制器控制充电部分电路出现问题,蓄电池电压将有可能一直被充到16V以上,这样的电压连进负载时,极有可能烧毁负载,因此,也要保证当蓄电池电压高于一定电压值时同样要关断负载。
以充/放电最大电流10A、额定电压12V控制系统为例,其主要实现功能如下: 要能自动检测太阳能电池板电压是否高于蓄电池电压,若高于蓄电池电压则开始充电:若低于蓄电池电压,则不能开启充电,否则蓄电池电流会反向流向太阳能电池板而造成电量损耗。
负载放电电流达到12A时控制器通过蜂鸣器报警,提示用户负载已经过载请降低负载功率运行:当放电电流达到15A时控制器会自动切断负载输出,以保护控制器不被烧坏。切断负载输出后,控制器要能够自动检测负载功率,当负载功率降低到额定功率一下时,控制器又可自动开启负载。
当蓄电池电压低于10.8V时,自动关断负载(欠压关断),同时有报警提示;当从低于10.8V回升到13.2V时自动接通负载(欠压恢复)。
当蓄电池电压高于14.8V时,自动关断负载(欠压关断),同时有报警提示;当从高于14.8V回落到14.7V时自动接通负载(过压恢复)。
当蓄电池处于浮充状态时电压值控制在13.7V。
当用户将太阳能电池板反接至控制器时,要有报警功能,并且具有保护控制器不被损坏的功能。
19
东北石油大学本科生毕业设计(论文)
当用户将蓄电池反接至控制器时,要有报警功能,并且具有保护控制器不被损坏的功能。
当负载发生短路时,控制器要具有自我保护能力,同时能检验出短路状态并给予报警提示;当短路解除时能够自动恢复正常。
不同的温度对于蓄电池的浮充电压点是不同的,要有自动检测温度功能,并且能够自动调节蓄电池的各个电压点。
最后,以上设计中的所有参考点都可手动调节,同时可手动微调以校准单片机的A∕D参考电压,使所有控制器的参考点统一。
4.2系统硬件设计
4.2.1 主控芯片的设计
单片机是整个路灯制器的智能核心模块,在此选用STC12C5412AD单片机,如图4-1所示,该芯片具有4路PWM输出,这里使用其中一路PWM控制充电MOS管的开关,自带8路10位A/D,用来采集系统中所有需要处理的模拟信号, R1和R2采用精密电阻,主要用来分压蓄电池电压后,让单片机采集,通过R1和R2大小关系计算出蓄电池实际电压,然后根据项目实现功能进行相应的控制。 其中R1、R2一定要使用精密电阻,其他电阻可选用普通电阻。所谓精密电阻是指误差小于1%的电阻,普通电阻的精度为5%~0%。
图4-1主控芯片
主控芯片采用STC12C5412AD单片机,该单片机具有以下特性: ·增强型8051CPU,指令代码完全兼容8051内核 ·1个时钟/机器周期高速运行 ·SOP-28超小封装
·4路PWM/PCA/CCU/捕获/比较单元
20
东北石油大学本科生毕业设计(论文)
·8路10位高速A/D转换 ·12KBFlash程序存储器 ·片上集成512字节RAM ·内置E²PROM数据存储器
·外部中断9路,下降沿中断或低电平触发中断 ·内置硬件看门狗 ·两个定时器
·全双工异步串行口(UART)
·高速硬件SPI通信端口,主模式/从模式 ·片内R/C振荡器 ·宽电压范围3.8~5.5V
·低功耗设计,包含空闲模式和掉电模式
·工作频率为0~35MHz,相当于普通8051的0~420MHz ·加密性强,无法解密 ·超强抗干扰
·工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)
·6个16位定时器其中两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器T2,PCA模块可实现4个16位定时器
4.2.2 串口通信设计
如图4-2所示,串口通信部分采用MAX232芯片进行TTL电平和RS-232电平之间的转换。MAX232CSE—TTL电平与RS-232电平转换芯片,4路转换,外围接5个104电容。加入串口的目的主要有三个:一是给单片机下载程序;二是使控制器具有远程通信或远程监视的功能;三是将控制器每天采集到得数据的极限值和发生异常状态时的数据记录在其内部的E²PROM中,当工作人员需要查看数据时,可直接通过串口读取数据。最后,还需要与上位机软件配合使用。
21
东北石油大学本科生毕业设计(论文)
图4-2 串口通信
4.2.3 液晶接口的设计
控制器板上预留有1602液晶接口,如图4-3所示,可根据用户需要选择安装1602液晶。1602液晶—可显示两行,每行16个字母,工作电压4.5~5.5V,带背光,并口操作方式。
特点:单5V电源电压,低功耗,长寿命,高可靠性。内置192种字符。具有64个字节的自定义字符RAM,可自定义8个58点阵字符或四个511点阵字符。
22
东北石油大学本科生毕业设计(论文)
图4-3 1602液晶接口
4.2.4 发光二极管的设计
图4-4为控制器发光二极管指示灯,它有6个状态指示:①蓄电池接入指示灯;②系统正常工作状态指示灯;③蓄电池欠压指示灯;④蓄电池过压指示灯;⑤充电状态指示灯;⑥负载工作状态指示灯。
图4-4发光二极管指示灯
23
东北石油大学本科生毕业设计(论文)
4.2.5 蜂鸣器的设计
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器用于系统出现异常是报警,如图4-5所示,其中使用了4个二极管,其作用是当用户不小心将蓄电池反接至控制器时,蜂鸣器会以长响报警,用户提示接入有异常,同时还保证在蓄电池正确接入系统的条件下 当BEEP端为单片机输出高电平时,蜂鸣器也可发声报警。
图4-5 蜂鸣器
4.2.6 按键设计
图4-6 中按键用来调节系统的各个参数及状态。
24
东北石油大学本科生毕业设计(论文)
图4-6 按键
4.2.7 电源接口设计
图4-7为电源接口,控制器采用太阳能电池板、蓄电池和负载共用正极的方式接入,通过蓄电池负极与太阳能电池板负极之间的MOS管控制充电的开/关,通过蓄电池负极与负载负极之间的MOS管控制负载放电的开/关,图7中各个电气符号意义如下:
PV+ — 太阳能电池板正极 PV- — 太阳能电池板负极 VCC(12V)—蓄电池正极 BAT-—蓄电池负极 FU+—负载正极 FU-—负载负极
图4-7 电源接口
其中,PV+、VCC(12V)、FU+连接在一起。
4.2.8 晶振设计
图4-8为单片机晶振电路,晶振频率采用12MHz。
单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单
25
东北石油大学本科生毕业设计(论文)
片机晶振提供的时钟频率。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十,高级的精度更高。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。
图4-8 晶振电路
4.2.9 电源部分和控制部分电路设计
图4-9为电源转换及控制器部分电路,蓄电池正极从二极管DD6的阳极接入,DD6为防电源反接构成反向回路设计。Q3,R16,DW2为一级降压电路,将蓄电池电压钳位在9.4V左右。DW2为10V稳压管,当蓄电池电压高于10V时,通过三极管Q3和稳压管DW2后降压到9.4V。降压到9.4V的原因是三极管的基极电压被稳压管稳定在10V,通过BE极之间的PN结后电压下降0.6V,所以为9.4V。然后通过二级降压电路R17,Q4和DW3将输出电压钳位到5V,这5V电压用来给单片机系统提供电源,两级降压电路中使用三极管的作用是为了扩流,单纯用稳压管同样可以稳压到期望的电压值,可是输出的电流会非常小,以至根本无法带负载。
电阻R25,R26和二极管DD8用来检测太阳能电池板电压值,标号“PV-”为太阳能电池板负极,“JCPV”接单片机A/D输入口。当“PV-”电压等于或大于“BAT-”电压时,说明太阳能电池板电压等于或小于蓄电池电压,这时不能开启充电控制。
R12,R13,R14,R15,DW1,Q2,T1为控制负载开关电路。DW1用来保证MOS管与GS之间电压最大不得超过10V,否则会损坏MOS管,三极管Q3导通时,MOS管T1关闭;Q2不导通时,MOS管T1开启。标号“ADC1”有三个作用,一用于单片机控制负载通断;二用于采集MOS管在开启状态下的DS压降,从而检测负载消耗电流大小;三当负载过度或短路时,“ADC1”由硬件自动时MOS关闭,从而保护MOS管及负载的进一步损坏。
R21,R20用来启动硬件自动关闭充电,当太阳能电池板低于蓄电池电压时,可由“PV-”直接控制Q5三极管,Q6的控制将失效。
26
东北石油大学本科生毕业设计(论文)
T2,T3两个MOS管对接才可有效控制充电回路,因为MOS管内部自身会有一个二极管,N沟道为S指向D,P沟道为D指向S,DW4为T2和T3MOS管稳压。T2和T3MOS管的开/关由Q3和Q6两个三极管的状态共同决定。
其中三极管9012—PNP型,低频放大,50V,0.5A,0.625W,150MHz。9013—NPN型,低频放大,50V,0.5A,0.625W,150MHz。BC337—NPN型,低频放大,45V,0.5A,0.625W,100MHz。而二极管IN4148—电流150mA,反向最大电压75V,截止频率100MHz。MOS管IRL2703—N沟道功率MOS管,VDSS =30V,RDS(ON) =0.04Ω,ID =24A,最高运行温度175℃。
图4-9 电源转换及控制部分电路
4.2.10 生成并设计PCB
电路图设计完毕之后进行PCB的设计,首先进行验证,程序将验证结果显示在Check字段,如图4-10所示,在进行数据更新,程序将数据更新结果显示在Done字段,如图4-11所示。再对其进行布局布线,结果如图4-12所示。
27
东北石油大学本科生毕业设计(论文)
4-10 数据验证
4-11 数据更新
4-12 PCB图
4.3 单片机的防干扰技术
4.3.1 干扰分析
1、干扰产生的原因
总的来说,干扰信号的产生主要有三类:
(1) 放电干扰:主要是雷电、静电、大功率开关触电断开等放电产生的干扰; (2) 高频振荡干扰:主要指感应电炉、中频电弧、开关电源、直流-交流变换器产生高频振荡时形成的;
28
东北石油大学本科生毕业设计(论文)
(3) 浪涌干扰:主要是交流系统中电动机启动电流、电炉合闸电流、开关调节器等设备产生涌流引起的。
这些干扰可能通过各种形式作用于计算机测控系统,对它们的性能有严重的影响,其中以各类开关分断电感性负载所产生的干扰最难以抑制与消除。本系统最有可能产生干扰的就是静电引起的放电干扰,还有开关电源引起的高频振荡干扰。
2、干扰的危害
干扰对于不同设计的控制系统的影响范围和影响程度不一样,基本上干扰产生的后果有以下五个方面:
(1) 数据采集误差加大。干扰侵入计算机系统测量单元模拟信号的输入通道,叠加在有用信号上,会使数据采集误差加大,特别是对于比较微弱的信号,干扰更加严重。
(2) 控制状态失灵。一般计算机输出的控制信号较大,不易受到外界的干扰。但计算机输出的控制信号常依据某些条件的状态输入信号和这些信号的逻辑处理结果。若这些输入的信号受到干扰,引入虚假的状态信号,将导致输出控制误差加大,甚至控制失常。
(3) 数据受干扰发生变化。就是在进行数据的读/写操作时,由于一些错误的信号使得数据发生异变,而这些数据的变化可能使得控制状态失灵,也可能改变程序的运行状态。
(4) 程序运行失常。这个严重的后果表现为程序执行一系列毫无意义的指令,最后进入死循环,这将使输出严重混乱或系统失灵。
(5) 器件损坏。某些干扰:静电可能会使得芯片上加上一个较大的电压,这样一个芯片的某些部件将很快的烧毁。
4.3.2 硬件抗干扰方法
在上面的分析中已经很清楚的阐述了干扰带来的危害,所以必须采取措施抵抗干扰的出现,或者把干扰带来的危害降到最低。下面是一些常用的抗干扰措施,并且在本文的硬件设计中也用到了其中的一些措施。
1、抑制干扰源。这里常用的措施有:继电器线圈增加续流二极管,消除断开线圈时产生的反电动势干扰;适当增加电路板上各个集成块的滤波电路,并且要注意高频电容的布线,连线应靠近电源端并尽量粗短,否则等于增大了电容的等效串联电阻,会影响滤波效果;布线时避免90度折线,减少高频噪声发射。如下图4-13所示。
29
东北石油大学本科生毕业设计(论文)
图4-13抗干扰电路
图中主要采用了两种电容来对抗可能的干扰,采用大容量的滤波电容可以有效地抑制电源上出现的纹波,即轻微的电压波动,并且能够构成电压快速变化分量的泄放电路,防止电压的快速波动;而退藕电容是并接在芯片的电源和地线之间的,用于消除高速跳变的电流产生的阻抗噪声。其中C5是退藕电容C6是滤波电容。
2、切断干扰传播途径。这里就有几个需要注意的方面了:充分考虑电源对单片机的影响;有可能的话抑制电场、磁场的干扰,这个现在最常见的就是光耦器件,本系统并没有采用;注意晶振布线,晶振与单片机引脚尽量靠近,用地线把时钟区隔离起来,晶振外壳接地并固定;电路板合理分区,尽可能把干扰源与敏感元件隔离;模拟地和数字地的隔离(如图4-14);上拉电阻的使用(如图4-15)。
模拟电路1 模拟电路2 数字电路1 数字电路1 R1 R2 R3 R4 模拟地 数字地 电源地
图4-14 地线连接
30
东北石油大学本科生毕业设计(论文)
VCC P0.0 P0.1 P0.2 P0.3 . . . 图4-15上拉电阻的使用
AT89S52 4.4 本章小结
本章首先介绍了太阳能充/放电的原理,然后从硬件电路的各个部分着手,详细介绍每一部分的工作原理和工作工程。
对硬件电路的介绍中主要从系统的两个核心部件STC12C5412AD和MAX232展开,并对其他部分做了一定的介绍,并且生成了PCB。
另外,本文也比较详细的介绍了单片机的抗干扰技术。
31
东北石油大学本科生毕业设计(论文)
第5章 系统软件设计
5.1 protues仿真
使用protues进行仿真,首先要画电路图,电路图与前面的protel图基本一样,但因为此版本中没有STC12C5412AD单片机,所以用AT89C52代替。而MAX232因其电源内置而没有画出。因为protues中没有太阳能电池板所以没有画出。仿真电路图如图5-1所示,运行后如图5-2所示。
图5-1仿真图
32
东北石油大学本科生毕业设计(论文)
图5-2 仿真运行图
5.2 keil程序调试
使用keil编译程序,在调试成功后与之前画好的protues仿真图相连,便可完成仿真,本系统调试在keil.c环境下进行,具体步骤如下:
(1)打开keil软件,新建工程
打开keil软件,选择project——new project创建新工程,如图5-3所示。 (2)选择单片机
输入功能项目名之后,因为系统中没有STC12C5412AD所以在单片机窗口中选择AT89C52单片机作为模拟单片机,如图5-4所示。
(3)新建文件并导入工程
通过菜单File——New创建一个新的文字编辑窗口,我们可以将写好的程序直接复制上面,也可以直接在上面编写。编写完毕以后选择“保存”。保存完毕后,会出现类似第2步的对话框,我们把第一个程序命名为TEXT.c,保存在项目所在的目录中,这时您会发现程序单词有了不同的颜色,说明KEIL的C语法检查生效了。此时鼠标在屏幕左边的Source Group1文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。我们选“Add File to Group„Source Group 1‟”弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗,程序文件已加到项目中了。
33
东北石油大学本科生毕业设计(论文)
图5-3新建工程
图5-4选择单片机型号
34
东北石油大学本科生毕业设计(论文)
5.3流程图
5.3.1系统流程图
下图是本系统的工作流程图。如图5-5所示从系统开始运行、初始化然后互在电池端电压采样,当测得蓄电池电压低于10.8V时,自动关断负载(欠压关断),同时有报警提示;当蓄电池电压介于10.8V到13.2V之间时自动接通负载;当蓄电池电压高于14.8V时,自动关断负载(欠压关断),同时有报警提示。
开始 初始化 电池端电压采样 U<10.8V N 10.8V35
东北石油大学本科生毕业设计(论文)
5.3.2 A/D转换流程图
下图是A/D转换的流程图,如图5-6所示,系统开始后选择通道,允许A/D
转换,在设置其相应寄存器的值之后启动转换,判断转换是否结束,若结束,读取转换值,再进行数据处理。若没结束,则继续进行转换。
开始 选择通道,允许A/D转换 设置相应寄存器的值 启动转换 N 转换是否结束 Y 读取转换值 数据处理 图5-6 A/D流程图
5.3.3 蜂鸣器流程图
蜂鸣器流程图如图5-7所示,开始后设置循环计数A,当BEEP=1后延时
400ms,延时后BEEP=0,再延时400ms,若判断A=0则结束,若不等于则重新开始。
36
东北石油大学本科生毕业设计(论文)
开始 设置循环计数值A BEEP=1 延时400ms BEEP=0 延时400ms N 判断A是否等于0 Y 结束
5.4 本章小结
本章重点介绍了系统的仿真,程序调试以及流程图。仿真中包括了仿真图以及运行图,详细的介绍了程序调试的各个步骤,画出了系统流程图、A/D转换流程图以及蜂鸣器流程图。
37
东北石油大学本科生毕业设计(论文)
结论
在本课题的研究中,我对太阳能发电、蓄电池以及单片机硬件和软件的知识有了很大程度的提高。太阳能充放电控制器的主要作用就是要能自动检测太阳能电池板电压是否高于蓄电池电压,若高于蓄电池电压则开始充电:若低于蓄电池电压,则不能开启充电,否则蓄电池电流会反向流向太阳能电池板而造成电量损耗。本文是以充/放电最大电流10A、额定电压12V控制系统为例。当蓄电池电压低于10.8V时,自动关断负载,同时有报警提示;当从低于10.8V回升到13.2V时自动接通负载。当蓄电池电压高于14.8V时,自动关断负载,同时有报警提示。在设计的过程中也遇到过很多问题。比如:在使用protel软件画电路图时因为STC12C5412AD没有封装而无法生成相应的PCB,但最后通过学习完成了封装;在电路图设计完成后又加入了防干扰电路并且将晶振和单片机之间的距离尽量缩短以减少干扰。但是由于时间比较紧,很遗憾的是,并没有完成电路板的制作,希望能在以后的学习中完成这项工作,完善整个设计。
随着能源问题的日益严峻,相信太阳能充放电技术讲会运用在更多领域,也相信这方面的前景一片光芒。
38
东北石油大学本科生毕业设计(论文)
参考文献
[1] [2]
高桥清.太阳光发电.北京:科学出版社,1987.
Chih chiang Hua, Chihming Shen. Study of maximum power tracking techniques control of DC/DC converters for photovoltaic power system. PESC 98 Record 29th Annual IEEE. 1998(1):86-93.
[3] [4]
欧阳名三,余世杰,沈玉梁等.具有最大功率点跟踪功能的户用光伏充电系统的研究[Jl.农业工程学报.2003, 19 C6):272~275.
杨树明,史胜达.独立光伏电源系统设计方法.2001年全国电源技术应用研讨会论文集.2001.
刘广林.铅酸蓄电池技术手册.北京:宇航出版社出版,1991. 罗光毅.蓄电池智能管理系统.浙江大学硕士学位论文,2003.
刘建平.从阀控式密封铅酸蓄电池看充电器.移动电源与车辆,2000(3):29-32.
James P, Dunlop Brian N, Farhi. Recommendations for maximizing battery life in photovoltaic systems. A review of lessons learned Proceedings of Forum 2001 Solar Rnerny, The Power to Choose Washington D C, 2001. 21-25.
[5] [6] [7] [8]
[9]
刘福刁,刘新田.单片机全自动跟踪太阳发电设备控制器的设计.微计算机信息,1999,15(4):2-6.
[10] 薛均义,张彦斌.MC5-51/96系列单片微型计算机及其应用.西安:西安交
通大学出版社,1997.
[11] 赵富鑫,魏彦章等.太阳电池及其应用.北京:国防工业出版社,1985. [12] 朱小同,赵桂先.蓄电池快速充电的原理与实践.北京:煤炭工业出版社. [13] 毕大成,周希德.电动汽车铅酸蓄电池快速充电方法的研究.电源技术,2000
24 (3)159~161.
[14] 太阳能多功能充电器的设计.德州学院机电工程系.陈洁.
[15] 智能型多用途太阳能供电系统(辽宁工学院硕士学位论文). 闰妍.2007.3 [16] 太阳能电池,李海雁,杨锡震著,大学物理第22卷第9期2003年9月. [17] 郭天祥. 新概念51单片机C语言教程 入门、提高、开发、拓展全攻略[M].
北京: 电子工业出版社,2009.
39
东北石油大学本科生毕业设计(论文)
致 谢 附录
程序:
以下代码为主程序代码controller.c: #include \"STC12C5410AD.h\" #include #include TH1=(65536-50000)/256; TL1=(65536-50000)%256; t1_num++; t1_numgz++; if(t1_num==jcjg) { t1_num=0; flag_t1=1; } if(t1_numgz==jcgzjg) { t1_numgz=0; flag_t1gz=1; } } void main() { init(); 40 东北石油大学本科生毕业设计(论文) while(1) { if(flag_pv==1) { v_temp=Ad_Av(1); if(v_temp checkpv(); if(flag_pv==1) { pwm_1(); cdd=0; } fcd_z(); fcd_j(); func(); diqynum--; if(diqynum>0) { didi(3); delay(1000); } else diqynum=1; } didi(1); 41 东北石油大学本科生毕业设计(论文) fz_on; delay(1); fzd=0; P1M0=0x8f; P1M1=0xc1; flag_fz=1; delay(1000); qyd=1; pwm_a=20; } if(v_temp>=qy&&v_temp<=gygd) { qyd=1; if(v_temp if(v_temp>gygd) { pwm_0(); cdd=1; } } else { v_temp=Ad_Av(1); if(v_temp 东北石油大学本科生毕业设计(论文) { qyd=0; delay(1000); diqynum=3; P1M0=0x87; P1M1=0xc9; fz_off; fzd=1; flag_fz=0; while(!(Ad_Av(1)>=qyhf)) { checkpv(); if(flag_pv==1) { pwm_1(); cdd=0; } fcd_z(); fcd_j(); func(); diqynum--; if(diqynum>0) { didi(3); delay(1000); } else diqynum=1; } didi(1); fz_on; delay(1); fzd=0; P1M0=0x8f; P1M1=0xc1; flag_fz=1; 43 东北石油大学本科生毕业设计(论文) delay(1000); qyd=1; } if(v_temp>gygd) { diqynum=3; gyd=0; P1M0=0x87; P1M1=0xc9; fz_off; fzd=1; flag_fz=0; while(!(Ad_Av(1)>=gyhf)) { fcd_z(); fcd_j(); func(); diqynum--; if(diqynum>0) { didi(3); delay(1000); } else diqynum=1; } didi(1); fz_on; delay(1); fzd=0; P1M0=0x8f; P1M1=0xc1; flag_fz=1; delay(1000); gyd=1; } 44 东北石油大学本科生毕业设计(论文) } pwm_zk(10); checkpv(); checkgz(); fcd_z(); fcd_j(); func(); }; } 以下源代码为pvgz.h: void pwm_zk(uchar gao) { PCA_PWM0=0; CCAP0H=(256-gao); CR=1; } void pwm_1() { PCA_PWM0=0; CCAP0H=0; } void pwm_0() { PCA_PWM0=0X03; CCAP0H=0xff; } void checkpv() { } void checkgz() { float temp_gz; if(flag_fz==1) { temp_gz=Ad_fu(4); if(temp_gz>gzdy) 45 东北石油大学本科生毕业设计(论文) { P1M0=0x87; P1M1=0xc9; fz_off; didi(1); flag_fz=0; fzd=1; flag_gz=1; flag_t1gz=0; } if(temp_gz>(gzdy-0.02)) { didi(1); } } } 以下源代码为writeyejing.h: void fcd_z() { if(key1==0) { delay(20); if(key1==0) { while(!key1); switch(flag_fun) { case 0: fcd+=0.01; cwfc+=0.01; sectorerase(0x2e00); write_eep(cwfc,0x2e00); byte_write(0x2e06,1); break; case 1: gzdy=gzdy+0.01; 46 东北石油大学本科生毕业设计(论文) sectorerase(0x2c00); byte_write(0x2c00,gzdy*100); byte_write(0x2c06,1); break; case 2: break; case 3: gzdy=0.13; fcd=13.7; cwfc=13.7; sectorerase(0x2c00); sectorerase(0x2c00); break; } didi(1); } } } void fcd_j() { if(key2==0) { delay(20); if(key2==0) { while(!key2); switch(flag_fun) { case 0: fcd-=0.01; cwfc-=0.01; sectorerase(0x2e00); write_eep(cwfc,0x2e00); byte_write(0x2e06,1); break; case 1: 47 东北石油大学本科生毕业设计(论文) gzdy=gzdy-0.01; sectorerase(0x2c00); byte_write(0x2c00,gzdy*100); byte_write(0x2c06,1); break; case 2: break; case 3: break; } didi(1); } } } void func() { uchar key_flag=0; if(key3==0) { delay(20); if(key3==0) { while(!key3); flag_fun++; if(flag_fun==2) { didi(3); while(key_flag==0) { if(key1==0) { delay(20); if(key1==0) { while(!key1); fcd+=0.01; 48 东北石油大学本科生毕业设计(论文) cwfc+=0.01; } didi(1); } if(key2==0) { delay(20); if(key2==0) { while(!key2); fcd-=0.01; cwfc-=0.01; } didi(1); } if(key3==0) { delay(20); if(key3==0) { while(!key3); flag_fun++; sectorerase(0x2e00); write_eep(cwfc,0x2e00); byte_write(0x2e06,1); key_flag=1; } } if((Ad_Av(1)>(fcd-0.01))&&( Ad_Av(1)<(fcd+0.01))) didi(1); } } if(flag_fun==4) flag_fun=0; switch(flag_fun) { 49 东北石油大学本科生毕业设计(论文) case 0:didi(1); break; case 1:didi(2); break; case 2:didi(3); break; case 3:beep=1; delay(2000); beep=0; break; } } } } 以下源代码为init.h; void didi(uchar di_num) { uchar a; for(a=di_num;a>0;a--) { beep=1; delay(400); beep=0; delay(400); } } void init() { qyd=1; gyd=1; cdd=1; fzd=1; zcd=1; beep=0; czfz=1; czcf=0; 50 东北石油大学本科生毕业设计(论文) diqynum=0; digynum=0; flag_pv=0; flag_fun=0; flag_t1=0; flag_gz=0; flag_t1gz=0; pwm_num=2; pwm_a=30; fcd=13.7; cwfc=13.7; dwfc=14.1; gwfc=13.3; gzdy=0.45; cd_off; t1_num=0; t1_numgz=0; P1M0=0x87; P1M1=0x49; fz_off; delay(1); P1M0=0x8f; P1M1=0x41; didi(1); delay(6000); if(byte_read(0x2e06)==1) { cwfc=read_eep(0x2e00); fcd=cwfc; } if(byte_read(0x2c06)==1) { gzdy=byte_read(0x2c00)/100.0; } TMOD=0x12; IP=0x08; 51 东北石油大学本科生毕业设计(论文) TH0=(256-115); TL0=(256-115); TH1=(65536-50000)/256; TL1=(65536-50000)%256; ET0=1; ET1=1; TR1=1; TR0=1; EA=1; CMOD=0x04; CCAPM0=0x42; CL=0; CH=0; ADC_CONTR|=0xe0; P1M0=0x87; P1M1=0x49; fz_on; delayus(5); flag_fz=1; fzd=0; P1M0=0x8f; P1M1=0x41; didi(1); checkgz(); checkpv(); } void delay(uint x) { uint y,z; for(y=x;y>0;y--) for(z=110;z>0;z--); } void delayus(uchar x) { uchar y; for(y=x;y>0;y--); 52 东北石油大学本科生毕业设计(论文) } 以下源代码为ad.h: float GetAD(uchar channel) { unsigned char AD_finished=0; float tad_val; tad_val=0; ADC_CONTR|=(channel-1); ADC_DATA=0; ADC_LOW2=0; ADC_CONTR|=0X08; while(AD_finished==0){ AD_finished=(ADC_CONTR&0x10); } tad_val=(ADC_DATA*4+ADC_LOW2); ADC_CONTR&=0xe0; return(tad_val); } float Ad_Av(uchar chan) { float Val_Av; uchar num; Val_Av=0; for(num+120;num>0;num--) { Val_Av+=GetAD(chan); } Val_Av/=120.0; Val_Av= Val_Av*15.0/1024; return(Val_Av); } float Ad_fu(uchar chan) { float Val_Av; uchar num; Val_Av=0; 53 东北石油大学本科生毕业设计(论文) for(num=5;num>0;num--) { Val_Av+=GetAD(chan); } Val_Av/=5.0; Val_Av= Val_Av*5.0/1024; return(Val_Av); } 以下源代码为define.h: #define uint unsigned int #define uchar unsigned char #define qy fcd-2.9//10.8 #define qyhf fcd-0.5//13.2 #define fcdy fcd-0.128//13.2 #define gddy fcd+0.128//13.456 #define gyhf fcd+0.9//14.6 #define gygd fcd+1.1//14.8 #define pvbt 0.5 #define jcjg 1200 #define jcgzjg 100 #define fz_on czfz=0 #define fz_off czfz=1 #define cd_on czcf=1 #define cd_off czcf=0 sbit czfz=P1^3; sbit czcf=P3^7; sbit beep=P1^6; sbit rs=p1^7; sbit lcden=P1^4; sbit qyd=P2^2; sbit gyd=P2^3; sbit fzd=P2^4; sbit cdd=P2^5; sbit zcd=P1^5; sbit key1=P3^2; sbit key2=P3^3; 54 东北石油大学本科生毕业设计(论文) sbit key3=P3^4; void delay(uint); void delayus(uchar); void didi(uchar); void init(); uchar a,fz,diqynum,digynum,flag_t1gz,flag_gz; uchar flag_t1,flag_pv,flag_fz,pwm_num,t1_numgz; uchar pwm_a,flag_fun; uint t1_num; float xdata fcd,ad_val,v_temp,cwfc,dwfc,gwfc,gzdy; 以下源代码为stc_eeprom.h; /* extern void SectorErase(uint sector_addr); extern uchar byte_read(uint byte_addr); extern void byte_write(uint byte_addr,uchar original_data); extern uchar byte_write_verify(uint byte_addr,uchar original_data); extern uchar ArrayWrite(uint begin_addr,uint len,uchar code*array); extern void ArrayRead(uint begin_addr,uchar len); #define RdCommand 0x01 #define PrgCommand 0x02 #define EraseCommand 0x03 #define Error 1 #defineOk 0 #define WaitTime 0x01 #define Persector 512 void ISP_IAP_enable(void) { EA=0; ISP_CONTR=ISP_CONTR&0xx8; ISP_CONTR=ISP_CONTR|WaitTime; ISP_CONTR=ISP_CONTR|0x80; } void ISP_IAP_disable(void) { ISP_CONTR=ISP_CONTR&0x7f; ISP_TRIG=0X00; 55 东北石油大学本科生毕业设计(论文) EA=1; } void ISPgoon(void) { ISP_IAP_enable(); ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_(); } unsigned char byte_read(unsigned int byte_addr) { ISP_ADDRH=( unsigned char)(byte_addr>>8); ISP_ADDRL=( unsigned char)( byte_addr&0x00ff); ISP_CMD= ISP_CMD &0xf8; ISP_CMD= ISP_CMD|RdCommand; ISPgoon(); ISP_IAP_disable(); return(ISP_DATA); } void sectorerase(unsigned int sector_addr) { unsigned int iSector_Addr; iSector_Addr=(sector_addr&0xfe00); ISP_ADDRH=( unsigned char)( iSector_Addr>>8); ISP_ADDRL=0x00; ISP_CMD= ISP_CMD &0xf8; ISP_CMD= ISP_CMD|EraseCommand; ISPgoon(); ISP_IAP_disable(); } void byte_write(unsigned int byte_addr, unsigned char original_data) { ISP_ADDRH=( unsigned char)(byte_addr>>8); ISP_ADDRL=( unsigned char)( byte_addr&0x00ff); ISP_CMD= ISP_CMD &0xf8; ISP_CMD= ISP_CMD|PrgCommand; 56 东北石油大学本科生毕业设计(论文) ISP_DATA=original_data; ISPgoon(); ISP_IAP_disable(); } void write_eep(float eep_data,uint add) { uchar fcdh,fcd1; fcdh=(uint)(eep_data*100)/256; fcd1=(uint)(eep_data*100)%256; byte_write(add,fcdh); byte_write(add+1,fcdh1); } float read_eep(uint add) { float data_re; uchar dateh,datel; dateh=byte_read(add); date1=byte_read(add+1); date_re=dateh*256+datel)/100.0; return date_re; } 以下源代码为stc12c5410ad.h: /* After is STC additional SFR or change */ /* sfr AUXR = 0x8e; */ /* sfr IPH = 0xb7; */ /* Watchdog Timer Register */ sfr WDT_CONTR = 0xe1; /* ISP_IAP_EEPROM Register */ sfr ISP_DATA = 0xe2; sfr ISP_ADDRH = 0xe3; sfr ISP_ADDRL = 0xe4; sfr ISP_CMD = 0xe5; sfr ISP_TRIG = 0xe6; sfr ISP_CONTR = 0xe7; /* System Clock Divider */ sfr CLK_DIV = 0xc7; 57 东北石油大学本科生毕业设计(论文) /* I_O Port Mode Set Register */ sfr P0M0 = 0x93; sfr P0M1 = 0x94; sfr P1M0 = 0x91; sfr P1M1 = 0x92; sfr P2M0 = 0x95; sfr P2M1 = 0x96; sfr P3M0 = 0xb1; sfr P3M1 = 0xb2; /* SPI Register */ sfr SPSTAT = 0x84; sfr SPCTL = 0x85; sfr SPDAT = 0x86; /* ADC Register */ sfr ADC_CONTR = 0xc5; sfr ADC_DATA = 0xc6; sfr ADC_LOW2 = 0xbe; /* PCA SFR */ sfr CCON = 0xD8; sfr CMOD = 0xD9; sfr CCAPM0 = 0xDA; sfr CCAPM1 = 0xDB; sfr CCAPM2 = 0xDC; sfr CCAPM3 = 0xDD; sfr CCAPM4 = 0xDE; sfr CCAPM5 = 0xDF; sfr CL = 0xE9; sfr CCAP0L = 0xEA; sfr CCAP1L = 0xEB; sfr CCAP2L = 0xEC; sfr CCAP3L = 0xED; sfr CCAP4L = 0xEE; sfr CCAP5L = 0xEF; sfr CH = 0xF9; sfr CCAP0H = 0xFA; sfr CCAP1H = 0xFB; 58 东北石油大学本科生毕业设计(论文) sfr CCAP2H = 0xFC; sfr CCAP3H = 0xFD; sfr CCAP4H = 0xFE; sfr CCAP5H = 0xFF; sfr PCA_PWM0 = 0xF2; sfr PCA_PWM1 = 0xF3; sfr PCA_PWM2 = 0xF4; sfr PCA_PWM3 = 0xF5; sfr PCA_PWM4 = 0xF6; sfr PCA_PWM5 = 0xF7; /* CCON */ sbit CF = CCON^7; sbit CR = CCON^6; sbit CCF5 = CCON^5; sbit CCF4 = CCON^4; sbit CCF3 = CCON^3; sbit CCF2 = CCON^2; sbit CCF1 = CCON^1; sbit CCF0 = CCON^0; /* Above is STC additional SFR or change */ /*-------------------------------------------------------------------------- REG51F.H Header file for 8xC31/51, 80C51Fx, 80C51Rx+ Copyright (c) 1988-1999 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved. Modification according to DataSheet from April 1999 - SFR's AUXR and AUXR1 added for 80C51Rx+ derivatives --------------------------------------------------------------------------*/ /* BYTE Registers */ sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0; 59 东北石油大学本科生毕业设计(论文) sfr SP = 0x81; sfr DPL = 0x82; sfr DPH = 0x83; sfr PCON = 0x87; sfr TCON = 0x88; sfr TMOD = 0x89; sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH0 = 0x8C; sfr TH1 = 0x8D; sfr IE = 0xA8; sfr IP = 0xB8; sfr SCON = 0x98; sfr SBUF = 0x99; /* 80C51Fx/Rx Extensions sfr AUXR = 0x8E; /* sfr AUXR1 = 0xA2; */ sfr SADDR = 0xA9; sfr IPH = 0xB7; sfr SADEN = 0xB9; sfr T2CON = 0xC8; sfr T2MOD = 0xC9; sfr RCAP2L = 0xCA; sfr RCAP2H = 0xCB; sfr TL2 = 0xCC; sfr TH2 = 0xCD; /* BIT Registers */ /* PSW */ sbit CY = PSW^7; sbit AC = PSW^6; sbit F0 = PSW^5; sbit RS1 = PSW^4; sbit RS0 = PSW^3; sbit OV = PSW^2; sbit P = PSW^0; /* TCON */ */ 60 东北石油大学本科生毕业设计(论文) sbit TF1 = TCON^7; sbit TR1 = TCON^6; sbit TF0 = TCON^5; sbit TR0 = TCON^4; sbit IE1 = TCON^3; sbit IT1 = TCON^2; sbit IE0 = TCON^1; sbit IT0 = TCON^0; /* P3 */ sbit RD = P3^7; sbit WR = P3^6; sbit T1 = P3^5; sbit T0 = P3^4; sbit INT1 = P3^3; sbit INT0 = P3^2; sbit TXD = P3^1; sbit RXD = P3^0; /* SCON */ sbit SM0 = SCON^7; // alternatively \"FE\" sbit FE = SCON^7; sbit SM1 = SCON^6; sbit SM2 = SCON^5; sbit REN = SCON^4; sbit TB8 = SCON^3; sbit RB8 = SCON^2; sbit TI = SCON^1; sbit RI = SCON^0; sbit T2EX = P1^1; sbit T2 = P1^0; /* T2CON */ sbit TF2 = T2CON^7; sbit EXF2 = T2CON^6; sbit RCLK = T2CON^5; sbit TCLK = T2CON^4; sbit EXEN2 = T2CON^3; sbit TR2 = T2CON^2; 61 东北石油大学本科生毕业设计(论文) sbit C_T2 = T2CON^1; sbit CP_RL2= T2CON^0; /* PCA Pin */ sbit CEX3 = P2^4; sbit CEX2 = P2^0; sbit CEX1 = P3^5; sbit CEX0 = P3^7; sbit ECI = P3^4; /* IE */ sbit EA = IE^7; sbit EPCA_LVD = IE^6; sbit EADC_SPI = IE^5; sbit ES = IE^4; sbit ET1 = IE^3; sbit EX1 = IE^2; sbit ET0 = IE^1; sbit EX0 = IE^0; /* IP */ sbit PPCA_LVD = IP^6; sbit PADC_SPI = IP^5; sbit PS = IP^4; sbit PT1 = IP^3; sbit PX1 = IP^2; sbit PT0 = IP^1; sbit PX0 = IP^0; 62 因篇幅问题不能全部显示,请点此查看更多更全内容