基于单片机太阳能电池数据采集系统设计.doc_第1页
基于单片机太阳能电池数据采集系统设计.doc_第2页
基于单片机太阳能电池数据采集系统设计.doc_第3页
基于单片机太阳能电池数据采集系统设计.doc_第4页
基于单片机太阳能电池数据采集系统设计.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科生毕业设计(论文)学 院: 专 业: 学 生: 指导教师: 完成日期 年 月本科生毕业设计(论文) 基于单片机的太阳能电池数据采集系统设计Design of Data Acquisition System for Solar CellBased on MCU总 计: 22 页公 式: 7 个插 图 : 14 幅 本 科 毕 业 设 计(论文)基于单片机的太阳能电池数据采集系统设计Design of Data Acquisition System for Solar Cell Based on MCU 学 院(系): 专 业: 学 生 姓 名: 学 号: 指 导 教 师(职称): 评 阅 教 师: 完 成 日 期: 基于单片机的太阳能电池数据采集系统设计电气工程及其自动化专业摘要本设计根据太阳能电池测试原理和电子电路的相关知识,选用合适的电子元器件设计了能够完成数据采集任务的硬件电路,主要包括温度信号采集单元、光强信号采集单元、电压及电流信号采集单元、模数转换单元和串口通信单元等部分。用单片机C语言编写了与硬件电路相配合的软件程序,控制硬件电路完成数据采集任务,数据采集部分与PC机之间通过串口进行的数据传输。 关键词太阳能电池;单片机;数据采集;串口通信;可视化集成编程系统开发软件Design of Data Acquisition System for Solar Cell Based on MCU Electrical Engineering and Automation Specialty Abstract: According to the test principle of the solar cell and the related knowledge about electronic circuit, we have chose suitable electronic components to design a hardware circuit, which can complete the task of data acquisition. This hardware circuit includes temperature data acquisition unit,light intensity signal acquisition unit, voltage and current signal acquisition unit, analogue to digital conversion unit and serial communication unit, and so on. We have used C programming language to compile software program coordinated with the data acquisition hardware circuit, and to control hardware circuit to complete the task of data acquisition. The serial communication can be work between data acquisition section and personal computer through serial port .Key words: Solar cell; microprogrammed control unit; data acquisition; serial communication; MATCOM目 录1 引言11.1 设计背景11.2 课题研究内容及意义22 太阳能电池数据采集原理22.1 太阳能电池的工作原理22.2 太阳能电池的等效电路32.2 太阳能电池的伏安特性曲线42.3 太阳能电池的测试方法53 太阳能电池数据采集部分硬件电路设计53.1 数据采集部分硬件电路53.2 电压电流信号采集单元73.3 固态继电器单元83.4 温度信号采集单元93.5 光强信号采集单元93.6 步进电机单元103.7 电源电路单元103.8 串口通信单元114 太阳能电池数据采集部分软件设计114.1 系统主程序软件设计114.2 温度信号采集子程序124.3 A/D转换部分子程序134.4 太阳能电池数据显示部分设计及结果14结束语16参考文献17附录18致谢221引言1.1设计背景能源是人类赖以生存的物质基础,是现代文明的重要保证,可靠、安全的能源供给和清洁、高效的能源利用是实现经济社会发展的基本保证。工业现代化所需要的主要能源,如石油、煤、天然气等又都是不可再生能源。因此,能源战略都被世界各国当做其经济发展战略的重要组成部分。随着世界经济的高速发展以及工业化程度的不断提高,世界各国对能源的需求一直保持着强劲的增长势头,能源问题已经越来越成为制约全球各国经济和社会发展的重要因素之一。 化石能源的减少以及使用化石能源对气候和生态环境产生的负面影响越来越明显,研究开发清洁的可再生能源成为世界各国实现经济和社会可持续发展的重要战略。由于太阳能所具有的取之不尽、用之不竭的特点,太阳能光伏发电成为最有发展前景的一种新能源技术,世界各国纷纷投入人力物力研究开发太阳能光伏发电技术,将太阳能光伏发电产业做为解决能源和环境问题的战略产业加以重点支持,使全球太阳能光伏发电产业得以迅猛发展。世界各国尤其是发达国家政府都把太阳能发电称为朝阳产业,希望把这一产业作为实现本国可持续发展的重要措施,制定了一系列支持和促进本国光伏发电产业发展的政策,对世界光伏产业的发展起到了积极地推动作用,全球光伏发电市场正在迅速扩大,光伏发电正在成为全球的一大热点。我国对太阳能电池的研究始于1958年。我国于1971年发射的东方红二号卫星上首次成功地利用了太阳能电池,在80年代以前我国的光伏工业尚处于雏形。在“六五”,和“七五”期间,光伏工业和光伏市场开始得到国家的支持,使太阳能电池工业得到了一定的发展,在许多领域得到应用。原国家计委于2002年启动的“西部省区无电乡通电计划”大大刺激了我国光伏工业的发展,太阳能电池应用也取得了一些进展。我国实施了很多重大光伏项目,这些项目对我国光伏市场和光伏产业的发展都起到了积极地推动作用。这些项目包括:中国政府的“光明工程”先导项目,中国和加拿大合作的“CIDA太阳能农村通电项目”,国家计委的光明工程,西藏阿罩光电计划等。 在2010年以前我国太阳能电池主要应用于独立光伏发电系统,2011年到2020年问我国光伏发电市场将由独立发电系统转向并网发电系统,包括沙漠电站和建筑屋面发电系统。随着我国综合国力的增强和光伏产业的蓬勃发展,我国将会大规模建设大型太阳能热电站和太阳能光电站,届时太阳能光伏发电将会成为我国的主要能源来源之一。11.2 课题研究内容及意义本课题的内容是设计太阳能电池测试系统的数据采集部分,所发展的工作如下:(1) 有效的采集太阳能电池的电流、电压、光强和温度等参量,使数据的采集过程可以在很短的时间内完成,避免了温度和光强变化对测试数据的影响。(2) 对采集到的数据利用单片机的串口通信技术,实现数据采集电路和PC机的通信。(3) 用PC机对数据采集电路采集到的数据进行分析处理,得出太阳能电池的伏安特性曲线和相关性能参数,从而对被测太阳能电池进行分析评判。在太阳能光伏发电技术中太阳能电池起着关键和核心的作用,太阳能电池的开路电压、短路电流、最大功率、转换效率等性能参数对其产业化应用有重要影响。因此,太阳能电池的测试及判断分选是太阳能电池生产过程中的重要环节。测试是在给定光强下,测出太阳能电池组件的伏安特性曲线,并由测得的电流、电压、温度、光强等数据计算出太阳能电池组件的开路电压、短路电流、最大输出功率、转换效率等参数,并据此进行分类评判。在测试过程中必须对太阳能电池组件在给定光强下的各种数据进行采集,要准确而高效地完成太阳能电池数据的采集,必须用到太阳能电池测试系统。2 太阳能电池数据采集原理 2.1 太阳能电池的工作原理太阳能电池的制作材料多种多样,有硅、硒、砷化镓、硫化镉等,但目前在全球占据主导地位的主要是硅材料太阳能电池,因此本文中主要以硅材料太阳能电池为代表来讨论太阳能电池的工作原理。晶体硅太阳能电池的结构如图1所示: 图1 晶体硅太阳能电池结构 晶体硅太阳能电池是用硅材料制成大面积pn结进行工作的,一般是以p型硅半导体材料作为基质材料,在p型硅表面扩散出一层很薄的经过重掺杂的n型层,然后在n型层上面制作金属栅线,作为上面接触电极,在整个背面制作作为背面接触电极的金属膜,太阳能电池的表面一般会做绒面处理或覆盖减反射膜以减少光的反射损失。当太阳能电池表面的pn结受到太阳光的照射时,如果入射光子的能量高于硅材料的禁带宽度,则在n区、p区和结区中会因光子被吸收而产生电子空穴对,在结附近的n区中产生的少数载流子会因为存在浓度梯度而扩散。如果少数载流子离pn结的距离小于它的扩散长度,就会有扩散到结界面处的几率。在结区即p区与n区交界面的两侧存在一个被称为耗尽层的空间电荷区。扩散到结界面处的少数载流子空穴会被内建电场拉向p区,而扩散到结界面处的少数载流子电子会被内建电场拉向n区,结区内产生的电子一空穴对会被内建电场分别拉向n区和p区。 在外电路处于开路状态的情况下,这些光生电子和空穴会积累在pn结附近,结果使p区获得附加正电荷,n区获得附加负电荷,在pn结上就会产生光生电动势。这一现象称为光生伏打效应,也称光伏效应,太阳能电池就是根据光伏效应工作的。22.2 太阳能电池的等效电路 太阳能电池的基本结构是一个大面积的pn结,根据电子学理论,理想pn结的伏安特性可以表示为: (1)在式1中,定义为pn结电流,定义为反向饱和电流,为pn结外加电压,q=l.6l0l9C是电子电荷,=定义为温度的电压当量,k=1.38l023J/K定义为波尔兹曼常数,T是绝对温度。太阳能电池的等效电路可以表述为图2所示(其中R1为负载电阻): 图2 太阳能电池等效电路在没有光照的情况下,pn结处于平衡状态,没有电流流过pn结。当有太阳光照射到太阳能电池表面时,pn结的平衡状态会被破坏,将产生一个从n区流向p区的光生电流Iph,同时,存在一个从p区流向n区,与光生电流方向相反的暗电流Id,考虑到太阳能电池的材料、制造工艺等因素,硅片的内部阻抗和电极接触会引起串联电阻Rs,pn结内部的不完整性会引起并联电阻Rsh。在一定的光强照射下,太阳能电池的光电流不随工作状态而变化,在等效电路中可以看做恒流源,光电流中的一部分流经负载,在负载两端建立端电压,端电压反过来又正偏于pn结两端,产生一股暗电流,暗电流方向与光电流方向相反。由于器件的瞬时响应特性与太阳能的转换无关,且瞬时响应时间与绝大多数光伏系统的时间常数相比微不足道,因此在实际的分析过程中结电容C,可以忽略不计。电压、电流方向如图所示,可以得到太阳能电池的I-V方程为 (2)对实际使用的太阳能电池而言,它们的参数各不相同,因此在方程中参数应处理为集体参数。式2中U为负载两端电压,Iph为光生电流,A的取值范围为l5,称为二极管因子,用于考虑电路中二极管的非理想pn结。32.2 太阳能电池的伏安特性曲线 根据经典光伏理论,在一定的光强和温度下,太阳能电池的伏安特性曲线如图3所示:图3 太阳能电池的伏安特性曲线图3中Voc是太阳能电池的开路电压,Isc是太阳能电池的短路电流,Pm是太阳能电池的最大输出功率,Vm是最大功率点电压,Im是最大功率点电流。由图中可知,太阳能电池的伏安特性曲线是非线性的,该曲线受太阳能电池自身的工艺参数,外界光照的强度和太阳能电池自身温度等因素的影响。从太阳能电池的伏安特性曲线中可以看出太阳能电池既不是恒流源,也不是恒压源,不可能为负载提供任意大的功率。太阳能电池是一个非线性直流电源,输出电流在一定电压范围内相当恒定,最终在到达某个电压值之后,电流迅速下降至零。太阳能电池的输出电流在短路状态下不是无穷大,而是一个有限值。太阳能电池有一个最大输出功率点,工作在最大功率点上时利用效率才最高。太阳能电池的伏安特性曲线受太阳能电池自身的工艺参数、外界光照的强度和太阳能电池自身温度等因索的影响,不同的伏安特性曲线可以反映太阳能电池在不同环境条件下工作时的发电能力和最佳效率点。42.3 太阳能电池的测试方法 太阳能电池的伏安特性受光照强度和电池温度的影响,因此规定太阳辐射光谱为AMl.5,日照强度为1000W/m2。太阳能电池温度为25时为地面测试太阳能电池性能的标准测试条件。太阳能电池分析评判的依据是太阳能电池的伏安特性曲线及性能参数,就是要测出太阳能电池在标准日照强度S和标准温度T条件下,太阳能电池所带负载从零变化到无穷大时太阳能电池的输出电压和输出电流的值,根据输出电压和输出电流的值作出太阳能电池的I-V特性曲线,并根据测得的数据计算出太阳能电池的性能参数,根据得出的I-V特性曲线和性能参数来评判太阳能电池的性能。为了尽可能降低光强和温度变化对测试带来的影响,必须保证太阳能电池的测试是在极短时间内完成的。53 太阳能电池数据采集部分硬件电路设计3.1数据采集部分硬件电路 在太阳能电池测试系统中,数据采集部分主要是对太阳能电池外接负载在从零变化到无穷大过程中太阳能电池的输出电压和输出电流、太阳能电池温度和光照强度进行采集。 在测试系统的工作过程中,调节太阳能电池的负载电阻从零变化到无穷大,并在负载电阻每增加一个固定阻值时,采集此时负载电阻两端的电压和通过负载电阻的电流,负载电阻为零时采集到的电流即为短路电流;负载电阻为无穷大时采集到的电即为开路电压。根据太阳能电池的短路电流与光照强度成正比关系的原理来间接测得太阳能电池的光照强度。采集数字温度传感器DS18B20,可以直接把现场采集到的温度信号转换成二进制数据,无需外加A/D转换器。 本设计的数据采集系统主要采集太阳能电池的电压、电流、测试光强、电池温度四种数据。其中电压、电流、测试光强需要经过A/D转换单元,实现由模拟信号到数字信号的转换,而温度信号的采集采用数字温度传感器,可以直接输出二进制数据。转换成二进制的电压、电流、光强和温度数据通过串口与PC机进行通信,在PC机中进行数据的处理和处理后结果的显示。整个数据采集部分以单片机力控制核心,通过单片机实现数据采集单元、A/D转换单元和串口通信单元之间的协调工作。数据采集部分的电路原理图如图4所示: 图4 数据采集部分电路图 在图4中,包括单片机最小系统,温度采集器件DS18B20,A/D转换器件ADC0832,电压转换芯片MAX232和RS232接口DB9。整个数据采集部分的电路是以单片机为控制核心的,在数据采集部分电路中,用步进电机和步进电机驱动器实现太阳能电池所接负载电阻按一定的阻值间隔从零到无穷大的变化。单片机与步进电机驱动器相连,通过单片机控制步进电机驱动器工作,进而控制步进电机按一定的步距角转动,从而实现太阳能电池所接负载电阻的变化;温度采集所采用的数字温度传感器DS1B820是单线总线结构,需要按照严格的时序由单片机进行控制,才能顺利实现温度数据的转换和输出;电流、电压和光强信号都需要由单片机控制A/D转换器ADC0832来实现由采集到的模拟量到单片机所需要的数字量之间的转换;转换为数字量的电压、电流、光强和温度信号都需要通过单片机控制DP9串口来实现与PC机之间的数据通信。103.2 电压电流信号采集单元 本设计中电压采集和电流采集采用间接测量法,其电路图如图5所示: 图5 电压电流测量电路 在图5中,R0是负载电阻,Rstd是标准电阻,Vr是参考电压源。负载电阻采用的是多圈电位器,单片机通过步进电机驱动器控制步进电机的转动来带动多圈电位器的转动,从而改变负载电阻的阻值:图中的开关K1、K2、K3采用继电器,由单片机输出的控制信号不断使继电器导通与切断,以组成不同的回路来测量所需的电压和电流。 通过如下方式得到太阳能电池在不同负载条件下的输入电压和电流。在光强一定的条件下,改变负载电阻到某个固定值,将K3闭合,K1连接到K11,K2连接到K21,此时,负载电阻两端电压为: (3)由上式3可以得出负载电阻R0的值为: (4)在保持光强和负载电阻不变的条件下,将K3闭合,K1连接到K12,K2连接到K22,将太阳能电池和负载电阻R。组成回路,从而得到所测电压为Uc。由上面步骤l已经得到了负载电阻的值,则此时回路中的电流为: (5)通过单片机控制步进电机驱动器,进而控制步进电机的转动,从而改变负载电阻R0的值,则可以得到不同负载电阻时的路端电压和回路中的电流。将负载电阻的值调到最小,使负载电阻的值远小于太阳能电池本身的内阻,可以得到太阳能电池的短路电流Isc。将开关K3断开,K1连接到K12,K2连接到K22,此时太阳能电池和负载电阻组成的回路处于开路状态,此时测得的电压即为太阳能电池的开路电压Voc。6 93.3 固态继电器单元 固态继电器是一种利用电子元件的断开和闭合来控制固态继电器所在电路的断开和接通的无触点式电子开关元件,分为直流固态继电器和交流固态继电器两种,本文用的是直流+5v电压的固态继电器,本文中采用的继电器工作电压为直流+5V电压,继电器的外围连接了一个三极管和一个二极管。三极管起开关作用,根据单片机I/O口为0或为l决定三极管是否导通;二极管要反过来接,主要作用是保护三极管,因为在线圈停电的瞬间会产生反向电动势,可能会对三极管造成损伤。电路如图6所示: 图6 固态继电器电路连接3.4 温度信号采集单元 本设计中太阳能电池温度信号采集是才用单总线数字温度传感器DS18B20,由于被测温度直接采用数字形式输出,因此无需外加A/D转换器。如图7所示:图7 温度测量电路 在使用DS18B20时,经常采用单片机实现数据采集,在实际连接电路时往往将DS18B20的信号线与单片机的一位I/O口线相连,图7中将DS18B20的DQ端连接到单片机的Pl.3口。DS18B20与单片机有2种连接方式,一种是采用寄生电源供电,另一种是采用外部电源供电,本设计采用的是外部电源供电,DS18B20的DQ端直接接单片机的Pl.3口,并接4.7千欧的上拉电阻,VDD接+5v电压,GND接地。3.5 光强信号采集单元太阳能电池的短路电流受到温度、光照等环境因素的影响,但是在太阳能电池面积较小的情况下,可以认为太阳能电池的短路电流只与光照强度有关,并且它们之间成正比例关系,而不受其他环境因素的影响。本设计中根据这一原理,在测量太阳能电池的光照强度时,采用一块小面积的太阳能电池作为光照强度传感器,在太阳能电池正负极之间接入阻值很小的电阻。此时,可以认为太阳能电池处于短路状态,测量太阳能电池两端的电压,从而计算出此时太阳能电池的短路电流,根据太阳能电池的短路电流与日照强度成正比例关系的原理,间接得到光照强度的数值,测量示意图如图8所示: 图8 光照电路采集电路3.6 步进电机单元步进电动机不能直接接到工频交流或直流电源上工作,而必须使用专用的步进电动机驱动器,它由脉冲发生控制单元、功率驱动单元、保护单元等组成。本设计选用的是两相混合式步进电机和细分型高性能步进电机驱动器,步进电机系统由单片机、步进电机驱动器、步进电机和负载电阻组成,单片机通过步进电机驱动器控制步进电机来带动负载电阻,使负载电阻按预定的要求变化,并在变化的过程中进行电压和电流的采集。步进电机系统电路连接如图9所示: 图9步进电机系统电路连接在图9中,步进电机驱动器的PUL,DIR,ENA三个端子与单片机的三个I/O引脚连接,这在前面已有介绍,这里不再重复。驱动器的A+,A-,B+,B-四个端子分别接步进电机的红、绿、黄、蓝四条引线。由于本设计采用的是两相混合式步进电机,步进电机的步距角为1.8度,则步进电机转一圈需要200个脉冲信号,作为负载电阻的多圈电位器一圈的阻值是10欧姆,如果希望使步进电机的步距脚更小,可以通过操作步进电机驱动器的拨码开关DIP-SW来实现。3.7 电源电路单元在一个单片机实用系统设计中,电源设计是相当重要的,此单元设计是否合理,直接决定系统能否稳定的运行。长期以来,单片机系统使用的集成电路器件大多数都在5V电源工作。在此次设计中,我们采用的电源通过市电电网的交流电经变压,整流,滤波,稳压后得到系统所需的+5V直流电源。因此,此系统的电源包括变压电路,整流电路,滤波电路,稳压电路。 滤波电路是将脉动直流中的交流成分滤除,减少交流成分,增加直流成分。 滤波电路利用电抗性元件对交、直流阻抗的不同,实现滤波。电容器C对直流开路,对交流阻抗小,所以C应该并联在负载两端。电感器L对直流阻抗小,对交流阻抗大,因此L 应与负载串联。经过滤波电路后,既可保留直流分量、又可滤掉一部分交流分量,改变了交直流成分的比例,减小了电路的脉动系数,改善了直流电压的质量。8 13在使用三端稳压器时应注意防止产生自激振荡。三端稳压器内部电路放大级数多,开环增益高,工作于闭环深度负反馈状态,需要采用适当的补偿移相措施,防止产生高频寄生振荡。电容C1,C2就是为了防止自激振荡而加的防振电容。为改善纹波电压和抑制输入瞬时过电压,输入端加入的C1一般取值0.33uF,同时输出端接C2用以改善负载瞬态响应,容量取0.1uF. 为了减小提高纹波电压与提高输出电压的稳定度,分别在输入输出端加大的电解电容。这样一旦输入端出现短路,集成稳压器内部电路中的功率调整管可以及时泄放。电源电路如图10所示:图10 +5V直流稳压电源电路图3.8 串口通信单元 本文设计的太阳能电池数据采集系统采用的是上位机一下位机的工作方式,由于PC机的分析能力很强、处理速度很快,而单片机使用起来灵活方便,因此本文采用PC机作为上位机,单片机作为下位机,两者之间通过RS-232串口进行采集数据的发送、接收和控制指令的传输。因此,本文中的串口通信指的是单片机和PC机之间的数据传输,这种数据传输是由单片机的串口和PC机的串口共同完成的,MAX232芯片用于实现电平转换。4太阳能电池数据采集部分软件设计4.1 系统主程序软件设计由于温度信号和光强信号的采集比较简单,用时也较少,因此,本文首先采集的是温度和光强信号,采集到的温度和光强信号放到单片机的存储器中.然后,进行被测太阳能电池路端电压和电流的采集,在采集的过程中,由于短路电流和开路电压的采集比较特殊,不同于其他电压和电流信号的采集方法,因此短路电流和开路电压的采集与其他电压、电流信号的采集分开进行,采集完成后,数据也放到单片机的存储器中。当每一次数据采集完成后,就对数据进行处理,将处理之后的数据直接送入PC机,然后利用软件对数据进行处理。系统主程序设计如图11所示。电压、电流信号采集单元光强信号采集单元温度信号采集单元A/D转换单元单片机控制单元串口通信单元PC机数据处理及显示 图11 系统主程序设计图 4.2 温度信号采集子程序 本研究使用的数字温度传感器DS18B20采用单总线技术,在一根数据线上进行读写数据和命令的传输,因此,对DS18B20进行的读写操作有严格的时序要求,DS18B20规定了严格的通信协议来保证数据传输的正确性和完整性.设计中用到一片DS18B20芯片,因此在编写温度采集程序时只需用到跳越ROM (CCH)命令即可,单片机在发出ROM命令访问DS18B20之后,就可以发出功能命令来完成特定的任务了。本设计中采用到的DS18B20功能命令有转换温度命令(44H),读暂存器命令(BEH)等。在温度转换期间总线上不能进行任何其他数据传输,另外,通过发出复位脉冲可以在任何时刻中断数据的传输。转换成数字量的温度数据以16位符号扩展的二进制补码形式存储在DS18B20的高速暂存器的前两个字节中。12 在图13中,由于转换完成的温度信号分两个字节存放在DS18B20的高速暂存器中,因此,本文采用两次转换,两次读取,一次读取低位字节,一次读取高位字节的方来完成温度信号的采集。采集程序中用到的程序代码简介如下:# define DQ RA0 /定义DS18B20数据端口 # define DQ_DIR TRISA0 /定义DS18B20D口方向寄存器 # define DQ_HIGH() DQ_DIR =1 /设置数据口为输入# define DQ_LOW() DQ = 0; DQ_DIR=0 /设置数据口为输出uchar TLV=0 ; /采集到的温度高8位uchar THV=0; /采集到的温度低8位uchar TZ=0; /转换后的温度值整数部分uchar TX=0; /转换后的温度值小数部分 本研究对温度信号进行采集的程序流程图如图12所示:读取温度低位字节 延时放入内存 延时 放入内存读取温度高位字节 启动DS18B20启动DS18B20图12 DS18B20程序流程图4.3 A/D转换部分子程序本文在数据采集过程中调用模数转换子程序分为两个步骤,首先是调用ADC0832的初始化函数,然后调用读耿数据函数,这两个函数简述如下:初始化函数AD_init();Void AD_init(void) ADCS=1; ADCCLK=0; _nop_(); _nop_(); ADCS=0; 选中ADC0832 _nop_(); _nop_(); ADDI=1; 输入启动位 _nop_();_nop_(); ADCLK=1; 第一个上升沿 _nop_();_nop_();ADCLK=0;ADDI=0;_nop_();ADDI=1; 选择单通道输入_nop_();_nop_();ADCLK=1; 第二个上升沿 _nop_(); ADCLK=0;_nop_();ADDI=0; 选择CH0,若ADDI=1则选择CH1_nop_();_nop_();ADCLK=1; 第三个上升沿_nop_();_nop_();ADCLK=0:LADDI=1;_nop_();_nop_(); 4.4 太阳能电池数据显示部分设计及结果 本文设计的太阳能电池数据采集系统由以单片机为控制核心的数据采集部分和以VC+6.0和MATLAB为主要编程工具的PC机数据处理及显示部分组成。 在前面完成了太阳能电池数据采集部分软硬件的设计内容,数据采集部分通过单片机的串口与PC机进行通信。本节我们在PC机中采用VC+6.0作为开发工具,编制PC机中的监控显示界面,采集到的数据用MATLAB程序进行处理,处理完后的结果再返回监控界面中显示。PC机中对采集到的太阳能电池数据进行分析处理,采用这种方式可以充分利用MATLAB编程的优良特性和C+的高执行效率,可以开发出具备强大的数据分析处理能力,具有良好的用户界面,满足用户要求的高性能应用软件。 本文根据前面介绍的太阳能电池数据采集系统的设计原理,搭建了一个基于本文设计原理的试验电路,并用该试验电路对3块串联的太阳能电池进行测试,得到的伏安特性曲线和性能参数如图13与图14所示: 图13 太阳能电池伏安特性曲线图14 伽利略测试性能结果 由图13可以看出,本课题设计的太阳能电池数据采集系统能够对太阳能电池小组件进行测试,测试的结果可以由监控显示界面来表达。从监控显示界面的运行情况可以看出,被测太阳能电池的I-V特性曲线可以以图形方式直观地显示出来,而太阳能电池的相关性能参数也能够以数值形式清楚地展现给测试人员。 但同时从图14可以看出,本文搭建的试验电路测得的I-V特性曲线光滑度不够,有些点的波纹较大,这是由于电路中存在着一些噪声和干扰,而我们搭建的试验电路的滤波处理有所欠缺,但是图中I-V曲线的总体变化趋势符合太阳能电池的固有性质。图15给出的是本文试验中所测的电池小组件在武汉珈伟太阳能有限公司中测得的I-V特性曲线和性能参数,与之比较可知,本文设计的测试系统得到的大部分性能参数误差在5.96以内,而部分参数(如串联电阻、工作电压等)误差偏大,误差的来源主要是由于本文试验电路的AD转换器的分辨率较低,对v=0附近的值采样精度较差。结束语 本设计根据目前太阳能电池研究和工程应用的实际需要,以半导体物理学和太阳能电池的相关理论为基础,根据电子电路和单片机原理的相关知识,设计的基于单片机的太阳能电池数据采集系统,系统主要分为数据采集和数据处理及结果显示两大部分。 在数据采集部分的硬件电路中,选用步进电机和多圈电位器来实现太阳能电池外接负载的自动变化,避免了电子负载的使用。采集到的电压、电流、光强和温度信号通过作为中介的单片机传输到PC机中,在PC机中进行数据的后处理。在硬件电路设计完成后,还用C语言编写了与硬件电路相配合的软件程序。在原理介绍完成后,还搭建了相关的试验电路,并利用试验电路对三块串联的太阳能电池进行测试。测试得到的结果表明,被测太阳能电池的I-V特性曲线可以以图形形式直观的显示出来,而电池的九个性能参数也能够以数值形式清楚的展现给测试人员,并且测试得到的I-V特性曲线的变化趋势符合太阳能电池的固有性质。整个界面直观明了,较为完整的表述了被测太阳能电池的相关信息,测试人员能够据测试得到的结果对太阳能电进行一些分析评判,系统的整体性能基本满足了太阳能电池的测试要求。参考文献1 任致程等.实用电路500例与实现M.北京,机械工业出版社,2005:416-4522 彭伟 编著.单片机C语言程序设计实训100例基于8051+Proteus仿真.北京:电子工业出版社,2009.6:100-2003 周国运等.单片机原理及其应用(C语言版)(M).中国水利水电出版社.2009:13-374 薛定宇著.控制系统计算机辅导设计MATLAB语言及应用M. 清华大学出版社,1998:125-2005 楼顺天.基于MATLAB的系统分析与设计控制系统M. 西安电子科技大学出版社,2000:55-2906 孙增忻.智能控制理论与技术M. 清华大学出版社,2004:12-1357 朱清慧,张凤蕊,翟天嵩,王志奎. Proteus教程电子线路设计、制版与仿真M.北京:清华大学出版社,2008.9:1-508 崔荣强,王晨太阳能电池检测系统基本原理 J。阳光能源,2008(3):36-40 9 Wang L X,Stable adaptive fuzzy control of nonlinear system. IEEE Transaction on fuzzy systems,1993,1(2):33-7910 CHANG Guang.ping.Ordinary Differential Equation:Approach Application.Journal of Beijing Union University.2005(2):45-4711 张皆喜.单片机c语言编程与应用实例M. 北京:电子工业出版社出版,2008,6-5512 朱善军.单片机接口技术及应用M. 北京:北京航天航空大学出版社出版,2003,45-9013 硅太阳能电池串联电阻的一种估算新方法廖志凌,阮新波。电工技术学报,2008,23(5):88-9214 潘新民.微型计算机控制技术M. 北京:人民邮电出版社出版 1999,6-5515 盖勒.DAGellerDavidA著可编程序控制器原理与设计M北京清华大学出版社.2006:126-222附录附录一 温度采集DS18B20参考函数如下:# define DQ RA0 /定义DS18B20数据端口 # define DQ_DIR TRISA0 /定义DS18B20D口方向寄存器 # define DQ_HIGH() DQ_DIR =1 /设置数据口为输入# define DQ_LOW() DQ = 0; DQ_DIR=0 /设置数据口为输出uchar TLV=0 ; /采集到的温度高8位uchar THV=0; /采集到的温度低8位uchar TZ=0; /转换后的温度值整数部分uchar TX=0; /转换后的温度值小数部分/复位DS18B20函数void reset(void) uchar presence=1; while(presence) DQ_LOW() ; /主机拉至低电平 delayus(503); /延时503us DQ_HIGH(); /释放总线等电阻拉高总线,并保持15.60usdelayus(70); /延时70usif(DQ) presence=1; /没有接收到应答信号,继续复位 else presence=0; /接收到应答信号 delayus(430); /延时430us /写DS18B20写字节函数void write_byte(uchar val)uchar i;uchar temp;for(i=8;i0;i-) temp=val & 0x01; /最低位移出 DQ_LOW(); ASM(“NOP”); ASM(“NOP”); ASM(“NOP”); ASM(“NOP”); ASM(“NOP”); /从高拉至低电平,产生写时间隙 if(temp=1) DQ_HIGH(); /如果写1,拉高电平 delayus(63); /延时63us DQ_HIGH(); ASM(“NOP”); ASM(“NOP”); val=val1; /右移一位 /DS18B20读字节函数uchar read_byte(void)uchar i;uchar value=0; /读出温度for(i=8;i0;i-) value=1; DQ_LOW(); delayus(6); /6us DQ_HIGH(); /拉至高电平 delayus(4); /4us if(DQ) value|=0x80;delayus(63); /63us return(value);/启动温度转换函数void wendu() uint i;reset();PORTA=0X02; /复位等待从机应答 write_byte(0XCC); /忽略ROM匹配 write_byte(0X44); /发送温度转化命令reset(); /再次复位,等待从机应答 write_byte(0XCC); /忽略ROM匹配 write_byte(0XBE); /发送读温度命令 TLV=read_byte; /读出温度低8 THV=read_byte ; /读出温度高8位 PORTA=0X02; /释放总线 TZ=(TLV4)|(THV4)&0X3f; /温度整数部分TX=TLV4; /温度小数部分temp=TZ+TX;附录二 /步进电机控制函数Const uchar table1=0xfe,0xfb,0xfd,0xf7; /正转Const uchar table2=0xf7,0xfd,0xfb,0xfe; /反转uint i=0;void zheng(uint c) /正转 PORTC=table1i%4;void fan(uint c) /反转for(i=0;ic;i+) PORTC=table2i%4;viod bujin()uint n; if(in) PORTC=table1i%4; i+; Else PORTC=table2i%4; i+; /A/D转换函数viod adc()gq(); dianya();void main() while(1) csh(); /初始化函数 wendu(); /温度采集函数 adc(); /A/D转换函数,包括电压、电流、光强的采集 xianshi(); /函数 bujin();附录三 监控显示MATCOM介绍VC+6.0与MATLAB联合编程的方式有利用MATLAB ENGINE、利用MEX程序和利用MATCOM等几种。前两种方式编写的程序在运行时都不能脱离MATLAB环境,而利用M的方式则可以开发出能够脱离MATLAB环境而独立运行的程序。因此本设计采用MATCOM的方式来实现VC+6.0和NIATLAB的联合编程。利用MATCOM实现VC+6.0和MATLAB的联合编程有两种方式,一种是将用MATLAB语言编写的M文件通过MATCOM (MIDEVA)转换成同等功能的C+源代码或C+形式的动态链接库:另一种是按照MATCOM的语法,利用MATCOM提供的库函数,在VC+6.0环境中直接编写MATLAB语句。本文中采用后一种方式,直接用MATCOM库函数在VC+6.0环境中编写MA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论