Auteur Sujet: brancher un volant sur sega model 3  (Lu 37319 fois)

Hors ligne Nene2k10

  • Accro
  • *
  • Messages: 231
    • Voir le profil
brancher un volant sur sega model 3
« Réponse #224 le: Jeudi 12 Septembre 2019, 12:28:26 pm »
  • Merci pour l’explication, si je comprend bien, pour mon moteur de le mans, il ne reste que la solution ioni. Ca coute une blinde ce bidulle

    Hors ligne njz3

    • Curieux
    • *
    • Messages: 13
      • Voir le profil
    brancher un volant sur sega model 3
    « Réponse #225 le: Jeudi 12 Septembre 2019, 16:33:09 pm »
  • @Nene2k10 : il y a de l'espoir si delo arrive à le faire marcher avec son variateur IONI. Alors, un variateur lowcost du commerce avec contrôle en couple (courant) pourra aussi marcher avec les signaux Hall. L'asservissement ensuite en couple, vitesse et position c'est relativement simple à faire sur l'Arduino par retour codeur. En prise direct, le moteur ne tourne pas vite...

    Sur ebay on trouve des variateurs Advanced Motion Control parfois à <50€ avec entrée de commande en couple par PWM ou +/-10V, donc pilotable par l'arduino de delo ou BigPanik (je sais plus lequel des deux à déjà une solution de traduction de commande FFB ou d'émulation de joystick avec FFB).
    D'ailleurs, savez-vous si on peut récupérer ces codes sources ? La plupart du temps les liens (ou les projets) sont morts.

    C'est bien ce forum, j'ai déjà eu un contact pour une Scud race twin en rade ! Si je la prends alors j'essaierai aussi de mettre la main sur un panel Le mans pour regarder pour faire un contrôle du moteur via codeur/variateur.

    Hors ligne delo

    • Accro
    • *
    • Messages: 254
    • Localisation: Drôme (26)
      • Voir le profil
    brancher un volant sur sega model 3
    « Réponse #226 le: Vendredi 13 Septembre 2019, 20:03:30 pm »
  • @njz3 : merci d'avoir été aussi précis dans les détails de tests  ^-
    J'ai en effet tout ce qu'il faut (alimentation de labo, etc..) pour tester, d'ailleurs j'avais fait des manips un peu similaires (mais moins poussées) pour trouver le nombre de pôles du servomoteur model 3  :)
    Question voltage, la ioni est limitée par la PSU à savoir 48V, mais ce n'est pas très grave car pour un volant pas besoin de monter au-dessus de 200tr/min environ. Et bien sûr la limite courant est paramétrable ce qui permet d'amorcer.
    Si tu peux faire des tests de ton coté avec d'autres contrôleurs (plus low cost) ça serait super  :D . De mon coté j'ai fait plusieurs tests aussi avec un autre contrôleur de la même marque (ARGON) qui marche aussi très bien mais c'est cher aussi  :'( Mes tests avec contrôleur séparés ont tous été fait à partir d'une carte STM32 Discovery : STM32F4 en y intégrant le programme MMOS (simule le joystick, intègre des effets FFB et bien sûr génère les signaux PWM). Je n'ai jamais testé le programme d'Etienne par exemple, mais ça peut être une piste bien évidemment. Si ça peux t'aider j'ai une STM32 qui traine je peux la prêter  :D


    Je viens de reprendre le moteur de la Le Mans  :o ce qui est un peu embêtant c'est qu'ils ont directement soudé les butées fin de course sur l'arbre et le châssis du moteur, donc un peu  (:x pour tourner librement. En soit c'est pas grave si on n'utilise pas le volant sur une rotation complète mais pour faire des tests j'aime bien avoir le moteur libre  :'( mais on peut y arriver quand même  ::)

    @Nene2k10 : pas de soucis pour faire des tests sur le moteur à partir de la ioni, comme dit avec un encodeur il n'y a pas de raison que cela ne marche pas  :) par contre je manque de temps (je n'ai pas encore avancé sur ma twin par exemple  :'(  pour intégrer les boutons...)
    Mais on peut avancer à plusieurs. Si c'est possible de me pondre un montage pour intégrer un encodeur ça me ferai gagner du temps (montage à imprimer en 3D par exemple et encodeur)  ;D

    Hors ligne njz3

    • Curieux
    • *
    • Messages: 13
      • Voir le profil
    brancher un volant sur sega model 3
    « Réponse #227 le: Vendredi 13 Septembre 2019, 21:40:49 pm »
  • @delo :
    Pour faire le test du codeur sur le moteur Le mans + IONI, si tu as la possibilité financière, je te conseille d'adapter un codeur du type résolveur sin/cos avec émulation incrémental et signaux capteurs hall (le zéro électrique se faisant à la main). C'est les capteurs les plus génériques, ce qui permet ensuite de tester plein de schémas de commande diférents ou de matos plus ou moins chers.
    J'en ai trouvé en diamètre 22mm ou 35mm chez une boite qui s'appelle RLS. Ces capteurs sont équipés d'une fonction de reset du "zero électrique" pour les signaux hall, bien pratique pour caler le 0 électrique du rotor après avoir énergiser la phase "1".
    Pour avoir les ref exactes, il vaudrait mieux d'abord connaître le nombre de paires de pôles du moteur. Par exemple, pour 4 paires de pôle ce serait :
    Model   Ref   Résolution   Conf. 4 paires poles   Aimant sur axe diam.3mm   Prix HT total avec aimant
    RMC22   RMC22UD12BAA10   4096pt/tour   Oui   number:RMA03A3A07   32,80 €
    RMC35   RMC35UD13BAA10   8192pt/tour   Oui   number:RMA03A3A07   40,70 €

    Prévoir aussi:
    Cable Molex 12 pins   ACC003   1mètre         10 €

    Il reste que pour arriver à une solution DIY vraiment lowcost, c'est pas gagné d'avance.
    La première solution ce serait d'utiliser les signaux Hall du codeur, car commander un BLDC avec ces signaux c'est ce qu'il y a de plus simple et donc de moins cher sur étagère.
    On pourrait imaginer émuler ces signaux Hall à l'aide du potentiomètre déjà présent sur les panels Sega ou utiliser la position absolue du potentiomètre pour déterminer l'angle électrique permettant de faire la commutation à la main. C'est d'ailleurs probablement comme cela que fait la carte Sega.
    C'est faisable en pratique avec une carte de prototypage type Arduino.
    Si en plus la même carte sait bien gérer 6 sorties PWM en mode centré et synchronisées avec l'acquisition d'une ou plusieurs entrées analogiques au même moment, ou pourrait même l'utiliser pour envoyer la sauce dans le moteur. (A voir si c'est le cas de la STM32, de l'Arduino Due ou de la Leonardo ?).
    Ensuite faut avoir un bon électronicien qui arrive à coller derrière une carte de puissance. Le forum regorge de gens compétents, mais malheureusement très peu ont du temps de libre ;-)

    Pour ceux que cela intéresse, un petit topo sur comment on commande un moteur synchrone à aimant permanent (BLDC ou PMSM) en mode commutation par secteurs électriques (aussi appelé commutation trapèze par capteurs Hall):
    En théorie, le but est de contrôler 6 sorties d'impulsions PWM à haute fréquence (plusieurs KHz pour éviter des bruits désagréables de hachage) connectées à un triple demi-pont en H, i.e 6 transistors de puissance équipés de diode de roue libre, et d'au moins une résistance de shunt pour mesurer le courant en sortie de chaque demi-pont ou même des 3.

    Selon une table de commutation qui dépend de la position du rotor dans le tour électrique sur 6 secteurs de 60° (ça, c'est donné par les fameux signaux Hall) et du sens du couple voulu, on allume un PWM relié à un transistor haut relié au bus VDC et un autre PWM relié à un transistor bas au retour vers GND par une résistance de shunt de faible valeur. Les 4 autres PWM sont éteints. Au milieu des créneaux des pulses PWM (d'où l'importance qu'ils soient centrés), il faut simultanément faire l'acquisition de la tension aux bornes de la shunt (avec une amplification pour ramener ceci dans le 0..3.3V du microcontroleur). Ainsi on peut mesurer le courant circulant réellement dans le moteur lorsque les transistors sont "ON".
    Les 2 PWM doivent être bien synchronisés avec l'acquisition et leur largeur d'impulsion correspondra à la quantité de courant qu'on veut faire passer en moyenne (un % du courant max).
    Ensuite il faut asservir la durée des PWM pour que le courant mesuré via le shunt soit celui en consigne. Ca c'est facile à faire au niveau programmation. Idem pour la boucle de vitesse puis de position.

    Il y a des tonnes d'applications notes sur la commutation par trapèze, c'est vraiment bien expliquée dans la litérature des fabricants TI, ST ou Microchip. Un site sympa avec animations.

    « Modifié: Vendredi 13 Septembre 2019, 22:08:51 pm par njz3 »

    Hors ligne delo

    • Accro
    • *
    • Messages: 254
    • Localisation: Drôme (26)
      • Voir le profil
    brancher un volant sur sega model 3
    « Réponse #228 le: Vendredi 13 Septembre 2019, 23:25:44 pm »
  • C'est souvent le problème dans le cadre d'une passion....le temps  :'( :'(
    D'ailleurs c'est pour ça que la solution simucube m'a séduite  :D
    C'est quasi plug and play et ça marche diablement bien  :-)= Ok c'est quasi 400€ c'est vrai  ::) mais ça nous fait gagner des heures de taf et nous permet de nous concentrer sur autre chose où il n'y a pas de solution. ;D
    Donc de mon coté pour l'instant je vais rester sur cette solution :?

    Par contre pouvoir y mettre le moteur Le Mans est intéressant. Pour l'encodeur c'est pas le coté mercantile qui me fait souci mais plutôt qu'à court terme je ne vais pas pouvoir l'intégrer dessus comme ça  :'( il faut bricoler une pièce d'adaptation : un peu de méca quoi  ;D ;D

    Petite question au passage : pourquoi la phase d'initialisation du servomoteur est plus lente quand l'encodeur incrémental est moins résolu  =?= je m'en suis rendu compte en permutant différent encodeur...
    « Modifié: Samedi 14 Septembre 2019, 00:18:08 am par delo »

    Hors ligne njz3

    • Curieux
    • *
    • Messages: 13
      • Voir le profil
    brancher un volant sur sega model 3
    « Réponse #229 le: Mardi 17 Septembre 2019, 18:00:27 pm »
  • Pour ta dernière question sur l'initialisation, c'est effectivement pas logique d'avoir un mouvement plus lent avec un codeur moins résolu.
    La prise de zéro sur une butée se fait normalement à vitesse constante (donc un nombre de pulse codeur/seconde constant) jusqu'à ce que le système de commande du moteur détecte une sur-intensité correspondant à un couple de blocage. Peut être as-tu mal configuré ton variateur IONI ?
    Question au passage : est-ce que le IONI procède à un alignement initial du rotor (énergisation d'une phase) avant d'aller ensuite sur la butée ?

    Hors ligne delo

    • Accro
    • *
    • Messages: 254
    • Localisation: Drôme (26)
      • Voir le profil
    brancher un volant sur sega model 3
    « Réponse #230 le: Mercredi 18 Septembre 2019, 22:14:04 pm »
  • Pour ta dernière question sur l'initialisation, c'est effectivement pas logique d'avoir un mouvement plus lent avec un codeur moins résolu.

    En fait le mouvement n'est pas plus lent c'est juste que la phase d'initialisation dure plus longtemps avec celui moins résolu  =?=
    J'ai fait les 2 manips identiques en ne changeant juste que l'encodeur (et bien sûr paramétrer la bonne résolution à chaque fois dans le contrôleur IONI).... les deux encodeurs étaient celui d'origine du moteur model 3 (90ppr) et l'autre est une banale roue codeuse à 1000ppr (installée via un support imprimé en 3D).

    Pendant la phase d'initialisation, il ne semble pas qu'il aille jusqu'en butée mais tourne de droite à gauche seulement...faut que je vérifie j'ai pas la manip sous la main  :?

    Question au passage : est-ce que le IONI procède à un alignement initial du rotor (énergisation d'une phase) avant d'aller ensuite sur la butée ?

    Aucune idée... ;D mais j'aurai tendance à dire non.
    De mémoire voici la procédure : à l'allumage le contrôleur fait tourner le moteur de gauche à droite quelques temps et s'arrête. C'est la STM32 qui a enregistré la dernière position centrale du "zéro" (c'est-à-dire centre du volant ici) via l'encodeur et qui va "envoyer" le moteur sur la position de ce fameux "zéro" (centre du volant).
    En me relisant je ne sais pas si je suis clair  :D :D