基于COMS图像传感器的太阳自动跟踪控制器设计与实现
太阳跟踪的方法很多,主要可以分为两种方式,即光电跟踪和根据视日运动轨迹跟踪。光电跟踪装置优点是灵敏度高,结构设计简单,能通过反馈消除累计误差,具有较大的优势。其关键部件是光电传感器,常用的是光敏电阻。由于光敏电阻安放位置的不连续和环境散射光的影响,系统不能连续跟踪太阳,精度有限。
本文引用地址:http://www.amcfsurvey.com/article/268277.htm因此需对光敏电阻的结构进行优化,而通过增加光敏电阻个数的方法则会造成装置结构复杂,成本提高。通过分析,采用图像传感器代替了光敏电阻检测太阳位置的变化,可以准确、快速地获得太阳位置信息,从而提高了跟踪精度。同时其结构简化,成本降低。
1 系统总体设计
该系统主要由平面镜跟踪装置、控制和驱动电路、方位限位电路、CMOS图像传感器(附巴德膜滤波片)等部分组成。系统总体设计框图如图1所示。跟踪装置实物图如图2所示,图像传感器固定在平面镜中心。图像传感器产品主要分为CCD,CMOS以及CIS传感器三种。目前CMOS型不仅价格低廉,而且已经实现数字化输出,软件可编程控制,大大降低系统设计的难度,提高系统设计的灵活性、抗干扰性和稳定性。
CMOS图像传感器满足系统设计要求。跟踪控制器采用罗技公司的QuickCam系列网络摄像头,具有功耗小、成本低、单一电源驱动、易于实现片上系统集成等特点。其开窗特征可以根据实际需要设置有效图像数据窗口的大小,从而避免了对无效数据的采集,减小存储空间。
由于太阳光十分强烈,因此在图像采集时,需要给摄像头加上巴德膜滤波片。实验表明加两层滤波片后,所得到的图像效果较佳。
系统工作过程为:启动时,上位机VC++调用视日运动规律中的sun函数,获取太阳的高度角与方位角,并转化为俯仰和水平步进电机的运行步数,通过RS 485总线与单片机通信,驱动跟踪装置运转,确保太阳光斑装入CMOS图像传感器视角内。
通过MCC实现VC++与Matlab联合编程,实时控制图像传感器采集太阳光斑图像。VC++程序设置为每隔5 min自动调用传感器拍一次照,传回的图像经Matlab处理,计算出太阳光斑质心坐标与图像中心坐标的偏差,转化为水平和俯仰电机需调整的步数,返回给 VC++,再次送给单片机,驱动步进电机动作,进而细微调整平面镜跟踪装置,使太阳光斑始终在图像中心位置。
当厚云层挡住太阳时,或者由于其他原因太阳光斑无法出现在传感器视角内,则VC++调用时钟跟踪算法,继续跟踪,直到云层过去后,再重新使用图像传感器跟踪。
2 图像传感器实时跟踪太阳的设计
2.1跟踪控制器的首次定位
启动时,上位机中VC++程序首先调用视日运动规律中的sun函数(此后跟踪过程中无需再调用),返回此时的太阳高度角和方位角,换算成俯仰和方位步进电机所需的步数,数据送给单片机,驱动跟踪装置运转,确保太阳光斑装入图像传感器视角内。子程序得到所需要运行的步数,列出部分代码:
sun()函数中各个变量的含义:
而PC与单片机通信协议如下:
状态各位定义如下:
其中:6,5必须同时为1时,系统复位。
传感器相关文章:传感器工作原理
评论