Optimización de una placa plana

De MateWiki
Saltar a: navegación, buscar

En este artículo se presenta el enunciado y posterior metodología para la resolución de un problema de optimización.

1 Enunciado y características del problema

Se define una placa metálica rectangular de pequeño espesor dispuesta en un plano vertical fijada en su borde inferior pudiendo deformarse libremente el resto de los puntos y sometida a cargas en su borde superior. El objeto del problema es optimizar la forma de un agujero con forma elíptica en el interior de la placa sometida a tensión plana de forma que manteniendo constante el área del agujero se alcancen las menores tensiones en la misma.

Los parámetros respecto a los cuales se realiza la optimización son el desplazamiento horizontal del agujero respecto del centro de la placa, el desplazamiento vertical del agujero respecto del centro también y la excentricidad de la elipse. Para resolver el problema se diseña un programa en lenguaje Matlab que de forma automática a partir de la carga actuante en el borde superior y de una configuración inicial cualquiera itera para obtener los valores de los tres parámetros que permiten obtener las tensiones mínimas. El cálculo de las tensiones existentes en la placa se realiza mediante el método de los elementos finitos empleando elementos triangulares CST. La tensión que se adopta como objetivo para minimizar es el máximo de las tensiones de Von Mises que se producen en toda la placa para la hipótesis de carga considerada.


2 Casos

3 Metodología

Se describe a continuación un resumen del proceso seguido para llegar a la resolución final del problema mediante la programación en lenguaje Matlab así como los distintos programas utilizados previamente para intentar calcular la solución.

Inicialmente se intentó resolver el problema mediante el empleo de software libre, para ello se comenzó a plantear el problema con MAT-fem. Este programa se basa en el empleo del programa GID para realizar el preprocesado (mallado, cargas, características de los elementos) y postprocesado (representación de deformaciones, tensiones, desplazamientos) del modelo, resolviendo el sistema lineal de ecuaciones del modelo con Octave. Independientemente de las ventajas de este programa, la optimización por medio de un programa que de forma automática iterase para obtener la solución óptima requiere poder programar con comandos todas y cada uno de los pasos del proceso, lo cual parecía complicado en este caso al requerir guardar los datos del mallado en un archivo en un formato determinado para después poder resolverlo en Octave. Una gran dificultad radicaba en poder ejecutar todos los procesos en el programa GID mediante comandos para poder automatizar todo el programa.

Posteriormente se planteó el problema en el software libre FreeFem++, que es un software orientado a la resolución de ecuaciones diferenciales. La definición de las características del problema, como con GID, era sencillo; sin embargo el principal problema que se encontró en FreeFem++ es que era difícil exportar los resultados para su tratamiento posterior una vez resuelto el problema (obtención de deformaciones, tensiones a partir de desplazamientos y representación de los mismos de forma gráfica). El lenguaje del programa es C++ aunque la ejecución de comandos no funcionaba adecuadamente en este lenguaje.



clear all % antes de comenzar
t0=0; tN=4; % el intervalo de tiempo es de 0s a 4s
N=40; h=(tN-t0)/N; %40 intervalos con paso h
y0=1/10; % valor inicial
yy=y0;
y(1)=yy  % inicio del bucle
for n=1:N    
yy= (1/h)*(0.5*h-1+sqrt((1-0.5*h)^2+4*(h/2)*(yy+0.5*h*yy*(1-yy))));    
y(n+1)=yy;
end
t=t0:h:tN;
plot(t,y,'x') % dibujo de la solución

--Gonzalo (discusión) 11:28 29 ago 2014 (CEST)