📄 greenwichsidereal.m
字号:
%*******************************************************
% function Theta_GST = GreenwichSidereal(date, time)
%
% DESCRIPTION:
%
% Calculates the corresponding Greenwich Sidereal Time at each time step
% in the time vector argument (Reference: Vallado, pg.67)
%
% ARGUMENTS:
%
% date - struct containing date information (see loadInput)
% time - vector of time values for which to calculate Theta_GST
%
% OUTPUT:
%
% Theta_GST - Greenwich Sidereal Time at each time (rad)
%
% CALLED BY:
%
% getSatelliteState
%
% FUNCTIONS CALLED:
%
% julianDate
%
% MODIFICATIONS:
%
% 03-04-04 : Stephen Russell - Original, modified from code written
% by Lisa Reeh
%
%
% Colorado Center for Astrodynamics Research
% Copyright 2004 University of Colorado, Boulder
%*******************************************************
function Theta_GST = GreenwichSidereal(dateStructure, timeVector)
sec2day = 1/60/60/24; % unit conversion
dt = timeVector(2) - timeVector(1);
% calculate the Julian Date from the reference starting time
JD_init = julianDate([dateStructure.year, dateStructure.month, dateStructure.day, dateStructure.hour, dateStructure.min, dateStructure.sec]);
% Calculate the adjusted Julian Date
JD_adj = JD_init*ones(size(timeVector)) + dt*ones(size(timeVector))*sec2day;
% Calculate the number of Julian centuries elapsed from the epoch J2000
T = (JD_adj - 2451545)./36525;
% Update the Greenwich Sidereal Time in radians
Theta_GST = rem((67310.54841 + (876600*3600+8640184.812866).*T + 0.093104.*T.^2 -...
6.2e-6.*T.^3), 86400)./240 .* pi/180;
% Quadrant check
Theta_GST = mod(Theta_GST,2*pi);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -