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