收藏 分享(赏)

太阳跟踪说明.doc

上传人:hyngb9260 文档编号:7787006 上传时间:2019-05-25 格式:DOC 页数:5 大小:49KB
下载 相关 举报
太阳跟踪说明.doc_第1页
第1页 / 共5页
太阳跟踪说明.doc_第2页
第2页 / 共5页
太阳跟踪说明.doc_第3页
第3页 / 共5页
太阳跟踪说明.doc_第4页
第4页 / 共5页
太阳跟踪说明.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、太阳跟踪小结一、 项目概况软件目前关键点调试结束,下一步预计进行现场测试。校准方案:1, 输入本地经纬度;2, 高度角的校准在校准模式下,通过南北键调整电机使电机大致与地面垂直,通过南北校准按键自动调整到固定角度.3, 方位角的校准,将光敏电阻安装到一块固定板的 2 侧固定在太阳板上方,调整使之与太阳板平面垂直;在校准模式下,通过东西按键调整电机使太阳板大致与光线同一个方向,通过光栅调整按键进行光线的微调,并指示校准结果。4, 校准完成后通过校准结束按键结束校准,进入普通运行模式。二、 软件主要参数及算法说明涉及到的主要参数结构如下:1, 太阳位置信息结构struct SUNPOSITONin

2、t isstart; / 是否在起始位置 0: 不是, 1:是 int interval; / 定时跟踪间隔 单位: minfloat aincide; / 入射角 单位:度 float azimuth; / 方位角 单位: 度float latitude; / 纬度 单位:度float longitude; / 经度 单位:度float cur_angle; / 当前的角度float las_angle; / 前一次调整的角度float rel_angle; / 偏差角度 光栅调整的角度;2, 电机控制结构struct PARA_OF_MOTORuint8 run; /运行状态 0:为运行,

3、 1:运行中 uint8 ctr_mod; /控制方式 0:默认粗调 , 1:细调 uint8 coar_val; /粗调时间间隔 coar_val*1s uint8 fine_val; /细条时间间隔 fine_val*10ms uint8 direct; /方向 14uint8 fault; /故障标记uint16 hys_fac; /滞后因子 0255 ruint32 sprio; /电机转速比uint32 cur_cnt; /当前转过的圈数int rel; /偏差圈数 -32768 32768float braketime; /制动时间 单位秒float angle; /角度 moto

4、r1_para, motor2_para;3, 本地时间结构struct sTimeint year; / Valid for -2000, 6000int month; / month 1-12int day; / calendar day 1-31int hour; / local hour 0-23int min; / minute 0-59int sec; / second 0-59/int UTC; / offset hour from UTC. Local time = Greenwich time + time.UTC;太阳方位角、高度角及太阳入射角及日出日落算法:方位角、高度角

5、采用地理数学计算公式,涉及到的主要有赤纬角算法和近似时差算法。/ 赤纬角近似算法 - 修正/ nDayNumber: 日积 / -23.27 度 赤纬角 23.27 度float SunLatitude_Repair(int nDayNumber) float fSunAngle; float fSunLatitude; fSunAngle=2.0*PI*(nDayNumber-1.0)/365.0; fSunLatitude=0.006894 - 0.399512*cos(fSunAngle) + 0.072075*sin(fSunAngle) - 0.006799*cos(2.0*fSun

6、Angle) + 0.000896*sin(2.0*fSunAngle) - 0.002689*cos(3.0*fSunAngle) + 0.001516*sin(3.0*fSunAngle); fSunLatitude = fSunLatitude*180.0/PI; return fSunLatitude; / 近似时差算法 float TimeDifference(int nDayNumber) float fSunAngle; float fTimeDifference; fSunAngle=2.0*PI*(nDayNumber-1.0)/365.0; fTimeDifference

7、= 0.000043 + 0.002061*cos(fSunAngle) - 0.032040*sin(fSunAngle) - 0.014974*cos(2.0*fSunAngle) - 0.040685*sin(2.0*fSunAngle); fTimeDifference = fTimeDifference * 229.183; return fTimeDifference; /入射角算法是根据 4 个季节变化进行调整:春分、秋分日太阳入射点在赤道,入射角 H = 90- |纬度+/-0|;夏至、冬至日太阳入射点点北南维 23.5.根据这 4 个节点调整, 季节之间的调整算法由两个季节角

8、度只差平均到每天的变化,当变化角度大于 5才调整,这有由于南北方向的电机转速比较低的原因。日出日落算法比较复杂这里不再列出,改算法只需要提供年月日和纬度即可求出改天的日出日落时间,经测试求出的值比较接近实际。三、 系统参数的存储太阳位置信息的存储比较频繁,根据设置的日视跟踪间隔不同而变化,最小的日视跟踪间隔为 1min,这里采用循环存储的方法,对 60 个存储页进行循环存储以避免过多的擦写同一个存储单位。系统和电机参数的存储,当系统参数改变或者电机参数由设置改变时存储。四、 软件流程系统初始化,太阳参数、电机参数初始化,未校准位置前进入校准模式校准模式下,运行灯 300ms/60ms 频率闪烁

9、以指示状态,可以进行 2个电机的调试,串口可以使用,不进行日视跟踪.通过按键可以在校准和普通欲行模式下切换.(解决校准出错重校的问题 )串口数据解析处理,处理相关协议按键扫描,频率为 100ms 一次,以减少系统负担;东西南北方向调试按键,分别控制各个方向的启停;校准切换按键、校准结束按键、南北方向校准按键、模式控制按键的检测。日视跟踪;1,获取时间;2,以天为单位计算日出落时间并保存;3,以天为单位判断入射角变化,如果大于 5,则进行调整;4, 判断当前时间是在日出日落间,以这定间隔计算太阳方位角变化,如果变化大于 0.1进行调整,调整之后进行光栅微调,使能光栅多次微调;5,如果时间在日落后则延迟 5 分钟返程,返程的角度为当前计算的方位角-90,同时设置前一次调整角为 90 度。光栅微调;AD 采集 2 个光敏电阻中间电压值,采集 20 次,每次由 10 次采样除最大最小后平局取值。判断 20 次值中 在中间值范围内的个数大于 18 个,则认为入射光垂直,如果低于下限或者高于上限值超过 15 个认为有偏差,则进行步进为 0.2的微调,最多 num 次; 电机 1 运行状态跟踪电机 2 运行状态跟踪五、 协议控制需要定制的协议:1, 时间配置2, 经纬度配置3, 电机参数配置

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报