Opti Tarea

También podría gustarte

Está en la página 1de 19

Universidad Nacional Mayor de San Marcos

TAREA 6

1. Mediante la data del artículo Optimización-secadores-solares.pdf construir las


gráficas mostradas.

Para realizar la primera gráfica utilizamos la ecuación 25 de la velocidad del aire


dentro del colector:

ρa


2 gH ( −1)
ρo
u=
L
1+ K +f T
Dh
Además, LT =LC + LS + H es la longitud total de perdida por fricción en el secador.
Donde fijaremos los valores de LC =2.0 m y LS =4.0 m .
Para la variación de y (altura de la cubierta) se tomaron diversos valores; desde 1 a
50 cm.
La relación entre Dh (diámetro hidráulico) y la altura de la cubierta se da en la
ecuación 5:
2 wy
D h=
w+y
Se llevaron las fórmulas mencionadas al programa Excel y se realizó la simulación
para LDPE y vidrio.

1
Universidad Nacional Mayor de San Marcos

Velocidad vs y
1.00
0.90
0.80
0.70
0.60
Velocidad

0.50 LDPE
0.40 Vidrio
0.30
0.20
0.10
0.00
1 10 100

y(cm)

Después de obtener la relación entre la velocidad del aire dentro del colector y la
altura de la cubierta, se procedió a realizar la simulación de la eficiencia del colector
para diferentes valores de y (altura de la cubierta).

La ecuación 31 nos da la eficiencia del colector solar:

mc p (T o−T a)
η=
I Ac

Asimismo, se mantuvieron los valores de LC =2.0 m y LS =4.0 m .

Posteriormente se fijan los valores y se varía y (altura de la cubierta) desde 1 a 50


cm. Luego se procedió a realizar la gráfica en Excel para las cubiertas de LPDE y
vidrio.

2
Universidad Nacional Mayor de San Marcos

Eficiencia vs y
60

Eficiencia del colector


50 Las
40

30 LDPE
Vidrio
20

10

0
1 10 100

y(cm)

graficas obtenidas muestras un comportamiento similar al presentado en el artículo


“Optimización de secadores solares”. Asimismo, se observa que se obtuvieron
mejores resultados al usar como material el vidrio, debido a que la velocidad y
eficiencia del colector fueron mayores respecto a cuando el material es LDPE.

Para la grafica de velocidad, se observa que cuando la altura de la cubierta está por
encima de 9 cm, la velocidad del aire dentro del colector disminuye
considerablemente. Por otro lado, para la gráfica de eficiencia del colector frente a la
altura de la cubierta, se observa que ambos presentan una mayor eficiencia cuando
“y” es 8 cm y 9 cm para el vidrio y LDPE respectivamente.

2. De acuerdo con el archivo CALCULO VARIACIONAL.pdf, codificar en


SCILAB y MAXIMA los dos ejemplos de aplicación.

3
Universidad Nacional Mayor de San Marcos

Ejemplo 1. APARTADO 1:

4
Universidad Nacional Mayor de San Marcos

A) CODIFICACION EN SCILAB:

Datos de 6 escenarios reales:

5
Universidad Nacional Mayor de San Marcos

CODIFICACION EN SCILAB:

Código con comentarios y procedimiento:


//EJEMPLO 1 OPTIMIZACION EN IQ 2021
clc
funcprot(0)
//definicion de la EstructuraTubular
//tiene como entradas t1, t2, L y alfa
//devuelve como salidas t3, t4 y V
function [t3, t4, V]=EstructuraTubular(t1, t2, L, alfa)
t4=t2/(2*cos(alfa))
t3=1/5*(L-4*t1+(-4)*t2*(1+1/(2*cos(alfa))))
V=1/5*(L-4*t1-4*t2*(1+1/(2*cos(alfa))))*t2*(t1+1/4*t2*tan(alfa))
//aqui se da el valor de 0 a t3 y t4 si son negativos
if t3>0 then t3
else t3=0
end
if V>0 then V
else V=0
end
endfunction

//En esta parte cergamos y presentamos las entradas de la matrz de depuracion


EncabezadoEntradas=[" t1 ",' t2 ',' L ',' alfa ']
Entradas=[5, 20, 180, 15;5 5 180 15; 10 10 150 15; 10 10 150 20; 10 10 180 20; 10 25 180 20]
//alternativamente podemos alimentar las entradas de un fichero externo

6
Universidad Nacional Mayor de San Marcos

// para elo hay que guardar ell fichero de texto t2.txt en el directorio de trabajo
//y transformar en codigo ejecutable las tres siguientes lineas eliminando de comentario
//a1=file('open', 't2.txt','old')
//entradas=read(a1,6,4)
//file('close',a1)
disp("ACTIVIDAD 2.1")
disp(" ")
disp('Las entradas que utilizaremos para la depuracion son')
disp(EncabezadoEntradas)
disp(Entradas)

//En esta parte calcularemos y presentamos las salidas


EncabezadoSalidas=[" t3 ",' t4',' V ']
Salidas=zeros(6,3)
//A traves de un bucle, vamos asiganado la matriz creada
//Los valores t3, t4 y V para las entradas de cada una de los escenarios
for i= 1:6
[t3,t4,V]=EstructuraTubular(Entradas(i,1),Entradas(i,2),Entradas(i,3),Entradas(i,4)*%pi/180)
Salidas(i,1)=t3
Salidas(i,2)=t4
Salidas(i,3)=V
end
//Mostramos la matriz depurada y comprobamos que coinciden con la plantilla del enunciado
disp(' que corresponden con las aalidas')
disp(EncabezadoSalidas)
disp(Salidas)
disp("")

Prueba de escritorio:

7
Universidad Nacional Mayor de San Marcos

En Scilab no es posible la concatenación de matrices, y tampoco se ha podido encontrar una


manera de hacer coexistir en la misma matriz datos de distinto tipo.

Ahora de procederá a escribir el código de salida que se agregará al código anterior con la
interacción del usuario:

Prueba de escritorio para valores de 10, 25, 180 y 20 para t1, t2, t3 y alfa
respectivamente.

CODIGO DE OPTIMIZACION:

8
Universidad Nacional Mayor de San Marcos

9
Universidad Nacional Mayor de San Marcos

PRUEBA DE ESCRITORIO:

RESULTADOS FINALES:

CODIFICACION EN MAXIMA:

Cabe mencionar que se espera que haya una concatenación de matrices y que, si
puedan coexistir en la misma matriz datos del mismo tipo, por ejemplo, contener datos de tipo
string-escenarios, t1, t2... y numérico- los valores de los parámetros para cada escenario:

10
Universidad Nacional Mayor de San Marcos

11
Universidad Nacional Mayor de San Marcos

SALIDAS:

12
Universidad Nacional Mayor de San Marcos

EJEMPLO 2: TIEMPO DE VACEADO DE UN CILINDRO:

13
Universidad Nacional Mayor de San Marcos

CODIFICACION EN SCILAB:

14
Universidad Nacional Mayor de San Marcos

15
Universidad Nacional Mayor de San Marcos

//Cálculo Variacional
//Ejemplo de aplicación 2

funcprot(0)
clc

// 1. DETERMINACIÓN h(0)

//Se determina h(0), es decir las condiciones iniciales del problema de valor
//inicial que queremos resolver por dos vías:

//Método 1-Bisección

//Método 1-Definición del algoritmo


//El algoritmo de la bisección es una transcripción del código
//Para el método de la bisección de la asignatura HIM
//Con una mejora para presentación de resultados en forma
//matricial, según código de Guillermo García

function x2=biseccion(f, a, b, niteraciones, precision)


n=0,x0=a,x1=b
while n<niteraciones & abs(x1-x0)>precision
n=n+1
x2=(x0+x1)/2
tabla(n,1)=n
tabla(n,2)=x0
tabla(n,3)=x1
tabla(n,4)=(b-a)/(2^n)
x=x0
f0=evstr(f)
x=x2
f2=evstr(f)
if f2==0 then
disp("Tras"), disp(n), disp("iteraciones"), disp("la solución exacta es")
disp(x2)
return
elseif f2*f0<0 then
x1=x2
else
x0=x2
end

end
disp("ALGORITMO BISECCIÓN")
if n==niteraciones then
disp("No alcanzamos la solución con la precisión deseada, la aproximación es")
else
disp("Tras"), disp(n), disp("iteraciones"),
disp("la solución encontrada con precisión"),
disp(precision), disp(" es"),
end
disp(x2);
disp('Iteraciones ak bk Error')
disp(tabla);
endfunction

//Método 1- Se utiliza el algoritmo de la bisección para calcular las raíces


//de la ecuación cúbica que resulta de igualar el volumen inicial del tanque

16
Universidad Nacional Mayor de San Marcos

//(40) con el volumen del tanque en función de la altura


biseccion('3.14*3*x^2-3.14*x^3/3-40',0,6,50,0.01);

//Método 2- Se determinan las raíces a través de la orden roots de Scilab


p=poly([-40,0,%pi*3,-%pi/3],"x","coeff");
roots(p)
disp("ROOTS")
disp("Las raices de la ecuación -40+%pi*3*x^2-%pi/3x^3 con la orden roots son")
disp(roots(p))

// 2 RESOLUCIÓN DEL PROBLEMA DEL VALOR INICIAL

// Se resuelve el problema de valor inicial dh/dt=f(t,h(t) con h(0) el valor


//obtenido anteriormente por dos métodos:
//Para ello, definimos previamente el algoritmo tal como se muestra a continuación.
//Para ello, definimos previamente el algoritmo tal como muestra a continuación.
//Este algoritmo se ha adaptado de un video de internet modificado ligeramente
//la notación (x por t), y favoreciendo la presentación de resultado a través de una tabla

function [t, y]=euler(f, t0, y0, h, n)


t(1)=t0
y(1)=y0
for i=1:n
t(i+1)=t(i)+h;

y(i+1)=y(i)+h*f(t(i), y(i))
tabla(i,1)=t(i+1)
tabla(i,3)=y(i+1)
tabla(i,2)=t(i+1)/60
end
disp("EVOLUCIÓN TEMPORAL ALTURA DEL TANQUE")
disp(" t(seg) t(min) h(t)")
disp(tabla)
endfunction

//Aquí definimos f(t,y), tal como ha resultado de la manipulación de la ley de


//variación del volumen del enunciado
function h=f(t, y)
C=0.55;A=%pi*0.03^2;g=9.8;R=3
h=-C*A/%pi*sqrt(2*g*y)/(2*y*R-y^2)
endfunction

//Finalmente aplicamos el algoritmo de Euler a la h(t)=f(t,h(t)) anteriormente definida.


//Se ha escogido pasos de 60 en 60 segundos, es decir cada minuto, hasta los 100 minutos
//Esta parametrización es el resultado de varias depuraciones del código que han
//Dado finalmente con el dominio de definición de h(t) (domh=0<t<88))
//La condición inicial h(0)=2.41 resulta de los resultados del apartado anterior
[t,y]=euler(f,0,2.41,60,87);

//Graficamos los resultados, transformando las unidades temporales a minutos,


//para una lectura más cómoda de la gráfica
plot(t/60, y, 'red');

xgrid();

//Método 2- Utilizando la función de Scilab


//Los saltos se hacen de 60 en 60 segundos. tras varias depuraciones con este
//código se ha obtenido que para valores de t=5160 seg,
//es decir a los 86 minutos del comienzo del vaciado, el tanque está casi vacío.
//Si extendieramos el t más allá de estos 86 minutos, la función devuelve error

17
Universidad Nacional Mayor de San Marcos

//ya que en ese caso h(t)=0 y f(t,h(t)) no estaría definida


// pues el denominador se anula.
t0=0;y0=2.41;t=0:60:5160;
yt=ode(y0,t0,t,f)
plot2d(t/60,yt)

//Maquillamos la gráfica
legend("Método Euler","Algoritmo Scilab");
xtitle("h(t) vs t","t(minutos)","h(t) en m");

RESULTADOS DE LA PRUEBA DE ESCRITORIO:

Tras 10 iteraciones el resultado encontrado con precisión es 2.408.

18
Universidad Nacional Mayor de San Marcos

Grafica en Scilab:

Comparativa entre ambos métodos (Método Euler y función ODE)

CONCLUSIONES:

- Con respecto a los 2 ejercicios se puede deducir que el vaciado del depósito se
produce aproximadamente a los 87 minutos desde la situación inicial, lo cual tiene
sentido considerando los volúmenes y características.
- El comando ODE de Scilab ofrece parámetros que permiten variaciones en el método
de resolución de la ecuación diferencial.
- La utilización de estos softwares libres muestra la sencillez de los cálculos numéricos y
en los gráficos comparativos. Hay software que no se adecuan al método, pero otros si
lo hacen.

19

También podría gustarte