Un PWM avec une résolution de 1% dans une boucle de chauffage PID peut-il atteindre une précision de température supérieure à 1%?

8

Je dois régler une température entre 20 ° C et 300 ° C. J'utilise une sortie PWM avec une résolution de rapport cyclique de 1%. La période PWM globale et la synchronisation de la boucle PID peuvent-elles obtenir une précision supérieure à 1% de la plage de température dans la charge?

Dirk Bruere
la source
10
Vous devez affiner votre définition de précision de température de 1%. Supposons que je réécris vos 20 C à 300 C à 293 Kelvin à 573 K, alors 1% est un nombre différent. S'il y a une (longue) constante de temps (masse thermique) présente dans votre appareil, je dirais que oui, vous pouvez obtenir une meilleure précision car cela ferait la moyenne de la valeur que vous appliquez, donc avec suffisamment de temps, toute précision peut être atteinte.
Bimpelrekkie
Travaillez-vous spécifiquement avec un relais à semi-conducteurs avec coupure de courant nulle et alimentation secteur 50/60 Hz alimentant le chauffage?
DeusXMachina
Selon les masses thermiques, le contrôle marche / arrêt est probablement assez bon
Scott Seidman
Je ne connais pas les contrôleurs PID mais j'ai écrit une application pour contrôler un four de cuisson de rempotage pour mon travail qui régule en utilisant une période PWM de 30 s avec une résolution de 1 s qui est capable de maintenir les températures à 1-2 ° C de la température cible (généralement autour de 80 ° C) ceci est contrôlé à l'aide d'un SSR, a un élément chauffant de 2 kW et un ventilateur pour faire circuler l'air. Le code est disponible sur bitbucket.org/snippets/gds-uk/qj9yE/oven-controller si vous êtes intéressé.
RobbG
Notez également que la conductivité thermique de votre charge varie: à moins qu'il s'agisse d'un liquide agité ou de quelque chose de très petit, il y aura probablement plus de 1% de variation de température à travers la charge.
pjc50

Réponses:

21

Cela dépend de la constante de temps de la charge. Une charge chauffée répondra souvent en 10 secondes.

Si vous générez 30% de PWM pendant une seconde, puis 31% de PWM pendant la seconde suivante, cela ressemblera à 30,5% en moyenne sur plusieurs secondes.

Les thermostats du four ont tendance à fonctionner une minute de marche et une minute d'arrêt, tout en atteignant des températures de four stables à un seul chiffre de C.Un PWM de 1% ajusté une fois par seconde pourrait faire plusieurs ordres de grandeur mieux que cela.

Neil_UK
la source
8
J'appellerais cela le `` tramage '', après la technique équivalente pour augmenter la profondeur de couleur dans les graphiques informatiques, mais je ne sais pas comment il est courant de l'appeler ainsi.
Pete Kirkham
1
Je me suis retrouvé à utiliser la même terminologie exacte, donc je pense que cela ne peut pas être si loin de la réalité.
DeusXMachina
1
@PeteKirkham Je l'appelle habituellement le tramage.
winny
9

Oui.

Étant donné que par rapport à d'autres réglementations (tension, courant, etc.), la régulation de la température est assez lente, ce que vous pouvez faire est d'utiliser un microcontrôleur (je suppose que vous le faites déjà), mais ajoutez une variation cyclique du signal PWM largeur.

imaginez que pour que votre système soit stable, vous devez avoir une largeur d'impulsion de 3,8%. il vous suffit d'appliquer un cycle d'utilisation de 3% pendant 20% du temps et de 4% pendant les 80% restants. le faire en une seconde environ devrait vous permettre d'atteindre la précision dont vous avez besoin.

Sclrx
la source
7

Question étrangement formulée, mais ce que je pense que vous demandez, c'est la température de l'incrément de charge par pas de 1% avec un PWM d'une résolution de 1%. soit 2,828C par pas.

Bien que cela puisse paraître, la réponse à cette question est probablement non.

La raison en est que pour que cela se produise, il doit y avoir une relation de 1 à 1 entre la puissance et l'augmentation de la température dans la charge. Cependant, selon la géométrie et l'environnement de la charge, il est peu probable que cela soit vrai.

Afin de chauffer quelque chose à une température spécifique, vous devez ajouter suffisamment de puissance pour équilibrer la puissance que l'objet perd dans son environnement à cette température. Le problème est que, lorsque la température augmente, l'efficacité du transfert de chaleur de la surface de ce que vous chauffez change également normalement.

entrez la description de l'image ici

Pour une petite plage de températures, la puissance à la température peut être considérée comme presque linéaire, mais 300 ° C n'est pas une petite plage de températures.

Le degré de linéarité de ce que vous envisagez de chauffer et la précision de 1% (c.-à-d. 1% plus ou moins quoi?) Sont bien entendu au-delà de la portée de cette question et de la réponse. Mais je soupçonne que vous aurez besoin de mettre beaucoup plus de puissance incrémentielle pour le faire monter au dernier 50C que vous ne l'avez fait pour le porter à 70C.

UNE ADDITION

Il est très difficile de savoir si vous avez inclus la détection de température dans votre boucle de contrôle. Je soupçonne, puisque vous avez posé la question, que la réponse à cette question est non, d'où le point central de cette réponse.

Si vous avez besoin de régler la température avec précision dans toutes les conditions, vous devrez vraiment rattacher cette mesure à la boucle de contrôle du système. À ce stade, vous pouvez faire varier la modulation PWM dans le temps pour maintenir la température aussi précisément que vous pouvez la mesurer, tout cela avec un certain décalage thermique et une hystérésis.

Mais bien sûr, mesurer la température avec précision sur un grand objet peut être un défi en soi.

Trevor_G
la source
1
Merci. Mais pour être honnête, j'ajouterai un peu d'informations que j'ai omises, c'est que 100% PWM donne 300degC. Bien sûr, votre réponse s'applique alors vraiment au bas de l'échelle
Dirk Bruere
@DirkBruere c'est assez facile à tester. Réglez-le à 50% et mesurez la température :)
Trevor_G
Ce sera définitivement non linéaire
Dirk Bruere
NON car une réponse directe est probablement incorrecte. Voir la réponse de Neil_UK, qui peut être résumée comme "oui, dans des circonstances précises mais assez courantes". Le four domestique en est un parfait exemple.
Caterpillaraoz
@Caterpillaraoz Ya je suppose .. bien que je le qualifie déjà dans la phrase suivante. De toute façon, il n'a pas besoin d'être là .. gonzo. Merci pour les commentaires.
Trevor_G
6

Ça dépend.

Si votre contrôleur, ou code d'algorithme de contrôle, peut mesurer la température de charge et garder une trace de la sortie souhaitée avec une résolution supérieure à 1% (en notant que la relation sortie / température n'est pas linéaire), il est possible d'obtenir bien mieux que Résolution de sortie effective de 1% par tramage, comme le suggère la réponse de Neil_UK . L'amélioration réelle que vous pouvez gérer dépendra de la durée de la constante de temps de la charge par rapport au temps de cycle de votre sortie.

Si votre contrôleur ou code ne peut pas le faire, vous obtiendrez une certaine fluctuation de la température de charge. Par exemple, si le point de consigne et les conditions environnementales sont tels que la sortie «correcte» pour la température de charge requise serait de 30,5%, alors la sortie la plus proche peut être de 30%, auquel cas la charge refroidira légèrement en dessous du point de consigne , ou 31% dans ce cas, il chauffera légèrement au-dessus du point de consigne, et ce n'est qu'en «remarquant» cet écart de la température de charge réelle que le contrôleur peut modifier sa sortie pour corriger l'écart.

Je suppose que la taille de la fluctuation dans ce dernier cas dépendra des coefficients proportionnels et dérivés de votre algorithme de contrôle, et votre tâche sera (comme toujours) de régler le contrôleur pour une meilleure précision sans risquer l'instabilité ou un dépassement excessif.

Réfléchissez également à ce que vous entendez exactement par précision . Avez-vous besoin d'une précision absolue (un point de consigne de 100 ° C donne une valeur contrôlée qui est vraiment 100 ± 0,1 ° C) ou juste de la stabilité (la valeur contrôlée peut se stabiliser de 98 à 102 ° C mais reste stable à ± 0,1 ° C)? La précision absolue de la mesure de la température est plus difficile à réaliser que les gens ne le pensent, mais il existe de nombreuses applications où la précision absolue n'est pas aussi critique tant que la stabilité est bonne.

nekomatic
la source
+1 Je suis d'accord avec cela et toutes les réponses ici, mais nulle part dans la question du PO, il n'indique qu'il s'agit d'un système en boucle fermée, c'est-à-dire avec un retour de température. C'est juste quelque chose que tout le monde a supposé parce que c'est ainsi qu'ILS l'auraient fait.
Trevor_G
@Trevor le titre dit dans une boucle de chauffage PID .
2017
Oui, mais cela pourrait signifier n'importe quoi, ou rien. Je soupçonne que l'OP ne détecte pas la température, ou ne peut pas le faire avec précision, ou cette question serait un non-démarreur. BUt sans vérification ... qui sait.
Trevor_G
6

Très probablement oui. J'ai fait exactement ce que vous demandez dans un produit commercial.

La raison pour laquelle je dis "très probablement" au lieu de simplement "oui" est que pour obtenir une résolution de température plus élevée que la résolution PWM, la période PWM doit être significativement plus petite que la constante de temps thermique dominante. À moins que vous n'ayez un appareil de chauffage très inhabituel (le filament d'une ampoule à incandescence pourrait en être un exemple), cette exigence va être satisfaite.

Exemple réel

J'écrivais le firmware qui contrôlait le courant et la tension à travers un tube Xray. Une logique de niveau supérieur spécifierait ce que la tension et le courant devaient être, et le travail de mon firmware était de le faire.

Dans ce cas, le tube n'était qu'une cathode et une anode, sans grille. Le courant du faisceau a été contrôlé en modifiant le niveau d'attaque du radiateur cathodique. C'est à peu près aussi petit et agile d'un appareil de chauffage que possible, mais sa constante de temps était encore de plusieurs millisecondes.

Le PWM du radiateur fonctionnait à plusieurs kHz, plusieurs fois plus rapidement que toute fréquence de réponse significative du radiateur. Malheureusement, la résolution PWM était trop faible pour atteindre certains des courants souhaités dans la tolérance d'erreur souhaitée. Cela n'a pas été aidé par la fonction de la température de la cathode au courant de faisceau étant hautement non linéaire.

Si c'était la seule contrainte sur le PWM, j'aurais pu simplement augmenter la période PWM pour obtenir une résolution plus élevée. Cependant, ce processeur a fait un tas de choses, et en raison de restrictions matérielles, la même horloge a été utilisée pour d'autres choses et n'a pas pu être modifiée.

La solution était de mettre en œuvre le tramage du cycle de service PWM. Si je me souviens bien, j'ai utilisé 8 valeurs de cycle de service différentes. Dans ce cas, je pourrais utiliser un moteur DMA dans le microcontrôleur pour séquencer automatiquement les 8 valeurs. La routine de réglage du rapport cyclique a fait le calcul et a ajusté 0 à 7 des valeurs un compte plus élevé que le premier.

Cela a effectivement fourni une résolution PWM 8 fois plus élevée. La période PWM x8 était encore courte par rapport à la constante de temps du réchauffeur, de sorte que le réchauffeur faisait toujours facilement la moyenne des valeurs de cycle de service multiples.

Non-linéarité

Je vois que Trevor en a déjà parlé. La température des radiateurs peut souvent être assez non linéaire avec la puissance d'entrée. Cela est généralement dû à la convection ne réagissant pas linéairement avec la température, et donc au refroidissement d'un objet chaud de manière disproportionnée plus que d'un objet plus froid. À des températures beaucoup plus élevées, le rayonnement du corps noir devient important. La puissance rayonnée est également assez non linéaire avec la température.

Dans mon cas, non seulement la cathode était principalement refroidie par le rayonnement du corps noir (elle était sous vide), mais la fonction de la température par rapport au courant du faisceau était également très non linéaire.

Les systèmes non linéaires sont difficiles à contrôler. Des moyens simples comme le PID ou tout autre élément dérivé de l'analyse du domaine S ne fonctionnent pas bien avec les systèmes non linéaires. Si vous essayez, vous finissez par sur-amortir certaines parties de la cuisinière juste pour maintenir la stabilité dans d'autres parties de la cuisinière. Cela peut entraîner des temps de stabilisation inacceptablement longs dans les parties de la plage qui sont trop amorties.

La solution que j'ai utilisée dans ce cas, et que j'ai utilisée sur quelques autres projets aussi, était de linéariser le système du point de vue de la boucle de contrôle.

J'ai fait cela en insérant une recherche linéaire par morceaux entre la sortie du contrôleur et l'entrée système. Pendant la fabrication, le système a été exécuté en boucle ouverte à un certain nombre de points de consigne. Les résultats ont été utilisés pour remplir la table de recherche stockée dans une mémoire non volatile unique à chaque unité.

Le système est toujours non linéaire dans n'importe quel segment de la table de recherche. Cependant, ces segments représentent une petite fraction de la plage du système, de sorte que les caractéristiques du système ne changent pas beaucoup sur un segment. Si c'est le cas, utilisez plus de segments.

Le résultat a très bien fonctionné. Oui, tout cela fonctionne dans un produit commercial que vous pouvez acheter sur étagère aujourd'hui.

Olin Lathrop
la source
2

Plusieurs personnes l'ont déjà mentionné, mais je préfère clarifier.

Remarque: si votre appareil de chauffage a un contrôle électronique de la température intégré, veuillez passer à la dernière section de ma réponse.

PWM ne contrôle pas la température d'un appareil de chauffage conventionnel

Au lieu de cela, il contrôle la quantité d'énergie expulsée par le radiateur. Si le chauffage d'appoint est idéalement isolé, un signal PWM constant contrôlerait la vitesse à laquelle la température augmente - jusqu'à ce que le chauffage fond ou se ferme.

En réalité, la chaleur est inévitablement perdue par convection, rayonnement ou d'autres processus, donc un équilibre stable peut se former: si un appareil de chauffage est chauffé à 100% par cycle, il pourrait être évalué pour chauffer à 300 ° C dans certaines circonstances prédéfinies.

Cependant, ces circonstances ne peuvent jamais être fiables: le vent, la pression de l'air, l'humidité et la température ambiante peuvent fausser le rapport cyclique-température de votre appareil de chauffage.

Si vos températures sont très élevées (supérieures à environ 200 ° C), vous pourrez peut-être vous en sortir avec des variations dues à des facteurs extérieurs quelque peu négligeables, mais dans ce cas, la température exacte n'est pas très précise de toute façon, donc des ajustements inférieurs à 1% seraient n'a aucun sens.

Se référer à un capteur de température

Un moyen fiable de contrôler une température serait d'utiliser un capteur de température: si la température souhaitée est supérieure à celle détectée, alimentez le chauffage à 100%; s'il est inférieur, coupez complètement l'alimentation.

La raison pour laquelle vous utilisez 100% ou pas de puissance est que les radiateurs sont toujours réactifs et que vous souhaitez très probablement que la température atteigne le niveau souhaité aussi rapidement que possible.

Supposons que vous ayez un appareil de chauffage qui peut normalement faire de 20 à 300 ° C, et que vous en avez besoin pour chauffer de la température ambiante à 100 °.

Si vous l'alimentez avec un cycle de service PWM de 30%, il commencera à augmenter rapidement la température, puis ralentira progressivement. Selon le type de chauffage, cela peut prendre des heures avant qu'il n'atteigne réellement la température souhaitée. C'est parce que la perte de chaleur augmente avec la différence de chaleur, donc les derniers degrés prennent le plus de temps.

Au lieu de cela, vous devez alimenter l'appareil de chauffage avec 100% de la puissance disponible pour lui permettre d'atteindre la température souhaitée beaucoup plus rapidement.

Lorsque la température atteint la valeur souhaitée, vous devez toujours réagir rapidement aux rafales soudaines occasionnelles de vent soufflé sur votre appareil de chauffage ou à des conséquences similaires.

Application PWM possible

Dans certains cas, un réchauffeur, sa charge et le capteur peuvent tous être très réactifs, de sorte que le circuit peut avoir besoin de prévoir les changements de température provoqués par le réchauffeur dans une certaine mesure.

Si cela n'est pas possible, l'alimentation du réchauffeur avec une puissance fractionnée peut être utile pour maintenir la température au niveau souhaité.

Dans ce cas, les détails exacts (y compris la réponse à votre question) peuvent dépendre des paramètres physiques de l'appareil de chauffage, de sa charge et de l'environnement. Ou la température doit être vraiment très stable.

Dans ces cas, un signal PWM n'a pas besoin d'être précis, mais doit toujours s'accorder de haut en bas en fonction de la lecture de la sonde.

Problèmes de commutation électrique

Un radiateur électrique peut ne pas être conçu pour fonctionner avec une alimentation PWM. Selon la façon dont il est construit, il pourrait commencer à vibrer et éventuellement se détruire ou causer d'autres problèmes imprévus.

Presque tous les appareils de chauffage consomment beaucoup d'énergie. Les thyristors ou transistors de commande PWM pour de telles applications peuvent être assez inefficaces et nécessitent un refroidissement substantiel en plus d'être coûteux.

En ce qui concerne les thyristors à phase correcte (pour AC), une précision inférieure à 1% peut ne pas être réalisable de manière fiable avec eux car l'alimentation AC peut ne pas être un sinus parfait.

Réchauffeurs à commande électronique

Certains «radiateurs» peuvent en fait être des appareils électroniques qui détectent la température et contrôlent la puissance eux-mêmes. La température souhaitée peut être réglée via un signal PWM. Celles-ci sont rares mais c'est la seule théorie qui pourrait expliquer la relation directe entre le rapport cyclique et la température.

Dans ce cas, la réponse à votre question dépend de l'électronique de commande intégrée du chauffage. Des ajustements précis décrits dans la question fonctionneraient probablement en supposant que l'électronique elle-même est suffisamment précise elle-même - ce fait devrait être indiqué dans sa documentation.

Parce que presque tous ces appareils de chauffage fonctionnent en interne comme je l'ai décrit plus tôt, ils effectuent souvent des cycles marche-arrêt / arrêt assez longs, de sorte que la température réelle peut fluctuer de haut en bas avec le temps, quelle que soit la précision du signal PWM.

Jack White
la source