Servicios
Descargas
Buscar
Idiomas
P. Completa
Números duales y diferenciación automática para el cálculo numérico de velocidades y aceleraciones en el mecanismo esférico 4R
R. Peón; M.A. Zambrano-Arjona; O. Carvente;
R. Peón; M.A. Zambrano-Arjona; O. Carvente; F. Peñuñuri
Números duales y diferenciación automática para el cálculo numérico de velocidades y aceleraciones en el mecanismo esférico 4R
Dual numbers and Automatic Differentiation for the Numerical Calculation of Velocities and Accelerations in the Spherical 4R Mechanism
Ingeniería, vol. 22, núm. 3, pp. 47-54, 2018
Universidad Autónoma de Yucatán
resúmenes
secciones
referencias
imágenes

Resumen: El cálculo de velocidades y aceleraciones de los elementos que componen a un mecanismo esférico 4R no es una tarea sencilla. Obtener expresiones analíticas es prácticamente imposible, por lo que se recurre al cálculo numérico de derivadas. Sin embargo, el método tradicional de diferencias finitas para el cálculo de derivadas introduce errores de truncamiento y de cancelación. Diferenciación automática (DA) está exenta de los problemas mencionados y su implementación usando números duales es simple y transparente. No obstante esta simplicidad, su uso es prácticamente nulo en el área de mecanismos. Este artículo muestra una implementación de DA mediante el uso de números duales y su aplicación al cálculo de la velocidad y la aceleración del punto acoplador en un mecanismo esférico 4R.

Palabras clave:Números dualesNúmeros duales,diferenciación automáticadiferenciación automática,mecanismosmecanismos.

Abstract: The calculation of velocities and accelerations in a spherical 4R mechanism is not a simple task. In general, it is not possible to obtain an analytical expression for such velocities and accelerations, thus a numerical approach for computing derivatives is used. Nevertheless, the traditional method of finite differences for computing derivatives, introduces both, truncation and subtractive cancelation errors. Automatic Differentiation (AD) is not subject to the above mentioned errors, moreover, its implementation by using dual number is straightforward. However, even when this implementation of AD is simple, its use is not so common in the area of mechanisms. This article shows an implementation of AD by using dual numbers. The implementation is exemplified by calculating the velocity and the acceleration of the coupler point in the spherical 4R mechanism.

Keywords: Dual Numbers, Automatic Differentiation, Mechanisms.

Carátula del artículo

Investigación

Números duales y diferenciación automática para el cálculo numérico de velocidades y aceleraciones en el mecanismo esférico 4R

Dual numbers and Automatic Differentiation for the Numerical Calculation of Velocities and Accelerations in the Spherical 4R Mechanism

R. Peón
Universidad Autónoma de Yucatán, México
M.A. Zambrano-Arjona
Universidad Autónoma de Yucatán, México
O. Carvente
Universidad Autónoma de Yucatán, México
F. Peñuñuri
Universidad Autónoma de Yucatán, México
Ingeniería, vol. 22, núm. 3, pp. 47-54, 2018
Universidad Autónoma de Yucatán

Recepción: 18 Septiembre 2018

Aprobación: 05 Noviembre 2018

Introducción

Los problemas que se presentan en el diseño de mecanismos relacionados con la cinemática, requieren, en general, análisis tanto de primer orden, también conocidos como análisis de velocidad, así como análisis de órdenes superiores como lo son el de aceleración, pulso e hiperimpulso de cadenas seriales, cadenas cerradas y manipuladores paralelos [1]. Por ejemplo, análisis de órdenes superiores a uno, se han aplicado para realizar estudios de movilidad [2] y permiten resolver los diversos problemas de singularidad de cadenas cerradas, pues un análisis de primer orden es insuficiente para determinar, de manera satisfactoria, el tipo de singularidad [3]. Recientemente en [4], se obtienen las ecuaciones de análisis de orden superior (del primero al cuarto orden) para cadenas cinemáticas, a partir de la derivación sucesiva de la matriz jacobiana, demostrando que los resultados son equivalentes a los obtenidos en [1,5] por medio de teoría de tornillos.

En [6] se muestra la necesidad de verificar los resultados arrojados a partir de programas computacionales empleados para el análisis cinemático, ya que no siempre se obtiene una solución adecuada. También se muestra cómo interpretar los resultados obtenidos del programa de computadora, que no proporciona los resultados esperados. En uno de los experimentos de tal trabajo, se presenta el análisis de velocidad y aceleración angular del mecanismo esférico, desarrollado previamente en [7], empleando el álgebra de tornillos infinitesimales con el fin de realizar comparaciones.

Por otra parte, en la síntesis dimensional de mecanismos, existen diversas situaciones en el diseño de dispositivos mecánicos, en las que es necesario tratar con restricciones de velocidad y/o aceleración. Por ejemplo, el diseño óptimo del mecanismo de cuatro barras para la tarea de generación de trayectoria, donde un punto del eslabón acoplador debe satisfacer ciertas condiciones, tanto de posición como de velocidad, se ha realizado en [8–13].

En este trabajo se está interesado en el análisis de orden superior del mecanismo esférico 4R, específicamente, en el análisis de velocidad y aceleración del punto acoplador. El cálculo de velocidades y aceleraciones para algún elemento de un mecanismo, no es, en general, una tarea trivial. Un cálculo analítico no siempre es posible, o en caso de que lo sea, pudiera no ser una buena opción, ya que en ocasiones las expresiones son complejas y difíciles de manipular. Una opción es calcular numéricamente dichas velocidades y aceleraciones. No obstante, un cálculo numérico con métodos tradicionales de diferencias finitas, introducen errores de truncamiento y de cancelación. Se requiere pues, de métodos eficientes y precisos que no tengan los errores mencionados. Esto se logra usando diferenciación automática (DA).

En términos generales, DA es una forma algorítmica de implementar la regla de la cadena. De la gran cantidad de trabajos sobre DA (algunos trabajos recientes son [14–26] y dos libros con aplicaciones e implementaciones de DA [27,28]), solo unos cuantos la implementan usando números duales (ver por ejemplo: [29–32]), menos aún la generalizan a segunda derivada [30,32] y prácticamente solo en un estudio [33], se ha usado a los numeros duales para el cálculo de velocidades y aceleraciones en mecanismos. Sin embargo, la implementación presentada en [33] es difícil de aplicar y propensa a errores. A diferencia de dicha implementación, la que aprovecha el isomorfismo entre los números duales y R3 , en este trabajo los numeros duales se implementan como un nuevo tipo de dato. Esto trae muchas ventajas pues la misma expresión para realizar un cálculo sobre los reales, se puede usar para hacerlo sobre los duales disfrutando de las ventajas que estos últimos poseen para el cálculo de derivadas.

Metodología
Diferenciación automática

En esta sección se presentan las formas generales conocidas de implementar DA y como una de ellas se puede lograr con el uso de los numeros duales.

Modo tangente de DA

Supongamos una función f : R → R (el caso general g : R → R es una generalización directa de este caso ya que cada componente de g ser´a una función del tipo f : R → R). Sea x ∈ R denotado por x = (x1 , x2 , . . . , xn ). La función f siempre se puede descomponer en sub expresiones más elementales, o a lo sumo como operaciones sobre dichas subexpresiones. Digamos Que Tales Subexpresiones Son

(1)

Aplicando la regla de la cadena a las ecuaciones (1) podemos calcular ∂f/∂xj como sigue.

(2)

donde

(3)

(4)

Observando que de los primeros N términos de la suma en la Ec. (2) solo contribuye el j-ésimo, pues ω˙j = δij en esos primeros n términos, se tiene

(5)

El uso de la expresión (5) para calcular las derivadas parciales de f se conoce como el modo tangente de DA, también conocido como el “forward mode”de DA.

Es decir, en nombre hace alusión a la manera en que se aplica la regla de la cadena, empezando a derivar f respecto a w1 luego a derivar w1 (x) respecto a xj. Esta es la manera tradicional de calcular las derivadas.

Modo adjunto de DA

Otra manera de calcular ∂f/∂xj las ecuaciones se logra escribiendo ecuaciones (1) como

(6)

A primera vista la única diferencia entre las ecuaciones (1) y (6) es que los argumentos de las funcionesF(n+1),...., Fp se han puesto en orden inverso. Esencialmente eso no introduce un cambio entre dichos conjuntos de ecuaciones. Lo que es realmente importante es que ahora las funciones W(n+1),....,Wp no se consideran como funciones de X(1),....,X(n).

De las ecuaciones (6) es claro que , con lo que las derivadas de f se pueden calcular apartir de W*j . Nótese que para calcular W*j es conveniente empezar por W*p siguiendo con W*( p-1) pues para una Wq arbitraria, esta depende de W(q-1),...,W1, lo que significa que . Note sin embargo, que. Con esto en mente, no es difícil calcular las derivadas parciales de f. En efecto,

(7)

con j = 1,....., n. Extrayendo el primer término de la suma queda

(8)

Con el propósito de no incurrir en inconsistencias, se ha tenido especial cuidado en no escoger los mismos síımbolos para denotar a la función y a su respectiva representación en un sistema de coordenadas.

(9)

wp es algún mapeo en una variedad diferenciable y su existencia no depende del sistema coordenado usado para representarla. Por el contrario, la función fp(w1 , . . . , wp1) está ligada a la existencia de un sistema de coordenadas. En muchos casos no hay problema en usar un solo símbolo y escribir F = F (z) para alguna función F y su representación en un sistema de coordenadas z , sin embargo, en el caso presente, la distinción es necesaria.

Diferenciación automática usando numeros duales

Una forma simple y efectiva de implementar el modo tangente o “forward mode” de DA es usando a los números duales. Un número dual es una cantidad de la forma

(10)

donde a y b son números reales y ε es la unidad dual con la propiedad de que ε2 = 0. Estos números no forman un campo, ya que un número dual puro o ˆr = εb no tiene inverso multiplicativo. Sin embargo, forman un anillo conmutativo cuya álgebra permite el cálculo de la primera derivada. En efecto, de la serie de Taylor para una función analítica f se tiene

(11)

y evaluando en ^x = x + ε se obtiene (recordemos que ε2 = 0)

(12)

Esta cantidad es de la forma dada por (10) lo que nos permite definir la función dual

(13)

Nótese que al evaluar esta función en la variable dual se obtienen f(x) y f (x). Denotando por f0 (f1 ) la parte real (dual) de f, se tiene para la composici´on de dos funciones,

(14)

Una extensión directa del número dual de la ecuación (10) para el cálculo de la segunda derivada se logra definiendo

(15)

con a, b, c números reales y ε1 , ε2 definidos de tal forma que obedezcan la siguiente tabla de multiplicar

(16)

Ahora bien, evaluando la ecuación (11) en el número x = x + 1 ε1 + 0 ε2 obtenemos

(17)

expresión que es del mismo tipo definido por (15) y que contiene el valor real de la función, su primera derivada y su segunda derivada.

Denotando por f0, f1 y f2 a las componentes de f (similarmente para g˜), se tiene para la composición de funciones

(18)

La implementación del número dual relacionado a la ecuación (18) se realizó en Fortran (y puede descargarse de [34]) definiendo un nuevo tipo de dato como sigue:

type, public :: dual 2

real(8) :: f0, f1, f2

end type dual 2

A partir de este nuevo tipo de dato se podrán construir todas las funciones duales necesarias para el análisis y sıntesis de mecanismos planares y esféricos.

Es importante señalar que una generalización para el cálculo de segundas derivadas usando duales se presenta en [30]. No obstante la justificación matemática es ambigua. En tal trabajo, se define la multiplicación de dosnúmeros “hyper-dual” a = a0 + a1 ε1 + a2 ε2 + a3 ε1 ε2 y b = b0 + b1 ε1 + b2 ε2 + b3 ε1 ε2 como:

(19)

donde:

Dado que las entidades base de tales números ((hyperdual)) son los símbolos 1, ε1 y ε2, cualquier número de este tipo se debe poder escribir como . Ahora bien, si escribimos ε1ε2 en la forma

(20)

multiplicando ambos lados de (20) por ε1ε2 se tiene 0 = aε1ε2, lo que implica que a = 0 (de otra forma, multiplique la última ecuación por a elevado a la -1 para tener 0 = ε1ε2 lo que es una contradicción, ya que por definición ε1ε2 ≠ 0). Luego entonces, (20) se vuelve ε1ε2 = bε1 +cε2 al multiplicar por ε2, se sigue que b = 0. Similarmente se prueba que c = 0 y por lo tanto ε1ε2 = 0 lo que es una contradicción. Afortunadamente, en la implementación numérica de [30], ε1 ε2 se trata como solo un símbolo extra lo que produce resultados correctos. No obstante, existe el riesgo de querer usar el formalismo presentado en [30], lo que resulta erróneo. dada la discusión previa.

Resultados
Vector de posición del punto acoplador

La figura 1 muestra un mecanismo esférico 4R. Los puntos x1 , ..., x4 representan las juntas rotacionales de dicho mecanismo. La manivela o eslabón de entrada se forma con la geodésica que conecta los puntos x1 y x2 , el eslabón acoplador está formado por la geofísica que conecta los puntos x2 y x3 , el eslabón de salida u oscilador por la geodésica que conecta x3 con x4 y la bancada la geodésica que conecta los puntos x4 y x1 .


Figura 1
Mecanismos esférico 4R

Tomando como vector de diseño del mecanismo esférico 4R al vector

(21)

con η1 y φ1 los ángulos polar y azimutal del punto x1 y el resto de parámetros como se muestra en la figura 1,el vector de posición del punto acoplado rgen viene dado por

(22)

donde R(ν; u) es la matriz de rotación activa de ángulo ν alrededor del vector unitario u, y

(23)

con σ un ángulo arbitrario en (0; π) e i, j, k, los vectores de la base estándar de R3. El ángulo de salida θ4 estadado por [35, 36]:

(24)

donde

A = sin α2 sin α4 sin θ,

B = cos α2 sin α4 sin α1 − sin α2 sin α4 cos α1 cos θ,

C = cos α2 cos α4 cos α1 + sin α2 cos α4 sin α1 cos θ− cos α3.

Ahora bien, promoviendo la ecuación (22) a su versión dual se obtiene la posición del punto acoplador y su primera y segunda derivada respecto al ángulo de entrada θ . Lo anterior se hace de manera directa una vez que se ha implementado a los numeros duales como un nuevo tipo de dato. El apéndice A, muestra las funciones y operadores implementados en el marco de los numeros duales.

Velocidad y aceleración del punto acoplador en el mecanismo esférico 4R

El mecanismo esférico 4R tiene un grado de libertad, el único parámetro independiente (sin contar al tiempo) es el ángulo de entrada θ . Denotando con un punto la primera derivada temporal y con dos puntos a la segunda, las expresiones para la velocidad (r˙gen ) y la aceleración(Rgen) del punto acoplador, vienen dadas por

(25)

(26)

Dado que, en principio, se puede controlar la velocidad angular del eslabón de entrada, el cálculo de la velocidad y la aceleración se reduce a calcular ∂ (rgen )/∂ θ y ∂ (rgen )/∂ θ .Ambas derivadas se obtienen automáticamente de la ecuación (22) en su versión dual. Como ejemplo, para un mecanismo cuyos parámetros de diseño se muestran en la tabla 1, se tienen las velocidades y aceleraciones mostradas en la tabla 2. Es interesante la comparación (ver tabla 3) entre las derivadas, usando diferencias finitas con h = 1 ×10 las formulas

(27)

para la velocidad y

(28)

para la aceleración. Si bien es cierto que los resultados para la velocidad son buenos, para el caso de la aceleración los errores son considerables.

Tabla1
Parámetros del mecanismo esférico estudiado. Se ha denotado al ángulo de entrada inicial (ángulo de ensamble) como θ0 .

Conclusiones

Se muestra que mediante la dualización de las ecuaciones de posición, es factible establecer las ecuaciones de orden superior de manera automática y transparente, sin errores de truncamiento ni de cancelación, que permiten vencer las dificultades de obtener derivadas de manera analtica o por diferencias finitas.

El caso abordado fue el mecanismo esférico 4R pero queda claro que con la implementación presentada, el enfoque de derivación es general.

Tabla 2
Componentes de la velocidad ̇´rgen(θ) y la aceleración ̈rgen(θ) del punto acoplador para ̇*θ= 1 (se ha usadoel sistema internacional de unidades).

Tabla 3
Componentes de la velocidad y la aceleración del punto acoplador para ̇*θ= 1 empleando diferencias finitas (se ha usado el sistema internacional de unidades).

Material suplementario
Apéndices
Apéndice A.

Funciones y operadores implementadas en su versión dual 2.

Operador de asignación (=). Este operador sirve para asignar un número real a uno dual. En esencia, si xd es del tipo dual 2 y xr es del tipo real, xd = xr es equivalente a xd=dual2(xr,0d0,0d0).

Principales operadores y funciones matemáticas: (**), (*), (+), (-), (/), (==), (/=), acos, acosh, asin,asinh, atan, atan2, atanh, sin, cos, cosh, erf, sinh, tan, tanh, exp, log, sqrt, abs.

Todas estas funciones y operadores se codificaron como elemental functions, lo que significa que aceptan arreglos como argumentos, actuando sobre cada uno de sus elementos.

Algunas funciones del álgebra lineal:

matmul, dot product, sum, product.

También se han codificado las funciones norm y cross, para la norma y el producto cruz de vectores duales.

Referencias
[1] J. Gallardo Alvarado, Análisis cinemáticos de orden superior de cadenas espaciales mediante el álgebra de tornillos y sus aplicaciones, Tesis doctoral, Instituto Tecnológico de Laguna, México, 1999.
[2] C. R. Díez-Martínez, J. M. Rico, J. J. Cervantes-Sanchez, J. Gallardo, Mobility and connectivity in multiloop linkages, in: J. Lennarˇciˇc,B. Roth (Eds.), Advances in Robot Kinematics, Springer Netherlands, Dordrecht, 2006, pp. 455–464.
[3] Rico M.J.M., Gallardo A.J, Acceleration Analysis, Via Screw Theory, and Characterization of Singularities of Closed Chains, Springer Netherlands, Dordrecht, 1996, pp. 139–148. doi:10.1007/978-94-009-1718-7_14 .
[4] J. Lopez-Custodio, J. Rico, J. Cervantes-Sanchez, G. Pérez-Soto, C. Díez-Martínez, Verification of the higher order kinematic analyses equations, European Journal of Mechanics - A/Solids 61 (1) (2017) 198–215.
[5] J. Rico, J. Gallardo, J. Duffy, Screw theory and higher order kinematic analysis of open serial and closed chains, Mechanism and Machine Theory 34 (4) (1999) 559–586.
[6] G. I. Pérez-Soto, C. Crane, J. M. Rico, J. J. Cervantes-Sanchez, M. A. Gonzalez-Palacios, L. A. Gallardo- Mosqueda, P. C. Lopez-Custodio, M. A. Sanchez-Ruenes, A. Tadeo-Ch´vez, On the computer solutions of kinematics analysis of linkages, Engineering with Computers 31 (1) (2015) 11–28.
[7] Sociedad Mexicana de Ingeniería Mecánica (Ed.), Análisis Cinemático de Mecanismos Esféricos, Memorias del XV Congreso Internacional Anual de la SOMIM, Cd. Obregón Sonora, México, 2009.
[8] R. Norton, Design of Machinery, McGraw-Hill Higher Education, 2007.
[9] J. E. Holte, T. R. Chase, A. G. Erdman, Approximate velocities in mixed exact-approximate position synthesis of planar mechanisms, Journal of Mechanical Design 123 (3) (2001) 388–394.
[10] ASME International Design Engineering Technical Conferences and Computers and Information in Engineering Conference (Ed.), The Synthesis of Planar 4R Linkages with Three Task Positions and Two Specified Velocities, Vol. 7, 29th Mechanisms and Robotics Conference, Parts A and B, Long Beach, California, USA, 2001.
[11] C. H. G. Urueña,C. A. D. Daza, D. A. G. Alvarado, Application of sizing design optimization to position and velocity synthesis in four bar linkage, Revista Facultad de Ingeniería Universidad de Antioquía (47) (2009) 129–144.
[12] A. De-Juan, R. Sancibrian, P. Garc´ıa, F. Viadero, M. Iglesias, A. Fernandez, Kinematic synthesis for linkages with velocity targets, Journal of Advanced Mechanical Design, Systems, and Manufacturing 6 (4) (2012) 472– 483.
[13] K. Russell, Q. Shen, Revisiting planar four-bar precision synthesis with finite and multiply-separated positions, Journal of Advanced Mechanical Design, Systems, and Manufacturing 6 (7) (2012) 1273–1280.
[14] E. Phipps, R. Pawlowski, Efficient Expression Templates for Operator Overloading-Based Automatic Differen- tiation, Springer Berlin Heidelberg, Berlin, Heidelberg, 2012, pp. 309–319.
[15] P. Pham-Quang, B. Délinquant, Java Automatic Differentiation Tool Using Virtual Operator Overloading, Springer Berlin Heidelberg, Berlin, Heidelberg, 2012, pp. 241–250.
[16] J. Werner, M. Hillenbrand, A. Hoffmann, S. Sinzinger, Automatic differentiation in the optimization of imaging optical systems, Schedae Informaticae 21 (2012) 169–175.
[17] L. Hascoet, V. Pascual, The tapenade automatic differentiation tool: Principles, model, and specification, ACM Trans. Math. Softw. 39 (3) (2013) 20:1–20:43.
[18] S. F. Walter, L. Lehmann, Algorithmic differentiation in python with algopy, Journal of Computational Science 4 (5) (2013) 334 –344.
[19] R. J. Hogan, Fast reverse-mode automatic differentiation using expression templates in C++, ACM Trans. Math. Softw. 40 (4) (2014) 26:1–26:16.
[20] J. J. Moore, S. M. Wild, Do you trust derivatives or differences, Journal of Computational Physics 273 (2014) 268 –277.
Notas
Notas de autor

francisco.pa@correo.uady.mx


Figura 1
Mecanismos esférico 4R
Tabla1
Parámetros del mecanismo esférico estudiado. Se ha denotado al ángulo de entrada inicial (ángulo de ensamble) como θ0 .

Tabla 2
Componentes de la velocidad ̇´rgen(θ) y la aceleración ̈rgen(θ) del punto acoplador para ̇*θ= 1 (se ha usadoel sistema internacional de unidades).

Tabla 3
Componentes de la velocidad y la aceleración del punto acoplador para ̇*θ= 1 empleando diferencias finitas (se ha usado el sistema internacional de unidades).

Buscar:
Contexto
Descargar
Todas
Imágenes
Visor de artículos científicos generados a partir de XML-JATS4R por Redalyc