IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Discussion :

[GloMoSim] Besoin de doc réseaux de capteurs


Sujet :

Développement

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 21
    Points
    21
    Par défaut [GloMoSim] Besoin de doc réseaux de capteurs
    Bonjour à tous,

    Je dois étudier le simulateur pour réseaux sans fil GLOMOSIM, dans le cas particulier des réseaux de capteurs... Je bute, je ne trouve pas de doc intéressante, pas assez d'infos ni de détails...
    Si vous pouviez m'indiquer des liens utiles, ou des bouquins adéquats...
    Merci bien!

  2. #2
    Futur Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Modèle de mobilité
    bonjour,

    Moi aussi je dois implementer un modèle de mobilité avec GloMoSim, alors si je trouve de la doc interessante je vais te l'envoyer, et stp de ton coté si tu trouve quelque chose d'interessant sur GloMoSim ne m'oubilie surtout pas

    mK

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 8
    Points : 10
    Points
    10
    Par défaut modele de mobilité gauss markov
    bonjour,j'ai un probleme dans l'algorithme de ce modele,
    (l'orsque le x et le y hors limite )dans les document j'ai lit qu'il 'faut mise a jour la direction moyen mais l'orsque j'ai fait ça je trouve aussi des valeur hors limite

    voila mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    #include <stdlib.h>
    #include <stdio.h>
    #define DEUX_PI ( 2.0 * 3.141592653589793238462643383279502884197169399375 ) // PI x 2
    #include <math.h>
    #include <conio.h>
    //function on uniform random variable 
    double uniform_random_variable (double a, double b)
    {
    return ( rand()/(double)RAND_MAX ) * (b-a) + a;
    }
    //function on normal random variable
    /**
     * Retourne un nombre pseudo-aléatoire selon une loi normale(Distribution gaussienne) de paramètres mu et sigma
     * @param mu moyenne (espérance mathématique) de la distribution
     * @param sigma écart-type de la distribution 
     */
    double normal_random_variable(double mu, double sigma) 
    {
     
       // On récupère deux nombres pseudo-aléatoires indépendants selon une loi uniforme sur l'intervalle [0;1]
            double rand_a =uniform_random_variable (0,1);
            double rand_b  =uniform_random_variable (0,1);
     
             double randNumNorm = sqrt(-2.0*log(rand_a))*cos(DEUX_PI*rand_b);
     
            return (mu + sigma * randNumNorm);
    }
    
    main ()
    {
    int bound_x=1000;
    int bound_y=1000;
    int tm_sim=200;//s
    int pas_tm=1;//s
    double alpha=0.75;//[0..1]
    double mean_velocity=10;//m/s
    double mean_direction=DEUX_PI/4;//radian
    double normal_velocity;
    double normal_direction;
    int nbr_stp=(int)ceil(tm_sim/pas_tm);//printf("%lf ",ceil(tm_sim/pas_tm));
    int t=1;
    double vct_velocity[tm_sim+1];
    double vct_direction[tm_sim+1];
    /*int*/ double vct_x[tm_sim+1];
    /*int*/double vct_y[tm_sim+1];
         
    //mean_velocity=uniform_random_variable (0,10);printf("%lf ",mean_velocity);//average speed[0..1]
    //mean_direction=uniform_random_variable (0,DEUX_PI);//average direction[0..2pi]
    vct_velocity[0]=mean_velocity;
    vct_direction[0]=mean_direction;printf("%lf ",mean_direction);
    vct_x[0]=uniform_random_variable(0,bound_x); printf("%lf ",vct_x[0]);
    vct_y[0]=uniform_random_variable(0,bound_y); printf("%lf ",vct_y[0]);
    while(t<=nbr_stp)
       { normal_velocity=normal_random_variable(0,1);printf("%lf ",normal_velocity);//mean=0,std dev=1
         normal_direction=normal_random_variable(0,1);printf("%lf ",normal_direction);//mean=0,std dev=1
       //  Calculate the NEW velocity, direction using the Gauss-Markov formula
         vct_velocity[t]=alpha*vct_velocity[t-1]+(1-alpha)*mean_velocity+sqrt(1-(alpha*alpha))*normal_velocity;printf("%lf ",vct_velocity[t]);          
         vct_direction[t]=alpha*vct_direction[t-1]+(1-alpha)*mean_direction+sqrt(1-(alpha*alpha))*normal_direction;printf("%lf ",vct_direction[t]);
       //  Calculate the NEW position using the previous position 
         vct_x[t]=/*(int)round(*/vct_x[t-1]+(vct_velocity[t]*cos(vct_direction[t]))/*)*/; printf("x[%d]=%lf",t,vct_x[t]);               
         vct_y[t]=/*(int)round(*/vct_y[t-1]+(vct_velocity[t]*sin(vct_direction[t]))/*)*/;printf("y[%d]=%lf \n",t,vct_y[t]);
       //  if the position is out of range so you have to change the mean direction  
         
       /*  if(vct_x[t]<10 && vct_y[t]<10) {mean_direction=DEUX_PI/8;}
              else if(vct_x[t]<10){mean_direction=0;} 
                 else if(vct_y[t]<10){mean_direction=DEUX_PI/4;} 
         if(vct_x[t]<10 && vct_y[t]>(bound_y-10)) {mean_direction=(21/24)*DEUX_PI;}//315
              else if(vct_Y[t]>(bound_y-10)){mean_direction=(3/4)*DEUX_PI;} //270
         if(vct_y[t]>(bound_y-10)&&vct_x[t]>(bound_x-10)){mean_direction=(5/8)*DEUX_PI;}//225
              else if(vct_x[t]>(bound_x-10)){mean_direction=DEUX_PI/2;}
         if(vct_y[t]<10)&&vct_x[t]>(bound_x-10)){mean_direction=(3/8)*DEUX_PI;}//135*/
        /* */if(vct_x[t]<10 && vct_y[t]<10) {mean_direction=DEUX_PI/8;}
         else if(vct_x[t]<10 && vct_y[t]>(bound_y-10)) {mean_direction=(21/24)*DEUX_PI;}//315
         else if(vct_y[t]>(bound_y-10)&& vct_x[t]>(bound_x-10)){mean_direction=(5/8)*DEUX_PI;}//225
         else if(vct_y[t]<10 && vct_x[t]>(bound_x-10)){mean_direction=(3/8)*DEUX_PI;}//135
         
              else if(vct_x[t]<10){mean_direction=0;} 
              else if(vct_y[t]<10){mean_direction=DEUX_PI/4;} 
         
              else if(vct_y[t]>(bound_y-10)){mean_direction=(3/4)*DEUX_PI;} //270
         
              else if(vct_x[t]>(bound_x-10)){mean_direction=DEUX_PI/2;}
               
     //     if(vct_x[t]<10 || vct_x[t]>(bound_x-10)){mean_direction=(DEUX_PI/2)-mean_direction;}//vct_direction[t]=vct_direction[t]+(DEUX_PI/2);
          //  vct_x[t]=/*(int)round(*/vct_x[t-1]+(vct_velocity[t]*cos(vct_direction[t]));}
            
       //      if(vct_y[t]<10 || vct_y[t]>(bound_x-10)){mean_direction=-mean_direction;}//vct_direction[t]=vct_direction[t]+(DEUX_PI/2)
        //    vct_y[t]=/*(int)round(*/vct_[t-1]+(vct_velocity[t]*cos(vct_direction[t]));}   
       
         printf("%lf",mean_direction);
         t++;
        } 
       FILE * pFile;
       pFile = fopen ("myfile.txt","w");
       for (int i=0;i<=(int)round(tm_sim/pas_tm);i++){
           fprintf(pFile,"%lf\t%lf\n",vct_x[i],vct_y[i]);//,ix[%d]=y[%d]=i,
           }
         fclose (pFile);  
    getch();
    return 0;
         
    }
    aide moi s.v.p.


    merci d'avance.

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 8
    Points : 10
    Points
    10
    Par défaut modele de mobilité
    un aide s.v.p

Discussions similaires

  1. MCD réseaux de capteurs
    Par karamokooo dans le forum Modélisation
    Réponses: 0
    Dernier message: 18/02/2010, 01h14
  2. [Focal] Langage de programmation fonctionnelle Focal : besoin de doc
    Par djerbir dans le forum Langages fonctionnels
    Réponses: 4
    Dernier message: 14/12/2007, 23h53
  3. Besoin de docs sur TTreeview
    Par cyrilleT dans le forum Delphi
    Réponses: 2
    Dernier message: 28/06/2007, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo