Anda di halaman 1dari 9

Flujos no-Newtonianos y Reologa

TRABAJO DE AMPLIACION

Diseno de un algoritmo de ajuste para el modelo de Max-


well Generalizado.
Salmeron Valdivieso,Honorio

Resumen
Recibido 00/00/2016
Aceptado 00/00/2016 La parametrizacion del comportamiento de los fluidos complejos ha sido durante muchos anos
un problema tratado por cientficos e ingenieros de variados campos. Esto se debe a que es muy
difcil sino imposible obtener un modelo fsico universal de su comportamiento al fluir. Es por
ello que existen distintos modelos aproximados que buscan ajustarse de la mejor forma posible
a los comportamientos de la mayor cantidad posible de materiales. Uno de ellos es el modelo
de Maxwell Generalizado, que modela el comportamiento viscoelastico de los materiales y que
es el que voy a analizar desde la perspectiva del proceso de ajuste a los datos experimentales.

INTRODUCCION

Muchos fluidos, y entre ellos la mayora de los


polmeros tienen la capacidad de almacenar energa
y presentar un comportamiento elastico. El modelo
de Maxwell simple asemeja el comportamiento visco-
elastico a una composicion en serie de una resistencia
elastica y otra viscosa (Figura 1).

Figura 2: Datos experimentales y el mode-


lo de Maxwell simple ajustado por mnimos
cuadrados.

Figura 1: Modelo esquematico de un un sis-


Poder parametrizar estas curvas puede ser muy
tema muelle y amortiguador viscoso en serie.
util para estimar otros parametros como el peso mo-
lecular [2] o estimar el tiempo caracterstico de rela-
Sin embargo este modelo queda lejos de poder jacion. Esto lleva a la necesidad de hacer mas com-
predecir con fidelidad los modulos elastico y viscoso plejo el modelo e intentar ajustar los resultados a un
de un material a diferentes velocidades de deforma- numero N de estos elementos en paralelo (Figura 3).
cion (Figura 2). Este metodo da mejores resultados pero puede re-

Flujos no-Newtonianos y Reologa, 2016, 5, x-x | 1


ARTICULO Flujos no-Newtonianos y Reologa

sultar complicado decidir cuantos elementos en pa-


ralelo usar y despues lidiar con los problemas que
puede suponer el ajuste.

Figura 3: Modelo esquematico del modelo de


Maxwell generalizado.
Figura 4: Datos experimentales de la mues-
tra 1

Llegados a este punto voy a tratar directamente


con la expresion que ajusta los modulos elastico y 2. Analicemos el modelo de Maxwell simple para
viscoso y no voy a desarrollar el proceso matematico obtener una vision mas intuitiva. Para ello represen-
que lo precede. Concretamente me voy a centrar en tamos G0 () y G00 () teoricos para G0 = 500P as y
desarrollar algoritmo que automatice el proceso de = 1/10s.
ajuste. El modelo matematico consiste en asumir la
siguiente igualdad:

N
0
X gk (k )2
G () = (1)
1 + (k )2
k=1

N
X gk k
G00 () = (2)
1 + (k )2
k=1

DISENO DEL ALGORITMO DE AJUSTE

Figura 5: Datos experimentales de la mues-


Lo primero que nos hace falta es una logica con tra 1
la que hacer nuestro algoritmo funcionar. Resolve-
remos por separado el problema de ajustar la curva
y el de decidir el numero de elementos de la serie. En el modulo elastico G0 (), el modulo de
Procedamos a resolver manualmente un ajuste para plateau(G0 ) es el valor que aspira a obtener para
obtener una comprension mayor del proceso: una frecuencia infinita. El tiempo de relajacion es el
inverso de la frecuencia en la que que G0 = 0,5G0 .
En el modulo viscoso (G00 ) el modulo de plateau
1. Partimos de los datos que se presentan en la es el doble del valor maximo y el tiempo de relaja-
figura 4. Estos seran los resultados experimentales a cion el inverso de la frecuencia a la que se da ese
los que ajustaremos nuestro modelo. valor maximo a partir del cual la funcion decrece.

2 | Flujos no-Newtonianos y Reologa, 2016, 5, x-x


ARTICULO Flujos no-Newtonianos y Reologa

3.Comenzamos anadiendo un termino al ajuste de


nuestros datos. La curva mas restrictiva es la de G
luego nos adaptamos a ella.

Figura 8: Ajuste manual con dos terminos.

Siguiendo el mismo razonamiento has 7 terminos


llegamos al siguiente ajuste:

Figura 6: Ajuste manual con un termino.

4. Puesto que observamos un comportamiento


creciente en G, sabemos que existe un termino cuya
constante de tiempo es muy grande y que resuelve
esa inclinacion. Lo anadimos.

Figura 9: Ajuste manual con siete terminos.

Ponderacion del error.


El problema a resolver cuando buscamos ajustar una
curva es un proceso de optimizacion, debemos bus-
car el error mnimo entre nuestro modelo y los datos
experimentales, luego debemos tener un criterio para
medir el error. Ponderaremos el error con una expre-
sion de cuadrados ponderados adaptada al hecho de
que estamos ajustando dos curvas al mismo tiempo.
Propongo 3 y 4.

Figura 7: Ajuste manual con dos terminos. X X


Error = (YG0 ,exp YG0 ,f it )2 )+ (YG00 ,exp YG00 ,f it )2 )
(3)

Comprobamos que la curva de G necesita mas P


(YG0 ,exp YG0 ,f it )2 ) +
P
YG0 ,exp YG0 ,f it )2G00
terminos para elevar en w = 101 . Anadimos ese Error =
2
termino y acomodamos el resto. (4)

Flujos no-Newtonianos y Reologa, 2016, 5, x-x | 3


ARTICULO Flujos no-Newtonianos y Reologa

El primero de los dos metodos planteados ha sido Semilla.


con diferencia el que mejor resultado nos ha dado y
tambien el que mejor cumple con las definiciones del
metodo publicadas, por tanto es el que usare. Lo primero que debemos hacer es obtener unos
parametros iniciales adecuados para hacer evolucio-
Automatizacion del proceso. nar la solucion. El parametro gk es el mas sencillo de
decidir.
Una vez que entendemos el mecanismo del ajuste Para resolver ese problema he buscado distintos
podemos comenzar a implementar un metodo auto- metodos para predecir aproximadamente los valores
matizado. del modelo como es el modulo de plateau [2]:
El metodo se basara en iteraciones, cada una for- Z
mada por dos sub-algoritmos: 2
G0N = G00 ()dln()
1.La primera parte de la iteracion consistira en

un incremento o decremento en pasos discretos del


parametro gk segun la reduccion del error, hasta que Sin embargo ha resultado mejor opcion usar como
la variacion del error sea nula. semilla la media de los datos.

2.La segunda parte de la iteracion consistira en Para los tiempos de relajacion he decidido uti-
modificar los tiempos de relajacion (k ) para cada lizar una distribucion homogenea de de frecuencias
termino. Esta modificacion es mas sensible que la caractersticas en el rango de los datos.
del modulo gk ya que podemos interpretarla como
un desplazamiento de la curva que cada termino. Mnimos locales.
Para modificar el parametro k trabajaremos di-
rectamente con la frecuencia en el eje de abscisas En este primer modelo del algoritmo es habi-
para mas comodidad, llamaremos frecuencia carac- tual que aun proveyendo un numero considerable de
terstica del termino a: terminos obtengamos soluciones como esta:

1 1
c = =
c

La frecuencia caracterstica es, como ya se ha co-


mentado, aquella en la que se alcanza 0,5gk y en el
caso de G00 (w), el valor maximo.
Ahora que nuestro algoritmo modifica el tiempo
de relajacion k a traves de la frecuencia caractersti-
ca hay que relacionar ambos:

1 1
= 2 = c
c c c2
Figura 10: Ajuste con diez terminos.

= 2 c (5)
Modificaremos la frecuencia caracterstica de cada Esto se debe a dos situaciones analogas. En una el
termino en pasos discretos y obtendremos el incre- algoritmo tiende a anular un termino reduciendo su
mento o decremento equivalente del tiempo de re- gk hasta 0. Esto lo hace porque si en algun momento
lajacion de cada termino. Esto facilita el analisis al ese termino llega a un punto donde cualquier interac-
algoritmo entendiendo que incrementar la frecuencia cion lo hace incrementar el error, acaba siendo mas
caracterstica supone desplazar puntos clave de las comodo reducirlo y trabajar con menos terminos con
curvas en el sentido positivo del eje de abscisas. los cuales obtienes mas error pero una percepcion de
su decremento.

4 | Flujos no-Newtonianos y Reologa, 2016, 5, x-x


ARTICULO Flujos no-Newtonianos y Reologa

En la segunda el algoritmo iguala dos o mas tiem-


pos de relajacion, lo que equivale a tener solo un
termino.
Esto he intentado resolverlo con un algoritmo que
puntualmente evalua la distribucion de los parame-
tros buscando esas dos situaciones y los re-situa en
donde mas error exista.

Numero de terminos.

El criterio para decidir el numero de terminos en


mi caso ha sido el de aquel que consiga una curva
con un error menor que el experimental. Figura 11: Ajuste de los datos provistos en
Pueden utilizarse muchos criterios pero habitual- el ejercicio 3 de la tercera relacion de proble-
mas de la asignatura.
mente para este modelo van a imponerse la forma de
las curvas, ya que cada fluctuacion que exista va a
implicar de uno a dos terminos mas.
Es habitual utilizar 7 terminos.

CONCLUSIONES

Figura 12: Ajuste para los datos de una pin-


tura (provistos por el profesor).

Tras implementar un algoritmo corrector, es ha-


bitual que se converja a una solucion quasi-opti-
ma. El algoritmo no llega a ser independiente de
la participacion de un entendido a la hora de co-
rregir la semilla o los parametros obtenidos para
someterlos de nuevo a calculo. A mi impresion
este es un metodo que da unos resultados no de-
masiado buenos en cuanto se ajustan curvas de
mas extension. Figura 13: Ajuste para los datos de una pas-
Aqu se presentan algunas curvas ajustadas ta de dientes.
con el algoritmo para 7 terminos:

Flujos no-Newtonianos y Reologa, 2016, 5, x-x | 5


ARTICULO Flujos no-Newtonianos y Reologa

Referencias
[1] Departamento de Fsica aplicada
II,,Universidad de Malaga,Teora de
errores..

[2] Chenyang Liu, Jiasong He, Evelyne van


Ruymbeke, Roland Keunings, Christian
Bailly,ELSEVIER,polymer,Evaluation of
different methods for the determination of
the plateau modulus and the entanglement
molecular weight.2006.

6 | Flujos no-Newtonianos y Reologa, 2016, 5, x-x


ARTICULO Flujos no-Newtonianos y Reologa

ANEXO

Codigo del resolvedor implementado en MATLAB.

function [ X ] = Ajustar(XDATA,YDATA,X0,r_min,N)

n=size(X0);
parametros=X0;
r=1;

h=animatedline(1,1,'MaximumNumPoints',50);

%Paso 1 -> Recalcular modulos de plateau.


iteration=0;
ERR=error(XDATA,YDATA,parametros)
g=animatedline(1,ERR,'MaximumNumPoints',50);

while r>r_min&iteracion<=N;

iteration=iteration+1;
lerr=error(XDATA,YDATA,parametros);
lr=0.2;

while lr>0

for i=1:n(1)

aux=parametros;

err2=error(XDATA,YDATA,parametros);

aux(i,1)=aux(i,1)+1e-2;

err1=error(XDATA,YDATA,aux);

derr=err2-err1;

parametros(i,1)=parametros(i,1)+derr/abs(derr+1e-9)*1e-2;

parametros(i,1)=(parametros(i,1)>0)*parametros(i,1)+(parametros(i,1)<=0)*1e-12;

end

err2=error(XDATA,YDATA,parametros);
lr=(lerr-err2)/lerr;
lerr=err2;
end

%Paso 2-> Recolocar tiempos de relajacion.

Flujos no-Newtonianos y Reologa, 2016, 5, x-x | 7


ARTICULO Flujos no-Newtonianos y Reologa

lr=1;
while lr > 0

for i=1:n(1)

aux=parametros;

err2=error(XDATA,YDATA,parametros);

aux(i,2)=aux(i,2)+1e-5*aux(i,2)2;

err1=error(XDATA,YDATA,aux);

derr=(err2-err1);

parametros(i,2)=parametros(i,2)+derr/abs(derr+1e-12)*parametros(i,2)2*1e-5;
parametros(i,2)=(parametros(i,2)>0)*parametros(i,2)+(parametros(i,2)<=0)*1e-12;

end

err2=error(XDATA,YDATA,parametros);
lr=(lerr-err2)/lerr;
lerr=err2;

end

addpoints(h,iteration,r);
drawnow
r=abs(ERR-err2)/ERR;
ERR=err2;

%Algoritmo corrector

for i=1:n(1)

if( parametros(i,1)<1e-2)

[e,y]=maxerror(XDATA,YDATA,parametros);

display('Corrigiendo tiempo de relajacion.');

parametros(i,1)=0.5*abs(e);
parametros(i,2)=1/XDATA(y);

end

end

end
X=parametros;
display(iteration);
display(ERR);
createfigure(XDATA,[YDATA(:,1),FG1(parametros,XDATA)], [YDATA(:,2),FG2(parametros,XDATA)]);

8 | Flujos no-Newtonianos y Reologa, 2016, 5, x-x


ARTICULO Flujos no-Newtonianos y Reologa

end

function err=error(XDATA,YDATA,parametros)

err1=sum( abs( (YDATA(:,1)-FG1(parametros,XDATA) )./YDATA(:,1) ).2);


err2=sum( abs( (YDATA(:,2)-FG1(parametros,XDATA) )./YDATA(:,2) ).2);

err=sum([err1,err2]);

end

function [e,y]=maxerror(XDATA,YDATA,parametros)

err1=(YDATA(:,1)-FG1(parametros,XDATA));
err2=(YDATA(:,2)-FG2(parametros,XDATA));
err=max([err1,err2]);
[e,y]=max(err);

end

function YDATA = FG1( X,XDATA )

n=size(X);
YDATA=0;

for i=1:n(1)

YDATA=YDATA+X(i,1).*(XDATA.*X(i,2)).2./(1+(XDATA.*X(i,2)).2);

end

end

function YDATA = FG2( X,XDATA )


n=size(X);
YDATA=0;

for i=1:n(1)

YDATA=YDATA+X(i,1).*XDATA*X(i,2)./(1+(XDATA.*X(i,2)).2);

end

end

Flujos no-Newtonianos y Reologa, 2016, 5, x-x | 9

Anda mungkin juga menyukai