Je suis à la recherche d'une fonction afin de gérer la montée et la descente d'un éclairage à base de leds de façon sigmoïde Sigmoïde (mathématiques) — Wikipédia
Pour le démarrage, l'arrêt et la gestion de la progression j'utilise une base de temps en secondes #define heureSeconde ((RTC.hour3600L)+(RTC.minute60)+RTC.seconde)
J'arrive sans problème à allumer et éteindre l'éclairage de façon linéaire en utilisant la fonction
"map(heureSeconde, debut, fin, 0, 255)" mais le rendu ne me plait pas.
Quelqu'un serait il m'aider à faire une fonction montante et descendante sigmoïde ?
Merci d'avance pour votre aide ...
Hello, I am looking for a function to manage the rise and lighting based on LEDs so sigmoid descent (http://fr.wikipedia.org/wiki/Sigmo% C3% AFde_ (% C3 math A9matiques%)). To start, stop and manage the progression I use a time base in seconds # define heureSeconde ((RTC.hour * 3600L) + (RTC.minute * 60) + RTC.seconde) I got no problem to turn on and off lighting using linear function "map (heureSeconde, start, end, 0, 255)" but the result does not please me. Someone would help me make a rising and descending sigmoid function? Thank you in advance for your help ...
Ce que je ne comprends pas c'est que dans le lien que tu donnes (enfin en bataillant un peu parce que le lien est pourri) tu as la définition de la sigmoïde. Donc quel est ton problème?
OK.
La formule est "mathématique pure". Elle est définie de x=-infini à x=+infini.
Pour x,=0 F = 1/2., pour x= -infini elle est égale à 0 et pour x=+infini est est égale à 1.
Si en mathématiques pures cela ne pose aucun problème, ce n'est pas exploitable dans une optique "Physique électronique" où on ne remonte pas le temps.
Première chose à faire étudier la fonction, comme je suis un peu fainéant je l'ai tracée dans une feuille de tableur pour différente valeur de lambda --> c'est très facile à faire. Voir image sigmoide_mathématique.png.
A partir de maintenant on met les pieds sur terre on quitte les maths pures et on approxime.
Comme on est dans le réel on n'utilise plus x mais t, symbole physique du temps.
Supposons que ce soit la courbe pour lambda =1 qui convienne. Note bien c'est arbitraire-> ce n'est que mon choix, peut-être préfèrera-tu Lambda = 0,75.
Qu'est ce qu'on voit ?
On voit que pour lambda = 1 l'amplitude du signal commence à décoller de 0 pour t= -5,4.
Pas de soucis pour décaler les abscisses de 5,4
F= 1/(1+e-(Lamba(t-5,4) ).
On obtient la nouvelle courbe sigmoide_physique_L1.png.
C'est maintenant exploitable pour créer un signal.
Après il reste à convertir en PWM.
Mais là il faut que tu bosse un peu.
Une feuille de tableur, un pas dans le domaine temporel à définir et l'application de la règle de trois cela devrait le faire.
Cet outil pourrait en intéresser certains: SMath Studio
Plus pratique que le tableur dans certains cas et la présentation est plus mathématique du point de vue de l'écriture.
Bien fichu, la saisie est peut être un peu ardue au début mais il y a des tutos.
Et multi-plateforme (Windows, Linux) utilise .NET sous windows et Mono sous Linux.
Dans le même ordre d'idée il y a QtiPlot.
Multiplateforme (sans .net ni .mono)
Un peu déroutant --> ressemble à une feuille de tableur mais n'en est pas un.
Très bon pour approximer une courbe (sur ce point Excel n'est pas très bon et OpenOffice est littéralement ko).
Peut faire graphiquement : intégrale, dérivée et plein d'autre choses.