Memoria del PFC 'Síntesis Dimensional de Mecanismos...

40
SDMAG SÍNTESIS DIMENSIONAL DE MECANISMOS MEDIANTE ALGORITMO GENÉTICO MEMORIA DEL PFC José Hidalgo Díaz

Transcript of Memoria del PFC 'Síntesis Dimensional de Mecanismos...

SDMAG

SÍNTESIS DIMENSIONAL DE MECANISMOS MEDIANTE ALGORITMO GENÉTICO

MEMORIA DEL PFC

José Hidalgo Díaz

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

ÍNDICE

1. INTRODUCCIÓN Pág. 1.1 SÍNTESIS DIMENSIONAL DE MECANISMOS . . . . . . 3 1.2 OPTIMIZACIÓN. MÉTODOS HEURÍSTICOS . . . . . . 4 1.3 EL ALGORITMO GENÉTICO . . . . . . . . . . . . . . 5

2. TRABAJO PREVIO

2.1 MÉTODOS COMPUTACIONALES . . . . . . . . . . . . 8 2.2 COMPUTACIÓN EVOLUTIVA . . . . . . . . . . . . . . 9

3. FORMULACIÓN DEL PROBLEMA

3.1 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . 11 3.2 DESARROLLO DEL AG APLICADO . . . . . . . . . . . 12

4. METODOLOGÍA EMPLEADA

4.1 COORDENADAS NATURALES . . . . . . . . . . . . . 15 4.2 TIPOS DE BARRA Y ECUACIONES DE RESTRICCIÓN . 16 4.3 CODIFICACIÓN . . . . . . . . . . . . . . . . . . . . 19 4.4 MONTAJE DE LAS ECUACIONES DE RESTRICCIÓN . . 21 4.5 EL PROBLEMA DE ENSAMBLAJE . . . . . . . . . . . 22 4.6 CORRELACIÓN TEMPORAL Y REAJUSTE . . . . . . . . 23 4.7 DIMENSIONES DEPENDIENTES . . . . . . . . . . . . 24 4.8 ANÁLISIS FINO. . . . . . . . . . . . . . . . . . . . 24 4.9 REDONDEO DE LAS DIMENSIONES FINALES . . . . . 25

5. SDMAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6. RESULTADOS Y CONCLUSIONES

6.1 EJEMPLO 1 . . . . . . . . . . . . . . . . . . . . . . 28 6.2 EJEMPLO 2 . . . . . . . . . . . . . . . . . . . . . . 31 6.3 EJEMPLO 3 . . . . . . . . . . . . . . . . . . . . . . 35 6.4 CONCLUSIONES. . . . . . . . . . . . . . . . . . . . 37

7. PLANTEAMIENTOS FUTUROS . . . . . . . . . . . . . . . . . 39 8. REFERENCIAS. . . . . . . . . . . . . . . . . . . . . . . . . 40

Memoria del PFC - José Hidalgo Díaz 2

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

1. INTRODUCCIÓN 1.1. SÍNTESIS DIMENSIONAL DE MECANISMOS El interés por la Cinemática o Ciencia del Movimiento tiene su origen en máquinas tan antiguas como la civilización humana. Sin embargo, el interés por el estudio de los mecanismos tiene su mayor impulso en el siglo XVIII, tras la invención de la máquina de vapor y comienzo de la Era Industrial. Si bien, al principio, los mecanismos eran fabricados y estudiados de manera particular e individualizada, pronto se vio la necesidad de sistematizar su desarrollo. Así surgieron métodos generales de análisis geométrico y de clasificación de diversos tipos de mecanismos. Muchas de esas ideas forman la parte fundamental de la moderna teoría cinemática de hoy. No obstante, la síntesis cinemática sigue siendo, en la actualidad, un reto importante. Tanto es así, que, frente al gran desarrollo experimentado en el análisis de mecanismos, no se tiene aún ningún método racional y sistemático para la síntesis. Apenas existen unos pocos métodos analíticos de síntesis para algunos casos particulares. Otros estudios se han centrado en algo menos práctico, pero necesario como punto de partida: demostrar la existencia de ciertos tipos de mecanismos capaces de desarrollar ciertas tareas. Encontrar el tipo de mecanismo que mejor realiza una tarea determinada es el objetivo de la Síntesis de Tipo. Materializar el mismo, dando para ello sus dimensiones, es tarea de la Síntesis Dimensional. La primera de ellas, se alimenta en gran medida de la experiencia y creatividad del diseñador. La segunda requiere de la anterior y del cálculo matemático para dar resultados. Es en el cálculo donde se encuentra la mayor traba. Si bien algunos casos sencillos pueden resolverse mediante unas pocas ecuaciones [1] o haciendo uso de métodos gráficos [2], un problema más complejo se convierte en algo casi inabordable. Recientemente, y tras el fantástico desarrollo de la computación, el diseñador encuentra la ayuda necesaria para afrontar el reto de diseñar mecanismos más complejos, o de agilizar el desarrollo de otros más sencillos bajo la fuerte exigencia que el mercado le demanda. Surge así la aplicación de métodos de optimización a la Síntesis Dimensional.

Memoria del PFC - José Hidalgo Díaz 3

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

1.2. OPTIMIZACIÓN. MÉTODOS HEURÍSTICOS Se han venido usando técnicas analíticas y gráficas para el problema de la síntesis dimensional de mecanismos (Freudenstein [3], 1955; Suh y Radcliffe [4], 1978; Erdman y Sandor [5], 1991). El uso de métodos gráficos se ha limitado a problemas sencillos, mientras que los métodos analíticos recurren a expresiones algebraicas que requieren una resolución compleja. En general, la síntesis dimensional es un problema complicado, al ser multidimensional, no lineal y tener, en algunos casos, un espacio solución discontinuo. Cuando se plantea su resolución numérica, ésta se convierte en un problema de optimización con una función objetivo multimodal (posee más de un óptimo dentro del espacio solución). Debido a estas características, se hacen recomendables métodos heurísticos (de búsqueda). Los métodos heurísticos se pueden dividir en métodos de búsqueda directa y métodos de búsqueda basada en el gradiente de la función objetivo. En los primeros, se propone una posible solución factible y se va perturbando ligeramente hasta que se obtiene una mejor solución. En los basados en el gradiente, el valor de éste es encontrado mediante técnicas de diferencias finitas. Estos métodos arrojan buenos resultados, pero emplean un gran tiempo computacional. Ambos son deterministas y encuentran una solución concreta dentro del espacio de las soluciones factibles. Una alternativa a los métodos deterministas son los métodos probabilísticos, que van evaluando soluciones, aceptando incluso algunas relativamente malas en función de una cierta probabilidad. También se conocen como métodos de escalada, por tener la capacidad de ir escapando de óptimos locales hasta alcanzar un óptimo global. Pertenecen a este grupo el Recocido Simulado (Kirkpatrick et al. [6], 1983) y el Algoritmo Genético (Holland [7], 1975). El origen del Recocido Simulado (del inglés, Simulated Annealing) está en la Física Estadística. Los procedimientos físicos de solidificación controlada consisten en calentar un sólido hasta que se funde, y seguidamente, ir enfriándolo de forma que cristalice en una estructura perfecta, sin malformaciones locales. En el Recocido Simulado se parte de una solución válida a la que se le provocan pequeñas mutaciones aleatorias. A medida que avanza el algoritmo, éste cada vez será más exigente en cuanto a las soluciones aceptadas. En la analogía con la solidificación física, se trata de tener un cuerpo (problema) a alta temperatura (admitiendo soluciones muy diversas a pesar de ofrecer malos resultados) e ir disminuyendo la temperatura (aumentando la exigencia del algoritmo) de forma que termine por solidificarse según la forma deseada (ofreciendo el mejor resultado).

Memoria del PFC - José Hidalgo Díaz 4

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

1.3. EL ALGORITMO GENÉTICO Es un algoritmo de búsqueda probabilística, basado en la mecánica de la genética y la evolución natural. Un algoritmo genético puede resolver problemas que aún no están completamente caracterizados o son demasiado complejos para permitir una completa caracterización. Es decir, problemas para los cuales no necesariamente conocemos cómo llegar a una buena solución, pero sí podemos evaluar por alguna medida cuantificable el valor relativo de una solución (o al menos el valor relativo de una posible solución respecto a otra). El concepto básico de un AG es la codificación de una solución posible como una serie de parámetros. Tal conjunto de valores, es tratado como el genoma o material genético de una solución individual. Se crea al azar una población (conjunto de soluciones candidatas). Los elementos de dicha población evolucionan, generación tras generación, bajo el principio de supervivencia del más apto. Los mecanismos de interrelación entre los individuos son el cruce y la mutación. El AG explota eficientemente la información histórica para especular sobre nuevos puntos de búsqueda del óptimo. Además no está limitado por suposiciones restrictivas acerca del espacio de búsqueda (suposiciones acerca de continuidad, existencia de derivadas, unimodalidad de la función objetivo, etc.). Los aspectos fundamentales que caracterizan a un AG respecto a otros métodos de búsqueda se listan a continuación: -Trabaja con la codificación del conjunto de parámetros, no con los parámetros. -La búsqueda se realiza a partir de un conjunto de soluciones, no a partir de una solución. -Se sirven de la función objetivo, no de sus derivadas u otro conocimiento adicional. -Sus reglas de transición son probabilísticas, no deterministas. La principal aptitud de los algoritmos genéticos es el paralelismo en la búsqueda. Mientras que otros métodos buscan una solución, el AG busca simultáneamente muchas soluciones, tantas como soluciones factibles evolucionen dentro de la población considerada. Esta es la manera en la que explora el espacio de búsqueda, pasando por varios óptimos locales. La eficiencia con la que se explote esta cualidad del AG será la que determine la eficacia del mismo. Los siguientes aspectos son fundamentales a la hora de comprender el funcionamiento de un algoritmo genético: Codificación del Dominio: para un algoritmo genético lo primero que se requiere es determinar en qué espacio se encuentran las posibles soluciones al problema que se pretende resolver. Seguidamente, habrá que determinar cómo se forma el código genético de los individuos de la población, así como su codificación. Así habrá codificaciones binarias (los cromosomas serán 0’s y 1’s, números reales, etc.). En definitiva, será necesario establecer un alfabeto de codificación de los posibles valores cromosómicos, que al combinarse ordenadamente, formen la información genética del individuo.

Memoria del PFC - José Hidalgo Díaz 5

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

Evaluación de la Población: en la naturaleza hay individuos más hábiles que otros para sobrevivir. El grado de adaptación (o fitness) informa de la aptitud de un individuo en el contexto de la población en la que se halla. La medida del fitness es tarea de la función de evaluación particular de cada problema de optimización. Encontrar dicha función y el modo de evaluarla implican un cierto conocimiento del problema a tratar. Su evaluación puede no ser sencilla (puede incluso cambiar en cada generación) y es, de hecho, lo que en la mayoría de los casos consume más tiempo en la ejecución de un algoritmo genético. Selección: una vez calificados todos los individuos de una generación, el algoritmo debe, al igual que lo hace la naturaleza, seleccionar a los individuos mejor calificados, mejor adaptados al medio. De cómo se realice la selección, dependerá del tipo de AG que estemos considerando. Algunos de los tipos más comunes son:

-AGS: AG Simple, en el que los individuos son seleccionados con probabilidad proporcional a su calificación. -AGE: AG Elitista. Cierto número de los mejores individuos es mantenido en la población. -AG de Selección Determinista: Se intenta enfatizar la variedad genética reforzando el cruzamiento entre individuos predefinidos. La estrategia particular de cruce determina el modelo. Así se tienen por ejemplo, los modelos de Nietzsche y de Vasconcelos [8]

En cualquier caso, se debe cuidar la selección para no caer en una convergencia prematura del algoritmo. Cruzamiento: en la naturaleza el código genético de los padres de un individuo se mezcla para producir gametos, cuyo contenido genético es híbrido, es decir, una mezcla. De esta manera es posible que un individuo legue a sus descendientes las características mezcladas de sus propios padres. Dentro del algoritmo, si estas características heredadas le confirieron a sus ancestros una alta aptitud de supervivencia, entonces este individuo será, con alta probabilidad, un individuo exitoso en su población. En un AG, el cruzamiento sólo es una forma de intercambiar la información contenida en los cromosomas de los individuos a hibridar. Dependiendo del modo de efectuar dicho intercambio se hablará de cruzamiento en un punto, en dos puntos y de cruzamiento uniforme. Mutación: Algunas veces, muy pocas de hecho, la ADN-polimerasa (la enzima encargada de replicar el código genético), se equivoca y produce una mutación, una alteración accidental en el código genético de los seres vivos. En un AG, el proceso de mutación es necesario para generar nuevos individuos, que exploren regiones del dominio del problema que probablemente no se han visitado aún. Una vez conocidos algunos aspectos comunes de todo AG, puede concluirse que el problema a resolver sólo determina la función de evaluación y la manera de codificar las soluciones posibles (la semántica de los códigos genéticos de los individuos). El resto de los subprocesos que constituyen el algoritmo son independientes y universalmente aplicables.

Memoria del PFC - José Hidalgo Díaz 6

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

Para fijar conceptos, se expone a continuación el esquema del Algoritmo Genético Simple (AGS) propuesto por Holland [7] y retomado posteriormente por Goldberg [9]. Se ha supuesto, por sencillez un alfabeto binario para los cromosomas:

1. Decidir cómo codificar el dominio del problema. 2. Generar un conjunto aleatorio (población inicial) de N posibles soluciones codificadas

del problema. A ésta se le llamará la población actual. 3. Calificar cada posible solución (individuo) de la población actual. 4. Seleccionar dos individuos de la población actual con una probabilidad proporcional a su

calificación. 5. Lanzar una moneda al aire (con probabilidad Pc cae cara). 6. Si cayó cara, mezclar los códigos de los dos individuos seleccionados para formar dos

híbridos, a los que llamaremos nuevos individuos. 7. Si cayó cruz, llamamos a los individuos seleccionados nuevos individuos. 8. Por cada bit de cada nuevo individuo lanzar otra moneda al aire (con probabilidad Pm

cae cara). 9. Si cae cara, cambiar el bit correspondiente por su complemento. 10. Si cae cruz, el bit permanece inalterado. 11. Incluir a los dos nuevos individuos en la población futura. 12. Si la población futura tiene ya N individuos, llamarla población actual y regresar al paso

3, a menos que se cumpla alguna condición de terminación. 13. Si no, regresar al paso 4.

El término “lanzar una moneda al aire” se usa para nombrar un experimento de Bernoulli (aquel en el que pueden ocurrir exclusivamente dos eventos: uno con probabilidad p y otro con probabilidad 1-p). Es decir, el lanzamiento de una moneda extraña en la que no necesariamente ambas caras son equiprobables. Al tipo de selección proporcional usado en el paso 4 se le conoce también como método de selección por ruleta. Se suman las calificaciones de todos los individuos de la población y se hace corresponder la longitud de la circunferencia a dicha suma. Luego se asignan longitudes parciales en función de cada calificación individual. De esta forma al girar dicha ruleta imaginaria, la lengüeta se parará con mayor probabilidad en las zonas correspondientes a los individuos más aptos.

Memoria del PFC - José Hidalgo Díaz 7

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

2. TRABAJO PREVIO 2.1 MÉTODOS COMPUTACIONALES Existe una gran variedad de métodos de optimización que, implementados computacionalmente, permiten resolver infinidad de problemas de ingeniería. Para cada caso se han propuesto varios métodos y cada método se ha usado para resolver más de un problema. La idoneidad de un método de optimización aplicado a algún tipo de problema, es a menudo contestable, viniendo a ser el diseñador el que subjetivamente, se decante por uno u otro de los que se le ofrecen. Frente a los métodos tradicionales de optimización se vienen estudiando recientemente los llamados Bio-inspirados, por nacer del estudio de la naturaleza. En éstos trata de crearse un sistema matemático que copie, en cierta medida, los mecanismos presentes en la naturaleza. Así surgen varios métodos:

Método Inspiración Redes Neuronales (RN) Neuronas biológicas Algoritmos Genéticos (AG) Evolución Natural Lógica Difusa o Fuzzy Logic (FL) Proceso Lingüístico Sistemas Expertos (SE) Mecanismos de Inferencia

En lo referente a la Síntesis Dimensional de Mecanismos se han usado con éxito RN y AG, no disponiéndose de ninguna información relativa a trabajos realizados usando FL y SE. Los trabajos realizados con RN se han encaminado a aprovechar la capacidad de interpolación de una red neuronal. Se han aplicado al tipo Síntesis de Trayectoria. Para ello se ha entrenado una RN para un mecanismo concreto (4 barras), usando una batería apropiada de casos resueltos. La red obtenida se usa posteriormente de manera inversa. Así, se le suministra la curva deseada y ésta encuentra las relaciones que deben tener las dimensiones del mecanismo que mejor describe la trayectoria prescrita. Se usan Descriptores de Fourier para extraer la información de la trayectoria (que debe ser cerrada). Para más información consúltese [10]. En cuanto al uso de AG aplicados al problema que nos ocupa aquí, los trabajos conocidos se han centrado en el estudio del mecanismo de 4 barras. Se han propuesto técnicas de Evolución Diferencial (ED), que introducen métodos de selección más novedosos que los de los AG tradicionales. Los trabajos previos realizados mediante la aplicación de estas técnicas evolutivas (AG y ED) se detallan con mayor profusión en el siguiente apartado.

Memoria del PFC - José Hidalgo Díaz 8

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

2.2 COMPUTACIÓN EVOLUTIVA Se reseñan aquí algunos trabajos basados en algoritmos de inspiración evolutiva, como son los Algoritmos Genéticos y la Evolución Diferencial, introducida por Storn y Price [11]. J. A. Cabrera, A. Simón y M. Prado, del Departamento de Ingeniería Mecánica de la Universidad de Málaga [12], completaron un proyecto de implementación de un AG aplicado a la Síntesis Óptima de Mecanismos. Los autores estudiaron el caso de síntesis de trayectoria para el cuadrilátero articulado mostrado en la figura, donde C es el punto trazador:

θ1

x1r2

r3r4

r1

rcx

rcy

Y

X

C

y1

Para ello, usaron los 9 valores cromosómicos mostrados (x1, y1, θ1, r1, r2, r3, r4, rcx, rcy), codificados como números reales. Para la mayoría de los ejemplos ilustrados, se usó una población de 100 individuos. Se utilizó una estrategia de evolución diferencial como medio de selección y cruzamiento. Cada nuevo individuo propuesto (V) se calculó de la forma:

V = Xbest

+ F·(Xr1

– Xr2

)

donde Xbest es el mejor individuo, Xr1 y Xr2 dos individuos elegidos al azar y F un número real entre 0.4 y 0.6 que controla la perturbación introducida. El nuevo individuo se acepta si resulta ser mejor que los individuos que lo generaron.

Memoria del PFC - José Hidalgo Díaz 9

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

La mutación se realiza barriendo toda la población y eligiendo cromosomas a mutar en función de una cierta probabilidad especificada. El nuevo cromosoma mutado es el resultado de sumar o restar una cantidad aleatoriamente elegida dentro del rango de variación correspondiente a dicho cromosoma. Basándose en el trabajo iniciado por J. A. Cabrera, A. Simón y M. Prado, se implementan sus resultados en un programa informático desarrollado dentro de su mismo departamento. Se trata del programa WinMecC* (uso bajo licencia remunerada), que en su versión 4.0 incluía un módulo para la síntesis de generación de trayectorias y funciones. Los responsables del mencionado programa son F. Nadal, A. Bataller y A. Simón. Otros trabajos se han centrado en problemas más específicos de síntesis, como el realizado por Kerr-Jia Lu y Sridhar Kota, del Departamento de Ingeniería Mecánica de la Universidad de Míchigan. Bajo el título Compliant Mechanism Synthesis for Shape-Change Applications, sus autores han planteado la síntesis de estructuras deformables adaptativas. Más concretamente buscaron optimizar el perfil de las alas de un avión para minimizar el consumo de combustible, conjugando el uso de estrategias evolutivas junto con otras técnicas diversas. (*) WinMecC es un programa de simulación de mecanismos planos con un grado de libertad, que ha sido desarrollado por el Área de Ingeniería Mecánica de la Universidad de Málaga con las últimas herramientas de programación orientadas a objetos y con un objetivo fundamentalmente docente. La aplicación realiza el análisis cinemático y dinámico de mecanismos planos con cualquier número de eslabones. La versión actual (4.3) no incluye el módulo de síntesis mencionado.

Memoria del PFC - José Hidalgo Díaz 10

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

3. FORMULACIÓN DEL PROBLEMA 3.1. OBJETIVOS Se quiere utilizar un algoritmo genético para la síntesis dimensional óptima de mecanismos planos de un grado de libertad con cualquier número de barras y que cumplan ciertos objetivos. Más concretamente, se busca conseguir los siguientes tipos de síntesis: -Generación de Trayectoria -Generación de Movimiento -Generación de Función Se describen a continuación la definición de los tres problemas anteriores: Generación de Trayectoria: se busca que un punto del mecanismo describa una trayectoria lo más próxima posible a la deseada, siendo definida ésta a través de una serie de puntos de precisión asociados a otras tantas posiciones de la barra motora. Generación de Movimiento: se quiere que un punto del mecanismo describa una trayectoria lo más próxima posible a la deseada. Además se pretende que el elemento al que pertenece el mencionado punto, mantenga unas orientaciones concretas. Se deben especificar los puntos de la trayectoria y las rotaciones requeridas a través de una serie de puntos de precisión asociados a otras tantas posiciones de la barra motora. Generación de Función: se desea que la barra de salida del mecanismo alcance una serie de posiciones especificadas para otras tantas posiciones prescritas para la barra motora. Se pretende implementar lo anterior mediante una aplicación informática multiplataforma. Ésta partirá de unos datos de entrada (topología del mecanismo a sintetizar y tarea prescrita, básicamente) y mediante un AG será capaz de encontrar el mecanismo sintetizado. Como resultado, el programa dará las dimensiones del mecanismo solución, la aptitud del mismo y la desviación de la tarea desarrollada por éste respecto a la originalmente prescrita.

Memoria del PFC - José Hidalgo Díaz 11

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

3.2. DESARROLLO DEL AG APLICADO Se va a utilizar un algoritmo genético simple con elitismo parcial. El diagrama básico de flujo para el mismo se muestra a continuación:

FIN

ELITISMO

POBLACIÓN FUTURA

CRITERIODE PARO

CRUCE Y MUTACIÓN

EVALUACIÓN

POBLACIÓN INICIAL Conocida la topología del mecanismo podemos caracterizar a éste mediante sus dimensiones características (xi). Sea Dim la cantidad total de las mismas. De esta forma es posible representar un mecanismo concreto mediante un vector formado por sus dimensiones: X = {x1, x2, ..., xDim} Del total de dimensiones del mecanismo (Dim) puede haber algunas cuyos valores sean conocidos, y por tanto no deberían ser considerados al construir un conjunto de soluciones factibles. Por contra, habrá otras cuyos valores serán precisamente los que queremos optimizar mediante el proceso evolutivo. Sea Evol (Evol≤Dim) el total de dichas dimensiones, a las cuales llamaremos dimensiones evolutivas. Definimos unos rangos de variación (Ri) para cada una de las variables evolutivas, obteniéndose así un subespacio de búsqueda apropiado para el problema: Ri = {míni, máxi}, 1<i<Evol A continuación se genera una población inicial de N mecanismos de forma aleatoria. Para ello se eligen al azar los valores de cada dimensión evolutiva dentro de sus rangos establecidos.

Memoria del PFC - José Hidalgo Díaz 12

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

La población inicial (j=0) estará constituida por N vectores de dimensión Evol cada uno: MecActi

j=0 = {c1i, c2

i, ..., cEvoli},donde 1<i<N, mínk<ck

i<máxk, 1<k<Evol Llamamos población actual a dicha población. Evaluamos la población actual. Para ello se ensambla cada mecanismo de la población en cada una de las posiciones prescritas. A cada mecanismo se le asigna un valor de aptitud o fitness: Fi, 1<i<N El valor de F dependerá del tipo de síntesis elegido: -Generación de Trayectoria: F será la suma de las distancias euclídeas entre las posiciones prescritas y las posiciones alcanzadas para todos los puntos de precisión. -Generación de Movimiento: F será la suma de las distancias euclídeas entre los puntos prescritos y alcanzados de la trayectoria más las desviaciones angulares corregidas: distancia entre los extremos de los vectores que representan al segmento de rotación prescrita en sus posiciones prescrita y alcanzada (suponiendo sus orígenes coincidentes). -Generación de Función: si la barra de salida es una corredera, F es la suma de las distancias euclídeas entre posiciones prescritas y alcanzadas. Si la barra de salida no es una corredera, F será la suma de las desviaciones angulares de las posiciones alcanzadas respecto de las prescritas. Los mecanismos que resultasen rotos obtendrán una penalización en función de su grado de rotura (número de posiciones prescritas no ensamblables). La obtención de F se realiza como sigue: 1. Se calcula un Fi

p (provisional) para cada mecanismo, considerando sólo sus posiciones NO rotas.

2. Se determina el máximo de los valores anteriores entre la población (FMAX) 3. Se asigna un fitness definitivo (Fi, 1<i<N) a cada mecanismo. Si Pos es el número de

posiciones prescritas y NROTi es el número de roturas:

• Si NROTi =0: Fi = Fip

• Si NROTi < Pos: Fi = Fip + NROTi · FMAX

• Si NROTi = Pos: Fi = FMAX + NROTi · FMAX

Se ordena la población de acuerdo a su aptitud (de menor a mayor valor de Fi). A continuación se construye la Población Futura: primero se almacenan en ésta los mejores mecanismos (en un número igual a Élite individuos). Después se completa la población con los híbridos resultantes tras el proceso de cruce y mutación. Nótese que N debe ser tal que (N–Élite) sea par.

Memoria del PFC - José Hidalgo Díaz 13

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

El cruzamiento consiste en seleccionar 2 individuos procreadores entre la población actual. Éstos darán lugar a 2 híbridos:

1. Seleccionar 2 progenitores (MecActP1 y MecActP2) mediante el método de la ruleta. 2. Dichos individuos serán cruzados con probabilidad Pc (probabilidad de cruce). Si resulta

que deben cruzarse, se obtendrán 2 híbridos (Hibr1 e Hibr2). Cada cromosoma k de cada híbrido será:

ck

1=ckP2 con probabilidad p=0.5 (ck

1=ckP1 en caso contrario), para el Hibr1

ck2=ck

P1 con probabilidad p=0.5 (ck2=ck

P2 en caso contrario), para el Hibr2

con 1<k<Evol En el caso de que no deban cruzarse: Hibr1=MecActP1 e Hibr2=MecActP2

La mutación consiste en alterar los híbridos anteriores, tras lo que resultan los individuos mutados Mut1 y Mut2:

1. Se eligen 2 mecanismos al azar entre la población actual (MA y MB). Éstos serán la fuente de ruido para la mutación.

2. Cada cromosoma cki=1,2 de los híbridos cambiará su valor a c k

i=1,2 con probabilidad Pm (probabilidad de mutación) y conservará su valor con probabilidad 1-Pm:

c k

i=1,2= ckA + K·(ck

B - ckA), 1<k<Evol

donde K (constante de mutación) es un valor aleatorio entre 0 y Km En el caso de que algún c k

i=1,2 no perteneciera Rk, esto es, estuviera fuera de rango, se tomará c k

i=1,2= ckA como resultado de la mutación.

Los mecanismos resultantes tras la mutación se introducen en la población futura. Se realizan los procesos de cruce y mutación hasta que se completa la llamada población futura, tras lo cual se llama a ésta población actual, volviéndose a repetir los pasos desde la evaluación. Se incrementa el contador de generaciones transcurridas. Se repiten los pasos anteriores hasta que se completan el número de generaciones programadas, o mientras que no se cumpla el criterio de paro. El criterio de paro elegido consiste en comparar la diferencia entre el ajuste medio poblacional (FM) y el del mejor individuo (F0) de cada generación con una determinada cota, o bien el propio ajuste del mejor individuo. Si llamamos FitCota a dicho valor, el algoritmo se detendrá en uno de los siguientes casos: FM-F0<FitCota, o bien F0<FitCota El mejor individuo al término del algoritmo será la solución propuesta como óptima. La manera de implementar lo anterior, sobre todo en cómo se evalúan los individuos de la población, se expone en el siguiente apartado.

Memoria del PFC - José Hidalgo Díaz 14

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

4. METODOLOGÍA EMPLEADA Se detalla a continuación cómo se ha implementado el AG de manera concreta. Puede que el lector califique algunas técnicas o tratamientos utilizados como particularmente enrevesados o poco comunes. Se intentarán explicar éstos con detalle, justificándolos en la medida de lo posible. 4.1. COORDENADAS NATURALES Se usan Coordenadas Naturales [1] para tratar los mecanismos. Las principales ventajas de estas coordenadas son: definición simple y sistemática; ecuaciones de restricción fáciles de establecer y sencillas; sitúan a cada elemento con independencia de los demás; número de coordenadas reducido, generalmente intermedio al empleado por las coordenadas relativas y las de punto de referencia; inmediata interpretación geométrica de los resultados, más sencilla que en otras coordenadas. En el plano, las coordenadas naturales son coordenadas cartesianas de puntos de sólidos del mecanismo, que se denominarán puntos básicos (en adelante PB). Existen ciertas normas que deben respetarse a la hora de modelar un mecanismo plano en coordenadas naturales. Estas normas son:

• Cada sólido rígido debe contener, al menos, dos PBs, ya que en caso contrario no queda su posición definida.

• En cada articulación debe situarse un PB. De esta forma, los dos sólidos que se unen en ella comparten un punto, quedando así automáticamente impuesta la condición de par de rotación.

• En pares prismáticos deben existir dos PBs alineados con el eje del par, que sirvan para definir su recta de deslizamiento.

• Pueden utilizarse más PBs por conveniencia: definición de ángulos o distancias, puntos concretos de interés, etc.

Podemos clasificar los PBs por su carácter:

• PBs Fijos: serán aquellos cuya posición no varía en el movimiento del mecanismo. • PBs Incógnita: aquellos cuyas posiciones son desconocidas a priori, necesitándose

resolver las ecuaciones de restricción del mecanismo para fijarlos en el plano. • PBs Prescritos: aquellos cuyas posiciones están prescritas en el movimiento, por

pertenecer a la barra motora. También podemos hablar de PBs Libres: aquellos que no se conectan con ninguna otra barra distinta a la que pertenecen. Dichos puntos serán los habitualmente conocidos como Puntos de Interés o Puntos Trazadores en un problema de generación de trayectoria o de movimiento.

Memoria del PFC - José Hidalgo Díaz 15

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

4.2. TIPOS DE BARRA Y ECUACIONES DE RESTRICCIÓN Los tipos de barra que van a considerarse son: barras articuladas y correderas. Las primeras se caracterizan porque sus puntos básicos sólo permiten la articulación con otras barras del mecanismo. En cuanto a las correderas se van a considerar correderas articuladas y correderas rígidas. Una barra articulada puede tener 2,3,... puntos básicos. Para definir una barra articulada es necesario conocer una serie de distancias entre sus puntos básicos. Así, una barra biarticulada necesita una longitud, una triarticulada necesita 3 longitudes. En general, se puede definir un criterio que asigne un segmento orientado para cada longitud necesaria. Una barra articulada con NPB puntos básicos necesitará 2×(NPB-2) + 1 longitudes para su construcción: L1: Distancia entre PB1 y PB2

L2: Distancia entre PB2 y PB3

... LNPB: Distancia entre PBNPB y PB1

LNPB+1: Distancia entre PB1 y PB3

LNPB+2: Distancia entre PB1 y PB4

... L2×(NPB-2)+1: Distancia entre PB1 y PBNPB-1

En adelante, nos referiremos a las barras articuladas por la abreviatura BArt. En cuanto a la manera de incorporar los puntos trazadores dentro de una barra articulada, éstos se tratarán como un PB Libre adicional. Así, por ejemplo, si queremos disponer de un punto trazador montado sobre una barra biarticulada, deberemos disponer de una barra triarticulada. Dos de sus PBs permitirán la articulación ordinaria de la barra, el tercero de ellos será el punto trazador. Una corredera articulada (en adelante CArt) es una barra que tiene un único punto básico. Éste permite la conexión de la corredera con otras dos barras del mecanismo: una con la que se articula y otra sobre la que desliza. Si el deslizamiento se realiza sobre la barra fija, denominaremos a este tipo de barras correderas articuladas fijas (en adelante CArtF) y si el deslizamiento se produce sobre cualquier otra barra, correderas articuladas móviles (en adelante CArtM) Una corredera rígida (en adelante CRig) es una barra que tiene un único punto básico. Éste permite la conexión de la corredera con otras dos barras del mecanismo: una sobre la que desliza y otra a la que está unida rígidamente. Su dirección de deslizamiento define un cierto ángulo con la barra a la que se une. Dicho ángulo es característico de la CRig considerada. Si la corredera desliza sobre la barra fija, denominaremos a este tipo de barras correderas rígidas fijas (en adelante CRigF) y si el deslizamiento se produce sobre cualquier otra barra, correderas rígidas móviles (en adelante CRigM). Como puede verse, el tratamiento expuesto para una CRig difiere del tradicional, en el que se trata como un tipo de conexión entre barras. Aquí una CRig se eleva a la categoría de barra.

Memoria del PFC - José Hidalgo Díaz 16

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

A continuación se muestra una figura aclaratoria con diversos ejemplos de tipos de barra, así como los convencionalismos adoptados.

DIR. DEL SEGMENTO DE DESLIZAMIENTO

DIR. DEL SEGMENTO DE UNIÓN

Â

432=41

P2,5P1,5

5

21

2

22=31

42=51

3

S

CORREDERA RÍGIDA MÓVIL 5.SE UNE EN EL PB42 Y DESLIZA SOBRE LA LÍNEA FIJA DEFINIDA POR P1,5 Y P2,5. SE MUESTRA LA MANERA DE MEDIR SU ÁNGULO (Â), EL QUE VA DEL SEGMENTO DE MENOR ORDEN AL QUE PERTENECE EL PUNTO DE UNIÓN (L4,1) HASTA EL SEGMENTO DE DESLIZAMIENTO (EL QUE VA DEL P1,5 AL P2,5). SE MUESTRA TAMBIÉN CÓMO SE MIDE SU COORDENADA DE AVANCE "S"

DIR. DEL SEGMENTO DE DESLIZAMIENTOÂ

22

4245

41

43

21

23=51

2 CORREDERA RÍGIDA MÓVIL 5.SE UNE EN EL PB23 Y DESLIZA SOBRE EL SEGMENTO DE ORDEN 1 DE LA BARRA 4. SE MUESTRA LA MANERA DE MEDIR SU ÁNGULO (Â), EL QUE VA DEL SEGMENTO DE MENOR ORDEN AL QUE PERTENECE EL PUNTO DE UNIÓN (L2,2) HASTA EL SEGMENTO DE DESLIZAMIENTO (L4,1)

DIR. DEL SEGMENTO DE UNIÓN

53

CORREDERA ARTICULADA FIJA 4.SE ARTICULA EN EL PB32 Y DESLIZA SOBRE LA LÍNEA FIJA DEFINIDA POR P1,4 Y P2,4. SE MUESTRA CÓMO SE MIDE SU COORDENADA DE AVANCE "S"

S

332=41

22=31

2

21

4P1,4

CORREDERA ARTICULADA MÓVIL 6.SE ARTICULA EN EL PB22 Y DESLIZA SOBRE EL SEGMENTO DE ORDEN 3 DE LA BARRA 5 (EL QUE VA DEL PB53 AL PB51)

2

22=61

21

52

P2,4

51

65

â

5

L5,5

L5,4

L5,6L5,7

L5,3

L5,2

L5,1

SE MUESTRAN LOS SEGMENTOS ORIENTADOS DE LA BARRA ARTICULADA 5 CON 5 PBs.

55

54 53

52

51

BARRA 3 TRIARTICULADA.EL PB33 ES UN PB LIBRE

3332

31

3

BARRA 2 BIARTICULADA.EL PB21 ES FIJO Y EL PB22 SE CONECTA A OTRA BARRA. SE MUESTRA LA MANERA DE MEDIR SU ÁNGULO (â)

22

21

2

TIPOS DE BARRA. EJEMPLOS

Memoria del PFC - José Hidalgo Díaz 17

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

En cuanto a las ecuaciones de restricción que se construyen para cada barra, se detallan a continuación sus expresiones: Para cada barra articulada, se montarán tantas ecuaciones de restricción como segmentos tenga. Las ecuaciones son del tipo “longitud constante”. Si el segmento k (de longitud Lk) va del punto básico a al punto básico b: (xb-xa)

2+(yb-ya)2-Lk

2=0 Para cada corredera articulada se ha de plantear una ecuación que garantice que el punto básico en el que se articula la misma (punto r) esté sobre su recta de deslizamiento (definida por los puntos a y b): (xr-xa)(yb-ya)-(yr-ya)(xb-xa)=0 Para cada corredera rígida han de montarse dos ecuaciones, la primera (1) destinada a garantizar que el punto de unión de la corredera (punto u) está sobre su recta de deslizamiento. La segunda expresa la constancia del ángulo (â) entre el segmento de la barra articulada a la que se une (puntos ua y ub, de longitud Lu) y la línea de deslizamiento (puntos da y db, de longitud Ld). La forma de plantear esta última depende del ángulo mencionado. Para ángulos en torno a 0 ó 180º se planteará la ecuación de la constancia de la componente “z” del producto vectorial (2PV) de los vectores que representan al segmento de unión y a la recta de deslizamiento. Para el resto de ángulos se planteará la ecuación del producto escalar (2PE) entre los vectores mencionados. La razón de este planteamiento está en que dos vectores que formen un ángulo próximo a 0 ó 180º no varían la proyección del uno sobre el otro si dicho ángulo varía una cantidad infinitesimal. Por lo tanto el producto escalar no se aplica en estos casos. Análogamente, para un ángulo próximo a ±90º, si éste varía una pequeña cantidad, la componente “z” del producto vectorial permanece constante, de ahí que no se aplique el producto vectorial a estos casos. Más concretamente el planteamiento seguido aquí es: si el coseno del ángulo pertenece a (-0.99,0.99), esto es, para ángulos pertenecientes a (-8.11º, 8.11º)U(171.89º, 188.11º) aproximadamente, se plantea la ecuación (2PV). En el resto de casos se formula la (2PE). Obviamente el valor ±0.99 se ha tomado arbitrariamente. (xu-xda)(ydb-yda)-(yu-yda)(xdb-xda)=0 (1) (xdb-xda)(xub-xua)+(ydb-yda)(yub-yua)-LdLucos(â)=0 (2PE) (xub-xua)(ydb-yda)-(xdb-xda)(yub-yua)-LdLusen(â)=0 (2PV) Según sea el tipo de la barra motora, se realizan las siguientes consideraciones. Si la barra motora es una:

• BArt: la ecuación correspondiente a su segmento de movimiento prescrito se deja sin montar.

• CArtF: su ecuación no se monta. • CRigF o CRigM: sólo se monta la ecuación de la constancia del ángulo de unión.

Memoria del PFC - José Hidalgo Díaz 18

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

En cuanto a la manera de especificar la posición de la barra motora, podría preguntarse por qué no se especifica ésta mediante pares coordenados (como sería lógico pensar si se usan coordenadas naturales). La razón de usar ángulos en el caso de que la barra motora sea una barra articulada, y desplazamientos en el caso de que la barra motora sea una corredera, es la de facilitar la introducción de los datos. El programa se encarga de calcular las coordenadas del punto prescrito en cada caso. De este modo, se ahorran cálculos innecesarios al diseñador. 4.3. CODIFICACIÓN Ya se ha visto cómo se guardan los datos de una población de mecanismos: sólo se guardan las dimensiones evolutivas. Para determinar un mecanismo en una posición concreta, es necesario especificar algo más que sus dimensiones evolutivas. Primero, se va a dar cuenta de cuáles son las dimensiones de un mecanismo genérico como el de la figura, al que nos referiremos como “mecanismo de ejemplo”:

ACR_4

L22

54

3

6

7

21

22=51 32=41

31

52=61

62=71

(X21,Y21)

(X31,Y31)

(X_P1,7,Y_P1,7) (X_P2,7,Y_P2,7)

L6

L3

MECANISMO DE EJEMPLO

53

L53

L51

L52 Se necesitan unas longitudes, unas coordenadas de los puntos fijos, unas coordenadas para los puntos de definición de las rectas de deslizamiento de las correderas fijas, y los cosenos de los ángulos de unión de las correderas rígidas. En el ejemplo: Longitudes: L2 L3 L51 L52 L53 L6 Puntos Fijos: X21 Y21 X31 Y31 Puntos Rectas de Deslizamiento: X7

P1 Y7P1 X7

P2 Y7P2

Cosenos de Correderas Rígidas: cos(ACR4) También se necesitará conocer la posición de la barra motora, así como las posiciones de los PBs incógnita del problema. Si suponemos que la barra de entrada es la 2: Barra Motora: X22 Y22 Incógnitas: X32 Y32 X52 Y52 X53 Y53 X62 Y62

Memoria del PFC - José Hidalgo Díaz 19

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

Agrupando toda la información en un vector de datos: {X22 Y22 X32 Y32 X52 Y52 X53 Y53 X62 Y62 L2 L3 L51 L52 L53 L6 X21 Y21 X31 Y31 X7

P1 Y7P1 X7

P2 Y7P2 cos(ACR4)}

Dichos datos serán, junto con la topología del mecanismo, la información necesaria para representar un mecanismo en una posición concreta. De manera general, la estructura del vector de datos será: { Barra Motora | Incógnitas | Dimensiones } Nótese que las incógnitas aparecen con un orden definido (de menor a mayor número de barra y de menor a mayor PB). Igualmente las dimensiones también mantienen un orden lógico en el vector de datos. De esta forma, siempre se sabe a qué posición del vector ha de accederse para extraer un dato concreto. Una vez explicado esto, podemos dar a conocer cómo se codifica la topología del mecanismo. Básicamente, la información acerca de la conexión entre barras se almacena en una “lista de listas”, esto es, cada elemento de la lista es otra lista. Si el mecanismo tiene n barras (incluida la barra fija) la lista de topología tendrá n-1 listas, que corresponderán a la barra 2, 3,..., n. Para cada barra, dependiendo de si ésta es una barra articulada o una corredera, los elementos de su lista de definición serán diferentes. Así, para una: Barra Articulada: lista de pares. Cada par corresponde a la conexión de cada PB de la barra. El primer elemento del par corresponde a la barra de conexión, el segundo al PB de conexión. Corredera: cuatro elementos. El primero indica la barra de conexión, el segundo el PB de conexión, el tercero la barra de deslizamiento, el cuarto el orden del segmento de la barra anterior sobre el que la corredera se desliza (ya que dicha barra podría tener varios posibles segmentos de deslizamiento) Notar que la barra fija dispone de un único PB, el “PB11”, y un único segmento de deslizamiento, el “1”. Para dar claridad a lo anterior, se muestra aquí la topología del “mecanismo de ejemplo”:

BArt 2 1 1 5 1 BArt 3 1 1 4 1 CRigM 4 3 2 5 1 BArt 5 2 2 6 1 5 3 BArt 6 5 2 7 1 CArtF 7 6 2 1 1

Nótese cómo el PB53 se conecta “consigo mismo”. De esta forma se indica que se trata de un PB libre, que posteriormente puede ser usado como punto trazador.

Memoria del PFC - José Hidalgo Díaz 20

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

4.4. MONTAJE DE LAS ECUACIONES DE RESTRICCIÓN Dado que en la parte de evaluación del AG es donde se consume el mayor tiempo de cálculo, se ha desarrollado un método que pretende aliviar la tarea del montaje de las ecuaciones, ya que éste es necesario para acometer el problema de ensamblaje. Baste tener en cuenta lo siguiente: si tenemos una población de N mecanismos, pretendemos completar G generaciones, prescribimos P puntos de precisión y estimamos que cada problema de ensamblaje consumirá I iteraciones como media, deberemos plantear N×G×P×I veces el problema de montaje (calcular tanto el valor de las ecuaciones de restricción como de la matriz jacobiana). Poniendo un ejemplo típico: con un tamaño poblacional de 100 mecanismos, previstas 100 generaciones, para 10 puntos de precisión y estimando unas 10 iteraciones de media para cada problema de ensamblado: tendremos del orden de un millón de montajes idénticos. Lo único que variará será los valores de los datos. En lugar de pasar todas esas veces por una rutina de decisión que, en función del tipo de barra monte un tipo de ecuación y le ponga valor a las mismas, se usa un montaje de ecuaciones mediante listas de operaciones. Para ello se usa una metodología inspirada en RPL (Reverse Polish Lisp*). Se montan las secuencias necesarias para construir las ecuaciones de restricción y la matriz jacobiana. De esta forma, sólo se requiere pasar una sola vez por la rutina de decisión, con lo que el único trabajo será ir rellenando datos según indiquen las secuencias construidas. Lo primero que hay que desarrollar es un método para caracterizar un PB, esto es, una función que tome como argumento un PB del mecanismo y que, conociendo la topología del mismo, sea capaz de devolver su carácter (punto prescrito, incógnita o punto fijo) y según el caso devolver su orden. De esta forma se consiguen extraer las coordenadas de un PB dentro del vector de datos del mecanismo. Una vez conocida la posición de extracción, podemos sustituir simbólicamente el dato a montar por el orden que ocupa en el vector de datos. Después, basta con recorrer secuencialmente las barras del mecanismo para, según su tipo, plantear las ecuaciones de restricción correspondientes. Este proceso se basa en la caracterización de PBs mencionada antes. Hecho esto, la construcción de las secuencias RPL que montan las ecuaciones de restricción y la matriz jacobiana, parece algo trivial, sólo hay que poner cuidado al escribir el código del programa, para no cometer errores al pasar de expresiones algebraicas a secuencias de operadores y datos. (*) Reverse Polish Lisp significa Lisp Polaco Inverso. Lisp es el acrónimo de List Proccesing (Procesado de Listas). Se trata de una técnica para realizar operaciones en una pila y se basa en los trabajos del polaco Jan Lukasiewicz, quien creó la notación de prefijo llamada Notación Polaca

Memoria del PFC - José Hidalgo Díaz 21

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

4.5. EL PROBLEMA DE ENSAMBLAJE El problema de ensamblaje es lo único que falta para cerrar definitivamente tarea de evaluar un mecanismo. Afortunadamente, se trata de un problema bien conocido. Se ha usado el algoritmo de Newton-Raphson para problemas multidimensionales [13]. Se detallan a continuación los pasos a seguir. Conocidas las ecuaciones de restricción en función de las incógnitas q, para cada posición prescrita:

Φ(q) = 0 El método de Newton-Raphson consiste en linealizar el sistema anterior, reemplazándolo por los dos primeros términos de su desarrollo en serie de Taylor alrededor de un punto qi próximo a la solución:

Φ(q) ≅ Φ(qi) + J(qi) (q - qi) = 0 donde J(qi) es la matriz jacobiana evaluada en qi. Haciendo iterativa la aproximación anterior:

Φ(qi) + J (qi) (qi+1 - qi) = 0 Multiplicando por la inversa de la matriz jacobiana en qi y despejando qi+1:

qi+1 = qi - J -1(qi)Φ(qi) Los mecanismos se van montando en cada una de las posiciones, resolviendo para ello un sistema como el anterior. Para la primera posición prescrita se toma qi igual a una solución inicial común para todos los mecanismos. Para la segunda y posteriores, la solución inicial considerada es la obtenida para la posición prescrita previa. Como solución inicial común para todos los mecanismos se toma la correspondiente a la primera posición prescrita para un mecanismo dado, de igual topología que el mecanismo que se quiere sintetizar y al que denominaremos mecanismo prototipo. Ensamblar el mecanismo se reduce pues a calcular la solución a q de manera iterativa. En cada iteración han de calcularse el vector Φ(qi) y J(qi). La inversión de la matriz jacobiana se realiza mediante el método de Gauss-Jordan. Tras ensamblar un mecanismo en una posición concreta, su evaluación es inmediata. Basta con calcular la posición alcanzada por elemento prescrito (dependiendo del tipo de síntesis) y compararla con su valor prescrito correspondiente.

Memoria del PFC - José Hidalgo Díaz 22

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

4.6. CORRELACIÓN TEMPORAL Y REAJUSTE La Generación de Trayectoria y la Generación de Movimiento, pueden realizarse con o sin temporización prescrita, esto es, con o sin correlación temporal entre las posiciones prescritas y las correspondientes posiciones de la barra motora. Aunque formalmente una síntesis del tipo Generación de Función requiere de correlación temporal, operativamente nada impide poder prescindir de ella. Por esta razón no se ha limitado su uso en ninguno de los tres tipos de síntesis. Cuando no se establece correlación temporal podemos buscar, partiendo de las posiciones originalmente prescritas para la barra motora, otro juego de posiciones para ésta que conduzcan a un mejor ajuste respecto al original. Se intenta conseguir dicho propósito con la introducción de un método de reajuste apropiado. Dicho reajuste comienza a actuar a partir de una cierta generación dada (GenReajuste). Si hemos prescrito P posiciones para nuestro mecanismo, podemos definir los siguientes valores para 1<i<P: BMoti

0: juego original de posiciones prescritas de la barra motora BMot : posiciones de la barra motora en la generación j i

IncBMot

j

j

i

i i

0: valor inicial del incremento de exploración alrededor de la barra motora IncBMoti

RedIncBMot: reducción de IncBMot

j: incremento de exploración en la generación j (alrededor de la posición BMotij)

i

El reajuste tiene lugar según los siguientes pasos, para la generación j:

1. Se guardan copias de BMot j-1, IncBMotij-1, {MecAct} j-1, F j-1 con el propósito de restaurar

las condiciones previas al intento de reajuste si éste no prosperara. 2. Se realizan, sobre el mejor mecanismo de la población, dos evaluaciones adicionales a la

BMotij-1 prescrita (las correspondientes a las posiciones "adelantada" y "retrasada" una

cantidad IncBMotij-1 en torno a BMoti

j-1), guardándose las aproximaciones encontradas para cada una de ellas en cada uno de los Puntos de Precisión. Para cada Punto de Precisión se comparan las 3 distancias observadas. Si hubo mejoría se modifica BMoti

j para dicho Punto de Precisión. En caso contrario se reduce el IncBMoti

j correspondiente. Nótese que estas mejorías parciales deben ser corroboradas en el total de la población, ya que la aptitud es siempre relativa al contexto donde se determina, esto es, depende del resto de individuos coetáneos.

3. Si hubo alguna posible mejora, se plantea si realmente son efectivas en el contexto del total de la población. Para ello se evalúa y ordena la población. Se compara el fitness del mejor mecanismo con el del mejor mecanismo antes de intentar el reajuste. Si fue mejor que éste último, se abandona el reajuste sin restaurar nada. Sino, se va al paso 4.

4. No se produjo ninguna mejora global. Se restauran las copias guardadas en el paso 1, salvo que IncBMot j = IncBMot j-1/RedIncBMot, persiguiéndose con esto una mayor finura en el reajuste de la siguiente generación.

Memoria del PFC - José Hidalgo Díaz 23

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

4.7. DIMENSIONES DEPENDIENTES Definidos unos rangos de variación para las dimensiones evolutivas, éstas variarán sus valores de acuerdo a las leyes probabilísticas marcadas por el desarrollo del algoritmo. Sin embargo, en algunos diseños es necesario mantener el control sobre los valores que adoptan ciertas dimensiones. El caso más común donde se nos presenta esta necesidad es cuando se tiene una barra triarticulada con sus tres PBs alineados. Si dejamos que varíen libre y aleatoriamente 2 de sus longitudes asociadas, la tercera deberá ser combinación lineal de las anteriores. Esto nos lleva a la necesidad de idear un sistema para poder revisar durante el transcurso del proceso algorítmico, los valores de este tipo de dimensiones, a las cuales llamaremos dimensiones dependientes, al depender del valor de otras dimensiones del problema. El valor de las dimensiones dependientes es recalculado en cada generación usando la misma técnica mostrada anteriormente al montar las ecuaciones de restricción, esto es, mediante secuencias RPL. 4.8. ANÁLISIS FINO Introducimos aquí el concepto de mecanismo prototipo (MP). Se entiende por tal, a un mecanismo concreto del tipo y topología del mecanismo que se quiere sintetizar, cuyas dimensiones no difieren mucho de los rangos de variación propuestos para dichos valores. El motivo de introducir este concepto es doble: forzar al diseñador a ser coherente a la hora de ofrecer un juego de valores iniciales al problema de ensamblaje y servir de referencia a los rangos de variación de las dimensiones. En vista de lo anterior podría preguntarse por la necesidad de existencia de tal mecanismo. Realmente no sirve para nada. Para que todo funcione bastaría con suministrar una topología y un juego de valores iniciales para las incógnitas del problema. Sin embargo, se ha querido mantener éste para recordarnos la necesidad de ser coherentes a la hora de suministrar datos al programa. Éste no es una caja negra mágica, y no valora de modo inteligente los datos de partida. Es una forma de mantenernos lejos de diseñar a ciegas, pero no la única. Una vez comprendido el procedimiento de ensamblaje cabe preguntarse lo siguiente: si sólo se montan mecanismos en las posiciones prescritas, ¿qué ocurre en posiciones intermedias a las mismas? Pudiera ser que el mecanismo solución estuviera roto en alguna de ellas. También pudiera ser que el mecanismo pasara de un circuito solución a otro. Todo esto podría pasar desapercibido por completo. Para intentar detectar estos “cambios de circuito” y puntos de rotura entre posiciones prescritas, se realizan dos análisis finos: uno sobre el MP antes de iniciar el algoritmo genético y otro sobre el mecanismo solución. En ambos se ensambla el mecanismo correspondiente, además de en las posiciones prescritas, en un número de puntos adicionales. Estos se distribuyen en función de la separación entre las posiciones que alcanzan los PBs del mecanismo entre dos posiciones prescritas consecutivas.

Memoria del PFC - José Hidalgo Díaz 24

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

4.9. REDONDEO DE LAS DIMENSIONES FINALES Al resolver un problema numérico como el que nos ocupa, la precisión de los datos es algo importante. A mayor precisión durante el transcurso de las operaciones conducentes a la solución es de esperar una mayor precisión en los resultados obtenidos. Sin embargo estamos ante un caso engañoso. En un problema multidimensional de la naturaleza del que nos proponemos aquí puede resultar conveniente efectuar un redondeo de las dimensiones finales del mecanismo solución, ya que, de esta forma, éste se evalúa en el contexto de la población con unas dimensiones “reales”, que podrían ser sus dimensiones constructivas, y no con unas dimensiones que internamente pueden tener una precisión excesiva, y que podrían darnos valores del ajuste magníficos, pero engañosos, y que nos decepcionarían a la hora de realizar el mecanismo de manera “real”, al tener que hacerlo con unas dimensiones “realizables”. Por esta razón se ha implementado la posibilidad de definir el uso y cuantía del redondeo mencionado. En la práctica, para comprobar la importancia del redondeo basta fijarse en cómo algunos mecanismos solución pueden disminuir de manera significativa su ajuste tras realizar el redondeo de sus dimensiones. Por contra, si tras el redondeo, el ajuste disminuye, puede deberse a que el puesto de mejor mecanismo se ha cedido a otro que, sin redondeo, ocupaba peor puesto en la lista de calificaciones de la población.

Memoria del PFC - José Hidalgo Díaz 25

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

5. SDMAG SDMAG es, como ya se habrá podido adivinar, el acrónimo de Síntesis Dimensional de Mecanismos mediante Algoritmo Genético. También es el nombre dado al programa informático donde se implementa todo lo expuesto con anterioridad en este documento. Aquí sólo se van a resumir las características del programa. Para un mayor detalle deberá consultarse, fuera de esta memoria, el Documento de Ayuda de SDMAG. SDMAG es un programa informático escrito en Lenguaje C [14], por lo que se puede compilar y ejecutar en cualquier plataforma. Se ejecuta en modo consola, no requiriéndose ninguna capacidad gráfica específica en la máquina. Además, con ayuda de un visor de archivos DXF™ [15] se podrá obtener una representación gráfica completa de la salida del programa. El programa permite la creación de una serie de archivos con los datos necesarios para resolver una síntesis. Una vez creados éstos, se pueden modificar posteriormente. Para resolver el problema, el programa hace uso de dichos archivos y se generan otros con los datos relativos a la solución encontrada. Más concretamente, SDMAG escribe dos archivos. El primero es un fichero de texto donde se recogen las incidencias de la resolución, las dimensiones del mecanismo sintetizado, las posiciones alcanzadas por aquel, así como las desviaciones de éstas respecto de las originalmente prescritas. El segundo es creado a voluntad del usuario y se trata de un archivo DXF™ ASCII con la representación de la solución obtenida. Éste se puede ver con cualquier programa capaz de procesar dichos archivos. No obstante, se ha intentado optimizar la representación para su visualización con AutoCad®. SDMAG se acompaña, además de por la documentación de ayuda mencionada más arriba, por una batería de ejemplos que intentan ilustrar el uso del programa. A continuación se muestra el diagrama de flujo general de resolución de un problema de síntesis por SDMAG, permitiendo completar el conocimiento de cómo se han implementado los distintos métodos expuestos en el apartado anterior.

Memoria del PFC - José Hidalgo Díaz 26

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

ALGO

RITM

O GE

NÉTICO

REPR

ESEN

TACIÓN

GRÁF

ICA

DIME

NSIONE

S

EVAL

UACIÓN

DE L

ASO

LUCIÓN

REDONDEO

ELITISMO

POBL

ACIÓN

FUTU

RA

DIME

NSIONE

S DE

PEND

IENT

ES

DIME

NSIONE

S DE

PEND

IENT

ES

CRITER

IODE

PAR

O

CRUC

E Y

MUTA

CIÓN

REAJ

USTE

ORDE

NAMIEN

TO

EVAL

UACIÓN

POBL

ACIÓN

INICIAL

EVAL

UACIÓN

DEL

PROT

OTIPO

DIME

NSIONE

S DE

PEND

IENT

ES

CODIFICA

CIÓN

COMP

ROBA

CIÓN

DATO

S

Memoria del PFC - José Hidalgo Díaz 27

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

6. RESULTADOS Y CONCLUSIONES A continuación se presentan una serie de ejemplos con el objeto de mostrar la capacidad del programa. En primer lugar se propone la síntesis de una trayectoria cerrada (con 8 puntos de precisión) mediante un mecanismo de biela-manivela. En segundo lugar, otra síntesis de una trayectoria cerrada (con 24 puntos) mediante un cuadrilátero articulado. Finalmente un problema de generación de movimiento con un mecanismo de mayor complejidad. Pueden consultarse los datos de los ejemplos en la carpeta ejemplos/ del programa. El nombre del proyecto asociado aparecerá indicado entre corchetes. En el Documento de Ayuda de SDMAG pueden consultarse más ejemplos. 6.1. EJEMPLO 1 [4bgt9pp3] Se quiere sintetizar, con un mecanismo de biela-manivela como el mostrado, la trayectoria propuesta en la misma figura:

32=41

3322=31

21

4

2

P1 P2

32345 1=9

6

7

8

La barra motora es la 2, el punto trazador es el 33 y se pretende que éste pase por 8 puntos concretos. Para ello se definen las posiciones prescritas de la tabla siguiente (la posición 9 cierra la trayectoria y es idéntica a la 1). Las posiciones correspondientes a la barra motora se toman como estimación y están espaciadas en base a la separación entre los distintos puntos prescritos. El programa reajustará dichas posiciones (se trata de una síntesis sin correlación temporal).

Posición Barra motora X33 Y33

1 45º 26 16 2 70º 23 16 3 95º 20 16 4 120º 17 16 5 145º 14 16 6 185º 10 13 7 275º 20 7 8 365º 30 13 9 405º 26 16

Las dimensiones del prototipo (MP) y sus rangos de variación se muestran a continuación: Punto Fijo Longitudes Recta de Deslizamiento

X21 Y21 L2 L31 L32 L33 XP1 YP1 XP2 YP2

MP 10 10 10 20 13 9 0 5 50 5 MÍN 5 5 10 15 10 10 0 5 50 5 MÁX 15 15 20 25 15 15 0 5 50 25

Memoria del PFC - José Hidalgo Díaz 28

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

Nótese que los únicos valores no evolutivos son XP1, YP1 y XP2

El mecanismo prototipo se ha elegido atendiendo a que éste pasa muy cercano al punto 1 para una posición de la barra motora de 45º y a que tiene unas dimensiones con valores sencillos (enteros). Como estimación inicial de las posiciones de los puntos incógnita del problema de ensamblaje se toman X32 = 30, Y32 = 5, X33 = 26 e Y33 = 16 La solución calculada por el programa se muestra a continuación. Las dimensiones del mecanismo se han redondeado a 3 decimales:

DIMENSIONES DEL MECANISMO SINTETIZADO X21 Y21 L2 L31 L32 L33 XP1 YP1 XP2 YP2

7.537 5.598 10.558 22.212 11.711 13.430 0.000 5.000 50.000 7.822

POSICIONES ALCANZADAS Punto Barra Motora X33 Y33 Desv.

1 61.349 26.000 15.998 0.002 2 79.227 23.006 16.246 0.246 3 96.077 19.988 16.177 0.178 4 113.192 17.027 15.838 0.165 5 131.146 14.243 15.201 0.835 6 168.751 9.997 13.002 0.004 7 294.572 19.980 7.075 0.077 8 6.552 30.003 12.999 0.003 9 61.347 26.000 15.998 0.002

Desviación Total 1.511 En la figura se muestran el mecanismo sintetizado en su posición 1 y la trayectoria alcanzada:

Memoria del PFC - José Hidalgo Díaz 29

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

A continuación se muestran superpuestas, por claridad, sólo las trayectorias prescrita y alcanzada:

POSICIONES PRESCRITASPOSICIONES ALCANZADAS

7

8

1=92345

6

La evolución del ajuste o fitness (F) y el ajuste medio poblacional (FM) se muestran en la siguiente gráfica:

Evolución del Ajuste

0

5

10

15

20

25

Generaciones

Fitn

ess

F

FM

Memoria del PFC - José Hidalgo Díaz 30

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

6.2. EJEMPLO 2 [4bgt25pp_p] [4bgt25pp] Se quiere sintetizar un mecanismo de cuatro barras que pase por los puntos de la figura, los cuales forman una trayectoria cerrada.

2423

22

21

20 1918

17

16

15

14

13

1211

10

9

8

7

65

432

1=25

Como mecanismo prototipo se va a usar uno obtenido de la siguiente forma:

1) Se parte de un mecanismo que genera una trayectoria en forma de lazo. La trayectoria generada por éste se muestra superpuesta con la de nuestro problema en la figura:

33

L32=30L33=20

L4=40

L31=30

L2=20

PB42=(30,10)

PB21=(0,0) 22=31

32=41

Memoria del PFC - José Hidalgo Díaz 31

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

2) Transformamos el mecanismo anterior y su trayectoria, hasta que ésta y la curva pretendida se parecen razonablemente. Para tal fin: se realiza una simetría con eje vertical que pasa por el origen. Se reduce, con punto base el origen, un factor de 0.75. Se gira respecto al origen un ángulo de 75º en sentido positivo de giro. Se realiza un desplazamiento relativo (+36.4, +26.4):

33

L32=22.5

L33=15

L4=30

L31=22.5

L2=15

PB42=(23.332, 6.608)

PB21=(36.400,26.400)

22=31

32=41

Basándonos en la posición mostrada en la figura anterior y suponiendo una distribución uniforme de las posiciones de la barra motora, la trayectoria prescrita queda:

Pos B. Mot. X33 Y33 1 -105.000 19.657 16.7022 -90.000 23.737 17.0323 -75.000 27.791 17.0884 -60.000 31.645 16.5525 -45.000 36.012 15.6826 -30.000 39.391 15.0067 -15.000 41.812 16.4138 0.000 41.587 18.9459 15.000 40.108 20.856

10 30.000 37.476 22.49111 45.000 33.792 23.10412 60.000 29.593 22.15313 75.000 25.767 20.30114 90.000 22.813 18.19915 105.000 20.358 16.24416 120.000 17.905 14.19917 135.000 15.952 12.74818 150.000 14.149 11.59719 165.000 12.146 10.49620 180.000 10.393 10.59621 195.000 11.044 12.29822 210.000 12.847 13.84923 225.000 15.000 15.00024 240.000 17.103 16.00125 255.000 19.657 16.702

Memoria del PFC - José Hidalgo Díaz 32

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

Las dimensiones y posiciones de los elementos del mecanismo prototipo (MP), así como sus rangos de variación (MÍN, MÁX) se muestran a continuación:

X21 Y21 X42 Y42 L2 L31 L32 L33 L4 MP 36.400 26.400 23.332 6.608 15.000 22.500 22.500 15.000 30.000

MÍN -100.000 -100.000 -100.000 -100.000 10.000 20.000 0.001 0.001 20.000 MÁX 100.000 100.000 100.000 100.000 40.000 50.000 40.000 40.000 50.000

Se plantea una síntesis de trayectoria sin correlación temporal en [4bgt25pp_p]. Tras el reajuste se resuelve un nuevo problema en [4bgt25pp] usando los valores reajustados de la barra motora pertenecientes al problema anterior. A su vez, se disminuyen los rangos de variación y la intensidad del reajuste. Como resultado final se tiene:

DIMENSIONES DEL MECANISMO SINTETIZADO X21 Y21 X42 Y42 L2 L31 L32 L33 L4

54.730 25.666 23.714 7.310 15.627 41.950 27.147 30.001 36.431

POSICIONES ALCANZADAS Pos B. Mot. X33 Y33 Desv.

1 248.909 19.646 16.761 0.0602 263.571 23.698 16.668 0.3663 278.482 27.613 16.079 1.0254 294.530 31.481 15.426 1.1385 316.271 36.022 15.114 0.5686 335.442 39.151 15.639 0.6777 354.879 41.211 16.907 0.7788 16.783 41.888 18.908 0.3039 41.170 40.390 21.165 0.419

10 61.295 37.482 22.422 0.07011 79.617 33.819 22.678 0.42712 97.552 29.669 21.903 0.26113 113.790 25.766 20.303 0.00214 127.159 22.653 18.433 0.28315 138.771 20.127 16.525 0.36416 150.933 17.724 14.417 0.28417 160.941 15.958 12.769 0.02118 171.173 14.366 11.361 0.32019 190.708 12.091 10.285 0.21820 200.612 11.572 10.885 1.21421 209.866 11.738 12.104 0.72122 220.292 12.857 13.846 0.01123 230.294 14.794 15.362 0.41724 239.271 17.019 16.290 0.30125 248.909 19.646 16.761 0.060

Desviación Total 10.308

Memoria del PFC - José Hidalgo Díaz 33

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

Las trayectorias prescrita y alcanzada se muestran en la siguiente figura:

POSICIONES ALCANZADASPOSICIONES PRESCRITAS

Se observa una discrepancia acusada en algunos puntos, aunque en general, la curva alcanzada se ajusta bastante bien, para el número de posiciones considerado, a la prescrita.

Memoria del PFC - José Hidalgo Díaz 34

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

6.3. EJEMPLO 3 [10bgm3pp] A continuación se va a plantear una generación de movimiento con un mecanismo algo más complicado, si bien la dificultad está en hallar una solución válida. Se trata de encontrar un mecanismo como el de la figura: ROTACIÓN PRESCRITA

AVAN

CE B

. MOT

ORA

PUNTO PRESCRITO

D=20

La barra motora es la 3 (cilindro hidráulico) y se establecen las siguientes posiciones prescritas:

Pos B. Motora X61 Y61 Rot63

1 10.000 0.000 100.000 180.000 2 39.057 9.083 128.737 170.000 3 68.114 50.000 150.000 160.000

Evidentemente las coordenadas del PB61 pertenecen a la circunferencia con centro en el punto fijo 52 y radio L5 y aunque formalmente las posiciones de dicho punto forman parte de la síntesis, lo que nos interesa aquí es la rotación del segmento que va del punto 63 al punto 61 (Rot63). Las dimensiones del mecanismo prototipo (el de la figura anterior) son:

Puntos Fijos X21 Y21 X52 Y52 X102 Y102

MP 0.000 0.000 50.000 100.000 257.129 17.816 MÍN 0.000 0.000 50.000 100.000 230.000 0.000 MÁX 0.000 0.000 50.000 100.000 280.000 40.000

Longitudes L2 L4 L5 L61 L62* L63 L7 L10

MP 90.000 90.000 50.000 201.000 102.000 300.000 155.000 20.000 MÍN 90.000 90.000 50.000 201.000 20.000 300.000 100.000 10.000 MÁX 90.000 90.000 50.000 301.000 102.000 300.000 180.000 40.000

(*) La longitud L62 se establece como dimensión dependiente (ver más abajo)

Memoria del PFC - José Hidalgo Díaz 35

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

Recta Deslizamiento Corredera 8 Ángulos Correderas Rígidas XP1 YP1 XP2 YP2 ACR3 ACR9

MP 0.000 0.000 350.000 -30.621 0.000 90.000 MÍN 100.000 0.000 400.000 -25.000 0.000 90.000 MÁX 100.000 0.000 400.000 25.000 0.000 90.000

La longitud L62 es una dimensión dependiente, su valor es tal que la distancia D entre el punto 62 y el segmento de rotación prescrita sea igual a 20. La expresión que determina su valor es: L62 = { 202 + [ L63 - L61·( 1 - (20/L61)2 )1/2 ]2 }1/2

Se puede comprobar que el mecanismo prototipo está roto en la primera y segunda posiciones prescritas. La dificultad de ensamblar gráficamente el mecanismo se pone de manifiesto observando lo siguiente: si las todas las dimensiones anteriores son dadas (excepto la longitud y punto fijo de la barra 10), podemos intentar buscar la circunferencia que es tangente a la barra 7 de manera simultánea en las 3 posiciones prescritas. El radio de dicha circunferencia sería la longitud L10 y las coordenadas de su centro el punto fijo para la barra 10. Encontrar tal circunferencia es complicado, pero lo verdaderamente difícil es que el resultado sea un mecanismo válido, esto es, no presente ni roturas ni puntos fuera de circuito en posiciones intermedias a las prescritas. Tras resolver se obtuvo lo siguiente (se muestran sólo las dimensiones evolutivas del óptimo):

L61 L62 L7 L10 X102 Y102 YP2

201.224 101.757 172.828 36.174 235.692 22.931 6.334 y las rotaciones alcanzadas fueron:

Pos Rot63 Desviación1 180.000º 0.000º 2 170.911º 0.911º 3 160.000º 0.000º

Desv. Ang. Total 0.911º

Memoria del PFC - José Hidalgo Díaz 36

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

6.4. CONCLUSIONES Una vez decidido el tipo de mecanismo con el que se quiere realizar la tarea prescrita, la obtención de una buena solución (desde el punto de vista cualitativo) depende en gran medida del subespacio de búsqueda considerado, esto es, de una elección adecuada de los rangos de variación de las dimensiones. Una buena solución será mejor que otra (cuantitativamente hablando) cuanto mejor sintonizados estén los parámetros que controlan el algoritmo genético. Dar con la mejor combinación paramétrica es tarea casi imposible, no por el número de parámetros que intervienen, sino por la dependencia mutua entre ellos y la evolución de la población, que cambia en cada generación por obra y gracia del azaroso destino debido a la propia naturaleza aleatoria del algoritmo. Dicho esto, parece indicado plantear la siguiente estrategia de resolución de problemas: primero se acotan los rangos de variación hasta tener un conocimiento de la calidad de las soluciones y posteriormente se intentan sintonizar los parámetros del algoritmo para obtener una solución cuantitativamente aceptable. A continuación se dan una serie de ideas, basadas en la experiencia del autor, de cómo elegir cada parámetro del algoritmo (véase el Documento de Ayuda de SDMAG): Semilla: Definido un subespacio de búsqueda, la semilla elegida para crear la población inicial decide los candidatos a generar la solución final. Tamaño de la Población: A mayor número de individuos, se explorará con mayor profusión el subespacio de búsqueda, sin embargo el tiempo de cálculo crece proporcionalmente con dicho número. Por lo tanto, es mejor comenzar probando con tamaños pequeños (de unos 100 individuos) y distintas semillas. Si se observa una gran discrepancia dimensional entre las soluciones obtenidas, esto indica que cabe esperar muchas buenas soluciones, con lo que sería apropiado aumentar el tamaño de la población para una mejor exploración del dominio. En cambio, si las soluciones se parecen en cierta medida, no tiene sentido trabajar con un gran número de individuos que a la postre no van a generar un mayor número de alternativas. Generaciones: Como número de iteraciones programado para obtener una solución, deberíamos proponer un valor que permita a la población inicial evolucionar adecuadamente. Si se observan las gráficas de evolución del ajuste, puede verse que éste obtiene prácticamente su valor final mucho antes de llegar a la mitad de las generaciones programadas. Por esta razón no tiene sentido establecer un número excesivo de generaciones. Como orientación, podemos dar un valor de 100 a este parámetro. Probabilidades de Cruce (Pc) y Mutación (Pm): Se podría decir que son los parámetros más importantes del algoritmo. La Pc controla el intercambio de material genético entre los individuos y la Pm la introducción de pequeñas perturbaciones en dicho material. Valores elevados de Pc tendrán como resultado una convergencia prematura poco recomendable. Por otro lado, valores muy altos de Pm podrían estropear la convergencia del algoritmo. Para intentar remediar dichos problemas se proponen Pc y Pm variables con el número de generaciones: Pc decreciente y Pm creciente. De esta forma se intenta no incurrir en cruzamientos espurios en las últimas generaciones del algoritmo, al existir entonces una gran correlacion entre las dimensiones de los mecanismos de la población.

Memoria del PFC - José Hidalgo Díaz 37

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

Como referencia, se sugieren las siguientes funciones cuadráticas: Pc(x) = Pcmax - Pcmin·x2

Pm(x) = Pmmin + Pmmax·x2 con x=Generación/Generaciones

Una posible elección de los valores para los polinomios anteriores es, a título orientativo:

Generaciones Pcmax Pcmin Pmmin Pmmax

100 0.7-0.65 0.2-0.4 200 0.65-0.60 ~0.2 ≥300 0.60-0.50 0.1-0.2

0.01-0.3 0.6-1.0

Élite: Como mínimo, debe valer 1. No obstante, se recomienda un valor mayor, con el objeto de no fomentar la predilección en el cruce por un único individuo. Mantener a más de un individuo de élite es como mantener a los mejores individuos de varias castas de soluciones a la vez. Como referencia, se aconseja tomar como Élite entorno un a 4% del total de la población, disminuyendo este valor conforme se aumenta el tamaño poblacional, por ejemplo: 4/100 (4 individuos de élite sobre 100 totales), 7/200, 10/300,... Error, Tolerancia y Maxiter: Realmente, éstos no son parámetros del algoritmo genético, pero son importantes porque controlan el problema de ensamblaje, que dota de valor numérico a la función de evaluación del AG. Error, Tolerancia y Maxiter permiten controlar la precisión de la solución obtenida en cada ensamblaje y no alargar el proceso iterativo, pero también marcan el criterio de rotura, esto es, una alta precisión (valores muy pequeños para Error y Tolerancia) y valores pequeños de Maxiter pueden calificar una posición de ensamblaje como rota, cuando probablemente no sea así. Por otro lado, si se eligen valores altos de Maxiter, podríamos estar alargando en exceso el tiempo de cálculo debido a que realmente la posición de ensamblaje está rota. Km: Valor máximo de la constante de mutación. Se recomiendan valores en torno a 1.2. Valores demasiado altos podrían “estropear” el proceso de mutación, ya que los valores cromosómicos fuera de los rangos permitidos son invalidados automáticamente. GenReajuste: Generación de Reajuste. Depende de la incertidumbre sobre las posiciones de la barra motora. Un reajuste temprano deberá hacerse cuando la incertidumbre sea grande y viceversa. Además, el reajuste debe comenzar antes de que el cruzamiento pierda importancia frente a la mutación, para que los reajustes introducidos tengan un efecto de realimentación sobre las dimensiones de los mecanismos de la población. IncBMot: Incremento de la BMot. Valor inicial del avance/retraso de las posiciones prescritas de la BMot en los que se tantea mejorar la aproximación respecto al valor original de éstas. Depende de la incertidumbre y separación de los valores de la barra motora. RedIncBMot: Valor de reducción (> 1) de IncBMot. Si al intentar el reajuste en una posición prescrita no se encontró mejora, IncBMot pasará a valer IncBMot/RedIncBmot. De esta forma se consigue afinar en la búsqueda del mejor reajuste. Depende de los dos parámetros anteriores. Se busca conseguir una reducción paulatina de IncBMot tal que se explote adecuadamente el mecanismo de reajuste.

Memoria del PFC - José Hidalgo Díaz 38

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

7. PLANTEAMIENTOS FUTUROS A continuación se enumeran una serie de planteamientos conducentes a mejorar el programa:

• Ensayar otro tipo de selección distinto al planteado aquí. Por ejemplo usar Evolución Diferencial. Estudiar la posibilidad de que el usuario pueda programar su propia técnica evolutiva. Todo esto con el fin de mejorar la convergencia local.

• Con el propósito de simplificar la tarea de elección del subespacio de búsqueda, dotar al

programa de algún método de conocimiento basado en casos. Podría añadirse una librería de mecanismos predefinidos (al estilo de un atlas), o bien usar un conjunto de redes neuronales entrenadas para una selección de mecanismos-tipo de síntesis.

• Desarrollar una GUI (Graphic User Interface) o interfaz gráfica de usuario para facilitar la

introducción, modificación e interpretación de datos.

Memoria del PFC - José Hidalgo Díaz 39

SDMAG Síntesis Dimensional de Mecanismos mediante Algoritmo Genético

8. REFERENCIAS

[1] GARCÍA DE JALÓN, J. y BAYO, E. Kinematic and Dynamic Simulation of Multibody Systems. Springer-Verlag

[2] NIETO J. Síntesis de Mecanismos. Ed. AC

[3] FREUDENSTEIN, F. Approximate Synthesis of Four-bar Linkages. Trans. ASME, Vol. 77, pag. 853-859

[4] SUH, C.H. y RADCLIFFE, C.H. Kinematics and Mechanism Design. John-Wiley & Sons

[5] ERDMAN, A. G. y SANDOR, G. N. Mechanism Design – Analisis and Synthesis, Vol. 1. Prentice Hall

[6] KIRKPATRICK, S., GELATT, C. D. y VECCHI, M. P. Optimization by Simulated Annealing. Science, Vol. 220, pag. 671-680

[7] HOLLAND, J. H. Adaptation in Natural and Artificial Systems. University of Michigan Press

[8] KURI, A. y GALAVIZ, J. Algoritmos Genéticos. IPN-CIC, UNAM, FCE

[9] GOLDBERG, D. E. Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley Publications

[10] VASILIU, A. y YANNOU, B. Dimensional Synthesis of Planar Mechanisms using Neural Networks: Application to Path Generator Linkages. Mechanism and Machine Theory, Vol. 36 (2001), pag. 299-310

[11] STORN, R. y PRICE, K. Differential Evolution – A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces. Journal of Global Optimization 11, 1997, pag. 341-359

[12] CABRERA, J. A., SIMÓN A. y PRADO, M. Optimal Synthesis of Mechanisms with Genetic Algorithm. Mechanism and Machine Theory, Vol. 37 (2002), pag. 1165-1177

[13] TABERNERO, A. Análisis Numérico (Apuntes de la Asignatura). Facultad de Informática de la UPM

[14] KERNIGHAN, B. W. y RITCHIE D. M. El Lenguaje de Programación C. Prentice-Hall Hispanoamericana, S.A.

[15] AUTODESK, INC. Manual de Referencia de DXF

Memoria del PFC - José Hidalgo Díaz 40