Cómo definir un perfil de aceleración para un motor de CC accionado por PWM en ruedas motrices

Estoy construyendo un arduino para enviar PWM a un controlador de motor MOSFET de lado bajo simple que alimenta dos motores de CC en un Corvette de ruedas eléctricas. Tendré una señal de entrada del acelerador entre 0 y 100%, pero creo que el PWM de salida debe ser más complejo para tener en cuenta el par de arranque y el voltaje mínimo del motor. ¿La mayoría de los perfiles de conducción comienzan con un pulso corto de 100% de potencia para romper el par de arranque antes de retroceder para igualar el porcentaje de aceleración? ¿Dónde puedo encontrar más información sobre cómo definir un perfil de acelerador?

Respuestas (4)

Depende de lo elegante que quieras conseguir.

Es común en el uso industrial (y modelos de trenes) impulsar el voltaje a un motor (o la corriente, dependiendo de lo que controle su conductor).

La explicación se complica cuando se aplica PWM a un motor. Normalmente, cuando maneja un motor con PWM, lo hace lo suficientemente rápido para que el motor suavice la corriente. Esto es algo bueno, porque hace que la operación sea eficiente.

Para romper la fricción, debe impulsar la transmisión al motor de manera que el motor genere suficiente par para romper la fricción y durante el tiempo suficiente para que el motor pueda moverse significativamente. Si lo hace correctamente, escuchará un zumbido y verá que su mecanismo avanza a una velocidad casi arbitrariamente lenta. Un movimiento más lento le dará un zumbido más lento; si permites controlar ese movimiento lento, muy lento, se producirá un sonido de tictac.

Para una intensidad y tiempo fijos, encontrará que para cada pulso, el motor avanza en una cantidad mínima, por lo que no puede mover el motor en una cantidad arbitrariamente pequeña. Esta es solo una característica de conducir un mecanismo con fricción y con la que tienes que vivir. La solución no se encuentra en la electrónica o la regla de control, se encuentra en la construcción mecánica del motor y el mecanismo. Para su aplicación, probablemente estará bien: la cantidad que se moverá el automóvil con cada "tic" será imperceptible, por lo que el movimiento le parecerá suave.

La determinación de la intensidad y la duración del pulso se realiza con muchos cálculos, seguidos de experimentación para asegurarse de que estaba en lo correcto, o simplemente comenzando con la experimentación. Como no tienes control sobre el diseño mecánico, te sugiero que comiences con la experimentación. Encuentre la cantidad de impulso que apenas pondrá en marcha el motor, luego duplíquelo para tener en cuenta el desgaste y los cambios de temperatura. Luego encuentre la duración del pulso que le proporcione un comportamiento aceptable a baja velocidad.

Acelero tales unidades al comenzar variando el período del "zumbido lento"; recuerde que está manteniendo un tiempo fijo, por lo que varía el tiempo de apagado para obtener diferentes velocidades. Una vez que su acelerador esté a la altura de su pulso (es decir, 25 % de aceleración para un 25 % de pulso), simplemente conduzca el motor "normalmente" desde allí hasta el 100 % de aceleración.

Entonces deja de jugar con eso, porque esto es algo en lo que puedes perderte durante semanas tratando de perseguir un óptimo que solo tú puedes ver (he estado allí, he hecho eso, escribe "no puedes hacer un bolso de seda con de la oreja de una cerda" en la pared, y piense que una vez que está en el vecindario de "bueno", perseguir "lo mejor" es solo una pérdida de tiempo).

Gracias por la respuesta muy práctica! De acuerdo en no tratar de perseguir perfecto para este proyecto.

¿La mayoría de los perfiles de conducción comienzan con un pulso corto de 100% de potencia para romper el par de arranque antes de retroceder para igualar el porcentaje de aceleración?

No que yo sepa.

Si está bajo control automatizado, hay retroalimentación para compensar, por lo que no es necesario configurarlo explícitamente.

Si se controla manualmente, solo usa los ojos y la intuición humana. Pero es posible que desee simplemente rechazar un acelerador distinto de cero arbitrariamente bajo, lo que ayudará a evitar que el usuario se detenga o sobrecaliente el motor por baja potencia, lo que también tendrá el efecto de establecer un par de arranque mínimo. También puede cortar el acelerador por debajo del voltaje de la batería.

En realidad, si está manejando un mecanismo con una fricción significativa, no es raro que la operación a baja velocidad se logre con pulsos cortos de alta intensidad exactamente por la razón que establece el OP. Busque "motores de accionamiento con fricción" y vea si encuentra resultados útiles.
@TimWescott Ya veo...

Un enfoque para este problema es usar retroalimentación con un controlador PI o PID. El acelerador da un comando de velocidad. Ese comando se compara con la velocidad real para dar una señal de error. Esa señal de error se integra (la I en PI o PID, y la integral se agrega a la señal de error original (proporcional), que luego se usa para controlar la modulación de ancho de pulso.

Con una configuración como la descrita anteriormente, si el motor no arranca inmediatamente, la señal de error integral crecerá hasta que el motor arranque. Es similar a su idea de tener una señal de ciclo de trabajo alto inicial, pero es adaptable y se ajusta a las circunstancias.

Eso puede provocar oscilaciones cuando hay fricción del motor. Por lo general, causan más errores que el método de impulsar el motor con un pulso predeterminado. Entonces, desea un bucle interno de "golpear el motor a velocidades lentas", luego envuélvalo con un controlador PI.

No hay una respuesta simple, un sistema real consta de capas:

  • Control actual (puede omitirlo, pero en un sistema real es importante)
  • Control de velocidad: puede ser útil para sistemas autónomos, como el control de crucero de su vehículo.
  • Perfilador de velocidad: el que define la aceleración, creo que esto es a lo que te refieres.
  • algoritmos avanzados: cosas que hacen cosas raras como correcciones de bucle abierto o calibración automática de ganancia, etc.

Entonces, para mí, la conclusión sería que es bastante complejo controlar simplemente PWM, pero comenzaría con el perfilador de velocidad: decida cada X mseg qué velocidad desea tener en este punto.

Esto es bastante fácil: si tiene un temporizador, dentro de la interrupción simplemente agregue una velocidad constante cada vez (es la aceleración) hasta que alcance su velocidad de crucero.

¿Qué haces al respecto entonces? O lo convierte directamente a PWM (aproximado, pero servirá para el principio) o construye un bucle de control de velocidad. El bucle actual sería el siguiente.

Espero que ayude.