版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计毕业设计(论文)基于CMOS图像传感器的太阳跟踪控制器的设计基于CMOS图像传感器的太阳跟踪控制器的设计摘要为了解决能源危机,实现可持续发展,建设绿色社会,世界各国都在积极开发利用太阳能资源。太阳能的利用已经渗透到社会的方方面面,但是太阳能的低利用效率一直影响和阻碍着太阳能技术的普及和发展。为了提高太阳能的利用效率,研究太阳能自动跟踪控制器具有重大而深远的意义。在分析和比较了国外常用的几种跟踪方法后,设计了一种基于COMS图像传感器的太阳自动跟踪控制器。上位机实现VC++和Matlab的联合编程,控制图像传感器实时获取光斑图像。通过Matlab计算,得到光斑质心坐标与图像中心坐标的偏差,转化为水平和俯仰步进电机需要调整的步数,然后实时调整平面镜跟踪装置,使光斑始终处于图像中心。实验结果表明,该装置实现了自动跟踪太阳的目的,跟踪精度高。完成了跟踪控制器的硬件设计和软件设计。硬件设计主要包括跟踪器控制电路、步进电机驱动电路、图像采集电路、极限信号采集电路和串行通信电路。软件设计主要包括:使用VisualC++编写人机交互控制平台,设计MATLAB算法处理图像并获取跟踪偏差,实现基于MCC的VC++和MATLAB联合编程。通过对实测数据的分析,表明在该系统中,高度角跟踪的绝对误差和方位角跟踪的绝对误差都在要求的范围内。采用图像传感器跟踪太阳后,精度高,可靠性提高。实验结果表明,该跟踪控制器在可靠性、跟踪精度和抗干扰性方面得到了有效提高。最后,对工作进行了总结,并给出了进一步研究的方向。关键词:太阳自动跟踪;CMOS图像传感器;步进电机;VC++目录TOC\o"1-3"\h\u摘要IAbstract II1绪论11.1课题研究的背景与意义11.2国外太阳跟踪的研究现状与发展现状21.3本课题的主要容与章节安排32太阳跟踪控制器整体方案设计与图像采集52.1系统总体设计52.2CMOS图像采集52.2.1图像传感器选型52.2.2图像采集方案选择52.2.3图像预处理62.2.4光斑质心定位82.2.5获取步进电机校正步数102.2.6图像处理结果分析113太阳跟踪控制器的硬件设计143.1硬件总体设计方案143.2控制器电路143.3步进电机驱动器153.4限位装置163.5串口通讯电路174太阳跟踪控制器软件部分设计184.1主函数模块184.2参数设置模块194.3太阳角度计算与数据处理模块204.3.1太阳角度计算模块204.3.2数据处理模块214.4图像处理模块224.5PC机与单片机通信模块234.5.1利用WindowsAPI函数实现串口操作234.5.2PC机与单片机通信协议234.6控制平台手动调整模块244.7控制平台太阳图像动态显示模块264.8VC与MATLAB联合编程模块294.9单片机通信与控制部分29结论31参考文献33致351导言1.1研究的背景和意义能源是人类生存和发展的物质基础。几十年来,能源问题一直是全世界关注的重大问题之一。目前,世界上消耗的主要能源是化石能源,如煤、石油、天然气等。,是吸收太阳能的植物经过亿万年的进化积累而形成的。这些是不可再生资源。地球的资源是有限的,但它们正以越来越快的速度被消耗。能源的短缺、化石燃料的减少和污染的增加是相互联系的,威胁着人类的正常生活和可持续发展。常规能源逐渐枯竭,形势危机不容小觑,寻找和开发新能源刻不容缓。在众多可再生清洁能源中,太阳能是一种理想的替代能源。太阳每秒发射的能量约为16×1023KW,一年到达地球表面的太阳能总量约相当于1892×101.3万亿吨标准煤,是目前世界主要已探明能源储量的1万倍。与常规能源的有限性相比,太阳能的储量是无限的,取之不尽,用之不竭。这就决定了太阳能资源的开发利用将是人类解决常规能源短缺和枯竭的有效途径之一。其次,与其他能源不同,太阳能可以在各地就地利用,有利于缓解能源供需矛盾,缓解运输压力,在解决交通不便的边远地区和农村、海岛的能源供应方面具有明显优势。而且和风能、潮汐能等清洁能源一样,太阳能的开发利用几乎不产生任何污染。这在环境污染日益严重的今天尤为重要。随着太阳能利用技术的发展,太阳能利用成本大大降低。利用太阳能发电不会污染环境,而且取之不尽,用之不竭,无处不在。所以从长远来看,它的发电成本要小得多,专家的预测和研究一致认为21世纪人类最清洁最便宜的能源是太阳能。因此,太阳能是替代能源中最有吸引力、研究最多、应用最广的清洁能源。然而,太阳能不可避免地存在一些缺点,导致其无法快速大面积推广应用。1.实力弱。虽然到达地球大气层上边界和地球表面的太阳能总量巨大,但其强度相当微弱。2.不稳定。同一个地方,同一天,日出日落时的太阳辐射强度远远小于中午前后。在同一个地方的不同季节,冬季的太阳辐射强度明显远小于夏季。一个原因是,由于太阳的高度角不同,同一水平面上的入射角自然不同。当太阳的高度角越大,或者太阳辐射的入射角越小,即越接近正射时,在地面上同一高度接收的太阳能越多。3.断断续续的。太阳到达地面的直接辐射能随着昼夜交替而变化。这使得大多数太阳能设备无法在夜间工作。为了克服夜间太阳直接辐射不足的问题,需要开发和装备储能设备,以便在晴天收集和储存太阳能,供夜间或雨天使用。目前,太阳能利用的基本方式主要包括:1.光热转换。它通过吸收太阳辐射的光能直接转化为热能。这种方式虽然最古老,但发展最成熟,普及面最广,产业化程度最高。光热转换提供的热能一般温度较低,小于或等于100℃。高一点的只有几百摄氏度。显然,它的能量品位低,适合直接利用。2.光电转换。根据“光电转换”原理,将太阳辐射出的光能转换成电能再利用,也就是通常所说的“光电转换”。这是近几十年来发明和发展的。电能因其品位高,应用范围最广,工业化程度最高,发展最快,前景非常乐观。3.太重要了。目前,美、日、英、德等国共同聚焦安全进口应用技术,已成功将进口产品推向民用消费市场。这项技术可以用来将太阳光直射到室内,适用于各种需要收集自然光的场合。4.光化学转化。通过光化学作用转化为电能或氢的产生。这也是利用太阳能的一种方式。三十年前,很多人对此做了大量的研究。光化学转换技术仍处于研发阶段。5.光生物转化。通过光合作用收集和储存太阳能。最近这方面的研究增多,人们期待有所突破。中国位于北半球,幅员辽阔,大部分位于北纬45°以南。中国有丰富的太阳辐射资源。全年太阳总辐射超过16.3×102kW·h/m2·a,相当于约12×104亿吨标准煤。我国大部分地区年平均日辐射量在每平方米4千瓦时以上,发展潜力巨大。我国太阳辐射的主要特征是西高东低,北高南低。这样,如何最大限度的提高太阳能的利用率,在当今社会显得尤为重要。太阳能作为一种清洁无污染的能源,具有非常广阔的发展前景,太阳能发电已经成为未来世界解决能源危机最独特、最重要的方式。就目前的太阳能设备而言,如何最大限度地提高太阳能的利用效率仍然是国外学者的研究热点。解决这个问题要从两个方面入手,一是提高太阳能设备的能量转换率,二是提高设备的能量接收效率。前者属于能量转换领域,需要研究,后者可以利用现有技术解决。建筑系的KPCheng教授和SCMHui教授研究了太阳光的角度与太阳能接收率之间的关系。理论分析表明,跟踪和不跟踪太阳线运动时,太阳能设备的能量接收率相差37.7%。可见,对太阳的精确跟踪可以大大提高太阳能设备的能量利用率。每年,大约有350,000,000万亿瓦时的太阳能到达地球表面。利用太阳直接辐射,其效率比燃烧化石燃料高1015倍左右,太阳能不会危及支持生命的地球的存在。因此,从解决能源危机、节能环保的角度来看,太阳能具有无可比拟的优势。但从实际工程实践来看,需要通过各种手段和途径充分发挥计算机的重要作用,将自动跟踪系统与太阳能发电设备相结合,从而大大增强其发电能力,提高设备的经济效益。为了提高太阳能的利用效率,本课题中的太阳能跟踪控制器的研究对于我们面临的日益严峻的能源问题和推广太阳能在大圩的应用具有重大而深远的意义。1.2国外太阳能跟踪的研究现状和发展现状20世纪80年代末,美国桑迪亚国家光伏实验室的亚历克斯·迈什(AlexMaish)开始研发太阳轨道。在随后的二十年里,高效太阳能跟踪控制器的研发也成为国外许多科研机构关注的焦点。国外一直非常重视太阳跟踪的研究。1994年,捷克科学院物理研究所通过日照温度的变化,实现了基于形状记忆合金调节器的单轴被动太阳跟踪。1997年,Blackace开发了单轴跟踪器,根据太阳在赤道坐标系中运行的原理,自动跟踪东西方向。然而,通过手动调节南北方向,接收器的热接收率增加了15%。1998年,美国加州研究成功ATM双轴太阳跟踪器,进一步提高了热接收率。乔尔。H.Goodman开发了一种主动式太阳方位跟踪装置,使太阳能接收器能够通过一个大直径转盘从东向西跟踪太阳。2002年2月,美国亚利桑那大学推出了一种新型的太阳跟踪装置。该装置采用控制电机完成跟踪,采用铝框架结构,结构紧凑,重量轻,大大拓宽了跟踪器的应用领域。2006年2月,AccionaSolar公司建立了西班牙最大的太阳能电站设施,并投入使用。整个设施由400个太阳能跟踪托盘和14,400块电池板组成。这些太阳能跟踪托盘旨在根据一年中每天太阳的不同位置进行跟踪。与通常的固定平面系统相比,这种托盘设计可以增加35%的能量输出。2007年,日本大成建设公司开发了一种新产品,名为“T-Soleil”。T-Soleil系统安装在高层建筑和屋顶,由一面自动跟踪太阳的平面镜和多个反射镜组成。自动跟踪太阳平面镜放置在屋顶天井上方,由电机驱动,可随机芯同步旋转。多面镜子的反射使高楼的各个部分都像室外一样明亮。就目前国内对太阳能跟踪控制器的研究而言,受太阳能应用系统成本的影响,一般采用半自动单轴跟踪方式。随着科学技术的不断发展和光电转换效率的提高,太阳能跟踪装置的研究正朝着全自动太阳能跟踪的方向发展。全自动太阳跟踪装置基于水平坐标和双轴跟踪原理,采用光、机、电、图像处理等技术,通过检测太阳的强度或形状,实现对太阳的全自动跟踪。它能同步无偏差地跟踪太阳,大大提高了太阳能的接收效率。近年来,中央气象局、交通大学、大学、航空航天大学等。分别研究了太阳跟踪算法,都取得了一定的成果。但总的来说,在我国,太阳跟踪的技术还不是很成熟,从事太阳跟踪研究的人还不多,而且大多处于理论研究阶段,实际产品还不多见。1.3本课题的主要内容和章节安排本文完成了基于CMOS图像传感器的太阳跟踪控制器的设计。利用CMOS图像传感器采集太阳图像,经数字图像处理后得到跟踪偏差。改进后的太阳跟踪控制器具有较高的跟踪精度和可靠性。基于本课题的研究内容和主要工作,本文的结构如下:第一章主要介绍了课题的背景、目的和意义,以便与国外太阳跟踪的研究现状和发展进行比较。第二章介绍了基于CMOS图像传感器的太阳跟踪控制器的总体方案设计、CMOS图像采集方案和图像分析计算。第三章介绍了太阳跟踪控制器的硬件设计,主要包括单片机驱动接口电路、步进电机驱动电路、限位器和通信电路。第四章介绍了太阳跟踪控制器的软件设计,主要包括用VisualC++6.0编写人机交互控制平台,跟踪控制器的主程序设计,太阳高度和方位角的软件算法,跟踪控制器的标定原理,基于MCC的VC和MATLAB联合编程,单片机的软件设计。第五章总结了课题的主要研究成果,并对下一步工作进行了展望。太阳跟踪控制器的总体方案设计及图像采集2.1总体系统设计该系统主要由平面镜跟踪装置、控制与驱动电路、方位限制电路、CMOS图像传感器(带巴德膜滤波器)等部分组成。系统的总体设计框图如图2-1所示。图2-1系统总体框图太阳跟踪控制器的工作过程是:上位机根据当地经纬度和当前时间调用太阳位置函数,得到太阳的高度和方位角,转换成俯仰和水平电机的运行步数。数据处理后,通过RS485总线与单片机通信,驱动水平和俯仰步进电机跟踪太阳。视运动轨迹跟踪完成后,VC调用MATLAB函数控制图像传感器对太阳进行拍照,经过图像处理后输出。限位装置可以保证电机运行时停在正确的位置,防止电机超位运行。2.2CMOS图像采集图像传感器选择图像传感器产品主要分为CCD、CMOS和CIS传感器。CMOS技术是VLSI的主流技术,集成度高,可以根据需要将各种功能集成在一块芯片上。CMOS图像传感器包括图像阵列逻辑寄存器、存储器、定时脉冲发生器和转换器。与传统的CCD图像传感器相比,将整个图像系统集成在一个芯片上,不仅降低了功耗,还具有重量轻、占用空间小、整体价格低等优点。目前CMOS不仅价格便宜,而且已经实现了数字输出和软件的可编程控制,大大降低了系统设计的难度,提高了系统设计的灵活性、抗干扰性和稳定性。CMOS图像传感器满足系统设计要求。本课题采用罗技公司的QuickCam系列网络摄像机,具有低功耗、低成本、单电源驱动、易于实现片上系统集成的特点。其开窗特性可以根据实际需要设置有效图像数据窗口的大小,从而避免无效数据的收集,减少存储空间。2.2.2图像采集方案选择因为太强了,所以在图像采集的时候需要给相机加一个巴德胶片滤镜。实验表明,加入两层滤镜后,得到的图像更好。传统的方法是使用中性灰色滤镜。但为了节约成本,本课题采用了新的滤波方式,选用了来自德国的发明专利——巴德太阳观测保护膜AstroSolarTM。巴德膜是一种镀有金属的树脂膜,可用于目视检查和拍照。它非常薄,并且具有出色的光学质量。目前有两种密度的巴德胶片可供选择,分别是5.0(视觉)和3.8(摄影)。对太阳的天文观测,一般很难透光,只有在强光条件下才能看到光。图2-2和图2-3分别是单层滤镜和双层滤镜的相机拍摄的太阳位置的图片。(a)原始图像(b)二值图像图2-2照相机和单层硬胶片拍摄的太阳照片(a)原始图像(b)二值图像图2-3用照相机和双层硬胶片拍摄的太阳照片2.2.3图像预处理图像预处理主要包括灰度图像转换、中值滤波和图像分割。彩色图像到灰度图像。通常相机得到的图像是彩色图像,由R、G、B3单色组成,各种单色被人为分为0-255的256级。根据R、G、B的不同组合,获得的彩色图像可以表示256×256×256=16,777,216种颜色。通常对数字图像的处理是先将彩色图像转换成灰度图像,然后再对灰度图像进行处理。将彩色图像转换为灰度图像的公式如下:Y=0.299R+0.587G+0.114B(2-1)2.中值滤波在图像拍摄或传输的过程中,总会加入一些噪声,影响图像质量。中值滤波可以有效地消除这些噪声,平滑图像。中值滤波是一种去除噪声的非线性处理方法,由Turky于1971年提出。基本原理是用数字图像或数字序列中某个点的邻域中每个点的中值来代替该点的值。中的值的定义如下:一组数字按以下顺序排列n的个数:Y=Med=(2-2)称为y序列的中值。具有一定长度或形状的点称为窗口。在一维情况下,中值滤波器是奇数个像素的滑动窗口,窗口中间像素的值由窗口中每个像素的中值代替。设输入序列为,I为自然数的集合或子集,窗口长度为n,则滤波器的输出为:(2-3)其中:我在二维情况下,可以使用某种形式的二维窗口。设,表示数字图像各点的灰度值。具有滤波窗口A的二维中值滤波可以定义为:=Med=Med(2-4)3.图像分割处理图像分割是将图像划分为具有不同特征的区域并提取感兴趣的对象的技术和过程。它是从图像处理到图像分析的关键步骤。其目的是将目标从背景中分离出来,为目标识别、精确定位等后续处理提供依据。基于最终分析的思想,可以选择相对形状度量、相对均匀性度量和误分类概率作为评价算法的标准。常用的经典阈值选取方法有9种——最小点阈值选取法、最优阈值选取法、迭代阈值选取法、基于灰度统计直方图凹分析的阈值选取法、最大熵法、模糊阈值选取法、基于类间最大方差的阈值选取法、基于图像视差的阈值选取法和基于矩保持的阈值选取法。鉴于本课题采集的太阳图像的特殊性,采用基于最大类间方差的方法获取图像阈值。最大类间方差法也叫OTSU算法,求解阈值的过程如下:(1)首先,选择一个近似值作为图像f(x,y)的初始阈值=(2-5)是最小和最大灰度值。计算每个灰度的概率。(2)根据阈值将图像分为目标区域和背景区域;=,=(2-6)计算这两个区域出现的概率,并与平均值进行比较,,(2-7)(3)计算出的方差、=;=(2-8)(4)计算类间方差、类间方差和总体方差。=+,,=+(2-9)计算新的阈值=sum,k=k+1,返回(2-9)迭代计算,直到迭代结束,此时阈值为最优解。光斑质心定位在基于图像传感器的闭环太阳跟踪系统中,能否准确检测出光斑的质心位置是实现跟踪校正的关键,决定了系统的精度和可靠性。在一般的图像处理系统对目标进行定位和跟踪时,确定目标位置的方法可以分为两类,即门跟踪和相关跟踪算法。门跟踪算法可以分为两种,即边缘跟踪和质心跟踪。形状中心跟踪可分为双边缘中心跟踪、区域平衡跟踪、形心跟踪和亮度中心跟踪。本文采用质心跟踪法对点目标进行定位。在二值图像中,设待求解的某一区域内所有像素(非零像素)的坐标标记为:(2-10)该区域质心坐标可以表示为:总和(x)=,总和(y)=(2-11),(2-12)在MATLAB7.0的图像处理工具箱中,提供了regionprops函数来帮助计算图形区域的质心。regionprops函数是用于测量图像区域属性的函数。在调用regionprops之前,必须将二进制图像转换为标签矩阵。如图2-4所示,计算一个区域的质心。绿框代表要计算的某个区域,白色方块代表该区域的一个像素,红色原点代表该区域的质心。图2-5显示了几种不同形状的质心位置检测结果。图2-4计算区域质心示意图(a)圆形质心(b)椭圆形质心(c)方形质心(d)三角形质心(e)不规则形状的形心(区域)(f)不规则形状的形心(区域外)图2-5几种不同形状的质心检测结果根据标记矩阵,可以方便地给出二值图像中亮点的数量。在进行抗干扰设计时,亮点的数量会作为判断有无干扰的依据。图2-6示出了二值化后的散斑图案的质心检测结果。图2-6光斑质心检测结果2.2.5得到步进电机的标定数。图2-7太阳影像中光斑位置和校正步骤示意图图2-7显示了采集的太阳图像中光斑位置和校正步骤的示意图。图片的格式是320*240RGB格式,即水平方向有320个像素,垂直方向有240个像素。使用图像坐标时,以图像的左上顶点为坐标原点,因此图像的中心坐标为(160,120)。FYP、FYM、FWP和FWM分别对应上位机控制平台中的“俯仰+”、“俯仰-”、“方位角+”和“方位角-”运行步数。FYP+FYM=0,FWP+FWM=0。为了减少程序中变量处理的数量,所有的FYM和FWM都用FYP和FWP的倒数来表示。在跟踪装置中,方位步进电机实际上走每一步(1.8/100),俯仰步进电机实际上走每一步(1.8/52)。跟踪装置运行时,如果光斑在图像的中心坐标,则需要50步才能下移图像FYP;将图像FWP向左移动需要160步。校正步骤数(FYP,FWP)和光斑图像坐标(X,Y)之间的关系如下:FYP=(2-13)FWP=(2-14)由公式2-13和2-14可知,当光斑在第三、第四图像时限Y>120时,可以得出FYP为负,实际上表示的是FYM跑步数;当光斑在第一和第三象限,X<160时,可以得出FWP为负的结论,它实际上表示的是FWM跑步步数。2.2.6图像处理结果分析光斑质心检测和电机校正步骤在不同象限的程序执行结果如下:1.光斑质心位于I象限。程序执行结果如下:(a)原始图像(b)二值图像(c)原始图像加质心标记图2-8光斑的质心在象限I。图2-8显示了象限I中的光斑,光斑图像坐标(111,68),光斑数量为1,相应的FYP校正步长为22,FWP校正步长为-49。光斑的质心位于象限II。程序执行结果如下:(a)原始图像(b)二值图像(c)原始图像加质心标记图2-9光斑的质心位于象限II。图2-9示出了象限II中的光斑,光斑图像坐标(237,61),光斑数量为1,相应的FYP校正步长为25,FWP校正步长为77。3.光斑的质心在第三象限。程序执行结果如下:(a)原始图像(b)二值图像(c)原始图像加质心标记图2-10光斑的质心位于象限III。图2-10示出了第三象限中的光斑,光斑图像坐标(151,159),光斑数量为1,相应的FYP校正步长为-16,FWP校正步长为-10。4.光斑的质心位于象限IV。程序执行结果如下:(a)原始图像(b)二值图像(c)原始图像加质心标记图2-11光斑的质心位于象限IV。图2-11示出了象限IV中的光斑,光斑图像坐标(281,155),光斑数量为1,相应的FYP校正步长为-15,FWP校正步长为121。太阳跟踪控制器的硬件设计3.1总体硬件设计方案太阳跟踪控制器的硬件设计由四部分组成:跟踪器控制电路、步进电机驱动电路、极限信号采集电路和串行通信电路。图3-1给出了太阳跟踪控制器的硬件结构框图。图3-1太阳跟踪控制器硬件结构框图3.2控制器电路控制器的电路原理如图3-2所示:89C51控制器电路选用性价比高、功耗低的89系列作为微处理器;图3-2控制器电路3.3步进电机驱动器步进电机驱动器由ST公司生产的高压大电流电机驱动芯片L298N实现。该芯片采用15引脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬时峰值电流可达3A,连续工作电流为2A;具有两个H桥的高压大电流全桥驱动器可用于驱动DC电机、步进电机、继电器线圈等感性负载;采用标准逻辑电平信号控制;有两个使能控制端,允许或禁止器件工作而不受输入信号的影响,还有一个逻辑电源输入端,使部分逻辑电路工作在低电压下;可以外接检测电阻,将变化反馈到控制电路。采用L298N芯片驱动电机,可驱动2台两相电机或1台四相电机,输出电压可由电源直接调节。可以直接使用单片机的I/O接口提供信号;而且电路简单,使用方便。图3-3步进电机控制系统以两相步进电机为例。当给驱动器一个脉冲信号和正方向信号,驱动器经过环形分配器和功率放大后,给电机绕组通电的顺序是A、B、A、B,四种状态反复变化,电机顺时针旋转;如果方向信号变为负值,通电顺序变为A、B、A、B,电机逆时针旋转。随着电子技术的发展,功率放大电路已经从单电压电路、高低压电路发展到斩波电路。基本原理是:在电机的绕组电路中,串联一个电流检测电路。当绕组电流下降到一定下限时,电流检测电路发出信号控制高压开关管导通,使高压再次作用于绕组,绕组电流再次上升;当电流上升到上限时,高压电源自动断开。通过重复上述过程,绕组电流的平均值恒定,电流波形的波峰维持在预定值,解决了高低压电路在低频段工作时电流骤降的问题,提高了电机在低频段的转矩。当步进电机不变时,提供给驱动器的电压对电机的性能影响很大。电压越高,步进电机的转速和加速度越高。一般在驱动器上有一个相电流调节开关。相电流设置越大,步进电机的转速越高,转矩越大。当步进电机的步距角不能满足要求时,可以用细分驱动器来驱动步进电机。细分的原理是通过改变A、B相电流的大小来改变合成磁场的角度,使一个步角细分为多个步。以两相步进电机为例。当B相和B相绕组同时通电时,转子将停在B相和B相磁极的中间。如果按AA、BBBB、AAAA、AA、BBBB、AA、BB八种状态改变通电方向顺序,电机顺时针旋转;电机每转一步是45度,8个脉冲电机做一圈。它的步幅角减小了一半。一般驱动器都有细分功能,常见的细分倍数有:1/2、1/4、1/8、1/16、1/32、1/64;或者:1/5,1/10,1/20。后步进电机的步距角计算如下:步距角=电机固有步距角/细分数。比如一个1.8的电机设置为4个细分,其步距角为1.8/4=0.45。当细分级别大于1/4时,电机的定位精度无法提高,但电机转动更加平稳。b)d)图3-4步进电机细分示意图3.4限位装置限位装置可以保证电机运行时停在正确的位置,防止电机超位运行。它是利用限位开关来实现的,限位开关是一种根据运动部件的行程位置来切换电路的电器。其工作原理与按钮类似,其电路图如图3-5所示。图3-5限位开关电路3.5串行通信电路PC机通过RS-485通信接口向控制器发送命令,通过串行接口获取控制器的状态信息。MAX485接口芯片是Maxim公司的一款RS-485芯片,包含一个驱动程序和一个接收器。它采用半双工通信方式,完成TTL电平到RS-485电平的转换功能。RO和DI端子分别是接收器的输出和驱动器的输入,与单片机连接时只需与单片机的RXD和TXD连接。/RE和DE端子分别是接收和发送的使能端子。当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发射状态。因为MAX485工作在半双工状态,所以只需要一个信号来控制MAX485的接收和发送。端子A和端子B分别是用于接收和发送的差分信号端子。当引脚A的电平高于引脚B的电平时,传输的数据为1。当A的电平低于B的电平时,表示传输的数据为0。与单片机连接时,接线非常简单。同时,在A端和B端之间增加一个匹配电阻,一般100ω电阻可选。MAX485芯片的结构和电路原理如图3-6和3-7所示。图3-6MAX485结构图3-7串行通信电路接口图4太阳跟踪控制器软件部分的设计根据太阳能跟踪控制器的功能需求,本章主要介绍了以下几个模块:主功能模块、参数设置模块、太阳能角度计算模块、数据处理模块、图像处理模块、联合编程模块、通信模块和其他功能模块。上位机的工作环境是WindowsXP,使用的软件是MicrosoftVisualC++6.0和Matlab7.0。4.1主要功能模块主功能模块的主要功能是提供程序入口,设置前期环境,设计控制策略,调用主要执行函数,处理程序运行过程中的数据。主要函数流程如下:计算太阳当前的高度角和方位角,转换成俯仰和方位电机的步数。数据处理后,调用WindowsAPI函数发出控制字,然后将控制字打包发送给单片机,实现对太阳的实时跟踪。同时,视日轨迹跟踪完成后,调用MATLAB编写的DLL文件控制相机采集太阳图片,将光斑质心坐标与图像中心坐标的偏差转换成FYP和FWP修正步长,再送入单片机驱动的步进电机反馈修正跟踪系统。主要功能的实现过程如图4-1所示。图4-1太阳跟踪主程序流程图4.2参数设置模块上位机控制平台中的设置选项可以设置系统的参数。包括设置本地经纬度、COMS端口、通信波特率、调整时间间隔、反馈校正控制等。图4-2显示了主控制界面中“设置”按钮的对话框。图4-2"设置"按钮对话框4.3太阳角计算和数据处理模块4.3.1太阳角计算模块太阳角计算模块主要由太阳位置函数完成。太阳位置函数的输入参数为:公历年、月、日,小数日(时、分、秒)和当地经纬度。通过分析太阳运动的天文规律,推导出太阳位置的计算公式,并参考中科院紫金山天文台的相关数据编制了函数。该函数采用国际编译方法,不仅每年修正太阳的运行参数,而且通过计算章动和岁差自转矩阵,获得太阳的真赤经和真赤纬,从而获得更精确的太阳位置参数。太阳位置函数的返回值是太阳的高度角和方位角。功能流程图如图4-3所示。图4-3太阳高度角和方位角计算流程图数据处理模块数据处理模块的主要功能是将太阳位置函数计算出的太阳高度角和方位角转换成步进电机需要运行的步数,并保存步进电机在两个方向上已经运行的步数。最后组装控制包,发送给MCU驱动。获取步进电机运行步数和保存步进电机运行步数的部分代码如下:voidCTimertestDlg::GetParam(){doublefA_Step,fH_Step,fInteger//参数声明fA_Step=fCurrentSunAzimuth/double(AzimuthRatio);fH_Step=fCurrentSunHeight/double(heightratio);//方位角=(1.8/100),高度比=(1.8/52)//fCurrentSunAzimuth是当前太阳方位角。//fCurrentSunHeight是当前的太阳高度角。fA_Step-=nazimuth0;//计算方位电机的运行步数。modf(fA_Step,&finteger);//将fA_Step分成整数和小数部分nazimuth0+=finteger;//nazimulth0保存电机运行的步数。uA_Step=GetInteger(&finteger);//返回fInteger的整数部分,同时保存尾数fH_Step-=nheight0;//计算俯仰电机的运行步数。modf(fH_Step,&finteger);nheight0+=finteger;uH_Step=GetInteger(&finteger);}组装的控制包被发送到MCU驱动程序。代码如下:voidCTimertestDlg::assembledATA(){char命令[7];Command[0]=(无符号字符)0xAACommand[1]=(无符号字符)0x55Command[2]=(无符号字符)Addr&(无符号字符)0x1fCommand[3]=(无符号字符)(uA_Step&0xff);command[4]=(unsignedchar)((uA_Step&0xff00)>>8);Command[5]=(无符号字符)(uH_Step&0xff);command[6]=(unsignedchar)((uH_Step&0xff00)>>8);}4.4图像处理模块图像处理算法用MATLAB7.0软件编写。根据相机采集太阳图像的特点,本课题设计的MATLAB的M文件函数流程图如图4-4所示。图4-4M文件功能流程图4.5和MCU之间的通信模块通过调用WindowsAPI函数,VC可以实现与单片机的数据传输,实现对太阳的实时跟踪。4.5.1利用WindowsAPI函数实现串口操作1.Windows串行通信的工作机制Windows是一个事件驱动的、独立于设备的多用户操作系统。同时,Windows禁止应用程序直接与硬件交互,程序员只能通过Windows提供的驱动程序来管理硬件。Windows系统充当应用程序和硬件之间的中介。Windows系统为每个通信设备开辟了自定义的输入/输出缓冲区,数据进出通信口由系统后台完成。串行端口和其他通信设备作为文件处理。用来打开、关闭、读写串口的函数和用来操作文件的函数完全一样。2.通信控制通常通过以下步骤实现:(1)设置串口;(2)使用CreateFile()函数打开串口;(3)设定通信协议;(4)设置传输速度等参数;(5)设置其他参数;(6)发送一个字符串或读取一个字符串,使用ReadFile()和WriteFile()函数;(7)使用后用CloseHandle()函数关闭串口;4.5.2pc机与单片机之间的通信协议本课题中PC机与单片机的通信共7个字节,具体格式如下:结构包{无符号字符uPackHead1//1,固定为0xAA无符号字符uPackHead2//2,固定为0x55无符号字符uMotorStatus//状态字节无符号字符uAzimuthH//水平运行步数的低位字节无符号字符uAzimuthL//水平运算的步数是高字节。如果高位字节为1,电机将反转。无符号字符uhthirth;//低字节基音操作步骤无符号字符uHeightL//螺距运行步数的高位字节,如果高位字节为1,电机将反转。}状态位定义为:当5位和6位同时为1时,系统复位;复位成功返回AA,错误返回55。表4-1通信状态位的定义七六五四三2一个0保留0:正常;1:水平复位0:正常;1:音高重置地址4.6控制台手动调节模块上位机控制平台的手动调节部分分为三个部分:1.太阳位置按钮和校准按钮。此功能的一部分是当系统复位时,单击太阳位置按钮跟踪太阳一次。首次安装或更换系统时,需要运行太阳位置按钮和校准按钮来校准系统。2.复位按钮,用于复位系统。3.四向手动调节按钮。当系统偏离运行或校准时,使用四向手动调节按钮。俯仰按钮被调节(18/52),方位角按钮被调节(18/100)。当跟踪装置的初始安装或更换位置偏离跟踪过程时,需要调整上位机控制平台的“手动调整”部分。其中四个方位按钮控制步进电机在相应方向的单步运行,同时程序保存调整后的相关参数。当跟踪系统出现误差时,可以手动调整这部分来消除偏差。当跟踪设备的初始安装或更换位置时,需要进行“校准”设置。“标定”的设置过程如下:首先运行“太阳位置”按钮,跟踪装置会根据上位机计算的太阳高度角和方位角自动运行到理论跟踪位置。这个时候一般都会有偏差。当手动按钮微调到光斑在图像中心时,按下“校准”按钮,系统会自动生成一个calibrate.ini的系统配置文件,保存校准后的基准比较值。至此,“校准”过程结束。该文件在程序初始化时被调用,以消除跟踪设备本身的错误。系统校准过程如图4-5所示。以“方位角+”按钮为例,其ID号为IDC_AZIMUTHP,程序响应流程如下:VoictimerTestDLG::onazimutp()//按下“bearing+”按钮时的消息响应函数{SendAdjCommand(AZIMUTH_F);//调用SendAdjCommand(CommandID)函数nAzimuthCal-=10;///nAzimuthCal用于配置calibrate.ini系统文件。}sendadjcommand(无符号int命令id)函数如下:图4-5系统校准流程图voidCTimertestDlg::SendAdjCommand(unsignedintcommandid){Command[0]=(无符号字符)0xAACommand[1]=(无符号字符)0x55Command[2]=(无符号字符)Addr&(无符号字符)0x1f开关(命令ID){Azimuth_f://CommandID对应“Azimuth+”Command[3]=(无符号字符)10;Command[4]=(无符号字符)0;Command[5]=(无符号字符)0;Command[6]=(无符号字符)0;打破;方位角_b://CommandID对应“方位角-”…对应于“pitch+”的CaseHEIGHT_F://CommandID…CaseHEIGHT_B://CommandID对应于“pitch-”…}SendByte(hComm,Command,7);//PC将控制字节打包发送给MCU执行。}4.7控制台太阳图像动态显示模块为了使控制平台具有良好的人机界面,同时便于观察太阳的运行状态和系统的跟踪误差,在控制平台中增加了显示控件,使图像传感器采集的太阳图像能够实时动态显示。在控件中显示位图有两种方式:静态和动态。静态方法是使用VC6.0的资源,需要先引入一个位图显示在资源视图中。这种方法有一个明显的缺点,就是位图必须先存在,禁止在程序运行时改变。显然,静态方法不能满足需要。本节介绍如何在控制平台中动态显示图像传感器采集的太阳图像。首先,程序判断定时器设置时间(即动态显示时间间隔)是否结束,并在定时器响应函数中执行动态显示太阳图像的程序。控制台动态显示太阳图像的流程如图4-6所示,显示太阳图像的流程如图4-7所示。图4-6太阳图像动态显示流程图图4-7VC显示位图流程图太阳图像动态显示模块的部分代码如下:voidCTimertestDlg::ontimer(UINTnIDEvent){CbitmaphbmpHBITMAPhbitmapCstatic*pStaic//定义类pStaic=(CStatic*)GetDlgItem(IDC_IMAGE);//将pStatic指向要显示的位置hbitmap=(hbitmap)::LoadImage(::AfxGetInstanceHandle(),"D://Test//imagine_threshold.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECT离子);hbmp。附上(hbitmap);//加载图像传感器拍摄的太阳图像位图BM;hbmp。getbitmap(&BM);//获取图片格式CDCdcMemdcMem。CreateCompatibleDC(GetDC());//创建一个DCcbitmap*poldBitmap=(cbitmap*)DCmem。selectobject(hbmp);CrectlRectpStaic->GetClientRect(&lRect);lRect。normalizerect();pStaic->GetDC()->stretchBLT(lRect.left,lRect.top,lRect。Width(),lRect。高度(),&dcMem,0,0,bm.bmWidth,bm.bmHeight,srccopy);//显示位图dcMem。selectobject(&poldBitmap);}4.8VC和MATLAB联合编程模块visual++是微软推出的可视化编程语言,是目前最全面、最强大的软件开发工具之一。Matlab是集科学计算、图像处理和声音处理于一体的高度集成系统。它利用了丰富的函数资源,以其强大的数据处理能力和丰富的工具箱使编程变得极其简单,可以大大缩短应用程序的开发周期,提高编程效率。在实际应用中,如果能够将Matlab和VC++混合编程,编程的工作量将会大大减少,并继承良好的用户界面,为科学研究和工程开发提供更加有力的技术支持。4.9MCU通信和控制部分太阳跟踪控制器的软件分为两部分,一部分是上位机程序设计,前面已经介绍过,另一部分是控制器程序设计。控制器的软件设计采用模块化设计方法,主要分为以下软件模块:主程序模块、串口中断处理模块、正常跟踪处理模块、串口中断复位处理模块等。图4-8显示了单片机跟踪控制主程序模块的流程图。首先初始化串口,然后初始化步进电机的相位,再将步进电机的控制字和步数送到单片机执行。图4-8单片机程序流程图结论针对这一课题,研究了一种基于CMOS图像传感器的太阳能跟踪控制器。这种跟踪控制器可以持续跟踪太阳的角度变化,更精确地跟踪太阳的运动。阴天或多云时,系统调用时钟算法,使设备持续跟踪。经过实验测试,各项指标均达到设计要求。该控制器采用低速处理器采集和定位光斑,可应用于各种太阳能设备,提高太阳能利用率。如果采用步进电机的微步控制技术,即通过细分技术将步进电机的整个步进分成几个更精细的微步,整个控制系统可以更加精确,可以用来检测各种点光源。本文的主要研究工作和成果概括如下:1.详细研究了国外太阳能利用的现状和几种太阳自动跟踪方法。在分析了常用的跟踪方法后,设计了一种基于COMS图像传感器的太阳自动跟踪控制器,实现了太阳自动跟踪的目的,跟踪精度高。2.上位机通过MCC实现VC++和Matlab的联合编程,控制图像传感器实时获取光斑图像。通过Matlab计算,得到光斑质心坐标与图像中心坐标的偏差,转化为水平和俯仰步进电机需要调整的步数,然后实时调整平面镜跟踪装置,使光斑始终处于图像中心。3.根据跟踪系统总体方案的设计,完成了硬件设计。主要工作包括:跟踪器控制电路、步进电机驱动电路、图像采集电路、极限信号采集电路和通信电路。4.根据跟踪系统总体方案的设计,完成了软件设计。主要工作包括:用VC编写人机交互控制平台,设计MATLAB算法处理图像并获取跟踪偏差,实现基于MCC的VC和MATLAB联合编程。5.为了保证系统的可靠性,将可靠性设计融入到硬件设计和软件设计中,有效提高了跟踪精度和可靠性。本文致力于太阳跟踪控制器的研究和开发,并取得了预期的效果。目前国外对太阳自动跟踪技术的研究很多,但真正应用的地方很少,尤其是国内。本文研究的新跟踪方法不仅提高了跟踪精度,降低了成本,而且大大提高了系统的可靠性。太阳跟踪技术的实际应用对于实现绿色社会、减少污染和应对能源危机具有重要意义。下一步可以从以下几个方面进行:1.选择细分精度更高的步进电机。目前,步进电机细分技术发展迅速。如果能选用细分精度更高的步进电机,对提高跟踪精度会有更好的效果。为了进一步提高系统的控制精度,可以采用步进电机开环控制新技术之一的微步控制技术,即利用细分技术将步进电机的一整步细分为若干个更精细的微步,可以大大提高步进电机的步距精细度,使整个控制系统更加精确。2.采用高端微处理器构成嵌入式系统。本课题选择PC机作为主控制器。如果采用ARM、DSP等体积小、成本相对较低的高端微处理器,开发一套廉价的跟踪系统,可以用在需要太阳跟踪的设备中,组成嵌入式跟踪系统。3.智能设计。理论上,太阳的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论