Skip to content
RFrftools.io
Motor Control21 mars 20266 min de lecture

Réglage du PID Ziegler-Nichols : une boucle ouverte aux gains

Apprenez le réglage du PID Ziegler-Nichols à l'aide du gain de processus, du temps mort et de la constante de temps. Exemple concret avec des valeurs réelles de commande du moteur. Calculateur en ligne gratuit.

Sommaire

Pourquoi le réglage PID est toujours important

Les régulateurs PID sont partout. Sérieusement, ils contrôlent tout, de la boucle thermique de votre four à refusion à la régulation de la vitesse d'un moteur à courant continu sans balais. Malgré toutes les nouvelles stratégies de contrôle sophistiquées telles que le contrôle prédictif des modèles, le PID classique reste roi. Pourquoi ? Cela fonctionne, c'est très peu coûteux à implémenter sur un microcontrôleur de base, et lorsque vous réussissez le réglage, il fonctionne à merveille.

L'astuce réside dans ce réglage. Un PID mal configuré oscillera comme un ivrogne sur une corde raide ou répondra si lentement que vous pourriez tout aussi bien avoir un contrôle manuel. J'ai vu des régulateurs thermiques dépasser les 40 °C parce que quelqu'un venait de deviner les gains. Ce n'est pas génial quand vous essayez de redistribuer un tableau rempli de 0201 passifs.

La méthode en boucle ouverte de Ziegler-Nichols fournit aux ingénieurs un point de départ solide et reproductible basé sur trois caractéristiques clés du processus : le gain du processusKK, le temps mortLLet la constante de tempsτ\tau. Il existe depuis 1942 et il est toujours utilisé car il évite les conjectures. Vous exécutez un test, vous mesurez trois paramètres, vous les insérez dans certaines formules, et vous obtenez une base de référence qui vous permet généralement d'atteindre 80 % du chemin.

La méthode de réponse par étapes en boucle ouverte

Voici le plan de jeu : mettez votre système en boucle ouverte, introduisez un changement d'étape dans l'actionneur (comme une étape de tension vers un pilote de moteur) et enregistrez ce qui arrive à votre variable de processus. À partir de cette courbe de réponse en forme de S, vous allez extraire trois paramètres critiques.

Le premier est gain de processuelKK, c'est-à-dire l'ampleur du changement de sortie que vous obtenez par étape d'entrée. Il peut s'agir de tr/min par volt, de degrés Celsius par pourcentage de cycle de service, quelles que soient les unités utilisées par votre système. Si vous faites passer le PWM de votre réchauffeur de 0 % à 50 % et que la température finit par augmenter de 75 °C, le gain de votre procédé est de 1,5 °C par pourcentage du cycle de service.

Vient ensuite le temps mortLL, le délai avant que quelque chose ne commence à bouger, mesuré en secondes. C'est du pur décalage. Vous modifiez la saisie, et pendant un moment frustrant, rien ne se passe. Ensuite, le système se réveille et commence à répondre. Le temps mort est l'ennemi du contrôle rapide. Plus vous en avez, plus votre réglage doit être conservateur.

Enfin, il y a constante de tempsτ\tau, c'est-à-dire le temps nécessaire pour atteindre environ 63 % de la valeur finale après le début du délai initial. Cela vient de la théorie des systèmes du premier ordre. Une réponse exponentielle atteint 63,2 % de sa valeur finale après une constante de temps. En pratique, vous tracez une tangente au point d'inflexion de votre courbe en S, vous voyez où elle croise la ligne de valeur finale et vous reprenez la mesure jusqu'au début de la réponse.

Rassemblez ces trois chiffres et Ziegler-Nichols vous proposera des formules directes pour les régulateurs P, PI et PID complets. L'avantage, c'est que vous n'avez pas besoin de connaître la physique sous-jacente. Peu importe qu'il s'agisse d'une masse thermique avec pertes par convection ou d'un moteur avec une dynamique de contre-champs électromagnétiques. La réponse à l'étape vous dit tout.

Les formules Ziegler-Nichols

Pour un contrôleur PID, les règles de réglage classiques en boucle ouverte sont les suivantes :

§ 0§

§ 1§

Td=0.5LT_d = 0.5L
Ils vous donnent le gain proportionnelKpK_p, le temps intégralTiT_iet le temps dérivéTdT_ddans la forme standard. La plupart des contrôleurs modernes utilisent cependant la forme parallèle (ISA), vous devrez donc convertir :
Ki=KpTiK_i = \frac{K_p}{T_i}
Kd=KpTdK_d = K_p \cdot T_d
Pour un contrôleur PI uniquement (utile dans les systèmes bruyants où l'action dérivée pose plus de problèmes qu'elle n'en résout) :

§ 5

§ 6

Notez que le réglage PI est plus conservateur : gain proportionnel plus faible, temps intégral plus long. C'est intentionnel. Sans terme dérivé pour fournir une compensation de plomb, vous devez prendre un peu de recul pour maintenir la stabilité.

Ces formules visent un ratio d'un quart de décroissance : chaque dépassement est environ 25 % plus petit que le précédent. Agressif mais généralement un point de départ solide. Vous obtenez une vitesse décente sans transformer votre système en marteau-piqueur. La plupart des ingénieurs finissent par se désaccorder à partir de là, mais c'est bien mieux que de repartir de zéro.

Exemple fonctionnel : contrôle de la vitesse du moteur à courant continu

Faisons en sorte que cela soit concret. Imaginez que vous concevez un régulateur de vitesse pour un moteur à courant continu à balais de 24 V sur une bande transporteuse. Vous pouvez faire passer le PWM de 0 % à 20 % et suivre la vitesse à l'aide d'un encodeur tachymétrique. Voici ce que vous voyez :

Le moteur commence à bouger 0,15 s après l'étape. C'est ton temps mort →L=0.15sL = 0.15\,\text{s}. Il peut s'agir de constantes de temps électriques, d'inertie mécanique surmontée, peu importe. Peu importe pourquoi, juste qu'il soit là.

La vitesse atteint 63 % de la valeur finale aut=0.15+0.8=0.95st = 0.15 + 0.8 = 0.95\,\text{s}. Vous avez commencé à répondre à 0,15 s, donc la constante de temps estτ=0.8s\tau = 0.8\,\text{s}. Ceci est probablement dominé par l'inertie mécanique et l'amortissement visqueux du système.

La vitesse finale s'établit à 600 tr/min pour un cycle de service de 20 %. Votre gain de processus est deK=60020=30RPM/%K = \frac{600}{20} = 30\,\text{RPM/\%}. Sympa et linéaire, du moins dans cette plage de fonctionnement.

Connectez-vous maintenant aux formules PID :

§ 7§

§ 8§

§ 9

Conversion en forme parallèle :

§ 10§

§ 11

Pour le contrôle uniquement en Pi (par lequel je commencerais probablement avec un vrai moteur, honnêtement) :

§ 12

Article 13

Vous pouvez les vérifier instantanément à l'aide du calculateur PID Controller Tuning (Ziegler-Nichols). Cela vous évite de faire l'arithmétique à la main à chaque fois.

Conseils pratiques pour les systèmes réels

Commencez par PI, puis ajoutez peut-être D. Le bruit du capteur pose souvent plus de problèmes aux termes dérivés qu'ils n'en valent la peine. J'ai vu une action dérivée amplifier le bruit de quantification de l'encodeur en un bourdonnement de 50 Hz qui a fait chanter l'ensemble de l'assemblage mécanique. Commencez par PI, confirmez la stabilité et n'ajoutez une dérivée que si vous avez besoin d'un rejet plus rapide des perturbations ou d'un suivi plus précis. Dans de nombreux cas, vous ne le ferez pas. Ziegler-Nichols est un point de départ. L'approche par quarts de décroissance peut entraîner un dépassement plus important que vous ne le souhaiteriez, en particulier dans les systèmes où le dépassement est coûteux ou dangereux. La plupart des ingénieurs réduisent leKpK_pde 20 à 30 % par rapport à la valeur calculée et modifient leTiT_ipour équilibrer vitesse et fluidité. Je multiplie généralement le gain proportionnel par 0,7 et je vois ce que ça donne. Vous pourrez toujours l'augmenter plus tard. La fréquence d'échantillonnage est importante Si votre boucle de régulation fonctionne à 1 kHz mais que le temps mort est de 150 ms, vous êtes en or. À 50 Hz, vous aurez une action dérivée grossière qui pourrait ne pas être d'une grande utilité. En règle générale, votre période d'échantillonnage doit être au moins 5 à 10 fois plus rapide que la constante de temps dérivée. Sinon, vous ne faites qu'amplifier le bruit entre les échantillons. Pour l'exemple de moteur ci-dessus avecTd=0.075T_d = 0.075s, vous devriez échantillonner au moins toutes les 7,5 ms, ce qui signifie 130 Hz ou plus. La protection contre le remontage est essentiel. Le terme intégral accumulera des erreurs pendant la saturation, par exemple lorsque votre moteur est déjà à 100 % du rapport cyclique mais que le point de consigne est encore plus élevé. Sans protection anti-remontage, l'intégrateur continue de s'arrêter, et lorsque l'erreur finit par s'inverser, vous obtenez un dépassement massif, car le terme intégral met une éternité à se dénouer. Mettez en œuvre le serrage ou le calcul à rebours, sinon vous risquez que votre convoyeur projette des pièces à travers la pièce. Réglez en conditions réelles. Les caractéristiques du procédé changent en fonction de la charge, de la température, de la tension d'alimentation et d'une douzaine d'autres variables. La constante de temps effective d'un moteur augmente lorsque vous le chargez. Le gain d'un réchauffeur change à mesure que la température ambiante change. Réglez au pire point de fonctionnement, ou vérifiez au moins que vos gains fonctionnent toujours. Le système que vous avez qualifié de vide peut se comporter de manière totalement différente lorsqu'il fait réellement un travail utile. Attention aux non-linéarités. La méthode Ziegler-Nichols suppose que votre système est raisonnablement linéaire autour du point de fonctionnement. Si votre actionneur est saturé, présente une zone morte importante ou si le gain du procédé change radicalement en fonction des conditions de fonctionnement, vous pourriez avoir besoin d'une programmation du gain ou d'un contrôle adaptatif. Un seul ensemble de gains PID ne peut pas faire grand-chose.

Quand utiliser une autre méthode

Ziegler-Nichols suppose un modèle du premier ordre plus les temps morts (FOPDT). C'est une assez bonne approximation pour de nombreux procédés industriels, mais pas pour tout. Pour les systèmes complexes comportant plusieurs constantes de temps, comme un système thermique en cascade avec un dispositif de chauffage, un dissipateur de chaleur et une masse thermique, des méthodes telles que Cohen-Coon ou le réglage automatique par relais peuvent être plus efficaces. Cohen-Coon gère plus facilement les processus présentant des ratios temps mort/constante de temps plus élevés.

Si vous ne pouvez pas effectuer un test par étapes en toute sécurité parce que le processus est en cours de production ou qu'une étape importante pourrait endommager quelque chose, envisagez des méthodes d'identification en boucle fermée ou un réglage automatique du logiciel. Certains contrôleurs ont des routines de réglage automatique intégrées qui effectuent des tests de rétroaction des relais pour caractériser le système tout en le gardant sous contrôle.

Pour les systèmes très rapides avec un temps mort minimal, vous pourriez obtenir de meilleurs résultats grâce au placement des poteaux ou à d'autres techniques basées sur des modèles. Mais honnêtement, pour 90 % des problèmes de contrôle intégrés auxquels vous serez confrontés, Ziegler-Nichols vous permet de vous en rapprocher suffisamment pour qu'un petit ajustement manuel termine le travail.

Essayez-le

Récupérez vos données de réponse par étapes, extrayez lesKK,LLetτ\tau, et lancez le calculateur de réglage PID. Il calculera les paramètres PI et PID afin que vous puissiez choisir la bonne approche pour votre système. Ajoutez-le à vos favoris, vous l'utiliserez plus que vous ne le pensez. Chaque fois que vous regardez une trace d'oscilloscope et que vous vous demandez pourquoi votre boucle de contrôle sonne, c'est par là que vous commencez.

Articles connexes