You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.4 MiB
1.4 MiB
None
<html lang="en">
<head>
</head>
</html>
In [1]:
from pathlib import Path
import sys
import matplotlib.pyplot as plt
import numpy as np
PROJECT_ROOT = Path.cwd().parent
sys.path.insert(0, str(PROJECT_ROOT))
print("Project Root:", PROJECT_ROOT)
from src.visualizacion import (plot_xy, comparar_rondas, comparar_experimentos,
plot_3D, plot_color_map, plot_dual_axis,
plot_con_ajuste, marcar_zonas, sombrear_zonas)
from src.analysis import (calcular_pendiente, calcular_r2, derivada_numerica,
segunda_derivada, variación_resistencia,
comparar_pendientes, zonas_manual, detectar_zonas_auto,)
from src.data_loader import (apply_filter, load_all)
DATA_DIR = PROJECT_ROOT / "data"
data = load_all(DATA_DIR)
print("Uploaded Data:", len(data))
Gráficas Generales de ambos experimentos¶
In [2]:
# Comparacion de Velec vs Ielec en ambos experimentos
comparar_experimentos(data, ronda=1, x_col="Voltaje Electrodos (V)",
y_col="Corriente Electrodos (A)")
comparar_experimentos(data, ronda=2, x_col="Voltaje Electrodos (V)",
y_col="Corriente Electrodos (A)")
# Definicion de zonas de operacion ronda 1
zonas = [0.9692, 1.8713, 3.7383, 5.4]
fig, ax = comparar_experimentos(data, ronda=1, x_col="Voltaje Electrodos (V)",
y_col="Corriente Electrodos (A)")
marcar_zonas(ax=ax, limites=zonas,
labels=[
"No Conducción",
"Conducción",
"Generación",
"Saturación"
])
fig1, ax1 = comparar_experimentos(data, ronda=1, x_col="Voltaje Electrodos (V)",
y_col="Corriente Electrodos (A)")
marcar_zonas(ax=ax1, limites=zonas,
labels=[
"No Conducción",
"Conducción",
"Generación",
"Saturación"
])
sombrear_zonas(ax=ax1, limites=zonas)
#Definicion de zonas de operacion ronda 2
fig2, ax2 = comparar_experimentos(data, ronda=2, x_col="Voltaje Electrodos (V)",
y_col="Corriente Electrodos (A)")
marcar_zonas(ax=ax2, limites=zonas,
labels=[
"No Conducción",
"Conducción",
"Generación",
"Saturación"
])
fig3, ax3 = comparar_experimentos(data, ronda=2, x_col="Voltaje Electrodos (V)",
y_col="Corriente Electrodos (A)")
marcar_zonas(ax=ax3, limites=zonas,
labels=[
"No Conducción",
"Conducción",
"Generación",
"Saturación"
])
sombrear_zonas(ax=ax3, limites=zonas)
plt.show()
In [3]:
st = 10
end = 19
x = "Voltaje Electrodos (V)"
y = "Resistencia"
comparar_experimentos(data, ronda=1, x_col=x, y_col=y,
filter_fn= lambda df: apply_filter(df, row_start=st, row_end=end),
title="Ronda 1 - Comparación Resistencia en Zona de Conducción"
)
st = 20
end = 45
comparar_experimentos(data, ronda=1, x_col=x, y_col=y,
filter_fn= lambda df: apply_filter(df, row_start=st, row_end=end),
title="Ronda 1 - Comparación Resistencia en Zona de Generación"
)
st = 46
end = 66
comparar_experimentos(data, ronda=1, x_col=x, y_col=y,
filter_fn= lambda df: apply_filter(df, row_start=st, row_end=end),
title="Ronda 1 - Comparación Resistencia en Zona de Saturación"
)
Out[3]:
Conducción vs Saturación - Ronda 2¶
In [4]:
st = 10
end = 19
x = "Voltaje Electrodos (V)"
y = "Resistencia"
comparar_experimentos(data, ronda=2, x_col=x, y_col=y,
filter_fn= lambda df: apply_filter(df, row_start=st, row_end=end),
title="Ronda 2 - Comparación Resistencia en Zona de Conducción"
)
st = 20
end = 45
comparar_experimentos(data, ronda=2, x_col=x, y_col=y,
filter_fn= lambda df: apply_filter(df, row_start=st, row_end=end),
title="Ronda 2 - Comparación Resistencia en Zona de Generación"
)
st = 46
end = 60
comparar_experimentos(data, ronda=2, x_col=x, y_col=y,
filter_fn= lambda df: apply_filter(df, row_start=st, row_end=end),
title="Ronda 2 - Comparación Resistencia en Zona de Saturación"
)
comparar_rondas(data, experimento=1, x_col=x, y_col=y,
filter_fn= lambda df: apply_filter(df, row_start=st, row_end=end),
title="Experimento 1 - Comparativa de Resistencia de las Rondas 1 y 2 en Zona de Saturación")
comparar_rondas(data, experimento=2, x_col=x, y_col=y,
filter_fn= lambda df: apply_filter(df, row_start=st, row_end=end),
title="Experimento 2 - Comparativa de Resistencia de las Rondas 1 y 2 en Zona de Saturación")
comparar_rondas(data, experimento=3, x_col=x, y_col=y,
filter_fn= lambda df: apply_filter(df, row_start=st, row_end=end),
title="Experimento 3 - Comparativa de Resistencia de las Rondas 1 y 2 en Zona de Saturación")
comparar_rondas(data, experimento=4, x_col=x, y_col=y,
filter_fn= lambda df: apply_filter(df, row_start=st, row_end=end),
title="Experimento 4 - Comparativa de Resistencia de las Rondas 1 y 2 en Zona de Saturación")
Out[4]:
Resistencia vs Temperatura¶
Se realiza un analisis de la resistencia contra la temperatura de las respectivas rondas y solo de los experimentos 1 y 4. Esto en las zonas que comprende la conduccion y la saturación.
In [7]:
st = 20
end = 66
rnd1_1 = apply_filter(data[(1,1)], row_start=20, row_end=end)
rnd1_4 = apply_filter(data[(1,4)], row_start=st, row_end=end)
x = "Voltaje Electrodos (V)"
y = "Resistencia"
y1 = "Temperatura"
zonas = [3.7383, 5.4]
fig, ax1, ax2 = plot_dual_axis(rnd1_1, x_col=x, y1_col=y, y2_col=y1,
title= "Ronda 1 - Experimento 1 : Resistencia y Temperatura vs Voltaje Electrodos",)
marcar_zonas(ax=ax1, limites=zonas,
labels=[
"Generación",
"Saturación"
])
sombrear_zonas(ax=ax1, limites=zonas, colores=["blue", "green", "red"])
fig, ax3, ax4 = plot_dual_axis(rnd1_4, x_col=x, y1_col=y, y2_col=y1,
title= "Ronda 1 - Experimento 4 : Resistencia y Temperatura vs Voltaje Electrodos",)
marcar_zonas(ax=ax3, limites=zonas,
labels=[
"Generación",
"Saturación"
])
sombrear_zonas(ax=ax3, limites=zonas, colores=["blue", "green", "red"])
In [8]:
st = 20
end = 60
rnd1_1 = apply_filter(data[(2,1)], row_start=st, row_end=end)
rnd1_4 = apply_filter(data[(2,4)], row_start=st, row_end=end)
x = "Voltaje Electrodos (V)"
y = "Resistencia"
y1 = "Temperatura"
zonas = [3.7383, 5.4]
fig, ax1, ax2 = plot_dual_axis(rnd1_1, x_col=x, y1_col=y, y2_col=y1,
title= "Ronda 2 - Experimento 1 : Resistencia y Temperatura vs Voltaje Electrodos",)
marcar_zonas(ax=ax1, limites=zonas,
labels=[
"Generación",
"Saturación"
])
sombrear_zonas(ax=ax1, limites=zonas, colores=["blue", "green", "red"])
fig, ax3, ax4 = plot_dual_axis(rnd1_4, x_col=x, y1_col=y, y2_col=y1,
title= "Ronda 2 - Experimento 4 : Resistencia y Temperatura vs Voltaje Electrodos",)
marcar_zonas(ax=ax3, limites=zonas,
labels=[
"Generación",
"Saturación"
])
sombrear_zonas(ax=ax3, limites=zonas, colores=["blue", "green", "red"])
In [15]:
exp1 = data[1,1]
exp2 = data[1,2]
x = "Voltaje Electrodos (V)"
y = "Corriente Electrodos (A)"
r = "Resistencia"
t = "Temperatura"
# Definicion de zonas de operacion ronda 1
zonas = [0.9692, 1.8713, 3.7383, 5.4]
fig1, ax1 = comparar_experimentos(data, ronda=1, x_col=x, y_col=y, experimentos=(1,2), title="No")
marcar_zonas(ax=ax1, limites=zonas,
labels=[
"No Conducción",
"Conducción",
"Generación",
"Saturación"
])
sombrear_zonas(ax=ax1, limites=zonas)
plt.show()
comparar_experimentos(data, ronda=1, x_col=x, y_col=r,
filter_fn= lambda df: apply_filter(df, row_start=46, row_end=66),
experimentos=(1,2),title="No")
exp1 = apply_filter(data[1,1], row_start=20, row_end=66)
exp2 = apply_filter(data[1,2], row_start=20, row_end=66)
fig, ax = plt.subplots(1, 2, figsize=(12,5))
_, ax1, ax1b = plot_dual_axis(df=exp1, x_col=x, y1_col=r, y2_col=t, ax=ax[0], title="(a)")
marcar_zonas(ax=ax[0], limites=[3.7383, 5.4],
labels=[
"Generación",
"Saturación"
])
sombrear_zonas(ax=ax[0], limites=[3.7383, 5.4], colores=["blue","red"])
_, ax2, ax2b = plot_dual_axis(df=exp2, x_col=x, y1_col=r, y2_col=t, ax=ax[1], title="(b)")
marcar_zonas(ax=ax[1], limites=[3.7383, 5.4],
labels=[
"Generación",
"Saturación"
])
sombrear_zonas(ax=ax[1], limites=[3.7383, 5.4], colores=["blue","red"])
ax1.set_ylim(0, 45)
ax2.set_ylim(0, 45)
ax1b.set_ylim(20, 60)
ax2b.set_ylim(20, 60)
plt.tight_layout()
plt.show()