Prof.Dr. Francisco Ramírez CruzProf.Dr. Eugenio López Guerrero
479 - Biomecánica
Instructivo de laboratorio
Instructivo de Laboratorio de Biomecánica FIME-UANL
Universidad Autónoma de Nuevo León
Facultad de Ingeniería Mecánica y Eléctrica
Laboratorio de Biomecánica
PRÁCTICAS
1. DESCRIPCIÓN Y USO DEL CÓDIGO DE OPTIMIZACIÓN TOPOLÓGICA DE
99 LÍNEAS EN MATLAB ..................................................................................................... 3
2. DISEÑO DEL MARCO DE UNA BICICLETA ................................................................. 7
3. DISEÑO DE LA ESTRUCTURA DE UN PANORÁMICO ........................................... 11
4. REFUERZO DEL CABLE DE UN TELEFÉRICO ........................................................ 13
5. OPTIMIZACIÓN DE FORMA 001 ..................................................................................... 15
6. OPTIMIZACIÓN DE FORMA 002 ..................................................................................... 18
7. OPTIMIZACIÓN DE FORMA 003 ..................................................................................... 21 El presente instructivo se basa en un conjunto de ejercicios de: A first laboratory exercise in topology optimization using matlab. Andreas Rietz Department of Mechanical Engineering / Department of Mathematics Linköping University SE-58183 Linköping, Sweden
2
PRÁCTICA #1
Descripción y uso del código
de optimización topológica de 99 líneas en MATLAB
Objetivo:
El estudiante conocerá cada una de las secciones que integran el código de
optimización topológica, como se debe de crea el archivo (.m) en MATLAB y como se
ejecuta el análisis.
Marco Teórico:
Un problema clásico de la ingeniería consiste en determinar la configuración
geométrica óptima de un cuerpo que minimice o maximice una cierta función objetivo,
al mismo tiempo que satisface las restricciones o condiciones de contorno del
problema. La solución de este problema puede ser planteada utilizando dos
estrategias: como un problema de optimización de forma o de optimización de la
topología.
La optimización de forma consiste en modificar la geometría del dominio preservando
su topología, es decir sin crear huecos o cavidades en su interior. Este tipo de análisis
es usualmente conocido como análisis de sensibilidad al cambio de forma y sus bases
matemáticas se encuentran bien establecidas. El principal inconveniente del análisis de
sensibilidad al cambio de forma es que sólo permite cambios en la frontera del dominio,
lo que limita su campo de aplicación.
Una manera más general de controlar un dominio es mediante modificaciones de su
topología, lo que permite obtener la configuración deseada partiendo de una morfología
inicial distante de la óptima. Los métodos de homogenización son posiblemente los
más utilizados para la optimización topológica. Estos consisten en caracterizar la
topología a través de su densidad, es decir, los huecos se identifican con regiones de
densidad nula. De esta forma la solución del programa resulta en una distribución
ficticia de material.
Matlab es un software matemático que ofrece un entorno de desarrollo integrado (IDE)
con un lenguaje de programación propio (lenguaje M). Entre sus prestaciones básicas
se hallan: la manipulación de matrices, la representación de datos y funciones, la
implementación de algoritmos, la creación de interfaces de usuario (GUI) y la
comunicación con programas en otros lenguajes y con otros dispositivos hardware.
3
El código de optimización topológica de 99 líneas en Matlab que se utilizara en este laboratorio se divide en 36 líneas para la programación principal, 12 líneas para los criterios de optimización, 16 líneas para el filtro de mallado y 35 líneas para el código de elemento finito. De hecho, excluyendo las líneas de comentarios y líneas asociadas con la producción y el análisis de elementos finitos, el código resultante es de solo 49 líneas. Este código fue desarrollado por O. Sigmund, Department of Solid Mechanics, Building 404, Technical University of Denmark, DK-2800 Lyngby, Denmark. El código puede ser descargado desde la página del autor: http://www.topopt.dtu.dk.
Desarrollo:
El código de Matlab (Apéndice #) está compuesto como un código de optimización
topológica estándar, el cual está listo para ser interpretado por MATLAB luego de llevar
a cabo la siguiente serie de sencillos pasos:
1) Abrir MATLAB y esperar a que éste se inicialice, y muestre su pantalla principal.
2) Una vez en la pantalla de inicio de MATLAB es necesario seleccionar en la barra
de herramientas File → New → Script, tal como muestra la figura 1, con lo que
se abre un editor de texto, dentro del cual será necesario escribir el código
proporcionado.
Figura 1.- Opción a seleccionar para crear un nuevo script en MATLAB
4
3) Una vez con el código completamente escrito en el editor de texto, es necesario
salvar el archivo, teniendo especial atención en la ubicación donde se va a
guardar el script así como en el nombre que se le va a asignar al archivo.
Se recomienda que el archivo se guarde en el directorio raíz de MATLAB que por
default muestra es en el que el editor de texto nos ubica al seleccionar File
→ Save como muestra la figura 1.2. En caso de no ser así, debemos de
navegar a “Mis Documentos\MATLAB” y guardar aquí el script recién creado. La
figura 1.2 ejemplifica una script que está siendo guardado en el directorio de
MATLAB con el nombre “topp”.
Figura 1.2 Ventana para guardar script, dentro de la carpeta raíz de MATLAB
4) Una vez guardado el script en el directorio correcto, solo hace falta corroborar
que el intérprete de MATLAB se encuentre en el mismo directorio. Esto se hace
desde la pantalla principal de MATLAB. Para la versión R2010a del software, el
directorio actual del intérprete se encuentra en la barra de herramientas superior,
como muestra la figura 1.3.
Figura 1.3 Directorio actual del intérprete de MATLAB
5
5) Por último, hay que ejecutar el programa desde la ventana de comando de
MATLAB. El código que se proporcionó, viene preparado para optimizar un
dominio de diseño con cargas y restricciones como el mostrado en la figura 1.4a,
este caso en particular, es evaluado y simulado cuando escribimos desde la
línea de comando de MATLAB “top(60,20,0.5,3.0,1.5)”. El resultado de esta
simulación se muestra en la figura 1.4b.
Figura 1.4a Dominio de diseño, carga y restricciones propuestas.
Figura 1.4b Resultado: Dominio de diseño optimizado.
REPORTE #1
1. Describir cada una de las partes principales del código de 99 líneas en Matlab.
2. Hacer el ejercicio propuesto de la viga (pdf).
3. Definir cada una de las variables de entrada.
6
PRACTICA #2
Diseño del marco de una Bicicleta
Objetivo:
Aprender a utilizar la lógica del código de Matlab para colocación de cargas, apoyos y fuerzas dentro de un espacio de diseño propuesto.
Marco Teórico:
Las diferencias entre las bicicletas de los hombres y de las mujeres es el diseño del
cuadro. La bicicleta de las mujeres está diseñada para hacer más fácil de montar
mientras que las bicicletas del hombre no. En esta práctica vamos a optimizar el diseño
del marco para mejorarlo.
El problema de diseño se ilustra en la figura 2.1. Nuestra tarea es construir la parte
frontal del marco para que la bicicleta sea lo mas rígido posible. Esta parte se conecta
con el manubrio y el asiento. El dominio de diseño se ilustra esquemáticamente en la
figura 2.2. Consideraciones:
➢ El manubrio produce una fuerza en dirección vertical.
➢ Bastidor trasero actúa como soporte.
➢ Tenemos que declarar una parte vacía del domino de diseño para hacer espacio para la rueda delantera.
Figura 2.1 Problema de diseño Figura 2.2. Vista esquemática del dominio de diseño
7
Desarrollo:
Primero vamos a considerar solo la carga y el apoyo. Para esto editaremos líneas 80 y 81 del código de matlab:
➢ 80 F (2,1)=1; ➢ 81 fixeddofs = 2 * nelx * (nely 1) + 1:2 * (nelx + 1) * (nely + 1);
Guarde el código en el mismo directorio. Luego ejecute Matlab con:
➢ top(20,20,0.33,3.0,1.5)
El resultado debe ser similar a la figura 2.3. El dominio de diseño se discretiza 20 veces
en 20 elementos finitos. Tal vez piense que la magnitud de la fuerza no es realista y
que el modulo de Young debe ser corregido en la línea 89. Comúnmente
E=2 *1011N/m2.
Figura 2.3 : Resultado de la primera optimización
También el tamaño de los elementos finitos se define como una1 vez por 1 unidad.
Estos valores se tienen que cambiar para obtener valores correctos de optimización,
pero no siempre es necesario cambiarlos ya que son solo correcciones de las escalas.
Sin embargo, si se quieren corregir se puede modificar la línea 41 para mantener la
precisión mientras se resuelven las ecuaciones: ➢ 41 while ((l2-l1)/l2 > 1e-4)
8
Penalización y filtro de radio
La sintaxis de la función es:
➢ top(nelx,nely,volfrac,penal,rmin)
Donde las variables denotan lo siguiente:
➢ nelx es el número de elementos finitos en la dirección horizontal.
➢ nely es el número de elementos finitos en la dirección vertical.
➢ volfrac es la fracción de volumen en el dominio de diseño.
➢ penal es la penalización de las densidades intermedias. Una penalización alta
hará la solución en blanco y negro, es decir los elementos finitos estarán llenos o
vacíos. Una penalización = 1 significa que no hay penalización de las
densidades intermedias.
➢ rmin es un radio de filtro para un filtro que hace que el diseño de malla-independiente.
Definición de regiones vacías. El resultado en la figura 2.3 no deja ninguna zona hueca para la rueda delantera.
Vamos a llamar a los elementos finitos en este pasivo vacío, y definir una matriz con
ceros en elementos libres y seres en pasiva. Agregue las siguientes líneas al código de
MATLAB entre la línea 5 y 6 para hacer esto:
for ely = 1:nely for elx = 1:nelx
if ((elx)^2+(ely-nely)^2) < (0.65*nelx)^2
passive(ely,elx) = 1; else
passive(ely,elx) = 0; end
end
end x(find(passive))=0.001;
El último comando inicializa todos los elementos de la zona hueca en el bajo valor
0.001. También tenemos que actualizar la línea 29 y 40 e insertar una línea adicional
entre 43 y 44: ➢ 29 [x] = OC(nelx,nely,x,volfrac,dc,passive);
➢ 40 function [xnew]=OC(nelx,nely,x,volfrac,dc,passive)
➢ 43b xnew(find(passive)) = 0.001;
9
Realiza estos cambios y ejecuta con: ➢ top(20,20,0.33,3,1.5)
Esto va a generar algo más parecido a la bicicleta para un hombre, el marco frontal se muestra en la figura 2.4.
Figura 2.4 : Resultado de la segunda optimización
REPORTE #2
Ahora vuelva a realizar el ejercicio anterior y cambie los valores de los parámetros para responder a las siguientes preguntas:
1. ¿El diseño final depende del tamaño de mallado? Compare el resultado con los siguientes comandos: ➢ top(12,12,0.33,3.0,0.9);
➢ top(16,16,0.33,3.0,1.2);
➢ top(20,20,0.33,3.0,1.5);
2. ¿Cuan mejor es el resultado del diseño si no exigimos que sea en blanco y negro? Comprobar el cumplimiento de diseño final de los siguientes casos: ➢ top(20,20,0.33,1.0,1.5);
➢ top(20,20,0.33,3.0,1.5);
3. Ahora vamos a estudiar el filtro de mallado. El filtro se desactiva eligiendo un
rmin menor que 1 o poniendo la línea 27 como comentario para que el programa
ignore la instrucción. ➢ 27 % [dc] = check(nelx,nely,rmin,x,dc);
Describa los resultados de salida (con y sin filtro) con:
➢ top(20,20,0.33,3.0,1.5);
10
PRACTICA #3
Diseño de la estructura de un Panorámico
Objetivo:
Desarrollar en el estudiante la capacidad de análisis, implementación y solución de un problema propuesto.
Marco Teórico:
Los panorámicos se exponen a altas ráfagas de viento, por lo que su estructura ocupa
ser muy rígida para soportar estas fuerzas. El espacio de diseño a evaluar será de 2
dimensiones, las cargas y los apoyos de observan en la figura 3.1.
Figura 3.1: Imagen del Panorámico
En la figura 3.2 se puede ver el espacio de diseño para esta práctica. Se espera una
fracción volumétrica aproximada de 0.20% del espacio de diseño. Supongamos que el
panorámico es muy rígido 1, y sus patas son del mismo material que el marco.
11
Figura 3.2: Espacio de diseño
Desarrollo:
Se tomaran ciertas consideraciones para la solución de esta práctica: 5 cargas, los
apoyos tendrán restricciones en “X”,”Y” y el espacio de diseño para esta práctica será
de:
REPORTE #3
1. Realizar el ejercicio con el espacio de diseño propuesto.
2. Mostrar el resultado de la optimización.
3. Imprimir el código con las modificaciones realizadas.
12
PRACTICA #4
Refuerzo del cable de un Teleférico
Objetivo:
Introducir al estudiante en un estudio con múltiples cargas y que tome en consideración cuales son las implicaciones que esto conlleva.
Desarrollo:
El teleférico de la figura 4.1 necesita un refuerzo en su apoyo. Sugiera un refuerzo según la información dada en la figura 4.2.
Figura 4.1: Teleférico Figura 4.2: Espacio de diseño
Al cuidador del teleférico también le gustaría que se hicieran mejoras para que la
estructura pueda llevar dos teleféricos a la vez, como se ilustra en la figura 4.3. Este
último caso implica considerar múltiples cargas.
Figura 4.3: Espacio de diseño para dos cargas.
13
REPORTE #4
1. Realizar los ejercicios tanto de una sola carga como el de múltiples cargas.
2. Comparar los resultados de ambos casos.
3. Imprimir del código con las modificaciones realizadas.
14
PRACTICA #5
Optimización de una Prótesis de Pie
Objetivo:
Proponer el diseño de una prótesis de pie para los diferentes estadios dentro de la marcha humana
Marco Teórico:
El conocimiento de la locomoción humana normal es la base del tratamiento
sistemático y del manejo de la marcha patológica, especialmente cuando se usan
prótesis y ortesis.
El caminar o andar de una persona, se define como la repetición de una serie de
movimientos simultáneos, que desplazan el cuerpo sobre una línea de progresión
deseada. Y al mismo tiempo mantienen una postura estable, soportando el peso
corporal.
La movilidad libre de las articulaciones y el trabajo que desempeñan los músculos es
importante para el éxito de esta tarea. Estos últimos deben actuar en el momento
preciso y con la intensidad necesaria. La falta de ciertas acciones durante la marcha
debe ser sustituida por otras, con el fin de mantener la estabilidad y la progresión
deseada.
15
Ciclo de la marcha El ciclo de la marcha comienza cuando el pie contacta con el suelo y termina con el
siguiente contacto con el suelo del mismo pie. Los dos mayores componentes del ciclo
de la marcha son: la fase de apoyo y la fase de balanceo (Figura 5.1). Una pierna está
en fase de apoyo cuando está en contacto con el suelo y está en fase de balanceo
cuando no contacta con el suelo
Figura 5.1 Fases en la Marcha Humana. La longitud del paso completo es la distancia lineal entre los sucesivos puntos de
contacto del talón del mismo pie. Longitud del paso es la distancia lineal en el plano de
progresión entre los puntos de contacto de un pie y el otro pie (Figura 5.2).
Figura 5.2 Longitud de Paso.
16
Desarrollo:
Para la realización de esta práctica se analizara el comportamiento de un solo pie dentro de las 3 fases de la marcha humana:
➢ Normal (El talón y área metatarsial son los apoyos, la fuerza se aplica sobre el tobillo con una fuerza de 500N )
➢ Despegue(El área metatarsial es el apoyo, la fuerza de 500N se aplica sobre el tobillo con un ángulo de 30º)
17
➢ Apoyo (El área del talón es el apoyo, la fuerza de 500N se aplica sobre el tobillo con un ángulo de 60º)
REPORTE #5
1. Realizar las simulaciones para los tres estados de las marcha y compare los resultados obtenidos.
2. Imprima cada uno de los códigos con sus modificaciones realizadas.