Sinus a fréquence variable

Bonjour à tous,
Je cherche à générer un signal sinusoidale à fréquence variable à partir du FPGA d'un cRio, mais rien n'y fais, le vi "Sine Wave Generator" ne marche pas...
Quelqu'un connaitrait-il une alternantive à ce VI?
Cordialement,
Nathan
Résolu !
Accéder à la solution.

Ah mince j'avais oublier ce post ^^
Au final j'ai résolu mon probleme, je ne sais pas pourquoi ca ne marchait pas mais j'ai trouvé une alternative qui fonctionne à l'aide du VI Générateur de fonction élémentaire disponible dans la palette génération de waveform.
A bientot
Nathan

Similar Messages

  • Générateur de sinus à fréquence variable

    Bonjour à tous,
    Comme le titre l'indique, je cherche à mettre en oeuvre un générateur de tension sinusoidale à fréquence variable. J'ai actuellement réussi un créer une partie de mes attentes, c'est à dire que je génère bien une tension sinusoidale variant d'une fréquence F1 à une fréquence F2 dans un temps imparti. Cependant j'aimerai, une fois ma fréquence arrivée à ma valeur F2 décrémenter vers ma fréquence F1 . ( F1-F2-F1-F2 etc selon le nombre de cycle que je souhaite réaliser .)
    Je vous joint le Vi que j'ai réalisé, Pour ma part je pense que c'est au niveau du bloc "chirp" que la modification doit-etre réalisée mais je après diverses tantatives je n'y arrive point..
    Cordialement
    Pièces jointes :
    test avec DAQ assistant 2.vi ‏50 KB
    Chirp.png ‏1320 KB

    Bonjour Geoff54,
    Merci d'avoir posté sur le forum NI.
    Je ne suis pas sur d'avoir bien compris, votre signal est-il simplement un générateur sinusoïsale dont l'amplitude décrémente en gardant constant l'offset ou votre signal doit il avoir la même forme que celui dans le VI ci joint?
    Pourriez vous éventuellement nous renvoyer votre projet (il manque une dépendance).
    Cordialement.
    P Denis
    National Instruments
    Pierre_D
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    LabVIEW Tour
    Journées Techniques dans 10 villes en France, du 4 au 20 novembre 2014
    Pièces jointes :
    test.zip ‏12 KB

  • Acquisition fréquence variable et basse fréquence

    Bonjour,
    Je suis débutant en LV et dois mesurer la vitesse de rotation d'un moteur qui ralenti. Pour cela, un capteur de vitesse
    me délivre un signal traité par une carte électronique. Un signal carré est issu de cette carte
    dont la fréquence est image de la vitesse de rotation du moteur (160 Hz => 1600 tr/min et 0 Hz => 0 tr/min).
    La carte électronique apporte quelque fluctuation de fréquence, j'utilise donc deux compteur large gamme
    pour mesurer la fréquence.
    Mon problème est le suivant:
    Mon objectif est d'avoir en "temps réel" ( juste une indication, pas de "vrai" temps réel)
    sur ma face avant la vitesse de ralentissement de mon moteur. Cela fonctionne lorsque celui ci tourne
    jusqu'à 150 tr/min environ (15 Hz) en dessous mon VI bloque et je viens même dépasser le time out fixé lors
    de l'acquisition. Il faudrai au moins que j'observe le ralentissement jusqu'à 10 tr/min.
    Si quelqu'un a une idée pour pallier ce problème.
    Par avance merci pour votre aide
    Vincent V.
    Pièces jointes :
    Ralentissement.vi ‏83 KB

    C'est toujours le même soucis quand on a (le grand plaisir) de rencontrer un débutant : 
    1) un Block Diagramme qui fait plusieurs écrans
    2) des dizaines de variables locales partout, partout 
    3) ... bravo !!!! ... tu es passé a côté de la 3eme chose qui caractérise un débutant .... les structures séquences    il n'y en a pas (ouf)
    Pourquoi utiliser toutes ces variables locales ???
    ... alors que tu disposes sur le Diagramme de toutes les informations .
    Pourquoi ne cables-tu pas directement sur le terminal correspondant ? (au llieu de RE-lire l'info via une variable locale)
    Je ne vois aucune gestion de l'erreur sur ton Diagramme.
    Tu as plusieurs noeuds de propriété "de réinitialisation" ... ces noeuds sont flottant !!!
    Qui te dis que cette "réinitialisation" se fera en début d'exécution et pas à la fin ?
    Avec labview, le séquencement du code se fait via le "flux de données" .... sans flux de données l'ordre d'exécution est inconnu.
    Cabler les entrées/sorties d'erreur permet d'établir un flux de données.
    La première chose :
    réduire ton code à UN écran (au passage, aligne, fait "du propre")
    supprime tes variables locales.
    crée un flux de données pour tes noeuds de propriété.

  • Lire une fréquence variable, parfois nulle

    Bonjour,
    Je voudrais lire une fréquence avec DAQmx, sur une carte PCI 6624 (compteurs).
    J'arrive à le faire simplement avec le DAQ Express, mais le problème est que cette fréquence varie au cours du temps, et peut, dans certains cas, être nulle. Quand elle est nulle, j'ai une erreur comme quoi le timeout est dépassé.
    Comment puis-je faire pour résoudre ce problème ? Avec les noeuds de propriété ?
    Je voudrais pouvoir lire la fréquence en permanence, et savoir quand elle est nulle, sans avoir d'erreur...
    Merci d'avance.

    Reliez le VI que j'avais posté ici  à la sortie du cluster d'erreur de votre VI Express en définissant son entrée Erreur à annuler selon l'erreur en cas de fréquence nulle (-200474 si je ne m'abuse). Alternativement, le même résultat peut être obtenu en utilisant General Error Handler.vi en définissant ses entrées de la manière suivante :
    exception action : cancel error on match
    exception code : code de l'erreur à ignorer
    La capture d'écran ci-dessous illuste les deux variantes :
    Donnez-moi des nouvelles si le VI Express devait tout de même afficher une boîte de dialogue avec l'erreur et je vous indiquerai alors les opérations suivantes à réaliser.
    Message Edité par JB le 04-07-2008 10:11 AM
    Attachments:
    Example_VI_BD2.png ‏4 KB

  • Parallélisme FPGA - Génération / Echantillonnage

    Bonjour à tous,
    Je travail actuellement sur une application sensé générér un signal sinusoïdale à fréquence variable, qui sera alors envoyé dans un procédé de commande. Cette même application doit alors échantillonnée la sortie de ce procédé.
    Les deux partie marche parfaitement séparement, mais une fois ensemble, je constate des sauts sur l'oscilloscope du sinus généré ainsi que sur l'échantillonnage...
    J'ai essayer de jouer sur les fréquences d'échantillonnage, mais rien n'y fais...
    Quelqu'un aurait une idée de où le probleme peut venir?
    Cordialement,
    Nathan
    P.S.: Vous trouverez en piece jointes mes codes, c'est peut etre plus pratique pour dépanner
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Regul Num.zip ‏389 KB

    En général c'est une jolie preuve par 3 selon la profondeur de la FIFO, la fréquence d'acquisition FPGA (ou génération), et le temps de cycle côté RT.
    Exemple : si j'acquiers dans le FPGA 1 échantillon toutes les 10µS, et je l'envoie dans ma FIFO DMA, côté RT je dois faire en sorte de lire 1000 éléments toutes les 10ms (arbitrairement) (à condition d'avoir une FIFO FPGA suffisamment grande pour qu'elle envoie les données vers le controleur au fil de l'eau sans en perdre).
    Dans la pratique, pour lire ces 1000 éléments, il y a plusieurs méthodes, l'essentiel est de ne pas perdre de données, de ne pas avoir un CPU à 100% et de ne pas laisser les FIFOs se remplir.
    Une illustration complète dans le classique cRIO Dev Guide :
    - http://www.ni.com/compactriodevguide/f/
    La leçon 3 contient notamment un exemple.
    --Eric
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer

  • DAQmx : Synchronisation de deux compteurs

    Bonjour,
    Je commence à travailler avec DAQmx et je tombe sur un os. De multiples recherches un peu partout n'ayant pas résolu mon problème (pourtant simple), je me décide à envoyer un message sur ce forum.
    J'ai un boîtier USB-6212 et je souhaite générer deux trains d'impulsions (en fait, une horloge et une impulsion de fréquence variable). L'impulsion a une durée égale à une demie période d'horloge et doit impérativement avoir son front montant alors que l'horloge est à son état bas.
    Pour cela, je pensais utiliser les deux compteurs ctr0 et ctr1. J'arrive parfaitement à générer l'horloge et l'impulsion, mais seulement en mode de cadencement "Implicite (compteur)" et évidemment, elles ne sont pas synchronisées entre elles. Quand j'essaye de passer en mode "Horloge d'échantillonage", j'ai droit à deux erreurs selon le cas: l'une qui me dit que je n'ai pas le droit d'utiliser le mode "échantillons continus" et que je dois utiliser "point à point", et l'autre qui me dit que "point à point" n'est pas supporté.
    Connaissez-vous un moyen de contourner le problème ?
    Je joins mon vi (qui ne marche pas...).
    Merci de votre aide et bonne soirée !
    JB
    Pièces jointes :
    Essai_Synch.vi ‏29 KB

    Bonjour et merci de ta réponse.
    Je ne suis pas sûr de bien comprendre comment faire ce que tu dis. DAQmx a encore beaucoup de zones d'ombres pour moi... 
    Dans le vi joint, j'ai essayer de faire ce que tu dis. Il fonctionne, mais les deux pulses ne sont pas synchrones.
    Est-ce que STP tu pourrais le regarder rapidement et me dire si c'est bien ce à quoi tu pensais ?
    Merci beaucoup !
    JB
    Pièces jointes :
    Essai_Sync_3.vi ‏25 KB

  • Erreur de calcul amplitude FFT à f = 0Hz

    Avec l'objet sousMesuresSpectrales [subSpectralMeasurements.vi] de la librairie LabView, sous LabVIEW7.1\vi.llb\express\express analysis\SpectralBlock.llb, je constate un problème de calcul sur la FFT pour fréquence = 0 Hz en amplitude.
    Dans mon application, j'ai exporté ce VI express pour n'utiliser que certaines de ses fonctionnalités, en autres propriétés : "Paramètres du signal" pour afficher sa FFT.
    Normalement, à la fréquence = 0Hz, l'amplitude max et efficace doivent être identiques et correspondre à la composante continue i.e DC value. Ce résultat n'est pas observé. J'observe le rapport racine de 2 habituel pour une valeur pic ou RMS à f = 0Hz.

    A présent , je réussis à mesurer mon accélération, obtenir le déplacement et ma vitesse ( pour tenir compte du gabari ) et je réalise un singnal sinusoidale de fréquence variable ! Dois-je utiliser la fonction PID pour mon asservissement ?
    Je ne sais également pas comment tenir compte des points de cassures de mon "gabari" présent en pièce jointe auparavant ? Help

  • Comment desactiver la création d'un compte mail en imap, et le configurer en pop pour ne pas perdre les mails du serveur

    Bonjour,
    pour parametrer un compte mail, le choix pop/imap ne s'offre plus et le compte mail ainsi créé se fait automatiquement en imap.
    Commet faire pour eviter que lorsque j'efface un message de mon iphone il soit effacé aussi du serveur ?
    il n'y a plus d'option effacer du serveur : jamais  comme sur les versions precedentes.
    merci d'avance si qq a une solution

    Bonjour Florent_A,
    Merci déja de t'interesser à mon sujet, pour répondre à ta question la tempo de 50 ms dans la boucle for n'a pas d'intéret particulier je l'ai supprimé, cependant le problème est toujours le même.
    certe partie consiste à générer un tableau d'amplitude et de fréquence à partir des points de cassures définis auparavant.
    Je résume : 
    1°) définition du profilé ( points de cassures principaux)
    2°) Bloc Sweep sine ( construit un tableau pour générer les amplitude et fréquences intermédiaires entre ces points de cassures, plus le paramètre "fréquency line" est important plus le nombre de points générés sont conséquents)
    Mon système est assez simple voici ma boucle de régulation : 
    Je réalise un asservissement, j'ai une génération d'un signal sinusoidale de fréquence variable et une mesure d'amplitude à l'aide d'un accéléromètre.
    cordialement

  • Mon ipod s'arrete au bout de quelques secondes de lecture, avec la mise en veille de l'ecran. que faire pour que la musique continue?

    Bonjour,
    J'ai changé d'ipod à Noel, et j'ai reçu comme cadeau le nouvel ipod nano 6è generation.
    Il fonctionnait trés bien jusque hier quand il s'est mis à s'arrêter au bout de quelques secondes avec la mise en veille de l'écran!
    Que faut-il faire pour que mon ipod fasse ce que j'en attends : lire de la musique en continu?
    Merci de m'aider car je ne sais pas quoi faire!
    J'ai déjà essayé les commandes de réglage de la veille, sans véritable succès!
    J'ai réinstallé le logiciel sur itune, restauré puis synchronisé, aucune évolution...
    Rien n'y fait, je suis bloqué avec cette panne!
    D'avance, merci!

    A présent , je réussis à mesurer mon accélération, obtenir le déplacement et ma vitesse ( pour tenir compte du gabari ) et je réalise un singnal sinusoidale de fréquence variable ! Dois-je utiliser la fonction PID pour mon asservissement ?
    Je ne sais également pas comment tenir compte des points de cassures de mon "gabari" présent en pièce jointe auparavant ? Help

  • Nombres d'échantillons

    Bonjour,
    je viens vers vous car je bloque sur une question d'échantillonage..
    Je dispose d'un boitier NI USB 6211 ( 16 bit , 250 kS/s ) , j'utiliserai son entrée analogique et sa sortie analogique aux mêmes fréquences . La fréquence maximale que je serai amené à mesurée est de 15 Hz et au maximum 7500 Hz.
    Mon entrée analogique récéptionne une accélération et ma sortie analogique génère une tension sinusoidale à fréquence variable.
    Quelle formule concrète permet de définir le nombre d'échantillons à prélever ?
    Cordialement
    Résolu !
    Accéder à la solution.

    Bonjour Geof,
    Je principe est d'utiliser le théorème de Nyquist. Celui ci indique que pour retrouver être capable de récupérer la fréquence de ton signal, il faut échantillonner à une fréquence égale au minimum à deux fois la fréquence la plus élevée de ton signal.
    >> Sampling Theorem
    >> Bandwidth, Sample Rate, and Nyquist Theorem
    Cela permet de récupérer la bonne fréquence/période de ton signal. Pour récupérer la bonne forme du signal, il faudra augmenter cette proportion. En principe, il est conseillé d'échantillonnée à une fréquence de 5 à 10 fois la fréquence max de ton signal.
    Cela répond-il à ta question?
    Bonne journée,
    M-Junior

  • Comparaison message en boucle

    salut les amis!
    alors je voulais faire un teste toute simple, ce teste c'est comparer deux réel! et faire un test si la deuxieme valeur depasse la premiere un messgae s'affiche! et ceci en boucle puisque un des réel est variable!!
    j'ai fait comme indique l'image ci-joint!  et ca n'a pas marché!
    des suggéstions? et merci  
    Pièces jointes :
    test.PNG ‏7 KB

    oui, plus "propre" ... mais la propreté n'est pas la finalité de se passer des "locales".
    Une variable locale est un "objet" qui se trouve "en dehors" du flux de données.
    Tu ne maîtrises pas "le moment" où la valeur du Contrôle sera effectivement dupliquée dans sa variable locale correspondante.
    La variable locale est-elle "à jour", ne l'est-elle pas ? ... tu ne peux avoir aucune certitude absolue à ce sujet.
    La seule façon d'être certain, est d'encapsuler la variable locale dans une structure séquence, de façon à forcer cette locale a se trouver "dans" le flux.
    Ici, le code est simple ... mais si tu lis et écris dans une locale à des endroits différents, vois depuis des process différents (boucles différentes),
    là ... tu auras des soucis de " race condition ". 
    Labview est un langage qui est basé sur le "flux de données". Je suis contre tous les objets qui "brisent" ou "forcent" ce flux ... structure séquence, variable locale ...
    Eventuellement, un cas ou les variables locales peuvent être utilisées (en écriture), est le cas de l'initialisation avant exécution.
    et bien entendu ... dans une structure séquence et dans le flux. Jamais de "locale flotante".
    Les locales sont des objets "exotiques", qu'il faut utiliser le moins possible et toujours avec beaucoup de réflexion.

  • Moyenner une waveform

    Bonjour, 
    Je doit réalisé sur LabVIEW un oscilloscope. Le signal à traiter est donné par un GBF, récupéré via une carte d'acquisition. Dans le programme, j'utilise un assistant DAQ (permet de régler les paramètres d'acquisition : le nombre d'échantillons, la fréquence d'échantillonnage...) dans une boucle while. 
    Cet assistant revoit une waveform et génère une courbe à chaque itération de la boucle while. Comme tout sur "bon ascilloscope", je cherche à y introduire une fonction qui permet de réduire le bruit du signal. Pour cela, j'aimerai faire un système pour moyenner le signal. 
    Est-il possible de stocker quelques itérations, en faire une moyenne et retourner cette moyenne dans un graph ?
    Pour ne pas ralentir l'affichage (afficher une courbe à chaque itération et non toutes les 5 itérations si on moyenne sur 5 itérations), est-il possible de faire un stockage "glissant" ?
     Si dessous une image de l'assistant : 
    Révélation (Surlignez pour lire)
    J'espère avoir été assez clair. 
    Simon 

    Bonjour,
    Je ne suis pas tous les jours devant mon PC... qui est en panne.
    Si le problème consiste à "nettoyer" la réponse d'un système linéaire à une excitation sinus, alors c'est assez simple.
    La réponse est normalement sinus et le bruit en haute fréquence, un filtre passe bas un pôle suffit parfois. 
    On peut le faire en ligne sur la boucle WHILE avec un registre à décalage et la relation:
    y(n) = y(n-1) *(N-1)/N   + x(n)/N
    N est le nombre de moyennes,
    n est l'indice de la donnée, x pour l'entrée et y pour la sortie du filtre
    Il faut initialiser le registre par 0 par exemple. Le transitoire sera curieux, mais pour un sisgnal sinus par définition stationnaire, ce n'est pas un soucis
    Il faut placer le filtre entre le bloc d'acquisition et le graphe...
    Le filtre va introduire un déphasage, donc placer le même filtre pour tous les signaux si on veut les comparer dans le domaine des temps. Le retard est  N/Fe...
    Il faut évidemment respecter la règle de Shannon ( Fe > 2* F sinus) mais bien plus si on veut regarder le signal sur l'oscillo. Il faut prendre au moins le rapport 20 au lieu de 2
    Par exemple :
    Fc fréquence de coupure du filtre passe bas = 2 * F sinus 
    Fe fréquence d'échantillonnage = 20 * F sinus
    N nombre de moyennes = Fe / Fc = 10 dans l'exemple..
    Cela devrait répondre au problème.
    Merci de me tenir au courant du résultat. Je n'ai pas en ce moment dde PC avec LV, pour tester

  • Bonjour,j ai un mba et je souhaite liberer de la place sur le disque ssd ,je dispose d un disque externe de 1T ,pouvez vous m indiquer la procedure pour deplacer et donc acceder a la bibliotheque Itunes et Iphotos a partir du Mba sur le disque externe

    Bonjour j ai un MBA et je souhaite liberer de la place sur SSD et j ai donc acquis un disque dur externe de 1T .
    Quelle est la procedure a suivre pour deplacer la bibliotheque ITUNES et IPHOTOS sur le disque externe et y acceder
    merci d vance
    jmp

    A présent , je réussis à mesurer mon accélération, obtenir le déplacement et ma vitesse ( pour tenir compte du gabari ) et je réalise un singnal sinusoidale de fréquence variable ! Dois-je utiliser la fonction PID pour mon asservissement ?
    Je ne sais également pas comment tenir compte des points de cassures de mon "gabari" présent en pièce jointe auparavant ? Help

  • Letrack pad fonctionne  mais  pas  la souris  ou tout au  moins avec retard  et en insistant par appui prolonge  sur  le  carre

    depuis 15 jours je n'arrives plus  à utiliser  la souris liée au Trackpad . Le curseur  se  déplace  mais  lors d'appui sur  le carré  celui -ci dysfonctionne et  n'ouvre  pas  les applications  ou  bien avec retard
    La souris  externe USB  fonctionne   parfaitement
    QSue  dois  je  faire 
    J'ai procédé à un controle  avec CD d'installation et  remise  à jour   après  réparation et réinstallation complète sans résultats
    Est  ce  une  panne  électrique  ou bien  Logicielle ?

    A présent , je réussis à mesurer mon accélération, obtenir le déplacement et ma vitesse ( pour tenir compte du gabari ) et je réalise un singnal sinusoidale de fréquence variable ! Dois-je utiliser la fonction PID pour mon asservissement ?
    Je ne sais également pas comment tenir compte des points de cassures de mon "gabari" présent en pièce jointe auparavant ? Help

  • Fréquence maximal générée par sbrio-9631 et carte de sorties analogiques NI-9263

    Bonjour,
    Je suis relativement nouveau au concept de programmation LabView. Voici donc mon problème. J'essai de générer une onde sinus variable en fréquence de 100 à 500 kHz. Je suis partie d'un exemple fourni avec le kit d'évaluation SBRIO NI9631 que j'ai modifié selon mes besoins particuliers. La partie du FPGA fait appel à un générateur d'onde sinus dans une boucle. J'obtiens une belle forme sinusoïdal que j'envoie conjointement avec un autre signal dans une pile FIFO pour traitement ultérieur dans le HOST. Tout va bien jusque-là mais, lorsque ma demande (en periodes/tick) dépasse 10kHz, la fréquence actuelle commence à diminuer pour atteindre 0Hz pendant que la demande de fréquence est de +/-20kHz (mesure prise à l'aide d'un oscilloscope extérieur) et ainsi-de-suite pour toute la gamme de fréquence demandée sans jamais dépasser 10kHz. Est-ce la limitation du kit d'évaluation? Quelqu'un a une idée?
    Pièces jointes :
    AO_FPGA.jpg ‏257 KB

    Bonjour,
    Lorsque vous dépassez 10kHz, la génération sur AO0 et AO1 se passe bien ? (si vous mesurez à l'oscilloscope).
    J'ai modifié votre code coté RT, car vous n'aviez pas spécifié de buffer pour les FIFOs DMA coté RT. De plus, il ne faut pas que vous preniez 1024 points à chaque tour de boucle, sinon la FIFO va être pleine.
    Coté FPGA, j'ai modifié le remplissage de la FIFO DMA. Pouvez vous vérifier que vous n'avez pas de TimeOut ? Si vous avez un TimeOut, vous essayez d'écrire dans une FIFO pleine, et vous perdez des points.
    Vous trouverez le code en pièce jointe. Dites moi si il y a du changement.
    Cordialement,
    PS: Je ne comprends pas à quoi sert le code pour attendre une IRQ coté RT, car vous ne générez pas d'IRQ.
    Benoit S. - Field Sales Engineer
    Certified LabVIEW Developer
    Certified TestStand Developer
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Été de LabVIEW 2014
    12 présentations en ligne, du 30 juin au 18 juillet
    Pièces jointes :
    Filter and DC-RMS.zip ‏883 KB

Maybe you are looking for