Diferencia entre revisiones de «Modelos de mezclas (grupo 5)»
| Línea 46: | Línea 46: | ||
=== Método de Euler === | === Método de Euler === | ||
| + | |||
| + | Se utilizan los siguientes códigos:: | ||
| + | |||
| + | '''Sin plan de limpieza:''' | ||
| + | {{matlab|codigo= | ||
| + | clear all | ||
| + | |||
| + | N=100000; %número de iteraciones | ||
| + | t0=0;tN=325; %tiempo inicial y final | ||
| + | h=(tN-t0)/N; %paso: espacio entre dos iteraciones | ||
| + | x0=[20 0]'; %condiciones iniciales | ||
| + | A=[-0.03 0;0.03 -0.045]; | ||
| + | x=x0; | ||
| + | xA(1)=x(1); | ||
| + | xB(1)=x(2); | ||
| + | |||
| + | for n=1:N | ||
| + | x=x+h*A*x; | ||
| + | xA(n+1)=x(1); | ||
| + | xB(n+1)=x(2); | ||
| + | end | ||
| + | y=t0:h:tN; | ||
| + | |||
| + | %dibujamos la gráfica | ||
| + | hold on | ||
| + | plot(y,xA,'b') %contaminante en pantano A: azul | ||
| + | plot(y,xB,'r') %contaminante en pantano B: rojo | ||
| + | title('Sin plan de limpieza') | ||
| + | xlabel('Tiempo (días)') | ||
| + | ylabel('Contaminante (T)') | ||
| + | hold off | ||
| + | }} | ||
| + | |||
| + | '''Con plan de limpieza:''' | ||
| + | {{matlab|codigo= | ||
| + | clear all | ||
| + | |||
| + | N=100000; %número de iteraciones | ||
| + | t0=0;tN=325; %tiempo inicial y final | ||
| + | h=(tN-t0)/N; %paso: espacio entre dos iteraciones | ||
| + | x0=[20 0]'; %condiciones iniciales | ||
| + | B=[-0.04 0.01;0.04 -0.055]; | ||
| + | X=x0; | ||
| + | Xa(1)=X(1); | ||
| + | Xb(1)=X(2); | ||
| + | |||
| + | for n=1:N | ||
| + | X=X+h*B*X; | ||
| + | Xa(n+1)=X(1); | ||
| + | Xb(n+1)=X(2); | ||
| + | end | ||
| + | y=t0:h:tN; | ||
| + | |||
| + | %dibujamos la gráfica | ||
| + | hold on | ||
| + | plot(y,Xa,'g') %contaminante en pantano A: verde | ||
| + | plot(y,Xb,'m') %contaminante en pantano B: magenta | ||
| + | title('Con plan de limpieza') | ||
| + | xlabel('Tiempo (días)') | ||
| + | ylabel('Contaminante (T)') | ||
| + | hold off | ||
| + | }} | ||
| + | |||
| + | Si queremos ver la diferencia de tiempo que tarda en desaparecer la mitad de contaminante en el pantano A activando el plan de limpieza o sin activarlo no tenemos más que observar las gráficas. | ||
Revisión del 19:40 3 mar 2013
Contenido
1 Introducción
Tenemos dos pantanos A y B, con 100 [math]Hm^3[/math] de agua cada uno, que están unidos por una presa que deja pasar agua de A a B. El pantano A recibe 3 [math]Hm^3/día[/math] de agua limpia proveniente de ríos y el B 1.5 [math]Hm^3/día[/math]. Para mantener el nivel de los pantanos estable la presa de A a B deja pasar una media de 3 [math]Hm^3/día[/math] mientras que la presa al final de B desaloja 4.5 [math]Hm^3/día[/math]. Se produce un vertido tóxico en el pantano A que deja 20 toneladas de un cierto contaminante. Supongamos que se dan las siguientes hipótesis::
- El contaminante está disuelto de forma homogénea en el agua de los pantanos.
- Al entrar o salir agua en un pantano, esta se mezcla con el agua del pantano de forma inmediata creando una mezcla homogénea.
- La variación de contaminante en un lago es la diferencia entre el contaminante que entra y sale en el lago, es decir si denotamos por [math] x_A (t) [/math] la cantidad de contaminante en el lago A, se tiene:: [math] \frac{dx_A}{dt} = velocidad de entrada – velocidad de salida[/math]
2 Planteamiento
2.1 Sin plan de limpieza
Sean [math] x_A [/math] y [math] x_B [/math] las cantidades de contaminante en cada uno de los lagos, la cantidad de contaminante en un instante de tiempo determinado se obtiene como diferencia entre la velocidad de entrada y salida de agua contaminada. En el lago A sólo entra agua limpia mientras que la velocidad de salida se obtiene como el producto de la concentración de contaminante en el lago A [math] \frac{X_A}{100} [/math] por el caudal de agua que sale 3 [math]^3/día [/math]. Así mismo, en el lago B la velocidad de entrada de agua contaminada es la misma que la velocidad de salida de agua contaminada del lago A, ya que el lago A vierte el agua contaminada en B, y la velocidad de salida del agua de B es el producto de su concentración [math] \frac{X_B}{100} [/math] por el caudal de agua que sale 4.5 [math] Hm^3/día [/math].
Para modelizar el problema, se plantea el siguiente sistema dos ecuaciones diferenciales de primer orden:
[math] \left\{\begin{matrix}\frac{\mathrm{d}X_A}{\mathrm{d} t}=-\frac{3X_A}{100}\\\frac{\mathrm{d} X_B}{\mathrm{d} t}=\frac{3X_A}{100}-\frac{4.5X_B}{100}\\X_A(t_{0})=20, \quad X_B(t_{0})=0\end{matrix}\right. [/math]
2.2 Con plan de limpieza
A continuación se propone activar un plan de limpieza basado en bombear 1[math] Hm^3/día [/math] de agua del pantano B al A, por lo que para mantener el volumen de agua entre los lagos constante se tiene que modificar el flujo entre ambos.
De este modo, si al lago A le llegan 3[math]Hm^3/día[/math] provenientes de los ríos y 1[math]Hm^3/día[/math] proveniente de B, el lago A deberá verter a B 4[math]Hm^3/día [/math] en lugar de los '3 [math] Hm^3/día [/math] que estaba vertiendo antes de activar el plan de limpieza. El lago B recibe 1.5 [math] Hm^3/día [/math] provenientes de los ríos y, como se ha visto, 4 [math] Hm^3/día [/math] provenientes del lago A. Tras activar el plan de limpieza bombea 1 [math] Hm^3/día [/math] a A, por lo que el vertido que desaloja B aguas abajo se mantendrá constante igual a 4.5 [math] Hm^3/día [/math] para mantener el volumen de agua.
Así se plantea un sistema de ecuaciones diferenciales similar al anterior::
[math]
\left\{\begin{matrix}\frac{\mathrm{d}X_A}{\mathrm{d}t}=-\frac{4X_A}{100}+\frac{1X_B}{100}\\\frac{\mathrm{d}X_B}{\mathrm{d} t}=\frac{4X_A}{100}-\frac{5.5X_B}{100}\\X_A(t_{0})=20, \quad X_B(t_{0})=0\end{matrix}\right.
[/math]
2.3 Unión de un tercer pantano
Si hubiese un tercer pantano, al que se le llamará C, unido al anterior que desalojase 6 [math]Hm^3/día [/math] y recibiese 1.5 [math]Hm^3/día [/math], la velocidad de entrada de agua sería igual a la de salida de B, es decir, 4.5 [math] Hm^3/día [/math] ,mientras que la de salida serían estos 4.5 [math]Hm^3/día [/math] más 1.5 [math] Hm^3/día [/math] provenientes de los ríos, dando lugar a los 6 [math]Hm^3/día [/math] para que se mantenga constante el volumen. Así, el sistema de ecuaciones diferenciales quedará de la siguiente forma::
[math] \left\{\begin{matrix}\frac{\mathrm{d}X_A}{\mathrm{d}t}=\frac{-3X_A}{100}\\\frac{\mathrm{d}X_B}{\mathrm{d} t}=\frac{3X_A}{100}-\frac{4.5X_B}{100}\\\frac{\mathrm{d}X_C}{\mathrm{d} t}=\frac{4.5X_B}{100}-\frac{6X_C}{100}\\X_A(t_{0})=20, \quad X_B(t_{0})=0\end{matrix}\right. [/math]
3 Resolución numérica
A partir de este momento nos olvidamos del pantano C. Para resolver estos sistemas se utilizará un programade análisis numérico (en este caso Matlab®).
3.1 Método de Euler
Se utilizan los siguientes códigos::
Sin plan de limpieza:
clear all
N=100000; %número de iteraciones
t0=0;tN=325; %tiempo inicial y final
h=(tN-t0)/N; %paso: espacio entre dos iteraciones
x0=[20 0]'; %condiciones iniciales
A=[-0.03 0;0.03 -0.045];
x=x0;
xA(1)=x(1);
xB(1)=x(2);
for n=1:N
x=x+h*A*x;
xA(n+1)=x(1);
xB(n+1)=x(2);
end
y=t0:h:tN;
%dibujamos la gráfica
hold on
plot(y,xA,'b') %contaminante en pantano A: azul
plot(y,xB,'r') %contaminante en pantano B: rojo
title('Sin plan de limpieza')
xlabel('Tiempo (días)')
ylabel('Contaminante (T)')
hold off
Con plan de limpieza:
clear all
N=100000; %número de iteraciones
t0=0;tN=325; %tiempo inicial y final
h=(tN-t0)/N; %paso: espacio entre dos iteraciones
x0=[20 0]'; %condiciones iniciales
B=[-0.04 0.01;0.04 -0.055];
X=x0;
Xa(1)=X(1);
Xb(1)=X(2);
for n=1:N
X=X+h*B*X;
Xa(n+1)=X(1);
Xb(n+1)=X(2);
end
y=t0:h:tN;
%dibujamos la gráfica
hold on
plot(y,Xa,'g') %contaminante en pantano A: verde
plot(y,Xb,'m') %contaminante en pantano B: magenta
title('Con plan de limpieza')
xlabel('Tiempo (días)')
ylabel('Contaminante (T)')
hold off
Si queremos ver la diferencia de tiempo que tarda en desaparecer la mitad de contaminante en el pantano A activando el plan de limpieza o sin activarlo no tenemos más que observar las gráficas.