Driver Servo-moteur DC pour EMC2 (schema à jour p8)

  • Auteur de la discussion biduleur34
  • Date de début
G

guol64

Compagnon
Bonjour biduleur :P

Il me tarde de voir marcher ta carte.
De mon coté j'ai récupéré mes servo Sanyo hier: ce sont les même que les tiens (je crois) : 200w, 300w et 500w avec encoders 1000 pas et tachymètre.
Cependant je n'ai pas de frein contrairement à toi.

Celà me fait donc penser au maintien en position avec des servos moteurs. J'usqu'à présent je n'ai testé que des pap, avec les servos je ne sais pas comment ça fonctionne : l'asservissement est permanent quand on a pas de frein?
 
F

Foxtrot

Compagnon
guol64 a dit:
Celà me fait donc penser au maintien en position avec des servos moteurs. J'usqu'à présent je n'ai testé que des pap, avec les servos je ne sais pas comment ça fonctionne : l'asservissement est permanent quand on a pas de frein?

Oui, dès que tu bouges l'axe d'un servo sous tension, le driver s'arrange à le remettre à sa place. C'est progressif en fait, plus tu t'éloignes du point d'arrêt, plus le contrôleur envoie de la puissance pour le remettre à sa place.

Ce n'est donc pas calé net comme avec un PAP. :wink:
 
B

biduleur34

Compagnon
Mes moteur sont des 500imp/tour donc 2000 impulsion en quadrature, j'ai aussi des tachimetre mais ils ne servirons pas.Pour le moment les frein seront cabler avec le enable de chaque carte.
Le soucis c'"est que je n'est aucun oscilloscope et je n'ai donc aucun moyen d'optimisé les dead time du driver HIP4080A.

des valeur de condiode et diode de bootstrap a me conseillé ? je pense partir sur un condo de 220nF et des BYV 27-150 en bootstrap.
 
B

biduleur34

Compagnon
Voici quelque photo du debut de la construction de mon proto..

cette carte sera une carte proto, elle ne sera pas parfaite et servira a debugué la config avec la carte mesa et EMC2 en version definitive elle sera un poil plus compacte et les diode seront absente.

debut construction.JPG
Debut de soudure de la carte proto.

PCB.JPG
PCB Botton
 
G

guol64

Compagnon
Très belle carte. :-D
Tu utilises la méthode du transfert de toner pour le double face?
 
B

biduleur34

Compagnon
EUhhhh non UV, Soude, perclho, acetone etc etc.

A l'ancienne :wink:
 
B

biduleur34

Compagnon
La voila fini, manque des connecteurs et le debugage, mais j'attend encore ma 5i20..
carte fini.JPG
 
B

biduleur34

Compagnon
Mise a jour des schemas p1, la carte optoprincipale est en cours de finition, je suis en train de rajouter une sortie PWM pour controle de la broche + entrer codeur, toujours pour la broche.
 
B

biduleur34

Compagnon
J'aurai besoin d'un petit conseil, je voudrai retardé une sortie par rapport a une autre a fin de piloter un ULN2804 qui commande mes relais d'alim dans le but de faire un soft Start.

ce montage vous parai t'il corect ?? I5 retarder par rapport à I4.

Un reseau RC pour retarder le pilotage composer de R5 et C3.

RC_ULN.JPG
 
F

f6bqi

Compagnon
oui pour la réponse sur le retard.
ce retard sera également présent à l’arrêt, le relais retombe avec le même délais.S'il doit retomber en même temps que Q4, il ,faut mettre une diode en // sur R5 cathode côté I4 et anode en I5
 
B

biduleur34

Compagnon
Je me suis fait un petit montage pour pouvoir essaye de faire bouger un moteur, avec ma 5I20 et ma carte DIY, apres un petit soucis de Enable inversé et un autre soucis du au 3.3V en sortie de la mesa alors que je m'attendait a 5V, la chute de tension des deux diode en serie + resistance etait trop importante et l'optocoupleur ne basculait pas.

Le soucis:
je n'arrive pas a faire fonctioné mon HIP4080A, la parti basse du pont est bien alimenté et le mosfet alimenté change bien en fonction de mon DIR "in+>in-", mais quand je me le HEN a 5V mon moteur ne tourne pas.

Les deux bootstrap fonctionne bien, j'ai bien 12.7V au lieu de 11.8V d'alim, mais la partie haute du pont ne fonctionne pas.

Le DIS est bien a 0V et le HEN a 5V pour le moment j'essaye de piloté a la main sans passer par emc2.

merci de vos lumiere ou peu etre la panne ??

ou chercher ??
 
B

biduleur34

Compagnon
C'etait a la vue de tous le monde mais persone ne m'a rien dit :twisted: :twisted: :twisted: :wink: :wink: :wink: .

J'ai fait une assez grosse erreur dans mon schema, Vous ne la voyez pas ??

bon je vous aides un peu, ça ce situe au niveau du brochage de mon HIP4080A.



....





...



..



.



En creant le composant dans la bibliotheque de eagle j'ai fait une grosse erreur, les pattes numero de 11 à 20 sont pas dans le bon sens, rien de bien grave car le composant de ce coté est a peu pres symetrique sauf que le condensateur du bootstrap n'est plus du bon coté A et B sont permuté.

J'ai effectué la modif mais :cry: :cry: toujours rien peu etre qu'un peu de la petite fumé qui fait fonctioné le HIP4080A est partie, et je n'en ai pas sous la main..

Comment savoir si il est HS ?? il repond bien au Enable et DIR mais toujours rien sur le pilotage de la partie haute du pont.

merci
 
G

guol64

Compagnon
Hello,

Je compatie mais c'est à peu près tout ce que je peux faire pour toi.
En tout cas je suis ton post de très prêt.

Allez courage. :!:
 
H

horsot

Compagnon
Bonjour Biduleur,

Il permet de limiter l'effet miller du photo-transistor présent dans l'opto en limitant l'excursion en tension de son collecteur (entre 0 et 0.6V). J'ai déjà testé ce montage avec un autre opto et il permet de dépasser les limites de ce dernier (quelques fois la fréquence de l'opto seul). Il faut choisir les bonnes valeurs de résistances de collecteur et de led pour être vraiment optimisé.

Personnellement je me suis doté d'opto rapides (je n'ai pas les ref ici) car je veux pourvoir passer 4Mhz pour le RS-488 de mes encodeurs de servo.

Bon bidule

Xavier
 
B

biduleur34

Compagnon
Ok, j'avai compris que ce montage servai a limité l'effet miller :wink: , mais je n'arrive pas a comprendre de quoi il sagit concraitement , je ne suis pas electronicien à la base lol.

Mes opto utilisé sont des HCPL2631 des 6n137 double en fait, pouvant passé 10Mbit, contrairement au 6n136 qui passe que 1Mbits.

Je pense restai donc dans cette meme config avec mes HCPL2631,

Dans mes modif aporté a ma carte je vait inversé plusieur signaux logique afin que le HIP4080A soit desactivé au repos, le montage a base de 2n2222 en inverseur suffit ou il y a plus simple ??

merci

++

++
 
H

horsot

Compagnon
Bonjour,

Il faut imaginer le jonction base-collecteur avec une capa parasite en parallèle (dûe à la zone de charge d'espace de la jonction en inverse).

A un instant "t0", imaginons notre transistor bloqué, le potentiel de base à 0V et celui du collecteur à 5V. La capa Miller est chargée à 5V.

Maintenant (à t1) essayons de saturer notre transistor, nous augmentons très rapidement le tension de la base, ce qui fait diminuer la tension collecteur-émetteur donc par la même la tension collecteur-base. Hors il y a la capa Miller chargé à 5V sur cette dernière qui va empêcher de faire diminuer la tension base-collecteur (jusqu'à ce qu'elle soit déchargée). En faisant ça elle va faire baisser le potentiel de base pour garder une tension collecteur-base constante. Le potentiel de base se réduisant cela dé-sature notre transistor.

Cette capa tend à faire une contre réaction négative sur le transistor, l'empéchant de travailler rapidement.

Le principe du montage est de limiter l'excursion en tension de VCB à 0.6V et donc de limiter excursion en tension de VBC. Donc de limiter la charge présente dans la capa miller.

Je n'ai pas compris le coup de l'inverseur?

Bonne journée

Xavier
 
B

biduleur34

Compagnon
Ok, c'est un peu plus clair, pour mon inverseur en fait j'utilise un simple 2n2222 pour inverser des signaux logique +5V en 0V et vice versa, et je voudrai savoir si je passe pas a coté de quelque chose de plus simple pour inversé mes etat logique en sortie des optocoupleur.

Je ne souhaite pas faire les inversion sur les GPIO de EMC2, car bien que fonctionant parfaitement, je souhaiterai que la machine sous tension et emc2 non lancer, je voudrai pas que mes drivers de MOS soit Enable, mon PWM a 1 et mon brake relaché. Pour le DIR ça pose pas de probleme.

merci
 
H

horsot

Compagnon
Re,

Pour inverser le signal un 2N2222 est le plus simple (ou des 74XX04 pour des fronts plus propres), De toute façon il vaut mieux faire un enable manuel une fois qu'EMC2 est lancé (personnellement j'allume ma machine uniquement à ce moment là).

Sinon comme tu dis il faut prévoir le cas de faux contact ou de câble débranché que l'enable soit au repos par défaut.

Xavier
 
B

biduleur34

Compagnon
Sinon comme tu dis il faut prévoir le cas de faux contact ou de câble débranché que l'enable soit au repos par défaut.

voila c'est ça.

normalement je reçois mes HIP demain je pourrai reprendre mes essaye.

++
 
B

biduleur34

Compagnon
Bon j'ai reçu les HIP4080A, aussi reçu aussitot monté et hop ça à fonctionné 5 min .lol :mad: :mad:

Donc je resume mes essayes.

Dans EMC2 j'ai mi le gain Proportionel à 5, j'ai fait tourné en manuel et le moteur tourne tres lentement, dans le bon sens.Je passe le gain a 10 le moteur accelere mais c'est toujours tres lent.
je passe a un Gain P de 20 un peu plus rapide mais toujours tres lent, je passe a 30 et Hop paff un fusible et 2 MOS de grillé, je pense donc a un probleme de X conduction, du au dead time entre la comutation des MOSFET mais bon c'est bizarre j'ai pas fait de changement de sens de rotation, c'est peu etre l'asservissement qui a demandé un retour en arriere du moteur du a une oscilation autour de la consigne.

Je resume ma config, d'apres vous ou est le soucis.

La resistance des gates des mosfet est une 7Ohm avec pour l'irf540N une capacité de Gate de 70nC et une tension de pilotage "bootstrap" mesuré de 12.5V.
les données concernants les mosfet IRF540N sont les suivantes.

Courant max de gate 12.5V / 7ohm--->1.78A

Calcul du temp de charge du mosfet: 70nC/1.78A --->~40nS ce qui correspond aussi a la vitesse max du mosfet, c'est pour cette raison que j'ai choisi une resistance de 7 ohm
.
Mes valeur de HDEL et LDEL "dead time" 120K ohm ce qui correspond d'apres le datasheet du HIP4080A a un dead time d'environ 50nS

Mon dead time est bien suprieur a mon temp de charge max de la gate du mosfet, OK l'ecart n'est pas enorme, mais combien d'ecard dois je avoir ?? pour etre dans les tolerance ?? un rapport de 2 ? plus ??

merci de votre aide..

++

Léo
 
B

biduleur34

Compagnon
:cry:

J'ai fait des essaye avec 200K en resistance de HDEL et LDEL ~110nS de dead time et le resultat est le meme, avec 10ohm de resistance de Gate.

Please Help
 
H

horsot

Compagnon
Bonsoir,

Tu peux tester ton servo DC directement comme un moteur à courant continu pour évaluer ses performances (attention à son courant/tension max). Puis en le pilotant que dans un seul sens en boucle ouverte vire le PID dans HAL et commande juste le générateur PWM avec un curseur dans un pyVCP. Tu peux essayer de tester ton pont en H avec une (ou plusieurs) résistances de puissance ainsi tu évites la recirculation du courant dans les diodes (et donc isole un problème potentiel). De plus tu pourras bien déterminer si ton pont consomme (calcul de puissance sortant de l'alim moins la puissance consommée par la résistance)

Quels sont les 2 transistors qui ont lanchés? sur un même demi-pont? diagonale?

Je te conseille de partir de quelque chose qui fonctionne cad d'augmenter le dead-time et les résistances de grille de faire des tests avec une résistance de puissance et non le servo directement. Ajuste le dead time et les resistances de grille dans la limite des capacités de ton drivers (avec une marge importante)

Ensuite teste ton pont avec un moteur (toujours en boucle ouverte). Il se peut que ce soit les diodes des MOS qui aient lâchés pense à en mettre des externes. Ton pont en H fonctionne en slow ou fast decay?

Vérifie la température de tes MOS, sont 'ils correctement refroidis?

Tiens bon !

Xavier
 
B

biduleur34

Compagnon
Merci Horsot , c'est plein de bonne idee auquelle je n'avait pas encore pensé.

Je vais essaye de repondre aà toute tes questions.

Les mosfet ne sont pas refroidi et a vrai dire ils n'en on pas le temp, quand j'arrive à faire tourné le moteur ceux ci reste froid.

Les mos Grillé sont toujours par paire du meme coté, soit les deux mos A ou les deux mos B.

Comment suprime t 'on la regulation PID ? dans EMC2 a tu une petite idee ??

Tous les MOS ont des BYV 27 200 en paralele Drain Source, je voit certain montage avec des zener entre Grille et Source. qu'en est t'il ?

A vrai dire je ne sais pas encore si je suis en low decay ou fast decay !! j'avai lu un truc qui parlai de ça m'ai me rapelle plus ce que c'est, je me y replonge, mais je suis surement en valeur par defaut.
Le PWM est a 100Khz je croit, valeur par defaut.
 
B

biduleur34

Compagnon
A propos du low decay ou fast decay, je me souvient ou je l'ai vu c'est dans la DOC de la carte 7I40 de chez mesa, je l'ai relu et il semblerai que je soit en fast decay, car les MOS du bas sont On en permanence et le PWM agit uniquement sur les MOS du haut.
 
H

horsot

Compagnon
Bonjour Biduleur,

biduleur34 a dit:
Merci Horsot , c'est plein de bonne idee auquelle je n'avait pas encore pensé.
Avec plaisir, merci à toi de faire partager tes développements, je sais le travail supplémentaire que ça donne. De plus si un jour je me dote de servo DC je serais content que tu ais fais le boulot! :wink:

biduleur34 a dit:
Les mosfet ne sont pas refroidi et a vrai dire ils n'en on pas le temp, quand j'arrive à faire tourné le moteur ceux ci reste froid.
Ok c'est déjà ça.

biduleur34 a dit:
Les mos Grillé sont toujours par paire du meme coté, soit les deux mos A ou les deux mos B.
Ok

biduleur34 a dit:
Comment suprime t 'on la regulation PID ? dans EMC2 a tu une petite idee ??
Deux solutions :
1- brancher un "slider" Pyvpc directement sur l'entrée "value" de ton PWM
2- Mettre tous les paramètres P I D FF1 FF2 BIAS à 0 et mettre FF0 à 1.0. La valeur de la position commandée sera la consigne de ton PWM (plus elle est grande plus le moteur tournera vite). Il faut alors commander le servo en MDI et non en jog!!! Le jog donne un point commandé hors de la surface utile.

La première est la plus sûre à mon goût, La config :
1 - créer un slider pyVCP dans le "custompanel.xml" entre les "<pyvcp>...</pyvcp>":

Un slider devrait apparaître sur la gauche lors du prochain lancement d'emc2
NB : vérifier que le "scale" de PWM est à "1".

2- Connecter le slider au bloc PWM :
Trouver la ligne du genre parlant de "hm2_5i20.0.PMW.0.value" la commenter et mettre :

A vérifier, je n'ai pas EMC2 sous la main pour vérifier. Au pire envoie moi ton répertoire de config dans un zip, je ferais la modif.

biduleur34 a dit:
Tous les MOS ont des BYV 27 200 en paralele Drain Source, je voit certain montage avec des zener entre Grille et Source. qu'en est t'il ?
Une zener ne peut pas faire de mal. As-tu un oscillo pour voir les signaux?

Xavier
 
H

horsot

Compagnon
biduleur34 a dit:
A propos du low decay ou fast decay, je me souvient ou je l'ai vu c'est dans la DOC de la carte 7I40 de chez mesa, je l'ai relu et il semblerai que je soit en fast decay, car les MOS du bas sont On en permanence et le PWM agit uniquement sur les MOS du haut.

Je pense aussi que c'est du "fast decay" mais ça va pas avec ton explication (enfin de ce que je comprends).
http://robot.avayanex.com/?p=86 lequel?

Bon dimanche

Xavier
 
B

biduleur34

Compagnon
Merci de ces info,

peu tu m'expliquer clairement cette ligne

notement d'ou sort tu le cmd_pwm0 ?

car la bonne ligne corespondrai plutot à:


mais ça marche pas, avec Halmetre je fait afficher la valeur de hm2_5i20.0.pwmgen.00.value mais elle reste toujours a 0.Et pour quand dans AXIS je verifie les parametre de HAL il me dit bien qu'il existe une connection entre pyvcp.valeur-pwm et hm2_5i20.0.pwmgen

merci
 
Haut