0001 clear;
0002 warning('off','all');
0003 warning;
0004
0005 nsats = 4;
0006
0007 rho = 26570*1000;
0008
0009 niter = 10;
0010
0011 x0 = [ 0 0 6370 0 ]';
0012
0013
0014 delta_t = [ 10^-6 10^-7 10^-8 10^-9 10^-10 10^-11 10^-12 ];
0015 delta_t = fliplr(delta_t);
0016
0017 emf = zeros(niter,1);
0018 err = zeros(niter,1);
0019 maxEMF = zeros( length(delta_t), 1 );
0020 minEMF = zeros( length(delta_t), 1 );
0021 maxERR = zeros( length(delta_t), 1 );
0022
0023 distEMF = zeros( length(delta_t), niter );
0024 distERR = zeros( length(delta_t), niter );
0025
0026 pct = 0.95;
0027
0028 for x = 1:niter,
0029 for i = 1:length(delta_t),
0030 for j = 1:niter,
0031 sat = genRandomSatellites( nsats, rho, pct );
0032 [emf(j), err(j)] = pertubateClockError( sat, x0, delta_t(i), @solveNavEqns1 );
0033 end
0034 maxEMF(i) = max(emf);
0035 minEMF(i) = min(emf);
0036 maxERR(i) = max(err);
0037 end
0038 distEMF(1:length(maxEMF),x) = maxEMF;
0039 distERR(1:length(maxERR),x) = maxERR;
0040 end
0041
0042 meanEMF = zeros( length(delta_t), 1 );
0043 meanERR = zeros( length(delta_t), 1 );
0044
0045 for i = 1:length(delta_t),
0046 meanEMF(i) = mean(distEMF(i,1:niter));
0047 meanERR(i) = mean(distERR(i,1:niter));
0048 end
0049
0050 figure(4);
0051 semilogx(delta_t, meanEMF,'b-',delta_t, meanEMF,'ro');
0052 ylabel('cond(EMF)');
0053 xlabel('clock error');
0054 title('cond vs clock error');
0055
0056 figure(5);
0057 semilogx(delta_t, meanERR,'b-',delta_t, meanERR,'ro');
0058 ylabel('position error (m)');
0059 xlabel('clock error');
0060 title('position error vs clock error');
0061
0062 figure(6);
0063 semilogx(delta_t(1:3), meanERR(1:3),'b-', delta_t(1:3), meanERR(1:3),'ro');
0064 set(gca,'XTick', delta_t(1:3));
0065 ylabel('position error (m)');
0066 xlabel('clock error');
0067 title('position error vs clock error');