Control de torque en servomotor DC.

La corriente en un motor de dc así como en un servo determina el torque que ejerce. Entiendo que un servomotor exige automáticamente la corriente que requiere para generar el torque necesario y así alcanzar el ángulo indicado por la señal de control PWM.
Para un proyecto, quiero hacer el control del servo no manipulando a su posición angular, si no, el torque generado. Este control de torque seria en proporción a una señal de entrada(una señal que pasa por un ADC, señal que se procesa con un Arduino para posteriormente manipular el torque dinámicamente).
CONTROL
Aún que quiera controlar el torque que generaría el servo, tengo que indicar hacia que ángulo quiero que vaya, por lo que, independientemente del valor de señal de entrada siempre estará programado para que llegue a 180°, lo que estaría manipulando con base a una señal de entrada seria la forma en la que llega a esos 180°, en este caso con que torque o par motor llega hasta ahí.
EJEMPLO:
Por ejemplo: aún que parezca contra intuitivo, quiero que si la señal de entrada no es lo suficientemente grande, y el servo intenta cargar 2kg a los 180°, no lo pueda cargar. Si la señal de entrada es suficientemente grande, se generara el torque necesario para mover esos 2kg a 180°, y si la señal es todavía mas grande, quiero que esos 2kg los lleve mas rápido a su destino.
MI IDEA
Tenia pensado hacer un control de limite de corriente para que aun que el servo demande mas corriente, la fuente no se la entregue y así alterar su torque. sin embargo, no he encontrado un CI/circuito/driver que lo haga; los que he encontrado alteran el voltaje entregado, y un servo debe mantener su voltaje de entrada constante para su correcto funcionamiento.
¿Cómo podría solucionarlo? ¿Cómo podría limitar la corriente suministrada a un servomotor sin alterar el voltaje que lo alimenta?
llevo mucho tiempo investigando y no he encontrado una solución, tal vez ni si quiera sea posible jaja.
Agradezco mucho de antemano, buen día.
 
Obviamente se limitas la corriente baja la tensión. Si no fuera así romperías las leyes de la física.
Si bajas la tensión es muy probable que la controladora que lleva interna al servo deje de funcionar.

Así que seguramente tendrás que pensar en otra forma de atacar el problema.

Opciones:
A, no uses un servo, usa un motor CC y te peleas con el driver. Según lo que pagues/desarrolles tendrás control de par
B, destripas el servo a ver si puedes alimentar al "control de la controladora" por un lado y a la salida por otro y le limitas la corriente a la salida pero no al control.
C, está está en la nebulosa... En lugar de mandar al servo que mueva a 180° le mandas que mueva a tu posición +10° y según la corriente que midas, si es poca le mandas a tu posición +15° o si es mucha a tu posición +5°. Hasta donde supongo, si al servo que está en 0° lo mandas a 180° su acción de control será más brusca que si lo mandas a 1°. Si mi suposición es falsa, que es probable que lo sea, y pidas el ángulo que pidas el servo es igual de brusco entonces esto no vale.
D, ni idea pero seguro que hay más formas. Ánimo; es tu proyecto.
 
Entonces podés probar mantener el Voltaje constante . . . pero . . . hacerle PWM :rolleyes: :sneaky: :silbando: :angel:
Siento que reiniciará el servo en cada ciclo.
Tenia pensado hacer un control de limite de corriente para que aun que el servo demande mas corriente, la fuente no se la entregue y así alterar su torque. sin embargo, no he encontrado un CI/circuito/driver que lo haga; los que he encontrado alteran el voltaje entregado, y un servo debe mantener su voltaje de entrada constante para su correcto funcionamiento.
No existe, lo que quieres hacer es el controlador que lleva el servo adentro, lo único que puedo sugerir es que lo desmanteles, solo tomes la señal del potenciómetro utilizado para determinar la posición, le coloques un puente H externo y lo controles tú completamente desde cero, drivers con censado de corriente hay varios, específicamente los diseñados para motores a pasos con microstep, por ejemplo yo tengo un módulo con DRV8834, en el modo Phase/Enable puedes usar los pines AVREF/BVREF para dar el voltaje de comparación y controlar la corriente, normalmente se coloca un divisor de tensión para dar una referencia fija y esto establece la corriente limite pero se le puede conectar un DAC a esos pines para poder variar la corriente digitalmente, ya sea que lo hagas con R-2R o por un filtro usando el PWM, algunos Arduino cuentan con el DAC, por ejemplo yo tengo un Zero el cual tiene un DAC de 10 bits, el nuevo UNO R4 cuenta con uno de 12 bits.

El siguiente circuito es el diagrama del módulo que hice, lo usaba para un carrito a control remoto, VREFO es un regulador interno que hace de referencia, en este caso sería por ejemplo desconectarlo y enviar a VREF el voltaje de forma externa para controlar la corriente.
1711093969271.png

El método para lograr lo que buscas debe hacerlo el driver completamente ya que se basa en la medición de la corriente, la bobina no se carga inmediatamente cuando lo enciendes, sino que la corriente va en aumento y debe cortarse al llegar al nivel que buscas, eso ocurre constantemente de forma bastante rápida, el DRV8828 por ejemplo es un driver puente H de motor simple con control digital de 5 bits para establecer la corriente, igual podría servirte mejor, creo que tenía un par de ellos en algún lado.

PD: si quieres controlar la velocidad de desplazamiento, ¿por qué no variar paulatinamente la posición por interpolación en lugar de intentar modificar el torque? ya que si no hay torque suficiente pues no se va a mover la carga.
 
Se utiliza "sensar" como la acción que realiza un sensor, para el caso es lo mismo que un detector, y su función detectar.
Lo que pasa es que un "detector" es mas bien algo del tipo Si/No mientras que un "sensor" es algo que mide en un cierto rango.
De todas formas, "sensar" - aunque sea en la jerga - es la palabra mas utilizada en la ingeniería por que si nó habría que cambiar el verbo en función de la operación del sensor (sensor de luz --> LDR --> mide, sensor de luz infraroja --> PIR -->también mide pero su acción es On-Off --> detector). O sea, en español es un lío y en inglés es facilísimo...
 
El problema puede ser complejo por el rozamiento estático y el dinámico.

Recuerdo que hice el control de velocidad de un simple ventilador, al mínimo no arrancaba pero si que se mantenía, así que cuando pedías arrancar al mínimo primero iba al máximo una fracción de segundo y ya se ponia al mínimo. Eso obviamente supone un pico de corriente.
 
El problema puede ser complejo por el rozamiento estático y el dinámico.

Recuerdo que hice el control de velocidad de un simple ventilador, al mínimo no arrancaba pero si que se mantenía, así que cuando pedías arrancar al mínimo primero iba al máximo una fracción de segundo y ya se ponia al mínimo. Eso obviamente supone un pico de corriente.
De hecho, esa es la razón por la que el ventilador se enciende en el máximo, para que cuando le muevas el control al mínimo este ya haya vencido la inercia inicial y esté en movimiento.
Digamos que esto podría servir como un limitador de seguridad, por ejemplo si lo que moviera el servo es delicado y se daña al exceder cierto punto. Si sucede que el no moverse si excede la fuerza es un requisito entonces sería correcto y no un problema.
 
Les agradezco mucho sus respuestas y tiempo, tuve una muy grande confusión en cuanto a la ley de ohm, entendía que al variar la corriente estaría variando el voltaje de igual forma; lo que me dio "esperanzas" de que algo así pudiera funcionar fueron las fuentes de alimentación con ajuste de corriente y voltaje, pensé que de alguna forma con el mismo voltaje se limitaba la corriente sin alterar este primero, pero me confundí.
Creo que optaría por modificar el servo que tengo (es uno de 150kg 8A como máximo) y así suministrar la potencia que entrego al motor con base a la señal de entrada.
PD: si quieres controlar la velocidad de desplazamiento, ¿por qué no variar paulatinamente la posición por interpolación en lugar de intentar modificar el torque? ya que si no hay torque suficiente pues no se va a mover la carga.
Es que quería que el servo se moviera con menor o mayor facilidad en función al peso que cargaba(artificialmente). El motor que tengo movería con la misma velocidad una carga de 2kg que una de 10kg. Pensándolo, creo que también me serviría un sensor de torque, tomar información de este y con esto variar la velocidad.
 
Atrás
Arriba