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

LabVIEW Discussion :

Simulation d'une équation différentielle


Sujet :

LabVIEW

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Simulation d'une équation différentielle
    Bonsoir,
    je veux calculer l'équation suivante: sin(x+i)=k sin(x)-sin(x-i)
    avec k=2cos(i) et i=1:N et N c'est le nombre d'échantillons
    je veux calculer le sinus à chaque itération et apres voir le résultat sur un graphe.
    je suis une débutante en LabView, si quelqu'un pourra me guider un peu
    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 53
    Points : 58
    Points
    58
    Par défaut
    Il y a plusieurs façon de faire, je suppose que X sont tes échantillons. Est ce que tu récupères tes échantillons sous forme de tableau ? Je pense que oui car tu parle en N et en i.
    La plus simple est d'utiliser la boite de calcul (structure,boite de calcul) et tu écris ton programme dans un langage qui ressemble au C (instruction FOR)
    (je suppose que tu connais le C, si ce n'est pas le cas c'est un autre pb).
    Tu définis ton entré (X) (cliques droit définir une entrée) que tu relies à ton tableau et tu définies tes sorties (sin) (cliques droit définir une sortie)) que tu relies à ton graphe.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2009
    Messages : 21
    Points : 12
    Points
    12
    Par défaut simulation d'une equation differentielle
    Bonjour,
    Merci d'abord pour votre réponse, l'équation que j'avais au début c'était:
    d²y/dt=-w²*y
    sous la forme discrete, on peut l'écrire comme suit:
    D(D(y))=(yn+1 - yn)- (yn -yn-1)
    =-w²*yn

    --> yn+1 = k*yn -yn-1 si on prend y = sin alors sin(n+1)=k*sin(n)-sin(n-1)
    cette derniere équation peut générer l'echantillon suivant à partir de deux echantillons précedents.
    j'ai trouvé la boite de calcul que vous m'avez indiqué et j'ai pas des problèmes avec C, concernant l'entrée que je dois relier avec un tableau, si vous pouvez m'expliquer encore car j'ai pas de valeurs à remplir dans un tableau j'en ai que cette équation
    a+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 53
    Points : 58
    Points
    58
    Par défaut
    Dans ce cas là il faudra que tu utilises les registres à décalage sous LV. Sur ta boucle (for ou while) où il y a ta chaîne d'acquisition (récupération de ta valeur I) il faudra ajouter un registre à décalage (clic droit sur ta boucle et "ajouter un registre à décalage"), cela te mets deux connexions sur le tracé de ta boucle (un à gauche et un à droite). Ensuite tu connectes ton échantillon [I] à celle de droite. Normalement les deux connexions (registres à décalage se mettent à la couleur de ta variable (orange pour des double, bleu pour des entiers ...). La connexion de gauche devient alors ton échantillon [I-1] . Tu ajoutes un autre registres à décalage où tu connectes ton échantillon [I-1] à la connexion de droite de ton second registre à décalage, la connexion de gauche devient alors ton échantillon [I-2] et ainsi de suite si tu veux le faire sur plusieurs échantillons. N'oublies pas de les initialiser à la valeur que tu souhaites (clic droit sur les connexions de gauche "créer" puis"constante") et ces constantes doivent être du côté gauche de ta boucle (en dehors de ta boucle). et ensuite tu relies tes différents Registres à décalage à ta boîte de calcul.

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Salut,
    c'est effectivement la bonne solution. Mais pour avoir le I-2, il n'est pas nécessaire de créer un 2ème registre à décalage. Il suffit de "tirer" le registre de gauche vers le bas. Cela va rajouter le I-2.
    Sinon il faut aussi bien l'initialiser, etc.
    L'ami des tout petits

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 53
    Points : 58
    Points
    58
    Par défaut
    Qu'est ce que tu appelles "tirer" celui de gauche vers le bas. Comment le [i-2] pourrait il se créer ? Je n'ai pas compris.

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Salut,
    c'est un peu (exactement en fait) comme les build array, index array, etc... Tu peux rajouter des entrées en "tirant" la structure vers le bas, comme une fenêtre windows. Je sais pas comment expliquer mieux...
    Pour les RàD, une nouvelle flèche va se créer sous l'autre (en y restant collée). Et elle correspond à la valeur antérieure. Tu peux aller encore plus loin si nécessaire.
    L'ami des tout petits

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 53
    Points : 58
    Points
    58
    Par défaut
    Merci pour cette petite astuce. J'en apprend tous les jours sur ce forum. C'est super.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/02/2010, 18h04
  2. Réponses: 2
    Dernier message: 22/11/2007, 14h58
  3. Réponses: 8
    Dernier message: 08/04/2007, 01h38
  4. Résolution d'une équation différentielle
    Par ramrouma dans le forum MATLAB
    Réponses: 1
    Dernier message: 12/02/2007, 14h11
  5. Réponses: 1
    Dernier message: 08/12/2006, 17h13

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