26-03-2025, 06:11 PM
(22-03-2025, 07:48 PM)59jag a écrit : j ai eu la même idée et je l'ai intégrer dans le code pour le multisinus, j ai modifier GestionOverproduction()
pour l' activer j ai juste gpio4 a mettre a on .
j ai pas vraiment appronfondi car je suis sur ma version a distance avec firebase.
demain je ferai des screens pour voir la différence entre les deux régulations .
Code :switch (Actif[i]) { //valeur en RAM du Mode de regulation
case 1: //Decoupe Sinus pour Triac ou On/Off pour relais
if (i > 0) LesActions[i].RelaisOn();
StockMessage("relai On" + LesActions[i].Titre);
break;
case 2: // Multi Sinus
//#ifdef Active_Regul
static int pdirectprec = 0; //59jag changement en cours avec gpio4
if (digitalRead(4) == 1){ //59jag actif si gpio 4 = 1
int pdirect=pdirectprec+(( Puissance - SeuilPw)/16); //16 pour 1600w/100 1%=16w(chauffeeau de 1600)
if(pdirect>100)pdirect=100; //59jag
if(pdirect<0)pdirect=0; //59jag
if (Type_En_Cours == 2)pdirect=100; //si sur ON alors 100
PulseOn[i]=tabPulseSinusOn[pdirect]; //59jag
PulseTotal[i]=tabPulseSinusTotal[pdirect]; //59jag
pdirectprec = pdirect;
}else{
//#endif
PulseOn[i] = tabPulseSinusOn[100 - Retard[i]];
PulseTotal[i] = tabPulseSinusTotal[100 - Retard[i]];
}
break;
case 3: // Train de Sinus
PulseOn[i] = 100 - Retard[i];
PulseTotal[i] = 99; //Nombre impair pour éviter courant continu
break;
}
Est-ce vraiment different de ce qui est fait actuellement?
RetardF[i] = RetardF[i] + (Puissance - SeuilPw) * GainBoucle / 10000.0; // Gain de boucle de l'asservissement
Le GainBoucle est la valeur du curseur donc changeable de 1 a 100, donc un coefficient variant de 1/10000 a 1/100. Il doit y avoir une raison pour avoir un coefficient si petit (frequence de repetition de la boucle?), 16 ca risque d'etre rapide comme reaction!
Comme dit plus haut, le curseur est l'equivalent du choix de la puissance de la charge.
Dans le cas des regulateurs PID, celui ci serait uniquement I (on integre l'erreur pour charger l'actionneur jusqu'a arriver a une erreur 0). Peut etre qu'on pourait ajouter un peu de commande proportionelle (P) mais avec les temps de reponse des mesures ca a beacooup de chance de partir en grosses oscilations. Meme les appareils de marque ont besoin de temps pour reagir.
Franchement ca me parait pas mal comme c'est, il faut jouer avec le GainBoucle d'abord.
Perso, j'ai un systeme a batterie et si j'ai le four ou la machine a cafe en route, quand le termostat coupe, j'ai une grosse injection sur le reseau pendant un petit moment et a l'inverse quand il faut chauffer je tire sur le reseau le temps que la batterie reagisse.
Je ne sais pas comment c'est avec EDF, jesuis en Espagne et pour les contrats avec rachat d'excedents, la valeur de puissance retenue pour les factures est le bilan des exportations et des importations pour chaque heure donc tant que les variations sont centrees, le bilan sur la note est nul.
Mon chauffe-eau est de 1500W et j'ai 5 en GainBoucle et un seuil de -50W (a cause de la batterie qui elle a un seuil de 0W dans l'inverseur, a voir si je peux baisser ca a 20 ou 30W). Je suis content avec ca.
Hervé