Está en la página 1de 23

Control de un puente gra con una red neuronal SD 1.

Presentacin del problema El problema a estudiar esta basado en el comportamiento no satisfactorio de un puente gra el cual se puede presentar de 2 maneras Supongamos que una de las especificaciones que debe cumplir el puente gra sea que bajo ninguna circunstancia pueda la carga del mismo exceder limites fsicos ya sea porque en los limites hay una pared y al golpear con la misma la carga se dae o bien cerca de estos limites puede haber maquinaria frgil o personas que pueden resultar golpeados cuando el carro de la gra llega a ese limite pero la carga con su inercia genere un movimiento oscilatorio amortiguado que provoque que la misma exceda los limites especificados. El segundo problema se presenta cuando se quiere transportar una carga de un lugar hacia otro con cierta precisin especificada, aqu cuando el operador considere que llego al destino la gra frenar pero la carga quedara en un movimiento oscilatorio amortiguado que no le permitir al mismo comprobar que se encuentra en el destino correcto hasta que este movimiento oscilatorio se extinga Para poder atacar el problema se realizo un modelo matemtico del puente gra de acuerdo al siguiente esquema: Para el cual se llegaron a las siguientes ecuaciones que representan al sistema

Estas ecuaciones pueden llevarse a una sistema en variables de estado tomando como variables de estado a la posicin de carro (x1) y su velocidad (x2) y al ngulo formado entre la vertical y el cable de acero utilizado por la gra puente (x3) y su velocidad (x4) Luego de un trabajo matemtico de las ecuaciones anteriores se llega a un sistema de la forma:

donde x es una vector de 4x1 que representa a las variables de estado , A una matriz de 4x4 que contiene la dinmica del sistema, B es la matriz que indica la interaccin entre la entrada que en este caso es la fuerza impuesta por un motor montado en el carro del puente gra y los estados Para poder interpretar mejor el problema presentado y el modelo desarrollado se van a hacer simulaciones de este modelo ante diferentes condiciones para dejar de manifiesto ciertas complicaciones que se dan en este problema particular. Estas complicaciones son consecuencia de que la carga que se lleva en la gra no es fija sino una magnitud que varia con el tiempo y la longitud entre el carro y la carga tampoco es una magnitud constante sino que tambin varia con el tiempo. El primer modelo simulado representa lo que llamamos el modelo de planta nominal el cual considera que los valores utilizados para la longitud l y la masa m de la carga son promedios durante el periodo de vida del puente gra. 1

Para este caso los datos utilizados en la simulacin son los siguientes: M=200kg , m=60kg , l=7.5m , b=1600 kg/s Para este caso y para un pulso de excitacin en la entrada del sistema ( que representa a un pulso de fuerza en el carro de la gra) se presentan los siguientes resultados: donde se puede ver en rojo el ngulo Se puede ver que a los 10 segundos que es donde se para gra el movimiento oscilatorio tiene su mxima amplitud , para este caso el desplazamiento mximo angular es del orden de .0033 radianes que a la distancia de la carga representan un desplazamiento de 2.5cm. del lugar de parada de la gra. Tambin puede notarse que el sistema es muy lento para que se extinga la oscilacin Vamos a simular varios casos importantes para reconocer como cambia la respuesta del sistema ante cambios en la longitud l y la carga m Otro caso es cuando tengo en la carga solo el peso de la propia cuerda y el guinche y l permanece en la longitud nominal Se puede ver en este caso que el desplazamiento longitudinal es mayor en este caso que en el caso nominal y tambin se puede apreciar que el movimiento oscilatorio casi no se ve amortiguado Ahora se va a simular el modelo para l=1m y m=60kg Se puede ver que en este caso es mucho mas notorio la amortiguacin del comportamiento oscilatorio. Por ultimo vamos a simular el caso de l=10m y m=100kg que seria la mxima carga admisible y la mxima longitud desde la carga al carro Para este caso obtenemos Para este caso se ve un desplazamiento muy grande de la posicin de parada llegando a 5 cm en el momento de la parada. Con los resultados de estas simulaciones se puede concluir que la solucin del problema tiene que adaptarse a las diversas condiciones que se pueden presentar en el sistema real. Hay parmetros en el modelo del sistema que varan con el tiempo y en la resolucin del problema hay que tenerlos en cuenta. Solucin clsica de control: Para poder solucionar este problema desde el control clsico lo que tenemos que hacer es de alguna manera llevar los polos del sistema de lazo abierto a lugares donde nosotros consideramos que el sistema cumple con las especificaciones en el dominio del tiempo que es donde generalmente se dan. Es decir uno tiene especificaciones por ejemplo del ngulo mximo que se tolera una vez que la gra frena, o un tiempo mximo en que se tolera que la carga este oscilando. Estos parmetros estn directamente relacionados con la ubicacin de los polos del sistema. Para mover los polos se realimentan las variables de estado del sistema. Hay que tener en cuenta que de esta manera no se tienen en cuenta las variaciones del modelo cuando cambia la longitud desde el carro hasta la carga y la masa de la carga. 2

Lo que vamos a hacer es desarrollar un controlador clsico con el modelo nominal y analizar que ocurre con otras condiciones de carga y de longitud desde el carro hasta la carga. Entonces si consideramos el modelo nominal podemos calcular la ubicacin de los polos del sistema de lazo abierto y nos da lo siguiente: Se puede observar que los polos que estn muy cerca del eje imaginario, son los que generan el comportamiento oscilatorio en el dominio temporal y al estar muy cercanos al eje hacen que ese movimiento oscilatorio se4 extinga muy lentamente. Es decir que vamos a buscar alejar estos polos del eje imaginario, para que el comportamiento oscilatorio se extinga relativamente mas rpido. Tambin no hay que perder de vista que el lugar donde ubico los polos lo fijo yo pero el costo que tiene es la energa que tengo que poner en juego para poder actuar sobre el sistema y esto esta directamente relacionado a las ganancias de reglamentacin que necesito para mover los polos; por lo tanto un punto de comparacin muy importante para una optimizacin tecnicoeconomica de las soluciones que se van a plantear en este trabajo son las ganancias de realimentacin puestas en juego en cada caso. Vamos a poner los polos en un lugar donde se cumplen las especificaciones tcnicas. El lugar de los polos de lazo cerrado que estamos buscando es: Se puede observar como los 2 polos complejos conjugados estn ahora en 3+.5i y 3.5i y mediante la siguiente configuracin: Con los siguientes resultados: Para hacer una comparacin del comportamiento del sistema a lazo cerrado y el sistema a lazo abierto nos vamos a referir al grfico del sistema a lazo abierto con el modelo nominal de la seccin 1. Primero podemos ver que el ngulo en color verde se puede decir que ya no tiene ese comportamiento oscilatorio que se presentaba antes, tambin se puede ver que el ngulo mximo que presenta el sistema realimentado es de .5e3 contra 3.3e3 lo cual representa casi 7 veces menos que antes. Una caracterstica que empeoro es que la gra antes desplazaba la carga con el mismo pulso de fuerza casi 30cm mientras que ahora mueve la carga solamente cm, lo cual puede interpretarse tambin como si quiero llevar la carga hasta el mismo lugar que antes voy a tardar mas tiempo. Ahora vamos a considerar que pasa cundo se modifica el modelo y tenemos presente este mismo controlador para el modelo nominal. Primero vamos a simular el caso de l=7.5m y m=10kg que es el segundo caso que simulamos a lazo abierto. Los polos a lazo cerrado para este caso son: Como se ve en la figura los polos no cambiaron considerablemente en este caso as que es de esperar que la respuesta temporal del sistema tampoco lo haga. Ahora simulamos para l=1m y m=60kg Se puede notar que se cumplen las hiptesis que se hacan que no cambia demasiado la respuesta temporal. Ahora si modificamos el modelo poniendo l=1m y m=10kg los polos de lazo cerrado quedan: Aqu ocurre un grave problema y es que el sistema de lazo cerrado se torna inestable. Y se puede ver que uno de los polos es muy grande, lo que da una idea de la alta sensibilidad de los polos del lazo cerrado a un 3

cambio en el modelo nominal cuando la longitud tiende a 0. De todas manera vamos a simular el ultimo caso que es cuando l=10m y m=100kg Se puede ver que el sistema es estable pero nuevamente los polos complejos conjugados estn muy cercanos al eje imaginario lo cual traer problemas. Veamos la simulacin de la respuesta temporal Se puede ver que dentro de todo la respuesta temporal no cambia demasiado con respecto al modelo nominal. Hay que tener en cuenta que por ejemplo si la especificacin de mximo desplazamiento con respecto a la vertical en el momento de frenado de la gra, esto puede pasarse directamente a una especificacin de ngulo mximo pero que va a cambiar cuando vare la longitud entre el carro y la carga. O mejor dicho a mayor longitud se tendr un ngulo mximo menor que a la longitud nominal y viceversa para lograr que el apartamiento de la carga con respecto a la vertical este acotado a un valor. En este ultimo caso por ejemplo se puede observar que el ngulo mximo de desplazamiento es de .4e3 lo que representa un desplazamiento lineal de la carga de 4mm con respecto a la vertical Despus de toda esta discusin se puede concluir que es necesario un controlador que se ajuste en el tiempo y que de alguna manera identifique al sistema y acte de acuerdo a esta identificacin. Solucin con redes Neuronales La solucin propuesta con redes neuronales consiste en que la gra cuando comienza a moverse (en las simulaciones especficamente 5 segundos) muestrea el ngulo formado por la vertical y la soga de la cuelga la carga y la introduce en la entrada de una red Backpropagation, la cual identifica las variables de la planta que varan con el tiempo (que son m y l) y de acuerdo con estas variables que calcula modifica el controlador del motor del carro de la gra. De esta manera se logra que el sistema de lazo cerrado no solo sea estable para cualquier circunstancia, sino que ubica los polos siempre en el mismo lugar lo cual a fines prcticos quiere decir que me asegura cumplir una especificacin de ngulo mximo permitido en el frenado de la gra ante cualquier condicin de carga de la misma como tambin a cualquier distancia entre el carro y la carga. Tambin se podr notar en las simulaciones otra ventaja de esta implementacin frente a un controlador clsico y es que como habamos remarcado en la seccin anterior, el desplazamiento del carro de la gra con el controlador clsico era unas 10 veces menos que a lazo abierto ( es decir el sistema se haba vuelto muy lento ); con la implementacin de la red neuronal el sistema con la misma fuerza aplicada llega aproximadamente al mismo lugar que llegaba a lazo abierto. Cabe aclarar que para que el sistema funcione; la red necesita una fase de entrenamiento, pero que se puede hacer una nica vez antes de comenzar a utilizar el sistema. Esta fase de entrenamiento, a fines prcticos, se trata de ponerle a la gra una carga conocida y una longitud conocida desde el carro hasta la carga y moverla en un periodo mayor de 5 segundos. En ese tiempo la red modifica sus pesos sinpticos para minimizar el error cuadrtico medio entre los datos conocidos y los datos que resultan de la red. Uno de los problemas que se presentan con la red Backpropagation es que es una red que converge a error 0 muy lentamente y no es tecnolgicamente implementable. Pero mas adelante se va a implementar otro modelo de red Neuronal la cual es implementable y tiene una fase de entrenamiento mas corta que la Backpropagation. Cabe aclarar que otra gran ventaja de este modelo frente al modelo clsico de control es que el controlador se ajusta y calcula en base a un modelo que se construye con datos que son difciles de medir, como por ejemplo 4

el rozamiento del carro con el apoyo de la gra, es decir que el modelo que se utiliza para el calculo del controlador clsico posee errores propios de la dificultad de conocer con una determinada exactitud los parmetros del mismo. Con la red Neuronal nos independizamos de este problema ya que en la fase de entrenamiento estamos trabajando con el sistema real. El esquema utilizado para la simulacin de este caso es el siguiente El programa utilizado en la simulacin esta explicado en el apndice A, donde tambin se especifica como fue la fase de entrenamiento de la red. Para la fase de entrenamiento en las siguientes simulaciones se pusieron en la entrada de la red 4000 casos de combinaciones l y m conocidas de las cuales 100 son distintas y luego son repeticiones de alguna de estas 100 conocidas. Para tener una idea del tiempo que puede llevar este entrenamiento realmente, si consideramos que cada actualizacin tarda 5 segundos para el muestreo mas unos 10 segundos de promedio para el cambio de m y l y otros 10 segundos para que deje de oscilar por completo la carga por el ensayo anterior, tenemos un tiempo total de training de 27,8 horas, lo cual no es descabellado pero es un tiempo muy elevado. Este anlisis que se realizo considera que no se tiene absolutamente nada conocido del sistema antes de comenzar el entrenamiento, lo cual es falso y sobredimensiona el tiempo de entrenamiento. Es decir una de las mejoras inmediatas que se podran hacer es que conociendo el modelo del sistema de la misma manera que se hace en control clsico, pueda hacer un entrenamiento de la red mediante una computadora y hacer un entrenamiento de la red con el modelo real poniendo como pesos iniciales de la red los calculados con la computadora y bajando drsticamente el tiempo de entrenamiento. Para el caso del modelo nominal el sistema responde de la siguiente manera: Se puede ver que al frenar el carro el ngulo es insignificante y la distancia recorrida por el carro es 4.5 veces mas que con el controlador clsico. Para el caso de m=10kg y l=7.5m Aqu se nota que el ngulo en le momento que frena la gra (10 segundos) es prcticamente igual que en el modelo nominal. Ahora simulamos el caso de l=1m y m=60kg Este caso es importante para comparar ya que con control clsico quedaba inestable a lazo cerrado y aqu se puede ver no solo que es estable sino que llega al mismo lugar que a lazo abierto. Podemos concluir del grfico de posicin del carro que es casi el de lazo abierto que las ganancias del controlador bajan fuertemente a medida que l tiende a 0 y esto es la causa de la alta sensibilidad de los polos de lazo cerrado del sistema ante los cambios de l. Para el caso de l=10m y m=100kg Como se puede ver los resultados por este mtodo son muy satisfactorios y sumamente superiores que un control clsico. Sus puntos dbiles ya los mencionamos y son la no implementabilidad y la lentitud en el entrenamiento. Estos puntos van a ser tratados en la siguiente seccin donde se va a utilizar un modelo de red neuronal que solucin estos problemas pero seguimos utilizando estos principios ya que los resultados obtenidos son ptimos. 5

Solucin con una red SD (SchmajukDiCarlo) La solucin implementada en este caso a los fines prcticos es de fundamental importancia porque va a superar a la implementacin anterior en los siguientes puntos: Es fsicamente realizable y biolgicamente plausible Tiene un perodo de entrenamiento relativamente mas corto que un red Backpropagation con el mismo numero de neuronas. Esta red trabaja en tiempo real Por que se busca esta implementacin y no nos quedamos con la anterior, que tenia un resultado desde el punto de vista funcional ptimo? Esto se debe a que la implementacin del caso anterior llevara a la aplicacin de algn microprosesador que pueda realizar los clculos necesarios para retropropagar el error en una red del tipo Backpropagation, y si se quiere que los clculos sean relativamente rpidos hay que utilizar plataformas rpidas que sin lugar a duda son caras. Es decir que funcionalmente el caso anterior es ptimo, pero no lo es a nivel de implementacin, por el costo no solo econmico sino tambin porque la red Backpropagation tiene otra desventaja con respecto por ejemplo a la SD y es que la fase de entrenamiento es mas lenta. La descripcin de la red SD esta resumido en el apndice B. Una de las desventajas que tenemos es que la red SD puede tener una nica salida, pero en el caso que nos compete necesitamos 2 salidas. Para solucionar esto se utilizan 2 redes SD que trabajan con la misma entrada. Esto desde el punto de vista de implementacin seria duplicar el hardware con respecto al caso anterior, lo cual no es una condicin critica desde ningn punto de vista. Cabe aclarar que el modelo utilizado de la red SD (SchmajukDiCarlo) fue modificado, obtenindose mejores resultados con respecto al tiempo de entrenamiento de la red. La modificacin que se hizo fue aplicarle un termino de momentum a las variaciones de los pesos sinpticos de la red. El modelo utilizado en este caso es el siguiente: Para la fase de entrenamiento en las siguientes simulaciones se pusieron en la entrada de la red 200 casos de combinaciones l y m conocidas de las cuales 20 son distintas y luego son repeticiones de alguna de estas 20 conocidas. Para tener una idea del tiempo que puede llevar este entrenamiento realmente, si consideramos que cada actualizacin tarda 5 segundos para el muestreo mas unos 10 segundos de promedio para el cambio de m y l y otros 10 segundos para que deje de oscilar por completo la carga por el ensayo anterior, tenemos un tiempo total de training de 1.38 horas, lo cual es muchsimo menor que con el caso de la red Backpropagation. Este anlisis que se realizo, como en el primer caso, considera que no se tiene absolutamente nada conocido del sistema antes de comenzar el entrenamiento, lo cual es falso y sobredimensiona el tiempo de entrenamiento. Es decir, igual que en el caso anterior, una de las mejoras inmediatas que se podran hacer es que conociendo el modelo del sistema de la misma manera que se hace en control clsico, pueda hacer un entrenamiento de la red SD mediante una computadora y hacer un entrenamiento de la red con el modelo real poniendo como pesos iniciales de la red los calculados con la computadora y bajando abruptamente el 6

tiempo de entrenamiento. Los resultados obtenidos para este caso son: Para el modelo nominal: Se puede ver que los resultados son casi iguales que con el caso anterior y esto ocurre con todos los casos siguientes. Esto se debe a que luego de entrenada la red neuronal acta de la misma manera que la Backpropagation, cosa que era esperada ya que funcionalidad de la Backpropagation no estaba en cuestin sino sus otras desventajas. Por ultimo vamos a simular el caso que se tornaba inestable con el controlador clsico, para ver que tampoco difiere del caso anterior: Optimizacin tcnicoeconmica del problema. En las secciones anteriores de este trabajo, sobre todo en la ultima que se utiliza el modelo SD se utiliz el mismo numero de neuronas en la capa oculta que en el caso de la seccin que soluciona el problema mediante una red Backpropagation. Esto se hizo con fines de poder realizar comparaciones de performance con respecto al tiempo de entrenamiento de las distintas redes y tener parmetros iguales en ambos casos (si no se hara de esta forma la comparacin no tendra validez ). Pero ya que conocemos las ventajas del modelo SD por medio de el anlisis de este modelo y el anlisis del modelo fsico planteado para este problema particular se tratara de llegar a una solucin del problema que sea ptima desde el punto de vista tcnico tanto como del punto de vista econmico. Para poder realizar esto nos vamos a basar en 2 hechos que son los siguientes: Mediante el anlisis del modelo de lazo abierto de el puente gra, se va a llegar a la conclusin (mas adelante se ampliara el tema) de que la sensibilidad de los polos de lazo cerrado del sistema es muy baja con respecto a la masa de la carga de la gra (esto tiene que ver con que la masa de el carro que lleva a la gra generalmente es mucho mayor que la masa que carga a la misma). Ademas si se ve el modelo de variables de estado del sistema se puede ver que la matriz B no depende de la masa que lleva la gra, con lo cual se puede concluir que la matriz de controlabilidad del sistema va a tener la misma sensibilidad que la matriz A con respecto a la masa m; y esto trae como consecuencia que el sistema a lazo cerrado va a tener la misma sensibilidad con respecto a m, que el sistema de lazo abierto. (si se observa la matriz B del sistema se puede ver que esto no ocurre en el caso de l, en este caso el sistema a lazo cerrado va a tener una sensibilidad diferente que el de lazo abierto). Esto va a permitir la utilizacin de una sola de las redes neuronales que identifique l y se tomara m como el valor medio, lo cual como se vera en las simulaciones no traer modificaciones en cuanto a los resultados y permitir reducir el tiempo de entrenamiento 2 veces con respecto al tiempo que se utilizaba en el caso de utilizar otra red que identifique la masa que llevaba la gra. Por otro lado en las secciones anteriores se utilizaron en la capa oculta una cantidad de neuronas que no traen problemas de mnimos locales , aqu se tratara mediante simulaciones encontrar un numero de neuronas ptimo, que significa tratar de utilizar el mnimo numero de neuronas, pero sin que el problema de los mnimos locales afecte a los resultados que se quieren obtener. Problema de la sensibilidad de el modelo. Para poder determinar este problema y demostrar que para este caso particular la masa que lleva la gra es relevante frente a la sensibilidad de la ubicacin de los polos con respecto a la longitud desde la carga de la gra hasta el carro, se realizo una simulacin calculando, primero con la masa fija, la ubicacin de los polos 7

de lazo abierto del sistema, variando la longitud y luego se hizo lo mismo pero dejando fija la longitud y variando la masa que carga la gra. Los resultados de esta simulacin son los siguientes. Se puede ver que a longitudes pequeas la sensibilidad del modelo es grande y va decreciendo a medida que l aumenta. Pero es notable la sensibilidad del modelo con respecto a l Veamos que resultados arroja la simulacin cuando se varia m Los polos en este caso se mantienen prcticamente constantes en todo el rango de variacin posible de la masa de las cargas de la gra (10 a 100kg) Con lo cual queda sumamente claro que la sensibilidad del modelo con respecto a la masa m es muy baja. Problema de los mnimos locales: Se llego por medio de una gran cantidad de simulaciones a que con 2 neuronas en la capa oculta el sistema propuesto en 1000 simulaciones no cayo en ningn mnimo local como lo va a mostrar el siguiente grfico que son 1000 simulaciones del sistema de la gra con el modelo nominal y lo que se grafica es en cada oportunidad que valor de l identifica la red. Como puede verse en las 1000 simulaciones no cayo en ningn mnimo local y llego (con cierto error admisible) a el valor real. Entonces con el sistema de la manera propuesta se llevaran a cabo simulaciones y se vern los resultados obtenidos los cuales si se comparan con la seccin anterior de este trabajo no se notaran grandes diferencias y lo mas importante es que si se especificaria el desplazamiento mximo admisible de la carga de la gra en el frenado este se mantendra prcticamente igual que en la seccin anterior con lo que se estaran cumpliendo con las especificaciones tcnicas del problema y el costo del sistema bajara mucho ya que se utiliza una sola red y se disminuyo el numero de neuronas de la capa oculta, lo que hara disminuir el hardware puesto en juego en la implementacin del sistema, y tambin al utilizar un solo parmetro variable (la longitud desde la carga hasta el carro de la gra) disminuir el tiempo de entrenamiento de la red. Veamos las simulaciones: Para el modelo nominal: Para m=10kg y l=7.5m Para l=1m y m=60kg Para l=10m y m=100kg Lo cual corrobora nuestros clculos.

Apndice A

Modelo y simulacin utilizados para resolver el problema de la gra de la seccin 3 A.1 Modelo de red utilizado: Para este problema particular se utilizo una red Backpropagation con la siguiente arquitectura: El numero de neuronas no es el real en el esquema de la arquitectura de la red Para entrenar esta red se utilizo el siguiente programa: %Fase de entrenamiento de la red (Se supone que se hace una nica vez) % Cargo los datos de la entrada de la red Tf=5; X0=[0;0;0;0]; for l=1:1:10 for m=10:10:100 A=[0 1 0 0;0 b/M g*m/M 0;0 0 0 1;0 b/(M*l) (M+m)*g/(M*l) 0]; B=[0;1/M;0;1/(M*l)]; [tout,yout]=rk45('modelo4',Tf); datos((l1)*10+m/10,:)=[(l5.5)/4.5 (m55)/45 100*yout(:,3)']; end end Nneuronas=10; % Cantidad de neuronas en la capa oculta beta=1.1; % .82Parametro de la tangente hiperbolica nu=.2; % Factor de aprendizaje momentum=0.1; % Utilizo un momentum para acelerar el aprendizage de la red [Ncasos,Nentradas]=size(datos); Nentradas=Nentradas2; % Inicializo la matriz de pesos W1=rand(Nentradas+1,Nneuronas)./10; W2=rand(Nneuronas+1,2);

% Aplico los datos que tengo varias veces para entrenar la red deltaw2_ant=zeros(size(W2)); deltaw1_ant=zeros(size(W1)); for k=1:400 for i=1:Ncasos %Ncasos V1=[1 datos(i,3:Nentradas+2)]; % Aplico los datos a la capa de entrada de la Backpropagation % Propago la senal por la red V2=[1 tanh(beta.*V1*W1)]; %matriz fila que representa las salidas de la capa oculta V3=tanh(beta.*V2*W2); % matriz que representa la salida de la red % Calculo los delta y retropropago el error d3=beta.*(1.V3.^2).*(datos(i,1:2)V3); %deltas de la ultima capa d2=beta.*(1.V2.^2).*(W2*d3')'; %deltas de la capa oculta % Actualizo los pesos deltaw2=nu*(V2'*d3); deltaw1=nu*(V1'*d2(2:Nneuronas+1)); W2=W2+deltaw2+momentum*deltaw2_ant; W1=W1+deltaw1+momentum*deltaw1_ant; deltaw2_ant=deltaw2; deltaw1_ant=deltaw1; end end Se puede ver que en el modelo utilizado de la red Backpropagation se utilizo para acelerar el aprendizaje el termino de momentum al cual se le puso un coeficiente de .1 que luego de varias simulaciones se comprob que era el optimo. Entonces para realizar el modelo que se presento en la seccin 3 que es el siguiente: Se utilizo el siguiente programa : % Simulacin de solucin con red neuronal para

10

% la grua puente % definicion del modelo clear all g=9.8; % aceleracion de la gravedad b=1600; % constante de rozamiento del carro M=200; % masa del carro %Parametros de la red beta=.85; %entrena; load datos % SIMULACION DE COMPORTAMIENTO DE LA GRUA CON LA RED NEURONAL l=10; %Parametros que se tienen en la grua m=100; Tf=5; X0=[0;0;0;0]; gain=[0 0 0 0]; A=[0 1 0 0;0 b/M g*m/M 0;0 0 0 1;0 b/(M*l) (M+m)*g/(M*l) 0]; B=[0;1/M;0;1/(M*l)]; [tout,yout]=rk45('modelo41',Tf); % Identificacion de la planta mediante la red neuronal V1=[1 100*yout(:,3)']; % Aplico los datos a la capa de entrada de la Backpropagation V2=[1 tanh(beta.*V1*W1)]; V3=tanh(beta.*V2*W2); l_red=V3(1)*4.5+5.5; % longitud que identifico la red m_red=V3(2)*45+55; %masa de la carga que identifico la red A_red=[0 1 0 0;0 b/M g*m_red/M 0;0 0 0 1;0 b/(M*l_red) (M+m_red)*g/(M*l_red) 0];

11

B_red=[0;1/M;0;1/(M*l_red)]; % Calculo las ganancias con que realimento las variables de estado P=[0 7.92 3+.5i 3.5i]; % Fijo el lugar donde quiero los polos gain=acker(A_red,B_red,P); X0=yout(length(yout(:,1)),1:4)'; [tout2,yout2]=rk45('modelo41',45); salida=[yout;yout2]; tiempo=[tout;tout(length(tout)).*ones(length(tout2),1)+tout2]; figure (1) plot(tiempo,salida(:,1),'b',tiempo,salida(:,2),'r'); title('Posicion y velocidad del carro para m=100kg y l=10m con Backpropagation') figure(2) plot(tiempo,salida(:,3),'m',tiempo, salida(:,4),'g') title(' angulo y velocidad angular para m=100kg y l=10m con Backpropagation') Aqu se puede ver si se sigue el programa que en la fase de entrenamiento se graba la matriz de los pesos de la red en un archivo para no tener que hacer un entrenamiento cada vez que cambiaba el modelo. Entonces durante 5 segundos se hace evolucionar el sistema con la red a lazo abierto y se va muestreando el ngulo. Luego de esto se ponen estos datos en la entrada de la red y esta da como resultado un m y l que aprendi en la fase de entrenamiento. Con estos resultados se calcula el controlador , se cierra el lazo (para esto se utiliza el modelo41 que es el mismo que el modelo4 pero tiene una ganancia de realimentacion para cada variable de estado. Apndice B Modelo de Schmajuk DiCarlo El modelo SD consiste en un set de ecuaciones diferenciales que representan cambios en los valores de la actividad neuronal y conectividades en funcin del tiempo. Este modelo se muestra en las figura B.1 Capa oculta Figura B.1 Los componentes de la red son los siguientes 12

1. ShortTerm Memory (STM) Traces Estos trminos se definen como :

B.1 donde representa el decaimiento pasivo de los STM de , representa la relacin de incremento de , y la constante es el mximo valor posible de . 2. Actividad Neuronal Las neurona j de la capa oculta es activada por los STM de los diferentes en proporcin a sus pesos sinpticos:

B.2 donde representa los pesos sinpticos entre los STM de la entrada i y la neurona de la capa oculta j. La salida de la capa oculta es una sigmoidea dada por :

B.3 Se asume que las neuronas de la capa oculta esta activas solo cuando hay entradas presentes, esto es si . La salida de las neuronas de entrada esta dada por

B.4 Los autores asumen que , lo cual da una ventaja a las neuronas de la capa oculta, frente a las que vienen directamente de la entrada, para calcular la salida. 3. Pesos sinpticos entradasalida

13

Cambios en las pesos sinpticos entre la entrada i y la salida, , esta dados por una regla delta modificada

B.5 Por la ecuacin B.5, cambia solamente cuando esta activa y el error de la salida es distinto de 0. El error en la salida esta dado por

B.6 donde , y esto es, la prediccin agregada de US basada sobre todos los nodos asociados con US, diferentes de , incluyendo los pesos sinpticos de la capa oculta. Por la ecuacin B.6 esta linealmente controlado por la prediccin local individual de la salida (US), , y la prediccin agregada de US, . 4. Pesos sinpticos de la salida relacionados a la capa oculta. Cambios en los pesos sinpticos de la neurona j de la capa oculta y la salida estn dados tambin por una regla delta modificada:

B.7 Por la ecuacin B.7, cambia solo cuando esta activa y es distinta de 0. El error en la salida esta dado por:

B.8 donde , que es la prediccin agregada de US basada en todos los nodos asociados con la salida (US), diferentes de , incluyendo los pesos sinpticos entradasalida. Se puede notar que los errores

14

y usados en las ecuaciones B.6 y B.7 son idnticos. 5. Pesos sinpticos de la capa oculta. Cambios en los pesos sinpticos entre la entrada i y la neurona j de la capa oculta, , esta dado por la regla delta modificada :

B.9 Por la ecuacin B.9, cambia solo cuando esta activa y el error de la capa oculta , , es distinto de 0. El error de la capa oculta , esta dado por:

B.10 donde , que es la prediccin agregada de US basada en todos los nodos asociados con la salida. Los autores remarcan que esta ecuacin describe un proceso biolgico real que se lleva a cabo en el cerebro. Esta seal de error , descrita por la ecuacin B.10, es similar a la seal de error para las capas ocultas usado por Rumelhart (1986) en el que este es proporcional a (a) el valor de el peso sinptico de la neurona de salida relacionada con la capa oculta y (b) el error en la salida (en este caso hay solo un error de salida). La ecuacin B.10, sin embargo difiere de la ecuacin original de la Backpropagation en que, en vez de incluir la derivada de la funcin de activacin, esta incluye simplemente la funcin de activacin , . Esto trae como ventaja que pueda ser fsicamente realizable ya que el error de la capa oculta puedo generarlo con una red neuronal, pero trae tambin como desventaja que aparecen en el sistema mnimos locales, los cuales pueden ser molestos. Para una informacin mas detallada con respecto a este modelo se recomienda el siguiente paper: Stimulus Configuration, Classical Conditioning, and Hippocampal Function, Nestor A. Schmajuk and James J. DiCarlo, Northwestern University, Psychological Review, 1992, Vol 99, No. 2, 268305 Apndice C Simulacin del puente gra mediante una red SD modificada

15

El modelo utilizado para la simulacin en este caso es similar al utilizado para la red Backpropagation explicado en el Apndice A. Las diferencias estn en la fase de entrenamiento de la red Neuronal SD que tiene una arquitectura diferente a la Backpropagation y la misma esta explicada en el Apndice B. Veamos primero como se realiza el entrenamiento de la red. Programa para entrenar la red SD modificada %Fase de entrenamiento de la red SD % Cargo los datos de entrada para entrenar a la red Tf=5; X0=[0;0;0;0]; for l=1:1:10 m=60; A=[0 1 0 0;0 b/M g*m/M 0;0 0 0 1;0 b/(M*l) (M+m)*g/(M*l) 0]; B=[0;1/M;0;1/(M*l)]; [tout,yout]=rk45('modelo4',Tf); datos(l,:)=[l/10 m/100 (1+100*yout(:,3)')./2]; %Modificado *10 end Nneuronas=10; % Cantidad de neuronas en la capa oculta [Ncasos,Nentradas]=size(datos); Nentradas=Nentradas2; % Inicializo la matriz de pesos de la primer red W1=rand(Nentradas,Nneuronas)/10; Vs1=rand(Nentradas,1)/10; Vn1=rand(Nneuronas,1)/10; % Inicializo el momemtum momW1=.99; momVs1=.99; momVn1=.99;

16

deltaW_ant1=zeros(size(W1)); deltaVs_ant1=zeros(size(Vs1')); deltaVn_ant1=zeros(size(Vn1')); % Aplico los datos que tengo varias veces para entrenar la red for k=1:100 for i=1:Ncasos entrada=datos(i,3:length(datos(i,:))); %Pongo los datos en la entrada sum1=logsig(entrada*W1); %Calculo la suma de la capa oculta an1=2.5*sum1.^(1.5)./(sum1.^(1.5)+.3535534); %Calculo la salida de la capa oculta B1=[entrada an1]*[Vs1;Vn1]; %Calculo la salida de la red error1=datos(i,1)B1; %Calculo el error de la estimacion deltaVs1=.005*(datos(i,1)B1)*entrada.*(1abs(Vs1'))+momVs1*deltaVs_ant1; %Saco los delta de los pesos aplicando momentum deltaVn1=.005*(datos(i,1)B1)*an1.*(1abs(Vn1'))+momVn1*deltaVn_ant1; EH1=1./(1+exp(5*(datos(i,1)B1)*an1.*Vn1')).5; deltaW1=.5*entrada'*EH1.*(1abs(W1))+momW1*deltaW_ant1; W1=W1+deltaW1; Vs1=Vs1+deltaVs1'; Vn1=Vn1+deltaVn1'; deltaW_ant1=deltaW1; deltaVs_ant1=deltaVs1; deltaVn_ant1=deltaVn1; end end sdverif1; resultado1 % Cargo los datos para entrenar a la segunda red 17

Tf=5; X0=[0;0;0;0]; for m=10:10:100 l=7.5; A=[0 1 0 0;0 b/M g*m/M 0;0 0 0 1;0 b/(M*l) (M+m)*g/(M*l) 0]; B=[0;1/M;0;1/(M*l)]; [tout,yout]=rk45('modelo4',Tf); datos(m/10,:)=[l/10 m/100 (1+100*yout(:,3)')./2]; %Modificado *10 end % Inicializo la matriz de pesos de la segunda red W2=rand(Nentradas,Nneuronas)/10; Vs2=rand(Nentradas,1)/10; Vn2=rand(Nneuronas,1)/10; % Inicializo el momemtum momW2=.99; momVs2=.99; momVn2=.99; deltaW_ant2=zeros(size(W2)); deltaVs_ant2=zeros(size(Vs2')); deltaVn_ant2=zeros(size(Vn2')); % Aplico los datos que tengo varias veces para entrenar la red for k=1:100 for i=1:Ncasos entrada=datos(i,3:length(datos(i,:))); %Pongo los datos en la entrada sum2=logsig(entrada*W2); %Calculo la suma de la capa oculta an2=2.5*sum2.^(1.5)./(sum2.^(1.5)+.3535534); %Calculo la salida de la capa oculta

18

B2=[entrada an2]*[Vs2;Vn2]; %Calculo la salida de la red error2=datos(i,2)B2; %Calculo el error de la estimacion deltaVs2=.005*(datos(i,2)B2)*entrada.*(1abs(Vs2'))+momVs2*deltaVs_ant2; %Saco los delta de los pesos aplicando momentum deltaVn2=.005*(datos(i,2)B2)*an2.*(1abs(Vn2'))+momVn2*deltaVn_ant2; EH2=1./(1+exp(5*(datos(i,1)B2)*an2.*Vn2')).5; deltaW2=.5*entrada'*EH2.*(1abs(W2))+momW2*deltaW_ant2; W2=W2+deltaW2; Vs2=Vs2+deltaVs2'; Vn2=Vn2+deltaVn2'; deltaW_ant2=deltaW2; deltaVs_ant2=deltaVs2; deltaVn_ant2=deltaVn2; end end sdverif2; resultado2 Como se puede ver el mecanismo de entrenamiento es similar al de la Backpropagation, salvo que aqu se estn utilizando 2 redes SD ya que este modelo permite una sola salida. Tambin se puede notar en el programa la utilizacin de un termino de momentum que acelera el aprendizaje de la red SD con respecto a una red que no tiene momentum. Entonces para que se pueda apreciar esta mejora vamos a graficar el error de una de las entradas a aprender por la red con respecto a las veces que se hace ingresar esa entrada para que la red modifique sus pesos sinapticos. El primer grfico corresponde al error cuando no utilizamos el termino de momentum para modificar los pesos sinapticos de la red es decir con el modelo original de Schmajuk y DiCarlo. Este error es el de una entrada sola tomada al azar sobre el total de entradas que tiene que aprender la red que en la simulacin son 10 Y con los trminos de momentum Es notable como se acelera el proceso de aprendizaje con la incorporacin de estos trminos lo cual es muy 19

importante para este problema particular de la gra ya que va a reducir mucho el tiempo de entrenamiento que era uno de los problemas mas grandes que haba con el caso de la Backpropagation. m

20

21

x F m l Capa de salida Capa oculta Capa de entrada Cr 22

Vh Cs1 Cs2 Cx Vs Vn

23

También podría gustarte