Entre las materias que estoy viendo este semestre está Robótica I, que aborda entre otras cosas, el cálculo de las cinemáticas de robots seriales y paralelos. Una herramienta esencial para trabajar en la materia es MATLAB y su herramienta SimMechanics, con el que se pueden modelar, simular y caracterizar sistemas mecánicos. El funcionamiento de la herramienta hace que trabajar con sistemas básicos con pocas articulaciones y eslabones sea un trabajo sencillo, pero a la hora de hacer lo mismo con sistemas más complejos el trabajo se dificulta, ya que se requieren algunos valores que no se pueden calcular fácilmente. Para solucionar esta dificultad se propone diseñar el sistema mecánico con un software CAD y luego exportarlo a MATLAB para simular y caracterizar. En esta publicación explicaré como conectar Pro/ENGINEER con MATLAB para poder exportar los diseños y trabajar más cómodos.
Para comenzar debemos descargar las librerías que vincularán los dos programas, vamos a SimMechanics Link y luego de ingresar algunos datos escogemos el archivo que mejor se ajuste a la versión y a la arquitectura del MATLAB y del Pro/ENGINEER que están instalados en el computador. Para mi caso descargo la última versión de win64 ya que estoy trabajando con la versión 2012a de MATLAB y con la versión 5 de Pro/ENGINEER (aún no he querido hacer el cambio a Creo) sobre Windows 7 de 64bits.
Luego de descargar el archivo lo extraemos en la carpeta donde está instalado MATLAB, en mi caso sería en C:\Program Files\MATLABR2012a\
, nos preguntará si queremos sobrescribir algunos archivos a lo que diremos que sí. Para configurar la aplicación será necesario crear un archivo de registro, así que creamos un nuevo archivo desde el bloc de notas y lo nombramos prolink.dat, en este archivo escribimos lo siguiente:
NAME SimMechanics Link
STARTUP dll
EXEC_FILE $matlabroot/bin/arch/cl_proe2sm.dll
TEXT_DIR $matlabroot/toolbox/physmod/smlink/cad_systems/proe/
UNICODE_ENCODING false
END
Y en mi caso quedaría:
NAME SimMechanics Link
STARTUP dll
EXEC_FILE C:/Program Files/MATLAB/R2012a/bin/win64/cl_proe2sm.dll
TEXT_DIR C:/Program Files/MATLAB/R2012a/toolbox/physmod/smlink/cad_systems/proe/
UNICODE_ENCODING false
END
Ahora será necesario decirle a Pro/ENGINEER donde encontrar este registro, para eso creamos un archivo de configuración desde el bloc de notas y lo nombramos config.pro, en este archivo escribimos la ubicación de donde está el archivo prolink.dat, en mi caso sería:
toolkit_registry_file C:dataprolink.dat
Y guardamos el archivo en la carpeta en la que inicia Pro/ENGINEER, en mi caso sería en Mis Documentos. Los usuarios de Creo no deben crear el archivo config.pro, este archivo se encuentra en la carpeta C:\Program Files\PTCCreo 2.0\Common Files\F000\text\
, así que solo deben abrirlo y agregar la ubicación del archivo prolink.dat.
Ahora ejecutamos Pro/ENGINEER y veremos un nuevo menú desplegable llamado SimMechanics Link al lado del menú Info (en algunas versiones nos tenemos que desplazar hasta la pestaña Tools en la que deberá aparecer SimMechanics Link como un menú desplegable.
Solo nos falta probar si la aplicación está exportando el modelo adecuadamente. Para esto buscamos y abrimos un ensamble hecho con anterioridad. El procedimiento sería dar clic en SimMechanics Link > Export XML, en este punto nos pedirá una carpeta para guardar el archivo XML, seleccionamos la carpeta y damos OK. Luego veremos que en la carpeta hay un nuevo archivo, ese archivo será leído por MATLAB.
No dirigimos a MATLAB y en la Command Window escribimos mech_import lo que nos abrirá un cuadro de diálogo en el que podemos buscar el archivo XML creado anteriormente, luego veremos el diagrama de bloques en Simulink y ya podremos dedicarnos a las tareas exactas de modelado y control.
Además, si ejecutamos el diagrama de bloques veremos que en la simulación no aparecerán solo barras simulando los eslabones, sino que aparecerán los cuerpos tal como los diseñamos.
Si tienes alguna inquietud no dudes en comentar.
Pingback: Conectando SolidWorks y MATLAB | palmacas
tengo creo 2 y parece que el proceso es diferente, me ayuda por favor?