衛星 利用matlab根據星曆讀取衛星位置

2021-08-19 04:49:58 字數 1241 閱讀 3245

function pos=sp(tk,brdc)

gm=3.986005e+14;

we=7.2921151467e-5;%地球自轉平均角速度

a1=brdc(2,4);

a=a1*a1;        % 長半軸

e=brdc(2,2);

w=brdc(4,3);

crs=brdc(1,2);cuc=brdc(2,1);cus=brdc(2,3);

cic=brdc(3,2);cis=brdc(3,4);crc=brdc(4,2);

% (1)已知長半軸a,計算平均角速度n

n0=sqrt(gm)/brdc(2,4)^3;     % 平均角速度

n=n0+brdc(1,3);        %改正平角速度

% (2)求偏近點角ek

mk=brdc(1,4)+n*tk;     %平近點角

%迭代計算

ek=mk;ek1=inf;

while abs(ek1-ek)>1e-13

ek1=ek;

ek=mk+e*sin(ek1);

end% (3)計算真近點角f

v1=sqrt(1-e^2)*sin(ek);

v2=cos(ek)-e;

fk=atan2(v1,v2);    %真近點角

r0=brdc(2,4)^2*(1-e*cos(ek));

% (4)根據已知的近地點角距w求公升交角距theta

u0=fk+w;   %公升交距

fai=2*u0;

%(5)求改正數

duk=cus*sin(fai)+cuc*cos(fai);  %軌道攝動項改正數

drk=crs*sin(fai)+crc*cos(fai);

dik=cis*sin(fai)+cic*cos(fai);

uk=u0+duk;

rk=r0+drk;

ik=brdc(4,1)+dik+brdc(5,1)*tk;

x=[rk*cos(uk);rk*sin(uk);0];

%計算公升交點經度

omk=brdc(3,3)+brdc(4,4)*tk-we*(brdc(3,1)+tk);

rx=[1 0 0; 0 cos(ik) -sin(ik);0 sin(ik) cos(ik)];

rz=[cos(omk) -sin(omk) 0;sin(omk) cos(omk) 0;0 0 1];

pos=rz*rx*x;

end

利用Google Maps監視衛星軌道

利用google maps看地球是地球人都知道的事情,但是用google maps看你頭頂上飛的衛星聽過沒?呵呵,小龍發現了乙個很好玩的 它利用google maps將宇宙執行的衛星實時軌跡標記出來,這樣你就知道你頭頂上是哪個國家的衛星在你頭上飛了哦 具體步驟 輸入 數字系北美防空司令部的識別碼 你...

MATLAB 根據SP3檔案繪製星下點軌跡

xyz與blh轉換的 參考 ground track.py pan li.email lipan.whu gmail.com jiahuan hu.email hhu whu.edu.cn 本方法通過讀取精密星曆中的衛星座標進行直接的星下點軌跡繪製,並實現了對gnss系統的選擇,示例所給的sp3檔案...

利用MATLAB繪製相軌跡

不直接用時間變數而用狀態變數表示運動的方法稱為相空間方法,也稱為狀態空間方法。在自動控制理論中,把具有直角座標x和x 的平面叫做相平面。相平面是二維的狀態空間,二階系統的某一狀態對應於相平面上的一點,狀態隨時間轉移的情況對應於相平面上點的移動。相平面上的點隨時間變化描繪出來的曲線叫做相軌跡。相軌跡作...