备注:作者所写出的指向公式是粗略的,精确度是不满足精确的天文观测需求的,比如你的拍星相机只有正负0.1度的视场,这样可能不能保证恒星进入拍星相机的视场
下面是求解的步骤
首先是系统时间的获取,这里面就用电脑的时间
%%
clc,clear
%获取当前时间,该时间为世界时,比北京时间早八个小时
currentTime = datetime('now', 'Format', 'yyyy-MM-dd HH:mm:ss', 'TimeZone', 'UTC');
year1 = year(currentTime);
month1 = month(currentTime);
day1 = day(currentTime);
hour1 = hour(currentTime);
minute1 = minute(currentTime);
day_tab = [0,31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
%sumday表示积日,即一年中第几天
sumday = sum(day_tab(1:month1)) + day1;
dn = double(sumday);
hour_data=(hour1+minute1/60+8)*15/180*pi;
获取系统时间之后,再结合恒星的赤经赤纬、观测点的地理纬度、太阳赤经,求解任意恒星相对观测点的方位角度和俯仰角度
%%恒星指向计算
%%以北极星为例子
%%
lat_changchun=43.976850 * pi / 180.0; %%当地的纬度
star_chijing=(5*15+55/60*15+10.31/3600*15)*pi/180; %%恒星的赤经
star_chiwei=(7+24/60+25.4/3600)*pi/180; %%恒星的赤纬
al_sun=(2*15+11/60*15+13/3600*15)*pi/180; %%太阳赤经,需要不断地更新
%%a1_sun=24*d/365; %%d为目前时间和春分点天数之差
tt=hour_data+al_sun-star_chijing;
if tt>2*pi
tt=tt-2*pi;
end
a=-cos(lat_changchun)*cos(star_chiwei)*cos(tt)+sin(lat_changchun)*sin(star_chiwei); %%第一个公式
hs1_star=asin(a);
hs1_deg=hs1_star*180/pi; %%恒星的高度角
b=cos(star_chiwei)*sin(tt)/cos(hs1_star); %%第二个公式
as1=asin(b)*180/pi; %%恒星的方位角1
c=(sin(lat_changchun)*cos(star_chiwei)*cos(tt)+cos(lat_changchun)*sin(star_chiwei))/(-cos(hs1_star)); %%第三个公式
as2=acos(c)*180/pi; %%恒星的方位角2