Qué enfoque es mejor para impulsar un motor de CC sin escobillas con ciclo de trabajo PWM

Estoy haciendo un proyecto que usa un motor de CC con engranajes sin escobillas,

el motor está conectado a una plataforma móvil. Conduciré el motor con PWM, el motor luego moverá la plataforma de -un grado a una posición de grado.

ingrese la descripción de la imagen aquí

Hay una configuración de RPM para la velocidad de movimiento que se debe lograr, para hacer esto cada vez que alcanza la posición máxima (0 grados), leo la velocidad angular del sensor giroscópico que estaba conectado a la plataforma, luego paso el valor al controlador PID.

Quiero preguntar cuál es el enfoque correcto/mejor para accionar el motor: (el motor se detiene inicialmente)

(1) Comience desde un ciclo de trabajo MÍNIMO (digamos que ~ 30% es el mínimo para hacer que la plataforma se mueva), luego incremento el ciclo de trabajo en cada intervalo de tiempo (por ejemplo, +1% cada 100 ms), cuando llega a 0 grados posición Empiezo a frenar disminuyendo el ciclo de trabajo (por ejemplo, -2% cada 100 ms), luego detengo el motor cuando llego a la posición final. Eso será un ciclo, luego, después de que termine cada ciclo, calcularé un nuevo valor para el incremento y la disminución para lograr la configuración de RPM.

(2) Desde la posición de inicio, conduzco el motor con un ciclo de trabajo constante, luego, cuando alcanza la posición de 0 grados, empiezo a frenar como en el enfoque (1) usando decremento. Luego, después de que termine cada ciclo, calcularé un nuevo valor para el trabajo constante utilizado, y también el valor decreciente al frenar.

¿Cuál es el mejor ALGORITMO con pros y contras?

La pregunta que se hace es básicamente si tiene sentido comenzar el movimiento lenta o abruptamente. Eso depende de si su aplicación espera que la plataforma dé un gran salto repentinamente (cuando el sistema está encendido) y si el motor puede entregar suficiente potencia para iniciar el movimiento sin deslizarse.

Respuestas (1)

Dices que vas a usar un controlador PID, pero luego empiezas a hablar de conducir el ciclo de trabajo del motor directamente. Creo que no entiendes lo que es un controlador PID .

Debe usar un controlador lineal, posiblemente decorado con integrador anti-windup. Aquí hay un diagrama de bloques básico que debería funcionar para usted. El bloque de 'rotación' es algo ficticio; simplemente está allí para pasar de la velocidad del motor a la posición del motor.

¡No necesita una secuencia extravagante con temporizadores y sentencias if y cientos de líneas de código! Solo necesita controladores lineales simples, como los que la humanidad ha estado haciendo durante los últimos 100 años.

esquemático

simular este circuito : esquema creado con CircuitLab

No no no, mi sistema no es como ese diagrama de bloques. Bien, olvídate del PID, digamos que esto solo usa código de software, ¿cuál es mejor enfoque (1) o (2)? eso es lo que estoy preguntando
Estoy bastante seguro de que cualquiera de los dos tendrá resultados igualmente deprimentes. He estado haciendo esto durante 30 años y he limpiado tanto (1) como (2). Sé de lo que hablo. El hecho de que algo implemente un bucle PID no significa que no sea un algoritmo, por lo que puede usar el diagrama de bloques que le estoy dando y llamarlo algoritmo.