SAPPI - Instituto Politécnico Nacional

Anuncio
INSTITUTO POLITÉCNICO NACIONAL
SECRETARÍA DE INVESTIGACIÓN Y POSGRADO
INFORME TÉCNICO FINAL DE PROYECTOS DE INVESTIGACION 2006
Este formato presenta los aspectos necesarios para la elaboración del Informe Técnico Final de los proyectos de
investigación que se registraron en la Secretaria de Investigación y Posgrado (SIP) para su desarrollo durante el
periodo enero 2006 – diciembre 2006.
La información que se solicita es la mínima necesaria para documentar y evaluar el avance de los proyectos de
investigación, por lo que es indispensable que se requisite sin omisiones, agregando o anexando la información que
se considere conveniente.
I.
IDENTIFICACIÓN DEL PROYECTO.
ESCUELA, CENTRO O UNIDAD: ESFM
TITULO:
CLAVE DEL PROYECTO:
20061380
” Modelos Matemáticos para elasticidad y Viscosidad ”
PROGRAMA EN DONDE SE UBICA EL PROYECTO:
Proyecto individual
1. PERIODO EN QUE SE REALIZO EL PROYECTO:
del
01
d
II.
01 2006
m
a
al
30
d
12
m
2006
a
RESPONSABILIDAD TÉCNICA Y ADMINISTRATIVA.
Indicar nombre e incluir firmas autógrafas (en el ejemplar impreso) de los responsables técnicos y administrativos.
Vo. Bo.
Dr. Cesar Alberto Escobar Gracia
M en C
Director(a) del proyecto
Director(a) de la escuela, centro o unidad
Teléfono del director(a) del proyecto:
5536553932
Fecha de elaboración del informe:
31 01 2007
d
M
a
III. PROFESORES PARTICIPANTES.
Incluir exclusivamente a los profesores registrados en el protocolo del proyecto y que efectivamente participaron en el
desarrollo del mismo, durante el periodo que se reporta.
NOMBRE DEL
PARTICIPANTE
1) Cesar Alberto Escobar Gracia
PRINCIPALES ACTIVIDADES
REALIZADAS
Director del proyecto
PERIODO
de
a
02/2006 12/2006
IV. DESARROLLO TÉCNICO DE LA INVESTIGACIÓN.
En anexo al presente proporcione la información que se indica a continuación:
1. Resumen. Es una versión abreviada y exacta del proyecto que se reporta como concluido y debe estar escrito de
tal forma que pueda ser difundido a través de la página Web institucional, sin necesidad de efectuar revisiones o
correcciones de contenido y estilo, recomendándose la inclusión de tres palabras clave para efectos de
identificación.
2. Introducción. Debe establecer claramente el propósito del trabajo, incluyendo las hipótesis propuestas y los
problemas abordados, así como un bosquejo del trabajo y su importancia en un contexto más amplio de
investigación. Debe ser explícita y comprensible para quienes no son especialistas en el tema.
3. Métodos Experimentales. Esta sección debe comenzar con una descripción del diseño de experimentos o del
procedimiento teórico-metodológico utilizado en la investigación. Se deben establecer claramente las premisas y
supuestos del diseño y debe justificarse la selección del método cuando existen otros métodos alternativos. Los
métodos deben identificarse y describirse con suficiente detalle para que sea posible obtener los mismos
resultados por un investigador experimentado, o para evaluar la confiabilidad y validez de los métodos usados y
de los resultados reportados. Deben describirse en un orden lógico para que se pueda identificar fácilmente
como se relacionan con el diseño experimental. Se debe describir en forma completa los materiales utilizados en
la investigación,
incluyendo
la preparación
que se lesque
haya
como su origen.
En anexo
al presente se
debe proporcionar
la información
sedado,
indicaasí
a continuación:
4. Resultados. Los resultados de los proyectos se deben presentar en un orden apropiado para proporcionar
evidencia a favor o en contra de la hipótesis, o para dar respuesta al problema que se estableció en el objetivo
del proyecto.
5. Conclusiones. Breve discurso sobre los resultados obtenidos y observaciones sobre ellos.
V.
EJERCICIO DE PRESUPUESTO TOTAL.
PRESUPUESTO
DEL PROYECTO
GASTO CORRIENTE
IPN-CGPI
OTRAS FUENTES DE FINANCIAMIENTO *
ASIGNADO
EJERCIDO
$ 39 000
$ 39 000
$ 39 000
$ 39 000
ASIGNADO
EJERCIDO
INVERSIÓN
TOTAL
* Especifique el nombre de la fuente de financiamiento: __________________________________________________
2
VI. PRODUCTO(S) OBTENIDOS.
1.
Formación de recursos humanos, Tesis, Congresos, artículos, etc.
2.
Investigación científica en el área textil
VII. SUBPRODUCTOS OBTENIDOS.
Describa los subproductos derivados del proyecto de investigación, anexando en cada caso la documentación
comprobatoria correspondiente, como: fotografías; copias de oficios y de constancias de participación; copias de
artículos y conferencias; copias de carátulas e índices de libros, manuales publicados, etc. La descripción debe incluir
nombre o título, autores, evento, lugar y fecha. En la columna de la izquierda se presenta una lista de claves
correspondientes a cada tipo de subproducto.
1. SUBPRODUCTOS TÉCNICOS:
CLAVE DEL
SUBPRODUCTO
1.1 PROTOTIPOS
1.2 PATENTES
1.3 CERTIFICADOS DE
INVENCIÓN
1.4 HARDWARE
1.5 SOFTWARE
2.4.2
2.FORMACIÓN DE RECURSOS
HUMANOS:
2.1 EST. PIFI
2.1.1 N.M.S.
2.1.2 N.S.
2.1.3 N.P.
3.2.1
3.2.2
3.2.2
2.2 PRACTICAS
PROFESIONALES
2.3 SERVICIO SOCIAL
2.4 TESIS
2.4.1 N.S.
2.4.2 N.P.
3. DIFUSIÓN DE LA
INVESTIGACIÓN
3.1 CURSOS
3.1.1 NACIONAL
3.1.2INTERNACIONAL
1.5
2.3
2.3
DESCRIPCIÓN
Estudiante PIFI María de los Angeles Mendoza Vega
ANEXO No.
1
XIII Semana Nacional de Estadística (2006), “La viscoelasticidad en fibras e hilos
textiles“, Expositor Manuel Olvera Gracia. FCFM BUAP, Puebla, México. Extenso 2
en memorias.
XV International Materials Research Congress 2006. Symposium 6. Materials
Characterization “Viscoelastic Simulation of Neoprene Rubber Bar” Expositor. 3
Manuel Olvera Gracia. August 20-24, 2006 Cancun, México.
Ciclo de conferencias Ciencia y Tecnología. “El Algebra y el Cálculo como
herramientas de decisión.” Expositor César Alberto Escobar Gracia. Febrero- 4
Marzo de 2006
Software para el cálculo de los parámetros del modelo de Vangheluwe
Estudiante de servicio social Cano Rodríguez Oscar
Estudiante de servicio social Herrera Ocaranza Elizabeth
Pag 12
6
6
3.2 CONFERENCIAS
3.2.1 NACIONAL
3.2.2 INTERNACIONAL
3.3 ARTÍCULOS DE
DIVULGACIÓN
3.4 PROGRAMAS DE TV-RADIO.
3.5 ARTÍCULOS CIENTÍFICOS
PUBLICADOS
3.5.1 NACIONAL
3.5.2 INTERNACIONAL
3.6 LIBROS
3.7 SEMINARIOS
4. OTROS
4.1 PRECISAR
3
2. FORMACION DE RECURSOS HUMANOS
2.1. ESTUDIANTES PIFI
Mendoza Vega María de los Angeles
2.3 ESTUDIANTES EN SEVICIO SOCIAL
Cano Rodríguez Oscar
Herrera Ocaranza Elizabeth
En anexo al presente proporcione la información que se indica a continuación:
1. Resumen.
En este trabajo se estudian los fundamentos matemáticos de la viscoelasticidad que se utilizan para materiales textiles
del ensayo de tracción, se les aplicó a las muestras para obtener la curva convencional Carga-Longitud, y
posteriormente la curva de ingeniería Esfuerzo-Deformación la cual se utilizo para hacer la simulación viscoelástica,
usando el modelo de Maxwell que consiste en un muelle o resorte colocado en serie con un embolo o pistón. La
expresión matemática de este modelo a su vez se linealizo para obtener los valores iniciales de sus parámetros
desconocidos para optimizar con el método iterativo de Marquardt. Se obtuvieron los análisis de varianza y las
gráficas de los ajustes de los datos experimentales. Así mismo este modelo se elaboró un software en lenguaje C ++
para encontrar los parámetros en el caso mas general del modelo de Vangheluwe.
2. Introducción.
Cuando los sólidos y los líquidos se someten a la aplicación de una fuerza que tiende a deformarlos, existen ciertas
leyes ideales que explican de forma sencilla su comportamiento frente a tal agresión.
La ley ideal que explica el comportamiento de los sólidos bajo un esfuerzo se debe al filósofo inglés Hooke, quien ya
en 1676 establecía que la deformación producida en un material sólido es proporcional a la fuerza que se ha aplicado
sobre él.
Muchos materiales cuando se encuentran sometidos a esfuerzos relativamente pequeños exhiben un comportamiento
elástico, término que indica que la relación esfuerzo-deformación es única, instantánea y reversible. La energía
empleada en deformar estos cuerpos se almacena en forma de energía potencial que se puede recuperar cuando el
cuerpo vuelve a la situación de partida (el área de la gráfica esfuerzo-deformación, nos mide precisamente la energía
empleada/recuperada en el proceso).
Otros materiales como los polímeros plásticos y la mayoría de los materiales biológicos exhiben un comportamiento
viscoelástico, experimentando una deformación y recuperación gradual, dependiente de la rapidez con la que se
aplica y/o elimina el esfuerzo, por lo que la relación esfuerzo-deformación no es única ni tampoco completamente
reversible. No se recupera la forma original en ellos, una vez eliminando los esfuerzos. La energía en parte se
almacena como energía potencial y en parte se disipa en forma de calor.
Los materiales elásticos cuando se les somete a esfuerzos que exceden el límite elástico exhiben un comportamiento
plástico, en parte irreversible, en el que la energía aplicada se disipa en parte en forma de calor.
Los fundamentos matemáticos de la Viscoelasticidad comienzan cuando W. Weber (1835), trabajaba con hilos de
seda. Una carga longitudinal producía una extensión inmediata, seguida de un posterior alargamiento con el tiempo.
Al eliminar la carga tenía lugar una contracción inmediata, seguida de una contracción gradual hasta alcanzar la
longitud inicial. Años después J.C. Maxwell (1867) retomó estas investigaciones proponiendo un modelo matemático
para describir fluidos con propiedades elásticas.
Maxwell partió de dos elementos, el primero explica la recuperación elástica de los cuerpos sometidos a tracción y
está representado por un muelle o un resorte; mientras que el segundo elemento, explica la variación de las
dimensiones que se producen en el material a lo largo del tiempo, ya sea durante la aplicación del esfuerzo o bien
4
después de cesar el mismo, está relacionado con las tensiones internas acumuladas en el material que se liberan
gradualmente y se representa por un émbolo.
El elemento de Maxwell se construyó colocando en serie al muelle y el émbolo, y representa a un material que puede
responder elásticamente a una tensión aplicada pero también puede presentar posteriormente flujo viscoso.
Si el desplazamiento del elemento de Hooke es
desplazamiento total de dicho sistema será γ :
γ1
y el correspondiente al elemento de Newton es
γ 2 , entonces el
(1)
γ = γ1 + γ 2
El elemento de Hooke al estar colocado en serie soporta la misma tensión que el elemento de Newton por lo que:
σ = Eγ1
(2)
Y también
⎛ dγ 2 ⎞
⎟
⎝ dt ⎠
(3)
σ = η⎜
Para resolver la ecuación, se aplican las transformadas de Carson (variables seguida por la letra c) en el que las
derivadas se transforman multiplicando por una variable auxiliar p, entonces la ecuaciones anteriores resultan
σ c = Eγ1 c
(4 )
σ c = η pγ 2 c
(5)
La igualdad en la suma de desplazamientos se mantiene también con las transformadas, por lo tanto:
⎡1
1 ⎤
+
⎥
⎣ E ( pη )⎦
σ c = γ 1 c + γ 2 c = σ c⎢
(6)
De aquí resulta
⎡ pη E ⎤
⎥γ c
⎣ pη + E ⎦
(7 )
σc=⎢
Realizando la transformada inversa resulta
⎡−E ⎤
γ⎥
(
)
η
r
⎦
⎣
(8)
σ = E γ exp ⎢
Es decir:
σ = Aγ e − Bγ
(9)
Donde:
σ es la carga específica que se aplica a la probeta
γ es la deformación que experimenta la probeta
A y B son parámetros del modelo a determinar.
Figura 2. Elemento de Maxwell.
Para calcular los parámetros A y B de la expresión no lineal (9) se divide por
σ
= A e − Bγ
γ
γ para tener la ecuación (10).
(10)
5
Al aplicar logaritmos nos queda la siguiente expresión:
⎛σ
ln⎜⎜
⎝γ
⎞
⎟⎟ = ln A − B γ
⎠
(11)
A la ecuación anterior se le aplican mínimos cuadrados [6]. para obtener los valores de A y B, que son utilizados como
valores iniciales para optimizar el ajuste no lineal por el método iterativo de Marquardt [3].
3. Métodos Experimentales.
Prueba de tracción para las muestras en estudio:
La carga es la fuerza de tracción que se aplica a una probeta en su dirección axial.
La carga de rotura es la carga máxima soportada por una probeta, hasta el momento de su rotura. Corrientemente se
designa como resistencia a la tracción.
El alargamiento, es el aumento de longitud que experimenta una probeta como consecuencia de la aplicación de una
carga.
El alargamiento a la rotura es el experimentado por una probeta en el momento de alcanzar la carga de rotura.
En este ensayo de tracción la anchura total de la probeta es pinzada en las mordazas del aparato de ensayo.
PRINCIPIO DEL METODO
Se somete una probeta a la tracción hasta provocar su rotura, mediante un dispositivo adecuado se registra la carga
de rotura y su alargamiento a la rotura.
CONDICIONES DE ENSAYO.
Aparato: Dinamómetro.
Ancho de la probeta: 50 mm
Área de fijación de las mordazas: mínimo 50 x 50 mm
Distancia entre las mordazas: 200 mm (generalmente) o 100 mm en el caso en los cuales el alargamiento a la rotura
sea superior a 75%.
Nº de probetas: Cinco en cada dirección.
Velocidad de ensayo: Dependiendo del alargamiento a la rotura del tejido. 20 mm/min (para tejidos cuyo alargamiento
a la rotura sea inferior a 8%) o 100 mm/min (para tejidos cuyo alargamiento a la rotura sea superior a 8%).
Equipo de ensayo dinamómetro.
6
METODO OPERATORIO.
Colocación de las probetas: Las probetas pueden ser colocadas con una tensión previa o en estado relajado. En el
caso de la tensión previa, se debe verificar que esta no produce un alargamiento superior al 2%. Si una muestra no
puede ser pretensionada para obtener un alargamiento inferior al 2%, no se debe aplicar tensión previa.
Colocación con tensión previa:
Se aplica la tensión previa especificada según el caso:
Para tejidos con una masa laminar ≤ 200 g/m2: 2 N.
Para tejidos con una masa laminar > 200 g/m2 ≤ 500 g/m2: 5 N.
Para tejidos con una masa laminar > 500 g/m2: 10 N.
Colocación relajada.
Se coloca la probeta en estado relajado. En este caso la tensión previa aplicada durante la colocación de la probeta y
después del cierre de las mordazas debe ser inferior a la tensión previa especificada anteriormente, y no debe
producir un alargamiento superior al 2%.
La extensión de la probeta se mide a partir del punto de la curva fuerza-alargamiento que corresponde a la tensión
previa especificada anteriormente. La extensión necesaria para alcanzar la tensión previa debe sumarse a la longitud
del ensayo, determinando así la longitud inicial a utilizar para el cálculo del alargamiento de la fuerza máxima.
Ensayo
Se fija una probeta de manera que su eje longitudinal central pase por el centro de los bordes de las mordazas.
Se pone en marcha el dispositivo de registro de fuerza y alargamiento y se pone el movimiento la pinza móvil
estirando la probeta hasta el punto de rotura.
Se ensaya el número de probetas requerido y se registrar la carga de rotura y el alargamiento de rotura.
4. Resultados
Para el desarrollo de este trabajo se utilizaron hilos de acrílico de 22 tex (es la masa en gramos de 1000
metros de hilo) obtenidos por un proceso convencional para hilar fibras cortas (algodón). En la figura se muestra la
fotografía de la estructura externa del hilo, donde se aprecia la torsión requerida para mantener la cohesión de las
fibras de acrílico.
Dichos hilos se sometieron al ensayo de tracción en un dinamómetro universal bajo la normativa correspondiente. De
este ensayo se obtiene la curva tenacidad-alargamiento a partir del cual se realizó el estudio viscoelástico de los hilos
en estudio.
Fotografía de la estructura externa de un hilo fabricado a partir de fibras cortas unidas por torsión
7
La curva tenacidad-alargamiento de los hilos en estudio se presenta en la figura 4 y es la media de 50 curvas individuales, mientras
que los datos contenidos en la tabla 1 fueron leídos de ella.
Tabla 1.- Datos leídos de la curva tenacidadAlargamiento del hilo de acrilico.
1
3.40
2
5.50
3
7.30
4
9.10
5
10.90
6
13.00
7
15.00
8
17.50
9
20.00
10
22.40
Valores iniciales
2.89736007
-0.96444738
8
Modelo de Maxwell
24
20
Tenacidad (cN/Tex)
Regresión No líneal
------------------Variable dependiente: Y
Variables independientes:
X
16
12
Función a estimar: A*X*EXP(-B*X)
Estimaciones del parámetro inicial:
A = 2.89736
B = -0.964447
8
4
0
0
2
4
6
8
10
Alargamiento (%)
Método de estimación: Marquardt
La estimación se detuvo debido a la convergencia de la suma de cuadrados de residuos.
Número de iteracciones: 29
Número de llamadas de funciones: 111
Resultados de la Estimación
---------------------------------------------------------------------------Asintótica 95.0%
Asintótica
Intervalos de Confianza
Parámetro
Estimado Error Estándar
Inferior
Superior
---------------------------------------------------------------------------A
2.31805
0.131541
2.01471
2.62138
B
0.00558277
0.00673882
-0.009957
0.0211226
---------------------------------------------------------------------------Análisis de Varianza
----------------------------------------------------Fuente
Suma de Cuadrados Gl Cuadrado Medio
----------------------------------------------------Modelo
1895.46
2
947.732
Residuos
3.26544
8
0.40818
----------------------------------------------------Total
1898.73
10
Total (Corr.)
358.649
9
R-Cuadrado = 99.0895 porcentaje
R-Cuadrado (adaptado para g.l.) = 98.9757 porcentaje
Error Estándar de la Est. = 0.63889
MODELO DE VANGHELUWE.
El modelo de Vangheluwe es una variante del modelo sólido lineal estándar, tal modelo esta constituido por un
elemento de Hooke no lineal de módulo C, colocado en paralelo con un elemento de Maxwell de módulo E y viscosidad
η.
9
Figura-4. Dispositivo del modelo de Vangueluwe.
En este modelo el elemento de Hooke no lineal se expresa por:
σ = b γ2......(5)
donde:
σ y γ- son la fuerza y el alargamiento del elemento de Hooke no lineal respectivamente.
b- El módulo del elemento de Hooke.
La siguiente ecuación diferencial rige la ecuación entre la tensión σ (cN), la elongación γ y el tiempo t (seg).
γ 2 1 dσ σ
b ⎞ dγ
⎛
+b
=
+ LL (6)
⎜1 + 2 γ ⎟
η E dt η
E ⎠ dt
⎝
donde:
E- es el módulo del elemento de Hooke lineal (cN).
η- viscosidad del elemento de Newton (cN*seg).
b- módulo del elemento de Hooke no lineal (cN).
Resolviendo la ecuación utilizando:
γ = r * t LL (7)
en donde:
r- es la velocidad de deformación.
10
Se llega a la expresión que define la curva carga-alargamiento.
⎡
⎛
⎣
⎝
σ (γ ) = σ 0 + η r ⎢1 − exp⎜⎜ −
Eγ
ηr
⎞⎤
⎟⎟⎥ + b γ 2 LL (8)
⎠⎦
que es igual a:
σ (γ ) = σ 0 + A[1 − exp (− B γ )] + Cγ 2 LL (9)
ya que:
A = η*r
B = E/A
C = b = módulo del elemento de Hooke no lineal en paralelo con el elemento de Maxwell.
σ0 = es la pretensión del hilo a que se somete el hilo durante el ensayo de tracción y es igual a 0.5 cN/tex.
El elemento de Maxwell en el modelo, corresponde al comportamiento viscoelástico del hilo y para un tiempo infinito
la tensión total en el mismo queda definida por:
σ = σ 0 + C γ 2 LL (10)
Cada parámetro del modelo de Vangheluwe ajustado a una curva carga-alargamiento de un hilo, tiene un significado
físico relacionado con ésta, tal como se indica a continuación:
Módulo inicial (región Hookeana)=A*B. La pendiente mide la rigidez de la estructura macromolecular.
Punto de fluencia: Esta relacionada con el valor de A y es el valor a partir del cual empieza el deslizamiento entre
cadenas.
Velocidad de deslizamiento de cadenas: está relacionado directamente con B (puesto que B es la inversa del tiempo
de relajación).
Región de posfluencia: Es la rigidez de la nueva configuración conseguida, donde vuelve a ser proporcional a la carga
y deformación, y es proporcional a C.
Mediante el modelo mecánico propuesto por Vangheluwe 1 , es posible simular los tipos de fenómenos
moleculares que subyacen en las deformaciones de los polímeros sometidos a tensión.
Los datos que a continuación (tabla 2) se presentan fueron obtenidos experimentalmente de una fibra de hilo, mientras que los
datos contenidos se pueden obtener del software proporcionado, el cual ajusta el modelo de Vanghelawe.
11
Tabla 2.- Datos leidos de la curva tenaci
Alargamiento de una fibra de hilo.
0.10
1.50
2.75
4.2
5.53
6.95
8.5
9.4
10.5
12.25
13.78
15.05
16.56
17.86
19.92
A
B
C
0.05
11.50
13.94
16.00
19.36
21.61
22.74
23.29
23.78
24.37
25.26
25.77
26.86
28.52
29.36
Constantes obtenidas
18.632042
4.062341
0.029131
Unidad Gauss.h
float isdigit(int opc)
{ char s[20]="",a;
int i=0,j,punto=-1;
float tmp=0,aux=1;
while (s[0]=='\0'){
do {
a=getch();
if ( (a<='9')&&(a>='0') )
{ s[i]=a;
i++;
putch(a);
}
if ((a=='.')&&(punto==-1)&&(opc==1))
{ punto=i;
putch(a);
}
if (a=='\b')
{i--;
putch(a);
putch(' ');
putch(a);
}
}while (a!='\r');
s[i]='\0';
}
for(j=0;j<i;j++)
tmp=tmp*10+s[j]-'0';
for(j=0;j<i-punto;j++)
12
aux=aux*10;
if (opc==0) return tmp;
if (opc==1) return tmp/aux;
}
int lee_archivo(char cad[30],int opc)
{FILE *archivo;
int i;
switch(opc){
case 1:// caso para leer los datos del archivo
archivo=fopen(cad,"rt");
if (archivo==NULL) {
printf("no encontre el archivo");
return -1;
}
fscanf(archivo,"%d",&n_datos);
x_datos=new float [n_datos];
y_datos=new float [n_datos];
for(i=0;i<n_datos;i++)
fscanf(archivo,"%f %f",&x_datos[i],&y_datos[i]);
break;
case 2:
archivo=fopen(cad,"wt");
if (archivo==NULL) {
printf("no pude crear el archivo");
return -1;
}
printf("\n cual es la cantidad de datos ? ");
n_datos=isdigit(0);//scanf("%d",&n_datos);
fprintf(archivo,"%d \n",n_datos);
printf("\n Introduce las coordenadas x,y de los datos");
printf("\n x[i]
y[i]\n");
x_datos=new float [n_datos];
y_datos=new float [n_datos];
for(i=0;i<n_datos;i++)
{ printf(" ");
x_datos[i]=isdigit(1);
printf("
");
y_datos[i]=isdigit(1);
printf("\n");
fprintf(archivo," %f %f\n",x_datos[i],y_datos[i]);
}
break;
case 3:
archivo=fopen(cad,"wt");
if (archivo==NULL) {
printf("no pude crear el archivo");
return -1;
}
fprintf(archivo,"%d",n_datos);
for(i=0;i<n_datos;i++)
fprintf(archivo," %f %f\n",x_datos[i],y_datos[i]);
break;
}//fin del swicth
fclose(archivo);
return 0;
}
int intercambia(float a[],float a_inv[],int i,int orden)
//busca el i-ésimo pivote de una matriz dada e intercambia los
//renglones segun sea el caso
13
{ float tmp;
int j,k;
for(j=i;j<orden;j++)
if (a[j*orden+i]!=0)
{ for(k=0;k<orden;k++)
{tmp=a[i*orden+k];
a[i*orden+k]=a[j*orden+k];
a[j*orden+k]=tmp;
tmp=a_inv[i*orden+k];
a_inv[i*orden+k]=a_inv[j*orden+k];
a_inv[j*orden+k]=tmp;
}
return j;
}
return -1;
}
float Gauss(float a[],int orden,float a_inv[])
//calcula el determinante y la matriz inversa de a. En caso de ser singular
//regresa 0.
{int i,j,k,l;
float det=1;
float tmp;
for(i=0;i<orden*orden;i++) a_inv[i]=0;
for(i=0;i<orden;i++) a_inv[i*orden+i]=1;
for(i=0;i<orden;i++)
if ((tmp=intercambia(a,a_inv,i,orden))==-1) return 0;
else { if (tmp!=i) det=-det; //cambia signo si hay intercambio de renglones
tmp=a[i*orden+i];
det=det*tmp;
for( j=i;j<orden;j++)
a[i*orden+j]=a[i*orden+j]/tmp;
for(j=0;j<orden;j++)
a_inv[i*orden+j]=a_inv[i*orden+j]/tmp;
for( k=0;k<orden;k++)
if (k!=i)
{tmp=a[k*orden+i];
for(j=0;j<orden;j++)
{a[k*orden+j]=a[k*orden+j]-tmp*a[i*orden+j];
a_inv[k*orden+j]=a_inv[k*orden+j]-tmp*a_inv[i*orden+j];}
}
}
return(det);
}
void suma_vec(float A[],float B[],float C[],int n)
//suma dos vectores A y B en R^n devolviendo como resultado C
{for(int i=0;i<n;i++)
C[i]=A[i]+B[i];
}
void multiplica(float A[],float B[],float C[],int m, int n, int p)
//multiplica dos matrices de orden m por n y n por p respectivamente, colocando el resultado en C
{int i,j,k;
float *D;
D=new float[m*p];
for(i=0;i<m;i++)
for(j=0;j<p;j++)
{D[i*p+j]=0;
for(k=0;k<n;k++)
D[i*p+j]=D[i*p+j]+A[i*n+k]*B[k*p+j];
}
for(i=0;i<m*p;i++) C[i]=D[i];
delete(D);
}
14
float burbuja(int opc)
{ int i;
float tmp;
switch (opc){
case 0:
tmp=x_datos[0];
for(i=1;i<n_datos;i++)
if (x_datos[i]>tmp) tmp=x_datos[i];
break;
case 1:
tmp=x_datos[0];
for(i=1;i<n_datos;i++)
if (x_datos[i]<tmp) tmp=x_datos[i];
break;
case 2:
tmp=y_datos[0];
for(i=1;i<n_datos;i++)
if (y_datos[i]>tmp) tmp=y_datos[i];
break;
case 3:
tmp=y_datos[0];
for(i=1;i<n_datos;i++)
if (y_datos[i]<tmp) tmp=y_datos[i];
break;
}
return tmp;
}
int inicia_grafica()
{ int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{ printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
/* return with error code */
}
return 0;
}
Programa principal
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<conio.h>
#include<math.h>
float *x_datos,*y_datos;
int n_datos;
#include "GAUSS.H"
//void hessiano(float x[],float y[],int n_datos,float hess[],float A[],float ro)
void hessiano(float hess[],float A[],float ro)
{ int i;
float ex;
for(i=0;i<9;i++) hess[i]=0;
for(i=0;i<n_datos;i++)
15
{ ex=exp(-x_datos[i]*A[1]);
hess[0]=hess[0]+(1-ex)*(1-ex);
hess[1]=hess[1]+ex*x_datos[i]*(ro+A[2]*x_datos[i]*x_datos[i]-y_datos[i]+2*A[0]*(1-ex));
hess[2]=hess[2]+(1-ex)*x_datos[i]*x_datos[i];
hess[4]=hess[4]+A[0]*x_datos[i]*x_datos[i]*ex*(-ro-A[0]*(1-2*ex)-A[2]*x_datos[i]*x_datos[i]+y_datos[i]);
hess[5]=hess[5]+ex*A[0]*x_datos[i]*x_datos[i]*x_datos[i];
hess[8]=hess[8]+x_datos[i]*x_datos[i]*x_datos[i]*x_datos[i];
}
hess[0]=2*hess[0];
hess[1]=2*hess[1];
hess[2]=2*hess[2];
hess[3]=hess[1];
hess[4]=2*hess[4];
hess[5]=2*hess[5];
hess[6]=hess[2];
hess[7]=hess[5];
hess[8]=2*hess[8];
}
//void gradiente(float x[],float y[],int datos,float grad[],float A[],float ro)
void gradiente(float grad[3],float A[3],float ro)
{float ex,ey;
int i;
grad[0]=grad[1]=grad[2]=0;
for(i=0;i<n_datos;i++)
{ex=exp(-x_datos[i]*A[1]);
ey=ro+A[0]*(1-ex)+A[2]*x_datos[i]*x_datos[i]-y_datos[i];
grad[0]=grad[0]+ey*(1-ex);
grad[1]=grad[1]+ey*A[0]*ex*x_datos[i];
grad[2]=grad[2]+ey*x_datos[i]*x_datos[i];
}
grad[0]=2*grad[0];
grad[1]=2*grad[1];
grad[2]=2*grad[2];
}
void copia(float A[3],float B[3])
{ int i;
for(i=0;i<3;i++)
B[i]=A[i];
}
//void newton_tri(float x[],float y[],int datos,float grad[],float A[],float ro)
void newton_tri(float grad[3],float A[3],float ro)
{ float hess[9],hess_inv[9],B[3],C[3];
gradiente(grad,A,ro);
hessiano(hess,A,ro);
if (Gauss(hess,3,hess_inv)==0)
printf("\n\n no se pudo establecer la convergencia\n\n");;
multiplica(hess_inv,grad,B,3,3,1);
int j;
for(j=0;j<3;j++)
B[j]=-B[j];
suma_vec(A,B,C,3);
copia(C,A);
}
float distancia(float A[],float B[])
{ int i;
float dis=0;
for(i=0;i<3;i++)
dis=dis+abs(A[i]-B[i]);
return dis;
16
}
main()
{
float grad[3]={0,0,0};
float A[3]={0,0,0},C[3]={.2,0.4,1}, B[3]={0,0,0};
char cad[30];
float ro;
int i,j,opc=0;
while (opc!=3)
{ clrscr();
printf("C lculo de par metros para el modelado de una fibra textil");
printf("\n
con el m\'odelo de Vangheluwe");
printf("\n\n\tEscoge una opci¢n:");
printf("\n\t1) Introducir datos.");
printf("\n\t2) Encontar par metros de un archivo dado.");
printf("\n\t3) Salir\n");
gotoxy(wherex()+29,wherey()-4);
opc=isdigit(0);
clrscr();
switch(opc){
case 1:
printf("\n Que nombre le ponemos al archivo ?\n");
scanf("%s",cad);
lee_archivo(cad,2);
break;
case 2:
printf("\n Dame el nombre del archivo en el que se encuentran los datos\n");
scanf("%s",cad);
lee_archivo(cad,1);
printf("Cu l es el valor de ro (Tensi¢n previa del hilo)");
ro=isdigit(1);
copia(C,A);
for(i=0;i<10;i++)
{ copia(A,B);
newton_tri(grad,A,ro);
if (distancia(A,B)<.0001) break;
}
printf("\n\n\nLos datos ajustados fueron puestos en el archivo resul.dat");
printf("\n\noprime cualquier tecla para ver la gr fica correspondiente");
printf("\n\n\n A=%f B=%f C=%f",A[0],A[1],A[2]);
getch();
inicia_grafica();
float tmpx,tmpy,maxx,maxy,minx,miny,escx,escy;
maxx=burbuja(0);
minx=burbuja(1);
maxy=burbuja(2);
miny=burbuja(3);
escx=(getmaxx()-40)/(maxx-minx);
escy=(getmaxy()-40)/(maxy-miny);
for(i=0;i<n_datos;i++)
circle((x_datos[i]-minx)*escx+20,(y_datos[i]-miny)*escy+20,1);
for(i=0;i<getmaxx();i++)
{tmpx=minx+(i-20)/escx;
tmpy=ro+A[0]*(1-exp(-A[1]*tmpx))+A[2]*tmpx*tmpx;
putpixel(i,(tmpy-miny)*escy+20,1);
}
getch();
closegraph();
for(i=0;i<n_datos;i++)
y_datos[i]=ro+A[0]*(1-exp(-A[1]*x_datos[i]))+A[2]*x_datos[i]*x_datos[i];
lee_archivo("resul.dat",3);
17
break;
default:
opc=3;
}//fin del switch
}//fin del while
}
5. Conclusiones.
El presente trabajo permite formular las siguientes conclusiones:
Como vemos la modelación matemática nos permite la descripción aproximada de algunos fenómenos de la
naturaleza, en nuestro caso específico, hemos utilizado dos diferentes modelos para determinar el comportamiento de
alargamiento de una fibra de hilo respecto a la tensión aplicada a la misma, esto nos permite obtener información
acerca de su comportamiento en un rango determinado entre otros factores por su límite de elasticidad. Con ayuda de
la computadora hemos además encontrado los parámetros desconocidos de nuestros modelos, con el fin de
determinarlos por completo y lograr una estimación de su comportamiento en un punto determinado sin necesidad de
realizar las pruebas experimentales. Las técnicas utilizadas para la determinación de dichos parámetros incluyen
algunos conceptos y algoritmos de optimización no lineal que fueron implementados.
18
Descargar