Ya he construido un robot de equilibrio de dos ruedas usando algunos servos de rotación continua y un acelerómetro / giroscopio. Actualicé los servos a algunos motores de CC con engranajes con codificadores de 8 bits con el objetivo de que el robot manejara mientras balanceaba.
Estoy atascado en cómo programarlo para conducir mientras sigo equilibrando. Creo que una forma sería simplemente hacer que la entrada de control a los motores actúe como empujándola. Entonces el robot estaría momentáneamente desequilibrado en la dirección en que quiero que viaje. Sin embargo, eso me parece un poco torpe. Debe haber una mejor manera de hacerlo? Creo que necesito combinar el modelo dinámico para el equilibrador con el accionamiento diferencial, pero esto está un poco más allá de la teoría de control que conozco.
Actualización De la respuesta de Anorton Tengo una buena matriz de estado ahora.
Ahora sobre la colocación del polo: la matriz A tendrá que ser 4x4 según el nuevo vector de estado. Y B tendrá que ser una matriz de 4x2 ya que solo puedo controlar el par de la rueda izquierda / derecha (u = vector 2x1).
Es posible que necesite leer más sobre esto, pero ¿hay alguna forma sistemática de determinar la matriz A por la colocación del polo? Me parece que para este ejemplo y ejemplos aún más complicados, determinar A por adivinar y verificar sería muy difícil.
Actualización n. ° 2 Después de leer un poco, creo que lo entiendo ahora. Todavía necesito la dinámica del robot para determinar la matriz A. Una vez que tengo eso, puedo hacer la colocación del poste usando matlab u octava.
:)
Mi conocimiento de controles es muy escaso, pero