LabVIEW PID and Fuzzy Logic Toolkit API Reference

PID avancé (VI)

  • Mise à jour2023-02-21
  • Temps de lecture : 12 minute(s)

PID avancé (VI)

Palette propriétaire : VIs de PID

Requiert : Système de développement complet

Implémente un régulateur PID en utilisant un algorithme PID ayant des fonctionnalités optionnelles avancées. L'algorithme PID avancé inclut les fonctionnalités de l'algorithme utilisé par le VI PID, ainsi qu'un contrôle manuel avec des transitions sans à-coup du mode manuel au mode automatique, une action intégrale non linéaire, un contrôle à deux degrés de liberté et un contrôle d'erreur quadratique. Utilisez l'instance DBL de ce VI pour implémenter une boucle de contrôle unique. Utilisez l'instance Tableau DBL pour implémenter un contrôle à plusieurs boucles parallèles.

Détails  Exemple

PID avancé (DBL)

alpha spécifie la constante de temps du filtre dérivée. Si vous augmentez cette valeur, l'amortissement de l'action dérivée augmente. alpha peut être une valeur comprise entre 0 et 1, ou NaN si aucun filtre dérivé n'est appliqué.
gamma spécifie une valeur par laquelle pondérer l'erreur appliquée à l'action dérivée. La valeur par défaut est 0, ce qui permet d'éviter un à-coup de dérivation, ou changement soudain du signal de commande, qui peut avoir lieu suite à un changement de valeur de la consigne.

Lors de certaines opérations de contrôle en cascade, dans lesquelles un à-coup de dérivation n'est pas un problème, augmenter la valeur gamma peut améliorer la vitesse du premier régulateur PID.
contrôle manuel spécifie la valeur du signal de commande quand auto ? est FAUX.
auto ? spécifie s'il faut utiliser le contrôle automatique ou manuel. Dans certains cas, vous serez peut-être amené à arrêter le régulateur PID et à exécuter le système en mode manuel ou en boucle ouverte. La valeur par défaut est VRAI. Si auto ? est Vrai, ce VI utilise le contrôle automatique. Si auto ? est Faux, ce VI utilise le contrôle manuel. Ce VI utilise un transfert sans à-coup pour passer du contrôle manuel au contrôle automatique.
gamme de la sortie spécifie la gamme dans laquelle contraindre le signal de commande. Par défaut, la gamme est comprise entre -100 et 100, ce qui correspond aux valeurs spécifiées en pourcentage de la pleine échelle. Vous pouvez changer cette gamme en valeurs appropriées pour votre système de régulation. Par exemple, vous pouvez associer des unités ingénieur à des unités ingénieur plutôt que des pourcentages à des pourcentages. Ce VI implémente l'anti-saturation de l'intégrateur quand le signal de commande est saturé aux valeurs minimale et maximale spécifiées.
sortie max spécifie la valeur maximale du signal de commande. La valeur par défaut est 100.
sortie min spécifie la valeur minimale du signal de commande. La valeur par défaut est -100.
consigne spécifie la valeur de la consigne, ou valeur désirée, de la variable de processus contrôlée.
variable du processus spécifie la valeur mesurée de la variable de processus contrôlée. Cette valeur est égale à la valeur de rétroaction de la boucle de régulation.
gamme de la consigne spécifiie les valeurs maximale et minimale de la gamme de la consigne ou de la variable du processus. Ce VI utilise la gamme de la consigne pour calculer une action intégrale non linéaire. Par défaut, la gamme est [0, 100], ce qui correspond aux valeurs spécifiées en pourcentage de la pleine échelle. Vous pouvez changer cette gamme en valeurs appropriées pour votre système de contrôle. Par exemple, vous pouvez associer des unités ingénieur à des unités ingénieur plutôt que des pourcentages à des pourcentages. Ce VI utilise la gamme de la consigne pour le calcul de l'action intégrale non linéaire et le calcul d'erreur non linéaire.
consigne min spécifie la valeur minimale de la gamme de la consigne ou de la variable du processus.
consigne max spécifie la valeur maximale de la gamme de la consigne ou de la variable du processus.
gains du PID spécifie les paramètres de gain proportionnel, de temps intégral et de temps dérivé du régulateur.
gain proportionnel (Kc) spécifie le gain proportionnel du régulateur. La valeur par défaut est 1. Dans l'équation qui définit le régulateur PID, KC représente le gain proportionnel.
temps intégral (Ti, min) spécifie le temps intégral en minutes. La valeur par défaut est 0,01.
temps dérivé (Td, min) spécifie le temps dérivé en minutes. La valeur par défaut est 0.
dt (s) spécifie la durée du cycle de boucle, ou intervalle en secondes, à laquelle ce VI est appelé. Si dt (s) est inférieur ou égal à zéro, ce VI calcule la durée depuis qu'il a été appelé pour la dernière fois, en utilisant un timer interne ayant une résolution de 1 ms. Si dt (s) doit être inférieur à 1 ms, spécifiez la valeur explicitement. La valeur par défaut est -1.
réinitialiser ? spécifie s'il faut réinitialiser les paramètres internes, tels que l'erreur intégrée, du régulateur. Définissez réinitialiser ? à VRAI si votre application doit arrêter et redémarrer la boucle de contrôle sans redémarrer toute l'application. La valeur par défaut est FAUX.
bêta spécifie la priorité accordée au suivi de la consigne par rapport au rejet des perturbations. La valeur par défaut, 1, convient à la plupart des applications. Vous pouvez utiliser une valeur plus petite, entre 0 et 1, pour donner priorité au rejet des perturbations (les changements de charge du processus, par exemple). Le VI utilise cette valeur dans l'algorithme à deux degrés de liberté.
linéarité spécifie la linéarité de la réponse d'erreur. La gamme valide pour la linéarité va de 0 à 1. Une valeur de 1 engendre une réponse linéaire normale, alors qu'une valeur de 0,1 engendre une réponse parabolique approximative. Le VI utilise cette valeur pour le calcul d'erreur non linéaire et le calcul du facteur de gain non linéaire.
sortie renvoie le signal de commande de l'algorithme du PID appliqué au processus contrôlé. Si ce VI reçoit une entrée non valide, sortie renvoie NaN.
dt en sortie (s) renvoie l'intervalle de temps réel en secondes. dt en sortie (s) renvoie soit la valeur de dt (s), soit l'intervalle calculé si vous définissez dt (s) à -1.

PID avancé (tableau DBL)

gamma spécifie une valeur par laquelle pondérer l'erreur appliquée à l'action dérivée. La valeur par défaut est 0, ce qui permet d'éviter un à-coup de dérivation, ou changement soudain du signal de commande, qui peut avoir lieu suite à un changement de valeur de la consigne.

Lors de certaines opérations de contrôle en cascade, dans lesquelles un à-coup de dérivation n'est pas un problème, augmenter la valeur gamma peut améliorer la vitesse du premier régulateur PID. Ce VI redimensionne le tableau en entrée gamma pour qu'il corresponde à la taille du tableau en entrée variable du processus.
contrôle manuel spécifie la valeur du signal de commande quand auto ? est FAUX. Ce VI redimensionne le tableau en entrée contrôle manuel pour qu'il corresponde à la taille du tableau en entrée variable du processus.
auto ? spécifie s'il faut utiliser le contrôle automatique ou manuel. Si auto ? est Vrai, ce VI utilise le contrôle automatique. Si auto ? est Faux, ce VI utilise le contrôle manuel. Ce VI utilise un transfert sans à-coup pour passer du contrôle manuel au contrôle automatique. La valeur par défaut est VRAI.

Ce VI redimensionne le tableau en entrée auto ? pour qu'il corresponde à la taille du tableau en entrée variable du processus.
gamme de la sortie spécifie la gamme dans laquelle contraindre le signal de commande. Par défaut, la gamme est comprise entre -100 et 100, ce qui correspond aux valeurs spécifiées en pourcentage de la pleine échelle. Vous pouvez changer cette gamme en valeurs appropriées pour votre système de contrôle. Par exemple, vous pouvez associer des unités ingénieur à unités ingénieur plutôt que des pourcentages à des pourcentages. Ce VI implémente l'anti-saturation de l'intégrateur quand le signal de commande est saturé aux valeurs minimale et maximale spécifiées.

gamme de sortie est un tableau de clusters des éléments suivants.
sortie max spécifie la valeur maximale du signal de commande. La valeur par défaut est 100.
sortie min spécifie la valeur minimale du signal de commande. La valeur par défaut est -100.
consigne spécifie la valeur de la consigne, ou valeur désirée, de la variable de processus contrôlée. Ce VI redimensionne le tableau en entrée consigne pour qu'il corresponde à la taille du tableau en entrée variable du processus.
variable du processus spécifie la valeur mesurée de la variable de processus contrôlée. Cette valeur est égale à la valeur de rétroaction de la boucle de régulation.
gamme de la consigne spécifiie les valeurs maximale et minimale de la gamme de la consigne ou de la variable du processus. Ce VI utilise la gamme de la consigne pour calculer une action intégrale non linéaire. Par défaut, la gamme est [0, 100], ce qui correspond aux valeurs spécifiées en pourcentage de la pleine échelle. Vous pouvez changer cette gamme en valeurs appropriées pour votre système de contrôle. Par exemple, vous pouvez associer des unités ingénieur à des unités ingénieur plutôt que des pourcentages à des pourcentages. Ce VI utilise la gamme de la consigne pour le calcul de l'action intégrale non linéaire et le calcul d'erreur non linéaire.
consigne min spécifie la valeur minimale de la gamme de la consigne ou de la variable du processus.
consigne max spécifie la valeur maximale de la gamme de la consigne ou de la variable du processus.
gains du PID est un tableau de clusters des éléments suivants.
gain proportionnel (Kc) spécifie le gain proportionnel du régulateur. La valeur par défaut est 1. Dans l'équation qui définit le régulateur PID, KC représente le gain proportionnel.
temps intégral (Ti, min) spécifie le temps intégral en minutes. La valeur par défaut est 0,01.
temps dérivé (Td, min) spécifie le temps dérivé en minutes. La valeur par défaut est 0.
dt (s) spécifie la durée du cycle de boucle, ou intervalle en secondes, à laquelle ce VI est appelé. Si dt (s) est inférieur ou égal à zéro, ce VI calcule la durée depuis qu'il a été appelé pour la dernière fois, en utilisant un timer interne ayant une résolution de 1 ms. Si dt (s) doit être inférieur à 1 ms, spécifiez la valeur explicitement. La valeur par défaut est -1.
réinitialiser ? spécifie s'il faut réinitialiser les paramètres internes, tels que l'erreur intégrée, du régulateur. Définissez réinitialiser ? à VRAI si votre application doit arrêter et redémarrer la boucle de contrôle sans redémarrer toute l'application. La valeur par défaut est FAUX.
bêta spécifie la priorité accordée au rejet des perturbations par rapport au suivi de la consigne. La valeur par défaut, 1, convient à la plupart des applications. Vous pouvez utiliser une valeur plus petite, entre 0 et 1, pour donner priorité au rejet des perturbations (les changements de charge du processus, par exemple). Ce VI redimensionne le tableau en entrée bêta pour qu'il corresponde à la taille du tableau en entrée variable du processus.
linéarité spécifie la linéarité de la réponse d'erreur. La gamme valide pour la linéarité va de 0 à 1. Une valeur de 1 engendre une réponse linéaire normale, alors qu'une valeur de 0,1 engendre une réponse parabolique approximative. Le VI utilise cette valeur pour le calcul d'erreur non linéaire et le calcul du facteur de gain non linéaire.
sortie renvoie le signal de commande de l'algorithme du PID appliqué au processus contrôlé. Ce VI détermine la longueur du tableau en sortie à partir de la taille du tableau en entrée variable du processus.
dt en sortie (s) renvoie l'intervalle de temps réel en secondes. dt en sortie (s) renvoie soit la valeur de dt (s), soit l'intervalle calculé si vous définissez dt (s) à -1.

Détails sur PID avancé

Vous pouvez utiliser l'instance Tableau DBL de ce VI polymorphe dans des applications de régulation PID à plusieurs boucles. Dans ce cas, la longueur de l'entrée variable du processus détermine la longueur du tableau en sortie. Les autres tableaux en entrée ne doivent pas nécessairement être de la même longueur que l'entrée variable du processus. Ce VI redimensionne les autres tableaux en entrée à la même longueur que l'entrée variable du processus comme suit :

  • Si le tableau en entrée est plus long que l'entrée variable du processus, le tableau en entrée est tronqué à la taille de l'entrée variable du processus. Les valeurs supplémentaires du tableau ne sont pas utilisées.
  • Si le tableau en entrée est plus court que l'entrée variable du processus, la dernière valeur du tableau en entrée se répète jusqu'à ce que la taille corresponde à celle de l'entrée variable du processus.

De cette manière, une valeur en entrée qui doit être utilisée pour chaque calcul de sortie ne doit pas être spécifiée plusieurs fois dans le tableau transmis à ce VI. Au lieu de cela, le tableau peut consister en une valeur unique utilisée pour chaque calcul de sortie.

Transfert sans à-coup du mode manuel au mode automatique

Ce VI supporte le transfert sans à-coup du mode manuel au mode automatique, qui garantit un signal de commande sans à-coup lors de la transition du mode de contrôle manuel au mode automatique.

Transfert sans à-coup du mode automatique au mode manuel

Ce VI ne peut pas implémenter le transfert sans à-coup du mode automatique au mode manuel. Pour garantir une transition sans à-coup du mode de contrôle automatique au mode manuel, vous devez concevoir votre application de façon à ce que la valeur de sortie manuelle corresponde à la valeur du signal de commande au moment où le mode de contrôle change d'automatique à manuel. Pour cela, vous pouvez utiliser une variable locale pour contrôle manuel, comme l'indique le diagramme suivant :

Exemple

Reportez-vous au VI Manual-Automatic Control.vi, dans le répertoire labview\examples\control\PID, pour obtenir un exemple d'utilisation de "PID avancé".

Log in to get a better experience