• 大小: 1.28MB
    文件类型: .zip
    金币: 2
    下载: 2 次
    发布日期: 2023-10-01
  • 语言: Matlab
  • 标签: matlab  

资源简介

如题,太阳高度角方位角高精度matlab计算代码。输入为时间,日期,经纬度,海拔。输出为太阳高度角方位角信息。

资源截图

代码片段和文件信息

function sun = sun_position(time location)
% sun = sun_position(time location)
%
% This function compute the sun position (zenith and azimuth angle at the observer
% location) as a function of the observer local time and position. 
%
% It is an implementation of the algorithm presented by Reda et Andreas in:
%   Reda I. Andreas A. (2003) Solar position algorithm for solar
%   radiation application. National Renewable Energy Laboratory (NREL)
%   Technical report NREL/TP-560-34302. 
% This document is avalaible at www.osti.gov/bridge
%
% This algorithm is based on numerical approximation of the exact equations.
% The authors of the original paper state that this algorithm should be
% precise at +/- 0.0003 degrees. I have compared it to NOAA solar table
% (http://www.srrb.noaa.gov/highlights/sunrise/azel.html) and to USNO solar
% table (http://aa.usno.navy.mil/data/docs/AltAz.html) and found very good
% correspondance (up to the precision of those tables) except for large
% zenith angle where the refraction by the atmosphere is significant 
% (difference of about 1 degree). Note that in this code the correction 
% for refraction in the atmosphere as been implemented for a temperature 
% of 10C (283 kelvins) and a pressure of 1010 mbar. See the subfunction 
% 玸un_topocentric_zenith_angle_calculation?for a possible modification 
% to explicitely model the effect of temperature and pressure as describe
% in Reda & Andreas (2003). 
%
% Input parameters:
%   time: a structure that specify the time when the sun position is
%   calculated. 
%       time.year: year. Valid for [-2000 6000]
%       time.month: month [1-12]
%       time.day: calendar day [1-31]
%       time.hour: local hour [0-23]
%       time.min: minute [0-59]
%       time.sec: second [0-59]
%       time.UTC: offset hour from UTC. Local time = Greenwich time + time.UTC
%   This input can also be passed using the Matlab time format (‘dd-mmm-yyyy HH:MM:SS‘). 
%   In that case the time has to be specified as UTC time (time.UTC = 0)
%
%   location: a structure that specify the location of the observer
%       location.latitude: latitude (in degrees north of equator is
%       positive)
%       location.longitude: longitude (in degrees positive for east of
%       Greenwich)
%       location.altitude: altitude above mean sea level (in meters) 

% Output parameters
%   sun: a structure with the calculated sun position
%       sun.zenith = zenith angle in degrees (angle from the vertical)
%       sun.azimuth = azimuth angle in degrees eastward from the north. 
% Only the sun zenith and azimuth angles are returned as output but a lot
% of other parameters are calculated that could also extracted as output of
% this function. 
%
% Exemple of use
%
% location.longitude = -105.1786; 
% location.latitude = 39.742476; 
% location.altitude = 1830.14;
% time.year = 2003;
% time.month = 10;
% time.day = 17;  
% time.hour = 12;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件     2000850  2009-02-24 08:47  34302.pdf
     文件       28057  2009-02-24 09:05  sun_position.m
     文件        1311  2014-02-12 12:43  license.txt

评论

共有 条评论