5299|6

1366

帖子

6

TA的资源

版主

楼主
 

GD32F350体验之十(太阳位置算法的移植) [复制链接]

    该算法代码是由美国国家可再生能源实验室本根据Jean Meeus的《天文算法》一书中给出的算法,实现对太阳高度角和方位角的计算,有效时间范围和精度分别为:-2000-6000年,±0.0003 度。https://bbs.eeworld.com.cn/thread-494254-1-1.html   再次,有一个坛友54哥已经早就在论坛分享过,并且做出了两种不同算法的比较,我也是借鉴他的思路代码来进行简化和设计,并且在此基础上,加入上位机可以通过天气预报和地图获取相关天气信息来辅助太阳追踪器。这个下帖会继续分享。
   楼主本贴的目的在于太阳位置算法--SPA天文算法的研究和移植。具体算法可以参考Jean Meeus的《天文算法》一书。我只是根据美国国家可再生能源实验室的代码进行解析。对于《天文算法》这本书,确实需要初级天文知识和高数知识才能看得明白,而且涉及的知识面很多,我也是通过代码来进行一个简约的计算方式分析。

    SPA算法需要的参数比较多,之所以要用到上贴的RTC时间,同样也需要当地的时区、经纬度、年平均温度等来算出此刻太阳的位置,即是高度角和方位角,该天内日出时刻,日落时刻。进而根据其参数来实现对太阳跟踪。
   
   在此我也做了相对应的QT天气预报和地图,从而对其当天的天气信息和地图经纬度信息进行提取下发给下位机,从而辅助太阳追踪器,比如如果当天是阴天,则太阳追踪器则不进行追踪,停留在最初位置等等。上位机的开发会在下个帖子进行分享思路。
  

此帖出自GD32 MCU论坛

最新回复

先理清楚思路,然后好好研究一下代码,挺有意思的一个项目   详情 回复 发表于 2023-8-24 20:21
点赞 关注(2)
个人签名

1084534438 欢迎交流  [加油,一切皆有可能]

 

回复
举报

1366

帖子

6

TA的资源

版主

沙发
 
明天待续。。难得放假,睡个懒觉
此帖出自GD32 MCU论坛
 
个人签名

1084534438 欢迎交流  [加油,一切皆有可能]

 
 

回复

1366

帖子

6

TA的资源

版主

板凳
 
在天文计算中,超出0~360度范围的角度经常是会出现的,比如快速运动的天体,月球等自转中甚至还会出现更大的角度;但是由于一些程序设计语言可能对于大的角度的三角哈数计算结果是不准确的,可能也是为了方便,所以还是需要把一个大范围的角度转换到0到360度或者0到180度。因此算法第一个接口函数就是写的弧度转角度、角度转弧度、角度转换0!~360度等角度。


计算机不能直接计算出以度分秒方式表示的角度的三角函数。在使用三角函数之前,应该把角度转换成以度为单位的十进制小数形式。因此,在计算 23°26′49″的余弦时要先把角度转化成为 23.44694444°,然后再用余弦函数计算。 不太清楚的是,转换成角度之后还得转换为弧度单位。这个在代码中,频繁出现这个接口转换,最终得目的还是为了方便建立一个统一单位。赤经通常用时、分、秒方式来表示。如果需要计算赤经
的三角函数,需要把赤经转换成用度为单位来表示(然后再转换成以弧度为单位),请注意 1h 对应于 15°
  比如计算时差角和地心距离函数接口sun_right_ascension_parallax_and_topocentric_dec,就是将其纬度、地心太阳赤纬角度等先其转换为0~360角度。再将其三角函数转换后再次转换为弧度返回。

     几乎在spa的算法接口中,都会用到这些转换,这样使得算法在程序语言设计上更加容易设计




此帖出自GD32 MCU论坛
 
个人签名

1084534438 欢迎交流  [加油,一切皆有可能]

 
 

回复

18

帖子

1

TA的资源

一粒金砂(初级)

4
 
厉害的啊
此帖出自GD32 MCU论坛
 
 
 

回复

18

帖子

1

TA的资源

一粒金砂(初级)

5
 

能分享一下代码么?最近也在学习,谢谢

此帖出自GD32 MCU论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 

厉害啊

此帖出自GD32 MCU论坛
 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

7
 

先理清楚思路,然后好好研究一下代码,挺有意思的一个项目

此帖出自GD32 MCU论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表