DIY - [MMOS + VESC] Création d'un firmware FFB pour VESC

  • Re-bonsoir,

    voici une capture du moteur bloqué à la main et d'un envoi de consigne de courant à 1A :

    CourantConstant1A.PNG?dl=1

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

    Message modifié 1 fois, dernière modification par Carlton (25 août 2021 à 22:48).

  • La carte que j'avais en tête, et que je suis à deux doigts de commander est la BOOSTXL-3PHGANINV , avec 3 INA240 au niveau des phases, mais pas de driver intelligent DRVxxxx, il faut prier pour que les dead-times soient bons ;)

    Le problème avec cette carte c'est le courant continu max des petits demi-ponts, 10A. A coupler à ma carte F280049C que j'ai déjà.

    Instaspin minimal ? On peut pourtant en faire des choses, surtout en config sensor-less (pour VAE).

    Le juge de paix serait un capteur de couple, mais c'est hors de prix.

    Message modifié 1 fois, dernière modification par Mizoo (25 août 2021 à 22:56).

  • Merci pour la capture, mais je pensais plutôt à une mesure en faible rotation, pour évaluer (à la louche) la précision de la chaine de mesure. On devrait avoir une assez belle sinusoïde, mais ça dépend aussi de la qualité de fabrication de ton moteur.

    EDIT: tu ne peux pas avoir les mesures de courant indépendantes ?

    En tout cas je suis content d'avoir trouvé un copain de jeux :hihihi:

    EDIT2: la carte TI avec les 3 sense en bas est la BOOSTXL-DRV8320RS, plus chère, mais avec la sécurité du DRV et un courant max 50% supérieur.

    Message modifié 4 fois, dernière modification par Mizoo (25 août 2021 à 23:02).

  • Je connais un peu/bien les INA248, ca fonctionne pas trop mal...

    Pour ce qui est des deadtimes, ils sont calées à 0,120 µS par défaut et je les baisse à 0,080 µS, ce qui est suffisant pour ne pas avoir trop de perte de charge dans les mosfet. Le DRV fait super bien le job.

    Je viens de faire 2 mesures à 0,1A sur le Mige : le moteur ne tourne pas, pas assez de courant pour contrer l'inertie, voici ce que donne la mesure du FOC et, plus interresant les moyennes mobiles du courant retenu par le firmware dans les 3 coils (edit) et le FIR :

    Le bruit de 0,01A n'est pas perceptible dans le volant.

    CaptureTresBasCourant.PNG?dl=1

    courant0.1_moyenne.PNG?dl=1

    CourantPhase0.1A.PNG?dl=1

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

    Message modifié 1 fois, dernière modification par Carlton (25 août 2021 à 23:08).

  • Rien à faire pour nous, mais voici une vidéo faite par un gars qui a concu son propre driver pour skate, où il compare les démarrage sans capteur entre VESC et Instaspin:

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    Assez éloquent. Mais c'était avant la sortie du successeur de la méthode HFI, dont j'ai oublié le nom.

    Message modifié 1 fois, dernière modification par Mizoo (25 août 2021 à 23:08).

  • J'ai modifié mon post précédent et je t'ai mis les courbes des courants dans chacune des phases moyenne glissante/et FIR.

    Je voulais dire les 282 :)

    A mais oui mais en HFI aussi, c'est inutilisable dans nos applications. En HFI, il prédit cette position donc ca ne peut pas être aussi précis, la calibration de l'HFI, c'est une usine à gaz pour une précision moyenne, mais ca permet de faire l'économie du capteur sur un VAE :)

    Oui je suis à vecteur constant mais c'est la FIR et je n'ai pas tuné le coefficient, c'est pour ca que je t'ai mis la moyenne mobile qui est plus représentative.

    Et c'est avec un courant de contrôle trop bas pour faire tourner le rotor, du coup, la seule chose que je fais créé un circuit raisonnant non ?

    Pour faire une mesure de couple, avec un bâton de 1m qui appui sur un load cell de 2kg, il doit y avoir moyen de faire un truc acceptable non ?

    Yannick a fait l'openFFBoard avec un TMC4671 et des INA282. C'est un driver FOC hardware de Trinamics (j'utilise leur driver depuis qu'ils existent sur mes imprimantes 3d). Ces résultats sont assez proches de ce que je mesure aussi. Il faudra que je reteste le vesc 6.0 avec ces 3 mesures de phases par INA282 aussi.

    Moi aussi je suis super content d'avoir trouvé un copain de jeu, parce que je suis un autodidacte en électronique, et un peu ingénieux dans l'âme :B Je n'achète pas ce que je peux coder :hihihi:

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

    Message modifié 3 fois, dernière modification par Carlton (25 août 2021 à 23:41).

  • Je viens de regarder le BOOSTXL-3PHGANINV, j'aime bien les cartes comme ca :) Mais avant de l'acheter, je ne peux que te conseiller d'acheter un vesc avec 2 shunts de 0.005ohm.

    L'algo de contrôle qui va bien pour le current control, c'est le FOC, et j'ai l'impression que la carte que tu m'as partagée ne fait que du BLDC, du coup j'ai un doute...

    Je ne suis pas certain d'avoir compris ce que tu souhaitais que je te partage, tu voulais voir quoi ? Le courant dans les coils, ou le courant calculé par l'algo du foc ?

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

    Message modifié 4 fois, dernière modification par Carlton (26 août 2021 à 19:40).

  • Voici les résultats de lecture du courant sur le vesc6 (minifoc 1.0) que j'ai en ma possession :) Autant dire qu'il est inutilisable :) Permiere photo, sans filtre, ensuite avec moyenne mobile. C'est une lecture dans les coils, sans control à l'arret... Plus de 1.5A de bruit !!!!! Beurk !!!!! Donc j'abandonne ce vesc 6 ...


    vesc6_arret_nofilter.PNG?dl=1


    vesc6_arret_mean.PNG?dl=1

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • ben carrément ! je ne le prendrai pas non plus :gerbe:

    Afficher le Spoiler


    PS : je n'y connais rien en FOC :B
    :seul2:

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Quand je parlais de vecteur constant, je parlais du fait que, comme ton moteur est à l'arrêt, à cause du frottement statique, le vecteur "électromagnétique" du stator est censé être constant, dans son orientation et son amplitude, donc les 3 mesures de courant devraient être stables. Et la régulation doit annuler toute oscillation.

    Concernant la carte d'OpenFFB, je ne suis pas fan des CI de contrôle tout intégré, pour ce qui nous concerne ca va nous limiter pour l'implémentation des effets classiques que sont l'inertie, la friction et l'amorti, sans parler des autres filtres qu'il faudra mettre en place, qui ont tout à gagner à être piloté par le driver, et non l'unité USB/FFB.

    La carte de TI n'est pas dédiée à un algo de contrôle particulier, et elle a tout ce qu'il faut pour le FOC, en particulier les trois shunt de courant de phase, en plus de la mesure de la tension de phase (surtout utile pour le sensor-less). Et elle est supportée de base dans le SDK de Instaspin-FOC, couplée à la carte F280049C, donc normalement il ne faudra que quelques minutes/heures pour faire tourner le moteur.

    Malheureusement, Instaspin est orienté sensor-less, il faut donc rajouter la mesure de l'angle via l'encodeur et bypasser l'estimateur sensor-less (nommé FAST).

    Les courbes du "clone" VESC6 sont vraiment sales, tu as regardé si la sortie des INA n'est pas bruitée (je ne sais plus ce qui est utilisé comme capteur dans le circuit d'origine) ?

    Message modifié 2 fois, dernière modification par Mizoo (26 août 2021 à 22:21).

  • Autre carte candidate mais chez ST cette fois: steval-spin3201 - 60€ HT - 15A / 45V (limite du gate driver à 48V).

    Basée sur un circuit STSPIN intégrant MCU et gate driver.

    3 shunt au bas de l'onduleur.

    Je ne sais pas trop ce que ça vaut, le M0 n'est-il pas un peu faiblard pour les filtrages un peu costaud (je ne vois pas de FPU à côté) ?

    Si seulement de telles cartes avaient existé quand on a commencé l'aventure il y a 10 ans ...

    EDIT: ah bah voilà, ça c'est mieux: evspin32g4

    Cortex M4 + accel trigo - 2 ADC - 75V / 20A

    Juste un petit problème, le prix : 230€ HT Oo :dingue:

    Je ne comprends pas ce prix vu ce qui est présent sur la carte.

    Message modifié 6 fois, dernière modification par Mizoo (26 août 2021 à 23:26).

  • Allé, une dernière, et peut-être la plus intéressante: x-nucleo-ihm08m1 - 35€ HT - 48V / 15A

    Carte d'extension Nucleo; au moins on met ce que l'on veut comme MCU.

    Par contre, à cause de la pénurie de CI elle est introuvable.

    Dommage, je l'aurai bien testé tout de suite celle-là vu le prix.

    Message modifié 3 fois, dernière modification par Mizoo (26 août 2021 à 23:49).

  • je viens de sortir la loupe, ce ne sont pas des ina contrairement à ce que je pensais, mais des AD8418.

    En tout cas, je viens de faire une mesure à 0.1A avec le vesc avec les shunt de 0.005 et ca n'a rien à voir...

    AM-JKLWZRmrmKoAzzeSWQn9yURSuNsWVE3DRL3XB3s_qlr5Zl9prIT3Z8pluxU5sBOoyGxG-oZvIz31yR7gLABIGr9qgXHImYxOLnAyt2UepLtba2x_BWtsRDn0S_ju_XeT2lv0YoXiqzGoozmotCgjewqQv=w1803-h949-no?authuser=0

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • Ce n'est pas normal que tu aies autant de différence d'amplitude entre les courants de phases pour une consigne Iq constante. Tu peux mettre sur le même graph la mesure de vitesse ?

    Et la phase 3 ne serait pas justement celle qui est reconstituée, car tu n'as que deux shunts ?

    Message modifié 4 fois, dernière modification par Mizoo (27 août 2021 à 15:00).

  • Exemple de ce que l'on observe normalement (vu du soft, pas de capteurs externes) moteur tournant:


    3348.Iq_5F00_0p20.png

    https://e2e.ti.com/support/microc…8/foc-waveforms

    Par contre, tu peux voir dans le post qu'un mauvais capteur de courant entraine des mesures, et des perfs, étranges.

    Je demandais le graph de la vitesse car si elle est très faible le cogging va déformer les formes d'ondes idéales.

    Message modifié 2 fois, dernière modification par Mizoo (27 août 2021 à 19:05).

  • hello,

    les courbes que tu montres, c'est ce que j'ai en rotation, mais pas en bloquant le moteur. en tout cas, je viens de tester le mige 15015 a 20A avec mon volant de 34cm de 1,4kg, le feeling est incroyable, bien bien mieux qu'en PWM+DIR avec MMOS, vraiment rien à voir. Je suis repassé sur un encodeur ABZ de 2500. Voici le résultat du test wheeltest. :

    test20A.PNG?dl=1

    test20A_2.PNG?dl=1

    Je n'ai pas du tout tuné le vesc, j'ai branché et j'ai fait une autodetection, et en avant les tests.

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

    Message modifié 4 fois, dernière modification par Carlton (27 août 2021 à 21:33).

  • les courbes que tu montres, c'est ce que j'ai en rotation, mais pas en bloquant le moteur.

    J'avais cru comprendre que les courbes postées mercredi étaient obtenues moteur bloqué, mais hier moteur tournant (les courbes de courant étant périodiques).

    Concernant les MCU TI, la famille F280049C, sur laquelle je comptais partir, est compatible avec l'interface biss.

    EDIT: j'ai demandé cet apm la dispo de la carte d'extension Nucleo à mes fournisseurs, début 2022 :euh:

    Message modifié 5 fois, dernière modification par Mizoo (27 août 2021 à 21:52).

  • Ca y est, je me rappelle ! Il y a 9 ans, quand on a fait les premiers RFRWheel !

    ... bin je me souviens, déjà à l'époque... je captais que dalle à vos conversations techniques :yes: !!!

    C'est tout ce que j'avais à dire sur le sujet, faites pas attention à moi, continuez :B ...