Con un robot de dos ruedas como este , he logrado estabilizarlo mientras lo mantenía estacionario. Esto se hizo usando un sistema de control de retroalimentación digital al leer la posición de las ruedas para determinar la posición, y la fuerza electromotriz trasera natural de los motores de las ruedas se usó en el circuito de retroalimentación para determinar la velocidad. Se mantuvo estable con un controlador PID, que se diseñó utilizando un algoritmo de ubicación raíz para mantenerlo estable y modular los parámetros de rendimiento (como exceso de porcentaje, tiempo de establecimiento, etc.). Quería intentar mantenerlo estable mientras simultáneamente lo impulsaba hacia adelante, pero no podía entender cómo diseñar un controlador lineal que pudiera hacer eso. ¿Es posible impulsar el robot hacia adelante y hacia adelante? mantenerlo estable usando un controlador de retroalimentación en las ruedas, o ¿es necesario un giroscopio?
fuente
Respuestas:
Podría usar otras formas de medir la orientación, como un acelerómetro, seguimiento óptico de marcadores o un sensor de profundidad apuntando al piso.
fuente
Si lograste estabilizarlo en una configuración estacionaria, realmente no veo cómo sería mucho más difícil estabilizarlo a una velocidad constante. Desde el punto de vista del modelo del sistema, sería efectivamente lo mismo, salvo algunas compensaciones de velocidad. Si las transiciones entre velocidades no son muy grandes, debe caer dentro del rango de perturbaciones del sistema natural.
fuente
Necesita algunos sensores para detectar el estado del sistema.
Primero linealice el sistema en una forma de espacio de estado, luego considere qué sensores tiene. Luego verifique si es observable. Si es observable, puede alimentar los estados estimados en su controlador.
Actualmente, parece que está utilizando la posición de la rueda y el EMF posterior (para velocidad) como mediciones directas. Sin verificar la matriz de observabilidad, no estoy seguro de si el sistema es observable.
fuente
Matemáticamente, el hecho de que ahora tenga rotación (principalmente) elimina ese parámetro como un posible parámetro de control. Básicamente, tendría que rediseñar su algoritmo para aceptar un componente de velocidad angular grande y variable sin dejar de utilizar la velocidad angular en sus comentarios. Cuanto menos ruidoso sea, mejor será el resultado probable simplemente porque es probable que aplique un diferencial de posición para derivar otro parámetro de control. O más bien esa es una forma. Por lo tanto, parece que necesita otra entrada de control, pero no necesita ser un acelerómetro. Podría hacer un horizonte, una ubicación fija del marcador o incluso sensores de inclinación.
fuente