Note de ce sujet :
  • Moyenne : 5 (1 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Multisinus avec ON répartis sur périodes courtes
#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
;-) ;-)
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 : 5)
Merci André Smile ,
Routeur V16.00b (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
Smile Smile Smile
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.16 : UxI2  (SSR CE Sanitaire, SSR CE Préchauffage, SSR Marche Forcée), Nomade bain d'huile, Sondes T°, Linky (suivi)
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
Smile Smile Smile
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
Smile Smile Smile
Répondre



Atteindre :


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

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