Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Multisinus le paradoxe
#21
Sympa cette optimisation. Ce qui me gène un peu, c'est rien à 1% et 99%. Comme vous avez le tableur Michy, pouvez vous tracer la courbe des rapports et également la courbe Y=X afin de les comparer.
André
Répondre

#22
@Michy oui exactement des tableaux de ce genre…cela permet d optimiser le code, de remplir à la main les combinaisons difficilement calculables, tableau ultra compact avec les valeurs binaires sur 64bits qui se décode ultra rapidement car on est proche des instructions de base du micro contrôleur.
Je pousserai le vice à remplacer le tableau en notation binaire pour avoir visuellement l emplacement des ON , mon cerveau a du mal à se représenter des nombres en hexa



@Andre pour le 1 et 99 . Il faut nuancer…
Comme dit dans le tout début de mon post on privilégie la vitesse à la précision…
Pour le 1% que ce soit avec 50 ou 100 périodes si on une veut garder autant de ON positif que négatif , il faut au moins 2 ON donc 2/50 ou 2/100 ça commence à être non négligeable et on risque de consommer de l EDF au début du surplus… je pense qu’il vaut mieux injecter un peu.
Pour le 1 et le 99% la regulation va très vite compenser.
L avantage de faire un tableau de pattern est qu on peut manuellement remplir comme on veut en sortant d une règle très précise , pour le 1% on pourrait rentrer dans le tableau 2/199 et pour 99 rentrer 46/50…
En tout cas avec la modification de base de passer à Tmax 50 plus répartition mon multisinus SSR fonctionne quasi aussi bien que découpe sinus triac. Et je n observe pas de clignotement de mes ampoules LEd même les plus sensibles. Pour la composante continue j avoue que je n y avais pas pensé mais sur un CE de 2kw à l échelle du transfo EDF ça doit être négligeable… et pour le comptage je n ai pas vu d écart entre valeur routeur et relevé Enedis.
Ce week-end pas d essai en vue c est l anniv de madame et soleil timide….
Répondre

#23
Bonjour,

  une capture d'écran de graph qui compare les écarts entre ce qui est attendu et ce qu'on obtient avec des séquences en continue

   

pour 1 (et 99 c'est similaire à l'inverse)

F1ATB    1/73, on attends 1 % on atteint 1.3698 soit 0.3698% d'écart
LoLo69   0/4, on attends 1%, on obtient 0.0000 soit 1% d'écart [pour l'exemple, je connais pas la valeur du patch]
Michy   1/64, on attends 1%, on obtient 1.5625 soit 0.5625% d'écart

ce sont les cas extrêmes  
=> pour comparer : (si on regarde la régule triac pour 0, 1 et 2% on n'ouvre pas le triac donc c'est a zéro)    "if (Retard[i] < 98  ... "
=> si on considère une charge de 2000W , 1% c'est 20W, la régulation corrigera assez rapidement  

pour les autres cas, je trouve que c'est pas mal

exemple d'amélioration : avec une cible à 51%
F1ATB 19/37  soit 51,3514
LoLo69 20/39 soit 51,2821
Michy 24/47 soit 51.0638


J'ai pris une cible "séquence la plus longue sur 640ms" ça permet de coder un tableau sur 64 bits (1bit par période de 10ms) pour piloter les impulsions envoyées au SSR
sachant que l'actualisation du % d'ouverture se fait toutes les 200ms, n'importe quel scénario coupera des séquences a un moments ou un autre car il n'y a pas de synchronisme entre changement du % de regul et durée des séquences


Pièces jointes Miniature(s)
   

.txt   comparaison en binaire.txt (Taille : 26.38 Ko / Téléchargements : 3)
Merci André Smile ,
Routeur V15.09b (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions
Panneaux 1680Wc
1 Triac : ECS 2000W
1 SSR (multi) : ECS 1800W
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W
1 SSR (multi) : circuit d'eau 1500W
1 SSR (multi) : Ultime 2000W
Répondre

#24
En tout cas ce travail collaboratif va payer. Je m atele cette semaine à implémenter des tableaux, plus ou moins manuel, pour faciliter la prise en compte de tous les critères.
Mon approche reste vraiment de raccourcir les séquences quitte à perdre de la précision, car de toute façon cette précision est utopique puisque qu on n est pas synchro avec le reseau. Donc on perd des pulses et il vaut donc mieux aller vite pour les rattraper….. à voir le compromis le plus efficace il n’y a pas vraiment de vérité absolue. En tout cas j admire le travail d André et de Michy ( et des autres forumeurs sur d autres sujets)

Et j espère vous montrer les résultats sur les courbes de puissance, qui ont déjà été très visiblement améliorées avec la première approche.
Répondre

#25
Bonjour,
est-ce que les optimisations que vous travaillées actuellement sont pour toutes les sources de mesure + multisinus + ssr ou uniquement pour le shelly ? Je suis en UxI2 et actuellement j'ai beaucoup de parasites (scintillement des led) et je suis très intéressé par la lecture de votre post. Dans tous les cas un grand bravo et un remarquable travail collaboratif.
Désolé de parasiter votre post de travail....
RMS v.14.25 : UxI2 compteur, Linky suivi, SSR CE principal, SSR CE2 (préchauffage), Nomade bain d'huile, 7 Sondes T°
PV 2600 Wc (4x425w + 2x500w), OpenDTU (HM,HMS), HA sur rpi5
Un grand merci à André et à la communauté
Répondre

#26
Pour le 1/ pas la peine de faire un 2/200 pour ne pas avoir de composante continue. Il suffit de faire 1/99, automatiquement la trame d'après on sera sur un demi sinus inversé. Quand on est impair sur le nombre de pulses à envoyer, il faut être impair sur la trame complète.

André
Répondre

#27
(13-10-2025, 08:35 AM)memz a écrit : Bonjour,
est-ce que les optimisations que vous travaillées actuellement sont pour toutes les sources de mesure + multisinus + ssr ou uniquement pour le shelly ? Je suis en UxI2 et actuellement j'ai beaucoup de parasites (scintillement des led) et je suis très intéressé par la lecture de votre post. Dans tous les cas un grand bravo et un remarquable travail collaboratif.
Désolé de parasiter votre post de travail....

Pour le multi sinus quelques soit le mode de mesure
Dans un deuxième temps je m attaquerai au train de sinus qui sera plus simple mais restera moins “précis”
Répondre

#28
Pour le tableau, des ouvertures, un critère est d'avoir des séquences les plus courtes et une dérivée toujours positive entre 2 valeurs. C'est le pourquoi du 0.4%.

Par exemple, si on a une solution à 33.4%, celle d'au-dessus sera au moins à 34-0.4=33.6% . Ainsi, on a une dérivée positive avec un saut de 0.2%.

Si on tolère des écarts de plus de 0.5%, on risque la dérivée négative.

Ce que l'on peut faire, c'est après avoir calculé le tableau des ouvertures, faire un algorithme qui réparti sur la longueur de la trame des sinus complets (1/2 sinus positif et 1/2 sinus négatif).

(Réflexion à 3h du matin...)
André
Répondre

#29
Une autre façon de faire, beaucoup plus simple, si on accepte d'étaler des 1/2 sinus est d'avoir une variable qui sert de compteur de phase.

Toute les 10ms on l'augmente de l'ouverture souhaitée en %. Si l'on dépasse 100, on libère un 1/2 sinus si le 1/2 sinus précédent n'était pas de même signe et on fait -100 sur la variable.

Exemple avec 30%

+| 0
- | 30
+| 60
- | 90
+| 20 --> 1/2sinus
- | 50
+| 80
- | 10 --> 1/2sinus
+| 40
- | 70
+| 0 --> 1/2 sinus

Avec 50% on a:
+| 0
- | 50
+| 0 -->1/2 sinus
- | 50
+| 100 (pas envoyé car de même signe)
- | 50 -->1/2 sinus
+| 0 -->1/2 sinus
- | 50
+| 100
- | 50 -->1/2 sinus
+| 0 -->1/2 sinus
- | 50


Avec 70% on a :
+| 0
- | 70
+|40 -->1/2sinus
- | 10 -->1/2 sinus
+| 80
- | 150 (pas envoyé car de même signe)
+| 50 -->1/2 sinus
- | 20 -->1/2 sinus

Le fait de ne pas envoyer si de même signe évite les composantes continues. Ce n'est pas pénalisant parce que l'on ne fait que retardé d'une 1/2 période et ce retard est pris en compte dans le calcul de la phase et sera compensé plus tard.

C'est un mode que je pourrai appeler Demi-Sinus, très facile à programmer.


André (à 4h du matin...)
Répondre

#30
Ça cogite la nuit…
De mon côté au final  cette nuit j ai construit le pattern en semi manuel car trop de règles à mettre en place dans un algorithme
Oui je sais c est moins joli mais ainsi je choisi moi même à chaque valeur le meilleur compromis
Parfois je sacrifie la vitesse à la précision, parfois la vitesse tout en gardant des +- en nombre égal sur une ou 2 séquences et en vérifiant les enchaînements sur les séquences proches ou identiques.
Je réfléchi maintenant à optimiser la répartition, car comme on est pas synchro avec le 50hz on peut perdre ou gagner des pulses…donc là encore dans la séquence il faut casser la répartition. Donc je fais une réparation pour avoir au moins 2- ou 2+ consécutifs même si c est moins bien réparti
Ça fait une semaine qu on a pas de soleil  à Lyon pour vous poster les résultats sur les courbes…  je suis monté au mieux à 10% seulement de surplus donc pas significatif
Pour casser la régularité de séquences consécutives introduction d une mini séquence pseudo aléatoire pour permettre de réduire les harmoniques de rangs élevés


le pattern "manuel" que j ai finalement retenu

T N
3 0
99 1
51 1
33 1
25 1
21 1
33 2
28 2
25 2
11 1
20 2
9 1
25 3
23 3
7 1
27 4
25 4
12 2
11 2
32 6
5 1
19 4
9 2
13 3
25 6
8 2
31 8
11 3
43 12
31 9
20 6
13 4
25 8
15 5
53 18
40 14
25 9
27 10
21 8
31 12
10 4
29 12
24 10
35 15
25 11
40 18
26 12
17 8
50 24
51 25
4 2
51 26
25 13
17 9
52 28
40 22
25 14
60 34
24 14
61 36
10 6
31 19
21 13
27 17
25 16
40 26
53 35
33 22
25 17
29 20
20 14
31 22
25 18
33 24
54 40
8 6
25 19
61 47
27 21
33 26
5 4
21 17
17 14
24 20
25 21
27 23
28 24
30 26
25 22
18 16
20 18
33 30
25 23
57 53
51 48
40 38
25 24
33 32
51 50
99 98
6 6

On voit rapidement que je n'ai jamais un N impair avec un T pair ceci permet de minimser le risque d'une composante continue et des comptages faux
Je ne me suis astreint à une peridoe max figée dans le marbre pour eviter les grosses erreurs tout en réduisant au maximum les periodes

cela donne une courbes x y excellente
   


des erreurs très faibles et toujours inférieures à 0.4%
   


et des cycles toujours très courts sauf pour les cas "penibles"
   



distibution avec le maximum de paires +;- 
   

distibution avec le maximum de paires +;-  mais un alea pour casser la reproductibilité du motif
   
Répondre



Atteindre :


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

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