Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Estimation d'injection avec TIC + CACSI
#1
Bonjour,

Pour ceux qui utilisent la TIC pour la lecture, et qui ont un CACSI, la régulation en cas d'injection est plutôt lente, voir très lente si on baisse le seuil de régulation à une faible valeur (Pw=50W dans mon cas).
En cas d'injection, on ne voit donc que Consommation = 0.
Serait-il possible d'intégrer un bout de code qui permet d'estimer la puissance injectée?
Cela ne permettra pas de réduire le seuil de régulation (50W semble être un minimum), mais ça accélère fortement la régulation en cas d'injection.

L'algo que j'utilise est basé sur les informations Irms et Urms de la TIC. Irms étant en entier, l'erreur est de +- 0.5A (soit 115W).
L'algo ne s'active que si la consommation est à 0W (PuissanceS_M); il est donc transitoire car on régule sur 50W.

Détail du calcul ci-dessous (les valeurs sont collectées avant le calcul, "cacsi=true" sur la condition  (!EAITvalid && Tm > 8000)).
Les valeurs de puissance apparente SINSTS ne sont utilisées que pour tester si c'est ==0VA, le calcul est fait avec les valeur Urms et Irms.
Si SINSTS==0, alors une valeur de courant non nulle signifie de l'injection, sinon c'est de la consommation.

pPuissance = 0; // initialisation valeur puissance injectée
if (cacsi && PuissanceS_M == 0) { // estimation de la puissance d'injection seulement si PuissanceS_M==0 et si on est en CACSI
  pPuissance = 150 + (pSINSTS1 == 0?-1:1) * pURMS1 * pIRMS1; // marge de 150W
  if (pIRMS3 != -1) { // triphasé
    pPuissance += (pSINSTS2 == 0?-1:1) * pURMS2 * pIRMS2;
    pPuissance += (pSINSTS3 == 0?-1:1) * pURMS3 * pIRMS3;
  }
}
if (pPuissance >= 0) { // pas d'estimation si l'écart est faible en prenant la marge de 150W
  PuissanceI_M = 0;
} else {
  PuissanceI_M = -pPuissance; // "-" car on donne la valeur injectée
}

Cela fonctionne bien malgré l'imprécision relative aux mesures d'intensités (la marge de 150W réduit le risque de surestimation de l'injection).

Code ici:
  https://drive.google.com/file/d/17LqBHq9...At6yCAiEaE

Exemple du valeurs retournées (routage sur un radiateur de 1500W qui ne consomme pas tout):
  https://drive.google.com/file/d/1SOb3sI2...sp=sharing
On voit qu'en injection, les valeurs sont en "escalier" (car le courant est en valeurs entières).
Cela ne change pas la courbe bleue (puissance apparente)

Cordialement,
Répondre
#2
Bonjour Ludovic35, je suis novice dans la partie . J'ai suivi les tutos de André , j'ai installé un ESP32 avec mesure depuis Linky mais dans la page accueil je n'ai pas la valeur injectée . Dans votre message vous noter qu'on peut faire un programme mais comment mettre ce programme dans le ESP32 ?
Faut il installer Arduino ?
Répondre
#3
Si vous pouvez compiler le code dans Arduino (version 14.x), il faut remplacer le fichier Source_Linky.ino par celui-ci:
https://drive.google.com/file/d/1xBa_XZP...5VJsiRg67K
Le mode CACSI est automatiquement détecté (voir dans les messages); le code est donc fonctionnel avec ou sans CACSI.

Sinon, j'ai mis mes versions compilées ici (le fichier .bin à charger via OTA est sous /build/esp32.esp32.esp32):
en 13.03 (testée) https://drive.google.com/file/d/12SYx76l...LilwA_kluD
en 14.03 (testée) https://drive.google.com/file/d/1cCOqy8R...7k51lv-pWh
Ces versions ont en plus un support pour une sonde DHT11 branchée sur le gpio 15; il ne faut donc l'utiliser (il y aura 4 messages indiquant l'absence de détection du DHT11). A part ce point, c'est compatible avec la version officielle.
Répondre


Atteindre :


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