Monday, January 23, 2017

Moyenne Mobile Labview Subvi

404 - Kategorie nicht gefunden Die Seite kann nicht angezeigt werden, weil: Sie ein veraltetes Lesezeichen aufgerufen haben. Sie ber eine Suchmaschine einen veralteten Accueil Index dieser Webseite aufgerufen haben. Sie eine falsche Adresse aufgerufen haben. Sie keinen Zugriff auf diese Seite haben. Die angefragte Quelle wurde nicht gefunden Whrend der anfrage ist ein Fehler aufgetreten Bitte eine der folgenden Seiten ausprobieren: Bei Problemen ist der Administrateur dieser Site web zustndig. Kategorie nicht gefundenCalculating Moving Average Ce VI calcule et affiche la moyenne mobile à l'aide d'un nombre présélectionné. Tout d'abord, le VI initialise deux registres à décalage. Le registre à décalage supérieur est initialisé avec un élément, puis ajoute continuellement la valeur précédente avec la nouvelle valeur. Ce registre à décalage conserve le total des dernières mesures x. Après avoir divisé les résultats de la fonction d'ajout avec la valeur présélectionnée, le VI calcule la valeur moyenne mobile. Le registre à décalage inférieur contient un tableau de dimension moyenne. Ce registre à décalage conserve toutes les valeurs de la mesure. La fonction de remplacement remplace la nouvelle valeur après chaque boucle. Ce VI est très efficace et rapide car il utilise la fonction replace element dans la boucle while et il initialise le tableau avant qu'il entre dans la boucle. Ce VI a été créé dans LabVIEW 6.1. Bookmark general ShareSimple Moyenne mobile Généralement, quand on parle de moyenne mobile, on entend Replace Point N par la moyenne de M points entourant le point N. Supposons que j'ai 100 points dont les valeurs sont 1, 2, 3. 100, et je veux Faire une moyenne mobile de 5 points. La moyenne du quatrième point est la moyenne de 2, 3, 4, 5, 6, et la moyenne du quatrième point est la moyenne de 1, 2, 3, 4, 4. Cependant, cet exemple est peut-être trop simple. Que diriez-vous de la moyenne d'une fonction d'étape, 0 de 1 à 10, puis 20 par la suite. Encore une fois, jetez les points 1 et 2. La moyenne des points 1 à 5 (pour entrer dans le point 3) 0 (puisque tous les points sont 0). De même, avec les points 4, 5, 6, 7 et 8. Cependant, le point 9 est la moyenne de 0, 0, 0, 0, 20 4. Que diriez-vous du point 10 Eh bien, il devrait être la moyenne de 0, 0, 0 , 20, 20 8, mais vous souvenez-vous de ne pas écraser le point 9 Hmm, semble que nous avons besoin de conserver deux copies du tableau (qui est, en général, coûteux). Il existe plusieurs façons d'éviter cela. Comprenez-vous où se trouve le problème dans le paragraphe précédent Sinon, essayez de le faire avec du crayon et du papier (ou essayez de le coder dans LabVIEW). Je vous donnerai la réponse pour que vous puissiez vérifier - la moyenne mobile de la fonction Step est -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 20 , 20. -, - (où - sont les valeurs vides aux extrémités du tableau, les points dont vous n'avez pas de voisins suffisants). P. S. - il ne me surprendrait pas s'il n'y avait pas une fonction LabVIEW qui fait cela pour vous. Mais si vous apprenez LabVIEW et voulez avoir une meilleure compréhension de la façon dont les algorithmes que vous branchez dans le travail, il ne fait jamais mal de jouer et de l'essayer vous-même. Vous pourriez même arriver à une amélioration (plusieurs d'entre nous l'ont fait.). Merci pour la sensibilisation concernant les points plus fins de la méthode Moyenne mobile. Cet après-coup est un outil statistique qui aide à voir ce que vous voulez voir abstraction des distracteurs. Donc, la méthode est tenue d'avoir quelques lacunes dans certaines situations ou le contexte. Mais je suppose que son parfaitement adapté pour mon type de données dof enregistrement - c'est une pression ou de la température ou un signal de débit - et je acquérir à quelque chose comme 400 échantillons sec et ensuite utiliser un échantillon unique moyennée. Et le processus est assez lent car mon code principal fonctionne à pas plus de 20 Hz. Donc, quand je fais un échantillon de 5 moyenne moyenne, mon premier échantillon arrive 5 x 50ms plus tard, puis pour chaque 50ms i obtenir un échantillon valide. Fondamentalement, je suis plus préoccupé par les tendances et pas les valeurs au comptant. En cela, il ya peu d'inquiétude au sujet des échantillons manqués ou des valeurs déloyales. Bien sûr, je n'oserais pas l'utiliser pour une fonction Step. Ce serait cruel. Raghunathan LV2012 pour automatiser les bancs d'essai hydrauliques. Message 4 sur 15 (835 Vues) Moyenne mobile simple VI 03-30-2016 11:58 PM Il ya ptbypt moyenne qui fait la même chose. Vous pouvez inspecter le code si vous le souhaitez. Un grand défaut dans votre code est le fait que vous constamment croître et rétrécir un tableau existant. Vous devriez essayer de trouver une solution qui fonctionne en place sur un tableau de taille fixe. Des exemples de mai ont été affichés sur le forum au fil des ans (regardez hee par exemple). La moyenne ne se soucie pas si les éléments sont hors d'ordre, de sorte que vous pouvez simplement remplacer l'élément le plus ancien, peu importe où il est situé. Vous allez également ajouter le nouvel élément au début d'un tableau existant, ce qui est toujours beaucoup plus coûteux que d'ajouter à la fin. La taille de votre échantillon ne peut pas changer une fois que le VI est en cours d'exécution. Votre registre à décalage doit être initialisé avec un tableau vide, pas un tableau contenant déjà un seul élément qui est zéro. (Ce zéro supplémentaire donnera des moyennes fausses) Votre code doit être transformé en un sous-VI afin qu'il puisse être réutilisé (similaire à la version ptbypt). Votre VI ne peut jamais être arrêté, juste avorté. Bonnes astuces d'optimisation. Le point sur l'initialisation avec Zero me manquait. Et oui l'utilisateur ne doit pas changer la taille de l'échantillon une fois qu'il commence à fonctionner. Enfin, je vais faire un SubVI et de gérer des choses comme arrêter etc .. En ce qui concerne le point de préfixation que d'ajouter la nouvelle valeur au tableau, peut-être il ya une pénalité de performance, mais étant donné la taille de mon tableau, je suis sûr que le CPU ne se soucie pas anwyay . Mais pour moi, il doit être de cette façon que j'utilise les données finales pour tracer une tendance d'un paramètre physique. Merci pour votre temps. Raghunathan LV2012 pour automatiser les bancs d'essai hydrauliques. Merci pour la sensibilisation concernant les points plus fins de la méthode Moyenne mobile. Cet après-coup est un outil statistique qui aide à voir ce que vous voulez voir abstraction des distracteurs. Donc, la méthode est tenue d'avoir quelques lacunes dans certaines situations ou le contexte. Mais je suppose que son parfaitement adapté pour mon type de données dof enregistrement - c'est une pression ou de la température ou un signal de débit - et je acquérir à quelque chose comme 400 échantillons sec et ensuite utiliser un échantillon unique moyennée. Et le processus est assez lent car mon code principal fonctionne à pas plus de 20 Hz. Donc, quand je fais un échantillon de 5 moyenne moyenne, mon premier échantillon arrive 5 x 50ms plus tard, puis pour chaque 50ms i obtenir un échantillon valide. Aha Donc vous ne voulez pas une moyenne mobile, mais juste une moyenne simple. C'est beaucoup plus facile. Heres l'idée (qui fonctionne beaucoup mieux avec un ProducerConsumer Design) - Disons que vous échantillonnage à 400Hz, voulez enregistrer les données à 400 Hz (c'est-à-dire enregistrer toutes les données sur le disque), mais souhaitez afficher à 20 Hz (parce que vous Veulent voir les tendances, une base de temps plus longue, etc.). Configurez votre système AD pour collecter 20 échantillons à 400Hz (notez que vous pouvez collecter des canaux N en même temps, en vous donnant un tableau 2D d'échantillons. Comme vous obtenez les données (à 20 Hz) à partir de l'AD (ce qui rend le producteur) , Enqueue il au consommateur. Le consommateur commence par écrire les données sur le disque (ne devrait pas prendre beaucoup de temps.) Maintenant, vous avez un tableau 2D - dans une Boucle For, sur une base de canal par canal, la moyenne des 20 points. Notez que ce schéma (a) utilise toutes les données, (b) gère les données multicanaux avec aplomb (et, si vous le souhaitez) Du Moyen-Orient où ils poussent, vous pouvez également manipuler vos données avec une prune juteuse), et (c) vous permet de collecter vos données de l'équipement AD, enregistrer vos données sur le disque en gardant tous les points et afficher vos données sur L'écran à l'aide de tous vos points, mais aussi la moyenne pour améliorer le rapport signal / bruit visuel, le tout sans perdre de données (Ive fait exactement cela avec 24 canaux à 1KHz, les données étant prises sur un système distant et envoyé au PC Via TCPIP, donc nous avons aussi le traitement TCP dans la boucle). Bienvenue dans le monde passionnant de l'acquisition et du traitement des données avec LabVIEW. Croyez-moi, c'est un système merveilleux pour faire ce type de travail Basé sur les commentaires que j'ai obtenu sur mon VI d'origine, j'ai raffiné le code Moyenne mobile dans un subVI. Je l'ai ensuite utilisé pour la moyenne d'une simulation 10Channel données - juste pour garder les choses simples, j'ai fait tous les canaux 10 avaient des données identiques. On s'attendrait alors à obtenir la même moyenne mobile pour les 10 canaux. Je suis surpris de la petite différence que j'observe entre les canaux - généralement ils sont proches mais pas exacts. Et juste pour expliquer le processus que je tente, j'ai aussi enclsoed un XLS. Alors, d'où vient la variation. Le registre à décalage non initialisé à l'intérieur du sous-VI. Raghunathan LV2012 pour automatiser les bancs d'essai hydrauliques. Message 9 sur 15 (738 Vues) Re: Moyenne mobile simple VI altenbach 04-01-2016 10:25 Votre code n'a toujours pas de sens. Dès que vous appelez le subVI un scalaire à la fois, vous n'obtenez pas ce que vous voulez parce que le registre à décalage ne se rappelle que les N derniers scalaires, peu importe de quel canal il est. Votre code est toujours très inefficace et alambiqué. (Par exemple, pourquoi utilisez-vous encore insert dans le tableau pour ajouter (dans le mani nad dans le sous). (Vous pourriez utiliser un subVI réenetrant et une boucle FOR interne plus parallèle, mais cela semble trop compliqué trop) Si vous voulez faire un La moyenne mobile sur chaque canal, le sous-VI doit conserver un tableau 2D dans le sous-VI, tout ceci a déjà été fait auparavant Message 10 sur 15 (722 Vues)


No comments:

Post a Comment