Bonjour à toutes et à tous.
J'ai créé une application qui me permet de contrôler la vitesse d'un ventilateur. La seule commande que je peux envoyer est + ou - suivi d'une valeur, sur une échelle de ratio de 1000 (ex : +100, -600 ...).
J'ai donc procédé à un étalonnage pour établir la relation entre la valeur du ratio envoyé et la vitesse obtenue et ainsi contrôler la vitesse. En utilisant un timer, j'envoie à chaque Tick la valeur correspondante de ratio pour atteindre la bonne vitesse. Mon problème : lorsque l'écart entre la vitesse actuelle et la vitesse voulue est important, le programme envoie plusieurs commandes (temps de montée en puissance lent = plusieurs tick de timer), j'ai donc un dépassement très important. Le problème est identique pour des écarts moins grands, mais il est bien entendu moins conséquent. Si j'augmente l'intervalle de mon timer, ce sera trop lent pour atteindre la vitesse voulue.
Je ne pense pas que ce soit la meilleure méthode, j'aimerai donc revoir mon modèle et intégrer un régulateur PID. Je connais le principe du régulateur, mais je ne sais pas comment identifier les facteurs P, I et D, et surtout comment les faire interagir avec la vitesse dans mon code (multiplier, diviser la vitesse, ou le ratio ...).
- Est ce qu'utiliser un étalonnage ratio/vitesse est une bonne solution ?
- Est-ce qu'il vaudrait mieux envoyer des ratios proportionnels à l'écart de vitesse et réguler par la suite ?
- Est-ce que mon modèle est bon si j'intègre un régulateur PID ?
- Les autres idées sont les bienvenues :-)
Merci, et bonne journée à tous !
Brygoth
Partager