EL BLOG SE HA MUDADO, TODA LA INFORMACION SE ENCUENTRA AHORA EN palmacas.com.

septiembre 23, 2012

Conectando Pro/ENGINEER y MATLAB



Entre las materias que estoy viendo este semestre está Robótica I, que supone el calculo de las cinemáticas de robots seriales y paralelos entre otras cosas. Una herramienta esencial para trabajar en la materia es MATLAB y su tool SimMechanics, con el que se pueden modelar, simular y caracterizar sistemas mecánicos. El funcionamiento del tool 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 mas 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 mas cómodos.


Para comenzar debemos descargar las librerías que vincularan 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 PC. Para mi caso descargo la ultima versión de win64 ya que estoy trabajando con la versión 2012a de MATLAB y con la versión 5 de Pro/ENGINEER (aun no he querido hacer el cambio a Creo) sobre Windows 7 de 64bits.

Luego de descargar el archivo lo extraemos en la carpeta donde esta instalado MATLAB, en mi caso seria en C:\Program Files\MATLAB\R2012a, nos preguntara sí queremos sobrescribir algunos archivos a lo que diremos que si. 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 esta el archivo prolink.dat, en mi caso sería:

toolkit_registry_file C:\data\prolink.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\PTC\Creo 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 click 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 es lo que leerá MATLAB.


No dirigimos a MATLAB y en la Command Window escribimos mech_import lo que nos abrirá un cuadro de dialogo 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.


Ademas, sí 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.


Sí tienes alguna inquietud no dudes en comentar.