Messages : 540
Sujets : 5
Inscription : Jun 2024
Merci André pour cette nouvelle version !
J'ai remarqué un petit bug avec le favicon qui ne s'affiche plus. Après investigation, la correction est très simple, à la ligne 790 de JS_Accueil.h le tag utilisé est "< svg" au lieu de "<svg" (sans espace entre le < et svg).
Messages : 280
Sujets : 15
Inscription : Jun 2024
(Il y a 11 heures)Piemdp a écrit : Bonjour,
J'avoue ne pas comprendre comment effectuer ces réglages...
J'ai un cumulus de 3000W et je ne sais pas quel résultat essayer d'obtenir en changeant le PID.
J'ai lu et relu les sujets mais ça reste nébuleux..
Le PID est une "régulation" à trois composantes qui vide à faire varier un paramètre, ( ici le niveau d'ouverture du triac ou du SSR en % ) pour ralier au plus vite une consigne (ici un niveau cible de consommation), sans trop osciller.
Vous pouvez lire une multitude d'articles sur le net qui en expliquent les principes de fonctionnement.
La consigne pour notre routeur, est de faire en sorte que l'excédent de notre production solaire soit "consommée" dans notre (nos) appareil(s) ( Chauffe-eau, chauffage électrique ... ou autre ).
ex : je mets un seuil de régulation à 50W dans les actions. En cas de production solaire qui excède de plus de 50W ma consommation à l'instant 't', je souhaite que mon triac s'ouvre pour que mon chauffe-eau consomme cet éxcédent ( mais pas plus ...) et donc que mon routeur "régule" l'ouverture de mon triac pour s'assurer que j'utilise bien l'énergie que je produis.
sauf qu'il y a des nuages, des consommateurs dans ma maison qui s'allument et s'éteignent (frigo, pompes à chaleur ... ) et donc en permanence le routeur doit "s'adapter" à ces variations.
le PID est juste une méthode (parmi d'autres) de régulation qui calcule et utilise trois composantes
un paramètre "proportionnel" (P)
un paramètre "intégral" (I)
un paramètre "dérivé" (D). - Proportionnel (P) : Réagit à la différence entre la consigne et la valeur mesurée.
- Intégral (I) : Accumule (intègre) les différences passées pour les corriger de manière continue.
- Dérivé (D) : Anticipe les erreurs futures en se basant sur la vitesse à laquelle change cette différence
Et ces trois composantes sont affublées d'un coefficient Kp, Ki, et Kd que l'on peut "ajuster" afin que la régulation fonctionne au mieux, c'est à dire converge le plus vite sans trop osciller. C'est ce que permet le routeur d'André dorénavant.En visualisant l'erreur en Watt (+-100W), on peut agir sur (= régler) les 3 coefficients en question en "voyant" leur impact sur la régulation lors de l'allumage ou l'arrêt d'un consommateur, ou d'un passage nuageux.Si vous trouvez cela trop compliqué, ne cochez pas la case PID et restez avec le mode "historique", "réactivité".
V16_05 serveur UxIx3 + ref Linky, client Triac CE tampon + client SSR CE tampon + client SSR sur CE tri (+ 3 clients SSR sur 3 radiateurs d'appoint). Variateurs de fréquence sur pompes tri pour Piscine et Spa. 8 panneaux (3 SE 2 S, 3 SO ) 425Wc sur 4 HM800 produisent 20kWh par jour au 16 Mars (Sud-Est France)
Messages : 94
Sujets : 19
Inscription : Sep 2024
Il y a 8 heures
(Modification du message : Il y a 8 heures par Piemdp.)
Merci pour ces précisions.
Ma question n'était apparemment pas assez claire.
En fait, je ne sais pas que rechercher au niveau des courbes.
Doivent elles toutes se trouver autour du Zéro?
Les valeurs idéales doivent avoir quelles résultante sur la forme des courbes ?
Merci pour ces précisions.
Ma question n'était apparemment pas assez claire.
En fait, je ne sais pas que rechercher au niveau des courbes.
Doivent elles toutes se trouver autour du Zéro?
Les valeurs idéales doivent avoir quelle résultante sur la forme des courbes ?
12 panneaux mk-sun 520kwc - 6 onduleurs ds3-h - Ecu-c
Routeur RMS UxIx2 - Borne VE-TRONIC
Messages : 1,291
Sujets : 44
Inscription : May 2024
Merci pour le debug. J'ai passé la modif pour la prochaine version.
André
Messages : 1,291
Sujets : 44
Inscription : May 2024
(Il y a 10 heures)Mike a écrit : Merci André pour cette nouvelle version !
J'ai remarqué un petit bug avec le favicon qui ne s'affiche plus. Après investigation, la correction est très simple, à la ligne 790 de JS_Accueil.h le tag utilisé est "< svg" au lieu de "<svg" (sans espace entre le < et svg).
Merci pour le debug. J'ai passé la modif pour la prochaine version.
André
Messages : 9
Sujets : 0
Inscription : Nov 2025
BUG dans la page pageHtmlActions.h
Ce bug n'est pas lié à cette dernière version , je pense qu'il traine depuis pas mal de temps
sur de mes ESP comme pas mal d'entre vous ont pu l'avoir je devais souvent me bagarrer pour que la page Action reapparaisse correctement
dans les explications du bug
Le fichier /ActionsJS se charge et s execute
Il appelle TracePlanning() qui utilise Pins
MAIS le fichier /PinsActionsJS (qui définit Pins) n'est pas encore chargé car les routes definies dans Server ne s'executent pas forcement de façon synchrone
pour corriger
dans le fichier pageHtmlActions.h
rajouter
if (typeof Pins === 'undefined') {
var Pins = [0, -1, 2, 4, 5, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33];
}
juste avant
function TracePlanning(iAct) {
depuis je n'ai plus aucun soucis de rechargement de la page Actions
Messages : 1,291
Sujets : 44
Inscription : May 2024
Je préfère avancer le téléchargement du fichier de description des pins afin que les personnes utilisent les bonnes pins adaptées au modèle de carte. Il faut aussi éviter les 2,12,15 comme bien expliqué dans l'article de upesy : https://www.upesy.fr/blogs/tutorials/esp...mate-guide
Ce sera pour la prochaine version.
André
Messages : 9
Sujets : 0
Inscription : Nov 2025
Il y a 6 heures
(Modification du message : Il y a 6 heures par Lolo691.)
Le principe est effectivement de charger dans le bon ordre ;-)
Pour le réglage PID ça n a pas beaucoup de sens de visualiser chacune des composantes du PID , c est surtout à but didactique.
La méthodologie de réglage a été décrite dans le fil sur la v16.0
Seule la superposition de la sortie sur la mesure puissance active 10m permet d analyser la réponse du régulateur pour affiner les 3 paramètres
Messages : 644
Sujets : 3
Inscription : Aug 2024
Il y a 4 heures
(Modification du message : Il y a 4 heures par grostoto.)
(Il y a 6 heures)Lolo691 a écrit : Le principe est effectivement de charger dans le bon ordre ;-)
Pour le réglage PID ça n a pas beaucoup de sens de visualiser chacune des composantes du PID , c est surtout à but didactique.
La méthodologie de réglage a été décrite dans le fil sur la v16.0
Seule la superposition de la sortie sur la mesure puissance active 10m permet d analyser la réponse du régulateur pour affiner les 3 paramètres
au contraire, pour les gens normaux (qui ne font pas du pid leur métier) c'est très parlant: cela permet de voir quelle réglage fait quoi facilement, et surtout de revenir au réglage précédant sans avoir à réfléchir (vu qu'il est visible sur la courbe).
le routeur s'adresse à tout le monde, la plupart découvrent ce qu'est un pid avec le routeur.
très bonne idée de mettre la représentation visuelle des réglages, on a l'action et la réaction sur le même graphique.
personnellement, je vais rester avec ma 14.25 qui fonctionne au poil, cela devient bien trop complexe: un bon systeme est un systeme qu'on oublie, pas un systeme qu'on passe sa vie à régler.
j'aime à dire que mettre à jour pour mettre à jour quand tout fonctionne bien, c'est chercher les pbs...
quand il y aura le module afficheur IPS tactile capacitif ESP32-S3 ), la effectivement, je mettrai à jour tout le systeme...
Messages : 113
Sujets : 7
Inscription : Oct 2024
J’ai remarqué que lorsque l’on ouvre le graphique PID en temps réel, si l’on modifie un slider puis que l’on change d’onglet ou que l’on appuie sur “Retour” sans sauvegarder, les valeurs des sliders ne reviennent pas à leurs valeurs initiales : elles restent en RAM. Il faut faire un reset pour retrouver les bonnes valeurs sauvegardé.
j ai corriger
dans fichier JS_Actions.h
apres ligne 837 function AdaptationSource() {}
rajouter ceci.
Code : var valeursInitialesPID = {};
var enCourseDeSauvegarde = false;
window.addEventListener('load', function() {
setTimeout(function() {
if (typeof LesActions !== 'undefined') {
for (var i = 0; i < LesActions.length; i++) {
valeursInitialesPID[i] = {
Kp: LesActions[i].Kp,
Ki: LesActions[i].Ki,
Kd: LesActions[i].Kd
};
}
}
}, 1000);
});
var OriginalSendValues = SendValues;
SendValues = function() {
enCourseDeSauvegarde = true;
OriginalSendValues();
};
window.addEventListener('beforeunload', function() {
if (enCourseDeSauvegarde) {
return;
}
if (typeof valeursInitialesPID !== 'undefined') {
for (var i = 0; i < LesActions.length; i++) {
if (valeursInitialesPID[i]) {
var sliderKp = document.getElementById("sliderKp" + i);
var sliderKi = document.getElementById("sliderKi" + i);
var sliderKd = document.getElementById("sliderKd" + i);
var sensiKp = document.getElementById("sensiKp" + i);
var sensiKi = document.getElementById("sensiKi" + i);
var sensiKd = document.getElementById("sensiKd" + i);
if (sliderKp) {
sliderKp.value = valeursInitialesPID[i].Kp;
if (sensiKp) sensiKp.innerHTML = valeursInitialesPID[i].Kp;
}
if (sliderKi) {
sliderKi.value = valeursInitialesPID[i].Ki;
if (sensiKi) sensiKi.innerHTML = valeursInitialesPID[i].Ki;
}
if (sliderKd) {
sliderKd.value = valeursInitialesPID[i].Kd;
if (sensiKd) sensiKd.innerHTML = valeursInitialesPID[i].Kd;
}
if (typeof UpdateK === 'function' && typeof PlotIdx !== 'undefined') {
var oldPlotIdx = PlotIdx;
PlotIdx = i;
UpdateK(i);
PlotIdx = oldPlotIdx;
}
}
}
}
});
il y a peux être plus simple et moins long .
|