0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 function [mob] = init_mob(par)
0013
0014 rand('state',sum(100*clock));
0015 randn('state',sum(100*clock));
0016
0017
0018 switch(par.model)
0019
0020 case 1
0021 for m = 1:par.mob
0022
0023 mob(m).xy(1) = 2*par.r*(rand-0.5)+i;
0024
0025
0026 mob(m).msg_mcn(1:par.msg) = -1;
0027 mob(m).msg_std(1:par.msg) = -1;
0028
0029
0030 mob(m).buffer_std(1:par.tmax) = 0;
0031 mob(m).buffer_mcn(1:par.tmax) = 0;
0032 mob(m).buffer_self(1:par.tmax) = 0;
0033
0034
0035 if m <= par.nb_pedestrian
0036 mob(m).vstate = 1/20;
0037 mob(m).v(1) = par.pspeed*(-1)^m;
0038 else
0039 mob(m).vstate = 1/20;
0040 mob(m).v(1) = par.vspeed*(-1)^m;
0041 end
0042 end
0043
0044 case 2
0045 for m = 1:(par.mob)
0046
0047 mob(m).xy(1) = [2*par.r*(rand-0.5) (round(2*par.r/par.build_width*(rand-0.5))*par.build_width+par.build_width/2)]*i^m*[1 i]';
0048
0049
0050 mob(m).msg_mcn(1:par.msg) = -1;
0051 mob(m).msg_std(1:par.msg) = -1;
0052
0053
0054 mob(m).buffer_std(1:par.tmax) = 0;
0055 mob(m).buffer_mcn(1:par.tmax) = 0;
0056 mob(m).buffer_self(1:par.tmax) = 0;
0057
0058
0059 if m <= par.nb_pedestrian
0060 mob(m).vstate = 1/20;
0061 mob(m).v(1) = par.pspeed*i^m;
0062 else
0063 mob(m).vstate = 1/20;
0064 mob(m).v(1) = par.vspeed*i^m;
0065 end
0066 end
0067
0068 case 3
0069 for m= 1:par.mob
0070
0071 I = ones(3,1);
0072 I(ceil(3*rand),1) = 0;
0073 mob(m).xy(1) = par.dist_bs/2*sum(rand(3,1).*I.*exp([1:4:9]*i*pi/6)') + par.sites(ceil(rand*size(par.sites,2)));
0074
0075
0076 mob(m).msg_mcn(1:par.msg) = -1;
0077 mob(m).msg_std(1:par.msg) = -1;
0078
0079
0080 mob(m).buffer_std(1:par.tmax) = 0;
0081 mob(m).buffer_mcn(1:par.tmax) = 0;
0082 mob(m).buffer_self(1:par.tmax) = 0;
0083
0084
0085 if m <= par.nb_pedestrian
0086 mob(m).vstate = 1/20;
0087 mob(m).v(1) = par.pspeed*exp(2*i*pi*rand);
0088 else
0089 mob(m).vstate = 1/20;
0090 mob(m).v(1) = par.vspeed*exp(2*i*pi*rand);
0091 end
0092 end
0093
0094 end