Veuillez expliquer en termes simples comment un PID tient compte de l'inertie dans le contrôle de la température

9

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.

TonyM
la source
Le défi, ce sont les retards, comme vous l'avez vu. Ainsi, la clé du contrôle consiste à examiner les slewrates et les dérivés des slewrates
analogsystemsrf
@analogsystemsrf Je pense que je l'ai en fait. Comme vous pouvez le lire, j'ai juste du mal à essayer de faire le lien entre ceci (théorie) et cela (pratique). En bref: quelle est la partie qui compense le retard et comment ?
1
Les retards sont horribles à gérer. Peut-être causé par un capteur trop éloigné du radiateur. Ou un radiateur trop grand, avec trop de masse thermique. Les facteurs d'échelle PID peuvent changer considérablement lorsque la disposition physique est modifiée. La diminution des retards permet d'atteindre des facteurs de contrôle PID produisant des erreurs plus petites.
glen_geek
Vous ne pouvez pas vraiment mettre en œuvre un PID si le seul contrôle dont vous disposez est d'allumer et d'éteindre le chauffage avec un relais.
mkeith
2
J'utilise des régulateurs de température industriels pour le travail. Ceux avec sortie relais limitent généralement le temps de cycle à 5 s minimum. Ceux avec une sortie DC à semi-conducteurs pour piloter un SSR n'ont pas cette restriction. Si vous pensez à une application avec une constante de temps longue - un four à verre ou une tonne de chocolat, par exemple - vous pourriez imaginer qu'un cycle de service de 30 pourrait être suffisant pour bien le contrôler.
Transistor

Réponses:

12

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+1Ti0teτdτ+Tddetdt]

Les paramètres du contrôleur étant le gain proportionnel , le temps intégral et le temps dérivé .KTiTd

  1. 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=Ket+ubub
  2. 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.
  3. 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.

jonk
la source
1
Merci beaucoup, jonk, c'était une explication assez approfondie (pour moi). Le retard dont j'ai bien parlé, je crains de ne pas pouvoir le réduire car je pense que c'est intrinsèquement la façon dont le four est fabriqué - j'ai transformé un four à usage général en four de refusion comme on le trouve couramment sur Internet. Cependant, malgré l'utilisation de tubes en quartz, l'élévation de température est la moitié du taux requis (pas plus de 1 ° C par seconde au lieu de 2-3). Quant au capteur, j'utilise une paire de thermocouple K et j'ai vérifié qu'il a peu ou pas d'inertie. La seule chose que j'ai remarquée cependant, c'est que le décalage de température diminue si je préchauffe le four, soit environ 50 ° C.
Avez-vous essayé le Smith Predictor Controller pour atténuer le retard?
Chu
@Chu Pas encore, je l'ai seulement appris ici :-D. De plus mon four est partiellement démonté actuellement et je n'ai pas les mains dessus.
J'ai d'abord accepté votre réponse pour son degré d'élaboration et de détail. Aussi parce que j'étais ouvert à l'utilisation de tout ce qui convient, même si cela n'impliquait pas un PID. Votre réponse et celle de Transistor m'ont donné suffisamment d'indications sur ce que je dois faire ensuite. Il ne peut cependant y avoir qu'une seule [réponse acceptée]. Merci beaucoup à tout le monde de toute façon .
4

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.

entrez la description de l'image ici

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:

  • Allumez votre four à, disons 40% de puissance ( ) et voyez à quelle température il se stabilise. Répétez à, disons, 70% de puissance ( ) et enregistrez la température. Le gain de processus est donné (pour cette plage de paramètres) comme et la réponse aura les unités plutôt impaires de degrés /%.P1P2
    K=T2T1P2P1
  • Tracez la réponse de la température au fil du temps lorsque vous basculez entre et . , le temps de latence, est le temps entre la commutation et le moment où la température commence à augmenter.P1P2LS
  • TS est le temps (depuis le début de la réponse) jusqu'à ce que la température atteigne 63% (une constante de temps) du chemin du au .T1T2

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:

  • P1=40% et .T1=92°C
  • P1=70% et .T2=176°C
  • K=176927040=2.8°C/% .
  • Ls=3s .
  • Il faut 50 s pour obtenir 63% du trajet de 92 ° C à 176 ° C donc .TS=50s

entrez la description de l'image ici

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.entrez la description de l'image ici

Figure 3. Cycle d'utilisation variable pour la commande CA d'un réchauffeur.

Transistor
la source
Merci pour les informations techniques compréhensibles. Juste une remarque: étant donné que j'utilise des relais, dont j'ai découvert qu'ils sont moins chers que les SSR (source: Digi-Key), je ne peux allumer ou éteindre complètement les radiateurs, il n'y a pas de réglage possible entre 0% et 100%. De plus, je ne peux pas utiliser le passage à zéro pour éteindre les radiateurs, mais je suppose que c'est de la moindre importance. Quoi qu'il en soit, merci beaucoup pour vos idées.
2
Ma figure 3 montre le contrôle marche-arrêt et c'est ce que vous allez faire et ça va. Vous serez en moyenne où vous le souhaitez entre 0 et 100%. En fait, c'est une modulation de largeur d'impulsion lente (PWM) avec AC. Vous ferez un compromis en gardant le temps de cycle raisonnablement court avec la durée de vie du relais. Le passage à zéro est agréable en ce qu'il réduit le bruit électrique. Si ce n'est pas un problème, ce n'est pas un problème!
Transistor
2

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.

Hans
la source
En fait, à long terme, c'est le terme P qui tombe à zéro, car le terme I s'intègre exactement au point de consigne, laissant la différence de sortie à zéro, et P fois zéro est nul.
WhatRoughBeast