J'ai dû + le commentaire de Glen. Il a toujours son cerveau au bon endroit, à mon humble avis. Il n'y a rien de plus difficile à gérer dans un PID qu'un retard . Cela fait des années que je m'occupe des contrôles de température chauffés par lampe pour les FAB à plaquettes IC, d'une manière ou d'une autre. Permettez-moi de commencer par un aperçu du PID et de parler un peu où il ne sera PAS aussi utile que dans d'autres cas. Je vais également suggérer l'un des nombreux autres domaines de méthodes de contrôle que vous pouvez également explorer, mais avec une priorité des étapes que vous devez d'abord prendre avant d'aller ailleurs.Δt
L'expression canonique pour le contrôle PID est:
ut=K⋅[et+1Ti∫t0eτdτ+Tddetdt]
Les paramètres du contrôleur étant le gain proportionnel , le temps intégral et le temps dérivé .KTiTd
- Contrôle proportionnel : L'action de contrôle ici est simplement proportionnelle à l'erreur de contrôle. (L'équation ci-dessus se réduit à, oùest un biais de contrôleur ou une réinitialisation.) Une analyse d'un modèle de processus statique montre que le processus résultant a un décalage résiduel ou un biais de contrôleur à l'état stationnaire (bien que un système peut être réglé manuellement pour qu'il puisse y avoir une erreur de contrôle de zéro à une et une seule valeur de consigne par un choix approprié de la polarisation du contrôleur.) L'augmentation du gain fournit également un gain au bruit de mesure (mauvais), de sorte que le le gain de boucle ne doit pas être trop élevé et il n'y a pas de "meilleur" gain de boucle car cela dépend des objectifs.ut=K⋅et+ubub
- Commande proportionnelle + intégrale : La fonction principale de l'action intégrale est de s'assurer que la sortie du processus correspond au point de consigne en régime permanent. Avec une action intégrale, une petite erreur positive entraînera toujours une augmentation du signal de commande et une petite erreur négative entraînera toujours une diminution du signal de commande. Cela est vrai quelle que soit la taille de l'erreur.
- Contrôle PID : l'ajout d'un contrôle dérivé améliore la stabilité en boucle fermée. (Il faudra un certain temps avant qu'un changement de contrôle ne soit remarqué dans la sortie du processus. Le système de contrôle sera donc en retard, corrigeant cette erreur. Le résultat du terme dérivé est qu'il s'agit d'une sorte de prédiction faite en extrapolant le erreur en utilisant une tangente à la courbe d'erreur, utilisée pour anticiper les résultats retardés.
La description ci-dessus, ajoutée à votre propre description de votre problème de retard, suggérerait qu'un terme dérivé vous aiderait. Mais comme d'habitude, rien n'est nécessairement aussi simple.
Le contrôle proportionnel-intégral est suffisant lorsque la dynamique du processus est de premier ordre. Il est facile de le découvrir en mesurant la réponse échelonnée. (Si la courbe de Nyquist se situe uniquement dans les 1er et 4e quadrants.) Elle peut également s'appliquer dans les cas où le processus ne nécessite pas un contrôle serré, même s'il n'est pas de premier ordre.
Le contrôle PID est suffisant pour les processus où la dynamique dominante est de second ordre. Le contrôle de la température est souvent le cas ici. Donc, encore une fois, cela plaide peut-être en faveur de l'ajout d'un contrôle dérivé dans votre situation.
Toutefois. Tout ce qui précède ne doit être pris en compte qu'après avoir fait tout le possible pour améliorer certaines choses:
- Utilisez le capteur de température qui répond le plus rapidement que vous pouvez raisonnablement appliquer (petite masse, pyrométrie, etc.) et appliquez-le dans une situation avec le moins de retard de réponse possible au processus que vous souhaitez contrôler (proche, pas loin).
- Réduisez la variation de retard dans la prise de mesures et la mise en œuvre du contrôle de processus.
Je voudrais développer un peu ce dernier point. Imaginez le contrôle de processus comme si vous vous teniez quelque part, essayant de pousser un poteau de bambou mince, très flexible et bancal dans un trou de nichoir éloigné qui est assis dans un arbre au-dessus et loin de vous. Si vous êtes proche et que le poteau en bambou est court, c'est facile. Vous pouvez le faire à chaque fois rapidement et facilement. Mais si la perche en bambou est longue et la cabane d'oiseaux loin de vous, c'est très, très difficile à faire. Le poteau continue d'errer et cela rend votre prédiction et votre contrôle très difficiles.
(Si ce n'est pas déjà clair, la longueur du poteau en bambou est comme le temps de retard de la boucle.)
Le retard est donc probablement le pire cauchemar des systèmes de contrôle. Plus de retard est très mauvais. Il est donc très important que vous fassiez tout ce qui est en votre pouvoir pour réduire ce délai. Mais il y a un autre point important.
Imaginez maintenant la même situation. Mais maintenant, le poteau en bambou change également de longueur. Parfois elle est plus courte, parfois plus longue, et elle varie continuellement sans prédiction de votre part. Vous devez maintenant continuer à changer votre position et vous ne savez jamais quand le retard changera. C'est la situation qui existe si votre LOGICIEL ne contrôle pas très soigneusement et avec une poigne de fer, le retard dans le traitement de votre valeur ADC et la génération d'une sortie de contrôle DAC.
Ainsi, alors que le retard est suffisamment mauvais pour un système de contrôle PID. Un retard variable est encore pire. Vous devez donc porter une attention particulière à la conception de votre logiciel - une attention très stricte - afin de ne pas avoir d'instructions IF et de code de calcul conditionnel, ou une utilisation bâclée des temporisateurs, etc., qui peuvent tous entraîner des variations importantes dans la délai entre l'échantillon et la sortie de contrôle.
Vous devez obtenir ce qui précède dans la gestion avant de vous inquiéter de savoir si vous avez besoin ou non d'un contrôle dérivé. Tout d'abord. Nettoyez votre acte. Examinez ensuite le système pour déterminer ce qu'il reste à faire (en utilisant PI vs PID, par exemple.)
Je travaillais sur des systèmes de contrôle PID utilisant un système de pyromètre extrêmement précis (également très cher pour les clients.) J'ai reçu un appel d'un chercheur canadien travaillant avec notre pyromètre, mais utilisant un contrôleur PID distinct d'une très grande entreprise commerciale (la plus grande en le monde fait ces choses.) Le chercheur se débattait avec des ondulations sur le côté d'une boule d'arséniure de gallium qu'il tirait d'une fonte. Et je voulais mon aide pour trouver les bonnes variables de contrôle PID. (En tirant sur une boule, vous voulez des diamètres très uniformes.)
Le contrôleur qu'il utilisait était assez bon selon toute mesure standard. Mais cela a ajouté des retards --- et ces retards variaient également, car le logiciel qu'il contenait ne contrôlait pas rigoureusement le retard qu'il introduisait dans la boucle de contrôle globale.
Donc, la première chose que je lui ai dit, c'est que j'ajouterais le contrôle PID au logiciel de notre pyromètre et qu'il devrait simplement TIRER le contrôleur externe du système qu'il utilisait. J'ai ajouté ce logiciel en moins d'une semaine et je lui ai expédié le système pyro modifié. Je n'ai rien fait d'extraordinaire avec le logiciel PID. Cependant, j'ai gardé ma variabilité de l'ADC au DAC à moins de quelques microsecondes et resserré le délai global ainsi à environ 100 microsecondes. Je lui ai envoyé ça.
J'ai reçu un appel lundi la semaine prochaine. Les boules se retiraient presque parfaitement, sans ondulation du tout.
C'était aussi simple que de simplement réduire les retards et aussi de réduire la variabilité de ces retards. Rien de spécial sur le contrôle PID, du tout. C'était une implémentation simple de vanille que tout le monde produirait pour la première fois.
Cela illustre l'importance de réduire le retard et la variabilité du retard. Bien sûr, le contrôle dérivé peut fournir une sorte d'idée "sécante / tangente" de prédiction. Mais rien ne remplace la réduction des retards et la réduction de la variabilité au minimum absolu.
Continuez à penser au poteau de bambou et au problème des trous dans les nichoirs.
Conclusion?
Le contrôle des systèmes avec un retard temporel dominant est notoirement difficile. J'ai suggéré quelques raisons pour lesquelles vous pourriezestiment qu'un terme dérivé contribuera à réduire les délais. Mais il est généralement admis que l'action dérivée n'aide pas beaucoup pour les processus qui ont des retards de temps dominants. C'est pourquoi j'avais immédiatement suggéré d'aider ce chercheur en éliminant tous les retards que je pouvais facilement supprimer (comme une boîte PID externe, par exemple.) Je n'imaginais pas que ma mise en œuvre était meilleure que le produit commercial. Je savais que ma mise en œuvre ne serait pas aussi bien vérifiée, en fait. Cripes, je devais l'écrire à partir de zéro, le tester et l'installer, et expédier une unité avec un logiciel nouvellement ajouté qu'il n'avait jamais auparavant, et faire tout cela en une semaine. Mais je savais aussi que le retard tuait toutes les chances que ce chercheur avait pour obtenir les résultats qu'il voulait. J'ai donc immédiatement su que la meilleure approche était de réduire les retards et de ne pas inventer un code PID magique "brillamment" mis en œuvre que seul un génie pouvait suivre. Tout dépend des retards et de la façon dont ces retards varient, d'abord et avant tout. Le reste est une priorité beaucoup plus faible.
Il y a certaines choses appelées «compensateurs de temps mort». Mais en dernière analyse, vous devez faire tout votre possible pour éliminer les retards et réduire la variabilité de ces retards. Et puis, après avoir fait tout ce que vous pouvez, s'il y a toujours un problème, il est probable que vous ayez besoin de contrôles plus sophistiqués qu'un PID ne le permet. Ici, j'atteindrais des transformées de Fourier (et utiliser une transformée inverse pour analyser les réponses par étapes et développer une description des réponses du système), peut-être. Vous pouvez faire beaucoup avec ceux-ci qui ne peuvent pas être touchés par le PID. Des résultats presque miraculeux, en fait, si vous pouvez modéliser suffisamment la fonction de réponse.
Mais dans votre cas, je me concentrerais sur la suppression des retards et de leur variabilité. Je pense que vous devriez, si possible, envisager d'éviter également le contrôle simplifié de la lampe marche / arrêt. Ce serait bien si vous pouviez contrôler l'intensité de la lampe. Mais je ne sais pas si vous pouvez considérer cela.