6. - Universidad Nacional de Colombia

Anuncio
DISEÑO ÓPTIMO DE MECANISMOS DE CUATRO BARRAS PARA
GENERACIÓN DE MOVIMIENTO CON RESTRICCIONES DE MONTAJE Y
ÁNGULO DE TRANSMISIÓN.
HERIBERTO AUGUSTO PINTO LINARES
UNIVERSIDAD NACIONAL DE COLOMBIA
FACULTAD DE INGENIERÍA y ARQUITECTURA
DEPARTAMENTO DE INGENIERIA ELÉCTRICA, ELECTRÓNICA y COMPUTACIÓN
SEDE MANIZALES
Octubre de 2007
DISEÑO ÓPTIMO DE MECANISMOS DE CUATRO BARRAS PARA
GENERACIÓN DE MOVIMIENTO CON RESTRICCIONES DE MONTAJE Y
ÁNGULO DE TRANSMISIÓN.
HERIBERTO AUGUSTO PINTO LINARES
Memoria del trabajo de tesis presentado
como requisito parcial para optar por el grado de
MAGÍSTER EN INGENIERÍA: AUTOMATIZACIÓN INDUSTRIAL
FABIOLA ANGULO GARCIA Ph.D. – Directora de la tesis
ANDRÉS TOVAR PÉREZ, Ph.D. – Co-director de la tesis
UNIVERSIDAD NACIONAL DE COLOMBIA
FACULTAD DE INGENIERÍA y ARQUITECTURA
DEPARTAMENTO DE INGENIERIA ELÉCTRICA, ELECTRÓNICA y COMPUTACIÓN
SEDE MANIZALES
Octubre de 2007
a
Judi Isabel. Mi esposa
María Eugenia. Mi madre
Laura Catalina & Sofía Alejandra. Mis hijas
RESUMEN
Este trabajo parte del estudio de la forma de díada estándar y de cómo podría usarse para
encontrar soluciones óptimas para la tarea de generación de movimiento cuando se cuenta
con restricciones de montaje asociadas con la ubicación de los pares fijos del mecanismo.
Debido a su incidencia en la forma como se transfiere el movimiento desde el eslabón de
entrada hacia el de salida, así como a su afectación sobre otras características del
mecanismo, el ángulo de transmisión es el índice de mérito a optimizar.
Dado que era necesario optimizar el ángulo de transmisión para múltiples posiciones
prescritas y que cada posición estaba descrita mediante una expresión diferente, fue
necesario usar una estrategia para optimización multiobjetivo. La estrategia empleada fue la
“suma ponderada de funciones”. La formulación del problema de optimización se hizo
considerando 2, 3, 4 y 5 posiciones prescritas.
Las expresiones obtenidas para describir el modelo son de naturaleza no lineal y por lo
tanto para resolver el problema de diseño óptimo se usó una técnica de programación no
lineal. Basado en la técnica “programación cuadrática secuencial” (SQP) se desarrolló un
algoritmo usando MATLAB. Para introducir los datos prescritos, proporcionar la condición
inicial de manera fácil e intuitiva, correr el algoritmo y visualizar sus resultados, se
desarrolló un GUI.
AGRADECIMIENTOS
Para el desarrollo de este trabajo de tesis fueron invaluables la directrices proporcionadas
por la Doctora Fabiola Angulo García Docente de la Facultad de Ingeniería y
Arquitectura, Departamento de Ingeniería Eléctrica, Electrónica y Computación de la
Universidad Nacional Sede Manizales, y el Doctor Andrés Tovar Pérez Director
Académico de la Universidad Nacional Sede Bogotá, a quienes además agradezco
enormemente su apoyo y colaboración.
CONTENIDO
INTRODUCCIÓN y MOTIVACIÓN
12
1.
MARCO TEÓRICO
14
1.1.
TEORÍA SOBRE MECANISMOS
14
1.1.1.
Síntesis cinemática
15
1.1.2.
Categorías de la síntesis cinemática
15
1.1.3.
Métodos y técnicas de síntesis cinemática
16
1.1.4.
Diseño óptimo de mecanismos
17
1.1.5.
Descripción del ángulo de transmisión μ
18
1.1.6.
Expresión del ángulo de transmisión μ
18
1.1.7.
¿Porque optimizar μ ?
19
1.2.
TEORÍA SOBRE OPTIMIZACIÓN
21
1.2.1.
Variables de diseño
21
1.2.2.
Función de costo u objetivo
21
1.2.3.
Método de la suma ponderada de funciones
23
1.2.4.
Maximización
23
1.2.5.
Restricciones del sistema
24
1.2.6.
Forma estándar del modelo
24
1.2.7.
Restricciones activas, inactivas y violadas
25
1.2.8.
Solución del problema de optimización
25
2.
MODELAMIENTO
27
2.1.
EL OPERADOR DE ROTACIÓN PURA
27
2.2.
FORMA DE LA DIADA ESTANDAR
29
2.3.
VARIABLES DE DISEÑO y FUNCION DE COSTO
31
2.4.
RESTRICCIONES
36
2.4.1.
Primera restricción
36
2.4.2.
Segunda restricción
37
2.4.3.
Tercera restricción
40
2.4.4.
Otras restricciones
41
3.
FORMULACIÓN DEL PROBLEMA SEGÚN LA FORMA ESTANDAR
43
3.1.
VARIABLES DE DISEÑO
44
3.2.
VECTOR DE FUNCIONES OBJETIVO
45
3.2.1.
Optimización multiobjetivo
48
3.2.2.
Método de la suma ponderada
49
RESTRICCIONES DE DISEÑO
49
3.3.
3.3.1.
Tipo desigualdad
49
3.3.2.
Tipo igualdad
51
ENUNCIADOS DEL PROBLEMA DE OPTIMIZACIÓN
53
3.4.1.
Enunciado del problema para 2 posiciones prescritas
53
3.4.2.
Enunciado del problema para 3 posiciones prescritas
54
3.4.3.
Enunciado del problema para 4 posiciones prescritas
56
3.4.4.
Enunciado del problema para 5 posiciones prescritas
57
3.4.
3.5.
SOLUCIÓN DEL PROBLEMA DE OPTIMIZACIÓN USANDO MATLAB 59
4.
RESULTADOS
61
4.1.
EJEMPLOS DE APLICACIÓN PARA 2 POSICIONES PRESCRITAS
61
4.1.1.
Descripción del dibujo ilustrado en la ventana de datos (Figura 21)
63
4.1.2.
Descripción del dibujo ilustrado en la ventana de resultados (Figura 22)
63
4.2.
EJEMPLO DE APLICACIÓN PARA 3 POSICIONES PRESCRITAS
67
4.3.
EJEMPLO DE APLICACIÓN PARA 4 POSICIONES PRESCRITAS
69
5.
CONCLUSIONES
70
6.
TRABAJO FUTURO
72
REFERENCIAS
73
ANEXO A - DESCRIPCIÓN DE LA INTERFAZ GRÁFICA
75
ANEXO B - MANUAL DE USUARIO
77
ANEXO C - CÓDIGO DEL ALGORITMO
83
LISTA DE FIGURAS
Figura 1. Representación de un mecanismo de 4 barras
14
Figura 2. Mecanismo generador de movimiento: Tren de aterrizaje de un avión miniatura 16
Figura 3. Angulo de transmisión μ
18
Figura 4. Enfoque geométrico del ángulo de transmisión μ
19
Figura 5. Relación geométrica entre la ventaja mecánica y el ángulo μ
20
Figura 6. Gráfica de una función objetivo.
22
Figura 7. Maximización de una función objetivo.
23
Figura 8. Representación vectorial de un mecanismo generador de movimiento
27
Figura 9. Mecanismo en varias posiciones sucesivas.
28
Figura 10. Ángulos y vectores para el modelamiento del mecanismo.
29
Figura 11. Díada del motriz X2 y del acoplador X5
30
Figura 12. Vector de posición R0
38
Figura 13. Descripción de la tercera restricción
40
Figura 14. Espacio factible para los pares fijos
41
Figura 15. Datos y variables para 2 posiciones prescritas.
43
Figura 16. Datos y variables para 3 posiciones prescritas.
43
Figura 17. Datos y variables para 4 posiciones prescritas.
44
Figura 18. Datos y variables para 5 posiciones prescritas.
44
Figura 19. Estructura general del algoritmo
60
Figura 20. Datos del problema 1. Síntesis de 2 posiciones
62
Figura 21. Ventana de datos del problema 1. Síntesis de 2 posiciones
62
Figura 22. Ventana de resultados del problema 1. Síntesis de 2 posiciones
63
Figura 23. Dibujo del mecanismo del problema 1 en su entorno operativo.
64
Figura 24. Ventanas de datos y resultados del problema 2. Síntesis de 2 posiciones
65
Figura 25. Ventana de datos y resultados del problema 3. Síntesis de 2 posiciones
66
Figura 26. Ventana de datos y resultados del problema. Síntesis de 3 posiciones
67
Figura 27. Solución alternativa para el problema de síntesis de 3 posiciones
68
Figura 28. Ventana de datos y resultados del problema. Síntesis de 4 posiciones
69
Figura 29. Ventana de datos prescritos
75
Figura 30. Ventana de Resultados
76
Figura 31. Orientación de cada posición prescrita.
78
Figura 32. Posición relativa de cada posición prescrita.
78
Figura 33. Posición relativa de la zona del bastidor.
79
Figura 34. Condición inicial
81
LISTA DE TABLAS
Tabla 1. Estado de una restricción.
25
Tabla 2. Factores de peso del vector de objetivos
49
Tabla 3. Archivo de datos. Dos_posic_DAT.m
84
Tabla 4. Archivo principal. Dos_posic_EXE.m
84
Tabla 5. Archivo de funciones objetivo. Dos_posic_fun.m
86
Tabla 6. Archivo de restricciones. Dos_posic_Res.m
87
INTRODUCCIÓN y MOTIVACIÓN
Esta tesis incluye un trabajo en el campo de la síntesis dimensional de mecanismos que se
enmarca dentro del área de la dinámica de cuerpos rígidos, particularmente en la rama de la
cinemática que trata del estudio de la geometría del movimiento sin hacer referencia a la
causa que lo produce.
Cuando se requiere un artefacto que sea capaz de guiar un cuerpo a través de una secuencia
de movimientos prescrita, generalmente se piensa que la solución es un sistema
automatizado de actuadores mecánicos que coordinados electrónicamente cumplen con la
tarea de movimiento, sin embargo la solución será costosa y estará sobredimensionada a
menos que la tarea deba “ajustarse” en función del ambiente operativo.
Las tareas de conducción de cuerpo rígido que no requieran “ajustarse”, pueden satisfacerse
mediante mecanismos de barras generadores de movimiento, que son un recurso
económico, práctico, confiable y fácil de implementar; sin embargo no siempre es fácil
obtener un diseño que satisfaga las restricciones de montaje presentes en una necesidad de
movimiento real y que además tenga índices de mérito adecuados.
Un índice de mérito ayuda a identificar dentro de un conjunto de soluciones, cual es la que
con mayor efectividad transmite el movimiento. Se eligió el ángulo de transmisión como el
índice a optimizar debido a su afectación directa sobre importantes parámetros de
funcionamiento del mecanismo, tales como la ventaja mecánica, la razón de velocidades
angulares y el ángulo de presión.
Para la formulación del problema de optimización se eligió el conjunto de variables de
diseño apropiado de manera que puedan representarse los eslabones de un mecanismo
generador de movimiento que debe pasar a través de 2, 3, 4 o 5 posiciones prescritas y
cuyos pares fijos deben confinarse dentro de un área específica. La tarea de generación de
movimiento (posición y orientación del eslabón acoplador) se satisface mediante las
restricciones de diseño. Para simplificar la formulación del problema se aplicó el concepto
del operador de rotación pura.
El ángulo de transmisión para cada posición prescrita se describe mediante una expresión
diferente por lo tanto fue necesario obtener un vector de objetivos. Como era de
importancia que tal ángulo tuviese valores óptimos particularmente en las posiciones inicial
y final, se aplicó la estrategia de la “suma ponderada de funciones” de forma que se
destacaron las funciones objetivo correspondientes.
Dado que las expresiones obtenidas para describir el modelo son de naturaleza no lineal, se
usó la técnica “programación cuadrática secuencial” (SQP), que representa el estado del
12
arte en las técnicas de programación no lineal (NLP) basadas en la filosofía de la dirección
de descenso.
Cuando se emplea SQP (y la gran mayoría de métodos de optimización) la solución
depende en gran medida de la condición inicial. Así que es probable que sea necesario
probar diversos conjuntos de datos hasta encontrar una solución, pero para el caso que
atañe este trabajo, preparar e introducir los datos correspondientes en forma manual era
una tarea larga y tediosa, y en la mayoría de las veces no se sabía si se avanza en la
dirección correcta. Por lo tanto se desarrolló una interfaz gráfica (GUI) que permite señalar
mediante el Mouse de forma rápida e intuitiva dicha condición inicial, además ayuda a
“seguirle la pista” a una mejor solución.
El algoritmo y el GUI desarrollados le ofrecen al diseñador una buena herramienta para
encontrar mecanismos de barras, que de manera eficientes solucionen los problemas
asociados con la conducción de un cuerpo rígido a través de una serie de posiciones
prescritas.
13
1. MARCO TEÓRICO
1.1. TEORÍA SOBRE MECANISMOS
Reuleaux 1 , define mecanismo como una "combinación de cuerpos resistentes conectados
por medio de articulaciones para formar una cadena cinemática cerrada con un eslabón fijo
y cuyo propósito es transformar el movimiento". En un mecanismo las articulaciones se
denominan pares; los cuerpos resistentes eslabones; y el eslabón fijo bastidor o marco. El
eslabón que no está unido directamente al bastidor se designa como acoplador.
El mecanismo formado por cuatro eslabones (de tipo barra) y cuatro pares de revoluta
(pasador) es el más simple que existe, no obstante en el ámbito industrial es el más
utilizado a todo nivel, desde juguetes y electrodomésticos hasta máquinas herramientas de
alta precisión. Su versatilidad y extendido uso se debe fundamentalmente a su simplicidad y
a la posibilidad de enlazarse con otros eslabonamientos para formar mecanismos de 5 o más
eslabones.
En la Figura 1 se ilustra los eslabones y pares de un mecanismo de 4 barras, tanto en
representación detallada 1(a) como en forma vectorial 1(b).
Figura 1. Representación de un mecanismo de 4 barras
B
3
X3
A
X4
4
X2
2
O2
1
O4
X1
(b)
(a)
El eslabón 1 o X1 es el bastidor o marco, el eslabón 2 o X2 es el de entrada o motriz, el
eslabón 3 es el flotante o acoplador X3, el eslabón 4 o X4 es el de salida o seguidor.
1
F. Reuleaux (1829 - 1905). Especialista Alemán en cinemática cuyo trabajo marcó el principio de un estudio
sistemático de la cinemática.
14
El estudio de los mecanismos se puede dividir en 2 partes; análisis y síntesis. En el análisis
se evalúa si un mecanismo existente es adecuado para desarrollar cierto trabajo o tarea,
mientras que en la síntesis se establecen tamaños, formas, composición y disposición de los
eslabones para que desempeñen una tarea de movimiento prescrita. Concretamente, la
síntesis cinemática busca encontrar el mecanismo adecuado que reproduzca un movimiento
particular
1.1.1. Síntesis cinemática
Dependiendo del punto de partida en un problema de diseño de mecanismos, la síntesis
cinemática puede ser [Erdman, 1997]:
• Síntesis de Tipo: busca definir cual es la combinación topológica (barras, ruedas
dentadas, leva-seguidor etc.) de eslabones y el tipo de articulaciones (pares de revoluta,
prismático, helicoidal, de rodadura etc.) más apropiada para resolver una tarea de
movimiento.
• Síntesis Dimensional: se parte del conocimiento de la topología del mecanismo (número
y tipo de eslabones y pares) y busca establecer las dimensiones y posición inicial de una
potencial solución para una tarea de movimiento. La síntesis dimensional se utiliza
preferiblemente en la creación de mecanismos cuya topología es un eslabonamiento de
barras.
Dependiendo de la tarea que un mecanismo desempeñe, se puede clasificar dentro de
algunas de las siguientes categorías.
1.1.2. Categorías de la síntesis cinemática
Erdman y Sandor [Erdman, 1997] clasifican los mecanismos que realizan una determinada
tarea, de la siguiente forma:
• Generador de movimiento: aquí es muy importante el movimiento total del acoplador
(Posición y orientación angular). Ver la Figura 2.
• Generador de función: aquí resulta de interés las fuerzas o el movimiento relativo entre
los eslabones conectados a tierra.
• Generador de trayectoria: aquí es de interés la trayectoria que sigue un punto ubicado
sobre el acoplador (curva de acoplador) y no la rotación misma de este.
15
Figura 2. Mecanismo generador de movimiento: Tren de aterrizaje de un avión miniatura
Acoplador
Fuselaje
65.6°
90.0°
A
148.0°
B
Tren de aterrizaje
de un avión
miniatura
A = 0,0
B = 13.4,-15.8
C = 27.7,-18.8
C
Fuente: Basado en el problema 8.20 de [Erdman, 1997]
El diseño de cualquiera de estos mecanismos se puede hacer de muchas formas posibles.
1.1.3. Métodos y técnicas de síntesis cinemática
Para diseñar un mecanismo siempre se parte de ciertos datos y restricciones, como por
ejemplo; un número de posiciones, un movimiento específico del eslabón de seguidor o de
salida o una trayectoria particular, una ubicación de los pares fijos, etc. De tales datos se
obtiene la geometría de unos puntos a través de los cuales se debe mover la solución
encontrada. Los métodos para encontrar dicha solución se pueden agrupar de la siguiente
forma [Norton, 2005]:
• Métodos basados en puntos de precisión: Se usan para síntesis dimensional. El
mecanismo obtenido pasa exactamente a través de los puntos pero es probable que pueda
desviarse entre ellos. Estos métodos acoplan un máximo de 9 puntos (hasta 5 puntos en
la generación de movimiento, 7 en la generación de función y 9 en la generación de
trayectoria). Se pueden usar para sintetizar cualquiera de los generadores descritos
anteriormente, además son relativamente rápidos, fáciles de comprender y de llevar a las
aulas de clase, son computacionalmente viables, pueden resolver problemas con pares
fijos o encontrar muchas soluciones, desafortunadamente no puede entregar soluciones
óptimas o al menos eliminar las defectuosas. Su mayor limitación está en los pocos
puntos que pueden manejar, sobre todo para tareas críticas como generación de función
16
y trayectoria donde son deseables más de 7 ó 9 puntos, sin embargo en el ámbito
industrial un generador de movimiento puede trabajar muy bien con solo 3 ó 4 puntos.
Allí lo que importa no es el número de puntos sino que la solución sea simple, eficiente,
funcional y libre de defectos.
• Métodos basados en ecuaciones de la curva del eslabón acoplador: Se usan para síntesis
dimensional. El mecanismo obtenido debe seguir una curva de acoplador que se
aproxime a la forma descrita por una ecuación algebraica (de orden 6 y hasta de 15
términos). Pueden manejar entre 10 y 15 puntos y solo se pueden usan en generadores de
trayectoria.
• Métodos de optimización: Se usan para síntesis de tipo y dimensional. Tienen muy poco
en común excepto la necesidad de ser programadas en un computador y de una función
objetivo. La función se construye a partir de los datos y condiciones del problema. A
esta se le aplica una técnica de optimización de la que resultan los puntos que describen
una trayectoria particular, los puntos de esta trayectoria no pasan exactamente por la
trayectoria deseada pero se aproximan lo suficiente como para ser aceptados en la
mayoría de trabajos de ingeniería. Manejan grandes cantidades de puntos (Implica una
carga computacional mas alta) y aunque pueden usarse en cualquier tarea de generación
se usan preferiblemente en las de trayectoria y función. Cuando hay numerosas
condiciones de diseño, encontrar la función objetivo puede ser una tarea más titánica que
encontrar la solución misma (aun para la popular técnica de los mínimos cuadrados). El
advenimiento de computadores poderosos ha contribuido en gran medida a que estas
técnicas tengan tantos adeptos, sin embargo la mayoría de los métodos son complejos y
matemáticamente complicados.
1.1.4. Diseño óptimo de mecanismos
La solución obtenida al diseñar un mecanismo de barras generador de movimiento, además
de satisfacer las restricciones geométricas y de montaje presentes en una necesidad de
movimiento real, debe tener índices de mérito adecuados.
Los índices de mérito [Uicker, 2003] revelan si un mecanismo es eficiente o no y pueden
determinarse exclusivamente mediante la geometría del mismo. Existen numerosos índices,
tales como la ventaja mecánica, la razón de las velocidades de salida a la de entrada, el
ángulo de presión, etc. Sin embargo es el ángulo de transmisión μ, el índice que ayuda a
identificar dentro de un conjunto de soluciones, cual es la que con mayor efectividad
transmite el movimiento, además está relacionado en forma directa con otros índices, de
manera que su afectación incide en ellos. Se puede afirmar que un buen ángulo de
transmisión es la solución a muchos de los problemas en mecanismos [Balli, 2002].
17
1.1.5. Descripción del ángulo de transmisión μ
El ángulo de transmisión μ es un índice de mérito, que se define como el menor ángulo
entre la dirección del vector de diferencia de velocidad VB/A del eslabón flotante
(acoplador) y la dirección de la velocidad absoluta VB del eslabón de salida (seguidor),
ambas direcciones tomadas en el último par móvil del mecanismo [Hartenberg, 1964] (ver
la Figura 3a). Es importante señalar que μ depende de cuales eslabones se han elegido
como acoplador y seguidor; por ejemplo si se transpone la función de los eslabones unidos
a tierra, convirtiéndose al motriz en seguidor y viceversa, μ debe medirse en el par A, no en
B.
Cuando los vectores X3 y X4 forman un ángulo agudo, los ángulos μ y γ de la Figura 3 son
congruentes y por lo tanto μ = γ. Si el ángulo incluido entre dichos vectores, no es agudo
entonces μ = 180 - γ. El ángulo μ cambia a medida que el mecanismo se mueve. En un
mecanismo de 4 barras, μ está comprendido entre 0 y 90º.
Figura 3. Angulo de transmisión μ
μ
B
B
X3
γ
A
μ
VB
X3
γ
VB/A
X4
X4
μ = π2
B
X2
X3
γ
X4
X1
(a)
(b)
1.1.6. Expresión del ángulo de transmisión μ
Como en el diseño cinemático de mecanismos no se conocen las longitudes de los
eslabones ni sus masas, la expresión del ángulo de transmisión debe obtenerse
cinemáticamente. Aplicando el enfoque geométrico sugerido por [Balli, 2002] a los
módulos de los vectores mostrados en la Figura 4 se puede deducir una expresión para el
ángulo μ.
Al aplicar el teorema del coseno a los triángulos O2AO4 y BAO4 se infiere que
H 2 = X 12 + X 22 − 2 X 1 X 2 cos θ y H 2 = X 32 + X 42 − 2 X 3 X 4 cos γ . Si se iguala H y se despeja γ ,
se obtiene:
18
⎡ − X 12 − X 22 + 2 X 1 X 2 cos θ + X 32 + X 43 ⎤
γ = cos ⎢
⎥
2X3 X4
⎣
⎦
⎧ γ
μ = min ⎨
⎩π − γ
−1
(1)
Figura 4. Enfoque geométrico del ángulo de transmisión μ
B
X3
B
X3
γ
A
γ
A
A
X4
X4
H
X2
X2
θ
θ
O4
O4
O2
O4
X1
O2
X1
1.1.7. ¿Porque optimizar μ ?
El ángulo μ guarda una importante relación con la ventaja mecánica. Esta última es una
medida de la capacidad con que un mecanismo transmite un movimiento. Para el caso de un
mecanismo de 4 barras es la relación instantánea entre el momento de carga resistiva τ4 en
el eslabón de salida y el momento de entrada τ2 aplicado al eslabón de entrada, es decir:
VM=
τ4
τ2
Si se supone que el mecanismo de la Figura 5, carece de fuerzas de inercia o de fricción
durante su operación, o que estas son despreciables comparadas con τ2 y τ4 , se puede
afirmar que la potencia de entrada aplicada al eslabón de entrada es el negativo de la
potencia aplicada al eslabón de salida debido a la acción de la carga, es decir:
τ 2 ω2 = − τ 4 ω4 →
τ4
ω
=− 2
τ2
ω4
(cualquiera de estas 2 razones puede
usarse como indice de mérito)
Del teorema de la razón de velocidades “la razón de las velocidades angulares de 2 cuerpos
cualesquiera en movimiento plano, en relación con un tercer cuerpo, es inversamente
19
proporcional a los segmentos en los que el centro instantáneo común corta la línea de los
centros” y de la Figura 5 se puede inferir que:
ω2 CO 4
τ
ω
CO4
y por lo tanto 4 = − 2 = −
=
ω4 CO 2
τ2
ω4
CO2
Figura 5. Relación geométrica entre la ventaja mecánica y el ángulo μ
B'
B
μ
A
A'
Centro instantáneo
de los eslabones 2 y 4
4
ρ
2
Linea de centros
C
O2
τ2
τ4
ω2
ω4
O4
Por triángulos semejantes se puede observar que:
O 4 B sin ( μ )
CO 4 O 4 B sin ( μ )
τ
ω
=
y por lo tanto la ventaja mecánica es: VM = 4 = − 2 = −
CO 2 O 2 A sin ( ρ )
τ2
O 2 A sin ( ρ )
ω4
Como se evidencia la ventaja mecánica es directamente proporcional al sin (μ), entonces
valores pequeños del ángulo, la empequeñecen y por lo tanto reducen la efectividad con
que se transmite el movimiento desde el acoplador hacia el seguidor, incluso una cantidad
muy pequeña de fricción hará que el mecanismo se trabe [Uicker, 2003].
El mínimo valor de μ sugerido por Tao esta entre 35 y 45º [D. C. Tao, 1964], Von H. Alt
propone 40º [Von H. Alt, 1932], en concordancia con una regla empírica general, Edman y
Sandor sugiere rechazar cualquier mecanismo de justas de revoluta (pasador), que tenga
ángulos de transmisión menores a 30º [Erdman,1997].
Cuanto menos se desvíe μ de 90º, mejor será el funcionamiento del mecanismo, por lo tanto
el valor óptimo de μ es 90º [Balli, 2003]. En el enunciado del problema de diseño de un
generador de movimiento, las posiciones a través de las cuales el mecanismo debe moverse
son conocidas. Es de suma importancia que μ tenga valores óptimos en tales posiciones,
sobre todo en la inicial y la final.
20
Otro índice de mérito que está directamente relacionado con el ángulo μ es el ángulo de
presión λ. El ángulo λ es también un buen indicador de la calidad con que se transmite el
movimiento, pero es principalmente un factor que establece el grado de sensitividad del
mecanismo a pequeños errores en la fabricación de sus eslabones. Un valor alto de este
ángulo sumado a errores de diseño o construcción (por ejemplo, debido a tolerancias
geométricas inadecuadas) hará que el mecanismo tienda a bloquearse con facilidad
[Sutherland, 1974]. Pequeños ángulos de presión son consistentes con mínimos errores
mecánicos [Hartenberg, 1964]. El ángulo λ es el complemento del ángulo μ, es decir
λ = 90 - μ .
Los argumentos enunciados en esta sección son suficiente evidencia para demostrar por qué
debe optimizarse el ángulo μ.
1.2. TEORÍA SOBRE OPTIMIZACIÓN
Uno de los mayores desafíos para cualquier diseñador es encontrar un sistema eficiente y
económico que sin comprometer su integridad, pueda resolver un problema particular. Las
técnicas de optimización ofrecen al diseñador un camino para alcanzar este objetivo, y se
basan en conceptos matemáticos como el algebra vectorial y el cálculo con múltiples
variables.
El riguroso proceso para encontrar soluciones mediante optimización implica identificar un
conjunto de variables de diseño, definir la función de costo u objetivo y las funciones que
restringen el sistema. A este proceso se le conoce como formulación matemática del
problema de diseño. Es generalmente aceptado que la correcta formulación toma alrededor
del 50% del esfuerzo total necesario para resolverlo.
1.2.1. Variables de diseño
El primer paso en la formulación del problema, consiste en identificar el conjunto de
variables x = ( x1 , x2 ,..., xn ) que describen al sistema, cuando a estas se le asigna un valor
numérico se obtiene una solución al problema. Si la solución no satisface todas las
restricciones, se considera que no es factible.
Es deseable que las variables sean independientes unas de otras, tanto como sea posible o
de lo contrario habría que añadir más restricciones al sistema para que no haya
inconsistencias, lo que podría complicar innecesariamente la formulación del problema.
Obteniendo las variables dependientes en términos de las independientes o asignándoles
valores numéricos es posible eliminarlas.
1.2.2. Función de costo u objetivo
Un problema particular puede tener muchas soluciones posibles, algunas de las cuales son
mejores que otras. Para establecer cuales son las mejores se debe tener unos criterios que
21
permitan hacerlo. Un criterio usado es el de la función objetivo f ( x ) , que es una función
escalar cuyo valor numérico se obtiene al darle valores a las variables de diseño. La mejor
solución del problema será la configuración de variables de diseño que minimice tal
función.
Por ejemplo, dada la función objetivo de cierto sistema f ( x ) = 200 − 170 x + 54 x 2 es
necesario encontrar el valor de x que minimice a f ( x ) . Cada valor dado a x arroja otro
valor para f ( x ) ; por ejemplo para el punto A de la grafica de la función mostrada en la
Figura 6, x = 0 → f ( x ) = 200 ; en el punto B , x = 0.5 → f ( x ) = 128.5 , para este caso solo
hay un punto que hace que la función adquiera el mínimo valor y es el punto C, donde
x = 1.574 → f ( x ) = 66.204 .
Figura 6. Gráfica de una función objetivo.
Concluyendo; en un problema de optimización es la función objetivo quien valora el
funcionamiento de un sistema.
En algunos problemas es posible que sea necesario optimizar en forma simultánea 2 o más
funciones objetivo (por ejemplo minimizar el peso y la deflexión del armazón de una
máquina), a los cuales se les denomina problemas de optimización multiobjetivo. Aquí lo
que se busca es minimizar un vector de objetivos F ( x ) . Como cada una de las funciones
que compone dicho vector compite con las demás, al encontrarse una solución el logro de
una función implicará la degradación de las otras [Pareto, 1971]. Aunque existen
22
numerosas técnicas para obtener el vector de objetivos, solo se describe la técnica de la
“Suma ponderada” que se usa en este trabajo.
1.2.3. Método de la suma ponderada de funciones
La técnica emplea unos coeficientes de peso que por lo general establecen el grado de
importancia de las funciones objetivo dentro del vector F ( x ) . El vector se expresa de la
siguiente manera:
n
F ( x ) = ω1 f1 ( x ) + ω2 f 2 ( x ) + ... + ωn f n ( x ) es decir F ( x ) = ∑ ωn f n ( x )
i =1
en donde ω es no negativo; ω1 + ω2 + ... + ωn = 1; n > 1 ; n ∈
*
1.2.4. Maximización
El problema de maximización se aborda transformando la función objetivo de manera que
f ( x ) = −ℑ ( x ) . Al transformar la función de la sección 1.2.2, resulta
ℑ ( x ) = −(200 − 170 x + 54 x 2 ) = −200 + 170 x − 54 x 2 , cuya gráfica se observa en la siguiente
figura. El valor de x que maximiza la función se da cuando x = 1.574 → ℑ ( x ) = −66.204
Figura 7. Maximización de una función objetivo.
Se evidencia que f ( x ) es una reflexión de ℑ ( x ) con relación al eje x , y que el mínimo
valor de f ( x ) ocurre en el mismo punto donde ℑ ( x ) es máximo. Por lo tanto la
minimización de f ( x ) es equivalente a la maximización de ℑ ( x ) .
23
1.2.5. Restricciones del sistema
El sistema a diseñar puede tener condiciones que limitan su operación. Para la formulación
matemática del problema de diseño tales condiciones son denominadas restricciones, que
son funciones del tipo igualdad h ( x ) o del tipo desigualdad g ( x ) y se obtienen en
términos de las variables de diseño. Las restricciones pueden ser tan simples como el
mínimo (o máximo) valor de dichas variables o pueden tan complejas como una expresión
no lineal.
Las restricciones h ( x ) definen de manera precisa la condición que debe ser satisfecha por
la solución (por ejemplo x = 3 ) lo que puede limitar significativamente el espacio o región
de soluciones factibles, mientras que las restricciones g ( x ) lo hacen de una forma laxa. La
colección de todas las soluciones factibles se conoce como región factible y se denota Ω .
Una formulación con muchas restricciones hace que Ω se encoja.
Cuando los valores encontrados para las variables de diseño satisfacen las restricciones, se
dice que es un punto de diseño y se denota como x* . Dependiendo de cómo se satisfacen
estas, se pueden considerar como activas, inactivas o violadas.
1.2.6. Forma estándar del modelo
La forma estándar del modelo es un esfuerzo por unificar el lenguaje para formular
matemáticamente un problema de optimización sin importar el campo del saber al cual
pertenezca. El enunciado del problema debe transcribirse de la siguiente manera:
Encontrar un vector-n
función objetivo.
x = ( x1 , x2 , . . . , xn ) de variables de diseño para minimizar la
f ( x ) = f ( x1 , x2 , . . . , xn )
Sujeto a p restricciones de tipo igualdad.
h j ( x ) ≡ h j ( x1 , x2 , . . . , xn ) = 0;
j = 1 hasta p
Sujeto a m restricciones de tipo desigualdad.
gi ( x ) ≡ gi ( x1 , x2 , . . . , xn ) ≤ 0;
i = 1 hasta m
En donde p es el número total de restricciones tipo igualdad y m es el número total de
restricciones tipo desigualdad.
El número de restricciones h j ( x ) debe ser menor o cuando menos igual al número de
variables de diseño. Lo contrario evidenciaría que hay algunas restricciones que no son
independientes o que la formulación del problema es inconsistente.
24
Si f ( x ) , h j ( x ) y g i ( x ) son lineales en sus variables de diseño, entonces el problema es
denominado, problema de programación lineal. Si una de estas funciones no es lineal el
problema es llamado problema de programación no lineal.
1.2.7. Restricciones activas, inactivas y violadas
Empleando la notación de la forma estándar del modelo, la siguiente tabla resume la
condiciones que debe cumplirse para que una restricción sea activa, inactiva o violada.
Tabla 1. Estado de una restricción.
condición
Restricciones de tipo igualdad
activa
h ( x* ) = 0
inactiva
h ( x* ) ≠ 0
violada
-------
Restricciones de tipo
desigualdad
g ( x* ) = 0
g ( x* ) < 0
g ( x* ) > 0
1.2.8. Solución del problema de optimización
Cuando el número de variables de diseño y restricciones es grande, o las funciones del
problema de diseño son altamente no lineales, o no es posible obtener las funciones
objetivo y restricciones de forma explicita y funcional en términos de variables de diseño
independientes, resolver el problema mediante métodos analíticos puede ser muy difícil o
no aplicable en todos los casos.
Debido a esto es necesario usar una aproximación sistemática al óptimo mediante un
algoritmo basado métodos numéricos. Usando un estimado inicial para las variables de
diseño, el algoritmo va modificándolas iterativamente y a la vez verifica que se satisfagan
las condiciones de optimalidad (establecen si un punto de diseño es candidato a óptimo). El
objetivo es alcanzar un valor menor para la función de costo en cada iteración.
El proceso iterativo se puede describir mediante la siguiente ecuación vectorial:
(
)
( )
( )
X k+1 = X k +α k d k
( )
Donde k representa el número de iteración y α k d k un pequeño movimiento en el espacio
( )
de diseño hacia un punto que represente un mínimo local. El vector d k es la dirección en
que se hace el movimiento (dirección de búsqueda) y α k es un escalar positivo que define
el tamaño del movimiento (tamaño de paso).
La idea básica del algoritmo es partir de un razonable punto de diseño (condición inicial
( )
X 0 ) que al ser evaluado en las derivadas y funciones de diseño (costo y restricciones) del
25
( )
problema, permita estimar la dirección de búsqueda d k y el tamaño de paso α k que
permitiría moverse a un nuevo punto de diseño en caso que el algoritmo no haya
convergido.
Encontrar un punto que haga mas pequeña la función objetivo se puede expresar
matemáticamente como:
(
(
)
f x k+1
)
( )
( )
< f xk
(
(
)
( )
es decir f x k+1 + α k d k
)
( )
( )
< f xk
( )
En la vecindad del punto X k es posible aproximar la función mediante la expansión de
Taylor y por lo tanto:
( )
( )
( ( ) id )
( )
(k)
f x k + α k ∇f x k
( )
( )
< f xk
( )
( )
En donde ∇f x k es el gradiente de f ( x ) en el punto X k . Geométricamente ∇f x k
( )
es el vector normal al plano tangente en el punto X k de la gráfica de la función, también
puede asociarse con la dirección de máximo incremento de la función. Para que se satisfaga
la anterior desigualdad debe cumplirse que:
( )
( )
( ( ) id )
( )
(k)
α k ∇f x k
( )
< 0
A su vez, para que se satisfaga la anterior desigualdad (denominada condición de descenso)
y en concordancia con la definición del producto punto, el ángulo entre los vectores
( )
( )
( )
∇f x k y d k debe estar entre 90º y 270º. En otras palabras cualquier vector d k que
satisfaga dicha desigualdad hará que el movimiento en esa dirección haga disminuir la
función de costo.
( )
Existen técnicas bastante conocidas que se basan en el hecho que el negativo del gradiente
representa la dirección de búsqueda (métodos del gradiente). Aunque los métodos del
gradiente son simples (solo usan la información del gradiente) y robustos (convergen) tiene
ratas de convergencia bajas (se requiere un gran número de iteraciones), y además son
ineficientes (cada iteración es independiente de las otras). Otros métodos que incluyen la
información de segundo orden (el Hessiano) como el de Newton, tienen buena propiedades
de convergencia, sin embargo son ineficientes y en muchos casos puede ser muy tedioso o
imposible calcular el Hessiano.
Los métodos conocidos como quasi-Newton o de actualización del Hessiano, que se basan
en un procedimiento que usa la última iteración y el gradiente para obtener en forma
aproximada el Hessiano, tienen las características deseadas de los métodos descritos
anteriormente. La técnica “Programación cuadrática secuencia SQP” usada en este trabajo,
es quien representa el estado del arte en las técnicas de NLP basadas en la filosofía de la
dirección de descenso.
26
2. MODELAMIENTO
Los conceptos del operador de rotación pura y la ecuación de cierre de circuito, necesarios
para simplificar el modelo matemático de un mecanismo que pasa a través de múltiples
posiciones sucesivas son revisados en este capitulo. Una vez expuestos se continúa con la
descripción de la técnica de la forma de díada estándar y las dificultades que ofrece al tratar
de usarse directamente en la obtención de una función objetivo.
Además se describen los datos y variables que intervienen en el problema de diseño de
mecanismos asociados con el trabajo de tesis, las variables de diseño, la función objetivo y
las restricciones necesarias para lograr que el algoritmo entregue soluciones óptimas.
2.1. EL OPERADOR DE ROTACIÓN PURA
En la Figura 8 se ilustra los eslabones y pares de un mecanismo generador de movimiento,
tanto en representación detallada 8(a) como en forma vectorial 8(b).
Figura 8. Representación vectorial de un mecanismo generador de movimiento
m
B
3
X6
X5
X3
A
X4
4
X2
2
1
O4
O2
X1
(b)
(a)
El eslabón 3 (descrito mediante los vectores X3, X5 Y X6) es el flotante o acoplador. Cabe
destacar que en un mecanismo generador de movimiento es muy importante el movimiento
total del eslabón acoplador [Erdman, 1997] (su orientación angular y las coordenadas del
punto m).
27
Para representar un mecanismo que se mueve a lo largo de varias posiciones sucesivas se
usa un conjunto de vectores diferente para cada posición. Como se puede evidenciar en la
Figura 9, para la primera posición los vectores son X2, X3, X4, X5, X6; para la segunda X2*,
X3*, X4*, X5*, X6*; para la “j-ésima” X2j, X3j, X4j, X5j, X6j (X1 no cambia por ser el
bastidor). Obtener cualquier expresión matemática que involucre más de una posición sería
complejo de no ser por el operador de rotación pura.
Figura 9. Mecanismo en varias posiciones sucesivas.
X5
X6
X6 *
X5 *
X3 *
X3
X6j
X4
X5j
X2
X3j
X1
El operador de rotación pura permite representar la segunda, tercera y “j-ésima” posición de
un cuerpo rígido en términos de la primera. Por ejemplo para representar el eslabón motriz
en la segunda posición X2*, basta multiplicar el vector X2 por el vector
ei β1 ( ei β1 ≡ cos β1 + i sin β1 identidad de Euler ) . e i β1 es el operador de rotación pura y β1 es
el ángulo que rota el eslabón desde la primera posición.
A continuación se ilustran las expresiones de los eslabones del mecanismo en la segunda y
en la “j-ésima” posición:
X 2 * = X 2 ei β1 ; X3 * = X3 ei α1 ; X4 * = X4 ei φ1 ; X5 * = X5 ei α1 ; X6 * = X6 ei α1
iβ
X2j = X 2 e j ; X 3j = X 3 e
iαj
iφ
; X4j = X4 e j ; X5j = X5 e
iα j
; X6j = X6 e
iαj
Al usar el operador de rotación los vectores y ángulos que deberían introducirse en el
modelamiento matemático del mecanismo en varias posiciones sucesivas son: (en la Figura
10 se ilustran)
28
X1 , X2 , X3 , X4 , X5 , X6 , α1 , ... , α j , β1 , ... , β j , φ1 , ... , φ j
Figura 10. Ángulos y vectores para el modelamiento del mecanismo.
X5
X6
α1
X3
φ1
φj
β1
αj
X4
βj
X2
X1
2.2. FORMA DE LA DIADA ESTANDAR
En síntesis dimensional, todos los métodos basados en puntos de precisión y algunos de
otras categorías, se fundamentan en la forma de la díada estándar.
La combinación de dos vectores se llama díada. Dos díadas definen plenamente la
geometría de un mecanismo de cuatro barras. En la Figura 11 se ilustra una de ellas; los
vectores X2 , X5 representan los eslabones motriz y acoplador en la primera posición, y
X2 ei βj , X5 ei αj a los mismos eslabones en otra posición diferente denominada j-ésima. Las
posiciones ( P1 , P2 , . . . , Pj ) junto con α1 , α 2 , . . . , α j son dadas por el enunciado del
problema y se denominan posiciones prescritas.
Sumando los vectores en una trayectoria cerrada en sentido horario (ecuación de cierre de
circuito) que parte de O2 y vuelve a este, se obtiene:
X 2 e i βj + X 5 e i α j − R j + R 1 − X 5 − X 2 = 0
Si δ j = R j − R1 entonces:
para la díada X 2 y X4 se tiene: X 2 ( ei βj − 1) + X5 ( ei αj − 1) = δ j en donde j = 2,3,..., n
29
Si se conocen el vector δ j y el ángulo α j , la ecuación anterior se denomina forma de la
díada estándar. De manera equivalente se obtiene otra ecuación para los vectores X4 , X6 :
para la díada X 4 y X 6 se tiene: X 4 ( ei φj − 1) + X 6 ( ei αj − 1) = δ j en donde j = 2 ,3,..., n
Figura 11. Díada del motriz X2 y del acoplador X5
0,0
Rj
R1
P1
Pj
δj
X5 e i αj
αj
X6
X5
X3
X4
X2
X2 e i βj
βj
X1
O2
O4
Las ecuaciones de cada díada se resuelven separadamente asumiendo valores para algunas
incógnitas; por ejemplo para 3 posiciones prescritas resultan 4 ecuaciones con 12 incógnitas
de las cuales es necesario asumir valores para 4 de ellas (las incógnitas son las
componentes escalares de los vectores X2 , X5 , X4 , X6 , y los ángulos β1 ,β2 ,φ1 ,φ2 ). A
continuación se muestran las ecuaciones de las díadas.
X 2 ( ei β1 − 1) + X 5 ( ei α1 − 1) = δ1 ⎫⎪
⎬ díada X 2 y X 5
X 2 ( ei β2 − 1) + X 5 ( ei α 2 − 1) = δ 2 ⎪⎭
X 4 ( ei φ1 − 1) + X 6 ( ei α1 − 1) = δ1 ⎫⎪
⎬ díada X 4 y X 6
X 4 ( ei φ 2 − 1) + X 6 ( ei α 2 − 1) = δ 2 ⎪⎭
Para el caso de 2 y 3 posiciones prescritas es posible obtener una solución lineal, solo si se
asumen los ángulos. De otra forma se obtiene un sistema de ecuaciones con expresiones
transcendentales cuya solución se obtiene mediante técnicas de resolución de ecuaciones no
lineales.
30
Cuando en este trabajo se habla de restricciones de montaje, se hace referencia a que se
conoce la posición de los pares fijos (es decir el vector X1 ) o al menos un área dentro de la
cual es posible ubicar los pares fijos del mecanismo. Como se puede evidenciar las
ecuaciones de la forma de la díada estándar no incluye a X1 , sino que se obtiene una vez
encontrados X2 , X5 , X4 y X6 , .
Para el caso del generador de movimiento, Loerch y otros desarrollaron un procedimiento
para incluir a X1 directamente en la forma de la díada estándar pero solo aplica para 2 y 3
posiciones prescritas [Loerch, 1975]. Posteriormente presentaron una técnica para 3
posiciones prescritas, que permitía encontrar los lugares geométricos de los pares fijos
(ciertamente a X1 ) a partir de una variación sistemática de los ángulos β1 ,β2 ,φ1 ,φ2 [Loerch,
1979]. Peterson y otros presentaron una mejora del software LINCAGES que permite
entrar la posición del bastidor de antemano y de forma interactiva probar diversos
conjuntos de valores para las incógnitas pudiéndose encontrar soluciones para 3 y 4
posiciones [Peterson, 1988]. Estos trabajos no obtienen soluciones con ángulos de
transmisión μ óptimos.
La forma de díada de manera explicita no involucra al ángulo de transmisión μ, por lo tanto
se procederá a obtener una expresión que represente tal ángulo y que pueda usarse para 2,
3, 4 o 5 posiciones prescritas y cuyos pares fijos estén confinados a un área prescrita.
2.3. VARIABLES DE DISEÑO y FUNCION DE COSTO
La expresión del ángulo μ, ilustrada en la ecuación (1) de la sección 1.1.6 es la función de
costo. Por conveniencia se ilustra de nuevo a continuación:
⎡ − X 2 − X 22 + 2 X 1 X 2 cos θ + X 32 + X 43 ⎤
γ = cos −1 ⎢ 1
⎥
2X3 X4
⎣
⎦
⎧ γ
μ = min ⎨
⎩π − γ
Podría pensarse que las variables de diseño son X1 ,X 2 ,X 3 ,X 4 y θ ya que a partir de ellas,
es posible obtener 2 mecanismos (un mecanismo cruzado y otro abierto). Sin embargo,
como se desea representar el mecanismo en múltiples posiciones sucesivas es necesario
usar el operador de rotación pura, por lo tanto tales variables deben expresarse en términos
de las componentes escalares de los vectores correspondientes, además para simplificar la
formulación del problema de optimización es deseable que las variables de diseño sean lo
más independientes unas de otras [Belegundu, 1999] y [Arora, 2004] cosa que no es cierta
ya que es factible obtener por lo menos una de ellas en términos de las otras.
31
Las variables más significativas para el trabajo son:
• X1 ya que representa al bastidor y debido a las restricciones de montaje esta confinado a
un área cuyos límites son conocidos. Además está relacionado con θ.
• X2 ya que es el eslabón motriz y está relacionado con θ.
• X3 representa al eslabón acoplador y es clave para definir un generador de movimiento.
A partir de lo afirmado anteriormente se concluye que es necesario obtener a X4 y θ en
términos de X1, X2, X3.
Para hallar X4, se puede deducir el modulo del vector X4 en términos de las componentes
escalares de los vectores X1, X2 y X3, planteando una ecuación vectorial a partir del
polígono ilustrado en la Figura 10.
Ecuación de cierre X2 +X3 − X4 − X1 = 0 ⇒ X4 = − X1 + X2 + X3
Separando parte real e imaginaria, el vector X4 se puede expresar como número complejo
en forma cartesiana así:
X4 = − X 1x + X 2 x + X 3 x + i ( − X 1 y + X 2 y + X 3 y )
componente escalar X 4 x
componente escalar X 4 y
Al aplicar el teorema de Pitágoras a las componentes escalares, resulta:
X 42 = X 42x + X 42x
∴ = ( − X 1x + X 2 x + X 3 x ) + ( − X 1 y + X 2 y + X 3 y )
2
X 4 = X 42x + X 42y ∴ =
( − X 1x + X 2 x + X 3 x )
2
2
+ ( − X1 y + X 2 y + X 3 y )
2
El ángulo θ esta comprendido entre los vectores X1 y X2. Se puede deducir una expresión
para este, mediante la diferencia de los argumentos de los vectores, a su vez tales
argumentos se definen en términos de sus componentes escalares.
θ = θ2 − θ1 ;
⎛ X2y
θ2 = tan −1 ⎜
⎝ X 2x
⎞
⎟;
⎠
⎛ X1y
θ1 = tan −1 ⎜
⎝ X 1x
⎞
⎟;
⎠
∴
⎛ X2y
θ = tan −1 ⎜
⎝ X 2x
X1y ⎞
⎞
−1 ⎛
⎟ − tan ⎜
⎟
⎠
⎝ X 1x ⎠
Ahora es necesario representar a X1, X2 y X3 en términos de las componentes escalares de
X1, X2 y X3. Aplicando el teorema de Pitágoras a las componentes cartesianas de los
vectores:
32
X1 = X 1 x + i X 1 y
⇒
X 12 = X 12x + X 12y ;
X 1 = X 12x + X 12y
X2 = X 2 x + i X 2 y
⇒
X 22 = X 22x + X 22y ;
X 2 = X 22x + X 22y
X 3 = X 3 x + i X 23
⇒
X 32 = X 32x + X 32y ;
X 3 = X 32x + X 32y
Es conveniente representar las componentes escalares del bastidor X 1x y X 1 y en términos de
la posición absoluta de los pares fijos O2 y O4 de manera que se manejar en forma
independiente. Por lo tanto:
X 1x = xO4 − xO2 y X 1 y = yO4 − yO2
Mientras que ( xO2 , yO2 ) representan las coordenadas absolutas del par O2 ; ( xO4 , yO4 ) son
las del para O4. Finalmente la expresión del ángulo de transmisión para la posición inicial
es:
(
)
⎡ − ( x − x )2 + ( y − y )2 − ( X 2 + X 2 ) + ...
O4
O2
O4
O2
2x
2y
⎢
2
2
⎢
... + 2 ( xO4 − xO2 ) + ( yO4 − yO2 ) ( X 22x + X 22y ) × ...
⎢
⎢
⎛
⎛ ( y O 4 − yO 2 ) ⎞ ⎞
⎛X ⎞
⎢
... × cos ⎜ tan −1 ⎜ 2 y ⎟ − tan −1 ⎜
⎟ ⎟ + ( X 32x + X 32y ) + ...
⎢
⎜ ( xO − xO ) ⎟ ⎟
⎜
⎝ X 2x ⎠
4
2
⎝
⎠⎠
⎝
⎢
2
⎢
... + − ( xO4 − xO2 ) + X 2 x + X 3 x + − ( yO4 − yO2 ) + X 2 y + X 3 y
−1 ⎢
γ = cos ⎢
2
2
⎢ 2 ( X 32x + X 32y ) − ( xO − xO ) + X 2 x + X 3 x + − ( yO − yO ) + X 2 y + X 3 y
4
2
4
2
⎣⎢
(
((
)
((
) (
) (
⎧ γ
μ = min ⎨
⎩π − γ
))
))
2
⎤
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎦⎥
(2)
Las variables de diseño para describir el mecanismo en la posición inicial, son:
xO2
yO 2
xO4
yO 4
X 2x
X2y
X 3x
X3y
→
→
→
→
→
→
→
→
Coordenada horizontal absoluta del par O 2
Coordenada vertical absoluta del par O 2
Coordenada horizontal absoluta del par O 4
Coordenada vertical absoluta del par O 4
Componente escalar horizontal del motriz
Componente escalar vertical del motriz
Componente escalar horizontal del acoplador
Componente escalar vertical del acoplador
33
Para obtener una expresión general que represente al ángulo de transmisión en cualquier
posición, se aplicó el operador de rotación pura a los vectores correspondientes y se
dedujeron de nuevo los módulos y ángulos respectivos. Con el objeto de diferenciarlos de
los de la ecuación (2) se usó el subíndice “j” que denota la j-ésima posición.
: X2j = X2 ei βj
Por el operador de rotación pura se tiene
Las componentes cartesianas del vector X2 son : X 2 = X 22x + X 22y ( cos θ2 + i sin θ 2 )
: X 2 = X 22x + X 22y ei θ2
Al usar la identidad de Euler se tiene
Por lo tanto
:
X 2j = X 22x + X 22y ei θ2 ei βj
X 2j = X 22x + X 22y ei ( θ2 + βj )
⎛X ⎞
: θ2 = tan −1 ⎜ 2 y ⎟
⎝ X 2x ⎠
Al aplicar de nuevo la identidad, se obtienen las componentes cartesianas y escalares del
vector X 2j :
Donde
⎛
⎛ X2y
X 2j = cos ⎜ tan −1 ⎜
⎜
⎝ X 2x
⎝
⎞
⎛ −1 ⎛ X 2 y
⎞
2
2
⎟ + β j ⎟⎟ X 2 x + X 2 y + i sin ⎜⎜ tan ⎜
⎠
⎝ X 2x
⎠
⎝
componente escalar X 2 x
⎞
⎞
2
2
⎟ + β j ⎟⎟ X 2 x + X 2 y
⎠
⎠
componente escalar X 2 y
j
(3)
j
Al aplicar Pitágoras a las componentes escalares, factorizar y usar la identidad
trigonométrica cos 2 a + sin 2 a = 1, resulta:
X 22 = ( X 22x + X 22y )
j
X 2 j = X 2 = X 22x + X 22y
⇒
Como era de esperarse X 2 j y X 2 representan la longitud de un cuerpo rígido.
Mediante un procedimiento similar se obtienen las componentes cartesianas y escalares del
vector X 3j
⎛
⎛ X3y
X 3j = cos ⎜ tan −1 ⎜
⎜
⎝ X 3x
⎝
⎞
⎛ −1 ⎛ X 3 y
⎞
2
2
⎟ + α j ⎟⎟ X 3 x + X 3 y + i sin ⎜⎜ tan ⎜
⎠
⎝ X 3x
⎠
⎝
componente escalar X 3 x
⎞
⎞
2
2
⎟ + α j ⎟⎟ X 3 x + X 3 y
⎠
⎠
componente escalar X 3 y
j
34
j
(4)
Y se demuestra que:
X 32j = ( X 32x + X 32y )
⇒
X 3 j = X 3 = X 32x + X 32y
Para una posición j-ésima se puede ver qué (Figura 10):
Ecuación de cierre X 2j +X 3 j − X 4j − X1 = 0 ⇒ X 4 j = − X1 + X 2 + X 3j
j
Por lo tanto:
⎛
⎛
⎞
⎛
⎞
⎛X ⎞
⎜ − ( xO4 − xO2 ) + ⎜ cos ⎜ tan −1 ⎜ 2 y ⎟ + β j ⎟ X 22x + X 22y ⎟ + ...
⎜
⎟
⎜
⎟
⎜
⎝ X 2x ⎠
⎝
⎠
⎝
⎠
X4j = ⎜
⎛
⎛ −1 ⎛ X 3 y ⎞
⎞
⎜
...
cos
tan
+
+
α
X 32x + X 32y
⎜
⎜
⎟
⎜
⎟
j
⎜
⎜
⎟
⎜
⎝ X 3x ⎠
⎝
⎠
⎝
⎝
componente escalar X 4 x
⎞
⎟
⎟
⎟ + ...
⎞⎟
⎟
⎟⎟
⎠⎠
j
⎛
⎛ ⎛
⎞
⎛X ⎞
⎜ − ( yO4 − yO2 ) + ⎜ sin ⎜ tan −1 ⎜ 2 y ⎟ + β j ⎟ X 22x + X 22y
⎟
⎜ ⎜
⎜
⎝ X 2x ⎠
⎠
⎝ ⎝
... + i ⎜
⎛ ⎛ −1 ⎛ X 3 y ⎞
⎞
⎜
...
sin ⎜ tan ⎜
+
+
α
⎜
⎟
⎟
j
⎜
⎟
⎜ ⎜
⎝ X 3x ⎠
⎠
⎝ ⎝
⎝
componente escalar X 4 y
⎞
⎟ + ...
⎟
⎠
X 32x + X 32y
⎞
⎟
⎟
⎟
⎞⎟
⎟
⎟⎟
⎠⎠
(5)
j
Es decir:
(
X 42j = X 42x + X 42y
j
j
)
X 4 j = X 4 = X 42x j + X 42y j
⇒
El ángulo comprendido entre los vectores X1 y X2j, no es el mismo θ de la ecuación (2), por
esto se identificó como θ j :
⎛ yO4 − yO2 ⎞
⎛ X2y ⎞
−1
θj
= [θ2 − θ1 ] +β j donde θ2 = tan −1 ⎜
⎟⎟
⎟ y θ1 = tan ⎜⎜
x
x
−
O
O
⎝ X 2x ⎠
⎝ 4
2 ⎠
⎡
⎛ yO4 − yO2 ⎞ ⎤
⎛ X2y ⎞
−1
tan
θj
−
= ⎢tan −1 ⎜
⎥ +β
⎜
⎟
⎜ xO − xO ⎟⎟ ⎥ j
⎢⎣
⎝ X 2x ⎠
⎝ 4
2 ⎠⎦
Finalmente la expresión general del ángulo de transmisión para la posición j-ésima es:
35
(
)
⎡ − ( x − x )2 + ( y − y )2 − ( X 2 + X 2 ) + ...
O4
O2
O4
O2
2x
2y
⎢
2
2
⎢
... + 2 ( xO4 − xO2 ) + ( yO4 − yO2 ) ( X 22x + X 22y ) × ...
⎢
⎢
⎛⎡
⎞
⎛ yO − yO2 ⎞ ⎤
⎛X ⎞
⎢
... × cos ⎜ ⎢tan −1 ⎜ 2 y ⎟ − tan −1 ⎜ 4
+β j ⎟ + ( X 32x + X 32y ) + ...
⎥
⎟
⎢
⎜ xO − xO ⎟ ⎥
⎜⎢
⎟
⎝ X 2x ⎠
⎝ 4
2 ⎠⎦
⎝⎣
⎠
⎢
2
⎢
... + − ( xO4 − xO2 ) + X 2 x j + X 3 x j + − ( yO4 − yO2 ) + X 2 y j + X 3 y j
−1 ⎢
γ = cos ⎢
2
2
⎢ 2 ( X 32x + X 32y ) − ( xO − xO ) + X 2 x + X 3 x + − ( yO − yO ) + X 2 y + X 3 y
4
2
4
2
j
j
j
j
⎢⎣
(
((
)
((
) (
) (
))
2
))
⎧ γ
μ = min ⎨
⎩π − γ
(6)
En la ecuación (6) no se han remplazado X 2 x j , X 2 y j , X 3 x j , X 3 y j por razones de espacio.
Nótese que las variables de diseño para describir el mecanismo en la posición j-ésima, son
las mismas 8 de la posición inicial mas una adicional:
βj
→
Ángulo de rotación del eslabón motriz respecto a su posición inicial
α j es el ángulo de rotación del acoplador respecto a su posición inicial y en vista que es un
dato conocido no puede ser entendido como una variable de diseño.
2.4. RESTRICCIONES
2.4.1. Primera restricción
Partiendo de las variables de diseño descritas en la sección anterior es posible encontrar
soluciones. Sin embargo estas tienen una seria inconsistencia relacionada con la longitud
cambiante del eslabón seguidor. Es decir su longitud va variando a medida que el
mecanismo alcanza las posiciones prescritas. Esta variación se debe a que tal longitud se
obtuvo en términos de las componentes escalares de los vectores que representan al
bastidor, el motriz y el acoplador.
Como el modulo del seguidor debe ser igual en cualquier posición entonces:
X 4Posición 1 = X 4Posición 2 = ... = X 4Posición j-ésima
Por lo tanto:
X 42x + X 42y = X 42xPosición 2 + X 42yPosición 2 = . . . = X 42xPosición j-ésima + X 42yPosición j-ésima
36
⎤
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦
Es decir
( X 42x + X 42y ) = ( X 42x
Posición 2
(
)
+ X 42yPosición 2 = . . . = X 42xPosición j-ésima + X 42yPosición j-ésima
)
(7)
X 4 xPosición 2 , X 4 yPosición 2 , . . . , X 42xPosición j-ésima , X 42yPosición j-ésima se pueden inferir de la ecuación (5)
Para 2 posiciones prescritas es necesaria una restricción. Para 3 posiciones se requieren 2
restricciones. Para 4 posiciones, 3 restricciones. Para 5 posiciones, 4 restricciones.
2.4.2. Segunda restricción
Para un generador de movimiento es muy importante la orientación del acoplador así como
la posición del punto “m” (Figura 8) en cada una de las posiciones prescritas. Es evidente
que tal orientación se ha tendido en cuenta en la ecuación (6) mediante el ángulo α j de
X 3 x j , X 3 y j , pero no así, la posición de “m”.
Para satisfacer la posición de “m” se usó como referente el enfoque descrito por Loerch
[Loerch, 1975] relacionado con la inclusión un vector de posición en la representación
vectorial del mecanismo. Para la posición inicial del mecanismo las componentes escalares
del vector R0 (Figura 12) representan las coordenadas de “m” respecto al par O4.
Al igual que X4, el vector X6 que presenta el inconveniente de cambiar su módulo a medida
que el mecanismo se mueve. Para resolver este problema se añadió la siguiente restricción.
X 6Posición 1 = X 6Posición 2 = ... = X 6Posición j-ésima
(8)
Para 2 posiciones prescritas es necesaria una restricción. Para 3 posiciones se requieren 2
restricciones. Para 4 posiciones, 3 restricciones. Para 5 posiciones, 4 restricciones.
Es conveniente expresar a X6 en términos de las componentes escalares de los vectores R0,
X1, X2, y X3 , por lo tanto a partir de la Figura 12 se puede deducir la siguiente ecuación de
cierre:
R 0 +X1 − X2 − X3 − X6 = 0 ⇒ X6 = R 0 + X1 − X2 − X3
37
Figura 12. Vector de posición R0
m
X6
X5
X3
R0
X4
X2
X1
De donde:
X6 = R0 x + X 1x − X 2 x − X 3 x + i ( R0 y + X 1 y − X 2 y − X 3 y )
componente escalar X 6 x
componente escalar X 6 y
Es decir:
X 62 = X 62x + X 62y ∴ = ( R0 x + X 1x − X 2 x − X 3 x ) + ( R0 y + X 1 y − X 2 y − X 3 y )
2
X 6 = X 62x + X 62y ∴ =
( R0 x + X1x − X 2 x − X 3 x )
2
2
+ ( R0 y + X 1 y − X 2 y − X 3 y )
2
Si se supone que las componentes escalares de Rj representan las coordenadas de “m”
respecto al par O4 para la posición j-ésima, se puede inferir la siguiente ecuación de cierre:
R j +X1 − X2j − X3j − X6j = 0 ⇒ X6j = R j + X1 − X2j − X3j
De donde:
X 6j = Rx j + X 1x − X 2 x j − X 3 x j + i ( Ry j + X 1 y − X 2 y j − X 3 y j )
componente escalar X 6 x
componente escalar X 6 y
j
38
j
Es decir:
(
) + (R + X − X
− X ) + (R + X − X
X 62j = X 62x j + X 62y j ∴ = Rx j + X 1x − X 2 x j − X 3 x j
(R
X 6 j = X 62x j + X 62y j ∴ =
xj
+ X 1x − X 2 x j
2
1y
yj
2yj
− X3yj
2
3x j
1y
yj
2yj
)
2
− X3yj
)
2
Las coordenadas del punto “m” para cada una de las posiciones prescritas es un dato
conocido (ver la Figura 2). Como tales coordenadas se toman con relación a la primera
posición prescrita es de suponer que el origen de coordenadas del sistema esté en la cabeza
del vector de posición R0, y por lo tanto las componentes escalares de todos los vectores de
posición se pueden expresar en términos de las variables de diseño xO2 , yO2 , xO4 , yO4 . De
forma que:
R0 x = − xO4
R0 y = − yO4 ;
R1x = xposición 2 − xO4
R1 y = yposición 2 − yO4
R2 x = xposición 3 − xO4
R2 y = yposición 3 − yO4
Rx j = xposición j − xO4
Ry j = yposición j − yO4
Donde xposición 2 , yposición 2 , ... ,xposición j , yposición j representan las coordenadas x, y de las
posiciones 2, …, j-ésima medidas respecto a la primera posición prescrita.
Finalmente:
X6j = ( xposición j − xO4 ) + ( xO4 − xO2 ) − X 2 x j − X 3 x j + i
(( y
posición j
− yO4 ) + ( yO4 − yO2 ) − X 2 y j − X 3 y j
(
X6j = xposición j − xO2 − X 2 x j − X 3 x j + i yposición j − yO2 − X 2 y j − X 3 y j
componente escalar X 6 x j
)
(9)
componente escalar X 6 y j
Es decir:
(
) +(y
− X ) +(y
X 62j = X 62x j + X 62y j ∴ = xposición j − xO2 − X 2 x j − X 3 x j
X 6 j = X 62x j + X 62y j ∴ =
(x
posición j − xO2 − X 2 x j
2
posición j
2
3x j
)
2
posición j − yO2 − X 2 y j − X 3 y j
X 2 x j , X 2 y j , X 3 x j , X 3 y j se pueden inferir de las ecuaciones (3) y (4).
39
− yO2 − X 2 y j − X 3 y j
)
2
)
2.4.3. Tercera restricción
Aunque el algoritmo entrega resultados en los que la parte del acoplador representada por el
vector X3 satisface el ángulo α j , no sucede lo mismo con la parte del acoplador
representada por el vector X6. La siguiente restricción evita que se presente esta
inconsistencia en las soluciones encontradas mediante el algoritmo.
Del operador de rotación pura se puede inferir que:
θ6Posición 1 + α1 = θ6Posición 2
θ6Posición 1 + α 2 = θ6Posición 3
θ6Posición 1 + α j = θ6Posición j-ésima
Donde θ6 es el argumento del vector X6 medido respecto al eje horizontal positivo. En la
Figura 13 se ilustra este concepto.
Figura 13. Descripción de la tercera restricción
θ6 Posición j-ésima
X6 j
αj
X3 j
X6
X3
R + X1 y − X 2 y − X 3 y ⎞
⎛ X6y ⎞
−1 ⎛ 0 y
θ6Posición 1 = tan -1 ⎜
⎟
⎟ = tan ⎜
⎝ X 6x ⎠
⎝ R0 x + X1x − X 2 x − X 3 x ⎠
⎛ yposición 1 − yO2 − X 2 y − X 3 y ⎞
θ6Posición 1 = tan −1 ⎜
⎜ xposición 1 − xO − X 2 x − X 3 x ⎟⎟
⎝
⎠
2
40
θ6 Posición 1
⎛ X6yj ⎞
⎛ Ry j + X1 y − X 2 y j − X 3 y j
θ6Posición j-ésima = tan -1 ⎜
⎟ = tan −1 ⎜
⎜ X 6x ⎟
⎜ Rx + X1x − X 2 x − X 3 x
j ⎠
j
j
⎝
⎝ j
y
X
X
−
−
⎛ posición j − yO2
2yj
3y j ⎞
θ6Posición j-ésima = tan −1 ⎜
⎟
⎜ xposición j − xO − X 2 x − X 3 x ⎟
j
j ⎠
2
⎝
⎞
⎟
⎟
⎠
Entonces:
⎛ yposición 1 − yO2 − X 2 y − X 3 y
tan −1 ⎜
⎜ xposición 1 − xO − X 2 x − X 3 x
⎝
2
⎛ yposición j − yO2 − X 2 y j − X 3 y j
⎞
−1
⎟⎟ + α j = tan ⎜
⎜ xposición j − xO − X 2 x − X 3 x
j
j
⎠
2
⎝
⎞
⎟
⎟
⎠
(10)
X 2 x j , X 2 y j , X 3 x j , X 3 y j se pueden inferir de las ecuaciones (3) y (4). Al igual que en las
anterior restricciones, se tienen que para 2 posiciones prescritas es necesaria una
restricción. Para 3 posiciones se requieren 2 restricciones…etc.
2.4.4. Otras restricciones
Dado que los pares fijos deben confinarse a un área prescrita, son necesarias 8 restricciones
para satisfacer este requerimiento. Suponiendo que el área es rectangular, las coordenadas
absolutas de los extremos de una de las diagonales la definen.
Figura 14. Espacio factible para los pares fijos
(x SD, y SD)
(x O4, y O4)
X1
FACTIBLE
(x O2, y O2)
(x II, y II)
NO FACTIBLE
Usando la nomenclatura de la Figura 14 se establecen las correspondientes restricciones.
41
xII ≤ xO2
yII ≤ yO2
xII ≤ xO4
yII ≤ yO4
≤ xSD
≤ ySD
≤ xSD
≤ ySD
(11)
En vista que la magnitud del vector X1 debe ser mayor a cierto valor “n” (puede ser entrado
por el usuario) se debe usar la siguiente restricción:
≥ n
X 1 = X 12x + X 12y
(x
⇒
O4
− xO2 ) + ( yO4 − yO2 )
2
2
≥ n
(12)
Para garantizar que el algoritmo entregue soluciones en las que el eslabón motriz tenga una
rotación continua debe cumplirse que:
βj
> ... > β2
> β1 > 0
(13)
Aunque es ideal que las soluciones tengan ángulos de transmisión de 90º, debe imponerse
un límite inferior para este índice de mérito. Erdman y Sandor sugiere rechazar cualquier
mecanismo de justas de revoluta (pasador), que tenga ángulos de transmisión menores a 30º
[Erdman,1997] por lo tanto:
μ1 , μ 2 , ... , μ j
≥ 30
(14)
Con el propósito que se pueda tener control sobre las longitudes de los eslabones motriz y
acoplador en relación a la del bastidor, se han añadido 2 restricciones más:
X2
≤ mX 1 ⇒
X 22x + X 22y
X3
≤
X +X
pX 1 ⇒
2
3x
2
3y
≤ m
(x
O4
− xO2 ) + ( yO4 − yO2 )
≤
(x
O4
− xO2 ) + ( yO4 − yO2 )
p
2
2
2
2
(15)
Con lo que se logra que el tamaño del eslabón correspondiente sea menor o igual a m, o p
veces la longitud del bastidor.
42
3. FORMULACIÓN DEL PROBLEMA SEGÚN LA FORMA ESTANDAR
Las figuras siguientes ilustran los datos conocidos (línea de trazo gruesa) y las variables de
diseño (Encerradas en círculos y/o línea continua gruesa) para cada una de posiciones
prescritas. La formulación del problema debe hacerse en términos de estos datos.
Figura 15. Datos y variables para 2 posiciones prescritas.
Posición 2
y Posición 2
α1
X 3y
X 3x
β1
X 2y
xO
4
xO
X 2x
2
yO
yO
4
2
Figura 16. Datos y variables para 3 posiciones prescritas.
Posición 2
y Posición 2
xPosición 3
X 3y
β1
X 3x
X 2y
X 2x
x O2
yO
xO
4
yO
2
43
4
β2
y Posición 3
α1
α2
Figura 17. Datos y variables para 4 posiciones prescritas.
α3
α1
α2
X 3y
β1
X 3x
β2
β3
X 2y
xO
yO
4
yO
xO
X 2x
2
Las coordenadas de
posición no se dibujaron
4
2
Figura 18. Datos y variables para 5 posiciones prescritas.
α3
α1
α4
α2
X 3y
β1
X 3x
β2
β3
β4
X 2y
xO
4
X 2x
xO
2
yO
yO
Las coordenadas de
posición no se dibujaron
4
2
3.1. VARIABLES DE DISEÑO
En concordancia con la Figura 15, los datos para 2 posiciones prescritas son
xposición 2 , yposición 2 ,α1 y las variables de diseño X 2 x , X 2 y , X 3 x , X 3 y ,β1 , xO2 , yO2 , xO4 , yO4 ,
transcribiéndolas a la forma estándar del modelo, resultan:
44
x 2 posiciones = ( x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 ) ≡ ...
... ≡ ( X 2 x , X 2 y , X 3 x , X 3 y , β1 , xO2 , yO2 , xO4 , yO4 )
Según la Figura 16, para 3 posiciones prescritas los datos son xposición 2 , yposición 2 ,
xposición 3 , yposición 3 ,α1 ,α 2
X 2 x , X 2 y , X 3 x , X 3 y ,β1 ,
y las variables de diseño
β2 , xO2 , yO2 , xO4 , yO4 Transcribiéndolas a la forma estándar del modelo, resultan:
x3 posiciones = ( x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 ) ≡ ...
... ≡ ( X 2 x , X 2 y , X 3 x , X 3 y , β1 , β1 , xO2 , yO2 , xO4 , yO4 )
Según la Figura 17, para 4 posiciones prescritas los datos son xposición 2 , yposición 2 ,
xposición 3 , yposición 3 ,xposición 4 , yposición 4 ,α1 ,α 2 ,α3
y
las
variables
de
diseño
X 2 x , X 2 y , X 3 x , X 3 y ,β1 , β2 ,β3 , xO2 , yO2 , xO4 , yO4 transcribiéndolas a la forma estándar del
modelo, resultan:
x 4 posiciones = ( x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 ) ≡ ...
... ≡ ( X 2 x , X 2 y , X 3 x , X 3 y , β1 , β2 , β3 , xO2 , yO2 , xO4 , yO4 )
Según la
Figura 18, para 5 posiciones prescritas los datos son xposición 2 , yposición 2 ,
xposición 3 , yposición 3 ,xposición 4 , yposición 4 ,xposición 5 , yposición 5 ,α1 ,α 2 ,α3 ,α 4 y las variables de
diseño X 2 x , X 2 y , X 3 x , X 3 y ,β1 , β2 ,β3 ,β4 , xO2 , yO2 , xO4 , yO4 transcribiéndolas a la forma
estándar del modelo, resultan:
x5 posiciones = ( x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 ) ≡ ...
... ≡ ( X 2 x , X 2 y , X 3 x , X 3 y , β1 , β2 , β3 , β 4 , xO2 , yO2 , xO4 , yO4 )
3.2. VECTOR DE FUNCIONES OBJETIVO
Para cada una de las posiciones prescritas es necesaria una función objetivo. Para la
primera posición o inicial se transcribe la ecuación (2) en términos de las variables de
diseño (El subíndice “P1” representa la posición inicial del mecanismo):
45
(
)
⎡ − ( x − x )2 + ( x − x )2 − ( x 2 + x 2 ) + ...
⎤
7
5
8
6
1
2
⎢
⎥
2
2
2
2
⎢
⎥
... + 2 ( x7 − x5 ) + ( x8 − x6 ) ( x1 + x2 ) × ...
⎢
⎥
⎢
⎥
⎛
⎛ (x − x ) ⎞⎞
⎛x ⎞
⎢
... × cos ⎜ tan −1 ⎜ 2 ⎟ − tan −1 ⎜ 8 6 ⎟ ⎟ + ( x32 + x42 ) + ...⎥
⎜
⎟
⎢
⎥
⎝ x1 ⎠
⎝ ( x7 − x5 ) ⎠ ⎠
⎝
⎢
⎥
2
2
... + ( x1 + x3 + x5 − x7 ) + ( x2 + x4 + x6 − x8 )
⎥
−1 ⎢
γ P1 = cos ⎢
⎥
2
2
2 ( x32 + x42 ) ( x1 + x3 + x5 − x7 ) + ( x2 + x4 + x6 − x8 )
⎢⎣
⎥⎦
⎧ γ
f1 ( x ) = min ⎨ P1 ≡ μ P1
⎩ π − γ P1
(
)
(
)
(
)
(16)
Para la segunda posición se transcribe la ecuación (6) en términos de las variables de diseño
(El subíndice “P2” representa la segunda posición del mecanismo):
(
γ P2
)
⎡ − ( x − x )2 + ( x − x )2 − ( x 2 + x 2 ) + ...
7
5
8
6
1
2
⎢
2
2
⎢
... + 2 ( x7 − x5 ) + ( x8 − x6 ) ( x12 + x22 ) × ...
⎢
⎢
⎛⎡
⎞
⎛ ( x − x6 ) ⎞ ⎤
⎛x ⎞
⎢
... × cos ⎜ ⎢tan −1 ⎜ 2 ⎟ − tan −1 ⎜ 8
⎥ + x9 ⎟ + ( x32 + x42 ) + ...
⎟
⎜
⎟
⎢
⎝ x1 ⎠
⎝ ( x7 − x5 ) ⎠ ⎦⎥
⎝ ⎣⎢
⎠
⎢
2
2
⎢
... + X 2 xP2 + X 3 xP2 + x5 − x7 + X 2 yP2 + X 3 yP2 + x6 − x8
= cos −1 ⎢
2
2
⎢
2
2
2
+
+
−
+
+
+
−
x
x
X
X
x
x
X
X
x
x
(
)
+
2
3
5
7
2
3
6
8
x
x
y
y
3
4
P2
P2
P2
P2
⎣⎢
(
((
)
((
) (
) (
))
))
⎤
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎦⎥
⎧ γ
f 2 ( x ) = min ⎨ P2 ≡ μ P2
⎩ π − γ P2
(17)
De las ecuaciones (3) y (4) se obtienen X 2 xP2 , X 2 yP2 ,X 3 xP2 ,X 3 yP2 , que en términos de las
variables de diseño son:
⎛
⎞
⎛x ⎞
X 2 xP2 = cos ⎜⎜ tan −1 ⎜ 2 ⎟ + x9 ⎟⎟ x12 + x22 ;
⎝ x1 ⎠
⎝
⎠
⎛
⎞
⎛x ⎞
X 3 xP2 = cos ⎜⎜ tan −1 ⎜ 4 ⎟ + α1 ⎟⎟ x32 + x42 ;
⎝ x3 ⎠
⎝
⎠
⎛
⎞
⎛x ⎞
X 2 yP2 = sin ⎜⎜ tan −1 ⎜ 2 ⎟ + x9 ⎟⎟ x12 + x22
⎝ x1 ⎠
⎝
⎠
⎛
⎞
⎛x ⎞
X 3 yP2 = sin ⎜⎜ tan −1 ⎜ 4 ⎟ + α1 ⎟⎟ x32 + x42
⎝ x3 ⎠
⎝
⎠
46
Para la tercera posición (El subíndice “P3” representa la tercera posición del mecanismo):
(
)
⎡ − ( x − x )2 + ( x − x )2 − ( x 2 + x 2 ) + ...
⎤
7
5
8
6
1
2
⎢
⎥
2
2
2
2
⎢
⎥
... + 2 ( x7 − x5 ) + ( x8 − x6 ) ( x1 + x2 ) × ...
⎢
⎥
⎢
⎥
⎛ ⎡ −1 ⎛ x ⎞
⎞
⎛ ( x − x ) ⎞⎤
⎢
...× cos ⎜ ⎢tan ⎜ 2 ⎟ − tan −1 ⎜ 8 6 ⎟ ⎥ + x10 ⎟ + ( x32 + x42 ) + ... ⎥
⎜⎢
⎟
⎢
⎥
⎝ x1 ⎠
⎝ ( x7 − x5 ) ⎠ ⎥⎦
⎝⎣
⎠
⎢
⎥
2
2
⎢
... + X 2 xP3 + X 3 xP3 + x5 − x7 + X 2 yP2 + X 3 yP2 + x6 − x8 ⎥
⎥
γ P3 = cos −1 ⎢
2
2
⎢
⎥
2
2
⎢⎣ 2 ( x3 + x4 ) X 2 xP3 + X 3 xP3 + x5 − x7 + X 2 yP2 + X 3 yP2 + x6 − x8
⎥⎦
⎧ γ
f3 ( x ) = min ⎨ P3 ≡ μ P3
⎩ π − γ P3
(
((
)
((
) (
) (
⎛
⎞
⎛x ⎞
Donde: X 2 xP3 = cos ⎜⎜ tan −1 ⎜ 2 ⎟ + x10 ⎟⎟ x12 + x22 ;
⎝ x1 ⎠
⎝
⎠
⎛
⎞
⎛x ⎞
X 3 xP3 = cos ⎜ tan −1 ⎜ 4 ⎟ + α 2 ⎟ x32 + x42 ;
⎜
⎟
⎝ x3 ⎠
⎝
⎠
))
))
(18)
⎛
⎞
⎛x ⎞
X 2 yP3 = sin ⎜⎜ tan −1 ⎜ 2 ⎟ + x10 ⎟⎟ x12 + x22
⎝ x1 ⎠
⎝
⎠
⎛
⎞
⎛x ⎞
X 3 yP3 = sin ⎜ tan −1 ⎜ 4 ⎟ + α 2 ⎟ x32 + x42
⎜
⎟
⎝ x3 ⎠
⎝
⎠
Para la cuarta posición:
(
)
⎡ − ( x − x )2 + ( x − x )2 − ( x 2 + x 2 ) + ...
7
5
8
6
1
2
⎢
2
2
⎢
... + 2 ( x7 − x5 ) + ( x8 − x6 ) ( x12 + x22 ) × ...
⎢
⎢
⎛⎡
⎞
⎛ ( x − x6 ) ⎞ ⎤
⎛x ⎞
2
2
⎢
... × cos ⎜ ⎢tan −1 ⎜ 2 ⎟ − tan −1 ⎜ 8
x
+
⎟ ⎥ 11 ⎟⎟ + ( x3 + x4 ) + ...
⎜
⎢
⎝ x1 ⎠
⎝ ( x7 − x5 ) ⎠ ⎥⎦
⎝ ⎢⎣
⎠
⎢
2
2
⎢
... + X 2 xP4 + X 3 xP4 + x5 − x7 + X 2 yP4 + X 3 yP4 + x6 − x8
−1
γ P4 = cos ⎢
2
2
⎢
2
2
⎢⎣ 2 ( x3 + x4 ) X 2 xP4 + X 3 xP4 + x5 − x7 + X 2 yP4 + X 3 yP4 + x6 − x8
⎧ γ
f 4 ( x ) = min ⎨ P4 ≡ μ P4
⎩ π − γ P4
(
((
)
((
) (
) (
47
))
))
⎤
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦
(19)
⎛
⎞
⎛x ⎞
Donde: X 2 xP4 = cos ⎜⎜ tan −1 ⎜ 2 ⎟ + x11 ⎟⎟ x12 + x22 ;
⎝ x1 ⎠
⎝
⎠
⎛
⎞
⎛x ⎞
X 3 xP4 = cos ⎜ tan −1 ⎜ 4 ⎟ + α 3 ⎟ x32 + x42 ;
⎜
⎟
⎝ x3 ⎠
⎝
⎠
⎛
⎞
⎛x ⎞
X 2 yP4 = sin ⎜⎜ tan −1 ⎜ 2 ⎟ + x11 ⎟⎟ x12 + x22
⎝ x1 ⎠
⎝
⎠
⎛
⎞
⎛x ⎞
X 3 yP4 = sin ⎜ tan −1 ⎜ 4 ⎟ + α 3 ⎟ x32 + x42
⎜
⎟
⎝ x3 ⎠
⎝
⎠
Para la quinta posición:
(
)
⎡ − ( x − x )2 + ( x − x )2 − ( x 2 + x 2 ) + ...
⎤
7
5
8
6
1
2
⎢
⎥
2
2
2
2
⎢
⎥
... + 2 ( x7 − x5 ) + ( x8 − x6 ) ( x1 + x2 ) × ...
⎢
⎥
⎢
⎥
⎛ ⎡ −1 ⎛ x ⎞
⎞
⎛ ( x − x ) ⎞⎤
⎢
...× cos ⎜ ⎢tan ⎜ 2 ⎟ − tan −1 ⎜ 8 6 ⎟ ⎥ + x12 ⎟ + ( x32 + x42 ) + ... ⎥
⎜⎢
⎟
⎢
⎥
⎝ x1 ⎠
⎝ ( x7 − x5 ) ⎠ ⎥⎦
⎝⎣
⎠
⎢
⎥
2
2
⎢
... + X 2 xP5 + X 3 xP5 + x5 − x7 + X 2 yP5 + X 3 yP5 + x6 − x8 ⎥
⎥
γ P5 = cos −1 ⎢
2
2
⎢
⎥
2
2
⎢⎣ 2 ( x3 + x4 ) X 2 xP5 + X 3 xP5 + x5 − x7 + X 2 yP5 + X 3 yP5 + x6 − x8
⎥⎦
⎧ γ
f5 ( x ) = min ⎨ P5 ≡ μ P5
⎩ π − γ P5
(
((
)
((
) (
) (
⎛
⎞
⎛x ⎞
Donde: X 2 xP5 = cos ⎜⎜ tan −1 ⎜ 2 ⎟ + x12 ⎟⎟ x12 + x22 ;
⎝ x1 ⎠
⎝
⎠
⎛
⎞
⎛x ⎞
X 3 xP5 = cos ⎜ tan −1 ⎜ 4 ⎟ + α 4 ⎟ x32 + x42 ;
⎜
⎟
⎝ x3 ⎠
⎝
⎠
))
))
(20)
⎛
⎞
⎛x ⎞
X 2 yP5 = sin ⎜⎜ tan −1 ⎜ 2 ⎟ + x12 ⎟⎟ x12 + x22
⎝ x1 ⎠
⎝
⎠
⎛
⎞
⎛x ⎞
X 3 yP5 = sin ⎜ tan −1 ⎜ 4 ⎟ + α 4 ⎟ x32 + x42
⎜
⎟
⎝ x3 ⎠
⎝
⎠
Como se puede evidenciar, las expresiones para la segunda, tercera, cuarta y quinta
posición solo difieren en los ángulos α1 ,α 2 ,α3 ,α4 y en las variables x9 ,x10 ,x11 ,x12 que
representan los ángulos β1 , β2 ,β3 , β4 .
En la formulación del problema para 2 posiciones prescritas, es necesario usar las funciones
objetivo de la primera y segunda posición es decir f1 ( x ) y f 2 ( x ) . Para la formulación del
problema de 3 posiciones las funciones f1 ( x ) , f 2 ( x ) y f3 ( x ) , y así sucesivamente.
3.2.1. Optimización multiobjetivo
Como es necesario optimizar en forma simultánea más de 2 funciones objetivo debe
obtenerse un vector de objetivos F ( x ) .
48
Dado que las funciones que describen el ángulo μ son de la misma naturaleza dimensional
(cantidad física) y que los ángulos de transmisión de la primera y última posición prescrita
son los más significativos para lograr que se transmita el movimiento desde el acoplador
hacia el seguidor de manera efectiva, es evidente que debe usarse un criterio que destaque
algunas funciones del vector de objetivos F ( x ) . La “Suma ponderada” es la técnica más
apropiada para alcanzar propósito.
3.2.2. Método de la suma ponderada
De la sección 1.2.3 se tiene:
n
F ( x ) = ω1 f1 ( x ) + ω2 f 2 ( x ) + ... + ωn f n ( x ) es decir F ( x ) = ∑ ωn f n ( x )
en donde ω es no negativo; ω1 + ω2
i =1
+ ... + ωn = 1; n > 1 ; n ∈
*
Para lograr que se transmita el movimiento desde el acoplador hacia el seguidor de manera
efectiva, los ángulos de transmisión de las posiciones prescritas extremas (primera y
última) son muy importantes y por lo tanto los coeficientes de peso serán asignados de
manera que tales posiciones tendrán valores más altos que en las posiciones intermedias.
La siguiente tabla contiene el vector de objetivos y los coeficientes de peso para las
posiciones prescritas consideradas en este trabajo. Los valores de los coeficientes se
asignaron de manera uniforme.
Tabla 2. Factores de peso del vector de objetivos
F ( x)
Coeficientes de peso
2
ω1 f1 ( x ) + ω2 f 2 ( x )
ω1 = ω2 = 0.5
3
ω1 f1 ( x ) + ω2 f 2 ( x ) + ω3 f3 ( x )
ω1 = ω3 = 0.4; ω2 = 0.2
4
ω1 f1 ( x ) + ω2 f 2 ( x ) + ω3 f3 ( x ) + ω4 f 4 ( x )
ω1 = ω4 = 0.35; ω2 = ω3 = 0.15
5
ω1 f1 ( x ) + ω2 f 2 ( x ) + ω3 f3 ( x ) + ω4 f 4 ( x ) + ω5 f5 ( x )
ω1 = ω5 = 0.3; ω2 = ω3 = ω4 = 0.13
Posiciones
prescritas
3.3. RESTRICCIONES DE DISEÑO
3.3.1. Tipo desigualdad
Las ecuaciones de la sección 2.4 que representan las restricciones de tipo desigualdad, son
transcritas en términos de las variables de diseño descritas en la sección 3.1.
49
De la ecuación (11):
xII
yII
xII
yII
≤ xO2
≤ yO2
≤ xO4
≤ yO4
≤ xSD
≤ ySD
≤ xSD
≤ ySD
⇒
⇒
⇒
⇒
xII − x5 ≤ 0;
yII − x6 ≤ 0;
xII − x7 ≤ 0;
yII − x8 ≤ 0;
x5 − xSD ≤ 0
x6 − ySD ≤ 0
x7 − xSD ≤ 0
x8 − ySD ≤ 0
De la ecuación (12):
(x
O4
− xO2 ) + ( yO4 − yO2 )
2
2
≥ n
⇒
n−
( x7 − x5 )
2
+ ( x8 − x6 )
2
≤ 0
De la ecuación (13):
βj
> ... > β2
> β1
> 0
⇒
⎧
⎪
⎪⎪
⎨
⎪
⎪
⎪⎩
− x8 < 0
− x8 + x9 < 0
− x9 + x10 < 0
− x10 + x11 < 0
− x11 + x12
< 0
De la ecuación (14):
μ1 , μ 2 , ... , μ j
≥ 30 es decir μ P1 , μ P2 , ... , μ P5
≥ 30
⇒
⎧
⎪
⎪
⎪
⎨
⎪
⎪
⎪
⎩
30 − f1 ( x ) ≤ 0
30 − f 2 ( x ) ≤ 0
30 − f3 ( x ) ≤ 0
30 − f 4 ( x ) ≤ 0
30 − f5 ( x ) ≤ 0
Donde f1 ( x ) , f 2 ( x ) , ... , f5 ( x ) provienen de las ecuaciones (16), (17), (18) , (19) y (20)
De la ecuación (15):
50
X 22x + X 22y ≤ m
(x
O4
− xO2 ) + ( yO4 − yO2 )
X 32x + X 32y ≤ p
(x
O4
− xO2 ) + ( yO4 − yO2 )
2
⇒ x12 + x22 − m
( x7 − x5 )
2
⇒ x32 + x42 − p
( x7 − x5 )
2
2
2
2
+ ( x8 − x6 ) ≤ 0
2
+ ( x8 − x6 ) ≤ 0
2
3.3.2. Tipo igualdad
Las ecuaciones de la sección 2.4 que representan las restricciones de tipo igualdad, son
transcritas en términos de las variables de diseño descritas en la sección 3.1.
De las ecuaciones (7), (8), (10) se deben derivar un total de 15 restricciones, debido a que
para 2 posiciones prescritas son necesarias 3 restricciones, para 3 posiciones se requieren 6
restricciones. Para 4 posiciones, 9 restricciones. Para 5 posiciones, 12 restricciones.
De la ecuación (7) se infiere que:
(X
(X
(X
(X
) (
)=(X
)=(X
)=(X
2
4 xPosición 1
+ X 42yPosición 1 = X 42xPosición 2 + X 42yPosición 2
2
4 xPosición 2
+ X 42yPosición 2
2
4 xPosición 3
+ X 42yPosición 3
2
4 xPosición 4
+ X 42yPosición 4
2
4 xPosición 3
+ X 42yPosición 3
2
4 xPosición 4
+ X 42yPosición 4
2
4 xPosición 5
+ X 42yPosición 5
)
)
)
)
A partir de la ecuación (5), se reemplazan a X 42x
, X 42y
,..., X 42x
, X 42y
Posición 1
Posición 1
Posición 5
Posición 5
por la correspondiente expresión que en términos de las variables de diseño de la sección
3.1 resultan las siguientes 4 restricciones:
( x1 + x3 + x5 − x7 )2 + ( x2 + x4 + x6 − x8 )2 − ...
( X 2x
P2
( X 2x
P3
( X 2x
P4
(
) − ( X 2y + X3y
2
2
+ x5 − x7 ) + ( X 2 y + X 3 y + x6 − x8 ) − ...
2
... − ( X 2 x + X 3 x + x5 − x7 ) − ( X 2 y + X 3 y
2
2
+ x5 − x7 ) + ( X 2 y + X 3 y + x6 − x8 ) − ...
2
... − ( X 2 x + X 3 x + x5 − x7 ) − ( X 2 y + X 3 y
2
2
+ x5 − x7 ) + ( X 2 y + X 3 y + x6 − x8 ) − ...
2
... − ( X 2 x + X 3 x + x5 − x7 ) − ( X 2 y + X 3 y
... − X 2 xP2 + X 3 xP2 + x5 − x7
+ X 3 xP2
P2
P3
+ X 3 xP3
+ X 3 xP4
P3
)
P3
P3
+ x6 − x8
)
P4
+ x6 − x8
)
2
P4
)
2
P5
+ x6 − x8
P3
P4
P4
P5
+ x6 − x8
P2
P2
P3
P4
P2
2
P4
P5
P5
51
2
2
=0
=0
=0
=0
De la ecuación (8) se deduce que:
X 6Posición 1 = X 6Posición 2
X 6Posición 2 = X 6Posición 3
X 6Posición 3 = X 6Posición 4
X 6Posición 4 = X 6Posición 5
por la
A partir de la ecuación (9), se reemplazan a X 62
, X 62
,...,, X 62
Posición 1
Posición 2
Posición 5
correspondiente expresión que en términos de las variables de diseño de la sección 3.1
resultan las siguientes 4 restricciones:
( − x1 − x3 − x5 )2 + ( − x2 − x4 − x6 )2 − ...
... − ( xposición 2 − X 2 xP2 − X 3 xP2 − x5 ) − ( yposición 2 − X 2 yP2 − X 3 yP2 − x6 ) = 0
2
( xposición 2 − X 2 x
P2
2
− X 3 xP2 − x5 ) + ( yposición 2 − X 2 yP2 − X 3 yP2 − x6 ) − ...
2
2
... − ( xposición 3 − X 2 xP3 − X 3 xP3 − x5 ) − ( yposición 3 − X 2 yP3 − X 3 yP3 − x6 ) = 0
2
( xposición 3 − X 2 x
− X 3 xP3 − x5 ) + ( yposición 3 − X 2 yP3 − X 3 yP3 − x6 ) − ...
2
P3
2
2
... − ( xposición 4 − X 2 xP4 − X 3 xP4 − x5 ) − ( yposición 4 − X 2 yP4 − X 3 yP4 − x6 ) = 0
2
( xposición 4 − X 2 x
P4
2
− X 3 xP4 − x5 ) + ( yposición 4 − X 2 yP4 − X 3 yP4 − x6 ) − ...
2
2
... − ( xposición 5 − X 2 xP5 − X 3 xP5 − x5 ) − ( yposición 5 − X 2 yP5 − X 3 yP5 − x6 ) = 0
2
De la ecuación (10) se deriva que:
⎛ − yO2
tan −1 ⎜
⎜ − xO
⎝
2
⎛ − yO2
tan −1 ⎜
⎜ − xO
⎝
2
⎛ − yO2
tan −1 ⎜
⎜ − xO
⎝
2
⎛ − yO2
tan −1 ⎜
⎜ − xO
⎝
2
− X 2 y − X3y ⎞
y
− yO2 − X 2 yP2 − X 3 yP2 ⎞
−1 ⎛ posición 2
⎟⎟ + α1 = tan ⎜⎜
⎟⎟
− X 2 x − X 3x ⎠
⎝ xposición 2 − xO2 − X 2 xP2 − X 3 xP2 ⎠
y
− X 2 y − X3y ⎞
− yO2 − X 2 yP3 − X 3 yP3 ⎞
−1 ⎛ posición 3
⎟⎟
⎟⎟ + α 2 = tan ⎜⎜
− X 2 x − X 3x ⎠
⎝ xposición 3 − xO2 − X 2 xP3 − X 3 xP3 ⎠
− X 2 y − X3y ⎞
y
− yO2 − X 2 yP4 − X 3 yP4 ⎞
−1 ⎛ posición 4
⎟⎟ + α3 = tan ⎜⎜
⎟⎟
− X 2 x − X 3x ⎠
−
−
x
X
X
−
x
posición
4
2
3
x
x
O
⎝
P4
P4 ⎠
2
y
− X 2 y − X3y ⎞
− yO2 − X 2 yP5 − X 3 yP5 ⎞
−1 ⎛ posición 5
⎟⎟
⎟⎟ + α 4 = tan ⎜⎜
− X 2 x − X 3x ⎠
⎝ xposición 5 − xO2 − X 2 xP5 − X 3 xP5 ⎠
52
2
De las cuales se obtienen las siguientes 4 restricciones en términos de las variables de
diseño de la sección 3.1:
y
− X 2 yP2 − X 3 yP2 − x6 ⎞
⎛ − x − x4 − x6 ⎞
−1 ⎛ posición 2
tan −1 ⎜ 2
+
α
−
tan
=0
⎜
1
⎟
⎜ xposición 2 − X 2 x − X 3 x − x5 ⎟⎟
⎝ − x1 − x3 − x5 ⎠
⎝
⎠
P2
P2
⎛ yposición 3 − X 2 yP3 − X 3 yP3 − x6 ⎞
⎛ − x − x4 − x6 ⎞
tan −1 ⎜ 2
+ α 2 − tan −1 ⎜
=0
⎟
⎜ xposición 3 − X 2 x − X 3 x − x5 ⎟⎟
⎝ − x1 − x3 − x5 ⎠
P3
P3
⎝
⎠
y
− X 2 yP4 − X 3 yP4 − x6 ⎞
⎛ − x − x4 − x6 ⎞
−1 ⎛ posición 4
tan −1 ⎜ 2
+
α
−
tan
=0
⎜
3
⎟
⎜ xposición 4 − X 2 x − X 3 x − x5 ⎟⎟
⎝ − x1 − x3 − x5 ⎠
⎝
⎠
P4
P4
⎛ yposición 5 − X 2 yP5 − X 3 yP5 − x6 ⎞
⎛ − x − x4 − x6 ⎞
tan −1 ⎜ 2
+ α 4 − tan −1 ⎜
=0
⎟
⎜ xposición 5 − X 2 x − X 3 x − x5 ⎟⎟
⎝ − x1 − x3 − x5 ⎠
P5
P5
⎝
⎠
3.4. ENUNCIADOS DEL PROBLEMA DE OPTIMIZACIÓN
Dado que a partir del enunciado del problema de optimización se procedió a desarrollar el
algoritmo en MATLAB, tal enunciado se presenta a continuación para 2, 3, 4 y 5
posiciones prescritas.
3.4.1. Enunciado del problema para 2 posiciones prescritas
Encontrar el vector de variables de diseño x = ( x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 ) que minimicen
el siguiente vector de objetivos ( f1 y f 2 son las funciones objetivo de la sección 3.2):
F ( x ) = − ⎡⎣ω1 f1 ( x ) + ω2 f 2 ( x ) ⎤⎦
Sujeto a las siguientes restricciones:
g1 ( x5 )
g3 ( x6 )
g5 ( x7 )
g7 ( x8 )
≡ xII − x5 ≤
≡ yII − x6 ≤
≡ xII − x7 ≤
≡ yII − x8 ≤
g9 ( x5 ,x6 ,x7 ,x8 ) ≡ n −
g10 ( x8 ) ≡ − x8
< 0;
g 2 ( x5 )
g 4 ( x6 )
g6 ( x7 )
g8 ( x8 )
0;
0;
0;
0;
( x7 − x5 )
2
≡ x5 − xSD ≤ 0
≡ x6 − ySD ≤ 0
≡ x7 − xSD ≤ 0
≡ x8 − ySD ≤ 0
+ ( x8 − x6 )
2
≤ 0
g11 ( x8 ,x9 ) ≡ − x8 + x9
53
< 0
g12 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 )
≡ 30 − f1 ( x ) ≤ 0;
g13 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9 )
≡ 30 − f 2 ( x ) ≤ 0
g14 ( x1 ,x2 ,x5 ,x6 ,x7 ,x8 ) ≡
x12 + x22 − m
( x7 − x5 )2 + ( x8 − x6 )2 ≤ 0
g15 ( x3 ,x4 ,x5 ,x6 ,x7 ,x8 ) ≡
x32 + x42 − p
( x7 − x5 )2 + ( x8 − x6 )2 ≤ 0
h1 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9 ) ≡
(
( x1 + x3 + x5 − x7 )2 + ( x2 + x4 + x6 − x8 )2 − ...
... − X 2 xP2 + X 3 xP2 + x5 − x7
h2 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x9 ) ≡
) − ( X2y
2
P2
+ X 3 yP2 + x6 − x8
)
2
=0
( − x1 − x3 − x5 )2 + ( − x2 − x4 − x6 )2 − ...
... − ( xposición 2 − X 2 xP2 − X 3 xP2 − x5 ) − ( yposición 2 − X 2 yP2 − X 3 yP2 − x6 ) = 0
2
2
⎛ − x − x4 − x6 ⎞
h3 ( x1 , x2 , x3 , x4 , x5 , x6 , x9 ) ≡ tan −1 ⎜ 2
⎟ + α1 − ...
−
−
−
x
x
x
⎝ 1 3 5⎠
⎛ yposición 2 − X 2 yP2 − X 3 yP2 − x6 ⎞
=0
... − tan −1 ⎜
⎜ xposición 2 − X 2 x − X 3 x − x5 ⎟⎟
⎝
⎠
P2
P2
3.4.2. Enunciado del problema para 3 posiciones prescritas
Encontrar el vector de variables de diseño x = ( x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 ) que
minimicen el siguiente vector de objetivos ( f1, f 2 y f3 son las funciones objetivo de la
sección 3.2):
F ( x ) = − ⎡⎣ω1 f1 ( x ) + ω2 f 2 ( x ) + ω3 f3 ( x ) ⎤⎦
Sujeto a las siguientes restricciones:
g1 ( x5 )
g3 ( x6 )
g5 ( x7 )
g7 ( x8 )
≡ xII − x5 ≤
≡ yII − x6 ≤
≡ xII − x7 ≤
≡ yII − x8 ≤
g9 ( x5 ,x6 ,x7 ,x8 ) ≡ n −
0;
0;
0;
0;
g 2 ( x5 )
g 4 ( x6 )
g6 ( x7 )
g8 ( x8 )
≡ x5 − xSD ≤ 0
≡ x6 − ySD ≤ 0
≡ x7 − xSD ≤ 0
≡ x8 − ySD ≤ 0
( x7 − x5 )2 + ( x8 − x6 )2
54
≤ 0
g10 ( x8 )
≡ − x8
g12 ( x9 ,x10 )
≡ − x9 + x10
g11 ( x8 ,x9 ) ≡ − x8 + x9
< 0;
< 0
< 0;
g13 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 )
≡ 30 − f1 ( x ) ≤ 0;
g14 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9 )
≡ 30 − f 2 ( x ) ≤ 0
g15 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x10 )
≡ 30 − f3 ( x ) ≤ 0
g16 ( x1 ,x2 ,x5 ,x6 ,x7 ,x8 ) ≡
x12 + x22 − m
( x7 − x5 )2 + ( x8 − x6 )2 ≤ 0
g17 ( x3 ,x4 ,x5 ,x6 ,x7 ,x8 ) ≡
x32 + x42 − p
( x7 − x5 )2 + ( x8 − x6 )2 ≤ 0
h1 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9 ) ≡ ...
... ≡
( x1 + x3 + x5 − x7 )2 + ( x2 + x4 + x6 − x8 )2 − ...
(
... − X 2 xP2 + X 3 xP2 + x5 − x7
h2 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9 ,x10 ) ≡ ...
... ≡
( X 2x
P2
(
P2
+ X 3 yP2 + x6 − x8
2
)
2
=0
2
P2
P2
P3
h3 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x9 ) ≡ ...
... ≡
2
) + ( X 2 y + X 3 y + x6 − x8 ) − ...
2
2
+ x5 − x7 ) − ( X 2 y + X 3 y + x6 − x8 ) = 0
+ X 3 xP2 + x5 − x7
... − X 2 xP3 + X 3 xP3
) − ( X2y
P3
( − x1 − x3 − x5 )2 + ( − x2 − x4 − x6 )2 − ...
... − ( xposición 2 − X 2 xP2 − X 3 xP2 − x5 ) − ( yposición 2 − X 2 yP2 − X 3 yP2 − x6 ) = 0
2
2
h4 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x9 ,x10 ) ≡ ...
... ≡
( xposición 2 − X 2 x − X 3x − x5 ) + ( yposición 2 − X 2 y − X 3 y − x6 ) − ...
2
2
... − ( xposición 3 − X 2 x − X 3 x − x5 ) − ( yposición 3 − X 2 y − X 3 y − x6 ) = 0
2
2
P2
h5 ( x1 , x2 , x3 , x4 , x5 , x6 , x9 ) ≡ ...
P2
P3
P2
P2
P3
P3
P3
y
− X 2 yP2 − X 3 yP2 − x6 ⎞
⎛ − x − x4 − x6 ⎞
−1 ⎛ posición 2
... ≡ tan −1 ⎜ 2
+
α
−
tan
=0
⎜
1
⎟
⎜ xposición 2 − X 2 x − X 3 x − x5 ⎟⎟
⎝ − x1 − x3 − x5 ⎠
⎝
⎠
P2
P2
h6 ( x1 , x2 , x3 , x4 , x5 , x6 , x10 ) ≡ ...
y
− X 2 yP3 − X 3 yP3 − x6 ⎞
⎛ − x − x4 − x6 ⎞
−1 ⎛ posición 3
an
+
α
−
=0
... ≡ tan −1 ⎜ 2
t
⎜
2
⎟
⎜ xposición 3 − X 2 x − X 3 x − x5 ⎟⎟
⎝ − x1 − x3 − x5 ⎠
P3
P3
⎝
⎠
55
3.4.3. Enunciado del problema para 4 posiciones prescritas
Encontrar el vector de variables de diseño x = ( x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 ) que
minimicen el siguiente vector de objetivos:
F ( x ) = − ⎡⎣ω1 f1 ( x ) + ω2 f 2 ( x ) + ω3 f3 ( x ) + ω4 f 4 ( x ) ⎤⎦
Sujeto a las siguientes restricciones:
g1 ( x5 ) ≡ xII − x5 ≤ 0;
g3 ( x6 ) ≡ yII − x6 ≤ 0;
g5 ( x7 ) ≡ xII − x7 ≤ 0;
g7 ( x8 ) ≡ yII − x8 ≤ 0;
g9 ( x5 ,x6 ,x7 ,x8 ) ≡ n −
g 2 ( x5 )
g 4 ( x6 )
g6 ( x7 )
g8 ( x8 )
≡ x5 − xSD ≤ 0
≡ x6 − ySD ≤ 0
≡ x7 − xSD ≤ 0
≡ x8 − ySD ≤ 0
( x7 − x5 )2 + ( x8 − x6 )2
g10 ( x8 )
≡ − x8
g12 ( x9 ,x10 )
≡ − x9 + x10
≤ 0
g11 ( x8 ,x9 ) ≡ − x8 + x9
< 0;
g13 ( x10 ,x11 )
< 0;
g14 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 )
≡ 30 − f1 ( x ) ≤ 0;
g15 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9 )
≡ 30 − f 2 ( x ) ≤ 0
g16 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x10 )
≡ 30 − f3 ( x ) ≤ 0
g17 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x11 )
≡ 30 − f 4 ( x ) ≤ 0
< 0
≡ − x10 + x11 < 0;
g18 ( x1 ,x2 ,x5 ,x6 ,x7 ,x8 ) ≡
x12 + x22 − m
( x7 − x5 )2 + ( x8 − x6 )2 ≤ 0
g19 ( x3 ,x4 ,x5 ,x6 ,x7 ,x8 ) ≡
x32 + x42 − p
( x7 − x5 )2 + ( x8 − x6 )2 ≤ 0
h1 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9 ) ≡ ...
... ≡
( x1 + x3 + x5 − x7 )2 + ( x2 + x4 + x6 − x8 )2 − ...
(
... − X 2 xP2 + X 3 xP2 + x5 − x7
h2 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9 ,x10 ) ≡ ...
... ≡
( X 2x
P2
(
h3 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x10 ,x11 ) ≡ ...
... ≡
( X 2x
P3
(
P2
+ X 3 yP2 + x6 − x8
2
)
2
=0
2
P2
P2
P3
P3
) + ( X 2 y + X 3 y + x6 − x8 ) − ...
2
2
+ x5 − x7 ) − ( X 2 y + X 3 y + x6 − x8 ) = 0
+ X 3 xP3 + x5 − x7
... − X 2 xP4 + X 3 xP4
2
) + ( X 2 y + X 3 y + x6 − x8 ) − ...
2
2
+ x5 − x7 ) − ( X 2 y + X 3 y + x6 − x8 ) = 0
+ X 3 xP2 + x5 − x7
... − X 2 xP3 + X 3 xP3
) − ( X2y
2
2
P3
P3
P4
56
P4
h4 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x9 ) ≡ ...
... ≡
( − x1 − x3 − x5 )2 + ( − x2 − x4 − x6 )2 − ...
... − ( xposición 2 − X 2 xP2 − X 3 xP2 − x5 ) − ( yposición 2 − X 2 yP2 − X 3 yP2 − x6 ) = 0
2
2
h5 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x9 ,x10 ) ≡ ...
... ≡
( xposición 2 − X 2 x − X 3x − x5 ) + ( yposición 2 − X 2 y − X 3 y − x6 ) − ...
2
2
... − ( xposición 3 − X 2 x − X 3 x − x5 ) − ( yposición 3 − X 2 y − X 3 y − x6 ) = 0
2
P2
P2
P3
2
P2
P3
P2
P3
P3
h6 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x10 ,x11 ) ≡ ...
... ≡
( xposición 3 − X 2 x − X 3x − x5 ) + ( yposición 3 − X 2 y − X 3 y − x6 ) − ...
2
2
... − ( xposición 4 − X 2 x − X 3 x − x5 ) − ( yposición 4 − X 2 y − X 3 y − x6 ) = 0
2
P3
P3
P4
2
P3
P4
P3
P4
P4
h7 ( x1 , x2 , x3 , x4 , x5 , x6 , x9 ) ≡ ...
⎛ yposición 2 − X 2 yP2 − X 3 yP2 − x6 ⎞
⎛ − x − x4 − x6 ⎞
+ α1 − tan −1 ⎜
=0
... ≡ tan −1 ⎜ 2
⎟
⎜ xposición 2 − X 2 x − X 3 x − x5 ⎟⎟
⎝ − x1 − x3 − x5 ⎠
⎝
⎠
P2
P2
h8 ( x1 , x2 , x3 , x4 , x5 , x6 , x10 ) ≡ ...
y
− X 2 yP3 − X 3 yP3 − x6 ⎞
⎛ − x − x4 − x6 ⎞
−1 ⎛ posición 3
+
α
−
=0
... ≡ tan −1 ⎜ 2
tan
⎜
2
⎟
⎜ xposición 3 − X 2 x − X 3 x − x5 ⎟⎟
⎝ − x1 − x3 − x5 ⎠
P3
P3
⎝
⎠
h9 ( x1 , x2 , x3 , x4 , x5 , x6 , x11 ) ≡ ...
⎛ yposición 4 − X 2 yP4 − X 3 yP4 − x6 ⎞
⎛ − x − x4 − x6 ⎞
+ α3 − tan −1 ⎜
... ≡ tan −1 ⎜ 2
⎟⎟ = 0
⎟
⎜
−
−
−
−
x
X
X
−
−
x
x
x
x
2 xP4
3 xP4
⎝ 1 3 5⎠
5 ⎠
⎝ posición 4
3.4.4. Enunciado del problema para 5 posiciones prescritas
Encontrar el vector de variables de diseño x = ( x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9 , x10 , x11 , x12 ) que
minimicen el siguiente vector de objetivos:
F ( x ) = − ⎡⎣ω1 f1 ( x ) + ω2 f 2 ( x ) + ω3 f3 ( x ) + ω4 f 4 ( x ) + ω5 f5 ( x ) ⎤⎦
Sujeto a las siguientes restricciones:
57
g1 ( x5 )
g3 ( x6 )
g5 ( x7 )
g7 ( x8 )
≡ xII − x5 ≤
≡ yII − x6 ≤
≡ xII − x7 ≤
≡ yII − x8 ≤
g 2 ( x5 )
g 4 ( x6 )
g6 ( x7 )
g8 ( x8 )
0;
0;
0;
0;
g9 ( x5 ,x6 ,x7 ,x8 ) ≡ n −
≡ x5 − xSD ≤ 0
≡ x6 − ySD ≤ 0
≡ x7 − xSD ≤ 0
≡ x8 − ySD ≤ 0
( x7 − x5 )2 + ( x8 − x6 )2
g10 ( x8 )
≡ − x8
g12 ( x9 ,x10 )
≡ − x9 + x10
< 0;
g14 ( x11 ,x12 )
≡ − x11 + x12
< 0;
≤ 0
g11 ( x8 ,x9 ) ≡ − x8 + x9
< 0;
g13 ( x10 ,x11 )
g15 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 )
≡ 30 − f1 ( x ) ≤ 0;
g16 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9 )
≡ 30 − f 2 ( x ) ≤ 0
g17 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x10 )
≡ 30 − f3 ( x ) ≤ 0
g18 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x11 )
≡ 30 − f 4 ( x ) ≤ 0
g19 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x12 )
≡ 30 − f5 ( x ) ≤ 0
< 0
≡ − x10 + x11 < 0;
g 20 ( x1 ,x2 ,x5 ,x6 ,x7 ,x8 ) ≡
x12 + x22 − m
( x7 − x5 )2 + ( x8 − x6 )2 ≤ 0
g 21 ( x3 ,x4 ,x5 ,x6 ,x7 ,x8 ) ≡
x32 + x42 − p
( x7 − x5 )2 + ( x8 − x6 )2 ≤ 0
h1 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9 ) ≡ ...
... ≡
( x1 + x3 + x5 − x7 )2 + ( x2 + x4 + x6 − x8 )2 − ...
(
... − X 2 xP2 + X 3 xP2 + x5 − x7
h2 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x9 ,x10 ) ≡ ...
... ≡
( X 2x
P2
(
h3 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x10 ,x11 ) ≡ ...
... ≡
( X 2x
P3
(
h4 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,x11 ,x12 ) ≡ ...
... ≡
( X 2x
P4
(
)
2
=0
2
2
P2
P2
P3
) + ( X 2 y + X 3 y + x6 − x8 ) − ...
2
2
+ x5 − x7 ) − ( X 2 y + X 3 y + x6 − x8 ) = 0
2
2
P3
P3
P4
P4
) + ( X 2 y + X 3 y + x6 − x8 ) − ...
2
2
+ x5 − x7 ) − ( X 2 y + X 3 y + x6 − x8 ) = 0
+ X 3 xP4 + x5 − x7
... − X 2 xP5 + X 3 xP5
P2
+ X 3 yP2 + x6 − x8
P3
+ X 3 xP3 + x5 − x7
... − X 2 xP4 + X 3 xP4
2
) + ( X 2 y + X 3 y + x6 − x8 ) − ...
2
2
+ x5 − x7 ) − ( X 2 y + X 3 y + x6 − x8 ) = 0
+ X 3 xP2 + x5 − x7
... − X 2 xP3 + X 3 xP3
) − ( X2y
2
2
P4
P4
P5
58
P5
h5 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x9 ) ≡ ...
... ≡
( − x1 − x3 − x5 )2 + ( − x2 − x4 − x6 )2 − ...
... − ( xposición 2 − X 2 xP2 − X 3 xP2 − x5 ) − ( yposición 2 − X 2 yP2 − X 3 yP2 − x6 ) = 0
2
2
h6 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x9 ,x10 ) ≡ ...
... ≡
( xposición 2 − X 2 x − X 3x − x5 ) + ( yposición 2 − X 2 y − X 3 y − x6 ) − ...
2
2
... − ( xposición 3 − X 2 x − X 3 x − x5 ) − ( yposición 3 − X 2 y − X 3 y − x6 ) = 0
2
P2
P2
P3
2
P2
P2
P3
P3
P3
h7 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x10 ,x11 ) ≡ ...
... ≡
( xposición 3 − X 2 x − X 3x − x5 ) + ( yposición 3 − X 2 y − X 3 y − x6 ) − ...
2
2
... − ( xposición 4 − X 2 x − X 3 x − x5 ) − ( yposición 4 − X 2 y − X 3 y − x6 ) = 0
2
P3
P3
P4
2
P3
P3
P4
P4
P4
h8 ( x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x11 ,x12 ) ≡ ...
... ≡
( xposición 4 − X 2 x − X 3x − x5 ) + ( yposición 4 − X 2 y − X 3 y − x6 ) − ...
2
2
... − ( xposición 5 − X 2 x − X 3 x − x5 ) − ( yposición 5 − X 2 y − X 3 y − x6 ) = 0
2
P4
P4
P5
2
P4
P5
P4
P5
P5
h9 ( x1 , x2 , x3 , x4 , x5 , x6 , x9 ) ≡ ...
⎛ yposición 2 − X 2 yP2 − X 3 yP2 − x6 ⎞
⎛ − x − x4 − x6 ⎞
... ≡ tan −1 ⎜ 2
=0
+ α1 − tan −1 ⎜
⎟
⎜ xposición 2 − X 2 x − X 3 x − x5 ⎟⎟
⎝ − x1 − x3 − x5 ⎠
⎝
⎠
P2
P2
h10 ( x1 , x2 , x3 , x4 , x5 , x6 , x10 ) ≡ ...
y
− X 2 yP3 − X 3 yP3 − x6 ⎞
⎛ − x − x4 − x6 ⎞
−1 ⎛ posición 3
... ≡ tan −1 ⎜ 2
tan
+
α
−
=0
⎜
2
⎟
⎜ xposición 3 − X 2 x − X 3 x − x5 ⎟⎟
⎝ − x1 − x3 − x5 ⎠
P3
P3
⎝
⎠
h11 ( x1 , x2 , x3 , x4 , x5 , x6 , x11 ) ≡ ...
⎛ yposición 4 − X 2 yP4 − X 3 yP4 − x6 ⎞
⎛ − x − x4 − x6 ⎞
... ≡ tan −1 ⎜ 2
+ α3 − tan −1 ⎜
=0
⎟
⎜ xposición 4 − X 2 x − X 3 x − x5 ⎟⎟
⎝ − x1 − x3 − x5 ⎠
⎝
⎠
P4
P4
h12 ( x1 , x2 , x3 , x4 , x5 , x6 , x12 ) ≡ ...
y
− X 2 yP5 − X 3 yP5 − x6 ⎞
⎛ − x − x4 − x6 ⎞
−1 ⎛ posición 5
... ≡ tan −1 ⎜ 2
tan
=0
+
α
−
⎜
4
⎟
⎜ xposición 5 − X 2 x − X 3 x − x5 ⎟⎟
⎝ − x1 − x3 − x5 ⎠
P5
P5
⎝
⎠
3.5. SOLUCIÓN DEL PROBLEMA DE OPTIMIZACIÓN USANDO MATLAB
Cada uno de los problemas de diseño se resuelve independientemente, por lo tanto se
desarrolló un algoritmo para resolver separadamente el correspondiente problema.
59
El siguiente flujograma describe la forma como esta estructurado el algoritmo:
Figura 19. Estructura general del algoritmo
Archivo de datos
Archivo principal
Archivo de funciones objetivo
Archivo de restricciones
El “Archivo de datos” mantiene los valores de los datos conocidos y supuestos para el
vector x de variables de diseño (condición inicial). El “Archivo de funciones objetivo”
contiene el vector de objetivos F ( x ) y el “Archivo de restricciones” las respectivas
restricciones h p ( x ) y g m ( x ) .
Dado que el vector de objetivos F ( x ) y algunas de las restricciones h p ( x ) y g m ( x ) no
son lineales, (lo que representa un problema de programación no lineal) para resolver el
problema se usó la función “fmincon” de MATLAB en el “Archivo principal”, además este
contiene las rutinas para dibujar el mecanismo en cada una de las posiciones prescritas y
visualizar los resultados obtenidos.
Como el algoritmo no siempre ofrecía soluciones (o no eran las mejores) para el conjunto
de valores contenido en el “Archivo de datos”, era deseable probar otros conjuntos pero la
tarea era muy tediosa y poco intuitiva ya que había que introducir manualmente los datos
de la condición inicial, por lo tanto fue necesario desarrollar una interfaz que permitiera
señalar gráficamente dichos vectores.
En ANEXOS, se describe la interfaz gráfica así como las instrucciones para introducir los
datos.
60
4. RESULTADOS
Aunque los criterios de convergencia del algoritmo deberían cambiar según el nivel de
complejidad del problema o dependiendo del número de posiciones prescritas, se prefirió
dejarlos en unos valores fijos máximos, que fueron obtenidos al resolver problemas con
diversos grados de dificultad. Tales criterios fueron:
• MaxFunEvals = 2500 para 2 posiciones prescritas y 7500 para 3 o más: Define el
máximo número de veces que el algoritmo puede evaluar la función objetivo. Un llamado
adicional a la función objetivo implica la finalización de la búsqueda sin alcanzar una
solución.
• MaxIter = 200 para 2 posiciones prescritas y 600 para 3 o más: Define el máximo
número de iteraciones que puede realizar el algoritmo. Una iteración adicional implica la
finalización de la búsqueda sin alcanzar una solución.
• TolFun = 1x10-3 para 2 posiciones prescritas y 1x10-6 para 3 o más: Esta cantidad define
la tolerancia de convergencia asociada con la variación en el valor de la función objetivo.
Una variación por debajo de esta cantidad lleva a una finalización exitosa de la búsqueda.
• TolX = 1x10-3 para 2 posiciones prescritas y 1x10-6 para 3 o más: Esta cantidad define
la tolerancia de convergencia asociada con la variación en el valor de las variables de
diseño. Una variación por debajo de esta cantidad lleva a una finalización exitosa de la
búsqueda.
4.1. EJEMPLOS DE APLICACIÓN PARA 2 POSICIONES PRESCRITAS
Los problemas mostrados a continuación poseen diversos niveles de dificultad. Las
soluciones mostradas en las ventanas de resultados validan el trabajo de formulación del
problema de optimización, así como su solución mediante el algoritmo desarrollado que es
el motor en el que se basa el GUI implementado.
Enunciado del Problema 1: Sobre la banda transportadora inferior se mueve un conjunto de
cajas. Es necesario disponer la caja que cumpla cierta condición “A”, sobre la banda
transportadora superior con la orientación ilustrada en la siguiente figura. Es necesario
obtener las dimensiones y posición inicial del mecanismo de 4 barras generador de
movimiento que de manera efectiva cumpla con este cometido. Sus pares fijos deben
quedar confinados al área de montaje ilustrada.
61
Figura 20. Datos del problema 1. Síntesis de 2 posiciones
Figura 21. Ventana de datos del problema 1. Síntesis de 2 posiciones
62
4.1.1. Descripción del dibujo ilustrado en la ventana de datos (Figura 21)
A partir de los datos introducidos en los campos (para mayor información al respecto, debe
consultarse el manual de usuario en los ANEXOS) el GUI dibuja un rectángulo y 2 o más
líneas dependiendo del número de posiciones prescritas. El rectángulo representa el área
dentro del cual deben quedar los pares fijos O2 y O4 y las líneas denotan la posición y
orientación de cada una de las posiciones prescritas (El rótulo “P1” identifica la primera
posición prescrita).
Figura 22. Ventana de resultados del problema 1. Síntesis de 2 posiciones
4.1.2. Descripción del dibujo ilustrado en la ventana de resultados (Figura 22)
Sea que la solución sea factible o no (es decir se satisfagan todas las restricciones) la
interfaz dibujará el mecanismo. Las líneas gruesas representan los eslabones del mecanismo
dispuesto en la posición inicial (primera posición prescrita). Los otros conjuntos de líneas,
al mecanismo en otra posición prescrita. El par motriz O2 (ver la Figura 1) se identifica
mediante un triángulo y un punto en su centro. El par O4 mediante un triángulo. El par “A”
mediante un círculo y un punto en su centro. El par “B” mediante un cuadrado. A partir de
los pares debe ser fácil identificar los eslabones motriz, acoplador y seguidor.
63
Los 4 puntos identificados en la Figura 22 con el rotulo “inicio” denotan la condición
inicial necesaria para que el algoritmo emprenda la búsqueda correspondiente. Dado que la
solución depende en gran medida de tales puntos, es factible probar otros conjuntos de
manera sistemática hasta encontrar otra alternativa mejor.
Una manera para buscar tal alternativa (aun en casos donde la solución no sea factible),
consiste en estudiar el dibujo del mecanismo en la ventana de resultados y cambiar un solo
punto la vez. Por ejemplo probar una nueva posición para el par O2, dejando fijo a O4.
Aunque esta forma gráfica e intuitiva ofrece una magnifica alternativa para diseñar
mecanismos óptimos, puede que tarde en aparecer una solución que satisfaga todas las
restricciones de diseño.
La solución ilustrada en la Figura 22 convergió en 143 iteraciones y 2251 llamados al
vector de objetivos. La Figura 23 ilustra el mecanismo en su entorno de operación.
Figura 23. Dibujo del mecanismo del problema 1 en su entorno operativo.
Para los siguientes problemas solo se mostrarán las ventanas de datos y resultados. A partir
de las descripciones anteriores, el lector puede inferir con facilidad los datos del problema
de diseño correspondiente.
64
Figura 24. Ventanas de datos y resultados del problema 2. Síntesis de 2 posiciones
La solución mostrada en la Figura 24, aunque geométricamente es mucho más compleja
que la del problema 1, convergió en apenas 11 iteraciones y 134 llamados al vector de
objetivos.
65
Figura 25. Ventana de datos y resultados del problema 3. Síntesis de 2 posiciones
La solución mostrada en la Figura 25 convergió en 88 iteraciones y 1021 llamados al vector
de objetivos.
66
4.2. EJEMPLO DE APLICACIÓN PARA 3 POSICIONES PRESCRITAS
Figura 26. Ventana de datos y resultados del problema. Síntesis de 3 posiciones
67
La solución mostrada en la Figura 26 convergió en 50 iteraciones y 926 llamados al vector
de objetivos. La siguiente figura ilustra otra solución factible para este problema.
Figura 27. Solución alternativa para el problema de síntesis de 3 posiciones
La solución mostrada en la Figura 27 convergió en 48 iteraciones y 697 llamados al vector
de objetivos.
68
4.3. EJEMPLO DE APLICACIÓN PARA 4 POSICIONES PRESCRITAS
Figura 28. Ventana de datos y resultados del problema. Síntesis de 4 posiciones
La solución mostrada en la Figura 28 convergió en 27 iteraciones y 566 llamados al vector
de objetivos.
69
5. CONCLUSIONES
Cuando se tienen restricciones de montaje, la forma de díada estándar no puede por sí
misma ofrecer soluciones con ángulos de transmisión óptimos, de manera que fue necesario
usar un método de optimización.
Al lograr que los ángulos de transmisión de 2 posiciones sucesivas cercanas tengan valores
altos, ciertamente se puede asegurar que el mecanismo no se trabará (condición conocida
como “agarrotamiento” o defecto de “rama” que es debida a la presencia de un ángulo de
transmisión de “0º” en un punto intermedio entre tales posiciones sucesivas), así como una
ventaja mecánica promedio significativamente grande.
Luego de probar diversos conjuntos de funciones y variables de diseño, se concluyó que las
soluciones más consistentes se obtienen a partir de las siguientes ocho variables de diseño:
• 4 variables que representan las coordenadas (x, y) de los pares fijos del mecanismo.
• 4 variables que representan las componentes escalares (horizontal y vertical) de los
eslabones motriz y acoplador.
El mecanismo se puede construir a partir de estas variables, sin embargo hace falta una
variable para describir cada una de las posiciones sucesivas del mecanismo. La variable
elegida representa el ángulo de rotación del eslabón motriz medido desde la posición inicial
del eslabonamiento.
Las soluciones obtenidas a partir de estas variables de diseño cumplía parcialmente la
correspondiente tarea de movimiento de manera que fue necesario añadir varias
restricciones de diseño para satisfacer por completo la posición y orientación del acoplador.
El algoritmo desarrollado le ofrece al diseñador una buena herramienta para encontrar
mecanismos de barras, que de manera eficientes solucionen los problemas asociados con la
conducción de un cuerpo rígido a través de una serie de posiciones prescritas.
El algoritmo está basado en la técnica de optimización SQP, que representa el estado del
arte en las técnicas de programación no lineal (NLP) basadas en la filosofía de la dirección
de descenso. Desafortunadamente solo encuentra mínimos locales.
Cuando se emplea SQP (y la gran mayoría de métodos de optimización) la solución
depende en gran medida de la condición inicial. Así que es probable que sea necesario
probar diversos conjuntos de datos hasta encontrar una solución, pero para el caso que
atañe este trabajo, preparar e introducir los datos correspondientes en forma manual era
una tarea larga y tediosa, y en la mayoría de las veces no se sabía si se avanza en la
dirección correcta. Por lo tanto se desarrolló una interfaz (descrita en los ANEXOS) que le
70
permite al usuario señalar mediante el Mouse, la posición probable donde deben ubicarse
los pares del mecanismo.
La interfaz no solo facilita la introducción de la condición inicial de una manera intuitiva,
sino que visualiza los resultados (factibles o no) y permite “seguirle la pista” a una mejor
solución. No puede olvidarse que detrás de ella se encuentra un algoritmo robusto, estable y
que tiene buenas propiedades de convergencia.
Dentro de las estrategias de optimización multiobjetivo, la “Suma ponderada” es una
técnica simple que permitió destacar las funciones objetivo que describen el ángulo μ de la
primera y última posición prescrita, que son claves para lograr que se transmita el
movimiento desde el acoplador hacia el seguidor de manera efectiva.
Al definir las restricciones de diseño hay que tener cuidado de no usarse restricciones
redundantes o dependientes ya que pueden producir inconsistencias en las soluciones.
Un vector de variables de diseño y una función de costo bien formulada ofrece resultados
inconsistentes, si el problema no está correctamente restringido.
Aunque puede pensarse que las variables de diseño tienen que ver con los parámetros
constructivos de un sistema, debe considerarse que en algunos casos ello no es cierto.
Evidencia de esto es la variable β de este trabajo.
Si la solución no aparece, se pueden variar los valores de n, m y p de las ecuaciones (12) y
(15), de manera que la región factible Ω aumente de tamaño.
71
6. TRABAJO FUTURO
El algoritmo y la interfaz pueden refinarse de manera que para cierta posición de los pares
fijos sea posible visualizar las zonas en donde no sea factible encontrar soluciones que
satisfagan las restricciones de diseño, de manera que el diseñador pueda concentrarse en
aquellas áreas donde si lo sea.
Además de optimizar el ángulo de transmisión, el trabajo puede continuarse en la dirección
de hacer síntesis dimensional óptima (longitud mínima de los eslabones).
Como SQP solo puede encontrar mínimos locales, es necesario explorar otras técnicas de
optimización que puedan encontrar mínimos globales, al menos dentro del área donde
deben quedar los pares fijos del mecanismo.
En este trabajo los pares fijos O2 y O4 se confinaron a un área particular. En muchos casos
de diseño es necesario hacer lo mismo con los pares móviles “A” y “B” por razones
constructivas o de conveniencia y por lo tanto el estudio puede continuarse en la dirección
de reformular el problema de diseño de manera que se tenga en cuenta este nuevo conjunto
de restricciones.
72
REFERENCIAS
ARORA, J.S (2004) “Introduction to optimum design” 2a Ed, Academic Pres
ALT. VON H. (1932). “Der ubertragungswinkel und seine bedeutung fur dar konstruieren
periodischer getribe werksstatstechnik” pág. 61-62
BALLI S.S & CHAND S. (2002) “transmission angle in mechanisms” Mechanism and
Machine Theory 37, pág. 175–195
BELEGUNDU A.D. & CHANDRUPATLA T.R. (1999) “Optimization concept and
applications in engineering” Pearson Education – Prentice Hall.
BURMESTER L.”Lehrbuch der Kinematik” (1888) Arthur Felix Verlag, Leipzig Pág.
599–623
ERDMAN, A.G. & SANDOR G.N. (1997) “Diseño de mecanismos, análisis y síntesis”
Vol 1, 3a Ed, Prentice.
HARTENBERG R.S., DENAVIT. J. (1964) “Kinematic synthesis of lincages”, McGrawHill, pág. 46-47.
HAYES M.J.D. & ZSOMBOR-MURRAY P.J. (2004) “Towards Integrated Type and
Dimensional Synthesis of Mechanisms for Rigid Body Guidance” CSME 2004 Forum, Pág.
1-9.
LOERCH R. J., ERDMAN A.G., SANDOR N. & MIDHA A. (1975) “Synthesis of fourbar linkages with specified ground pivots” 4th Applied Mechanisms Conference. Chicago.
Pág 10.1 – 10.6
LOERCH R. J., ERDMAN A.G. & SANDOR N. (1979) “On the existence of circle-point
and center-point for three precision point Dyad synthesis” Journal of Mechanical Design.
Pág 554 – 562
NORTON R.L. (2004), “Design of Machinery”, 3a Ed, McGrawHill
PARETO V. (1971), “Manual de Political Economy”, Augustus M. Kelley Publishers
PETERSON R. L., LOGAN L., ERDMAN A.G. & RILEY D. (1988) “Three precision
point synthesis of a four-bar linkage: An example using the LINCAGES-4 program”.
Computers in Engineering. ASME, Vol. 2, pág. 91-96.
73
SUTHERLAND S. (1974), “Dimensional synthesis of linkages by multifactor
optimization” Mechanism and Machine Theory, pág. 81-95
TAO. D. C. (1964) “Applied linkages synthesis”. Addinson-Wesley, pág. 7-12
UICKER J. GORDON R. SHIGLEY J. (2003) “Theory of machines and mechanims”, third
edition, Oxford University Press.
74
ANEXO A - DESCRIPCIÓN DE LA INTERFAZ GRÁFICA
Usando el entorno GUIDE (Graphical User Interface development environment) de
MATLAB se desarrolló un GUI (interfaz gráfica de usuario) que tiene 2 propósitos. El
primero de ellos es contribuir a que la introducción de los datos de la condición inicial para
la optimización sea intuitiva y fácil. El segundo propósito es aportarle al diseñador de
mecanismos un entorno simple y cómodo que le permita obtener soluciones con relativa
facilidad.
El GUI posee 2 ventanas, la primera de ellas es la ventana de datos en donde se introduce y
visualiza la información prescrita o conocida del problema de diseño de mecanismos, tal
como la orientación y posición de cada posición prescrita, y las coordenadas de la zona
dentro de la cual quedarán los pares fijos del mecanismo. Esta ventana posee un conjunto
de ayudas que hacen fácil la introducción de los datos. Ver la Figura 29
Figura 29. Ventana de datos prescritos
Orientación de cada posición
prescrita
Posición de cada posición
prescrita
Posición de la zona donde
quedará el bastidor
En la segunda ventana se introducen los datos de la condición inicial de manera que el
algoritmo de cálculo pueda empezar la búsqueda de la solución óptima. Una vez se
75
encuentra una solución se ilustra el mecanismo posicionado en cada una de las posiciones
prescritas, mostrando además las longitudes y orientación de sus eslabones, así como las
ayudas correspondientes para interpretar el resultado de la búsqueda. Ver la Figura 30
El GUI está diseñado de forma que deben introducirse los datos en un orden particular que
depende de lo que sea necesario para resolver el problema, además solo acepta datos que
estén dentro de un rango particular, pertenezcan a un sistema de unidades específico y que
no arrojen incoherencias (tales como la ubicación de un par fijo fuera de la zona para el
bastidor).
El GUI está contenido en los archivos “Synthesis_HAPL.fig” y “Synthesis_HAPL.m” del
directorio raíz del CD que acompaña este documento. El primero de ellos contiene una
descripción del formato y los componentes del GUI, el segundo contiene el código que lo
controla.
Figura 30. Ventana de Resultados
Longitud y orientación de
los eslabones de la solución
encontrada en la posición
inicial
Ángulo de transmisión μ del
mecanismo en cada posición
prescrita
Orientación relativa del
motriz para las posiciones
intermedias y final
En la sección siguiente se describe detalladamente cada ventana y se dan las instrucciones
correspondientes para usar adecuadamente el GUI desarrollado.
76
ANEXO B - MANUAL DE USUARIO
• Recomendaciones.
La versión de MatLab que requiere el GUI debe ser R6 o superior y una resolución de
pantalla de mínimo 800x600 píxeles. Las instrucciones dadas en este instructivo se
describen de manera que sea fácil usar el GUI aunque no se este familiarizado con el uso
de MatLab.
• Carga del GUI.
Cargue MatLab. Para acceder al GUI debe añadirse a MatLab la carpeta “D:\”, mediante
la opción “Set Path…” del menú “File”. Posteriormente se digita “Synthesis_HAPL” en
la línea de comando (>>), lo que hará que se visualicen la ventana de datos.
• Introducción de la información en la ventana de datos.
Obsérvese que los campos y botones de la ventana de datos están deshabilitados excepto
los de “Ayuda” y los del “Número de posiciones de diseño”.
Una vez se ha elegido el número de posiciones de diseño, los campos correspondientes
se habilitan para introducir los datos conocidos del problema. Aunque el GUI esta
diseñado de forma tal que solo acepta la información en un formato específico y dentro
de unos rangos particulares, es necesario conocerlos de antemano para que resulte fácil
introducirla.
La orientación de cada una de las posiciones de diseño es una cantidad positiva en
notación decimal, medida en grados que se toma desde el eje positivo X y está
comprendida en el rango [0, 360]. Para 3 posiciones prescritas se ilustran en la Figura 31
estas orientaciones y lo que debe introducirse en los campos.
77
Figura 31. Orientación de cada posición prescrita.
La posición inicial es la de referencia y por lo tanto un punto (arbitrario) de ella es el
origen de coordenadas del problema. La posición del resto de posiciones prescritas se
mide respecto a la inicial. Se puede usar cualquier cantidad física para las coordenadas y
su notación es decimal. Para 3 posiciones prescritas se ilustran en la Figura 32 estas
coordenadas y lo que debe introducirse en los campos.
Figura 32. Posición relativa de cada posición prescrita.
Las coordenadas de la zona dentro de la cual quedarán los pares fijos del bastidor se
mide respecto al punto arbitrario de la posición inicial. La cantidad física para estas
coordenadas debe ser la usada previamente y su notación es decimal. Para 3 posiciones
78
prescritas se ilustran en la Figura 33 estas coordenadas y lo que debe introducirse en los
campos.
Figura 33. Posición relativa de la zona del bastidor.
• Validación y dibujo de la información introducida.
Una vez introducida la información es necesario verificar que no haya inconsistencias,
para ello debe pulsarse el botón “Validar”. En caso que haya inconsistencias, un cuadro
de dialogo revelará el error. A continuación se ilustran los cuadros de dialogo
respectivos.
Si no hay inconsistencias se habilitará el botón “Dibujar”, los campos se deshabilitarán
(No podrán hacerse cambios a los datos) y se mostrará el siguiente cuadro de dialogo.
79
Para representar y verificar la información introducida, debe pulsarse el botón “Dibujar”.
Una vez dibujada se habilitará el botón “Diseño Interactivo” que permitirá acceder a la
ventana de resultados.
• Inicialización de la interfaz.
Para poner en “cero” los campos de la interfaz, debe pulsarse el botón “Reset”
• Introducción de los datos de la condición inicial.
Una vez en la ventana de resultados, mediante el Mouse debe señalarse la posición de
los pares fijos del bastidor. El procedimiento a seguir se describe en continuación:
Pulse el botón “Par O2 y O4”, un cuadro de diálogo instruirá sobre lo que debe
hacerse. Una vez señalados estos pares son habilitados los botones “Par A y B” y
“Probar otra…”.
Pulse el botón “Par A y B”, un cuadro de diálogo instruirá sobre lo que debe
hacerse. Una vez señalados estos pares es habilitado el botón “Calcular”.
La Figura 34 da una idea de lo que se obtiene. El par O2 se denota con un punto dentro
del triángulo, el par O4 mediante un triángulo.
Es factible que al señalar la posición de alguno de los pares O2 y O4, se haga por fuera
de la zona dentro de la cual deben quedar, a lo cual el GUI mostrará un cuadro de
diálogo y pedirá que se señale de nuevo su ubicación. Los diálogos correspondientes se
muestran a continuación.
80
Figura 34. Condición inicial
• Cálculo de una solución
Al pulsar el botón “Calcular” se pone en marcha el algoritmo de cálculo, que entrega un
resultado al cabo de minutos. El resultado es el dibujo del mecanismo en cada una de las
posiciones prescritas, así como la longitud y orientación de los eslabones de la solución
encontrada en la posición inicial, el ángulo de transmisión μ del mecanismo en cada
posición prescrita y la orientación relativa del eslabón motriz para las posiciones
intermedias y final.
• Prueba de otra condición inicial
Para probar otro conjunto de condiciones iniciales debe pulsarse el botón “Probar
otra…”, lo que eliminará el dibujo de la solución encontrada.
• Interpretación de los resultados
Aunque el GUI desarrollado es una magnifica herramienta para diseñar mecanismos
óptimos no significa que por si mismo pueda garantizar que toda solución es 100%
funcional o valida.
81
En la ventana de resultados el botón “Interpretación de resultados” permite consultar una
esta guía para este fin.
• Cerrar el GUI
Para cerrar el GUI, simplemente debe pulsarse el botón “⌧” hasta salir de MatLab. Si lo
que se desea es cerrar la ventana de resultados para retornar a la de datos, debe usarse el
botón “Volver”.
82
ANEXO C - CÓDIGO DEL ALGORITMO
El código está almacenado en una serie de archivos que se organizaron de la siguiente
forma:
Archivos de la Interfaz:
Synthesis_HAPL.m
Optimizacion.m
Ayuda1.m
Ayuda2.m
Ayuda3.m
&
&
&
&
&
Synthesis_HAPL.fig
Optimizacion.fig
Ayuda1.fig
Ayuda2.fig
Ayuda3.fig
Estos archivos mantienen la información asociada con la programación de la interfaz de las
ventanas de datos, de resultados y de ayuda.
Archivo de dibujo:
Dibujar.m
Este archivo dibuja la información prescrita. Este archivo es usado con frecuencia por la
interfaz.
Archivos de Datos:
Datos_Prescritos.dat
Dos_posic_DATOS.dat
Tres_posic_DATOS.dat
Cuatro_posic_DATOS.dat
Cinco_posic_DATOS.dat
Se encuentran guardados en el subdirectorio “datos”. Estos archivos mantienen la
información prescrita, los datos de intercambio de información entre los diversos archivos
de la aplicación y los datos de los resultados.
Archivos del algoritmo:
Dos_posic_DAT.m
Dos_posic_fun.m
Tres_posic_DAT.m
Tres _posic_fun.m
Cuatro_posic_DAT.m
Cuatro _posic_fun.m
&
&
&
&
&
&
Dos_posic_EXE.m
Dos_posic_Res.m
Tres _posic_EXE.m
Tres _posic_Res.m
Cuatro _posic_EXE.m
Cuatro _posic_Res.m
Están guardados en el subdirectorio “private”. Los archivos _DAT.m contienen la
condición inicial y otros datos necesarios para el algoritmo. Los archivos _EXE.m son el
corazón del algoritmo, además de ser responsables de mostrar los resultados. Los archivos
_fun.m contienen el vector de objetivos en términos de las variables de diseño. Los
archivos _Res.m mantienen las restricciones correspondientes.
83
Solo se muestran los archivos del algoritmo correspondientes a 2 posiciones prescritas
(Dos_posic_DAT.m; Dos_posic_EXE.m; Dos_posic_fun.m; Dos_posic_Res.m).
Tabla 3. Archivo de datos. Dos_posic_DAT.m
%ARCHIVO DE DATOS (Dos_posic_DAT.m)
%necesarios para el programa principal "Dos_posic_EXE.m", para el archivo de funciones
%objetivo "Dos_posic_fun.m" y para el archivo de restricciones "Dos_posic_Res.m"
function [x0,A1,xP2,yP2,xSD,ySD,xII,yII]=Dos_posic_DAT;%Retorna los valores
M = csvread('datos\Dos_posic_DATOS.dat');%Lee el archivo externo "Dos_posic_DATOS.dat" y asigna los datos a la matriz M.
x0=M(:,1:9);% M(:,1:9) extrae los datos de las columnas 1 a 9 del vector M y los asigna a x0. x0 es la condicion inicial
A1=M(:,10);% M(:,10) extrae el dato de la columna 10 del vector M y lo asigna a A1. Ángulo alfa 1
xP2=M(:,11);%Coordenada x de la segunda posición prescrita
yP2=M(:,12);%Coordenada y de la segunda posición prescrita
xSD=M(:,13);%Coordenada x de la esquina superior derecha del área para el bastidor
ySD=M(:,14);%Coordenada y de la esquina superior derecha del área para el bastidor
xII=M(:,15);%Coordenada x de la esquina inferior izquierda del área para el bastidor
yII=M(:,16);%Coordenada y de la esquina inferior izquierda del área para el bastidor
Tabla 4. Archivo principal. Dos_posic_EXE.m
%PROGRAMA PRINCIPAL 15-Oct-2007 11:00pm (Dos_posic_EXE.m)
function Dos_posic_EXE
clear all
%OPTIMIZACION__________________________________________________________________
warning off MATLAB:divideByZero;%suprime la advertencia cuando aparece una division por cero
% options = optimset;%Opciones por defecto de la estructura de los parametros de optimizacion
options = optimset('Display','iter','LargeScale','off','MaxFunEvals',0.5*5000,'MaxIter',200);
% Estructura personalizada de los parametros de optimizacion. Puede revisarse usando "output" en la linea de comando
[x0,A1,xP2,yP2,xSD,ySD,xII,yII]=Dos_posic_DAT;%LLamada de datos desde la funcion "Dos_posic_DAT.m".
[x,fval,exitflag,output] = fmincon(@Dos_posic_fun,x0,[],[],[],[],[],[],@Dos_posic_Res,options);%Optimizacion
x;%Vector solucion
[c,ceq] = Dos_posic_Res(x);%Llamada de datos desde la funcion "Dos_posic_Res.m"
% fval*180/pi;% Retorna el valor de la funcion objetivo para la solucion x encontrada
% exitflag;% Si exitflag es > 0 entonces el vector x es una solucion (La funcion "converge" en x)
% output %
Muestra informacion sobre los parametros y opciones de optimizacion
%
Si las restricciones son <=0, significa que se han cumplido
%OPTIMIZACION__________________________________________________________________
%DATOS PARA ILUSTRAR EN LA LINEA DE COMANDO LOS DATOS DE LOS ESLABONES Y EL ANGULO DE
%TRANSMISION_______________________
% DATOS OBTENIDOS DE LA OPTIMIZACION
x2x=x(:,1);%Motriz [%x(:,1) extrae la columna 1 del vector x]
x2y=x(:,2);%Motriz
x3x=x(:,3);%Acoplador
x3y=x(:,4);%Acoplador
xO2=x(:,5);
yO2=x(:,6);
xO4=x(:,7);
yO4=x(:,8);
B1=x(:,9);%Rotacion del motriz, en radianes
x1x=x(:,7)-x(:,5);%Bastidor
x1y=x(:,8)-x(:,6);%Bastidor
R0x=-xO4;
84
R0y=-yO4;
R1x=xP2-xO4;
R1y=yP2-yO4;
% DATOS DE LOS VECTORES PARA LA POSICION INICIAL
x4x1=(-x1x+x2x+x3x);%Seguidor
x4y1=(-x1y+x2y+x3y);%Seguidor
x5x1=(x1x-x2x+R0x);
x5y1=(x1y-x2y+R0y);
x6x1=(R0x+x1x-x2x-x3x);
x6y1=(R0y+x1y-x2y-x3y);
% CALCULO DE LAS LONGITUDES DE LOS ESLABONES DEL MECANISMO & ANGULO DE TRANSMISION PARA
% LA POSICION INICIAL
x1=sqrt(x1x^2+x1y^2);
x2=sqrt(x2x^2+x2y^2);
x3=sqrt(x3x^2+x3y^2);
x4=sqrt(x4x1^2+x4y1^2);
x5=sqrt(x5x1^2+x5y1^2);
x6=sqrt(x6x1^2+x6y1^2);
% mu1=min(gamma1,pi-gamma1)
mu1=min(acos((-x1^2-x2^2+x3^2+x4^2+2*x1*x2*cos(atan2(x2y,x2x)-atan2(x1y,x1x)))/(2*x3*x4)),pi-acos((-x1^2-…
x2^2+x3^2+x4^2+2*x1*x2*cos(atan2(x2y,x2x)-atan2(x1y,x1x)))/(2*x3*x4)));
%DATOS DE LOS VECTORES PARA LA POSICION FINAL
x2x2=cos(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2);%Motriz
x2y2=sin(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2);%Motriz
x3x2=cos(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2);%Acoplador
x3y2=sin(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2);%Acoplador
x4x2=(-x1x+(cos(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))+(cos(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)));%Seguidor
x4y2=(-x1y+(sin(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))+(sin(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)));%Seguidor
x5x2=(x1x-(cos(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))+R1x);%Acoplador
x5y2=(x1y-(sin(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))+R1y);%Acoplador
x6x2=(R1x+x1x-(cos(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))-…
(cos(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)));%Acoplador
x6y2=(R1y+x1y-(sin(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))-…
(sin(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)));%Acoplador
% CALCULO DE LAS LONGITUDES DE LOS ESLABONES DEL MECANISMO & ANGULO DE TRANSMISION PARA
% LA POSICION FINAL
x12=x1;
x22=sqrt(x2x2^2+x2y2^2);
x32=sqrt(x3x2^2+x3y2^2);
x42=sqrt(x4x2^2+x4y2^2);
x52=sqrt(x5x2^2+x5y2^2);
x62=sqrt(x6x2^2+x6y2^2);
% mu2=min(gamma2,pi-gamma2)
mu2=min(acos((-x12^2-x22^2+x32^2+x42^2+2*x12*x22*cos(atan2(x2y,x2x)-atan2(x1y,x1x)+B1))/(2*x32*x42)),pi-…
acos((-x12^2-x22^2+x32^2+x42^2+2*x12*x22*cos(atan2(x2y,x2x)-atan2(x1y,x1x)+B1))/(2*x32*x42)));
% CALCULO DE ANGULOS DE LOS ESLABONES DEL MECANISMO EN POSICION INICIAL
Ax1=angle(x1x+i*x1y)*180/pi;Ax2=angle(x2x+i*x2y)*180/pi;Ax3=angle(x3x+i*x3y)*180/pi;
Ax4=angle(x4x1+i*x4y1)*180/pi;Ax5=angle(x5x1+i*x5y1)*180/pi;Ax6=angle(x6x1+i*x6y1)*180/pi;
%VISUALIZACION DE LAS LONGITUDES DE LOS VECTORES EN LAS POSICIONES CORRESPONDIENTES
%
disp('
LONGITUDES DE LOS ESLABONES DEL MECANISMO EN POSICION INICIAL')
%
disp(' ')
%
disp(' x1
x2
x3
x4
x5
x6')
%
disp([x1,x2,x3,x4,x5,x6])
%
disp('
LONGITUDES DE LOS ESLABONES DEL MECANISMO EN POSICION FINAL')
%
disp(' ')
%
disp(' x1
x2
x3
x4
x5
x6')
%
disp([x12,x22,x32,x42,x52,x62])
% DESVIACION ESTANDAR DE LONGITUDES DE LOS ESLABONES DEL MECANISMO EN POSICION INICIAL
sdd=std([x1 x12])+std([x2 x22])+std([x3 x32])+std([x4 x42])+std([x5 x52])+std([x6 x62]);
85
%DIBUJO DEL MECANISMO__________________________________________________________
%ATENCION: Para ajustar estos datos de manera que puedan dibujarse sobre la interfaz, se añadió a cada vector de LINE...
% la coordenada xO2 o yO2 es decir line(xO2+X,yO2+Y)
% DIBUJO DEL MECANISMO EN LA POSICION INICIAL
plot(xO2,yO2,'k^','MarkerSize',12);plot(xO2,yO2,'k.','MarkerSize',15);% Dibuja el nuevo par O2
plot(xO4,yO4,'k^','MarkerSize',12);% Dibuja el nuevo par O4
line([xO2, xO2+x2x]', [yO2, yO2+x2y]','Color','b','LineWidth',2.5)%Linea motriz
line([xO2+x2x, xO2+x2x+x5x1]', [yO2+x2y, yO2+x2y+x5y1]','Color','r','LineWidth',2.5)%Linea Acoplador x5
line([xO2+x1x, xO2+x1x+x4x1]', [yO2+x1y, yO2+x1y+x4y1]','Color','b','LineWidth',2.5)%Linea seguidor
line([xO2+x1x+x4x1, xO2+x1x+x4x1+x6x1]', [yO2+x1y+x4y1, yO2+x1y+x4y1+x6y1]',…
'Color','r','LineWidth',2.5)%Linea Acoplador x6
line([xO2+x2x, xO2+x2x+x3x]', [yO2+x2y, yO2+x2y+x3y]','Color','r','LineWidth',2.5)%Linea Acoplador AB
plot(xO2+x2x,yO2+x2y,'ko');plot(xO2+x2x,yO2+x2y,'k.');% Par A
plot(xO2+x1x+x4x1,yO2+x1y+x4y1,'ks')% Par B
% DIBUJO DEL MECANISMO EN LA POSICION FINAL
line([xO2, xO2+x2x2]', [yO2, yO2+x2y2]','Color','b','LineStyle','--')%Linea motriz
line([xO2+x2x2, xO2+x2x2+x5x2]', [yO2+x2y2, yO2+x2y2+x5y2]','Color','r','LineStyle','--')%Linea Acoplador x5
line([xO2+x1x, xO2+x1x+x4x2]', [yO2+x1y, yO2+x1y+x4y2]','Color','b','LineStyle','--')%Linea seguidor
line([xO2+x1x+x4x2, xO2+x1x+x4x2+x6x2]', [yO2+x1y+x4y2, yO2+x1y+x4y2+x6y2]','Color','r','LineStyle','--')…
%Linea Acoplador x6
line([xO2+x2x2, xO2+x2x2+x3x2]', [yO2+x2y2, yO2+x2y2+x3y2]','Color','r','LineStyle','--')%Linea Acoplador AB
plot(xO2+x2x2,yO2+x2y2,'ko');plot(xO2+x2x2,yO2+x2y2,'k.')% Par A'
plot(xO2+x1x+x4x2,yO2+x1y+x4y2,'ks')% Par B'
% AJUSTES DEL GRAFICO
% grid%Muestra las lineas de la cuadricula
pbaspect([434.00 342.30 342.30])%Define el tamaño relativo de los ejes (x,y,z) del grafico
daspect([1 1 1])%Define la escala relativa de las unidades de los datos de los ejes (x,y,z) del grafico
%DIBUJO DEL MECANISMO__________________________________________________________
M=[x1,x2,x3,x4,x5,x6,Ax1,Ax2,Ax3,Ax4,Ax5,Ax6,mu1*180/pi,mu2*180/pi,B1*180/pi,sdd,xO2,yO2];%Matriz…
necesaria para la funcion "csvwrite"
csvwrite('datos\Resultados.dat',M)%Genera el archivo externo "Resultados.dat" que contiene los datos de la…
matriz M.
return
Tabla 5. Archivo de funciones objetivo. Dos_posic_fun.m
%ARCHIVO DE FUNCIONES OBJETIVO (Dos_posic_fun.m)
%necesario para el programa principal "Dos_posic_EXE.m"
function f = Dos_posic_fun(x)%Funcion de MatLab con el vector de funciones objetivo
[x0,A1,xP2,yP2,xSD,ySD,xII,yII]=Dos_posic_DAT;%LLamada de datos desde la funcion "Dos_posic_DAT.m"
%VARIABLES DE DISENO
B1=x(9);%Rotacion del motriz
yO4=x(8); %Coordenada y de O4;
xO4=x(7); %Coordenada x de O4
yO2=x(6); %Coordenada y de O2
xO2=x(5); %Coordenada x de O2
x3y=x(4); %Componente x de x3
x3x=x(3); %Componente x de x3
x2y=x(2); %Componente y de x2
x2x=x(1); %Componente x de x2
%FUNCIONES OBJETIVO EN TERMINOS DE LAS COMPONENTES DE LOS VECTORES
gamma1=acos((-((xO4-xO2)^2+(yO4-yO2)^2)-(x2x^2+x2y^2)+(x3x^2+x3y^2)+((-(xO4-xO2)+(cos(atan2(x2y,x2x))*...
sqrt(x2x^2+x2y^2))+(cos(atan2(x3y,x3x))*sqrt(x3x^2+x3y^2)))^2+(-(yO4-yO2)+(sin(atan2(x2y,x2x))*...
sqrt(x2x^2+x2y^2))+(sin(atan2(x3y,x3x))*sqrt(x3x^2+x3y^2)))^2)+2*sqrt((xO4-xO2)^2+(yO4-yO2)^2)*...
sqrt(x2x^2+x2y^2)*cos(atan2(x2y,x2x)-atan2((yO4-yO2),(xO4-xO2))))/(2*sqrt(x3x^2+x3y^2)*...
sqrt((-(xO4-xO2)+(cos(atan2(x2y,x2x))*sqrt(x2x^2+x2y^2))+(cos(atan2(x3y,x3x))*sqrt(x3x^2+x3y^2)))^2+...
86
(-(yO4-yO2)+(sin(atan2(x2y,x2x))*sqrt(x2x^2+x2y^2))+(sin(atan2(x3y,x3x))*sqrt(x3x^2+x3y^2)))^2)));
f1= min(gamma1, pi-gamma1);
% Funcion objetivo para la posicion inicial en terminos de x1, x2, x3
gamma2=acos((-((xO4-xO2)^2+(yO4-yO2)^2)-(x2x^2+x2y^2)+(x3x^2+x3y^2)+((-(xO4-xO2)+(cos(atan2(x2y,x2x)+B1)*...
sqrt(x2x^2+x2y^2))+(cos(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)))^2+(-(yO4-yO2)+(sin(atan2(x2y,x2x)+B1)*...
sqrt(x2x^2+x2y^2))+(sin(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)))^2)+2*sqrt((xO4-xO2)^2+(yO4-yO2)^2)*...
sqrt(x2x^2+x2y^2)*cos(atan2(x2y,x2x)-atan2((yO4-yO2),(xO4-xO2))+B1))/(2*sqrt(x3x^2+x3y^2)*...
sqrt((-(xO4-xO2)+(cos(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))+(cos(atan2(x3y,x3x)+A1)*...
sqrt(x3x^2+x3y^2)))^2+(-(yO4-yO2)+(sin(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))+(sin(atan2(x3y,x3x)+A1)*...
sqrt(x3x^2+x3y^2)))^2)));
f2= min(gamma2, pi-gamma2);
% Funcion objetivo para la posicion final en terminos de x1, x2, x3, A1, B1
%VECTOR DE OBJETIVOS
% f = +(0.5*f1+0.5*f2) minimización.
f = -(0.5*f1+0.5*f2); % maximización.
Tabla 6. Archivo de restricciones. Dos_posic_Res.m
%ARCHIVO DE RESTRICCIONES (Dos_posic_Res.m)
%necesario para el programa principal "Dos_posic_EXE.m"
function [c,ceq] = Dos_posic_Res(x)%Funcion de MatLab con las Restricciones
[x0,A1,xP2,yP2,xSD,ySD,xII,yII]=Dos_posic_DAT;%LLamada de datos desde la funcion "Dos_posic_DAT.m"
%VARIABLES DE DISENO
B1=x(9);%Rotacion del motriz
yO4=x(8); %Coordenada y de O4;
xO4=x(7); %Coordenada x de O4
yO2=x(6); %Coordenada y de O2
xO2=x(5); %Coordenada x de O2
x3y=x(4); %Componente x de x3
x3x=x(3); %Componente x de x3
x2y=x(2); %Componente y de x2
x2x=x(1); %Componente x de x2
% c = []; %Se usa en caso que no haya restricciones de tipo desigualdad
c(1) = sqrt(x2x^2+x2y^2) - 1 *sqrt((xO4-xO2)^2+(yO4-yO2)^2);
%Longitud del motriz debe menor o igual a n veces la del bastidor
c(2) = sqrt(x3x^2+x3y^2) - 1 *sqrt((xO4-xO2)^2+(yO4-yO2)^2);
%Longitud del acoplador debe ser menor o igual a n veces la del bastidor
c(3) = -sqrt(x3x^2+x3y^2) + 1 *sqrt((xO4-xO2)^2+(yO4-yO2)^2);
%Longitud del acoplador debe ser mayor o igual a n veces la del bastidor
c(4) = -sqrt((xO4-xO2)^2+(yO4-yO2)^2) + 0.5 *(abs(ySD-yII)+abs(xSD-xII))/2;
%Longitud del bastidor debe ser mayor a la media del alto y ancho de area para el bastidor
c(5) = xO2-xSD;%La coordenada x de O2 debe ser menor o igual a la coordenada xSD
c(6) = -xO2+xII;%La coordenada x de O2 debe ser mayor o igual a la coordenada xII
c(7) = yO2-ySD;%La coordenada y de O2 debe ser menor o igual a la coordenada ySD
c(8) = -yO2+yII;%La coordenada y de O2 debe ser mayor o igual a la coordenada yII
c(9) = xO4-xSD;%La coordenada x de O4 debe ser menor o igual a la coordenada xSD
c(10) = -xO4+xII;%La coordenada x de O4 debe ser mayor o igual a la coordenada xII
c(11) = yO4-ySD;%La coordenada y de O4 debe ser menor o igual a la coordenada ySD
c(12) = -yO4+yII;%La coordenada y de O4 debe ser mayor o igual a la coordenada yII
c(13) = -B1+5*pi/180;% % Se busca que B1 sea mayor que n grados
c(14) = B1-90*pi/180;% Se busca que B1 sea menor que 90 grados
c(15) = 30*pi/180-min(acos((-((xO4-xO2)^2+(yO4-yO2)^2)-(x2x^2+x2y^2)+(x3x^2+x3y^2)+((-(xO4-xO2)+...
(cos(atan2(x2y,x2x))*sqrt(x2x^2+x2y^2))+(cos(atan2(x3y,x3x))*sqrt(x3x^2+x3y^2)))^2+(-(yO4-yO2)+...
(sin(atan2(x2y,x2x))*sqrt(x2x^2+x2y^2))+(sin(atan2(x3y,x3x))*sqrt(x3x^2+x3y^2)))^2)+2*...
sqrt((xO4-xO2)^2+(yO4-yO2)^2)*sqrt(x2x^2+x2y^2)*cos(atan2(x2y,x2x)-atan2((yO4-yO2),(xO4-xO2))))/...
(2*sqrt(x3x^2+x3y^2)*sqrt((-(xO4-xO2)+(cos(atan2(x2y,x2x))*sqrt(x2x^2+x2y^2))+...
87
(cos(atan2(x3y,x3x))*sqrt(x3x^2+x3y^2)))^2+(-(yO4-yO2)+(sin(atan2(x2y,x2x))*sqrt(x2x^2+x2y^2))+...
(sin(atan2(x3y,x3x))*sqrt(x3x^2+x3y^2)))^2))),pi-acos((-((xO4-xO2)^2+(yO4-yO2)^2)-(x2x^2+x2y^2)+...
(x3x^2+x3y^2)+((-(xO4-xO2)+(cos(atan2(x2y,x2x))*sqrt(x2x^2+x2y^2))+(cos(atan2(x3y,x3x))*...
sqrt(x3x^2+x3y^2)))^2+(-(yO4-yO2)+(sin(atan2(x2y,x2x))*sqrt(x2x^2+x2y^2))+(sin(atan2(x3y,x3x))*...
sqrt(x3x^2+x3y^2)))^2)+2*sqrt((xO4-xO2)^2+(yO4-yO2)^2)*sqrt(x2x^2+x2y^2)*cos(atan2(x2y,x2x)-...
atan2((yO4-yO2),(xO4-xO2))))/(2*sqrt(x3x^2+x3y^2)*sqrt((-(xO4-xO2)+(cos(atan2(x2y,x2x))*...
sqrt(x2x^2+x2y^2))+(cos(atan2(x3y,x3x))*sqrt(x3x^2+x3y^2)))^2+(-(yO4-yO2)+(sin(atan2(x2y,x2x))*...
sqrt(x2x^2+x2y^2))+(sin(atan2(x3y,x3x))*sqrt(x3x^2+x3y^2)))^2))));
% Se busca que el mu1 sea mayor o igual a 30 grados
c(16) = 30*pi/180-min(acos((-((xO4-xO2)^2+(yO4-yO2)^2)-(x2x^2+x2y^2)+(x3x^2+x3y^2)+((-(xO4-xO2)+...
(cos(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))+(cos(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)))^2+...
(-(yO4-yO2)+(sin(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))+(sin(atan2(x3y,x3x)+A1)*...
sqrt(x3x^2+x3y^2)))^2)+2*sqrt((xO4-xO2)^2+(yO4-yO2)^2)*sqrt(x2x^2+x2y^2)*cos(atan2(x2y,x2x)-...
atan2((yO4-yO2),(xO4-xO2))+B1))/(2*sqrt(x3x^2+x3y^2)*sqrt((-(xO4-xO2)+(cos(atan2(x2y,x2x)+B1)*...
sqrt(x2x^2+x2y^2))+(cos(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)))^2+(-(yO4-yO2)+...
(sin(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))+(sin(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)))^2))),...
pi-acos((-((xO4-xO2)^2+(yO4-yO2)^2)-(x2x^2+x2y^2)+(x3x^2+x3y^2)+((-(xO4-xO2)+(cos(atan2(x2y,x2x)+...
B1)*sqrt(x2x^2+x2y^2))+(cos(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)))^2+(-(yO4-yO2)+...
(sin(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))+(sin(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)))^2)+...
2*sqrt((xO4-xO2)^2+(yO4-yO2)^2)*sqrt(x2x^2+x2y^2)*cos(atan2(x2y,x2x)-atan2((yO4-yO2),(xO4-xO2))+...
B1))/(2*sqrt(x3x^2+x3y^2)*sqrt((-(xO4-xO2)+(cos(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2))+...
cos(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)))^2+(-(yO4-yO2)+(sin(atan2(x2y,x2x)+B1)*sqrt(x2x^2+...
x2y^2))+(sin(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)))^2))));
% Se busca que el mu2 sea mayor o igual a 30 grados
% ceq = []; % Se usa en caso que no haya restricciones de tipo igualdad
ceq(1) = (-(xO4-xO2)+x2x+x3x)^2+(-(yO4-yO2)+x2y+x3y)^2-(-(xO4-xO2)+(cos(atan2(x2y,x2x)+B1)*sqrt(x2x^2+...
x2y^2))+(cos(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)))^2-(-(yO4-yO2)+(sin(atan2(x2y,x2x)+B1)*...
sqrt(x2x^2+x2y^2))+(sin(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)))^2;
%Se busca que x4 tenga la misma longitud tanto en la posicion inicial como en la final
ceq(2) = (-xO4+(xO4-xO2)-x2x-x3x)^2+(-yO4+(yO4-yO2)-x2y-x3y)^2-((xP2-xO4)+(xO4-xO2)-...
cos(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2)-cos(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2))^2-((yP2-yO4)+...
(yO4-yO2)-sin(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2)-sin(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2))^2;
%Se busca que x6 tenga la misma longitud tanto en la posicion inicial como en la final
ceq(3) = atan2((-yO4+(yO4-yO2)-x2y-x3y),(-xO4+(xO4-xO2)-x2x-x3x))+A1-atan2(((yP2-yO4)+(yO4-yO2)-...
sin(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2)-sin(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)),((xP2-xO4)+...
(xO4-xO2)-cos(atan2(x2y,x2x)+B1)*sqrt(x2x^2+x2y^2)-cos(atan2(x3y,x3x)+A1)*sqrt(x3x^2+x3y^2)));
%Se busca que (el angulo de x6 para 1a posicion inicial + A1) sea igual al angulo de x6 para 1a posicion final
88
Descargar