CONFIGURACIÓN DEL CONTROLADOR LINEAL LQR

Anuncio
A PÉNDICE I
C ONFIGURACIÓN
DEL
C ONTROLADOR
L INEAL LQR
La versión actual del programa de control para el vehículo autobalanceado implementa un controlador lineal con realimentación de los tres principales estados: ángulo
de inclinación, velocidad angular de inclinación y velocidad lineal del vehículo. De
igual modo en este programa se considera únicamente el desplazamiento del vehículo en línea recta, por lo que la señal de control que se calcule se aplicará de igual
manera a ambos motores considerados simétricos.
El controlador implementado tiene la siguiente estructura:


θ
 
u = KX = k0 [k1 k2 k3 ]  θ̇  = k0 (k1 θ + k2 θ̇ + k3 ν)
ν
(I.1)
Para compensar la posible desviación entre el ángulo cero marcado por la IMU y
el cero del centro de gravedad, se va a introducir un término de offset configurable al
igual que los otros parámetros del controlador. De esta forma la ecuación quedaría:
u = k0 k1 (θ + θ0 ) + k2 θ̇ + k3 ν
(I.2)
El criterio de signos tomado para la referencia del ángulo de inclinación, velocidad
angular y velocidad lineal del vehículo se muestra en la Fig. 9.1. Es importante tener
en cuenta que el signo del ángulo se está tomando como referencia a partir de un perfil
concreto del vehículo, es decir, visto desde el lado donde se encuentra el microcontrolador (lado contrario a la IMU), tal y como se muestra en la Fig. 9.2. De esta forma,
la inclinación hacia el lado en el que el vehículo no tiene elementos en su base sería
positiva y negativa hacia el lado en el que se encuentra la antena bluetooth.
153
I. CONFIGURACIÓN DEL CONTROLADOR LINEAL LQR
Figura 9.1: Criterio de signos para ángulos y velocidad.
Figura 9.2: Aclaración del perfil desde el que se toma el criterio de signos.
Los motores de corriente continua utilizados en el vehículo presentan una zona
muerta con respecto a la señal de control, es decir, el motor no presenta movimiento
hasta superar cierto nivel en la señal de control. Esto se debe a la fuerza que el motor
tiene que vencer en el conjunto de engranajes para mover todo el sistema y se puede
compensar añadiendo un término de offset en la señal de control. Este término puede
ser no simétrico por las características físicas del motor, por ello se han de incluir dos
términos para compensar el movimiento en ambas direcciones de manera independiente.
154
I. CONFIGURACIÓN DEL CONTROLADOR LINEAL LQR
En resumen, para realizar un experimento se ha de configurar una serie de parámetros en el controlador lineal implementado y estos parámetros serán:
k1: Término de ganancia del controlador relacionada con el ángulo de inclinación del vehículo.
k2: Término de ganancia del controlador relacionada con la velocidad angular
del vehículo.
k3: Término de ganancia del controlador relacionada con la velocidad lineal del
vehículo.
k0: Término de ganancia general del controlador.
th0: Término de offset sobre el ángulo de inclinación del vehículo (en radianes).
zmp: Término de offset para la zona muerta de los motores en sentido positivo
(en unidades de la señal de control).
zmn: Término de offset para la zona muerta de los motores en sentido negativo
(en unidades de la señal de control).
La configuración de estos parámetros implica asignar los valores en la memoria
del microcontrolador, y si la asignación se realiza en el código del programa, esto
implicará que sea necesario compilar el programa cada vez que se desee modificar
esos valores y que se vuelva a cargar el programa en el microcontrolador. Todo este
proceso conlleva un tiempo de trabajo que pese a no ser muy elevado se hace bastante
considerable si se realiza varias veces de manera repetida para reajustar el controlador.
En esa configuración o ajuste del controlador, la estructura del mismo se mantiene
inalterada, es decir, se cambian los valores de los parámetros pero el algoritmo sigue
siendo el mismo. De esta forma, sería deseable mantener un programa en memoria
del microcontrolador y asignar los valores de los parámetros en línea, o lo que es lo
mismo, teniendo un único programa compilado, cargado y en funcionamiento en el
microprocesador, cambiar los valores de los parámetros por defecto para utilizar esos
nuevos valores en el controlador.
Gracias a la utilización del adaptador RS232-Bluetooth, podremos establecer una
comunicación entre un PC y el microcontrolador de manera que se pueda transmitir
información de forma genérica y a través de esto configurar los parámetros.
Para la configuración de estos parámetros se ha creado una función en Matlab capaz de comunicarse con el microcontrolador a través del enlace bluetooth establecido
por los adaptadores entre los puertos RS232 del PC y la placa del microcontrolador.
La comunicación consistirá en:
155
I. CONFIGURACIÓN DEL CONTROLADOR LINEAL LQR
Envío por parte del PC de los parámetros a configurar con un formato y orden
preestablecido.
Recepción e interpretación de los parámetros por parte del microcontrolador.
Asignación de valores al controlador en curso.
Envío hacia el PC de un asentimiento indicando que se han recibido los parámetros.
La función de Matlab indicará al usuario si la comunicación se ha realizado correctamente o no existe la confirmación del microcontrolador.
Los valores por defecto con los que se inicia el control una vez que se enciende el
microcontrolador se encuentran en la memoria no volátil. Por este motivo, los valores
por defecto si deben introducirse en el código del programa que tendrá que ser compilado y cargado en el controlador tras su modificación. Los valores que se configuran
en línea para el ajuste de los mismos, estarán ubicados en memoria volátil y por tanto
desaparecerán al apagar el controlador.
Los valores por defecto se encuentran en el módulo principal del código del programa. En la zona de definición de variables se han agrupado y se les da valor inicial.
Es en este punto del código donde se ha de asignar esos nuevos valores por defecto.
En la comunicación para la configuración de los parámetros en línea se utiliza un
formato fijo de envío y esto mismo se tiene en la lectura e interpretación por parte
del microcontrolador. Por esto será necesario asignar y enviar todos los parámetros
aunque su valor no se modifique con respecto a los de pruebas anteriores o incluso
con respecto a los valores por defecto. El formato para la utilización de la función de
Matlab creada es el que se muestra a continuación:
paramVBal( k1, k2, k3, k0, th0, zmp, zmn )
Ejemplo:
paramVBal(-5.5,-0.2,-0.0005,220,-0.011,6,-7)
En caso de que se reciba respuesta del microcontrolador, se interpretará que la comunicación y asignación de parámetros han sido correctas, y se mostrará el mensaje:
”Parámetros cargados correctamente”. Mientras que en caso contrario se mostrará el mensaje ”Error en la asignación de parámetros” para hacer saber al usuario que debe volver
a configurar los parámetros:
La recepción de parámetros en el microcontrolador está implementada para ser
realizada mientras el vehículo está en parada (LED azul del pulsador superior apagado) y, por supuesto, a la vez con el vehículo activado (alimentación activada).
156
I. CONFIGURACIÓN DEL CONTROLADOR LINEAL LQR
Para evitar problemas en la comunicación, antes de ejecutar la función de configuración de parámetros en Matlab, será necesario esperar a que el adaptador bluetooth
establezca la conexión (LED azul del adaptador encendido y fijo) y comprobar que el
vehículo esté en modo de parada (LED del pulsador superior apagado). Al establecerse la conexión entre los adaptadores, éstos se intercambian varios octetos de datos que
podrían interferir con la comunicación que se pretende realizar.
En caso de que el receptor no esté preparado, se producirá un error en Matlab
por superar el tiempo de espera para la comunicación. Es posible que en ese caso sea
necesario reiniciar el programa para desvincular el puerto de comunicaciones COM1
que se está usando para el adaptador y poder volver a conectar.
Si la comunicación de parámetros se realiza no estando el vehículo en modo de
parada, puede que la interpretación de valores no se realice correctamente y sería
necesario apagar la alimentación del vehículo para volver a los parámetros por defecto
e intentar una nueva configuración.
157
I. CONFIGURACIÓN DEL CONTROLADOR LINEAL LQR
158
Descargar