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.
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?
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.
simular este circuito : esquema creado con CircuitLab
Simón Richter