Je construis mon propre four de refusion contrôlé par microprocesseur amateur. J'utilise des relais (mécaniques) pour allumer ou éteindre les radiateurs (par exemple les tubes en quartz). J'ai remarqué que le chauffage tarde quelques secondes avant que la température ne commence à augmenter.
Pour l'instant, je gère le profil de température manuellement avec l'aide d'un Arduino, qui éteint simplement les radiateurs lorsque la température définie est atteinte. Par exemple, lorsque je règle la température sur, disons 120 ° Celsius et que les radiateurs s'arrêtent, la température grimpe toujours de 10 à 20 degrés, donc il y a un peu de dépassement puis quelques sonneries, qui diminuent lentement.
J'ai lu et regardé de nombreux exemples qui utilisent un PID pour un meilleur contrôle de la température. Sans cela, je voudrais simplement arrêter les radiateurs, comme 10-20 degrés en dessous de la valeur définie et les allumer / éteindre par la suite pendant une courte période jusqu'à ce que la température se stabilise autour de la valeur définie. Je sais juste que le delta varie avec la température, donc ce n'est peut-être pas aussi simple - je connais la nature exponentielle de l'augmentation de la température avec une valeur de consigne fixe.
Alors, quelqu'un peut-il expliquer en termes simples comment un PID explique l'inertie, par exemple quel rôle la partie intégrale et ce que la partie dérivée joue en termes simples, ainsi que comment / si je peux comprendre de manière plutôt intuitive une estimation de la dérivée et de l'intégrale quantités sans recourir à des calculs complexes.
Réponses:
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:
Les paramètres du contrôleur étant le gain proportionnel , le temps intégral et le temps dérivé .K Ti Td
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:
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.
la source
Cela ne répond pas directement à votre question, mais vous donne quelques outils pour améliorer votre compréhension.
Il existe un simple simulateur Excel sur Engineers-Excel qui peut vous être utile.
Figure 1. Modèle de simulateur PID.
La partie délicate consiste à modéliser votre processus - le four - pour établir le gain de processus K , Ts - la constante de temps de réponse et Ls - le retard de réponse. Je suggère:
Après cela, vous pouvez jouer avec les paramètres PID pour voir si vous pouvez obtenir la réponse souhaitée.
Prenant quelques suppositions sauvages:
Figure 2. Sortie du simulateur Excel PID.
Vous vous en sortez généralement avec un terme zéro D si votre processus n'est pas susceptible d'obtenir des perturbations telles qu'un changement soudain de consigne ou un changement soudain de charge thermique. Cela simplifie les choses jusqu'à une configuration de contrôle PI.
Pour le chauffage, vous pouvez obtenir une puissance proportionnelle en allumant et éteignant complètement l'alimentation suffisamment rapidement par rapport au temps de réponse thermique.
Figure 3. Cycle d'utilisation variable pour la commande CA d'un réchauffeur.
la source
Dans PID, il y a 3 parties: proportionnelle, intégrale et dérivée.
Proportionnel est le contrôleur le plus simple. Il amplifie l'erreur entre le signal souhaité et le signal réel. Par exemple, si la température souhaitée est de 100 ° C, la valeur réelle est de 80 ° C, puis la sortie = 20 * Kp. La quantité de sortie donnée est réglée par Kp.
Si vous réglez Kp trop bas, il n'y a pas assez de chauffage et il peut ne jamais atteindre la température souhaitée.
Si vous accordez Kp trop haut, il peut augmenter trop rapidement. L'inertie peut entraîner un dépassement et une sonnerie. C'est parce qu'il y a un délai entre donner une certaine puissance de sortie et mesurer son effet.
La partie intégrante est nécessaire si vous souhaitez des décalages statiques faibles. Notez que pour qu'un contrôleur P donne une sortie, il doit avoir une erreur présente pour générer une valeur de sortie. Si vous voulez que l'erreur soit très proche de zéro, vous avez besoin que la partie I prenne le relais de P. Cela peut cependant prendre un certain temps.
La partie dérivée est probablement la plus intéressante pour votre problème d'inertie. La dérivée examine le taux de variation de l'erreur. S'il y a un grand taux de changement dans l'erreur, cela signifie qu'il y a une forte inertie. En utilisant un facteur ajusté Kd, vous pouvez vous assurer que la sortie ralentira dans le temps. C'est ainsi que l'inertie ralentit avant d'atteindre la valeur de sortie finale.
Cela vous permet d'utiliser un facteur P plus élevé pour une réponse suffisamment agressive, tout en utilisant D pour éviter un dépassement. La partie I est utilisée pour faire une erreur statique qui finira par s'établir à 0.
la source