Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Modification Graphe Puissances
#11
(13-02-2026, 06:50 AM)laroussette a écrit :
(12-02-2026, 08:33 PM)Lolo69 a écrit :
(12-02-2026, 05:58 PM)alexandeur a écrit : moi j attends le PID nuage plus reactif avec impatiente , le printemps arrive  Wink

Si tu sais compiler en arduino je peux te donner ce PID nuage
Euh ! c'est quoi votre PID nuage ?
C est un terme purement inventé par Alexandeur, tu ne trouveras pas ce terme ailleurs. Alexandeur parle d un PID qui réagit très bien lors des journées avec des nuages / éclaircies , d où le nom PID nuage
De mon côté c est un PID « modifié » dont le gain n est pas linéaire et avec une antisaturation intégrale dynamique
Ce qui permet d avoir un meilleur compromis réactivité / stabilité
Répondre

#12
oui ta modification du PID minterresse , je veux bien tester merci
Répondre

#13
(12-02-2026, 08:44 AM)Lolo69 a écrit : Je ne sais pas la V17 ne m inspire pas pour l instant. Comme je me suis pas mal éloigné de la version “officielle” je n ai pas envie de faire les reprises sur cette dernière version dont le bel enrichissement de fonctionnalités ( encore un grand bravo à André) ne me sont personnellement pas utiles.

André préfère afficher la puissance apparente avec la même échelle , il a sûrement une bonne raison pourtant la “double échelle” est simple surtout que cette fonction existe déjà sur son graphe PID rapide

OK, je m'y suis mis alors. C'est bon mais spécifique à notre application VE.
Répondre

#14
Je vous ferai l extract et les explications ce we si le mauvais temps est la ;-)

L hiver j ai plus fort que les nuages pour mettre le bazar dans le routage. J ai la regul de température de mes radiateurs qui envoient une patate de 2400 W toutes les minutes.
On voit sur la copie d écran ci dessous que cette patate de 2400w est compensée en moins de 20 secondes.
Autant dire que le nuage qui passe devant les panneaux est absorbé quasiment instantanément.
La limite c est le temps d échantillonnage du Shelly. En mesure UxI ça doit tirer droit comme un I
   
On observe la sortie du régulateur quasi idéal en forme de « carré » impossible avec l algorithme de base PID

Et quand je coupe le chauffage, on voit que la sortie PID suit très rapidement et efficacement les variations de prod solaire qu on voit sur le 2 eme graphe sans partir en oscillations . Et du coup la mesure est stable quasiment au 1 %  pres malgres une mesure à 1 seconde 
   
Répondre

#15
(13-02-2026, 07:30 AM)Lolo69 a écrit :
(13-02-2026, 06:50 AM)laroussette a écrit :
(12-02-2026, 08:33 PM)Lolo69 a écrit :
(12-02-2026, 05:58 PM)alexandeur a écrit : moi j attends le PID nuage plus reactif avec impatiente , le printemps arrive  Wink

Si tu sais compiler en arduino je peux te donner ce PID nuage
Euh ! c'est quoi votre PID nuage ?
C est un terme purement inventé par Alexandeur, tu ne trouveras pas ce terme ailleurs. Alexandeur parle d un PID qui réagit très bien lors des journées avec des nuages / éclaircies , d où le nom PID nuage
De mon côté c est un PID « modifié » dont le gain n est pas linéaire et avec une antisaturation intégrale dynamique
Ce qui permet d avoir un meilleur compromis réactivité / stabilité

ah ! OK !!!! Perso je n'ai jamais vraiment réussi à régler mon PID car j'ai beaucoup de éléments externe qui viennent perturber. (Piscine avec pompe Variable et PAC, SPA, nuages, 2 CE). S'il y a possibilité d'améliorer le PID je suis preneur.
Répondre

#16
je veux toujours tester ton pid plus reactif
Répondre

#17
(28-02-2026, 11:59 AM)alexandeur a écrit : je veux toujours tester ton pid plus reactif

Hours sorry j avais zappé, je t envoie ça prochainement en PV car la on sort du sujet, et si concluant je créerai une discussion que pour ca
Répondre

#18
Plutot que de le faire en privé, je donne les indications ici pour augmenter la réactivité du régulateur meme si ce n est pas vraiment le sujet de la discussion, je verrais plus tard si ca vaut le coup de creer une nouvelel discussion.

Avant de rentrer dans le vif du sujet, un peu de théorir rapide sur le regulateur PID 
Les abreviations pour s'y retrouver
Pv = Process Value c'est la mesure qu'on veut controler , dans notre cas la puissance 
Sp= Set Point c est la consigne que l on souhaite,dans le cas du routeur c est le terme ( que je trouve mal traduit) Seuil Pw dans les actions
Out la sortie du regulateur qui va piloter le triac ou le ssr
Error = Pv-Sp ; c est don cl ecart qu on a entre ce que l'on mesure et ce qu'on souhaite , idealement il faudrait toujours que cette error soit à zero

Kp = Coefficient Proportionnel 
Ki = Coefficient Integral 
Kd =  Coefficient Derivée

L'algorithme PID (très simplifié)

Out = Kp*Error + Ki*∑(Error) dt + Kd *delta (error) / dt

Sans rentrer dans les details, si Kp, Ki ou Kd sont mal reglés on a soit :
- un fonctionnement très mou , c est à dire à que la sortie réagit trop lentement et la mesure très longue à atteindre la consigne
- un fonctionnement instable, c'est à dire que la sortie varie trop rapidement entre 0 et 100
Il faut donc trouver un compromis pour etre entre les 2 types de fonctionnement

Dans le cas du Routeur je propose une modification de l'algorithme de base pour avoir un comportement très reactif quand on a une erreur importante ( passage d'un nuage ou arret/march ed un gros consommateur) mais qui redevient moins agressif quand on l erreur est proche de zero pour eviter de faire le yoyo entre 0 et 100% , normalement  c'est le role de l 'action Kd, mais dans le cas du routeur comem on peut avoir  [delta (error) / dt] quasiment infini , André à fortemetn filtré ce terme , ce qui introduit du retard , et finalement participe à destabiliser la boucle plus qu a la stabiliser

Bon coté pratique voici les modifications suggerées , je ne peux pas vous mettre les bon numeros de ligne car je n ai pas forcement le programme d'origine sur la base d'une V16.09

Tout ce passe dans le fichier Solar_Routeur_V....et plus particulierement dans la void GestionOverproduction()
Rechercher la ligne 
  float Kp, Ki, Kd;
Ajouter la ligne 
  float knl; //LBE Gain Variable

Rechercher la ligne 
  ErrorPw = Puissance - SeuilPw;
Ajouter les lignes
  float abs_e = fabs(ErrorPw);
  float ErrorKpw = (abs_e < 30) ? ErrorPw/100: ErrorPw; //bande "presque" morte pour l action P

  // comme la sortie ne peut varier que de 1% en 1% sur un CE de 3000W on ne peut pas controller mieux que 3000/100 = 30W
  // cela réduit les sauts permanent de 1 % qui font des ecarts de 30 w pour le moindre ecart 
  knl= 2-1.5*exp(-abs_e/100) ;// c 'est ici la formule "magique"

// Je vous mets en image plus loin le tracé de cette fonction pour comprendre son fonctionnement

un peu plus bas rechercher 
IntegrErrorPw[i] += ErrorPw * Ki;
Modifier 
IntegrErrorPw[i] += knl*ErrorPw * Ki;


un peu plus bas rechercher 
Propor[i] = Kp * Errorpw;
Modifier 
Propor[i] = Knl*Kp * ErrorKpw;


   

si on est proche de l erreur on réduit fortement l action integrale pour eviter les petites oscillations autour de la consigne, pour les memes raisons on réduit aussi fortement voir on annule l'action Proportionnelle si l erreur <30w
Quand l erreur est autour de 160 on globalement le meme reglage qu avant pour que le fonctionnement siot stabel
Par contre si l erreur augmente beaucoup on a l action integrale et proportionnelle qui sont multiplié par 2 rendant le regulateur hyper actif quand l ecart est grand , mais la régulation reste stable car les parametres diminue au fur et a mesure

Pour utiliser cet algorithme , vous prenez vos parametres actuels qui vont bien , et vous les mulitpliez par 0.8 environ
Répondre

#19
merci pour ton partage
Répondre



Atteindre :


Utilisateur(s) parcourant ce sujet :
1 visiteur(s)

Moteur MyBB, © 2002-2026 Melroy van den Berg.