![]() |
|
Lineariser la sortie Triac en mode découpe Sinus (Sujet clos temporairement) - Version imprimable +- F1ATB forum (https://f1atb.fr/forum_f1atb) +-- Forum : Forum de F1ATB (https://f1atb.fr/forum_f1atb/forum-3.html) +--- Forum : Routeur Photovoltaïque (https://f1atb.fr/forum_f1atb/forum-4.html) +---- Forum : Evolutions faites, à faire, dont vous rêvez... (https://f1atb.fr/forum_f1atb/forum-10.html) +---- Sujet : Lineariser la sortie Triac en mode découpe Sinus (Sujet clos temporairement) (/thread-2454.html) |
RE: Lineariser la sortie Triac en mode découpe Sinus - 59jag - 28-03-2026 (25-03-2026, 10:37 PM)Lolo69 a écrit : Et non dommage que tu sois aussi obstiné ça te rend aveugle .tu as raison j ai etait un peux simpliste ma fonctions donner avait encore trop d erreur mais j ai corriger. par contre elle a besoin de plus de temps de calcul 20us mais sur 200ms ca ne fait que 0.01% du temps disponible, comme tu dit ca laisse de la marge. ma fonction : Code : float ouverturebis(float p) {avec #define INV_PI 0.318309886f le mieux c est encore de tester en reel sur un esp32 le code de test: Code : #include <Arduino.h>le tester est en 2 parties 1/ envoi 1000 valeurs aleatoires entre 0.0 et 100 et calcule le temps moyen pour 1 calcul . 2/ calcul la précision du en verififiant le résultat en faisant le calcul inverse. resultat moniteur serie ===== TEST VITESSE ===== Poly : 0.689 us / appel bis : 19.387 us / appel --- Polynome --- Pw Ouv Pw_verif Erreur 0 0.00 0.00 0.000 1 5.57 0.11 -0.887 2 10.22 0.69 -1.312 3 14.09 1.77 -1.230 4 17.29 3.21 -0.794 5 19.92 4.81 -0.191 6 22.08 6.43 0.428 7 23.83 7.96 0.961 8 25.27 9.35 1.354 9 26.44 10.59 1.587 10 27.40 11.66 1.664 11 28.20 12.60 1.603 12 28.88 13.43 1.430 13 29.46 14.17 1.171 14 29.99 14.85 0.854 15 30.48 15.50 0.505 16 30.96 16.14 0.145 17 31.43 16.79 -0.206 18 31.91 17.47 -0.533 19 32.40 18.18 -0.822 20 32.92 18.94 -1.065 21 33.46 19.75 -1.254 22 34.03 20.61 -1.385 23 34.63 21.54 -1.457 24 35.26 22.53 -1.469 25 35.90 23.58 -1.423 26 36.57 24.67 -1.325 27 37.25 25.82 -1.179 28 37.94 27.01 -0.992 29 38.64 28.23 -0.771 30 39.35 29.47 -0.526 31 40.05 30.73 -0.266 32 40.74 32.00 0.001 33 41.43 33.27 0.266 34 42.10 34.52 0.519 35 42.75 35.75 0.754 36 43.39 36.96 0.963 37 44.00 38.14 1.139 38 44.59 39.28 1.279 39 45.15 40.38 1.378 40 45.69 41.44 1.435 41 46.21 42.45 1.448 42 46.70 43.42 1.418 43 47.17 44.35 1.346 44 47.61 45.23 1.235 45 48.04 46.09 1.087 46 48.45 46.91 0.909 47 48.85 47.71 0.705 48 49.24 48.48 0.481 49 49.62 49.24 0.244 50 50.00 50.00 -0.001 51 50.38 50.76 -0.245 52 50.76 51.52 -0.483 53 51.15 52.29 -0.707 54 51.55 53.09 -0.911 55 51.96 53.91 -1.089 56 52.39 54.76 -1.236 57 52.83 55.65 -1.348 58 53.30 56.58 -1.419 59 53.79 57.55 -1.450 60 54.31 58.56 -1.437 61 54.85 59.62 -1.380 62 55.41 60.72 -1.281 63 56.00 61.86 -1.141 64 56.61 63.04 -0.965 65 57.25 64.24 -0.755 66 57.90 65.48 -0.522 67 58.57 66.73 -0.268 68 59.25 68.00 -0.004 69 59.95 69.26 0.264 70 60.65 70.52 0.524 71 61.35 71.77 0.768 72 62.05 72.99 0.989 73 62.75 74.18 1.176 74 63.43 75.32 1.322 75 64.10 76.42 1.421 76 64.74 77.46 1.465 77 65.37 78.45 1.452 78 65.96 79.38 1.382 79 66.53 80.25 1.251 80 67.08 81.06 1.060 81 67.60 81.82 0.819 82 68.09 82.53 0.528 83 68.57 83.20 0.203 84 69.04 83.85 -0.150 85 69.51 84.49 -0.511 86 70.00 85.14 -0.858 87 70.53 85.82 -1.175 88 71.12 86.57 -1.434 89 71.80 87.39 -1.609 90 72.60 88.33 -1.670 91 73.56 89.41 -1.593 92 74.73 90.64 -1.359 93 76.16 92.03 -0.968 94 77.92 93.57 -0.433 95 80.07 95.19 0.188 96 82.70 96.79 0.791 97 85.90 98.23 1.228 98 89.77 99.31 1.310 99 94.43 99.89 0.887 100 99.99 100.00 -0.000 --- bis --- Pw Ouv Pw_verif Erreur 0 0.00 0.00 0.000 1 13.11 1.43 0.433 2 15.32 2.26 0.258 3 17.19 3.15 0.155 4 18.83 4.09 0.093 5 20.28 5.06 0.056 6 21.58 6.03 0.034 7 22.78 7.02 0.021 8 23.89 8.01 0.013 9 24.92 9.01 0.008 10 25.90 10.00 0.005 11 26.82 11.00 0.003 12 27.69 12.00 0.002 13 28.53 13.00 0.001 14 29.33 14.00 0.001 15 30.10 15.00 0.000 16 30.85 16.00 0.000 17 31.58 17.00 0.000 18 32.28 18.00 0.000 19 32.96 19.00 0.000 20 33.63 20.00 0.000 21 34.28 21.00 0.000 22 34.92 22.00 0.000 23 35.55 23.00 0.000 24 36.16 24.00 0.000 25 36.76 25.00 0.000 26 37.36 26.00 0.000 27 37.94 27.00 0.000 28 38.51 28.00 0.000 29 39.08 29.00 0.000 30 39.64 30.00 0.000 31 40.20 31.00 0.000 32 40.74 32.00 0.000 33 41.29 33.00 0.000 34 41.82 34.00 0.000 35 42.35 35.00 0.000 36 42.88 36.00 0.000 37 43.41 37.00 0.000 38 43.93 38.00 0.000 39 44.44 39.00 0.000 40 44.96 40.00 0.000 41 45.47 41.00 0.000 42 45.98 42.00 0.000 43 46.49 43.00 0.000 44 46.99 44.00 0.000 45 47.49 45.00 0.000 46 48.00 46.00 0.000 47 48.50 47.00 0.000 48 49.00 48.00 0.000 49 49.50 49.00 0.000 50 50.00 50.00 0.000 51 50.50 51.00 0.000 52 51.00 52.00 0.000 53 51.50 53.00 0.000 54 52.00 54.00 0.000 55 52.51 55.00 0.000 56 53.01 56.00 0.000 57 53.51 57.00 0.000 58 54.02 58.00 0.000 59 54.53 59.00 0.000 60 55.04 60.00 0.000 61 55.56 61.00 0.000 62 56.07 62.00 0.000 63 56.59 63.00 0.000 64 57.12 64.00 0.000 65 57.65 65.00 0.000 66 58.18 66.00 0.000 67 58.71 67.00 0.000 68 59.26 68.00 0.000 69 59.80 69.00 0.000 70 60.36 70.00 0.000 71 60.92 71.00 0.000 72 61.49 72.00 0.000 73 62.06 73.00 0.000 74 62.64 74.00 0.000 75 63.24 75.00 0.000 76 63.84 76.00 0.000 77 64.45 77.00 0.000 78 65.08 78.00 0.000 79 65.72 79.00 0.000 80 66.37 80.00 0.000 81 67.04 81.00 0.000 82 67.72 82.00 0.000 83 68.42 83.00 0.000 84 69.15 84.00 0.000 85 69.90 85.00 0.000 86 70.67 86.00 -0.001 87 71.47 87.00 -0.001 88 72.31 88.00 -0.002 89 73.18 89.00 -0.003 90 74.10 90.00 -0.005 91 75.08 90.99 -0.008 92 76.11 91.99 -0.013 93 77.22 92.98 -0.021 94 78.42 93.97 -0.034 95 79.72 94.94 -0.056 96 81.17 95.91 -0.093 97 82.81 96.85 -0.155 98 84.68 97.74 -0.258 99 86.89 98.57 -0.433 100 100.00 100.00 -0.000 un graphique avec le resultat du moniteur serie est plus parlant.
RE: Lineariser la sortie Triac en mode découpe Sinus (Sujet clos temporairement) - Lolo69 - 28-03-2026 Ce serait mieux que tu ouvres une discussion plutôt que de polluer la mienne d autant plus que ta formule de base étant fausse tes comparaison le sont également. Moi j attend un programme pour le routeur que je puisse comparer les courbes de routages. C est étonnant qu une lecture d un tableau prends 30 fois plus de temps qu un polynôme , non ? Et tu es encore sur du pw entier , alors qu il faut intercaler la linéarisation en flottant avant la conversion en int sinon il n y a aucun intérêt (27-03-2026, 04:40 PM)Lolo69 a écrit : En attendant la méthode de 59Jag, vous pouvez donc tester la méthode Polynôme qui fonctionne parfaitement chez moi sans engendrer aucun reset ESP depuis 1 semaine On peut laisser les modifs de gain , même si c est moins nécessaires ça derange pas RE: Lineariser la sortie Triac en mode découpe Sinus - 59jag - 28-03-2026 (25-03-2026, 10:37 PM)Lolo69 a écrit : Réfléchis un peu à la précison et tu réviseras ce que c est qu un regulateur PID et que justement c est l accumulation interne qui déstabilise toutes la boucle . La commande ayant effectivement que 100 pas il ne faut pas les gaspiller avant … (25-03-2026, 10:37 PM)Lolo69 a écrit : En attendant la méthode de 59Jag, vous pouvez donc tester la méthode Polynôme qui fonctionne parfaitement chez moi sans engendrer aucun reset ESP depuis 1 semaine je répond juste a tes messages. tu as meme âs pris le temps de regarder le code il y a pas de lecture de tableaux, pw est un float . pour le code j ai mis la function dans le routeur faut l appeler comme ceci Code : if (Actif[i]==MODE_DECOUPE_ONOFF) {le code esp32 ne ment pas c est le résultat réel des 2 fonctions , je pensais que tu voulais une bonne précision . c etait juste pour aider apres si tu veux pas de réponse de ma part ne me me demande pas des choses. RE: Lineariser la sortie Triac en mode découpe Sinus (Sujet clos temporairement) - Lolo69 - 28-03-2026 @ Alexandeur , tu as désactivé tes messages privés on ne peut pas répondre. Sinon la réponse est oui les 2 cohabitent très bien @j59Jag . Tu es extrêmement brillant en math et en codage il n y a aucun doute. Je retiens toutefois ta démarche car elle terriblement intéressante et l’optimisation du code très maligne pour réduire les ressources ESP32. Si ces optimisations sont de toi je dis chapeau bas Je me suis triturer les méninges pour décoder car c est pas très humain de penser que cos(alpha)^2 c est 1 - sin( alpha) ^2 y a que Pythagore qui peut voir ca du premier coup d 'oeil !! Tout ça pour éviter de calcul le cos(alpha) pour réduire les cycles Meme si la symetrie se voit , ce n'est pas très humain non plus de faire un double miroir de 0-50 pour voir le 50-100 poru gagner quelques cycles CPU,bonjour la relecture du programme... Bref ce n'est plus de mon age ces exercices mathematiques de haut vol ;-) On a dû perdre pas mal de monde dans cette joute mathématique mais en tout cas merci et bravo ca fait plaisir à voir qu'il y a encore des personnes qui savent compter en France Donc je résume Oui ton code est extrêmement précis car il fait une régression de Newton ( c est exactement ce que je ne voulais pas faire car trop complexe) . Mais de la à affirmer dans ta première réponse que mon code était trop compliqué, ce n est pas justifié du tout par rapport au tien qui l est beaucoup plus pour être finalement beaucoup plus gourmand en cycle CPU malgré les grosses optimisations trigonométriques et algébriques. Et il faut bien se rendre à l évidence annoncée du départ cette fonction transcendante ne se laisse pas inverser sans effort! Meme si le code que je propose ne te plaît pas, il remplit les objectifs et le resultat sur les courbes de routage sont là pour le démontrer. Quand tu auras proposé les modifs à implémenter dans le RMS F1ATB je serais ravi de les implémenter pour voir le résultat sur le routage. Pour l’instant, je ne suis pas assez compétent pour faire tes modifs dans le code et gagner moins de 1% d écart par rapport à l idéal ne sera pas visible voila un comparatif encore théorique mais je dirais quand meme avantage au polynome , un chouille moins precis mais bien plus rapide et facile à implementer RE: Lineariser la sortie Triac en mode découpe Sinus (Sujet clos temporairement) - laroussette - 31-03-2026 (28-03-2026, 03:06 PM)Lolo69 a écrit : Ce serait mieux que tu ouvres une discussion plutôt que de polluer la mienne d autant plus que ta formule de base étant fausse tes comparaison le sont également. Moi j attend un programme pour le routeur que je puisse comparer les courbes de routages. C est étonnant qu une lecture d un tableau prends 30 fois plus de temps qu un polynôme , non ? Et tu es encore sur du pw entier , alors qu il faut intercaler la linéarisation en flottant avant la conversion en int sinon il n y a aucun intérêt Bonjour Lolo69, bravo pour le travail accompli. Peut-on l’intégrer à 17.16 ? Si ce n’est déjà pas le cas ? RE: Lineariser la sortie Triac en mode découpe Sinus (Sujet clos temporairement) - Lolo69 - 31-03-2026 Ça c est pas moi qui décide lol |