Age : 76 Localisation : Charente Maritime Nombre de messages : 306 Date d'inscription : 24/06/2013
Sujet: Re: La gestion des cantons par Arduino !! Dim 26 Fév 2017 - 19:56
Zut, t'as effacé tes tracés ?
nicozea57 Membre
Age : 49 Localisation : goin Nombre de messages : 579 Date d'inscription : 03/08/2016
Sujet: Re: La gestion des cantons par Arduino !! Dim 26 Fév 2017 - 20:29
Non non, ils sont sur le liège !!
nicozea57 Membre
Age : 49 Localisation : goin Nombre de messages : 579 Date d'inscription : 03/08/2016
Sujet: Re: La gestion des cantons par Arduino !! Dim 26 Fév 2017 - 20:48
J'étais en train de lire des articles sur la régulation d'un moteur à courant continu, et je suis tombé sur ce schéma :
Parmi les arduinautes, est-ce que certains ont déjà testé ? Il s'agit de la mesure de la FCEM du moteur pendant la période où la PWM est à 0, envoyée sur une entrée analogique de l'Arduino... J'aimerais bien testé pour voir...
DMARRION Membre
Age : 66 Localisation : THEZEY ST MARTIN (54) Nombre de messages : 4342 Date d'inscription : 27/12/2010
Sujet: Re: La gestion des cantons par Arduino !! Lun 27 Fév 2017 - 7:14
Ce schéma n'est que l'interface, à lui seul il n'est rien : la régulation dépendra totalement du programme qui est derrière. La régulation, comme tout système "bouclé", n'est pas une mince affaire : Il faut en déterminer les critères de stabilité sous peine d'obtenir des mauvais résultats.
En effet, pour atteindre une consigne, il y a une infinité de manières : - à une extrémité des possibilités, il y a la correction trop peu efficace. La vitesse du moteur finit par atteindre la vitesse de consigne, mais ça prend "un certain temps", et c'est comme ça à chaque modification de la sollicitation du moteur. - à l'autre extrémité il y a la correction si efficace que la consigne est dépassée. Le système réagit en faisant une nouvelle correction dans l'autre sens, mais trop efficace elle aussi, puis re-nouvelle correction, etc. Dans ce cas de figure, on obtient une sinusoïde amortie autour de la valeur de consigne. Si la correction est vraiment trop forte, le système peut devenir instable (la sinusoïde ne s'amortit pas, le moteur accélère et décélère constamment). - au milieu de tout ça, il y a la correction optimale, celle qui permet d'atteindre le plus rapidement possible la consigne sans la dépasser. Je me souviens de mes cours de BTS : Cette correction correspond à la valeur de 0,7 pour un paramètre qu'on appelle "m", mais je ne sais évidemment plus comment on calcule ce paramètre... Tout ce dont je me rappelle, c'est que c'était assez compliqué. Les paramètres électriques du moteur (couple en fonction du courant, FCEM en fonction de la vitesse de rotation, résistance du bobinage) et les paramètres mécaniques de l'ensemble moteur + pièces entrainées (inertie, frottements secs, frottements visqueux, etc) jouent évidemment dans ce calcul.
Avec un circuit de régulation réalisé avec des composants physiques, la valeur de "m" est en général déterminée pas des ratios entre des valeurs d'impédance. Avec une régulation entièrement faite par programme, il y a forcément l'équivalent à trouver sous forme de lignes de commande.
Tout ça pour dire que la régulation n'est pas une panacée : pas facile d'optimiser le système quand on ne connaît pas grand chose des paramètres électriques et mécaniques du moteur et de ce qu'il entraine. Une commande simple sans asservissement vaut mieux qu'une régulation mal calculée !
nicozea57 Membre
Age : 49 Localisation : goin Nombre de messages : 579 Date d'inscription : 03/08/2016
Sujet: Re: La gestion des cantons par Arduino !! Lun 27 Fév 2017 - 7:50
dMARRION a écrit:
Une commande simple sans asservissement vaut mieux qu'une régulation mal calculée !
Je suis d'accord ! Ayant fait pas mal de régulation sur des moteurs asynchrones tri, sur variateur, c'était nettement plus simple (quoique...) : régulation PID avec des coefficients à trouver pour avoir la meilleure réponse... Mais, je me posais surtout la question de savoir si ce simple montage permettait effectivement de mesurer la fcem du moteur...
Pour la régulation, qui ne tente rien n'a rien, mais ça aurait de la gueule d'avoir une régulation sur le système !
CleoN Membre
Age : 69 Localisation : 33 Bouliac Nombre de messages : 1624 Date d'inscription : 26/11/2010
Sujet: Re: La gestion des cantons par Arduino !! Lun 27 Fév 2017 - 11:07
Bon courage pour la mise au point des coefficients.
Prévoir des boites d'aspirines !
christ71 Membre
Age : 71 Localisation : bourgogne Nombre de messages : 453 Date d'inscription : 30/10/2013
Sujet: Re: La gestion des cantons par Arduino !! Lun 27 Fév 2017 - 12:18
bonjour, je t'encourage à tenter de mettre une regulation. Beaucoup de décodeur DCC sont munies d'une régulation et c'est vraiment un plus par rapport à l'analogique lorsqu'on utilise des logiciels et que l'on veut obtenir des accélérations/décélérations et arrêts précis.
Pour ce qui est des réglages, à moins d'être un spécialiste pour calculer les valeurs de P I D, en général on y va par approche successive. Comme dit Cleon cela peut prendre un peu de temps, mais une fois les premiers réglages dégrossis, après tu pourras affiner plus tard.
Pour revenir sur les décodeurs DCC, la régulation a les mêmes paramètres quelque soit le moteur utilisé ou la charge. Aussi je ne pense pas que l'on ait besoin d'une régulation sophistiquée.
Derf Membre
Age : 56 Localisation : 31 Nombre de messages : 990 Date d'inscription : 05/03/2011
Sujet: Re: La gestion des cantons par Arduino !! Lun 27 Fév 2017 - 17:56
Bonjour,
On peut effectivement régler un PID par approche successive mais c'est long et à refaire pour chaque loco ayant des caractéristiques différentes, Couple inertie ... et pour chaque rame tractée
De plus peut on calculer la dérivée et l'intégrale de la mesure de façon simple et rapide avec les possibilités de calcul d'un Arduino? Si non il serait peut être plus sage de rester à un régul P simplement ?
nicozea57 Membre
Age : 49 Localisation : goin Nombre de messages : 579 Date d'inscription : 03/08/2016
Sujet: Re: La gestion des cantons par Arduino !! Lun 27 Fév 2017 - 18:37
Je vois que la régulation en tente plus d'un !!
Déjà, en premier lieu, il faut que j'arrive à mesurer correctement la FCEM, je ne peux le faire que pendant le créneau à 0 de la PWM, et ce temps est court... et que la lecture analogique prend du temps. S'il n'y a qu'un seul train, ça ira, mais ce sera proportionnel au nombre de trains roulant...
L'avantage, c'est que j'ai déjà la possibilité d'afficher la vitesse du train, donc je pourrai vérifier assez facilement si la vitesse reste stable ou non. Il suffira de mettre mon ovale légèrement en pente afin d'avoir un côté en montée et l'autre en descente...
J'attaque les essais demain... Par contre, j'ai une question, quelle est la valeur de FCEM que je devrais trouver ? D'après ce que j'ai vu, elle peut être comprise entre 30% et 80% de la consigne (fonction durendement moteur), est-ce exact ? Elle ne peut pas dépasser 12 volts si les impulsions PWM sont à 12 volts ? Voici un site que je trouve intéressant sur le sujet : Lien
Derf Membre
Age : 56 Localisation : 31 Nombre de messages : 990 Date d'inscription : 05/03/2011
Sujet: Re: La gestion des cantons par Arduino !! Lun 27 Fév 2017 - 19:32
Ce que je comprends plutôt c'est:
Ne depasse pas un rapport cyclique de 80% car tu as besoin d'au moins 2ms pour que la phase de roue libre (où V= 0V) se termine et que la fcem apparaisse.
Que sur un moteur de basse qualité la résistance interne est élevée. Comme Ualim = E + RI Tant que Ualim n'atteint pas 30% on n'a pas de rotation Ualim = RI et E=0V Au moment du démarrage Ualim = E + RI et E trés faible ( 0+) Puis E proportionnel à la vitesse du rotor
CleoN Membre
Age : 69 Localisation : 33 Bouliac Nombre de messages : 1624 Date d'inscription : 26/11/2010
Sujet: Re: La gestion des cantons par Arduino !! Lun 27 Fév 2017 - 20:55
J'ai regardé vite fait sur une machine avec décodeur: on a une pause dans le PWM d'alimentation du moteur d'environ 10ms de temps en temps (j'ai pas regardé tous les combien......)
Accessoirement, quand on enlève la régulation de charge, la vitesse maxi augmente notablement; normal puisqu'il n'y a plus de pause dans le PWM !
DMARRION Membre
Age : 66 Localisation : THEZEY ST MARTIN (54) Nombre de messages : 4342 Date d'inscription : 27/12/2010
Sujet: Re: La gestion des cantons par Arduino !! Mar 28 Fév 2017 - 6:58
En faisant une régulation basée sur la mesure de la FCEM, tu vas peut-être rencontrer un autre problème : Ton système permet de régler des paramètres de vitesse individualisés pour chaque loco, et donc en principe tu n'as pas besoin de calmer tes locos un peu trop véloces avec des diodes chûtrices (diodes ordinaires ou Zeners), mais si tu veux pouvoir faire rouler des locos "d'invités" équipées de la sorte, la valeur mesurée de la FCEM sera forcément amputée de la valeur du seuil des diodes... Du coup, la régulation va "croire" que la machine n'avance pas assez vite et va forcer la consigne de vitesse.
nicozea57 Membre
Age : 49 Localisation : goin Nombre de messages : 579 Date d'inscription : 03/08/2016
Sujet: Re: La gestion des cantons par Arduino !! Mar 28 Fév 2017 - 11:26
Bien vu Dominique !
Après réflexion, voici ce à quoi j'arrive :
Mettre effectivement une mesure de FCEM sur chaque canton implique d'ajouter un pont diviseur sur le collecteur de chaque transistor commutant la PWM des cantons. Ce qui représente un travail non négligeable. D'autant plus, qu'effectivement, chaque loco possède ses propriétés uniques et que des coefficients généraux n'auraient pas donné de bons résultats, je pense... Et devoir appliquer des coefficients différents pour chaque locomotive deviendrait vite pénible...
Je pars dans une autre direction, qui est de dire : Si un canton est en montée ou en descente, il le sera pour tous les trains... Donc, quelque soit la loco, quelque soit la charge, le ralentissement ou l'accélération d'un train sera dû à cette pente uniquement. L'idée est donc de calculer un coefficient par canton qui s'appliquera à tous les trains. Pour ce faire, il suffit d'avoir 1 canton de référence (de niveau de préférence) qui donnera une vitesse de référence sur laquelle je compare la vitesse des autres cantons. Puis, j'applique les coefficients directement sur la consigne PWM... Si 2 cantons successifs ont des coefficients différents, la variation de consigne se fera progressivement pour éviter d'avoir des à-coups sur les locos !
Je viens de tester (car ce n'est que de la programmation ! ) et c'est pas mal. Avant la mise en place, j'avais 2 cantons où les machines accéléraient car ils sont légèrement en descente. Après, les coefficients jouant, les machines "freinent" et leur vitesse restent proche de celle de référence (delta maxi 5 km/h à l'échelle)
Qu'en pensez-vous
nicozea57 Membre
Age : 49 Localisation : goin Nombre de messages : 579 Date d'inscription : 03/08/2016
Sujet: Re: La gestion des cantons par Arduino !! Mer 1 Mar 2017 - 13:21
Bonjour,
Grâce à la réception de la 15000 de "BB15030", j'ai pu faire un test de double traction, en effet, la 15000 couplée à la 25500 Piko passe tout juste sur mon canton le plus petit !! Résultat : fonctionnement impeccable, aucun problème pour la double traction !!
Le principe des coefficients de cantons est en place, quelques petits réglages à faire, mais ça me plait assez... A+
nicozea57 Membre
Age : 49 Localisation : goin Nombre de messages : 579 Date d'inscription : 03/08/2016
Sujet: Re: La gestion des cantons par Arduino !! Mer 1 Mar 2017 - 15:59
Test de train en pousse avec un wagon graphité en tête et une loco derrière. Sans problème, le convoi s'arrête comme il faut devant un feu rouge...
On continue comme ça, jusqu'au bout !
DMARRION Membre
Age : 66 Localisation : THEZEY ST MARTIN (54) Nombre de messages : 4342 Date d'inscription : 27/12/2010
Sujet: Re: La gestion des cantons par Arduino !! Jeu 2 Mar 2017 - 8:20
Lorsque tu fais une double traction, tu ne peux pas individualiser les paramètres pour chacune des 2 locos puisqu'elles se trouvent dans le même canton (pour ceux qui prendraient ce fil "au vol", je rappelle qu'on n'est pas en DCC mais en analogique avec un pilotage individualisé qui suit les locos canton par canton). Entre la 25500 Piko et la 15000 Minitrix (ou la vieille Fleischmann ?), il doit y avoir des différences importantes (vitesse max, tension de décollage,...). Tu gères ça comment ?
nicozea57 Membre
Age : 49 Localisation : goin Nombre de messages : 579 Date d'inscription : 03/08/2016
Sujet: Re: La gestion des cantons par Arduino !! Jeu 2 Mar 2017 - 8:36
Je ne le gère pas ! Effectivement, pour la double traction, il faut des machines qui aient des caractéristiques proches l'une de l'autre...(en général, si on fait une UM, ce seront 2 locos identiques...)
nicozea57 Membre
Age : 49 Localisation : goin Nombre de messages : 579 Date d'inscription : 03/08/2016
Sujet: Re: La gestion des cantons par Arduino !! Jeu 2 Mar 2017 - 17:43
Bonjour,
une nouvelle vidéo pour montrer le fonctionnement du système avec loco en pousse : (vidéo brute de décoffrage, pas de montage...)
Arduino Membre
Age : 68 Localisation : 78450 Chavenay Nombre de messages : 95 Date d'inscription : 20/12/2016
Sujet: Re: La gestion des cantons par Arduino !! Ven 3 Mar 2017 - 1:31
Ouf ! J'y suis arrivé ! 17 pages de fil en deux jours (non nuits ! ).
L'idée initiale a bien évolué : écran LCD, tablette, 4 m² de locodrome avec gare automatisée, etc. C'est une belle réalisation mais comme a dit ton père, à force d'en rajouter ça va devenir compliqué... Et ça l'est.
Bon, je cogite tout cela et on en reparle. Et bravo...
Christian
nicozea57 Membre
Age : 49 Localisation : goin Nombre de messages : 579 Date d'inscription : 03/08/2016
Sujet: Re: La gestion des cantons par Arduino !! Ven 3 Mar 2017 - 7:45
Merci Christian,
C'est compliqué à faire, mais à utiliser c'est super simple ! A+
DMARRION Membre
Age : 66 Localisation : THEZEY ST MARTIN (54) Nombre de messages : 4342 Date d'inscription : 27/12/2010
Sujet: Re: La gestion des cantons par Arduino !! Ven 3 Mar 2017 - 8:16
Pour avoir vu de visu le système en fonctionnement, je confirme que c'est un vrai bonheur !
C'est le système Chenevez avec des fonctionnalités supplémentaires en prime, sans gros câblage et avec les paramètres des trains qui restent en mémoire quand on débranche !!!
nicozea57 Membre
Age : 49 Localisation : goin Nombre de messages : 579 Date d'inscription : 03/08/2016
Sujet: Re: La gestion des cantons par Arduino !! Ven 3 Mar 2017 - 8:49
Merci Dominique...
PtitLouis58 Membre
Age : 70 Localisation : Fourchambault 58 Nombre de messages : 802 Date d'inscription : 08/07/2008
Sujet: Re: La gestion des cantons par Arduino !! Ven 3 Mar 2017 - 8:53
Bon vu que c'est presque au point,tu vois ce qu'il te reste à faire,l'installer(bientôt j'espère) chez papa,et là pour les vidéos,y'a de quoi faire.
nicozea57 Membre
Age : 49 Localisation : goin Nombre de messages : 579 Date d'inscription : 03/08/2016
Sujet: Re: La gestion des cantons par Arduino !! Ven 3 Mar 2017 - 8:54
Commence à préparer le câblage !! Tu connais les coupures, les soudures, et sur le sujet, tu as toutes les informations des longueurs nécessaires !!! Ok je sors
PtitLouis58 Membre
Age : 70 Localisation : Fourchambault 58 Nombre de messages : 802 Date d'inscription : 08/07/2008
Sujet: Re: La gestion des cantons par Arduino !! Ven 3 Mar 2017 - 8:57