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...)
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...)