import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb
%matplotlib inline

cd Datos/

dia4 = pd.read_csv('BMSlog_2014-11-17_09-10-57.csv', index_col=0)

dia4 = dia4.convert_objects(convert_numeric=True)

"""
Explanation: Análisis Temperatura de Controladores de baterías y baterías
End of explanation
"""


dia4.columns

"""
Explanation: A continuación se muestran los nombres de las columnas
End of explanation
"""


dia4[[' 12637_T0',' 12418_T0',' 12414_T0']].plot()

"""
Explanation: La caja de baterías pequeña, es la que va desde el voltaje 0V hasta 62.9V nominal y posee un arreglo de 17 packs en serie.
A continuación se muestran las temperaturas de los controladores dentro de la caja. (colocar diagrama)
End of explanation
"""


dia4[[' 12637_T1',' 12418_T1',' 12414_T1']].plot()

"""
Explanation: Se observa que existen datos perdidos aproximadamente entre el dato 24000 y el dato 27000 (corroborar con más detalle)
El controlador 12637 se calienta mucho más que los otros dos, ese controlador se encuentra encima de las últimas líneas del pack, cerca del borne y además el ventilador se ubica al otro extremo de la caja
Se produce una variación típica entre los controladores, es decir siguen el mismo patrón y la temperatura aumenta a medida que se descargan las baterías.
Que sigan un mismo patron puede implicar que la temperatura es notablemente diferente sólo por las condiciones de ventilación diferentes.

A continuación se grafican las temperaturas de los termistores que están distribuidos dentro de la caja y que representan la temperatura de las baterías
End of explanation
"""


dia4[[' 12614_T0',' 12610_T0',' 12396_T0']].plot()

"""
Explanation: La temperatura de las baterías en esta caja se mantiene bastante uniforme, excepto en dos intervalos, que la temperatura del sector derecho, cerca del borne positivo del pack, aumenta drásticamente.

La caja de baterías grande, posee un arreglo de 21 baterías en serie, y tres controladores de baterías, cada uno monitorizando 7 packs paralelos. A continuación se muestran las temperaturas de esta caja:
End of explanation
"""


dia4[[' 12614_T1',' 12610_T1',' 12396_T1']].plot()

"""
Explanation: En esta caja la disposición es similar, el ventilador está ubicado en un extremo y al otro están en alineados los 3 controladores, el controlador 12396 está más cerca del ventilador, y mantiene una temperatura menor.
Según la posición alejada del controlador 12614 se podría presuponer que sería el con más temperatura de la caja, sin embargo fue el otro, ubicado entremedio.
Se observa un patron similar en todas las temperaturas, por lo que podemos suponer que ventilando mejor se lograría bajar la temperatura de estos a un nivel aceptable, independiente del estado de ecualización de las baterías. (Se debe corroborar después analizando otras variables)

A continuación se grafica los valores de los sensores colocados entremedio del pack de baterías de la caja 2:
End of explanation
"""


dia4[[' 12637_T0',' 12418_T0',' 12414_T0']].mean()

"""
Explanation: Se puede observar que la temperatura de las baterías se mantiene estables, sin embargo, a llega un punto en que el nivel de carga del arreglo de 7 en serie del extremo cercano al borne, se calienta drásticamente (teoría es que el voltaje de las baterías bajó mucho durante ese intervalo, aumentando la temperatura y disminuyendo la resistencia progresivamente.
Esto no pasó con el resto de baterías.

A continuación se calculan los promedios de temperatura de los controladores de la primera caja
End of explanation
"""


dia4[[' 12614_T0',' 12610_T0',' 12396_T0']].mean()

"""
Explanation: Y aquí se calcula el promedio de temperatura de los controladores de la segunda caja
End of explanation
"""


dia4[[' 12637_T1',' 12418_T1',' 12414_T1']].mean()

dia4[[' 12614_T1',' 12610_T1',' 12396_T1']].mean()

"""
Explanation: La temperatura de los controladores se mantuvo relativamente baja, y el hecho que un controlador promedie 35ºC puede significar que basta con una buena ventilación por flujo de aire o ventilador extractor para mantenerlo en una temperatura segura, y que podría permitir exigir más el pack completo.

Aquí calcularemos el promedio de temperatura de las baterías
End of explanation
"""


dia4[[' 12637_T0',' 12418_T0',' 12414_T0']].max()

"""
Explanation: La caja dos promedio temperaturas más altas, lo que puede asociarse a mayor superficie y mayor cantidad de baterías generadoras de calor, 4 pack serie de 8 baterías en paralelo, es decir 32 baterías más que la caja 1.

A continuación se calcularán lo máximos absolutos de la caja 1 en controladores:
End of explanation
"""


dia4[[' 12614_T0',' 12610_T0',' 12396_T0']].max()

"""
Explanation: y en controladores de la caja 2:
End of explanation
"""


dia4[[' 12637_T1',' 12418_T1',' 12414_T1']].max()

dia4[[' 12614_T1',' 12610_T1',' 12396_T1']].max()

"""
Explanation: El máximo absoluto de los controladores fue 52º C

Ahora calcularemos el máximo absoluto en las baterías en la caja 1:
End of explanation
"""


dia4[[' 12637_T0',' 12418_T0',' 12414_T0',' 12396_T0',' 12610_T0', ' 12614_T0']].plot()

"""
Explanation: Se observa que el máximo de temperatura fue de 80ºC, lo que es una temperatura peligrosa, debido a que el rango de temperatura nominal en descarga es entre 20º y 60ºC, lo que se corrobora con el gráfico, debido que al pasar esa temperatura límite del rango recomendado, empezó a calentarse drásticamente ese sector del pack.

Resumen en gráficos
* Controladores
End of explanation
"""


dia4[[' 12637_T1',' 12418_T1',' 12414_T1',' 12396_T1',' 12610_T1', ' 12614_T1']].plot()

"""
Explanation: Baterías
End of explanation
"""


