THERMO10Enceinte thermostatée 0 à 100°C
à régulation PID

1 Pourquoi une enceinte thermostatée
2 Caractéristiques et performances
3 L'enceinte elle-même
4 Les essais préalables
4.1 Essai Puissance nécessaire
4.2 Essai du relais statique
4.3 Le froid
4.4 Choix de l'énergie de chauffage
5 Électronique et régulation
5.1 Quelques idées essentielles de départ
5.2 Le Schéma et le logiciel
5.3 La MLI ou angle d'ouverture à la seconde
5.4 La régulation PID et les INT
5.5 La RS232
6 Quelques anecdotes
7 Conclusions

Si vous arrivez directement sur cette page par un moteur de recherche, vous pouvez avoir accès à la table des matières et à chaque article, en page d'accueil.    L'accès se fait par l'un des deux liens en tête de colonne de droite ----->

Les questions correctes en fin d'un article recevront toujours une réponse, mais pas les questions par "CONTACTER L'AUTEUR" qui n'auront pas de REPONSE (car je suis obligé de répondre par mail).

A voir aussi  en colonne de droite (lien direct) ------> les articles "BONJOUR" ainsi que "INFOS rapides"...
Il est déconseillé d'indiquer dans les commentaires ses coordonnées (mail, adresse ou téléphone).
Ce blog est modéré et vous pouvez demander simplement en tête de question à ce que vos informations restent confidentielles si nécessaire. Rien ne sera publié, mais ma réponse sera faite sur l'article correspondant (et non par mail).



Avant propos

Tout passe par des priorités, et avant de m'attaquer à la mise au point d'un montage qui dérive en température, je me suis dit qu'il fallait faire quelque chose pour pouvoir effectuer quelques mesures "un tantinet" précises, avec des températures paramétrables et stables, et donc de construire une enceinte thermostatée …
Alors c'est parti pour ce projet qui aura certainement d'autres débouchés au niveau énergie et surtout en électronique embarquée.
Cet article mettra en exergue les points les plus délicats et laissera volontairement de côté le traditionnel bricolage d'isolation, qui n'offre que peu de difficultés, (mais toujours réfléchir en termes de pont thermique).
C'est une approche un peu différente, qui sera peut être plus claire.
D'autre part je me suis aperçu que les articles trop développés n'intéressent qu'une minorité, alors je vais donc aller à l'essentiel en supposant que le contexte général est connu.


1 Pourquoi une enceinte thermostatée

J'avais besoin d'avoir une petite enceinte me permettant de maintenir une température constante comprise entre la température ambiante et 100°C environ.
(Le 0° n'est possible que si l'enceinte est en extérieur et "en Sibérie" ! C'est simplement pour indiquer que la mesure de température descend à 0°).

Cela me permettra de faire des essais et des corrections sur quelques montages qui dérivent avec la température.
Cela permettra aussi de vérifier la tenue en température de certains montages.

Cette enceinte permettra aussi d'étuver les petits transformateurs et de réaliser une petite imprégnation, d'étuver des circuits imprimés etc…

Cette enceinte permet aussi d'avoir une référence de température variable, stable et assez précise.

Outre cela, chacun y trouvera des emplois spécifiques comme une Yaourtière (8 Heures de 43 à 45°C)
D'autres en feront une Couveuse pour les œufs (21 jours à 37.2 à 37.6°C)

Voilà quelques idées qui m'ont conduit à passer un peu de temps sur ce sujet. Il me parait utile, car tout ce qui touche à l'énergie est intéressant pour moi,… mais aussi pour vous.

Je n'avais encore jamais eu l'occasion de réaliser une régulation PID, et c'était donc un excellent exercice, agrémenté par une commande en largeur (d'impulsions) un peu spéciale.

Attention ce n'est pas une enceinte climatique, car seule la température est traitée et ne peut que dépasser la température ambiante. La création de froid a été essayée, mais n'est pas véritablement exploitable dans cette réalisation, on  y reviendra !

Une fibre optique verre traverse la porte de l'enceinte en partie basse et est un témoin de l'activité effective de la lampe de chauffage.

2 Caractéristiques et performances

- Enceinte de dimensions intérieures : 26x26x20 soit 10.4 litres.
- Le Premier Isolant est du polystyrène extrudé de 20 mm, doublé par du polystyrène expansé de 20mm croisé/collé.
- Plage de température : depuis la température ambiante +1°C environ jusqu'à 100°C
- Précision Consigne -0.2° -0°C maxi et  à -0.1°C -0°C en quelques minutes suivant la valeur de la consigne
- Élément de chauffage par lampe Incandescence (ou halogène) 220V ~ 50 Hz (ou 60 Hz) 100 Watts
- Commutation au 0 Volts par relais statique à chaque alternance (Positive ou négative)
- Témoin visuel du verrouillage de régulation pour écart compris entre -0.5°C et -0°C de la consigne, par voyant LED jaune.
- Indication de chauffage actif par témoin fibre de verre sur enceinte et petit "néon" vert de contrôle sur la régulation.
- Possibilité de modifier en cours de fonctionnement la température (Avec maintien de la précédente commande instantanée)
- Création simple de 2 températures limites (haute et basse) avec alarme par buzzer.
- Références de temps obtenue directement par le secteur et non par l'oscillateur local
- Régulation par PIC 16F876 à 16 MHz
- Compatible aussi avec secteur à 60 Hz

3 L'enceinte elle-même

L'enceinte isolante est un sujet purement "bricolage" et chacun le réalisera suivant ses affinités et méthodes. Cependant le volume traité influera sur la régulation PID, et dethermo8s corrections seront vraisemblablement à apporter aux coefficients PID.

Pour ma part, je l'ai choisie en polystyrène extrudé de 20mm (URSA XPS) doublé de polystyrène expansé standard basse densité. La partie inférieure est réservée à la lampe de 100 W.
(Ci-contre photo de la première réalisation non encore doublée).

L'assemblage du polystyrène extrudé est fait par vis de 50 mm serrées très délicatement à la main. Le polystyrène expansé est seulement collé. (Colle ciment standard)

La lampe est installée sur une équerre tôle avec douille stéatite (pas encore installée ici sur la photo ci-contre) pour résister à la chaleur. L'ensemble est fixé sur une petite plaque d'aluminium anodisé noir de 3 mm d'épaisseur.

Cette plaque d'aluminium est posée sur deux tasseaux aluminium perpendiculaires, éloignant l'ensemble du polystyrène du fond. Deux bandes de carton isolent les tasseaux du polystyrène du fond.
L'ensemble est fixé par 2 vis nylon dans la structure.

La douille de la lampe est alimentée par 3 fils téflon thermo9doublés de gaine thermo, traversant au droit la paroi pour rejoindre une boîte "Plexo" de raccordement avec un câble d'alimentation standard en partie extérieure.
(La plaque aluminium fait également office de radiateur et de masse thermique et participe largement à rayonner la chaleur).

Un ventilateur 12V de diamètre 100 mm (Récupéré sur un vieux PC) est alimenté en 6V continus seulement. Le ventilateur participe à homogénéiser la chaleur dans l'enceinte. Il souffle directement sur la lampe.

Les deux fils de ce ventilateur traversent directement la paroi au plus près. (Ce ventilateur comporte une partie électronique qui "résiste" pour l'instant !!!) En cas de problèmes il faudra envisager une commande déportée avec axe traversant ou un ventilateur spécial….Les fils doivent être différenciés impérativement (Alimentation en Courant Continu)


4 pieds en polystyrène extrudé permettent d'isoler le fond de l'enceinte thermo11et de faciliter l'ouverture de la porte sans frottements au sol. (Photo ci contre)

La porte en face avant consiste simplement en 2 plaques collées l'une sur l'autre avec feuillure. Des renforts sont nécessaires à cause de la légère déformation à la chaleur. Cela est réalisé ainsi :

L'entrée de l'enceinte est renforcée par des tasseaux bois et des petites équerres.

La fermeture de la porte est simplement assurée par des petits ressorts à lame issus de vieux volets roulants, coupés puis chauffés seulement à chaque extrémité pour pouvoir être recourbés sans casser.
Un bout de fibre optique en verre traverse la porte au niveau de la lampe.

Enfin un passage de câbles pour l'utilisation réelle est réalisé pour éviter de démonter toute la connectique des montages en essai. Ce passage est réalisé nécessairement sur un côté de la porte. (Flèches rouges sur la photo)
En l'absence de câbles, un bouchon est placé.

Meilleure sera l'isolation, plus rapide sera la montée en température et plus réduites seront les pertes.

(Je passe sous silence les notions que j'ai juste regardé avant de commencer cette enceinte et qui sont la conductivité thermique, les capacités thermiques volumique, massiques, l'effusivité ainsi que la diffusivité….! Non merci. Seules les unités me permettent de me guider un peu dans ce labyrinthe de la terminologie).

A titre d'information, au cours de la mise au point, j'ai pu évaluer les pertes intrinsèques de l'enceinte à différentes températures pour une température ambiante de 20°C.
Cette mesure est basée sur l'évaluation du seul terme "Proportionnel de la régulation" pour une puissance de la lampe de 100W et la proportionnalité du temps d'allumage (La puissance a été supposée constante, ce qui n'est pas tout à fait irréel avec un allumage par seconde, le plus souvent)

Nota : Pour cette mesure, la température était proche de la consigne, mais n'y était pas exactement, puisque les autres termes de la régulation ne participaient pas à la régulation.

Attention aux pertes thermiques qui augmentent avec la température. Je pense aux têtes de vis qu'il est largement préférable de faire disparaître avec la deuxième couche de polystyrène.

25° ---> 0.3W
30° ---> 2.06W
40° ---> 3.75W
50° ---> 13.5W
80° ---> 36W

Pour ne pas éparpiller de billes de polystyrène partout, j'ai finalement tapissé le polystyrène basse densité extérieur avec du papier peint "Ingrain" (avec des particules de bois). (Cela est uniquement fait pour éviter d'abîmer le polystyrène et ne participe que de façon infime à l'isolation).
Pour une bonne étanchéité et ne pas abîmer le polystyrène, la surface de joint avec la porte a été ajustée avec du joint en cartouche de type acrylique qui n'attaque pas le polystyrène. 

4 Les essais préalables

Plusieurs essais de faisabilité m'ont été nécessaires avant de démarrer la réalisation réelle de la partie régulation.

4.1 Essai Puissance nécessaire

Une fois l'enceinte construite au plus juste des dimensioThermo2ns, j'espérais utiliser une, voire deux résistances planes de 18W 230V (récupérées sur un vieux photocopieur). Échec ! Sur la courbe ci-dessous, on voit parfaitement que l'on atteindra péniblement que 50°C au terme de plus d'une heure de chauffe permanente !

Un deuxième essai avec une simple ampoule  de 100W avec laquelle on atteint 100° en 15 minutes environ semble accréditer cette puissance. Et quoi de plus simple et meilleur marché qu'une ampoule d'éclairage de 100W. !
C'est cette dernière valeur de 36 W de pertes qui m'a incité à doubler l'enceinte par une deuxième couche de polystyrène, car la réserve de puissance reste très modeste en extrapolant à 100°C. (Je ne suis cependant pas certain d'un gain réellement important)


(Une ampoule halogène de 110 W a été également essayée (Avec succès) puisqthermo4ue ma vieille ampoule à filament est vouée à mourir de sa belle mort, mais est-ce bien certain ?
En effet après les essais multiples en commandes diverses et variées et toujours plus stressantes au niveau du rythme, pour une lampe à filament, celle-ci est toujours vivante et je vais donner une explication plausible :
La commutation étant toujours à Zéro, l'appel de courant à froid sur un pic d'alternance n'existe pas et fragilise donc moins le filament)

On notera q'une petite réserve de puissance supplémentaire ne serait pas inopportune et permettrait d'avoir une montée en puissance plus rapide et ainsi de la  réserve.
Cela ne me semble pas absolument impérieux car la lutte des "écharpes" contre les "glaçons" demande du temps, et à moins d'avoir des matériaux n'accumulant aucune calorie, cela parait peu utile au final et contraire à l'aspect sécurité (voir ci-après).

(Si vous voulez faire quelques provisions de lampes pour une enceinte de ce type, achetez quelques ampoules de 100W halogène car elles disparaîtront aussi des rayons d'ici quelques années)

La température d'inflammation du polystyrène est de l'ordre 350°C, mais un ramollissement peut se produire à partir de 100°C, et le fabricant recommande de maintenir une température inférieure à 79°C.
Voir à ce sujet le PDF très intéressant d'un fabricant sur l'aspect sécurité du polystyrène, car en température élevée, des émanations de différents produits ne sont pas à exclure. Voir cet article d'un fabricant

Aussi pour ceux qui comptent utiliser de façon permanente un tel équipement, il me semble préférable de commencer la première couche d'isolation de l'enceinte par des produits neutres chimiquement et ininflammables. (Laine de roche ou de verre etc...).

En utilisation occasionnelle, je ne vois pas de problème majeur si ce n'est d'éviter de dépasser 79°C

4.2 Essai du relais statique

C'était la deuxième vérification importante à faire avant le développement de la régulation. Cette vérification confirme la bonne exécution de commutation au Zéro de ce relais statique de thermo_3récupération (Marque Gordos utilisé dans les années 90).
Je n'ai cependant pas vérifié son temps de réponse, pour commuter au prochain passage à zéro.

Ces relais pour circuit imprimé sont de 2 A maxi, mais je dispose aussi de modèles 20A au cas où 2 A ne suffiraient pas !

Les relevés témoignent de cette intéressante possibilité des relais statiques.

Autre avantage, il n'y aura aucun parasite de commutation généré, ce qui pourrait rentrer facilement dans les normes CE.

Monter au dessus de 200W me paraît à priori dangereux, car dans le cas d'un fonctionnement permanent la température pourrait fondre et peut-être enflammer le polystyrène.

4.3 Le frthermo_5oid

Je ne pensais pas à ce stade si j'allais vérifier avec le congélateur les températures basses que l'on pouvait obtenir, mais j'ai voulu tout de même faire un brin d'essai de fortune…
J'ai donc mis 2 bouteilles de 33 cl au congélateur pour 12 heures de temps, puis je les ai placées dans l'enceinte à la place de la lampe.
J'ai été très surpris de l'allure de la courbe de température et de ne pas passer en dessous de zéro.
Le plus surprenant est certainement cette lente remontée après la chute brutale au tout début de l'essai.
À ce jour, je n'ai pas d'explication certaine, mais je suppose que c'est un problème de chaleur latente de transformation de l'état solide à l'état liquide (Enthalpie pour dire de façon actuelle plus compliquée la même chose). C'est finalement comme une glacière portable (Avec de la glace).

Au départ la glace transmet intégralement son "froid", puis la fonte débutant son office, le processus de prise de calories dans l'enceinte s'amplifie, mais parallèlement la température de liquéfaction limite les échanges.
La liquéfaction commence en périphérie des bouteilles aussi je pense que seul le zéro degré de la glace fondante est communiqué à l'ensemble du volume de l'enceinte. on peut dire aussi que toute la chaleur est utilisée pour fondre la glace...
C'est ce que j'imagine comme plausible et que de ce fait, on ne passera jamais en dessous de 0° pour une température ambiante "normale" d'une vingtaine de degrés. Les spécialistes du génie thermique pourront certainement démonter mon scénario et ce sera avec plaisir que j'apprendrai la réalité des échanges thermiques dans une galcière.

Cette enceinte ne créera donc pas de froid en dessous de zéro, et un module à effet Peltier, comme dans une glacière électrique ne me semble pas de première nécessité. (Il reste cependant assez d'I/O pour commander un tel module, mais la température est seulement prévue à partir de 0°C).
La température de base sera toujours la température ambiante et la régulation ne sera possible qu'environ 1 °C au dessus de cette température.

4.4 Choix de l'énergie de chauffage

Non, pas de fuel ni de bois !!! On peut prendre l'énergie électrique sur une alimentation continue maisthermo_6 c'est payer bien cher un luxe inutile. Il est préférable de prendre l'énergie directement sur le secteur. Problème !
Cette énergie instantanée (Énergie active) n'est pas constante mais est une sinusoïde positive.

Ceci implique que l'on ne pourra pas compter sur une régulation plus fine que 10ms au mieux, et que pour réaliser l'intégration de régulation, une centaine de mesures conduit directement à 1 seconde.
Il faudra donc que l'enceinte ait suffisamment d'inertie pour ne pas trop dériver durant l'absence de puissance.
Cette inertie est assurée par le volume d'air et une plaque d'aluminium anodisé noir qui supporte la lampe, (dont le rôle premier est d'éviter de brûler le polystyrène par la chaleur de la lampe).
Une ampoule de 100W à filament assurera donc le chauffage, car c'est le radiateur le moins coûteux de cette catégorie de puissance.
J'ai également fait quelques essais avec les nouvelles ampoules faible consommation de type halogène, et la chaleur est également suffisante.
Ces modèles sont-ils donc si économes que cela ???? (Ils seront abandonnés dans les années qui viennent...La réponse est à priori  incluse)

5 Électronique et régulatiothermo12n

C'est le point le plus intéressant qui va faire de cette réalisation un outil fort simple à utiliser.
 
5.1 Quelques idées essentielles de départ

(Après avoir fait les deux essais préalables du § ci-dessus, les idées ci-dessous sont aussi issues du matériel dont je dispose)

- Utiliser un PIC 16F876
- Afficher sur afficheurs LED HP 5082-7300 les informations (Avec décodif incorporée).
- Commander en "MLI" le dispositif de chauffage par pas de 10 milli secondes sur une seconde (100 pas) avec relais statique.
- Mesurer la température avec une diode en utilisant la sonde de température déjà décrite.
- Chauffer l'enceinte avec une résistance plate ou une ampoule standard.
- Prévoir une liaison RS232 en sortie pour enregistrement réel des températures et des coefficients PID.
- Prévoir RS232 en entrée (Seulement au niveau Hardware) pour éventuelle programmation de température par PC.

5.2 Le Schéma et le loTHERMO_0giciel

NOTA :
Pour voir dans de bonnes conditions les fichiers PNG, ouvrez les dans une nouvelle fenêtre.
.

.

.

.

.

.

.

.





Pas nécessaire d'attendre plus pour présenter quelque chose de simple. Voici les explications qui vont de pair avec le schéma qui est à jour des dernières modifs. (Ce n'est pas le cas des implantations de CI proposées)
La partie alimentation ne nécessite pas spécialement de transformateur à point milieu…
J'en avais un, alors je l'ai utilisé et j'ai économisé la place de 2 diodes d'un pont d'entrée.
Si vous n'avez pas de transfo à point milieu, mettez un pont 4 diodes et un deuxième pont 4 diodes pour le circuit de mesure 50Hz  (En remplacement des Diodes D1 et D4).
Si je ne fais pas d'erreur, cela devrait marcher aussi. (Il faut obtenir des signaux de 10ms)

Ce circuit D1 et D4 est chargé d'amener une tension alternative à 2f soit 100 Hz de 0 à 5 V. (La valeur à 4.8V doit être ajustée AVANT montage du PIC).
Le condensateur C13 de 0.1 µF est essentiel pour protéger d'éventuels parasites, et une diode zener de 4.7 Volts ne m'a pas paru nécessaire.
Cette entrée de fréquence servira de référence au processus, indépendamment de l'horloge interne.
Cette entrée interruptible du PIC est obligatoirement RB0, car il faut pouvoir choisir le front.
(Nota : Il aurait été délicat d'avoir deux références de temps très proches)

Le reste du montage est très classique, notamment avecTHERMO13 la partie sonde de mesure de température dont le schéma est presque inchangé par rapport à l'article sur la sonde de température
J'avais un LM 336-2.5 à disposition, et après quelques hésitations, je me suis aperçu qu'il est plus gourmand en courant, aussi R1 a dû être modifié en 1.5K.
Sur ce montage j'ai eu aussi un problème aléatoire de bruit dont j'ai pu me débarrasser par un condensateur de 1 nF en contre réaction  (//R6).
Un montage plus simple avec LM35 aurait pu être très intéressant mais il ne convient pas à cause du temps d'inertie du boîtier TO92 (De l'ordre de la minute !).


L'entrée de la consigne de température se réalise par le potentiomètre P4 sur RA1/AN1 et la conversion A/D. J'avais prévu une deuxième entrée potentiométrique pour simuler en MAP la montée en température de l'enceinte, mais je ne l'ai pas utilisée.

Si le potentiomètre est sur Zéro ou qu'il y passe lors de la première saisie de la consigne, cela indique que l'on veut utiliser les alarmes basse et haute et donc la saisie obligatoire de la consigne AVEC en plus 2 autres températures, dans l'ordre : limite basse puis limite haute, avec émission d'un signal de Buzzer pour chaque valeur.

Une fois le(s) réglage(s) de température(s) effectués, la validation se réalise par le sTHERMO14witch avec un petit signal du buzzer.

Le switch est également scanné durant le fonctionnement et réinitialise le programme SANS remettre à zéro, heures, minutes et secondes.

Au niveau relais statique, celui-ci (Comme une majorité de ces produits!) a un courant de fuite d'environ 7mA à vide sur le 230 V (Y faire attention lors des essais, car ce n'est pas un véritable interrupteur).
La commande de ce relais est équivalente à la consommation d'une LED et j'ai oublié de noter la valeur, mais ce que je sais, c'est que le PIC est tout à fait en mesure de piloter directement sans aucun problème.

La pseudo-MLI qui pilote le relais Statique est réalisée exclusivement par programme sans utiliser les fonctions dédiées MLI du PIC. En ce sens n'importe quel PIC pourrait convenir !
(Ce n'est pas pour se faire plaisir, mais c'est simplement qu'il n'est pas possible techniquement de l'utiliser (Le TIMER 2, pour la période de base MLI n'a pas d'entrée externe))

L'affichage est moins gourmand en I/O que les simples afficheurs anciens modèles 7 segments + DP  et il faut seulement 4 fils datas (BCD) et 3 fils de sélection. (Il est par contre encore un peu plus gourmand en courant !) Les liaisons sont faites très simplement par du fil en nappe et par soudures, (je n'ai pas de connectique de ce type).

On note une LED (jaune) chargée d'indiquer que l'on a atteint la zone de régulation entre -0.5°C et -0°C de DELTA par rapport à la consigne et que l'on ne dépasse pas cette zone. Ce voyant peut clignoter très rapidement au gré des mesures toutes les 10ms.

Il y a aussi un petit voyant "néon" 230V (fluo en réalité) pris en sortie de relais statique, mais il n'a pas été prévu sur le CI. C'est un petit fluo provenant d'un appareillage électrique de marque, non utilisé et parfaitement isolé. (C'est le fil jaune en diagonale que l'on voit sur la photo ci-dessus) Sa fixation est très aléatoire ....car non prévue !

Enfin Le PIC utilise un résonateur à 16 MHz à la place d'un quartz (sans aucun problème). La précision d'un quartz n'est pas requise vu que l'horloge est pilotée par le secteur.
L'alimentation de l'ensemble est en 5 Volts, et est assurée par un 7805 en TO220 sur radiateur, car ces "bougres" d'afficheurs sont plus que voraces….

Le Ventilateur 12V est alimenté en permanence (à demi vitesse par 100 ohms 1W) tant que la régulation est sous tension. C'est nécessaire pour ne pas l'oublier, mais cela ne causerait que des erreurs de consigne, sans endommager l'enceinte, (Du moins pour mes valeurs de puissance de chauffage et de matériaux utilisés).
Il n'est pas utile d'avoir une commande spécifique de cet "homogénéisateur" d'air chaud !

L'affichage 3 digits indique les degrés Celsius et dixièmes de degrés, de 0 à 102.3 sur 4 digits ! Ah oui  ?
Non il y a un truc ! En effet pour la petite trentaine de valeurs au dessus de 100 °C, le point décimal sur le digit des centaines sera allumé, indiquant la valeur 100.0. (100.0, 100.1 jusqu'à 102.3).
(La valeur 101.3 sera indiquée ainsi 0.1.3)

Notez que cette température de 100°C (Ou plus) n'est pas recommandée, ainsi que cela a été indiqué, par un fabricant de polystyrène. Je ne peux que recommander de ne pas dépasser 79°C par mesure de sécurité, bien que le montage puisse monter à 102°C, voire un peu plus (et de mémoire aux alentours de 120°C en chauffage permanent).

5.3 La MLI ou angle d'ouverture à la seconde

Un autre grand principe a déjà été posé : C'est le secteur qui servira d'horloge à cause de la coupure à zéro du courant du relais statique.
Vous aurez remarqué que l'énergie alternative à 50 Hz est "discontinue", qu'ell est toujours positive, et qu'elle varie suivant une sinusoïde dont les sommets inférieurs sont à 0. On ne peut donc pas compter sur une constance d'énergie au fil du temps en milli secondes
Ainsi que déjà indiqué, la mesure de temps est directement issue du secteur, car la commande du relais statique doit être synchrone des alternances.
La tension réseau est redressée en double alternance et convertie en impulsions de 10 ms de période dont seuls les fronts positifs seront utiles, car ils laissent pratiquement 7 ms de temps pour commander le relais statique avant le prochain passage à zéro.
(Les différentes boucles du logiciel prennent 1 à 3 milli secondes environ).

La commande de la lampe sera réalisée en pseudo-MLI par entité indivisible  de 10 ms et donc une résolution de 100 pas à la seconde (Secteur 50Hz).
Il s'agit d'un comptage par 10 ms de période d'activité de chauffage durant une seconde.
Cela est en fait plus un angle d'ouverture qu'une MLI, mais le résultat est identique et c'est l'inertie thermique qui fait le joint sur les alternances qui seront éliminées.
La plus petite période de mesure est donc de 10 milli secondes, et la modification de la valeur de régulation PID ne peut intervenir avant la fin d'une période de 10ms, sauf si il y a dépassement de la consigne. Pour une enceinte thermique ce temps parait acceptable.
Cependant, comme il s'agit d'une régulation, j'ai voulu faire une régulation PID, et je me suis inspiré d'un excellent site :
http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/

Site qui m'a parfaitement guidé principalement par l'allure des courbes de l'exemple attenant à ce même article. Félicitations à Ferdinand pour la clarté de ses explications et exemples.

La lampe sera donc commandée de 0 au maxi (100W) en 100 pas, réglés par comptage des impulsions secteurs à 10 ms (Et non par le temps qui poserait des problèmes de synchronisation).
L'organigramme de la séquence d'interrupts a été réalisé en premier et fonctionnait sur le papier. La suite l'a confirmé.
La puissance distribuée en chaleur par la lampe, qui joue avec la plaque aluminium le rôle de radiateur, est assurée à chaque alternance positive ET négative.

Il y a donc 100 possibilités de distribution de cette énergie durant une période de référence d'une seconde. Ces nombreuses possibilités sont en réalité peu exploitées à cause des coefficients de la régulation PID.

L'ensemble parait donc cohérent et l'absence de points bloquants est acquise.

5.4 La régulation PID et les INT

Elle nécessite quelques explications de princthermo_7ipe.

(Voir l'excellent site sur la régulation PID cité plus haut).

La puissance thermique installée pour cette enceinte est modeste, et sans véritable réserve de puissance. Elle nécessite plusieurs minutes pour atteindre une valeur de consigne élevée (C'est souvent le cas en ce domaine).

Le premier principe consiste à dire que tant que l'on aura pas atteint 0.8°C de DELTA par rapport à la consigne, on ne fait aucune proportionnalité et c'est la puissance maxi. (KP)
Le deuxième paramètre KI qui est le coefficient d'intégration a pour rôle de rassembler les 100 mesures précédentes pour corriger l'erreur statique est recalculé toutes les 10 ms et peut cependant intervenir en coupure de l'énergie de chauffage en cas de dépassement, mais peut aussi moduler sur les dernières valeurs d'une série de 100 mesures.

La régulation est voulue toujours par valeur inférieure à la consigne, ce qui fait que l'on ne dépassera pratiquement jamais la consigne, et que l'on sera 1 ou 2 dixièmes de °C  toujours en dessous.

Enfin la régulation "PI" est si efficace que le terme KD n'intervient pratiquement jamais, mais il existe pourtant, et avait une action lors de réglages PID moins précis.
Ainsi son action ne devrait intervenir que dans des cas de variatthermo15ions très brutales de température, ce qui ne peut se produire habituellement.

J'ai effectué un relevé d'un ensemble de températures régulées en fin de mise au point, pour avoir une vision réelle des capacités de régulation à différentes consignes.

Ce relevé me semble tout à fait acceptable et le mieux est de le présenter ci-contre.
Dès que l'on a atteint 2 ou 3/10 de °C, je suis passé à une consigne supérieure.
A 100°C, j'ai simplement coupé la lampe et laissé la régulation et donc la transmission de la température en RS232 pour obtenir les données de la courbe. La porte a été laissée fermée, et c'est donc seulement les pertes thermiques qui font décroître la température.

La commande du chauffage est exclusivement réalisée dans la séquence de réponse aux INT et confirmée en ON ou OFF toutes les 10 ms.

L'heure est tenue à jour sur la seule base de la fréquence réseau.

En INT on trouve également la RS232 pour le remplissage automatique du TXREG.

5.5 La RS232

La RS232 fonctionne à 57600 bps en permanence et envoie une trame toutes les secondes. Pour la mise au point, il est possible d'envoyer des trames toutes les 10 ms, mais ça va très vite …! C'est juste utile en MAP pour suivre les coefficients PID. (A cette vitesse, le temps entre période de 10 ms est suffisant pour ne pas perturber les INT)
Le programme principal après avoir calculé les coefficients, prépare les données dans la zone du buffer et lance seulement la commande de départ RS232 juste avant l'attente des 10ms suivantes.

"C'est un fil de l'eau" très utile pour contrôler le bon fonctionnement et y figure, outre les jours, heures minutes, secondes et dixièmes, un espace puis la température, les différents coefficients de la régulation, dont le Coefficient global KPP, coefficient KI, coefficient KD suivis des incontournables CR et LF.

Ces trames ASCII sont donc constituées ainsi :

3 caractères de révision du programme (015)
Jours (2), heures (2), minutes (2), secondes (2), dixièmes (2), espace (1)
Température (3), KPP (3), KI (2), KD (1) et CR (1), LF (1)

Le fichier est exploitable directement sous éditeur. (x) représentent le nombre de caractères ASCII par variable. (J'utilise l'excellent programme de Bray++ "TERMINAL"). Le fichier "capturé" est importé dans Open_Office en mode Txt.

Les courbes présentées sont extraites d'Open_Office par copie d'écran. Le chargement dans Open_Office se fait en mode txt de CALC en éliminant la version indiquée en tête de trame. L'heure est convertie en un temps sur une seule cellule, suivant la formule :

=Temps(C6;D6;E6)  les 1/100 de secondes ne sont pas significatifs puisque toujours identiques suivant le principe retenu de la fréquence réseau.

La température est exprimée directement en 1/10 de °C de 0 à 1023/10 !

6 Quelques anecdotes

- Au cours des essais j'ai groupé différents essais, car comme tout ce qui est température, les délais entre les différentes séries de mesures doivent être espacés pour se retrouver dans les mêmes conditions initiales.

Un jour, comme le capteur de température est une diode 1N4148 dans une enveloppe de verre transparente, j'avais placé plusieurs petites gaines thermo blanches pour les courts-circuits et une très petite autour du corps de la diode, car elle pourrait être influencée par la lumière vive de l'ampoule qui sert de chauffage…
Au cours des essais, dans un souci de perfection, j'avais ajouté une gaine thermo de 8 mm (noire), simplement glissée comme un manchon, autour de l'ensemble diode pour éviter toute lumière directe et de façon à ce que l'air puisse largement circuler entre la gaine et la diode. J'ai ensuite oublié cette "pseudo amélioration" à priori anodine et ajoutée dans un souci du "parfait".

Suite à la mise au point du programme, je me suis retrouvé avec des overshoots de température incroyables et je ne comprenais plus rien à cette régulation qui fonctionnait pourtant préalablement assez bien.

J'ai toujours cette crainte de fusiller quelque instruction du programme assembleur lors d'une frappe clavier ratée ? Non, j'allais reprendre une version précédente lorsque j'ai refais le film de la journée et que je me suis rappelé que la gaine thermo reste très chaude après avoir été rétreinte… Alors serait-ce le même phénomène d'accumulation thermique ?

Eh bien oui, cela n'était dû qu'à cette malencontreuse idée et cette fois je suis vacciné sur cet oubli.
Le mieux est parfois l'ennemi du bien !

- Le PIC 16F876 est un modèle ancien, mais qui m'a donné quelques soucis relativement à RA4 alors que toutes les entrées étaient déclarées ANA. Certes RA4 ne peut pas être une entrée puisque c'est seulement une sortie open collector, mais cette sortie ne pouvait pas être activée de façon normale et même au simulateur, en tentant d'écrire directement RA4, c'était impossible à certains instants.
Heureusement l'utilité de RA4 était sur une simple LED.
Je n'ai pas pu élucider ce problème et j'ai été obligé d'abandonner et pour ne pas me trouver avec une erreur latente qui pourrait resurgir, j'ai croisé des I/O pour résoudre le problème, et ce simple changement a été la solution. J'ai repassé aussi le nombre d'entrées ANA à 3 au lieu de 5.
J'ajoute que le PIC n'était pas en cause, et que comme le simulateur faisait aussi l'erreur, j'en conclu seulement que le simulateur…est bien réalisé !

7 Conclusions

Un petit appareil simple et efficace qui devrait inthermo16téresser bon nombre de lecteurs pour des applications dans différents domaines. Le programme assembleur est très simple et tient dans une seule page mémoire programme.

De même les données sauf le buffer RS232 tiennent toutes en BANK0.
La mise au point est digne d'un montage du CNRS avec des fils et appareils partout.
Voici un aperçu de ce que cela peut donner lors des premiers essais... (Essais thermiques préalables sans régulation)
(On distingue le data logger et le PC lors des premiers essais puisque la RS232 n'était pas encore développée).

Le nombre de switchs du panel a pu être limité à un seul (Sans distinction de durée d'appui), et celui-ci assure seulement la validation du potentiomètre de consigne.

Le potentiomètre de consigne retourne une valeur analogique qui est convertie en valeur de 0 à 1023 pas, qui représentent très simplement la valeur en dixième de degrés de la température !

Ceux qui veulent aller plus loin pourront y inclure un arrêt programmé sur des critères de temps, ainsi que la programmation de paliers de températures par la RS232 en Rx etc…

Pour ma part je m'arrête là !

_____ ( retour en début d'article ) ____

_____ ( retour accueil lokistagnepas ) ____

_____ ( retour accueil bricolsec ) ____