Sunteți pe pagina 1din 13

TECNIA,Vol 8 N°03, págs.

11-17, 1999
Universidad Nacional de Ingeniería
Lima - Perú

DISEÑO E IMPLEMENTACIÓN DE UN
NEUROCONTROLADOR
APLICADO A UN SERVOSISTEMA NO LINEAL
Arturo Rojas-Moreno, arojas@uni.edu.pe
Claudia Córdova-Yamauchi, cgcy@rocketmail.com

Instituto de Automática e Inteligencia Artificial


Universidad Nacional de Ingeniería, Lima - Perú

ABSTRACT

El objetivo de este trabajo, es controlar la velocidad angular de un motor con carga


simétrica, utilizando una red neuronal multicapa. Para realizarlo, se adaptó el método de
entrenamiento con h óptimo al algoritmo de retropropagación a través de la planta. El error
se trasladó utilizando una aproximación del jacobiano, y el h variable se optimizó
linealizando la red alrededor de la matriz de pesos en cada iteración; es decir, se consideró
sólo el primer término de la expansión de Taylor de las derivadas de las salidas de las capas.

Palabras clave: Redes Neuronales, Control adaptivo, Control Inteligente, Tasa de


aprendizaje óptimo.

1 INTRODUCCIÓN

Normalmente se considera a los sistemas dinámicos, como entes cuyo comportamiento obedece simplemente las
leyes de la física. Desde una perspectiva distinta, puede considerarse a estos sistemas como entes procesadores
de información; es decir, la forma en la que ellos obtienen y utilizan la información, determina el modo en que se
comportan. Desde esta última perspectiva, surgen los nuevos enfoques de la inteligencia artificial aplicados al
control: los sistemas expertos, los conjuntos difusos, las redes neuronales, los algoritmos genéticos, etc. Todos
ellos han sido inspirados por alguna característica del procesamiento de información inteligente en los sistemas
biológicos. Por eso son útiles particularmente en los procesos que no tienen una representacion matemática
concisa y satisfactoria como son los casos de reconocimiento de patrones, visión robótica, control motor,
procesos industriales complejos, y en general, tareas con alta exigencia perceptiva; tareas, que
coincidentemente, los seres biológicos ejecutan aparentemente sin esfuerzo. Las redes neuronales han sido
utilizadas en control por su capacidad de aproximar cualquier transformación no lineal mensurable, según lo
demuestra el teorema de Kolmogorov. Entonces se puede entrenar a una red neuronal para identificar o
controlar procesos dinámicos, sobre todo aquellos particularmente ruidosos o con parámetros variables. En este
trabajo se usa directamente una red neuronal para controlar la velocidad angular de un motor DC.

2 DESCRIPCIÓN DEL SISTEMA

El sistema mostrado en la Fig.1 está conformado por:

Un motor Pittman de imán permanente con reducción de velocidad interna, de aproximadamente 350
RPM con encoder óptico incorporado.
Una carga simétrica con su respectivo adaptador al eje del motor.
Un amplificador que alimenta al motor, conformado por el amplificador de potencia propiamente dicho y
el generador de PWM.
Un driver que recibe los datos de la posición del motor por un bus de cuatro entradas y que va conectado
a la tarjeta Lab PC+.
Una PC Pentium de 100 MHz.
Una tarjeta Lab PC+ de adquisición de datos y envío de la señal de control instalada en la PC (de ella se
utilizan tres contadores, dos salidas analógicas y tres puertos de entrada-salida para el control).
Y finalmente el controlador que es un programa en C++ ejecutándose en la computadora. La frecuencia
de muestreo empleada es de 250 Hertz.

Figure 1: Esquema del sistema

El objetivo es el control de velocidad, se debe lograr que la velocidad angular w(k) de la carga siga una
trayectoria wd (k) deseada:
Para el sistema no lineal del servomotor sin carga se tiene la ecuación discretizada siguiente:

donde:

tabla.gif (13150 bytes)

La función f(w(k)) representa la fricción de Coulomb y la fricción estática que constituyen las nolinealidades del
sistema con carga simétrica.

3 ESQUEMA DE CONTROL Y ARQUITECTURA DE APRENDIZAJE

3.1 Esquema de control

Un esquema general de control se muestra en la Fig.2, los controladores feedback (de retroalimentación),
feedforward (por adelanto) y el prefiltro se pueden implementar con redes neuronales multicapa. El controlador
feedforward se adapta para compensar las características de la planta que son descubiertas durante el
aprendizaje. Cuando el error se vuelve pequeño, el entrenamiento ha sido completado y sólo una pequeña parte
del error es necesaria para compensar incertidumbres aleatorias que son impredecibles y, por lo tanto,
imposibles de aprender. Una consecuencia inmediata del uso del controlador feedforward, es que acelera la
respuesta del sistema [4]. El controlador feedforward diseñado, consiste en una red de tres capas; la primera
capa oculta tiene 8 neuronas, la segunda 6 neuronas y como se trata de un sistema SISO (Single-Input-Single-
Output), tanto las capa de entrada como la de salida tienen una neurona cada una.

Figure 2: Esquema general de un sistema de control.

3.2 Arquitectura de aprendizaje

En el diseño de un neurocontrolador, el método más popular de entrenamiento es el algoritmo de


retropropagación del error, y existen dos mecanismos para su aplicación: el aprendizaje general y el aprendizaje
especializado [6].

En el aprendizaje general, la red es entrenada off-line. Para los patrones de entrenamiento presentados, la salida
de la planta es considerada como la entrada de la red neuronal. De modo similar, los patrones de entrenamiento
a la entrada de la planta son considerados como la salida deseada de la red. Presentando los datos de esta
manera y aplicando el algoritmo de retropropagación, la red aprende la dinámica inversa de la planta. De ese
modo, si a la red se le presenta una salida deseada o una trayectoria (un conjunto de salidas deseadas), dicha
red dará en sus salidas la señal de control necesaria para seguir la referencia. Ver Fig.3.

Figure 3: Arquitctura de aprendizaje general.


Aunque este método fue bastante utilizado en control, presenta algunas desventajas; por ejemplo, depende
mucho de la habilidad de la red para generalizar. Si se le da una trayectoria muy alejada de las que se usaron en
su entrenamiento, probablemente no responderá con la eficacia adecuada. Entonces la red deberá ser entrenada
en un amplio rango operacional, quizá mayor del necesario. Por otro lado, mientras la red esté entrenándose, no
podrá ser usada.

Figure 4: Arquitectura de aprendizaje especializado.

Sin embargo, con el otro método, cuya arquitectura se muestra en la Fig.4, la red se entrena on-line con la
evaluación directa de su desempeño con respecto a la salida deseada de la planta. En la figura se observa que
con esta arquitectura, la red aprende específicamente en las regiones de interés. Notar que se coloca la red
directamente en la posición de controlador, y como no se conoce la señal de control necesaria para obtener el
error a retropropagar, el error que se utilizará será el resultante de la comparación entre la salida de la planta y la
salida deseada. Luego este error se retropropagará a través de la planta [4]. Este procedimiento requiere el
conocimiento del jacobiano de la planta y hay varias técnicas para encontrarlo: estimándolo en línea,
identificándolo con otra red neuronal o aproximándolo como se ha procedido a hacer en este trabajo.

Psaltis et.al. [4] proponen la idea de combinar estos dos enfoques, empleando el aprendizaje generalizado para
hacer que el controlador aprenda la dinámica inversa del sistema. Cuando lo ha logrado con la precisión
requerida, los pesos conseguidos los mantiene como los pesos iniciales para el controlador feedforward. Del
mismo modo se obtuvieron los pesos iniciales de la red.

4 RETROPROPRAGACIÓN A TRAVÉS DE LA PLANTA

En el algoritmo de retropropagación, los pesos conectados en la última capa pueden ser ajustados directamente
con el error a la salida y el índice de desempeño. Luego, los errores son retropropagados y los pesos ajustados
capa por capa en orden inverso, desde la capa de salida hasta la capa de entrada. Este proceso se repite lote
por lote si el entrenamiento es por lotes off-line, o patrón por patrón, si es on-line.
Figura 5: La red en posición de controlador.

El error calculado en cada instante de tiempo k es:

Si se cambia w(k) por y(k) (velocidad angular) para evitar confusiones con los pesos y ub por uj (voltaje de
entrada) para normalizar la notación del algoritmo, se tiene

La planta es SISO; entonces la última capa está formada por una sola neurona j. En este caso se tendrá una
función de activación lineal (a diferencia de las otras capas que tienen sigmoides), porque los valores de salida
de la red deben fluctuar entre -1.4 y 1.4 que son los límites del driver a la entrada del motor. Los pesos se
actualizan con la regla delta:

de acuerdo a la regla de la cadena:

donde los últimos dos factores son j¢(vj(k)) (derivada de la función de activación) y ui(k) (salida de la neurona
anterior), respectivamente. En cuanto al primer factor, es allí donde se necesita el jacobiano:
Reemplazando (7) y (8) en (6):

Con el método de Jordan [6] el jacobiano se obtiene por retropropagación a través de una red neuronal
adicional que identifica a la planta. Saerens y Soquet [6] lo aproximan por su signo; es decir, cuando y(k) crece
con uj(k), entonces ¶y(k+1) / ¶uj(k) » + 1, o -1 en el caso contrario, y demuestran además que la razón de
convergencia del algoritmo no se altera sensiblemente con respecto a los valores del jacobiano. Con el método
de Broyden se hace una estimación por diferencias.

En el experimento con el motor, se observa que el comportamiento de la velocidad angular de la carga con
respecto al voltaje de entrada es creciente y con una pendiente aproximada de J=1.2976 para velocidades
negativas y de J=1.1348 para velocidades positivas (el signo indica el sentido del giro). Estos valores se tomaron
como aproximaciones del jacobiano.

Finalmente para la capa de salida la ecuación queda:

donde j es una neurona en la capa de salida.

Para las capas ocultas no hay variación en la ecuación [1].

donde:
d p (k) es el gradiente local de la neurona siguiente, y j es un neurona en una capa oculta.
5 RAZÓN DE APRENDIZAJE ÓPTIMO

Uno de los puntos críticos en la aplicación del algoritmo de retropropagación es la elección del h o razón de
aprendizaje. Un h pequeño conducirá a la red lentamente en su búsqueda del mínimo; un h mayor acelerará el
proceso. Pero si es demasiado grande, puede causar oscilaciones que no conseguiran ningún aprendizaje.

El proceso de actualización de pesos, con W siendo la matriz de pesos, es representado por:

puede ser visto como un problema de optimización de una sola variable. Pero debido a la no linealidad de las
funciones de activación que constituyen parte de la estructura de la red, una derivación analítica de h es muy
difícil, por eso la mayoría de las aplicaciones fija a h en un valor constante entre 0 y 1. Sin embargo, hay
métodos que intentan una solución. Por ejemplo, los de segundo orden que utilizan información del gradiente de
segundo orden, pero que exigen gran capacidad de cálculo, o los métodos heurísticos, o los métodos con
inclusión del momentum, etc.

Para este trabajo se ha elegido un método basado en la linealización de la red neuronal alrededor de W(k) en
cada iteración, que fue desarrollado por Kandil et.al.[2]. Esta técnica, con unos cálculos y consideraciones
ligeramente distintas, permite acceder a los términos de mayor orden del error, empleando expresiones que en
su mayoría ya habían tenido que ser calculadas antes por la red. Para compactar la presentación, se adoptará la
notación matricial-vectorial, en la Fig.6 se puede apreciar mayor detalle.

Figure 6: Red neuronal con la notación introducida

En la gráfica, Wb, Wa y Wy son las matrices de los pesos de las dos capas ocultas y la de salida; Bb, Ba y By
son los vectores de los umbrales de las capas respectivas. Las ecuaciones correspondientes al algoritmo son:
Notar que en la Fig.6 OY es la salida de la planta que corresponde a la entrada Oy, entonces, la variación de
OY será:

donde J representa la aproximación del jacobiano de la planta

Reemplazando las ecuaciones (13) (14) (15) y (16) en (17) queda:

Operando y simplificando obtenemos:


donde:

El error entonces queda representado por:

Luego:

Para determinar el valor óptimo de h que minimiza Ek+1 se usan las condiciones de primer y segundo orden

Entonces el h óptimo será:

Cuando se hicieron los ensayos, se encontró que el primer valor de h era un poco grande y provocaba un pico
alto al inicio. Se probaron algunos valores y el que mejor se comportó fue:

6 RESULTADOS EXPERIMENTALES

En la Fig.7 se muestra el comportamiento deseado de la velocidad de la planta y el comportamiento obtenido en


un experimento de 8 segundos de duración. La red tarda 200 ms. para seguir a wd (k), pero luego se adapta
bien, como se ve en la gráfica. Incluso en las partes más difíciles, como son los cruces por cero, la red se separa
muy poco de wd (k).
Figure 7: Velocidades angulares versus el número de muestras. Las 2000 muestras equivalen a 8 segundos

La señal de control proporcionada por la red neuronal se muestra en la Fig.8. Se observa que la señal está
dentro de los límites +1.4 y -1.4 voltios. Como medida de precaución, se dispone en el programa de control de
una rutina que limita el voltaje de entrada al driver cuando la red exige voltajes mayores.

Figure 8: Señal de control versus el número de muestras.


Figure 9: Error versus el número de muestras.

En la Fig.9 se muestra el error en cada iteración. El error cuadrático medio (ecm) es calculado con la ecuación
(27) y resultó 0.003.

donde n es el número total de muestras.

7 CONCLUSIONES Y TRABAJOS FUTUROS

Se observa que el método aplicado es útil en el control de la velocidad del motor, aún cuando la red
controladora es pequeña y el tiempo de ensayo corto. Se ha demostrado entonces que la realización on-line del
control empleando una sola red neuronal ha sido satisfactoria..

En este trabajo se utilizó el control feedforward. Sin embargo, para compensar incertidumbres aleatorias que son
impredecibles y por lo tanto imposibles de aprender, es necesario realizar adicionalmente la etapa de control por
realimentación que se muestra en la Fig.2. Esta realización se encuentra en desarrollo.

Por otra parte, también se está trabajando para controlar la posición del motor expuesto a cargas no lineales
empleando la estimación on-line del jacobiano.
REFERENCIAS

[1] Simon Haykin, Neural networks. A comprehensive foundation, Macmillan College Publishing
Company, Inc. Englewood Cliffs, NJ, 1994.
[2] N. Kandil, K. Khorasani, R.V. Patel y V.K. Sood, Optimum learning rate for
backpropagation neural networks, articulo de 1993 publicado en Foundation of Neural
Networks editado por Patrick K. Simpson. IEEE Press, New York 1996
[3] Kumpati Narendra and Kannan Parthasarathy, Identification and control of dynamical
systems using neural networks, IEEE Transactions on Neural Networks, Vol. 1, No.1,
March 1990, pp. 4-27.
[4] Demetri Psaltis, Athanasios Sideris and Alan Yamamura, A multilayered neural network
controller, IEEE Control Systems Magazine, Vol. 8, No. 2, April 1988, pp. 17-21.
[5] Eric Ronco and Peter Gawthrop Neural networks for modelling and control, Centre for
System and Control. Department of Mechanical Engineering. University of Glasgow.
Technical Report : csc97008, November 1997.
[6] M. Saerens y A. Soquet Neural controller based on back-propagation algorithm IEE
Proceedings-F, Vol. 138, No.1, February 1991, pp 55-62

Para mayores referencias diríjase a la siguiente dirección


igi@uni.edu.pe

S-ar putea să vă placă și