|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于matlab GPS卫星仿真: k# Y) {# T/ O& l0 Q* r& K
6 n0 b# W7 {5 H! L) I( E2 a一、部分源代码
8 B; ?1 b7 J4 h# l9 J: G; ]9 n- clear;clc;close all;
- a=26560;
- e=0.02;
- E=[0:0.1:2*pi];
- x=a*(cos(E)-e);
- y=a*sqrt((1-e^2))*sin(E);
- z=0*E;
- TimeNow=0;
- global SatellitePosition
- SatellitePosition=ones(24,4);
- figure(1);
- DrawEarth(0);
- hold on;
- DtoR=2*pi/360;
- A1=[32.8 92.8 152.8 212.8 272.8 332.8 ];
- DrawSatelliteOrbit;
- Ctable=[10 50 160 260 ;
- 80 180 220 320 ;
- 10 130 250 340;
- 50 150 170 300;
- 100 210 310 340 ;
- 140 150 240 350;];
- Wx=ones(1,1);Wy=ones(1,1);Wz=ones(1,1);
- simple=1;
- for k=1:6
- A=A1(k)*DtoR;
- B=55*DtoR;
- for m=1:4
- C=Ctable(k,m)*DtoR+TimeNow*2*pi/24;
- x=a*(cos(C)-e);
- y=a*sqrt((1-e^2))*sin( C);
- z=0*C;
- R3=[cos(A) -sin(A) 0;
- sin(A) cos(A) 0;
- 0 0 1;];
- R1=[1 0 0;
- 0 cos(B) -sin(B);
- 0 sin(B) cos(B);];
- R2=[cos(C) -sin(C) 0;
- sin(C) cos(C) 0;
- 0 0 1;];
- L1=length(E);
- R312=R3*R1*R2;
- Ans=R312*[x;y;z;];
- Wx=[Wx Ans(1,:)];
- Wy=[Wy Ans(2,:)];
- Wz=[Wz Ans(3,:)];
- x1=Ans(1,:);
- y1=Ans(2,:);
- z1=Ans(3,:);
- DrawSatellite(x1,y1,z1,k);
- temp=k*m;
- SatellitePosition(temp,:)=[x1 y1 z1 1]
- hold on;
- end
- end
- EarthCenterPos=[0 0 0];
- UserPosition=[6400 0 0];
- for k=1:24
- Temp=SatellitePosition(k,1:3)-UserPosition;
- Dist1=Temp*Temp';
- Temp=UserPosition-EarthCenterPos;
- Dist2=Temp*Temp';
- Temp=SatellitePosition(k,1:3)-EarthCenterPos;
- Dist3=Temp*Temp';
- JiaoJiao=acos((Dist1+Dist2-Dist3)/2/sqrt(Dist1)/sqrt(Dist2));
- if(JiaoJiao<=pi/2)
- SatellitePosition(k,4)=0;
- end
- end
+ w P$ o' Y' K! C" K" j' g" x
# o+ G2 | o Z2 _
( {7 ]: d: ?4 _6 e8 Q
4 x/ L. ~6 }; T3 f# D二、运行结果
$ Q& n: r( G/ y0 l. S8 V: I# I! ?; p: U% Z1 p: ~" O
; E b' V" T& }* {# l0 l% o
9 g6 D" ~, X: i1 g9 f
: V3 V2 o, l, o) v8 K' g
8 g0 S) T- N7 k) E
/ a# n" j3 \3 L4 E1 |$ p& ^4 w0 e" M; N) I4 L6 B1 I
' K5 v1 h) a" m) n& i+ ] |
|