Controlar el motor servo a través de PID para estabilizar una rueda de robot usando IMU

2

Estoy tratando de estabilizar un robot con un servomotor conectado a dos ruedas de un robot. Ya construí el sistema de la siguiente manera:

  • Aplique el filtro Kalman a la salida del girómetro / acelerómetro
  • Calcular un ángulo de balanceo (preciso)

Ahora uso estos resultados y los envío al controlador PID incremental. Mi problema es que la salida del controlador PID es muy alta o algunas veces es negativa, quiero escalarla a un ángulo de servo adecuado, por ejemplo:

La salida PID es 5000, pero el servo entiende "comandos" entre 1 & 180 grados. Entonces, ¿cómo escalar la salida a través de un método científico para asegurarse de que el motor reciba los comandos correctos de PID?

Mi objetivo es cuando la rueda del robot gira a la derecha, el motor debe hacerlo en la dirección opuesta y así sucesivamente.

Actualización # 1: El error de la salida PID depende del ángulo de giro de la referencia en el que quiero estar y del ángulo de giro curado medido desde la IMU (que depende del acelerómetro y el amperímetro del girómetro),

la entrada al servo es la posición del ángulo del servo que se encuentra entre 1 grado y 180 grados

    
pregunta user44231

2 respuestas

4

Para hacer esto "científicamente", debe decidir exactamente qué cantidad física representa la salida de su controlador PID y en qué unidades exactamente. ¿Representa error de rumbo, error de rumbo, ángulo de dirección o algo más?

Además, ¿qué cantidad física representa la señal de entrada al servo? ¿Ángulo de dirección?

Si ambas cantidades representan, digamos, el ángulo de dirección, entonces ya está hecho. Solo necesitas aplicar un factor de escala para convertir las unidades.

Para empezar, si representan diferentes cantidades físicas, debe encontrar una manera de traducir de una a otra. Esto se denomina "cinemática" (o, a veces, "cinemática inversa", dependiendo de cómo funciona su algoritmo de control). Es básicamente una descripción matemática de cómo se relacionan las distintas cantidades físicas (principalmente ángulos y distancias, pero también podrían incluir fuerzas, masas y velocidades) en su sistema.

    
respondido por el Dave Tweed
-1

Sería útil usar un compensador anti cuerda, se aplica un bucle de retroalimentación a la salida del PID para evitar que supere los límites,

Solo ajuste las ganancias por golpe y prueba, y en el bloque de saturación ponga los límites 1 y 180.

    
respondido por el Salman Azmat

Lea otras preguntas en las etiquetas