Repository navigation
[FR] Auto régulation expert - démo et réglage #1668
Pinned
bontiv
started this conversation in
Show and tell
Replies: 1 comment 2 replies
|
Hello @bontiv , Super exemple avec de très belles explications des paramètres. Merci beaucoup, je vais épinglé ton post. |
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
La démo
Je suis très content de partager mes dernières optimisations sur l'auto régulation de versatile thermostat. Je vais dans un premier temps montrer ce que j'ai pu faire grâce à versatile thermostat puis ensuite expliquer comment arriver au même résultat chez vous.
Contexte
J'ai un petit local avec 3 serveurs qui tournent à plein régime. Ils chauffent énormément et font beaucoup de bruit donc ils sont enfermés dans une petite pièce avec un climatiseur mobile Tuya.
Selon les recommandations, les serveurs peuvent fonctionner dans une plage de 10 à 35 degrées. Suivant des études par le Comité technique de l'ASHRAE, la température idéale pour des serveurs se site à 27C. En dessous, c'est du refroidissement inutile et donc de la perte d'énergie. Au dessus, il y a aussi de la perte d'énergie (et nuisances sonores) car les serveurs doivent ventiler beaucoup plus pour compenser.
J'ai mis un thermomètre connecté pour voir le résultat. Tout ne se passe pas comme prévu. Le climatiseur a une précision vraiment faible et je constate des écarts de températures de 1,5C à 3C. C'est là où versatile thermostat vient à la rescousse !
Résultat
Je n'ai plus jamais d'écart de température de plus de 1C par rapport à ma consigne.
Ma config
Pour parvenir à se résultat, j'ai utilisé le mode expert de Versatile Thermostat (version 6.8.1 minimum).
Attention, chaque cas est différent. Même en prenant ma configuration, vous n'aurez pas forcément le même résultat chez vous.
Dans ma config, on peut voir des paramètres assez faibles. Déjà un
k_ext: 0. En effet, sur un climatiseur, la température extérieur n'a aucun effert. Ce facteur va ajouter des problèmes plutôt que d'en corriger. Globalement dans la majorité des cas, unk_ext: 0va convenir. Après tout, ce n'est pas vraiment une puissance de chauffe que l'on détermine, mais un décalage à appliquer au thermostat de l'appareil. Est-ce que s'il faut -10C dehors il faut ajouter en permanence 0.5C à son thermostat pour qu'il garde la température ? Probablement pas.On voit aussi un
kp: 0.3donc une valeur très faible et unki: 0.07donc une valeur très haute pour un Ki. C'est voulu. Sur une clim, l'inertie est très faible. Quand une clim s'allume, la température de la pièce descend très vite. De même quand une clim s'éteint, la température remonte relativement vite. L'une des principale raison de cette inertie très faible vient du fait que l'air est pulsé. En brassant l'air, le changement de température est plus important.Côté chauffage, les petits radiateurs pulsés de 1500W ont aussi une inertie très faible.
Résultats en stresse
Pour montrer la puissance de la régulation automatique, j'ai stressé le système. J'ai ajouté des inconnues à l'équation pour voir ce que ça donne. La consigne est simple. Je veux 27C.
Sur ce graph, il y a trois parties. En 1er partie, le système est stable. Tout se passe bien, les trois serveurs sont dans leur local avec la clim à côté et l'algorithme a trouvé son point d'équilibre. Puis passe la partie 2. J'ai ouvert toutes les portes. Il fait moins de 27C dans toutes les autres pièces. Nous ne sommes plus dans un petit local, mais une zone complète de 150m2. En plus vient la nuit, la température extérieure change.
La pièce perd d'un coup beaucoup de chaleur. Très rapidement l'auto régulation va résoudre le problème et ramener la température à 27C. En même temps, avec la nuit qui tombe, la température extérieure tombe de 4C. L'auto régulation continue à faire son effet et recherche un nouveau point d'équilibre. À partir de 4h du matin, plus aucun paramètres n'affecte la capacité thermique de la pièce.
Vient enfin la partie 3. Je ferme toutes les portes. La zone passe de 150m2 à moins de 4m2. La température monte d'un coup et jusqu'à 27,8C. Le système doit chercher un nouveau point d'équilibre et retrouve la situation de la partie 1.
Réglage de l'auto régulation
Comme je l'ai expliqué, vous ne pouvez pas prendre les même paramètres que moi. Chaque cas a ses propres paramètres suivant les situation. Je vais donc expliquer les paramètres pour mieux comprendre l'impact et que vous puissiez trouver les votre.
Les deux paramètres importants sont
KpetKi. Pour la régulation expert, je recommandek_ext: 0etoverheat_protection: false. Pour commencer son réglage, on mettra aussikp: 0etki: 0. Avec ces paramètres à 0, la température de votre versatile thermostat est copié tel quel sur votre appareil physique.Ce que l'on va faire pour le réglage, c'est dans un premier temps régler Kp en laissant Ki à 0, puis régler Ki.
Paramètre Kp
Le paramètre Kp est l'équivalent de la force avec laquelle on appui sur la pédale d'accélération / de frein. Plus vous augmentez Kp, plus vous avez un boost ou un coup de frein. Attention à ne pas mettre un paramètre trop élevé. Quand vous conduisez, vous n'appuyez jamais à fond sur le frein et à fond sur l'accélérateur sinon c'est compliqué de garder une vitesse stable.
Dans l'exemple suivant, j'ai mis un Kp trop grand. Versatile thermostat appui donc systématiquement sur l'accélérateur (ajoute 5C à l'appareil) et sur le frein (retire 5C à l'appareil).
Maintenant je mets un Kp correct, peut-être pas assez fort. Quand la température est trop basse, versatile thermostat ajoute les 5C d'offset. Puis plus on se rapproche de la bonne température, plus la température demandé au chauffage sera celle que l'on souhaite (20C pour mes simulations).
Dans cette dernière simulation, le Kp est correct. Comme la précédente, la température envoyé au radiateurs se rapproche de plus en plus de la température souhaité. On a bien un boost et on voit effectivement que l'on arrive à notre température souhaité (20C) plus rapidement que la simulation précédente.
Paramètre Ki
Le paramètre
Kiest plus difficile à prendre en main. Il est aussi associé au paramètreaccumulated_error_thresholdet à la durée du cycle de régulation.Dans la plupart des cas, le paramètre Ki n'est pas utile. Si vous avez uniquement besoin d'un boost, il n'est pas utile. Le paramètre Ki est important s'il y a un écart persistent entre la température réelle de la pièce et la température définie.
Donnons un exemple. Imaginons un radiateur un peu mal conçu où le capteur de température est trop proche de la source de chaleur. Le radiateur va avoir l'impression qu'il faut toujours plus chaud. Le paramètre Ki permet de résoudre ce problème. Petit à petit le paramètre Ki va annuler cette erreur constante. Par exemple en ajoutant 0.5C en permanence.
Voici un exemple. On demande 20C, mais le chauffage s'arrête à 19C (car lui voit 20C).
Il ne faut pas que la correction soit trop rapide sinon vous aurez des cas de surchauffe et sous-chauffe. Il est préférable de partir sur une valeur lente. Voici un exemple de Ki trop fort, on a une température qui va atteindre plus de 28C (8C de surchauffe) à cause d'un Ki trop élevé :
Une fois équilibré, vous aurez une belle courbe qui va bien atteindre la bonne température.
Pour réduire la vitesse de stabilisation, il faut un
accumulated_error_thresholdplus grand, et unKiplus petit.Globalement, à chaque cycle de régulation, la différence de température entre la température actuelle et la température souhaité est ajouté à un compteur. Puis ce compteur est utilisé pour ajouter un nouveau décalage.
Par exemple, si l'erreur statique est de 1C. A chaque cycle, le compteur augmente de 1 avec Ki = 0,1.
Avec 0.1, il faut donc 10 cycles pour compenser 1C et
accumulated_errordoit être à minima de 10.Avec un Ki = 0,01 et toujours 1C d'erreur statique. Ça nous donne :
Avec un Ki = 0,01, il faut donc dix fois plus de cycles (et donc 10 fois plus de temps) pour compenser 1C.
Ce qui veut dire, réponse rapide c'est un
accumulated_error_thresholdplus petit et un Ki plus grand et une réponse plus lente unaccumulated_error_thresholdplus grand et un Ki plus petit.Paramètre accumulated_error_threshold
Ce paramètre est une sécurité pour éviter les surchauffes et mieux contrôler ce que va faire Ki. Globalement il va défini une "bande" dans laquelle la correction peut se faire.
Reprenons le calcule faut par l'algorithme:
Ce qui est intéressant, c'est les limites.
accumulated_error_thresholdest la limite. Ce paramètre est fait pour limiter l'accumulation d'erreur (l'intégrale). En réalité, si l'accumulation est au max, la formule se résume à :Ok, donc le décalage max sans compter le Kp c'est :
Vous voyez maintenant comment choisir votre
accumulated_error_threshold. Il dépend de quelle est le décalage de température maximum que vous souhaitez laisser possible par la recherche de l'erreur statique.Par exemple, si vous avez un$K_i = 0.05$ et que vous souhaitez que la recherche de l'erreur statique ne soit que dans les 1C autour de la température cible, le $\text{accumulated error threshold} = \frac{1}{0.05} = 20$ .
accumulated_error_thresholdà mettre seraVoilà vous avez toutes les astuces pour régler correctement le mode expert !
All reactions