Nœud de rétroaction

Aide LabVIEW 2014

Date d'édition : June 2014

Numéro de référence : 371361L-0114

»Afficher les infos sur le produit
Télécharger l'aide (Windows uniquement)

Utilisez un nœud de rétroaction pour stocker des données d'exécutions de diagramme ou d'itérations de boucle précédentes. Le nœud de rétroaction est utile pour stocker et récupérer les informations d'état de l'exécution précédente.

Un nœud de rétroaction n'effectue aucune action sur les données qu'il reçoit. À la place, il reçoit une valeur du terminal d'initialisation et transfère la valeur au terminal d'entrée suivant. Lorsqu'un nœud de rétroaction reçoit une nouvelle valeur, le nœud stocke la valeur jusqu'à ce que le nœud la passe au terminal d'entrée suivant. Un nœud de rétroaction est semblable à un bloc z-1 de la théorie de de systèmes de commande à rétroaction et au traitement des signaux numériques.

Création de nœuds de rétroaction

Un nœud de rétroaction, illustré ci-après, apparaît automatiquement si vous câblez la sortie d'un sous-VI, d'une fonction ou d'un groupe de sous-VIs et de fonctions à l'entrée de ce VI, de cette fonction ou de ce groupe et que vous activez Nœud de rétroaction automatique dans les boucles sur la page Diagramme de la boîte de dialogue Options. LabVIEW active Nœud de rétroaction automatique dans les boucles par défaut.

Vous pouvez aussi sélectionner manuellement le nœud de rétroaction sur la palette Fonctions.

Reportez-vous au VI Feedback Node - Building an Array.vi, dans le répertoire Structures\Feedback Node, pour voir des exemples d'utilisation du nœud de rétroaction.

Terminaux d'initialisation

Le terminal d'initialisation définit la valeur initiale du nœud de rétroaction. L'apparence du terminal d'initialisation, illustré ci-après, change en fonction de la configuration du nœud de rétroaction.

Indique que le nœud de rétroaction s'initialise au chargement ou à la compilation du VI.

Indique que le nœud de rétroaction s'initialise au premier appel du VI.

Indique que le nœud de rétroaction s'initialise à chaque exécution de la boucle.

Quand vous placez un nœud de rétroaction sur le diagramme, le terminal d'initialisation reste attaché au nœud et le nœud s'initialise globalement à chaque fois que le VI est compilé ou chargé. L'entrée initiale du nœud de rétroaction pour la première exécution est la valeur par défaut du type de données. Cependant, vous pouvez définir une valeur initiale pour le nœud de rétroaction. Si vous définissez une valeur initiale, le nœud de rétroaction s'initialise sur cette valeur au premier appel du VI dans une exécution. Chaque fois que le VI s'exécute après la première exécution, la valeur initiale est la dernière valeur de l'exécution précédente. Si vous utilisez le nœud de rétroaction dans une boucle, vous pouvez déplacer le terminal d'initialisation sur le bord gauche de la boucle pour configurer le nœud afin qu'il s'initialise chaque fois que la boucle s'exécute.

Remarque   (Module FPGA) Quand vous initialisez un nœud de rétroaction à l'intérieur d'une boucle cadencée à un cycle, la valeur en sortie est identique à la valeur initiale jusqu'à ce que le terminal d'activation soit VRAI. Si le terminal d'activation reste FAUX pendant plus d'un cycle et que la valeur initiale change de cycle en cycle, la valeur en sortie change également.

Terminal d'activation

Utilisez le terminal d'activation, illustré ci-après, pour activer ou désactiver le nœud de rétroaction.

Vous pouvez afficher le terminal d'activation en cliquant avec le bouton droit sur le nœud de rétroaction et en sélectionnant Terminal d'activation dans le menu local. Si le terminal d'activation est défini à VRAI, le nœud de rétroaction s'exécute comme vous l'avez configuré dans la boîte de dialogue Propriétés ou dans le menu local du nœud. Si le terminal d'activation est défini à FAUX, le nœud de rétroaction continue à renvoyer la dernière valeur de l'exécution ou itération précédente jusqu'à ce que la valeur du terminal d'activation soit redéfinie à VRAI.

Échantillons de données

Par défaut, le nœud de rétroaction ne stocke que les données de l'exécution ou itération précédente. Cependant, vous pouvez utiliser la page Configuration de la boîte de dialogue Propriétés pour configurer le nœud de rétroaction pour qu'il stocke les échantillons de données de plusieurs exécutions ou itérations consécutives en augmentant le nombre d'exécutions ou d'itérations dont il faut retarder la sortie du nœud de rétroaction. Si vous augmentez Attente à plusieurs exécutions ou itérations, le nœud de rétroaction ne renvoie que la valeur d'initialisation jusqu'à la fin de l'attente que vous spécifiez. Le nœud de rétroaction renvoie alors les valeurs qu'il a stocké une à une et dans l'ordre.

Remarque   (Module FPGA) Si vous sélectionnez la case Ignorer la méthode de réinitialisation FPGA sur la page Implémentation FPGA de la boîte de dialogue Propriétés, le module LabVIEW FPGA supprime la réinitialisation des instances de registre sous-jacentes. Cette suppression donne l'option au compilateur d'implémenter les délais en utilisant des tables de correspondance de registres à décalage (SLR) plutôt que des bascules. Les SRL combinent plusieurs attentes dans une table de correspondance unique (LUT), ce qui peut réduire considérablement l'utilisation des ressources FPGA par rapport aux bascules.

Par exemple, si vous spécifiez un délai de 3, le nœud de rétroaction renvoie la valeur initiale pendant trois itérations de boucle. À l'itération suivante, le nœud de rétroaction renvoie la valeur de la première itération (c.-à-d. l'itération 0), puis la valeur de la seconde itération, et ainsi de suite. Le diagramme suivant représente le comportement d'un nœud de rétroaction dont la valeur initiale est 0 et le délai 3.

Itération de boucle Valeur renvoyée par le nœud de rétroaction Valeur finale Données stockées par le nœud de rétroaction
Avant l'exécution ou l'itération 0 N/A N/A 0, 0, 0
0 0 0 0, 0, 0
1 0 1 0, 0, 1
2 0 2 0, 1, 2
3 0 3 1, 2, 3
4 1 5 2, 3, 5
5 2 7 3, 5, 7
6 3 9 5, 7, 9
7 5 12 7, 9, 12

Dans le diagramme précédent, le nœud de rétroaction renvoie la valeur initiale,0, trois fois avant de renvoyer la première valeur qu'il a reçue, 0.

Remarque  Lorsque vous définissez Attente à plusieurs exécutions ou itérations, vous pouvez câbler un tableau au terminal d'initialisation pour initialiser chaque élément de délai à une valeur arbitraire.

Direction des flèches

Vous pouvez changer la direction de la flèche d'un nœud de rétroaction de façon à indiquer le flux de données sur le fil de liaison en cliquant avec le bouton droit sur le nœud et en sélectionnant Changer la direction dans le menu local. Changer le sens de la flèche change uniquement l'apparence du nœud de rétroaction et des fils de liaison qui lui sont connectés sur le diagramme, et non le sens dans lequel les données circulent.

Affichage de transformée en Z

Vous pouvez modifier un nœud de rétroaction en affichage de transformée en Z en cliquant avec le bouton droit sur le nœud et en sélectionnant Affichage de transformée en Z dans le menu local. Cet affichage change l'apparence du nœud de rétroaction pour qu'il ressemble au bloc z-1 utilisé dans la théorie de contrôle de rétroaction et dans le traitement de signaux. Le passage à l'affichage du nœud sous forme de transformée en Z n'affecte que l'apparence du nœud. La fonctionnalité du nœud ne change pas.

Indicateurs de la face-avant et nœuds de rétroaction

Les indicateurs de face-avant connectés au même cycle de fils de liaison que le nœud de rétroaction affichent différentes valeurs en fonction de leur emplacement sur le fil de liaison par rapport au nœud de rétroaction. Sur le diagramme suivant, le nœud de rétroaction transmet la valeur initiale au nœud d'entrée suivant qui effectue des calculs sur la valeur initiale et envoie la valeur finale à l'indicateur puis au nœud de rétroaction.

Dans le diagramme précédent, la fonction Incrémenter agit sur la valeur initiale, 4, avant de la passer à l'indicateur. Par conséquent, l'indicateur de la face-avant affiche 5. Toutefois, sur le diagramme suivant, le nœud de rétroaction envoie la même valeur de données à la fonction Incrémenter mais l'indicateur affiche une valeur différente.

Dans le diagramme précédent, la valeur initiale du nœud de rétroaction, 4, atteint l'indicateur avant d'atteindre la fonction Incrémenter. Bien que la valeur finale envoyée au nœud de rétroaction par la fonction Incrémenter soit 5, l'indicateur de la face-avant affiche la valeur initiale 4.

CET ARTICLE VOUS A-T-IL ÉTÉ UTILE ?

Pas utile