Linéarité d'une commande moteur à CC

Bonjour,
Projet : conception d'une commande d'un moteur CC pour un asservissement
Matériel : carte UNO, carte de puissance L298 et moteur à courant continu GB37 DC geared motor avec sensor

Le principe du programme via une commande par processing consiste à vérifier si pour une commande du moteur sur une plage de 70 à 250 la vitesse de rotation (ticks de la roue codeuse par seconde) est bien proportionnelle (linéarité du comportement nécessaire pour un asservissement en vitesse)?

Sortie d'une courbe : PWM en abscisse (increment de 20) et moyenne tick/s en ordonnée
Verification avec une alimentation stabilisée : comportement parfaitement linéaire tension -vitesse

SURPRISE et IMCOMPRHENSION :
-1 essai : le résultat sur un premier branchement de la carte de puissance L298 : commande PWM sur connecteur 7 et ensuite IN1 et I N2 .... non linéarité de la commande ?????? une commande deux fois plus élevée ne donne pas une vitesse deux fois plus grande ????????

-2 essai : jumper sur la commande PWM (commande pour des moteurs pas à pas) et directement la commande sur une des deux broches IN 1 et IN 2 ....comportement presque linéaire (R²=0,994)

Peut on m'expliquer cette différence de comportement alors que de nombreux sites préconisent le branchement associé au premier essai ? Existe-t-il des cartes de commande qui assurent une meilleure maitrise de la tension délivrée au moteur ?

CommandePWM.jpg

CommandePWM.jpg

  • Quand on met une tension sur un moteur, le courant va croître.
  • Si on met le pont en haute impédance, le courant va décroitre "lentement" car la tension est nulle aux bornes du moteur. (Pour les pas à pas on appelle cela le slow decay) Avec un modèle parfait (pas de seuil, pas e résistances) le courant ne décroitrai pas. Avec résistance mais pas de seuil de diode, on a une exponentielle qui tend vers 0, donc une décroissance infinie
  • Si on inverse la tension, la tension vallant -Vcc la décroissance du courant est plus importante, avec un modèle avec résistance l'asymptote étant à i=-V/R, on va vite croiser le i=0. On appelle cela pour les pas à pas le fast decay

Dans le premier essai, le PWM va mettre le moteur soit en VCC soit en haute impédance. Pour les faibles vitesses, le courant croit, décroit puis est nul. La tension moyenne doit être suppérieure à celle que l'on aurait dans une résistance, mais elle reste proportionnelle au rapport cyclique. Pour les tensions élévé le courant n'a plus le temps de s'annuler. Pour prendre une image, si la déroissance du courant est faible , pour un rapport cyclique de 90% ou de 100% le courant à le temps de monter à sa faleur maxi, mais ne redescend pas. Total la tension moyenne est la même.

Dans le deuxième essai la décroissance du courant est importante et la linéarité va plus loin.

Pour un moteur pas à pas, il est absolument nécessaire que le courant s'annule le plus rapidement possible, pour pouvoir passer au pas d'après. Il n'est donc pas question de passer en haute impédance longtemps. Le circuit A4988 permet le fast decay et le mix decay (mélange des deux), mais les cartes que j'ai sont câblées qu'en fast decay.

Pour un Mcc, si on n'a pas besoin de liéarité, on peut utiliser le mode 1. Le moteur consomme moins

Si cela n'est pas clair, je peux faire un dessin, mais c'est long.

Je ne pense pas que ce soit mieux avec une carte ou une autre si le pont est toujours en basse impédance.

Vous n'êtes pas le seul à avoir des soucis

Je vous suggère de faire un asservissement de courant sur votre moteur, en utilisant les résistances "sense" sur le L298. Prenez une sortie pwm, filtrez la par un filtre R-C-R, et appliquez ça en consigne de courant sur le L298. Vous éviterez ainsi l'effet de la force contre-électromotrice du moteur lorsqu'il prend de la vitesse.

Et si les frottements secs sont trop importants, à moins d'être un crack des asservissements non linéaires, laissez tomber et prenez des moteurs pas à pas.