毕业设计基于CMOS图像传感器的太阳跟踪控制器的设计

上传人:1888****888 文档编号:39017955 上传时间:2021-11-09 格式:DOC 页数:44 大小:1.10MB
返回 下载 相关 举报
毕业设计基于CMOS图像传感器的太阳跟踪控制器的设计_第1页
第1页 / 共44页
毕业设计基于CMOS图像传感器的太阳跟踪控制器的设计_第2页
第2页 / 共44页
毕业设计基于CMOS图像传感器的太阳跟踪控制器的设计_第3页
第3页 / 共44页
点击查看更多>>
资源描述
毕 业 设 计(论文)题目 基于CMOS图像传感器的太阳跟踪控制器的设计系 别动力工程系专业班级测控技术与仪器专业08K1班学生姓名Xxx指导教师xx2012年6月华北电力大学科技学院本科毕业设计(论文)IV1基于CMOS图像传感器的太阳跟踪控制器的设计摘 要为了解决能源危机问题、实现可持续发展、构建绿色环保社会,世界各国都在积极开发利用太阳能资源。太阳能的利用已经渗透到社会各方面,但太阳能利用效率低这一问题一直影响和阻碍着太阳能技术的普及和发展。为提高太阳能利用效率而进行太阳自动跟踪控制器的研究,有着重大而深远的意义。在分析比较了国内外常用的几种跟踪方式后,设计了一种基于COMS图像传感器的太阳自动跟踪控制器,上位机实现VC+与Matlab联合编程,实时控制图像传感器获取太阳光斑图像,经Matlab计算,得到太阳光斑质心坐标与图像中心坐标的偏差,转化为水平和俯仰的步进电机需调整的步数,进而实时调整平面镜跟踪装置,使太阳光斑始终在图像中心位置。实验结果表明,该装置实现了太阳自动跟踪的目的,具有较高的跟踪精度。本课题完成了跟踪控制器的硬件设计和软件设计。硬件设计主要包括:跟踪器控制电路、步进电机驱动电路、图像采集电路、限位信号采集电路和串口通讯电路等。软件设计主要包括:采用Visual C+编写人机交互控制平台、设计MATLAB算法进行图像处理并获取跟踪偏差、基于MCC实现VC+与MATLAB联合编程。通过对实测数据的分析表明:在该系统中,高度角跟踪绝对误差和方位角跟踪绝对误差均在要求范围内,采用图像传感器对太阳进行跟踪后,得到了很高的精度,且可靠性提高。实验结果表明,跟踪控制器在可靠性、跟踪精度、抗干扰性等方面均得到了有效的提高。最后,给出了本课题的工作总结和进一步研究的方向。关键词: 太阳自动跟踪;CMOS图像传感器;步进电机; VC+THE DESIGNING OF AUTO-TRACKING CONTROLLER BASED ON CMOS IMAGINE SENSORAbstractDesign and Realization of Solar Auto-tracking Controller Based on CMOS Image Sensor In order to solve the energy crisis, achieve sustainable development and building a green community, countries in the world are actively developing the use of solar energy resources. The use of solar energy has penetrated into all aspects of society, but the solar energy utilization efficiency is low impact and this issue has been hindering the popularization of solar energy technology. To improve the efficiency of solar energy utilization, the research of automatic sun-tracking controller has important and far-reaching significance.In the analysis and comparison of several commonly used at home and abroad tracking mode, A solar automatic tracking controller based on CMOS image sensor is designed. Its host computer achieves a joint programming of VC+ and Matlab, and obtains the sun spot image by real-timely controlling the image sensor. The deviation between suns mass center coordinates and image center coordinates is calculated by Matlab. The calculation is converted into the steps of the level and pitch stepper motor to be adjusted. Real-time adjustment of plane mirror tracking device is achieved, so that sun spot has always being the center of the image. The experimental results show that the device automatically tracks the sun, and has high tracking accuracy.The subject completed a tracking controller hardware and software design. Hardware design including: tracking control circuit, stepping motor drive circuit, image acquisition circuit, limit the signal acquisition circuit and the serial communication circuit. Software design including the design of Visual C+control platform for the preparation of human-computer interaction, design MATLAB algorithms for image processing and acquisition track bias, VC and MATLAB based MCC joint programming. Measured by the experimental analysis of the data shows that: In this system, the average error of height degree tracking and the average error of azimuth degree tracking can meet the requirements of the system. The results and analysis of the experiment show that, sun-tracking controller achieved the desired results in reliability, tracking accuracy and interference immunity.Finally, this thesis summing up the work and gives the direction of further study.Key Words: solar automatic tracking; CMOS image sensor; stepper motor; VC+IV目 录摘 要IAbstractII1 绪论11.1 课题研究的背景及意义11.2 国内外太阳跟踪的研究现状及发展现状21.3 本课题的主要内容及章节安排32 太阳跟踪控制器整体方案设计及图像采集52.1系统总体设计52.2 CMOS图像采集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.5 PC机与单片机通信模块234.5.1利用Windows API函数实现串口操作234.5.2 PC机与单片机通信协议234.6控制平台手动调整模块244.7控制平台太阳图像动态显示模块264.8 VC与MATLAB联合编程模块294.9 单片机通信及控制部分29结 论31参考文献33致 谢351 绪论1.1 课题研究的背景及意义能源是人类赖以生存和发展的物质基础。几十年来,能源问题一直是举世瞩目的重大问题之一。目前世界消耗的主要能源是由吸收太阳能的植物经亿万年的演化积累而形成的化石能源,如煤炭、石油、天然气等,这些都属于不可再生资源。地球上的资源是有限的,但却以不断增长的速度在消耗。能源短缺,矿物燃料减少和污染增加,彼此互相关联,威胁着人类的正常生活和持续发展。常规能源逐渐枯竭,形势危机不容低估,所以寻找和开发新能源是一项刻不容缓的任务。在众多可再生清洁能源中,太阳能是较理想的替代能源。太阳每秒钟放射的能量大约是16×1023KW,一年内到达地球表面的太阳能总量折合标准煤共约1892×1013千亿吨,是目前世界主要探明能源储量的一万倍。相对于常规能源的有限性,太阳能具有储量的“无限性”,取之不尽,用之不竭。这就决定了开发利用太阳能资源将是人类解决常规能源匮乏、枯竭的有效途径之一。其次,太阳能不像其它的能源那样具有分布的偏集性,它处处都可就地利用,有利于缓解能源供需矛盾,缓解运输压力,对解决偏僻边远地区及交通不便的农村,海岛的能源供应,更有其明显的优越性。并且太阳能像风能、潮汐能等洁净能源一样,其开发利用时几乎不产生任何污染。这在环境污染日趋严重的今天显得尤为重要。随着太阳能利用技术的发展,太阳能利用的成本已经大大下降。利用太阳能发电,既不会污染环境,又取之不尽,无处不在。因此从长期来看,其发电成本要小的多,专家们的预测和研究一致认为21世纪人类最清洁,最廉价的能源就是太阳能。因此太阳能资源是可替代能源中最引人注目、开发研究最多、应用最广的清洁能源。但是,太阳能也不可避免地存在一些缺点,致使它未能迅速的大面积推广应用。1、强度弱。虽然到达地球大气上界和到达地球表面的太阳能总量都十分巨大,但它的强度却是相当弱的。2、不稳定性。同一个地点在同一天内,日出和日落时的太阳辐射强度远远不如正午前后。而在同一个地点的不同季节里,冬季的太阳辐射强度显然又远远比不上夏季。一个原因是,由于太阳的高度角不同,因此对同一个水平面的入射角自然不同。当太阳高度角越大,或者说太阳辐射入射角越小,也就是越接近于正射时地面上同一水平面内所接收到的太阳能就越多。3、间歇性。到达地面的太阳直接辐射能,随昼夜交替的变化。这就使大多数太阳能设备在夜间无法工作。为克服夜间没有太阳直接辐射,就需要研制和配备储能设备,以便在晴天时把太阳能收集并存储起来,供夜晚或阴雨天便用。而目前太阳能利用的基本方式主要有:1、光热转换。它是靠吸收太阳辐射的光能直接转换为热能的。这种途径虽最古老,但发展的最成熟、普及性最广、工业化程度最高。光热转换提供的热能一般温度都较低,小于或等于100。较高一些的也只有几百摄氏度。显然,它的能源品位较低,适合于直接利用。2、光电转换。将太阳辐射的光能根据“光电转换”原理把光能变成电能再加以利用,常称“光伏转换”。这是近几十年才发明和发展起来的。由于电能的品位相当高,所以它的应用领域最宽、范围最广、工业化程度最高、发展最快且前景十分乐观。3、太阳光导入。目前,美、日、英、德等国联合主攻太阳光安全导入应用技术,已成功地将阳光导入产品推向民用消费市场。运用该技术可直接将太阳光导入室内,适用于各种需要采集自然光的场合。4、光化学转换。通过光化学作用转换成电能或制氢。这也是利用太阳能的一个途径。二三十年前有不少人对此做了许多研究。光化学转换技术目前仍处于研究、开发阶段。5、光生物转换。通过光合作用收集与储存太阳能。近来在这方面的研究有所增加,人们期盼出现突破性的进展。中国地处北半球,幅员辽阔,绝大部分地区位于北纬45°以南。中国拥有丰富的太阳辐射能资源,太阳能的年辐射总量超过16.3×102kw·h/m2·a,约相当于1.2×104亿吨标准煤。我国大多数地区年平均日辐射量在每平方米4千瓦时以上,有巨大的开发潜能。中国太阳能辐射主要特点西部高于东部、北方高于南方。这样来说,如何最大限度的提高太阳能利用率在当今社会显得尤为重要。太阳能作为一种清洁无污染的能源,发展前景非常广阔,太阳能发电已成为未来全球解决能源危机的最具独特优势的重要途径。就目前的太阳能设备而言,如何最大限度的提高太阳能利用效率,仍为国内外学者的研究热点。解决这一问题应从两个方面入手,一是提高太阳能设备的能量转换率,二是提高设备的能量接收效率,前者属于能量转换领域,还有待研究,而后者利用现有的技术则可解决。香港大学建筑系的KPCheng和SCMHui教授研究了太阳光照角度与太阳能接收率的关系,理论分析表明对太阳光线运动的跟踪与非跟踪,太阳能设备能量的接收率相差37.7%,可见精确的跟踪太阳可使太阳能设备的能量利用率大大提高。太阳能每年有约350000000万亿瓦小时照射到地球表面。使用直接的太阳能辐射,其效率比燃烧化石燃料要高出约1015倍,而且太阳能不会危及支撑生命的地球存在。因此,从解决能源危机和节能绿色环保的角度上看太阳能具有无以比拟的优势,但从实际工程实践来看,有必要通过各种手段和途径发挥计算机的重要作用,把自动跟踪系统与太阳能发电设备相结合,使之大大提升自身的发电能力,提高设备的经济效益。本课题为提高利用太阳能效率而进行太阳跟踪控制器的研究,对我们面临的日益严峻的能源问题、对大范围推广太阳能应用具有重大而深远的意义。1.2 国内外太阳跟踪的研究现状及发展现状 20世纪80年代后期,美国Sandia国家光伏实验室的Alex Maish开始着手开发太阳跟踪器(Solar Track),在这之后的二十年里,高效率太阳跟踪控制器的研发也成为国内外许多科研机构所关注的课题。国外对太阳跟踪的研究历来比较重视,1994年捷克科学院物理研究所则以形状记忆合金调节器为基础,通过日照温度的变化实现了单轴被动式太阳跟踪。1997年美国Blackace研制了单轴跟踪器,这种跟踪装置根据赤道坐标系下太阳运行的原理完成东西方向的自动跟踪,但南北方向通过手动调节,接收器的热接收率提高了15%。1998年美国加州成功的研究了ATM两轴太阳跟踪器,使热接收率进一步提高。Joel.H.Goodman研制了活动太阳能方位跟踪装置,该装置通过大直径回转台使太阳能接收器可从东到西跟踪太阳。2002年2月美国亚利桑那大学推出了新型太阳能跟踪装置,该装置利用控制电机完成跟踪,采用铝型材框架结构,结构紧凑,重量轻,大大拓宽了跟踪器的应用领域。2006年2月,Acciona太阳能公司建立的被称为西班牙最大的太阳能电站设施开始投入使用,整个设施由400个太阳跟踪托盘,14400个电池板组成。这些太阳跟踪托盘设计结构为全年每天根据太阳不同的位置跟踪阳光,与通常固定的平面系统相比,这种托盘设计可以增加35%的能源产出量。2007年日本大成建设公司开发出了一种叫“T-Soleil”的新产品,T-Soleil系统设置在高楼内部和屋顶,由太阳自动跟踪型平面镜和多块反光镜组成。太阳自动跟踪型平面镜安置在屋顶天井上方,由马达驱动,可以随着阳光移动同步进行旋转,通过多块反光镜反射太阳光让高楼的内部各处变得如同室外一样明亮。就现阶段国内对太阳跟踪控制器的研究情况来看,由于受太阳能应用系统成本的影响,普遍采用半自动单轴跟踪方式。随着科学技术的不断发展,光伏转换效率的提高,太阳跟踪装置的研究会朝着全自动太阳跟踪的方向发展。全自动跟踪太阳装置是根据地平坐标、双轴跟踪原理,采用光、机、电、图像处理等技术,通过对太阳光强或形状的检测,实现对太阳的全自动跟踪,能做到同步无偏差地跟踪太阳,大大提高了太阳能的接收效率。近年来,中央气象局、上海交通大学、重庆大学、南京航空航天大学等单位分别对太阳跟踪的算法进行了研究,并且都取得了一定的成果。但总体来说,在我国,太阳跟踪技术仍不是十分成熟,从事太阳跟踪研究的人还不多,而且大部分处于理论研究阶段,实际产品还很少见。1.3 本课题的主要内容及章节安排本文完成了基于CMOS图像传感器的太阳跟踪控制器的设计,利用CMOS图像传感器采集太阳图像,经过数字图像处理后获取跟踪偏差。改进后的太阳跟踪控制器具有较高的跟踪精度和可靠性。基于本课题的研究内容和主要工作,本文的结构如下:第一章主要介绍了选题背景、目的和意义,以及国内外太阳跟踪的研究现状及发展。第二章介绍了基于CMOS图像传感器的太阳跟踪控制器的总体方案设计、CMOS图像采集方案及图像分析计算。第三章介绍了太阳跟踪控制器的硬件部分设计,主要包括单片机驱动接口电路、步进电机驱动电路、限位装置和通信电路等。第四章介绍了太阳跟踪控制器的软件部分设计,主要包括采用Visual C+6.0编写人机交互控制平台、跟踪控制器的主程序设计、太阳高度角与方位角的软件算法、跟踪控制器校准原理、基于MCC实现VC与MATLAB联合编程以及单片机部分软件设计等。第五章对课题的主要研究成果进行总结,给出下一步工作的展望。2 太阳跟踪控制器整体方案设计及图像采集2.1系统总体设计该系统主要由平面镜跟踪装置、控制和驱动电路、方位限位电路、CMOS图像传感器(附巴德膜滤波片)等部分组成。系统总体设计框图如图2-1所示。图2-1系统的总体框图太阳跟踪控制器工作过程为:上位机根据当地的经纬度和当前时间,调用Sun Position函数,获取太阳的高度角与方位角,并转化为俯仰和水平电机的运行步数,经数据处理后,通过RS485总线与单片机通信,驱动水平、俯仰两个步进电机动作实现太阳的跟踪。视日运动轨迹跟踪结束后,VC调用MATLAB函数,控制图像传感器拍摄太阳图片,经图像处理后输出。而限位装置可保证电机运行时,停在正确的位置,防止电机过位运转。2.2 CMOS图像采集2.2.1 图像传感器选型图像传感器产品主要分为CCD,CMOS以及CIS传感器三种。CMOS工艺是超大规模集成电路的主流工艺,集成度高,可以根据需要将多种功能集成在一块芯片上。CMOS图像传感器包括图像阵列逻辑寄存器、存储器、定时脉冲发生器和转换器在内的全部系统。与传统的CCD图像传感器相比,把整个图像系统集成一块芯片上,不仅降低了功耗,而且具有重量轻、空间占有小以及总体价格低的优点。目前CMOS型不仅价格低廉,而且已经实现数字化输出,软件可编程控制,大大降低系统设计的难度,提高系统设计的灵活性、抗干扰性和稳定性。CMOS图像传感器满足系统设计要求。本课题采用罗技公司的QuickCam系列网络摄像头,具有功耗小、成本低、单一电源驱动、易于实现片上系统集成等特点。其开窗特征可以根据实际需要设置有效图像数据窗口的大小,从而避免了对无效数据的采集,减小存储空间。2.2.2图像采集方案选择由于太阳光十分强烈,因此在图像采集时,需要给摄像头加上巴德膜滤波片。实验表明加两层滤波片后,所得到的图像效果较佳。传统的方法是使用中性灰滤光镜。但从节约成本考虑,本课题采用的是更加新型的滤光方式,选用来自德国的发明专利巴德太阳观察保护膜AstroSolar TM。巴德膜是一种镀了金属的树脂膜,可以用于目视和拍照。它很薄,光学质量优异,目前可以买到的巴德膜有两种密度,分别为5.0(目视)和3.8(拍照)。用于天文观测太阳,一般很难透光,只有在强光条件下才可以看到光。图2-2和图2-3分别为摄像头加单层滤波片和双层滤波片所拍摄的太阳位置图片。(a)原始图像 (b)二值图像图2-2摄像头加单层巴德膜拍摄的太阳照片(a)原始图像 (b)二值图像图2-3摄像头加双层巴德膜拍摄的太阳照片2.2.3 图像预处理图像预处理部分主要包括灰度图像转换、中值滤波、图像分割。1、 彩色图像转灰度图像。通常,用摄像头获取的图像是彩色图像,它由R, G ,B3个单色调配而成,各种单色都人为地从0-255分成了256个级。根据R, G ,B的不同组合,获取的彩色图像可以表示256×256×256=16777216种颜色。通常数字图像的处理是先将彩色图像转换为灰度图像,然后再对灰度图像进行处理。彩色图像转换为灰度图像的公式如下: Y =0.299R +0.587G +0.114B (2-1)2、中值滤波图像在拍摄或者传输过程中总会添加一些噪声,这样就影响了图像的质量。进行中值滤波可以有效消除这些噪声,同时还实现了图像的平滑。中值滤波是一种去除噪声的非线性处理方法,是由Turky在1971年提出的。基本原理是:把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替。中值的定义如下:一组数把n个数的大小顺序排列如下: Y=Med= (2-2)y称为序列的中值。把一个点的特定长度或形状的领域称作窗口。在一维情形下,中值滤波器是一个含有奇数个像素的滑动窗口,窗口正中间那个像素的值用窗口内各像素值的中值代替。设输入序列为, I为自然数集合或子集,窗口长度为n,则滤波器的输出为: (2-3)其中:i在二维情形下,可以用某种形式的二维窗口。设, 表示数字图像各点的灰度值,滤波窗口为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)计算新阈值= 和,k=k+1, 回到(2-9)迭代计算,直到 时迭代结束,此时的阈值即为最优解。2.2.4光斑质心定位在基于图像传感器构成的闭环式太阳跟踪系统中能否准确检测出太阳光斑质心位置是实现跟踪校正的关键,决定着系统的精度与可靠性。一般图象处理系统对目标定位、跟踪时,确定目标位置的方法可分为两类,即波门跟踪和相关跟踪算法。波门跟踪算法可分为两种,即边缘跟踪和形心跟踪。形心跟踪又可分为双边缘中心跟踪、面积平衡法跟踪、质心跟踪和亮度中心跟踪等。本课题采用质心跟踪的方法实现对太阳光斑目标的定位。在二值图像中,设某一待求区域内所有像素(非零像素)的坐标记为: (2-10)则该区域质心坐标可表示为: Sum(x)=, Sum(y)= (2-11) , (2-12)在MATLAB 7.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*240 RGB格式,即水平方向含有320个像素点,垂直方向含有240个像素点。采用图像坐标表示时,以图片左上顶点为坐标原点,故图像中心坐标为(160,120)。其中FYP、 FYM 、FWP、 FWM分别对应上位机控制平台中“俯仰+”、“俯仰-”、“方位+”、“方位-”运行步数。且有FYP +FYM =0,FWP +FWM=0。程序中为减小变量处理个数,所有FYM和FWM均用FYP和FWP的相反数表示。跟踪装置中方位步进电机每走一步实际走过(1.8/100),俯仰步进电机每走一步实际走过(1.8/52)。跟踪装置运行时,若光斑处于图像中心坐标,则向下移动出图像FYP需运行50步;向左移动出图像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。2、 太阳光斑质心在第II象限程序执行结果如下:(a)原始图像 (b)二值化图像 (c)原始图像加质心标记图2-9太阳光斑质心在第II象限图2-9为太阳光斑在第II象限,光斑图像坐标(237,61),光斑个数为1,对应FYP校正步数为25,FWP校正步数为77。3、太阳光斑质心在第III象限程序执行结果如下:(a)原始图像 (b)二值化图像 (c)原始图像加质心标记图2-10太阳光斑质心在第III象限图2-10为太阳光斑在第III象限,光斑图像坐标(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 太阳跟踪控制器的硬件设计3.1硬件总体设计方案太阳跟踪控制器的硬件设计由四部分组成:跟踪器控制电路、步进电机驱动电路、限位信号采集电路和串口通讯电路。图3-1所示为太阳跟踪控制器硬件结构框图。图3-1太阳跟踪控制器硬件结构框图3.2控制器电路控制器电路原理如图3-2所示:控制器电路中微处理器选用89系列中高性价比和低功耗的89C51;图3-2控制器电路3.3步进电机驱动器步进电机驱动器采用L298N来实现,L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动两个二相电机,也可以驱动一个四相电机,可以直接通过电源来调节输出电压;并可以直接用单片机的I/O接口提供信号;而且电路简单,使用比较方便。图3-3 步进电机控制系统以两相步进电机为例,当给驱动器一个脉冲信号和一个正方向信号时,驱动器经过环形分配器和功率放大后,给电机绕组通电的顺序为A,B, A, B其四个状态周而复始进行变化,电机顺时针转动;若方向信号变为负时,通电时序就变为A, B,A,B,电机就逆时针转动。随着电子技术的发展,功率放大电路由单电压电路、高低压电路发展到现在的斩波电路。其基本原理是:在电机绕组回路中,串联一个电流检测回路,当绕组电流降低到某一下限值时,电流检测回路发出信号,控制高压开关管导通,让高压再次作用在绕组上,使绕组电流重新上升;当电流回升到上限值时,高压电源又自动断开。重复上述过程,使绕组电流的平均值恒定,电流波形的波顶维持在预定数值上,解决了高低压电路在低频段工作时电流下凹的问题,使电机在低频段力矩增大。步进电机一定时,供给驱动器的电压值对电机性能影响较大,电压越高,步进电机转速越高、加速度越大;在驱动器上一般设有相电流调节开关,相电流设的越大,步进电机转速越高、力矩越大。在步进电机步距角不能满足使用要求时,可采用细分驱动器来驱动步进电机。细分驱动器的原理是通过改变A,B相电流的大小,以改变合成磁场的夹角,从而可将一个步距角细分为多步。仍以二相步进电机为例,当、B相绕组同时通电时,转子将停在、B相磁极中间。若通电方向顺序按A A,BB BB, AA AA,AA,BB BB,BB,AA ,BB8个状态周而复始进行变化,电机顺时针转动;电机每转动一步,为45 度,8个脉冲电机转一周。它的步距角小了一半。驱动器一般都具有细分功能,常见的细分倍数有:1/2,1/4,1/8,1/16 ,1/32 ,1/64 ;或: 1/5,1/1 0,1/20 。细分后步进电机步距角按下列方法计算:步距角=电机固有步距角/细分数例如:一台1.8°电机设定为4细分,其步距角为1.8°/4=0.45 °。当细分等级大于1/4后,电机的定位精度并不能提高,只是电机转动更平稳。a) b)c) d)图3-4步进电机细分原理图3.4 限位装置 限位装置可保证电机运行时,停在正确的位置,防止电机过位运转。采用限位开关来实现,限位开关是一种根据运动部件的行程位置而切换电路的电器,它的作用原理与按钮类似,其电路图如图3-5所示。图3-5限位开关电路3.5串口通讯电路PC机通过RS-485通讯接口,发送命令给控制器,同时通过该串行接口获得控制器的状态信息。MAX485接口芯片是Maxim公司的一种RS485芯片,内部含有一个驱动器和接收器,采用半双工通讯方式,它完成将TTL电平转换为RS485电平的功能。其中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-6 MAX485内部结构图 图3-7串口通讯电路接口图4 太阳跟踪控制器软件部分设计根据太阳跟踪控制器实现的功能要求,本章主要介绍以下几个模块:主函数模块、参数设置模块、太阳角度计算模块、数据处理模块、图像处理模块、联合编程模块、通信模块、其他功能模块。上位机工作环境为Windows XP,使用软件Microsoft Visual C+6.0和Matlab 7.0。4.1主函数模块主函数模块的主要功能是提供程序入口、前期环境设置、设计控制策略、调用主要执行函数和程序运行过程中的数据处理等。主函数流程为:计算当前太阳高度角和方位角,转化为俯仰和方位电机运行步数,数据处理后,调用WindowsAPI函数发出控制字,然后将控制字打包送到单片机执行太阳的实时跟踪。同时,在视日运动轨迹跟踪完毕后,调用MATLAB编译生成的DLL文件,控制摄像头采集太阳图片,根据太阳光斑质心坐标与图像中心坐标的偏差转化为FYP和FWP校正步数,再次送给单片机驱动步进电机反馈校正跟踪系统。主函数的实现流程如图4-1所示。图4-1太阳跟踪主程序流程图4.2参数设置模块上位机控制平台中的设置选项可进行系统的各参数设置。主要包括进行地方经纬度、COMS口、通信波特率、调整时间间隔、反馈校正控制等的设置。图4-2所示的是主控制界面下“设置”按钮的对话框。图4-2 “设置”按钮对话框4.3太阳角度计算及数据处理模块4.3.1太阳角度计算模块太阳角度计算模块主要由Sun Position函数完成。Sun Position函数的输入参数为:公历的年、月、日、分数的一天(几小时几分几秒)、当地的经纬度。通过分析太阳运行的天文规律所推导出太阳位置的计算公式,参考中国科学院紫金山天文台的相关资料编写该函数。函数采用国际编法,不但对太阳运行参数进行年度修订,而且通过对章动、岁差旋转矩阵的计算得到太阳的真赤经与真赤纬,从而获取更加精确的太阳位置参数。Sun Position函数的返回值为太阳的高度角与方位角。函数流程图如图4-3。图4-3太阳高度角与方位角计算流程图4.3.2数据处理模块数据处理模块的主要功能是将Sun Position函数计算所得的太阳高度角与方位角转化为步进电机需要运行的步数,同时保存两方向步进电机已经运行的步数。最后拼装控制包送单片机驱动。获取步进电机运行步数及保存步进电机已经运行步数的部分代码如下:void CTimertestDlg:GetParam()double fA_Step,fH_Step,fInteger;/参数声明fA_Step=fCurrentSunAzimuth/double(AzimuthRatio);fH_Step=fCurrentSunHeight/double(HeightRatio);/AzimuthRatio=(1.8/100),HeightRatio=(1.8/52)/fCurrentSunAzimuth为当前太阳方位角角度/fCurrentSunHeight 为当前太阳高度角角度fA_Step-=nAzimuth0; /计算方位电机运行步数modf(fA_Step,&fInteger); /将fA_Step分为整数和小数部分nAzimuth0+=fInteger; /nAzimuth0保存电机已运行步数uA_Step=GetInteger(&fInteger);/返回fInteger整数部分,同时将尾数保存fH_Step-=nHeight0; /计算俯仰电机运行步数modf(fH_Step,&fInteger);nHeight0+=fInteger;uH_Step=GetInteger(&fInteger);拼装控制包送单片机驱动部分代码如下:void CTimertestDlg:AssembleData()char Command7;Command0=(unsigned char)0xAA;Command1=(unsigned char)0x55;Command2=(unsigned char)Addr&(unsigned char)0x1f;Command3=(unsigned char)(uA_Step&0xff);Command4=(unsigned char)(uA_Step&0xff00)>>8);Command5=(unsigned char)(uH_Step&0xff);Command6=(unsigned char)(uH_Step&0xff00)>>8);4.4图像处理模块图像处理部分算法采用MATLAB7.0软件编写。针对摄像头采集太阳图像的特点,本课题设计的MATLAB的M文件函数流程图如图4-4所示。图4-4 M文件函数流程图4.5 PC机与单片机通信模块VC通过调用Windows API函数实现与单片机间数据的传递,实现太阳的实时跟踪。4.5.1利用Windows API函数实现串口操作1、Windows串口通信的工作机理Windows是一个事件驱动的并与设备无关的多用户操作系统。同时Windows禁止应用程序直接和硬件交互,程序员只能通过Windows提供的驱动程序管理硬件。Windows系统充当了应用程序与硬件之间的中介。Windows系统为每个通信设备开辟了用户定义的输入/输出缓冲区,数据进出通信口均由系统后台完成。串口和其他通信设备都是作为文件进行处理的。串口的打开、关闭、读取和写入所用的函数与操作文件的函数完全一样。2、通常以下面的步骤来实现通信控制:(1)设置串口号码;(2)使用Create File()函数打开串口;(3)设置通信协议;(4)设置传输速度等参数;(5)设置其他参数;(6)送出字符串或读入字符串,使用Read File()及Write File()函数;(7)使用完毕后用Close Handle()函数将串口关闭;4.5.2 PC机与单片机通信协议本课题的PC机与单片机通信共为7个字节,具体格式如下:Struct Packageunsigned char uPackHead1;/包头1,固定为0xAAunsigned char uPackHead2; /包头2,固定为0x55unsigned char uMotorStatus;/状态字节unsigned char uAzimuthH; /水平运行步数低位字节unsigned char uAzimuthL; /水平运行步数高位字节,高位为1则电机反转unsigned char uHeightH; /俯仰运行步数低位字节unsigned char uHeightL; /俯仰运行步数高位字节,高位为1则电机反转其中状态位各位定义为:当5、6两位同时为1时,系统复位;复位成功返回AA,错误返回55。 表4-1通信状态位定义76543210保留0:正常;1:水平复位0:正常;1:俯仰复位地址4.6控制平台手动调整模块上位机控制平台的手动调整部分分为三部分: 1、太阳位置按钮和校准按钮。该部分功能为系统在复位结束状态下,点击太阳位置按钮实现太阳的一次跟踪。系统在初次安装或更换位置时需要运行太阳位置按钮和校准按钮实现系统的校准。2、复位按钮,此按钮用于系统复位。3、四方向手动调整按钮,系统运行出现偏差或进行校准时采用四方向手动调整按钮,俯仰按钮对应调整(18/52)、方位按钮对应调整(18/100)。跟踪装置初次安装或更换位置以及跟踪过程出现偏差时需要上位机控制平台中 “手动调整”部分进行调整。其中四个方位按钮控制步进电机在对应方向上的单步运行,同时程序保存调整后的相关参数,跟踪系统出现误差时可以手动调整此部分消除偏差。跟踪装置初次安装或更换位置时需要进行“校准”设置。“校准”设置过程如下:首先运行“太阳位置”按钮,跟踪装置根据上位机计算出的太阳高度角与方位角,自动运转至理论的跟踪位置,此时一般存有偏差,当手动按钮微调使光斑处于图像中心时,按下“校准”按钮,系统会自动生成一个calibrate.ini的系统配置文件,文件内保存校准后的基准比较值。此时“校准”过程结束。该文件在程序初始化时调用,用来消除跟踪装置本身存在的误差。系统校准流程如图4-5所示。以“方位+”按钮为例,其ID号为:IDC_AZIMUTHP,程序响应过程如下:void CTimertestDlg:OnAzimuthp()/“方位+”按钮按下时的消息响应函数SendAdjCommand(AZIMUTH_F);/调用SendAdjCommand(CommandID)函数nAzimuthCal-=10; /nAzimuthCal用于配置calibrate.ini系统文件其中SendAdjCommand(unsigned int CommandID)函数如下:图4-5系统校准流程图void CTimertestDlg:SendAdjCommand(unsigned int CommandID)Command0=(unsigned char)0xAA;Command1=(unsigned char)0x55;Command2=(unsigned char)Addr&(unsigned char)0x1f;switch(CommandID)case AZIMUTH_F:/“方位+”对应的CommandIDCommand3=(unsigned char)10;Command4=(unsigned char)0;Command5=(unsigned char)0;Command6=(unsigned char)0;break;case AZIMUTH_B:/“方位-”对应的CommandIDcase HEIGHT_F:/“俯仰+”对应的CommandIDcase HEIGHT_B:/“俯仰-”对应的CommandIDSendByte(hComm,Command,7);/PC机将控制字节打包后送单片机执行4.7控制平台太阳图像动态显示模块为了使控制平台具有较好的人机交互界面,同时能够方便的对太阳运行状态及系统跟踪误差进行观察,在控制平台中增加显示控件,使其实时将图像传感器采集到的太阳图像动态的显示出来。在控件中显示位图分为静态和动态两种方法。静态法就是用VC6.0的资源器,需要先在资源视图中引入一张所要显示的位图。这种方法有一个明显的缺点,就是位图必须先存在并且程序运行时此位图禁止改变。显然静态法无法满足需要,本小节介绍如何将图像传感器采集的太阳图像动态的显示在控制平台中。程序首先判断定时器设置时间(即动态显示时间间隔)是否结束,在定时器响应函数中执行动态显示太阳图像的程序。控制平台中动态显示太阳图像的流程如图4-6所示,其中显示太阳图像部分的流程图如图4-7所示。图4-6太阳图像动态显示流程图图4-7 VC显示位图流程图太阳图像动态显示模块部分代码如下:void CTimertestDlg:OnTimer(UINT nIDEvent)Cbitmap hbmp;HBITMAP hbitmap;Cstatic*pStaic;/定义类pStaic=(CStatic*)GetDlgItem(IDC_IMAGE);/将pStatic指向要显示的地方hbitmap=(HBITMAP):LoadImage(:AfxGetInstanceHandle(),"D:/Test/
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!