資源簡介
卡爾曼濾波方法的GPS精密單點定位程序,包括各項改正
代碼片段和文件信息
%定義計算相對應的衛星位置函數,根據衛星號,最小時刻差來匹配出導航文件中對應衛星所在歷元num
function?[x?y?z?delt]=Getsatellite(yearmonthdayhourminutesecondprn)
global?SD
global?n
Time=hour*3600+minute*60+second;
for?i=1:n????????????%搜索某一歷元下觀測文件的衛星在導航文件中對應的衛星
????if?SD(i).prn==prn&&SD(i).year==year&&?SD(i).month==month&&?SD(i).day==day??
????????num=i;
????????time=SD(i).hour*3600+SD(i).minute+SD(i).second;
????????dt=abs(time-Time);???????????%某歷元下觀測文件中的時間與導航文件的時刻差
????????for?j=i+1:n
????????????time=SD(j).hour*3600+SD(j).minute*60+SD(j).second;
????????????DT=abs(time-Time);
????????????if?SD(j).prn==prn&&SD(j).day==day&&DT????????????????num=j;???????????????%導航文件中j歷元離觀測文件的某歷元時間更近,所以替換掉
????????????????dt=DT;
????????????end
????????end
????????break????????????????????????%找到了導航文件中的歷元號(num),退出循環
????else
????????continue
????end
end
%開始計算衛星位置,num為衛星此刻所在的歷元號
%1計算衛星運行的平均角速度N
U=398600441800000;
n0=sqrt(U/SD(num).a^3);
N=n0+SD(num).deltaN;?
%2計算規劃時間tk
?[tkdelt]=gettk(numTime);%調用gettk函數中計算出tk
%3計算觀測時刻衛星平近點角Mk
Mk=SD(num).M0+N*tk;
%4計算偏近點角Ek
e=SD(num).e;??????????%e?已經在此賦值了,下面就可一直用e表示了
Ek=Mk;
for?i=1:2????????????%可能這邊不太準確
????Ek=Mk+e*sin(Ek);
end
%5計算真近點角Vk
%?cvk=cos(Ek)-e;
%?svk=sqrt(1-e^2)*sin(Ek);
%?Vk=atan(svk/cvk);????????????
%?if?cvk<0
%?????Vk=Vk+pi;
%?else
%?????if?svk<0
%?????????Vk=Vk+pi*2;
%?????end
%?end
Vk=atan2(sqrt(1-e^2)*sin(Ek)cos(Ek)-e);
%6計算升交距角Ukw為近地點角
Uk=Vk+SD(num).w;
%7計算攝動改正項
du=SD(num).cuc*cos(2*Uk)+SD(num).cus*sin(2*Uk);
dr=SD(num).crc*cos(2*Uk)+SD(num).crs*sin(2*Uk);
di=SD(num).cic*cos(2*Uk)+SD(num).cis*sin(2*Uk);
%8計算經過攝動改正的升交距角uk、衛星半徑rk和軌道傾角ik
uk=Uk+du;?????????????????????????????
rk=SD(num).a*(1-e*cos(Ek))+dr;????????%rk為衛星矢徑
ik=SD(num).i0+di+SD(num).idot*tk;?????%ik為軌道傾角
%9計算衛星在軌道平面坐標系的坐標
xk=rk*cos(uk);
yk=rk*sin(uk);
%10計算觀測時刻升交點精度omg
We=0.0000729211567;
omg=SD(num).omg0+(SD(num).omgdot-We)*tk-We*SD(num).toe;
%11計算衛星在地心固定坐標系中的直角坐標系
x=xk*cos(omg)-yk*cos(ik)*sin(omg);
y=xk*sin(omg)+yk*cos(ik)*cos(omg);
z=yk*sin(ik);
return
????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2332??2010-04-14?15:22??GPS?單點定位各項改正和卡爾曼濾波\Getsatellite.asv
?????文件???????2361??2010-04-14?15:27??GPS?單點定位各項改正和卡爾曼濾波\Getsatellite.m
?????文件????????703??2010-04-14?12:57??GPS?單點定位各項改正和卡爾曼濾波\gettk.asv
?????文件????????539??2010-04-14?12:59??GPS?單點定位各項改正和卡爾曼濾波\gettk.m
?????文件????????321??2010-04-11?14:28??GPS?單點定位各項改正和卡爾曼濾波\GetTs.m
?????文件???????5426??2010-06-20?22:14??GPS?單點定位各項改正和卡爾曼濾波\read.asv
?????文件???????5427??2010-06-20?22:14??GPS?單點定位各項改正和卡爾曼濾波\read.m
?????文件???????2502??2010-06-20?20:59??GPS?單點定位各項改正和卡爾曼濾波\Read_N_Rinex.m
?????文件?????101327??2009-10-04?13:12??GPS?單點定位各項改正和卡爾曼濾波\shao2010.09n
?????文件????3177412??2010-04-23?17:18??GPS?單點定位各項改正和卡爾曼濾波\shao2010.09o
?????文件?????101910??2009-10-04?13:15??GPS?單點定位各項改正和卡爾曼濾波\shao2030.09n
?????文件????3193436??2009-10-09?21:12??GPS?單點定位各項改正和卡爾曼濾波\shao2030.09o
?????文件????????804??2010-06-04?16:57??GPS?單點定位各項改正和卡爾曼濾波\tansformation.m
?????文件???????6876??2010-06-20?22:15??GPS?單點定位各項改正和卡爾曼濾波\temp.txt
?????文件?????153646??2010-05-29?16:34??GPS?單點定位各項改正和卡爾曼濾波\test1.09o
?????文件????????432??2010-06-20?18:03??GPS?單點定位各項改正和卡爾曼濾波\XYZ2BLH.m
?????文件????????251??2010-06-20?18:00??GPS?單點定位各項改正和卡爾曼濾波\XYZ2NEU.m
?????文件?????155520??2010-05-29?20:44??GPS?單點定位各項改正和卡爾曼濾波\卡爾曼濾波后的坐標與真值偏差.txt
?????目錄??????????0??2010-08-15?22:16??GPS?單點定位各項改正和卡爾曼濾波
-----------?---------??----------?-----??----
??????????????6911225????????????????????19
- 上一篇:noise_estimate 非平穩噪聲估計
- 下一篇:交流電機spwm調速
評論
共有 條評論