Está en la página 1de 8

Control de Procesos

Tarea:
Solución de EDO del cambio de concentración respecto al
tiempo dentro de un CSTR

Autor:
Mario Alberto Lugo Valadez

Catedrático: Dr. Héctor Hernández Escoto

Fecha de entrega: 31 de agosto del 2023


Código en Python:

import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
import pandas as pd

# Función que define la ecuación diferencial


def model1(Ca, t):
dCadt = -4 * Ca +1
return dCadt

def model2(Ca, t):


dCadt = -2 * Ca + 1
return dCadt

def model3(Ca, t):


dCadt = -1 * Ca+1
return dCadt

# Condiciones iniciales
initial_conditions = [0, 0.3, 0.5, 0.7, 1]

# Rango de tiempo
t = np.linspace(0, 10, 100)

# Resolver la ecuación diferencial para cada condición inicial y modelo


solutions_model1 = [odeint(model1, ic, t) for ic in initial_conditions]
solutions_model2 = [odeint(model2, ic, t) for ic in initial_conditions]
solutions_model3 = [odeint(model3, ic, t) for ic in initial_conditions]

# Crear DataFrames para tabular los valores


df_model1 = pd.DataFrame(data=np.column_stack((t,) + tuple(solutions_model1)),
columns=['Tiempo'] + [f'Ca(0) = {ic}' for ic in initial_conditions])

2 de diciembre de 2022 1
df_model2 = pd.DataFrame(data=np.column_stack((t,) + tuple(solutions_model2)),
columns=['Tiempo'] + [f'Ca(0) = {ic}' for ic in initial_conditions])

df_model3 = pd.DataFrame(data=np.column_stack((t,) + tuple(solutions_model3)),


columns=['Tiempo'] + [f'Ca(0) = {ic}' for ic in initial_conditions])

# Mostrar las tablas de valores


print("Modelo 1:")
print(df_model1)

print("Modelo 2:")
print(df_model2)

print("Modelo 3:")
print(df_model3)

# Graficar las soluciones para cada modelo


for i, ic in enumerate(initial_conditions):
plt.plot(t, solutions_model1[i], label=f'Ca(0) = {ic} (Modelo 1)')

plt.xlabel('Tiempo')
plt.ylabel('Concentración de Ca')
plt.legend()
plt.title('Soluciones de dCa/dt = -4Ca +1')
plt.show()

for i, ic in enumerate(initial_conditions):
plt.plot(t, solutions_model2[i], label=f'Ca(0) = {ic} (Modelo 2)')

plt.xlabel('Tiempo')
plt.ylabel('Concentración de Ca')
plt.legend()
plt.title('Soluciones de dCa/dt = -2Ca + 1')
plt.show()

2 de diciembre de 2022 2
for i, ic in enumerate(initial_conditions):
plt.plot(t, solutions_model3[i], label=f'Ca(0) = {ic} (Modelo 3)')

plt.xlabel('Tiempo')
plt.ylabel('Concentración de Ca')
plt.legend()
plt.title('Soluciones de dCa/dt = -1 * Ca+1')
plt.show()

Gráficas

2 de diciembre de 2022 3
Soluciones tabuladas
Para Modelo 1
Modelo 1:
Tiempo Ca(0) = 0 Ca(0) = 0.3 Ca(0) = 0.5 Ca(0) = 0.7 Ca(0) = 1
0 0.000000 0.000000 0.300000 0.500000 0.700000 1.000000
1 0.416667 0.202781 0.259444 0.297219 0.334994 0.391657
2 0.833333 0.241082 0.251784 0.258918 0.266053 0.276755
3 1.250000 0.248316 0.250337 0.251684 0.253032 0.255053
4 1.666667 0.249682 0.250064 0.250318 0.250573 0.250954
5 2.083333 0.249940 0.250012 0.250060 0.250108 0.250180
6 2.500000 0.249989 0.250002 0.250011 0.250020 0.250034
7 2.916667 0.249998 0.250000 0.250002 0.250004 0.250006
8 3.333333 0.250000 0.250000 0.250000 0.250001 0.250001
9 3.750000 0.250000 0.250000 0.250000 0.250000 0.250000
10 4.166667 0.250000 0.250000 0.250000 0.250000 0.250000
11 4.583333 0.250000 0.250000 0.250000 0.250000 0.250000

2 de diciembre de 2022 4
12 5.000000 0.250000 0.250000 0.250000 0.250000 0.250000
13 5.416667 0.250000 0.250000 0.250000 0.250000 0.250000
14 5.833333 0.250000 0.250000 0.250000 0.250000 0.250000
15 6.250000 0.250000 0.250000 0.250000 0.250000 0.250000
16 6.666667 0.250000 0.250000 0.250000 0.250000 0.250000
17 7.083333 0.250000 0.250000 0.250000 0.250000 0.250000
18 7.500000 0.250000 0.250000 0.250000 0.250000 0.250000
19 7.916667 0.250000 0.250000 0.250000 0.250000 0.250000
20 8.333333 0.250000 0.250000 0.250000 0.250000 0.250000
21 8.750000 0.250000 0.250000 0.250000 0.250000 0.250000
22 9.166667 0.250000 0.250000 0.250000 0.250000 0.250000
23 9.583333 0.250000 0.250000 0.250000 0.250000 0.250000
24 10.000000 0.250000 0.250000 0.250000 0.250000 0.250000

Modelo 2:
Tiempo Ca(0) = 0 Ca(0) = 0.3 Ca(0) = 0.5 Ca(0) = 0.7 Ca(0) = 1
0 0.000000 0.000000 0.300000 0.5 0.700000 1.000000
1 0.416667 0.282701 0.413080 0.5 0.586920 0.717299
2 0.833333 0.405562 0.462225 0.5 0.537775 0.594438
3 1.250000 0.458958 0.483583 0.5 0.516417 0.541042
4 1.666667 0.482163 0.492865 0.5 0.507135 0.517837
5 2.083333 0.492248 0.496899 0.5 0.503101 0.507752
6 2.500000 0.496631 0.498652 0.5 0.501348 0.503369
7 2.916667 0.498536 0.499414 0.5 0.500586 0.501464
8 3.333333 0.499364 0.499745 0.5 0.500255 0.500636
9 3.750000 0.499723 0.499889 0.5 0.500111 0.500277
10 4.166667 0.499880 0.499952 0.5 0.500048 0.500120
11 4.583333 0.499948 0.499979 0.5 0.500021 0.500052
12 5.000000 0.499977 0.499991 0.5 0.500009 0.500023
13 5.416667 0.499990 0.499996 0.5 0.500004 0.500010
14 5.833333 0.499996 0.499998 0.5 0.500002 0.500004
15 6.250000 0.499998 0.499999 0.5 0.500001 0.500002
16 6.666667 0.499999 0.500000 0.5 0.500000 0.500001

2 de diciembre de 2022 5
17 7.083333 0.500000 0.500000 0.5 0.500000 0.500000
18 7.500000 0.500000 0.500000 0.5 0.500000 0.500000
19 7.916667 0.500000 0.500000 0.5 0.500000 0.500000
20 8.333333 0.500000 0.500000 0.5 0.500000 0.500000
21 8.750000 0.500000 0.500000 0.5 0.500000 0.500000
22 9.166667 0.500000 0.500000 0.5 0.500000 0.500000
23 9.583333 0.500000 0.500000 0.5 0.500000 0.500000
24 10.000000 0.500000 0.500000 0.5 0.500000 0.500000

Modelo 3:
Tiempo Ca(0) = 0 Ca(0) = 0.3 Ca(0) = 0.5 Ca(0) = 0.7 Ca(0) = 1
0 0.000000 0.000000 0.300000 0.500000 0.700000 1.0
1 0.416667 0.340759 0.538532 0.670380 0.802228 1.0
2 0.833333 0.565402 0.695781 0.782701 0.869621 1.0
3 1.250000 0.713495 0.799447 0.856748 0.914049 1.0
4 1.666667 0.811124 0.867787 0.905562 0.943337 1.0
5 2.083333 0.875486 0.912840 0.937743 0.962646 1.0
6 2.500000 0.917915 0.942541 0.958958 0.975375 1.0
7 2.916667 0.945886 0.962120 0.972943 0.983766 1.0
8 3.333333 0.964326 0.975028 0.982163 0.989298 1.0
9 3.750000 0.976482 0.983538 0.988241 0.992945 1.0
10 4.166667 0.984496 0.989147 0.992248 0.995349 1.0
11 4.583333 0.989779 0.992845 0.994890 0.996934 1.0
12 5.000000 0.993262 0.995283 0.996631 0.997979 1.0
13 5.416667 0.995558 0.996891 0.997779 0.998667 1.0
14 5.833333 0.997072 0.997950 0.998536 0.999122 1.0
15 6.250000 0.998070 0.998649 0.999035 0.999421 1.0
16 6.666667 0.998727 0.999109 0.999364 0.999618 1.0
17 7.083333 0.999161 0.999413 0.999581 0.999748 1.0
18 7.500000 0.999447 0.999613 0.999723 0.999834 1.0
19 7.916667 0.999635 0.999745 0.999818 0.999891 1.0
20 8.333333 0.999760 0.999832 0.999880 0.999928 1.0
21 8.750000 0.999842 0.999889 0.999921 0.999952 1.0

2 de diciembre de 2022 6
22 9.166667 0.999896 0.999927 0.999948 0.999969 1.0
23 9.583333 0.999931 0.999952 0.999966 0.999979 1.0
24 10.000000 0.999955 0.999968 0.999977 0.999986 1.0

2 de diciembre de 2022 7

También podría gustarte