Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Lineariser la sortie Triac en mode découpe Sinus
#11
Par curiosité j'ai tracé les courbes du polynôme de Lolo et de x - sin(x) afin de comparer.
Voici le résultat obtenu.


Pièces jointes Miniature(s)
   
Répondre

#12
Sgb31 tu es en quel mode ? Découpe ou demi sinus ?

(Hier, 09:18 AM)Mike a écrit : Par curiosité j'ai tracé les courbes du polynôme de Lolo et de x - sin(x) afin de comparer.
Voici le résultat obtenu.

Presque pareil lol mais deja il faiut transformer la fonction de Jag en % d ouvertrure plutot qu en angle pour avoir un axe x qui va de 0 à 100% d ouverture ( comme mon polynome) , et la courbe de Jag represente la fonction p=f(ouverture) et non pas l inverse, il ne faut donc pas comparer avec "mon" polynome" il faut la comparer avec ma courbe violette, et comme la fonction P =alpha/PI()-SIN(2*alpha)/2/PI() ne s inverse pas la solution simple de Jag n'existe tout simplement pas.
Bon routage à tous
Répondre

#13
Bonjour

Super boulot Lolo69. C'est quasi la perfection.
Il me semble que tu pourrais finir presque à la perfection en ayant une mesure UI ou UI2 car de mémoire le rafraîchissement de la mesure est plus rapide que le Shelly.
Bonne journée
Esp32 wroom avec ui2 et Ssr en 12.06 modifié
 PV 1kw izypower 
Répondre

#14
j ai voulu essayer cette fonction j ai pas reussi a integrer ces lignes de code dans le programme , pas trouver ou faut faire les changements ???
Répondre

#15
(Hier, 12:05 PM)alexandeur a écrit : j ai voulu essayer cette fonction j ai pas reussi a integrer ces lignes de code dans le programme , pas trouver ou faut faire les changements  ???

Quelle version du routeur ? Je te donnerai les lignes exactes .

(Hier, 11:55 AM)Laurent53 a écrit : Bonjour

Super boulot Lolo69. C'est quasi la perfection.
Il me semble que tu pourrais  finir presque à la perfection en ayant une mesure UI ou UI2 car de mémoire le rafraîchissement de la mesure est plus rapide que le Shelly.
Bonne journée

Oui je voulais passer en UxI mais celui que j’ai construit demande une mise au point pour être full opérationnel
Répondre

#16
c est la version 17.06 merci

j ai deja modifier avec ton pid améliorer ,ca marche bien
Répondre

#17
(Hier, 09:34 AM)Lolo69 a écrit : Sgb31 tu es en quel mode ? Découpe ou demi sinus ?

(Hier, 09:18 AM)Mike a écrit : Par curiosité j'ai tracé les courbes du polynôme de Lolo et de x - sin(x) afin de comparer.
Voici le résultat obtenu.

Presque pareil lol mais deja il faiut transformer la fonction de Jag en % d ouvertrure plutot qu en angle pour avoir un axe x qui  va de 0 à 100% d ouverture ( comme mon polynome) , et la courbe de Jag represente la fonction p=f(ouverture) et non pas l inverse, il ne faut donc pas comparer avec "mon" polynome" il faut la comparer avec ma courbe violette, et comme la fonction P =alpha/PI()-SIN(2*alpha)/2/PI() ne s inverse pas la solution simple de Jag n'existe tout simplement pas.
Bon routage à tous

Je suis actuellement en demi sinus sur mes différents routeurs et en version V17.15
Config : 3 routeurs F1ATB en V17.15 - 2 routeurs fixes en mode Triacs + 1 routeur mobile polyvalent en mode : Triac+SSR + 1 afficheur distant ESP32-S3
PV : (8*425W + Onduleur SunGrow 3KW) + (2 *500w + MO Hoymiles HMS-1000W-2T)
Supervision & Domotique : F1atb + Home Assistant / Shelly & MQTT
Répondre

#18
(Hier, 08:35 AM)Lolo69 a écrit :
(Hier, 08:05 AM)du 59jag a écrit : La puissance envoyée au CE en fonction de la sortie PID ressemble à cette courbe
[Image: attachment.php?thumbnail=5524]   

rien qu en voyant le graphique on peux voir  une sinusoide le long de l axe y=x. donc la courbe sortie PID est de la forme y=x-sin(x) donc pour corriger faux juste rajouter sin(x) pour avoir y=x pas besoin de calcul complexe .
Je ne vois pas une sinusoïde… c est normal ce n est pas une sinusoïde !;-) ça y ressemble vaguement au début et à la fin et encore car d après le tout premier graphe de la sinusoïde tu comprends qu il s agit d une intégrale d une fonction sinusoïdale dont le résultat n est pas 100% trigonométrique ;-)

Sauf si mon prof d électrotechnique des années 80 se trompait, la fonction exacte doit être celle ci

je fait un graphique avec y = x  ainsi y = -sin(x)  et l addition des 2  en vert ce qui donne y = x - sin(x)
si tu vois pas l evidence

[Image: Screenshot-20260324-122724.jpg]
Répondre

#19
(Hier, 01:40 PM)59jag a écrit :
(Hier, 08:35 AM)Lolo69 a écrit :
(Hier, 08:05 AM)du 59jag a écrit : La puissance envoyée au CE en fonction de la sortie PID ressemble à cette courbe
[Image: attachment.php?thumbnail=5524]   

rien qu en voyant le graphique on peux voir  une sinusoide le long de l axe y=x. donc la courbe sortie PID est de la forme y=x-sin(x) donc pour corriger faux juste rajouter sin(x) pour avoir y=x pas besoin de calcul complexe .
Je ne vois pas une sinusoïde… c est normal ce n est pas une sinusoïde !;-) ça y ressemble vaguement au début et à la fin et encore car d après le tout premier graphe de la sinusoïde tu comprends qu il s agit d une intégrale d une fonction sinusoïdale dont le résultat n est pas 100% trigonométrique ;-)

Sauf si mon prof d électrotechnique des années 80 se trompait, la fonction exacte doit être celle ci

je fait un graphique avec y = x  ainsi y = -sin(x)  et l addition des 2  en vert ce qui donne y = x - sin(x)
si tu vois pas l evidence

[Image: Screenshot-20260324-122724.jpg]

Fais ou fais pas comme tu veux, c est très bien tu as l 'allure de p=f(alpha) que tout le monde connais , te restes plus qu a faire l inversion de alpha=f(p) si tu vois pas l'evidence....en tout cas j attend avec impatience cette inversion

Pour celles et ceux qui voudrait tester le linearisation polynomiale avant que Jag ne l'implemente dans une future version, sur uene version routeur v17_16, vous aller dans le fichier Solar_routeur_v17_06 , entre la ligne 1746 et 1748  (RetardF[i] = constrain(RetardF[i], 0.0, 100.0)

vous inserez le code suivant 
n'hesitez pas à me faire le retour de vos tests ( Pour rappel cette linearisation ne vaut que pour le mode découpe sinus)
Code :
        //LBE Linearisation mode decoupe sinus uniquement faire un if mode decoupe sinus plus tard
        // LBE Linearisation polynôme 7ème degré
      if (Actif[i]==MODE_DECOUPE_ONOFF) {//Linearisation uniquement pour le mode découpe de sinus
            float puissance_pid = 100.0 - RetardF[i];  // Sortie PID en puissance (0-100%)
            //Polynome degré 7
            // Merci Mike pour l'Optimisation methode Horner pour réduire les multiplications Estimations 90ns
            // Merci Laurent53 pour le forcage en float poue eviter les calculs inutiles et gourmand en double
            float puissance_corrigee =
            (((((((1.77247643e-10f * puissance_pid
            - 6.20366752e-08f) * puissance_pid
            + 8.72516510e-06f) * puissance_pid
            - 6.30374389e-04f) * puissance_pid
            + 2.48566569e-02f) * puissance_pid
            - 5.26588432e-01f) * puissance_pid
            + 6.06926288e+00f) * puissance_pid
            );
           
            RetardF[i] = 100.0f - puissance_corrigee;
      }    
        //fin linearisation
quand vous allez sur la visu PID de la page actions vous verrez que ouverture correspondant au Pourcentage de sortie du PID est différent que ce qui est appliqué au triac que vous pouvez voir dans le graphe triac 10 min de la page d'accueil , moins pratique que de l avoir en superposition de la courbe de puissance mais c est mieux que rien
Répondre

#20
Une version optimiser d'après Gemini pour un esp32. la perte de précision est dérisoire :L'écart est d'environ 0,000001 (un millionième).

// On ajoute 'f' après chaque nombre pour que l'ESP32 reste en 32-bit (beaucoup plus rapide)
float x = puissance_pid;

float puissance_corrigee = ((((((1.772476e-10f * x
    - 6.203667e-08f) * x
    + 8.725165e-06f) * x
    - 6.303744e-04f) * x
    + 2.485666e-02f) * x
    - 5.265884e-01f) * x
    + 6.069263e+00f) * x;

RetardF[i] = 100.0f - puissance_corrigee;
Esp32 wroom avec ui2 et Ssr en 12.06 modifié
 PV 1kw izypower 
Répondre



Atteindre :


Utilisateur(s) parcourant ce sujet :
bernard62, fafadar, Lolo69, 2 visiteur(s)

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