基于51单片机的自动控制系统设计Word文档下载推荐.docx
《基于51单片机的自动控制系统设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于51单片机的自动控制系统设计Word文档下载推荐.docx(33页珍藏版)》请在冰豆网上搜索。
1021千瓦,其中仅有极微小的部分达到地球。
即便是这样,太阳每分钟辐射达到地球表面的能量还高达80×
1012千瓦,相当于6×
109吨的标准煤。
德国太阳能专家伯尔特说,只需开发非洲部分地区的太阳能发电,便能满足全世界的电力需求,况且太阳辐射可以源源不断的供给地球,取之不尽,用之不竭[3]。
(2)普遍性:
太阳能不像其它的能源那样具有分布的偏集性,它处处都可就地利用,有利于缓解能源供需矛盾,缓解运输压力,对解决偏僻边远地区及交通不便的农村,海岛的能源供应,更有其巨大的优越性。
(3)清洁无污染:
在众多环境问题中矿物燃料形成的污染十分严重,而利用太阳能则没有废弃物产生,这点在环境污染日趋严重的今天显得尤为可贵。
(4)经济性:
随着太阳能技术的发展,利用太阳能的成本已经有所下降。
世界银行的一项研究认为,许多国家发展太阳能发电站是具有经济性的。
电站的经济性主要由以下几部分组成:
建造费、燃料费、运行管理维修及环保投资等。
而用太阳能发电,既不污染环境,又取之不尽。
因此从长期来看,其发电成本是相当低的。
在当今能源短缺的情况下,各国都加快了光伏产业的发展。
美国“太阳能先导计划”旨在降低太阳能光伏发电的成本,使其在2015年达到商业化竞争;
日本提出在2020年达到28GW的光伏发电总量的计划;
欧洲光伏协会提出了“SETFOR2020”规划,让光伏发电在2020年达到商业化竞争。
在发展低碳经济的大背景下,各国政府对光伏发电的认可度逐渐提高。
我国幅员辽阔,太阳能资源十分丰富。
因此,研究和重视太阳能的开发利用,对于解决我国能源问题有着重大的意义。
随着国内光伏产业规模逐步扩大、技术逐步提升,光伏发电成本会逐步下降。
中国已将新能源产业上升为国家战略产业,未来10年拟加大对包括太阳能在内的新能源产业投资,以减少经济对石化能源依赖和降低碳排放,未来五到十年光伏发电有望规模化发展。
太阳能发电是利用光电效应将光能转化为电能的技术。
太阳能聚光光伏发电技术是目前研究的热点,它利用光学聚光组件提高入射到太阳能电池表面的光能量密度,可以减少系统中昂贵太阳能电池的使用,其整体转换效率为31%~40.7%,是降低发电成本,提高发电效率的有效途径。
由于采用了光学聚光组件,所以聚光装置必须以较高的精度对太阳轨迹进行跟踪,这种追踪系统对一般的光伏系统的发电效率也有很大提升[4-7]。
目前,追日系统所用的追踪原理可以分为两种方式:
一、光电追踪;
二、太阳角度追踪。
(1)光电追踪是一种实时闭环追踪方式,根据太阳光的入射角度的改变来调整追踪的方向。
光电追踪系统主要是用CMOS图像传感器[8]或光敏器件接收太阳光,通过一定的电路将接收到太阳光转变成电信号,经过处理放大后传输给单片机,由单片机处理、判断应该如何改变电池板接收角度,通过指令控制电机运行,使电池板转动到合适的角度。
虽然光电追踪灵敏度很高,结构设计也比较简单,但易受到天气变化的影响。
如果在稍长时间段里出现乌云遮日或其它光源的干扰,会导致追踪装置无法对准太阳,甚至会引起追日装置的误动。
(2)太阳角度计算追踪是一种开环追踪方式。
首先根据当地的经纬度和时间来计算出太阳入射的角度,由此修正太阳能电池板的角度,具体操作即控制二轴电机转动的角度。
与光电检测追踪相比,太阳角度追踪方法不受天气和其它光源的干扰。
但是由于计算太阳角度所采用的数值不是十分精确,时钟存在积累误差和跟踪装置的机械结构误差,以及其它不利因素叠加产生的误差也是不可忽视的[9]。
如果能够实现太阳角度实时追踪就可以提高系统的发电效率,更加实用,双轴追踪就可以实现这种目的。
相关研究表明:
采用双轴追踪装置收集的太阳能能量比采用固定接收装置的高将近40%[13]。
特别是聚光型太阳能发电更需要完全依赖双轴跟踪系统。
未来的太阳跟踪装置将会采用全自动跟踪,结构设计方面将朝着高强度,大范围跟踪的方向发展。
系统控制方面将综合采用光、机、电一体化系统,跟踪精度更高、角度范围更大,且有自动返回功能[14],使得太阳能利用率更大,降低发电的成本,提高系统的实用性。
1.3研究课题的主要内容
本设计的追日系统将采用周期性太阳角度计算追踪的方式,该方式下系统运行更加稳定,且不受天气情况影响。
单片机通过接读取DS1302的时间信息,计算出太阳实时的的高度角和方位角,通过步进电机调整电池板方位,使太阳能电池板始终垂直于太阳光。
系统使用Protues7.8软件进行硬件模拟仿真。
该系统是以51单片机为控制核心的自动控制系统,整个系统由硬件电路和软件程序组成,这也是本文的主要研究内容。
1.3.1硬件电路部分设计
此部分设计分三步:
1、芯片以及各元件选用;
2、电路图整体设计;
3、电路的调试仿真电路设计主要包括下面几个功能模块:
(1)光电检测电路:
通过光敏二极管电路接收装置来检测光照强度,将光信号转换为电信号,以供单片机处理判断光照条件,决定是否开机追踪,光强阈值可通过光敏二极管参数和透光片的透光度设定。
(2)时钟模块:
其功能是为计算太阳角度提供时间数据,经度、纬度等一些固定参数则事先在程序中设置,作为常量使用,避免重复计算,节省系统资源。
(3)驱动控制电路:
电路以单片机为核心,对太阳能发电装置的运动轨迹进行控制,具体需要控制两轴电动机的正反转运动。
单片机计算出双轴各自的调整量后给步进电机驱动发出控制信号实现追日运动。
(4)电机驱动电路:
此电路的功能是接受单片机发出的控制信号,然后驱动步进电机转动,本设计选用的步进电机功率较小,可用单片机的引脚直接驱动。
(5)辅助电路:
复位电路、振荡电路、按键电路及初始位置定位设计,还有额外添加的显示模块,方便调试和维护。
1.3.2软件程序编写
在硬件电路设计的基础上,利用单片机C51语言编写系统软件,进行软、硬件综合调试,直到系统稳定运行,完成设计的既定目标。
本文分为五个章节:
第一章主要阐述了课题的研究背景、目的及意义,国内外太阳能的利用现状及技术的概况。
第二章对追日系统进行了总体设计,确定了系统的追踪方式。
阐述了系统中使用的计算太阳高度角和方位角的数学算法,以及一些细微之处的重要设计。
第三章阐述了整个系统硬件部分的设计,重点介绍各部分电路的原理以及要实现的功能。
第四章详细介绍了系统软件部分,主要是角度计算模块,显示模块,电机驱动模块以及整体的一些逻辑思路。
第五章总结了本设计的测试结果,进行了一定的评估,提出了不足和发展空间,并对未来做出了展望。
2追日系统的总体设计
2.1系统研发流程设计
系统以单片机为控制核心,主要设计任务是硬件电路设计、软件编程、系统仿真调试。
在总体设计中应明确功能要求,确定系统各项功能技术指标,然后由此制定相应的实施方案,元器件的选用,控制流程和数学模型设计。
具体是:
硬件设计中,设计并绘制电路原理图,同时考虑程序的要求,调整和完善电路图;
再编写控制程序。
最后将软件与硬件电路进行仿真调试,主要是检测各模块功能,系统运行效果是否达到要求,进一步调整和完善软、硬件,直至达到系统设计的预期目标。
本系统的开发流程如图2.1所示:
修改系统
开始
分析课题,确定方案
软件流程设计
程序编写
子程序调试
硬件电路设计
电机驱动电路
元器件选取
电路原理图绘制
系统整体仿真调试
是否符合要求
N
结束
Y
图2.1系统开发流程图
2.3追踪方式及系统流程
如今已有种类众多的太阳能接收装置,但由于成本和技术因素,一般都采用固定位置接收太阳能,整体利用效率较低,为了更加充分而高效地利用太阳能,追日系统成为当今业界的主要研究方向。
目前,采用单片机系统的追踪方式比较实用[15-17],单片机具有体积小、成本低廉、使用灵活、反应灵敏等特点基于单片机的太阳能追踪方式常用的有两种,一是光电检测追踪,即通过对入射太阳光的实时检测来进行追踪;
二是太阳角度追踪(也称视日运动轨迹追踪),通过预先设定的函数,根据系统时钟计算出太阳的方位角和高度角,步进电机驱动,实现追日。
光电检测追踪灵敏度比较高,结构比较简单,但易受天气变化的影响;
而太阳角度追踪稳定度比较高,不受天气、其它光源的干扰,但却存在角度计算误差,系统跟踪装置的机械部分的制造精度也会对追踪产生较大影响,可能累积较大误差。
光电检测追踪属于闭环控制系统,而太阳角度追踪是一种开环控制系统,综合两种追踪方式的优劣,本设计将采纳太阳角度追踪,以追求更加稳定、可靠的系统,进而提高太阳能利用的效率。
首先设计系统工作流程:
上电开机后,第一步首先检测光照条件是否符合太阳能发电的条件,若不符合,系统将继续休眠;
若符合,系统将复位,开始追日。
首先计算当前太阳角度,将太阳能电池板调整到位,然后以10分钟为周期进行角度计算并调整太阳能电池板的偏转角和俯仰角。
与此同时,光照检测模块以中断方式进行后台监控,一旦天色暗淡,低于光强设定值,系统便会进入休眠状态。
休眠前电池板会被调整到初始位置,这需要两个限位开关的参与,其他电路也都将被关闭,直到单片机被激活。
系统的整体流程图如图2.2所示:
初始化
读取时间
显示模块
太阳角度计算
步进电机驱动
系统休眠
光照条件?
N
图2.2追日系统整体流程图
2.3系统的总体设计方案
该系统的核心功能就是太阳角度计算与控制,下面具体介绍太阳角度追踪模式的设计。
太阳角度追踪模式,就是由单片机从时钟芯片读取实时时间,再通过预设函数计算出太阳实时角度,用以控制电机调整电池板使其追日。
太阳角度追踪模式的关键是太阳高度角和方位角的计算,下面介绍太阳高度角和太阳方位角的概念以及计算方法。
先介绍太阳高度角和太阳方位角的定义,太阳高度角:
太阳高度角指从太阳中心直射到当地的光线与当地水平面的夹角,其值在0°
到90°
之间变化,日出日落时为0°
,太阳在正天顶时为90°
。
太阳方位角:
太阳方位角即太阳所在的方位,指太阳光线在地平面上的投影与当地子午线的夹角,可近似地看作是竖立在地面上的直线在阳光下的阴影与正南方的夹角。
方位角以正南方向为零,由南向东为负,由南向西为正,如太阳在正东方,方位角为-90°
,在正西方时方位角为90°
要计算太阳高度角和方位角要用到一些重要的参数,下面介绍一下:
左大康利用Flourier分析给出了赤纬与日期的经验关系[18-19],设一年365天对应区间为[0,π],取日角:
θ0=2π(dn-1)/365(2-1)
dn取为年的日期序列,然后n就可以把1月1号取做1,12月31号取做365,又引用下面的公式,用弧度来表示赤纬δ:
δ=0.00689-0.39951cosθ0+0.07208sinθ0-0.00680cos2θ0
+0.00090sin2θ0-0.00269cos3θ0+0.00151sin3θ0(2-2)
太阳时角ω可用下述方法进行计算:
ω=真太阳时(小时)×
15-180(2-3)
式中ω单位为度,15表示每小时相当于15°
时角。
时差:
太阳在黄道上的运动速度是不均匀的,时快时慢,因此,真太阳日的长短也就各不相同。
但人们需要一种均匀不变的时间单位,这就需要寻找一个假想的太阳,它以均匀的速度在运行,这个假想的太阳就称为平太阳,其周日的持续时间称平太阳日,由此而来的小时称为平太阳时[20]。
真太阳时=地方平时+时差=北京时+经度订正+时差=北京时+(当地经度-120)×
4÷
60+时差(2-4)
时差(弧度)=0.000076+0.001869cosθ0-0.032076sinθ0-0.014616cos2θ0
-0.04085sin2θ0(2-5)
时差(小时)=时差(弧度)×
12÷
π(2-6)
设太阳高度角和方位角分别为θh和θp,地理纬度为ψ,则根据天文学公式:
sinθh=sinψsinδ+cosψcosδcosω(2-7)
sinθp=cosδsinω/cosθh(2-8)
cosθp=(sinθhsinψ-sinδ)/cosθhcosψ(2-9)
通过上面太阳高度角及太阳方位角概念和有关公式的介绍,我们了解到,只要经纬度、时间确定了,那么就能计算出相应时刻太阳高度角和方位角,而这个值是唯一确定的。
介于上述函数运算较为复杂,决定选择C51语言来进行编程,C51语言的函数功能比较强大,很方便编写计算程序。
经度和纬度是将以常量的型式预设在程序中,一些只与经纬度相关的参数也将被预设进程序,以节省系统资源,提高运行效率。
3追踪系统的硬件设计
3.1单片机的选用
本系统中单片机的主要功能是利用实时时间计算出太阳角度,进而通过步进电机调整电池板,实现对太阳的追踪,它还要监控各模块的信号和运行情况,协调整个系统的正常运行,尤其是各路中断以及外部开关信号的检测及反应,还要做到自动根据光照情况休眠或唤醒,以及电池板的复位,它是整个控制系统的核心。
本系统用的是AT89C51单片机。
AT89C51单片机因为功能强大使用简便而被广泛的使用,它也充分满足本系统的要求,它有如下特点[21]:
(1)4KB可改写程序Flash存储器
(2)全静态工作:
0Hz-24MHz
(3)3级程序存储器保密
(4)128×
8字节内部RAM
(5)32条可编程I/O线
(6)2个16位定时器/计数器
(7)5个中断源
(8)可编程串行通道
AT89C51的设计选用的是静态逻辑,也就是说它工作的频率可以到0,可以实现空闲模式和掉电模式。
在空闲模式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作;
在掉电模式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。
3.2时钟电路的设计
由于系统中要进行时间的实时读取,若用单片机程序计时会增加系统负担,且误差较大,这就需要引入外部时钟芯片来提供实时时间,可以减轻系统负担,提高效率好精度。
本设计选择DALLAS公司生产的串行实时时钟芯片DS1302,它没有采取光电隔离,但由于读写靠时序控制,且具有写保护位,抗干扰效果较好,而且体积小,需要接线
少,外围只有一个32.768Hz晶振,使用灵活方便。
DS1302与单片机的通信仅需三根线即SCLK(串行时钟线)、I/O(数据线)、RST(复位线)。
数据可以按每次一个字节或多达31个字节的形式传送到时钟RAM或从中送出。
RST有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;
其次,RST提供了单字节或多字节数据传送的手段[22-23]。
DS1302主要引脚有:
X1,X2连接32.768kHz晶振。
GND:
电源地。
RST:
复位,用于对芯片操作。
I/O:
数据输入、输出引脚。
SCLK:
串行时钟输入。
VCC1,VCC2:
主电源与后备电源[24]。
其接线图如图3.1所示,时钟芯片与单片机以串行三总线的方式连接,数据的读写由单片机控制,VCC1为主电源,由5V蓄电池供电,蓄电池则从电池板上充电;
VCC2为备用电源,此处的1000nF电容所存储的电量可是时钟芯片运行几个小时,实际应用中可用纽扣电池代替,以备不时之需;
时钟芯片外接了一个32.768Hz晶振,以保证芯片正常运行。
图3.1时钟芯片连接图
3.3显示模块电路设计
在单片机系统中数码管是应用最广泛的一种显示方式,其与单片机的接口方法也很简单。
由于此电路中需要显示时,分,秒,需要驱动6个数码管。
为了节省系统资源,提高效率和可靠性,本系统的显示部分采用了MAX7219芯片来驱动。
一片MAX7219芯片最多可驱动8个LED显示器,并可以串联扩展。
MAX7219的接线和数据读写都与DS1302极为相似,也采用串行三总线的方式与单片机连接,按时序读写.MAX7219能够接收的数据和命令为16位数据包,前8位用作选择MAX7219的内部寄存器地址,后8位为指令或待显示数据的内容,高位在前,低位在后。
电路原理图如图3.2所示,其中ISET作用是设置数码管的段电流,即控制亮度。
正如表所述,A-G是数码管的段选线,控制显示的字符;
DIG0-DIG5是位选线,控制各位是否显示字符,MAX7219内部采用的是动态扫描的显示方式。
图3.2MAX7219接线图
3.4驱动电路的设计
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确的定位。
步进电机的精度一般为步进角的3-5%,且不累积。
由于没有电刷,可靠性较高,因此电机的寿命仅仅取决于轴承的寿命。
实际应用中将采用蜗轮蜗杆传动。
蜗轮蜗杆传动可以得到很大的传动比,相当于多齿啮合传动,故传动平稳、噪声很小。
机构具有自锁性,可实现反向自锁,即只能由蜗杆带动蜗轮,而不能由蜗轮带动蜗杆,这也为系统的准确定位增加了可靠性。
仿真时驱动部分采用5V的两相步进电机,配合上拉电阻,直接由单片机的引脚控制驱动。
虽然误差较大,但足以说明问题。
步进电机驱动电路如图3.3所示,由于采用的步进电机比较简单,功率较小,故直接由单片机控制,配合上拉电阻理论上能使步进电机正常运转。
当P0口输出相应的脉冲编码,在上拉电阻的作用下,电机便会转动相应的角度。
图3.3步进电机驱动电路
3.5外围辅助电路的设计
单片机的外围辅助电路主要是复位电路、振荡电路、按键电路以及光照检测电路。
单片机执行程序之前,要先进行复位,使CPU和其他功能部件处于初始状态,但是单片机自己不能复位,必须通过外部复位电路才行,此处复位电路给引脚RST信号为高电平时复位有效:
外部电路产生复位信号,通过RST引脚连接到片内的复位电路,复位电路每1个机器周期对触发器输出采样1次,当RST持续保持至少24个时钟周期的高电平时,单片机便可复位。
单片机的外部复位电路就是为内部复位电路提供至少24个时钟周期的高电平设计的。
通常有两种形式:
上电自动复位和按键手动复位。
本系统采用的是二者相结合的复位电路,并且将光照检测器件也整合进去,实现自动复位唤醒。
振荡电路的设计如下:
在XTAL1和XTAL2引脚上接入石英晶体和电容构成的振荡电路,C1,C2的作用是稳定振荡频率以及快速起振,选用值为10pF,这种振荡方式产生的时钟信号是比较稳定的,由于系统有一定的实时性要求,需要单片机有较高的运行速度,故晶振频率选为24MHz,这也是AT89C51单片机正常工作的最高频率。
图3.4振荡电路
按键电路的设计如下:
为了方便调试使用,系统中设置了六个按键提供一些辅助功能。
其中四个按键负责两轴电机的正反转测试及位置调整,另外两个则是显示器的开关。
这些按键均直接连接在单片机引脚上,采取外部中断的方式发挥作用,具体的用法会在程序部分详细介绍。
另外,P0口的外接按键是必须上拉的,正如图3.5中所示。
图3.5按键电路接线图
光照检测电路的设计:
由于系统需要跟随昼夜变化休眠和唤醒,就需要外部通过相应的信号,这就要求系统要有一个光照检测电路。
常用的感光元件主要是硅光电池、光敏二极管和光敏三极管。
其中光敏二极管在很宽的入射照度范围内有线性电流输出,响应速度快,对广域范围波长的光都有很高灵敏度,而且小型、轻量、耐振动、耐冲击,故选择光敏二极管作为传感器。
光敏二极管类似一个光敏开关,光照条件达到后,它便导通,阻值几乎为0,而阻断时它的阻值约为10K欧姆,相当于断路。
一个上拉电阻与之配合即可为单片机通过可靠的信号。
电路图如图3.6所示,实际上当光照不足时,二极管会断开,检测电路给出的是高电平信号,这与激活中断的低电平信号相反,故检测信号转接在P3.5上(定时器T1在程序中没有涉及),再有软件查询取反提供正确的中断信号。
图3.6光照检测电路
4追踪系统的软件设计
4.1系统主程序设计
此系统的主程序主要是定时器和外部中断的监控程序,实时时间的显示也在其中。
整个程序包括太阳角度追踪模块、时钟模块、显示模块、驱动模块以及辅助模块。
软件设计思想:
开机上电复位,系统进行初始化,开各路中断,之后,光照检测电路以中断的形式判断光照条件,若条件符合,则系统进入太阳角度追踪模式;
若不符合,则系统休眠。
由于光照检测是以外部中断形式进行的,所以它是实时响应的。
系统运行流程如图4.1所示:
步进