0001
0002 function varargout = plot_stat(dir)
0003
0004 nb_coverage_data = 20;
0005 abs_max_hop_nb = 20;
0006
0007 for coverage = 1:nb_coverage_data
0008
0009 pref.dir = dir;
0010 model = 2;
0011 mob = 1;
0012
0013 res.percentile_delay = 95;
0014 res.percentile_hop = 95;
0015
0016 res.models = { 'street' 'city' 'hexagonal' };
0017 res.model = char(res.models(model));
0018
0019 res.coverages = 5:5:100;
0020 res.coverage = res.coverages(coverage);
0021
0022 res.mobs = [20 50 100 200];
0023 res.mob = res.mobs(mob);
0024 res.tmax = 3600;
0025
0026 filename = sprintf('%s-%dmin-%02d%%cov-%dusr-stat',res.model,res.tmax/60,res.coverage,res.mob);
0027 tarname = [filename,'.tar.gz'];
0028 tarpath = [pref.dir,'/results/',tarname];
0029 matname = [filename,'.mat'];
0030 matpath = [pref.dir,'/temp/',matname];
0031 untar_cmd = ['tar -xvzf',' ',tarpath,' -C ',pref.dir,'/temp/'];
0032
0033 disp([tarname,' : untaring']);
0034 [s,w] = unix(untar_cmd);
0035 if (s == 0)
0036 disp([tarname,' : untargz ok']);
0037 disp([matname,' : loading']);
0038 load(matpath);
0039 global_stats(coverage) = stats;
0040 global_par(coverage) = par;
0041 disp([matname,' : loaded']);
0042 disp([matname,' : removing',]);
0043 [s_rm,w_rm] = unix(['rm ',matpath]);
0044 if ( s_rm == 0)
0045 disp([matname,' : removed']);
0046 else
0047 disp(['error while removing ',matname]);
0048 end
0049 end
0050
0051
0052
0053 network_coverage(coverage) = res.coverages(coverage);
0054 network_time(:,coverage) = [1:global_par(coverage).tmax]';
0055
0056 network_users = global_par(coverage).mob;
0057 network_lambda = global_par(coverage).lambda;
0058 network_tmax = global_par(coverage).tmax;
0059 network_maxbuffer = network_users*network_lambda*network_tmax;
0060
0061
0062
0063 delay_pdf(:,coverage) = global_stats(coverage).delay_pdf';
0064
0065 delay_cdf(:,coverage) = global_stats(coverage).delay_cdf';
0066
0067 delay_percentile(coverage) = max(find(delay_cdf(:,coverage)<=res.percentile_delay/100));
0068
0069
0070
0071
0072
0073 maxbuffer(:,coverage) = global_stats(coverage).maxbuffer';
0074
0075
0076 maxbuffer_size(:,coverage) = [0:network_maxbuffer]';
0077 maxbuffer_pdf(:,coverage) = histc(global_stats(coverage).maxbuffer,[0:network_maxbuffer])';
0078
0079
0080 maxbuffer_cdf(:,coverage) = cumsum(maxbuffer_pdf(:,coverage))./network_users;
0081
0082
0083 min_buffer(coverage) = min(maxbuffer(:,coverage));
0084 max_buffer(coverage) = max(maxbuffer(:,coverage));
0085 avg_buffer(coverage) = mean(maxbuffer(:,coverage));
0086 std_buffer(coverage) = std(maxbuffer(:,coverage));
0087 stdmax_buffer(coverage) = avg_buffer(coverage) + std_buffer(coverage);
0088 stdmin_buffer(coverage) = avg_buffer(coverage) - std_buffer(coverage);
0089 buffer(:,coverage) = [min_buffer(coverage); stdmin_buffer(coverage); avg_buffer(coverage); stdmax_buffer(coverage); max_buffer(coverage)];
0090
0091
0092
0093
0094 msg_nb(coverage) = global_par(coverage).msg;
0095 hops(:,coverage) = [0:1:abs_max_hop_nb-1]';
0096
0097 hop_pdf(:,coverage) = hist(global_stats(coverage).hop_nb,[1:abs_max_hop_nb])';
0098
0099 hop_cdf(:,coverage) = cumsum(hop_pdf(:,coverage))./msg_nb(coverage);
0100
0101 hop_percentile(coverage) = max(find(hop_cdf(:,coverage)<=res.percentile_hop/100))-1;
0102
0103 clear par stats;
0104 end
0105
0106 legendcoverages = {'05%' '10%' '15%' '20%' '25%' '30%' '35%' '40%' '45%' '55%' '60%' '65%' '70%' '75%' '80%' '85%' '90%' '95%' '100%'};
0107
0108
0109 scrsz = get(0,'ScreenSize');
0110 h = figure(1);
0111 set(h,'Position',scrsz);
0112
0113 subplot(3,3,1)
0114 plot(network_time,delay_pdf);
0115 lgd = legend(legendcoverages,1);
0116
0117 axis([0 res.tmax/10 0 mean(max(delay_pdf))/5])
0118 grid ('on')
0119 xlabel('relative delay in sec')
0120 ylabel('nbr msg delivered')
0121 title (['pdfs of the relative delay for different coverages'])
0122
0123 subplot(3,3,2)
0124 plot(network_time,delay_cdf);
0125 lgd = legend(legendcoverages,1);
0126
0127 axis([0 res.tmax/10 0 1])
0128 grid ('on')
0129 xlabel('relative delay in sec')
0130 ylabel('nbr msg delivered / total nb msg generated')
0131 title (['cdfs of the relative delay for different coverages'])
0132
0133
0134 subplot(3,3,3)
0135 plot(network_coverage,delay_percentile);
0136 axis([0 100 0 1.1*max(delay_percentile)])
0137 grid ('on')
0138 xlabel('coverage in %')
0139 ylabel('relative delay in sec')
0140 title ([num2str(res.percentile_delay),'% percentile of the relative delay'])
0141
0142
0143 subplot(3,3,4)
0144 plot(maxbuffer_size,maxbuffer_pdf);
0145 lgd = legend(legendcoverages,1);
0146
0147 axis([0 1.1*max(max(max_buffer)) 0 network_users])
0148 grid ('on')
0149 xlabel('maximum nb of msg in buffer')
0150 ylabel('nb of users')
0151 title ('pdfs nb of users wrt max nb of msg in buffer')
0152
0153 subplot(3,3,5)
0154 plot(maxbuffer_size,maxbuffer_cdf);
0155 lgd = legend(legendcoverages,1);
0156
0157 axis([0 1.1*max(max(max_buffer)) 0 1])
0158 grid ('on')
0159 xlabel('maximum nb of msg in buffer')
0160 ylabel('nb of users / total nb of users')
0161 title ('cdfs nb of users wrt max nb of msg in buffer')
0162
0163 subplot(3,3,6)
0164 plot(network_coverage,buffer);
0165 legend('minimum','average - std','average','average + std','maximum',1);
0166 axis([0 100 0 1.1*max(buffer(5,:))])
0167 grid ('on')
0168 xlabel('coverage in %')
0169 ylabel('max buffer/simulation (in number of packets)')
0170 title (['maximum buffer occupation during simulation'])
0171
0172 subplot(3,3,7)
0173 plot(hops,hop_pdf./100);
0174 lgd = legend(legendcoverages,1);
0175
0176 axis([0 abs_max_hop_nb 0 1.1*max(max(hop_pdf))/100])
0177 grid ('on')
0178 xlabel('number of hops')
0179 ylabel('nb msg delivered (x100)')
0180 title (['pdfs of msg delivered function of the nb of hops'])
0181
0182 subplot(3,3,8)
0183 plot(hops,hop_cdf)
0184 lgd = legend(legendcoverages,1);
0185
0186 axis([0 abs_max_hop_nb 0 1])
0187 grid ('on')
0188 xlabel('number of hops')
0189 ylabel('nb msg delivered / total nb msg delivered')
0190 title (['cdfs of msg delivered function of the nb of hops'])
0191
0192 subplot(3,3,9)
0193 plot(network_coverage,hop_percentile);
0194 axis([0 100 0 1.1*max(hop_percentile)])
0195 grid ('on')
0196 xlabel('coverage in %')
0197 ylabel('number of hops')
0198 title ([num2str(res.percentile_hop),'% percentile of the number of hops'])
0199
0200 suptitle(sprintf('Results for the %s model with %dmin simulation and %d users',res.model,res.tmax/60,res.mob))
0201