Comparativa de Lenguajes de Programación para el Análisis Dinámico de Sistemas Multicuerpo: Julia vs. Matlab
Contenido principal del artículo
Resumen
Julia es un lenguaje de programación de alto rendimiento y código abierto que ha ganado una gran popularidad en los últimos años, tanto en el ámbito académico como en la industria, por su idoneidad para aplicaciones de análisis numérico, data science y machine learning. Julia combina la velocidad propia de lenguajes de bajo nivel como C con la facilidad de aprendizaje y uso de los códigos de alto nivel como Python, convirtiéndolo en una opción atractiva para ciertas aplicaciones computacionalmente pesadas. Se considera un lenguaje “compilado just-in-time”, lo que lo ubica a medio camino entre los códigos interpretados y aquellos estrictamente compilados.
Actualmente, Julia está ampliando su comunidad mayoritariamente en ámbitos científicos e investigadores debido a que su sintaxis resulta familiar para los usuarios, lo que hace que su aprendizaje sea relativamente sencillo. En este contexto, se ha planteado su aplicación al análisis dinámico de sistemas multicuerpo complejos, en los que se consideran fenómenos de contacto/impacto entre sus diferentes elementos constitutivos. Para ello, se ha adaptado un código in-house existente, definido en lenguaje Matlab®, utilizado por diferentes grupos de investigación, tanto nacionales como internacionales, en una amplia variedad de temas de estudio. Uno de los principales cuellos de botella identificados en la resolución de este tipo de problemas radica en la capacidad de los integradores destinados a resolver las Ecuaciones Diferenciales Ordinarias (ODE, en inglés). La librería de Julia a este respecto destaca por su alto nivel de optimización y capacidad de modificación frente a los ODE solver de Matlab®, que resultan más amigables para los usuarios principiantes.
En este trabajo, se han definido varios modelos en ambos lenguajes para su comparación. Estos modelos incluyen diferentes características presentes de forma general en los sistemas multicuerpo, como pueden ser los elementos muelle-amortiguador-actuador, las juntas cinemáticas o las fuerzas de contacto/impacto. Los resultados obtenidos muestran reducciones considerables del coste computacional en Julia con respecto a Matlab®, manteniendo altos niveles de precisión. En este punto, se plantea la simulación de un sistema mecánico complejo con múltiples interacciones simultáneas de contacto/impacto con disipación de energía.
Detalles del artículo

Esta obra está bajo una licencia internacional Creative Commons Atribución-NoComercial-CompartirIgual 4.0.
CC BY-NC-SA 4.0)
El lector puede compartir, copiar y redistribuir el material en cualquier medio o formato, siempre y cuando cumpla con las siguientes condiciones:
-
Atribución (BY): Debe dar crédito adecuado al autor original, proporcionando un enlace a la licencia y señalando si se han realizado cambios.
-
No Comercial (NC): No puede utilizar el material con fines comerciales. Esto significa que no puede venderlo ni obtener ganancias directas de su uso.
-
Compartir Igual (SA): Si adapta, transforma o construye sobre el material, debe distribuir sus contribuciones bajo la misma licencia que el original.
Recuerda que esta licencia no afecta los derechos legales del autor, como el derecho moral o las excepciones de uso justo.
Citas
Tao, F., Zhang, M., Liu, Y. y Nee, A. Y. C., "Digital twin driven prognostics and health management for complex equipment", CIRP Annals 67, 169-172 (2018).
Altintas, Y., Brecher, C., Weck, M. y Witt, S., "Virtual Machine Tool", CIRP Annals 54, 115-138 (2005).
Kim, C.-J., Oh, J.-S., Park, C.-H. y Lee, C.-H., "Fast flexible multibody dynamic analysis of machine tools using modal state space models", CIRP Annals 72, 341-344 (2023).
Ebrahimi, S. y Eberhard, P., "Aspects of Contact Problems in Computational Multibody Dynamics", Multibody Dynamics: Computational Methods and Applications, vol. 2, Springer Netherlands, Dordrecht, 23-47 (2007).
Rui, X., Bestle, D., Zhang, J. y Zhou, Q., "A new version of transfer matrix method for multibody systems", Multibody Syst Dyn 38, 137-156 (2016).
Koutsoupakis, J., Giagopoulos, D. y Chatziparasidis, I., "AI-based condition monitoring on mechanical systems using multibody dynamics models", Eng Appl Artif Intell 123, 106467 (2023).
Nikravesh, P. E., Planar Multibody Dynamics: Formulation, Programming with MATLAB®, and Applications, CRC Press, Boca Raton (2018).
Flores, P., Concepts and Formulations for Spatial Multibody Dynamics, Springer International Publishing, Cham (2015).
Flores, P., Ambrósio, J., Pimenta Claro, J. C. y Lankarani, H. M., “Kinematics and Dynamics of Multibody Systems with Imperfect Joints”, Lecture Notes in Applied and Computational Mechanics, vol. 34, Springer Berlin Heidelberg, Berlin, Heidelberg (2008).
Baumgarte, J., "Stabilization of constraints and integrals of motion in dynamical systems", Comput Methods Appl Mech Eng 1, 1-16 (1972).
Corral, E., Gismeros Moreno, R., Gómez García, M. J. y Castejón, C., "Nonlinear phenomena of contact in multibody systems dynamics: a review", Nonlinear Dyn 104, 1269-1295 (2021).
Machado, M., Moreira, P., Flores, P. y Lankarani, H. M., "Compliant contact force models in multibody dynamics: Evolution of the Hertz contact theory", Mech Mach Theory 53, 99-121 (2012).
Gismeros Moreno, R., Corral Abad, E., Meneses Alonso, J., Gómez García, M. J. y Castejón Sisamón, C., "Modelling multiple-simultaneous impact problems with a nonlinear smooth approach: pool/billiard application", Nonlinear Dyn 107, 1859-1886 (2022).
Gismeros Moreno, R., Marques, F., Corral Abad, E., Meneses Alonso, J., Flores, P. y Castejón, C., "Enhanced modelling of planar radial-loaded deep groove ball bearings with smooth-contact formulation", Multibody Syst Dyn 60, 121-159 (2024).
Corral, E., Gismeros Moreno, R., Meneses, J., Gómez García, M. J. y Castejón, C., "Spatial Algorithms for Geometric Contact Detection in Multibody System Dynamics", Mathematics 9, 1359 (2021).
Mazhar, H., et al., "CHRONO: A parallel multi-physics library for rigid-body, flexible-body, and fluid dynamics", Mechanical Sciences 4, 49-64 (2013).
Zhu, Y., Dopico, D., Sandu, C. y Sandu, A., "MBSVT: Software for Modeling, Sensitivity Analysis, and Optimization of Multibody Systems at Virginia Tech", Proceedings of the ASME 2014 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference. 2nd Biennial International Conference on Dynamics for Design; 26th International Conference on Design Theory and Methodology 7, Buffalo, Nueva York, EE.UU. (2014).
Gismeros Moreno, R., Corral Abad, E., Meneses Alonso, J., Gómez García, M. J. y Castejón Sisamón, C., "Modelling multiple-simultaneous impact problems with a nonlinear smooth approach: pool/billiard application", Nonlinear Dyn 107, 1859-1886 (2022).
Gerstmayr, J., "Exudyn – a C++-based Python package for flexible multibody systems", Multibody Syst Dyn 60, 533-561 (2024).
Rajagopal, A., Dembia, C. L., DeMers, M. S., Delp, D. D., Hicks, J. L. y Delp S. L., "Full-Body Musculoskeletal Model for Muscle-Driven Simulation of Human Gait", IEEE Trans Biomed Eng 63, 2068-2079 (2016).
Bosso, N., Magelli, M. y Zampieri, N., "Development and validation of a new code for longitudinal train dynamics simulation", Proc Inst Mech Eng F J Rail Rapid Transit 235, 286-299 (2021).
Corral, E., et al., “Dynamic Modeling and Analysis of Pool Balls Interaction”, Multibody Dynamics 2019. ECCOMAS 2019. Computational Methods in Applied Sciences 53, 79-86, Cham (2020).
Verulkar, A., Sandu, C., Sandu, A. y Dopico, D., "Simultaneous optimal system and controller design for multibody systems with joint friction using direct sensitivities", Multibody Syst Dyn, 1-31 (2024).
Rodrigues da Silva, M., Marques, F., Tavares da Silva, M. y Flores, P., "An improved methodology to restrict the range of motion of mechanical joints", Nonlinear Dyn 112, 4227-4256 (2024).
Nikravesh, P. E., Computer-aided Analysis of Mechanical Systems, Prentice-Hall (1988).
Flores, P. y Ambrósio, J., "On the contact detection for contact-impact analysis in multibody systems", Multibody Syst Dyn 24, 103-122 (2010).