Resumen:
|
[ES] El objetivo principal de este proyecto es implementar un algoritmo de control restringido para la carga rápida y segura de celdas de baterías de iones de litio en un dispositivo de baja potencia computacional. Para ...[+]
[ES] El objetivo principal de este proyecto es implementar un algoritmo de control restringido para la carga rápida y segura de celdas de baterías de iones de litio en un dispositivo de baja potencia computacional. Para ello, este proyecto migra el algoritmo MPC propuesto por el Dr. Goldar (2021) de código Matlab a Python y simula su rendimiento en una Raspberry Pi 3B+. Además, este trabajo ilustra cómo habilitar la comunicación CAN en una RPi. La metodología de este estudio está ilustrada por sus objetivos . Primero, hay una revisión de la literatura que resume la evolución de la tecnología de baterías de iones de litio y los protocolos de carga estandarizados. Después de eso, hay una descripción profunda de la estrategia de optimización MPC diseñada por el Dr. Goldar (2021). A continuación, este trabajo detalla todo el hardware y software necesario y explica sus principales ventajas. Antes de la migración de código, las expresiones de Matlab necesitan transformaciones matemáticas para cumplir con los requisitos de la biblioteca de Python ¿scipy.optimize¿. El siguiente paso es traducir el script Matlab creado originalmente por el Dr. Goldar a código Python y simularlo tanto en un ordenador como en una RPi. Finalmente, este proyecto compara los resultados y desarrolla un guión básico para permitir la comunicación CAN en RPis. El programa Python descrito en esta tesis logra ejecutar con éxito el algoritmo MPC. Los resultados son ligeramente diferentes a los obtenidos al ejecutar el algoritmo en Matlab. El programa Python simulado en el RPi alcanza corrientes de carga iniciales más bajas (-4,84 C) que Matlab (-6,39 C). En consecuencia, el tiempo de descarga-carga del experimento es alrededor de un 7% más alto. Además, el RPi necesita alrededor de 0.1582 segundos en promedio y hasta 0.3247 segundos para completar una iteración del algoritmo de optimización, mientras que las optimizaciones de Matlab solo duran 0.0566 segundos en promedio. Sin embargo, al simular el script de Python en el ordenador, los resultados son ligeramente mejores, usando 0.0933 en promedio para completar una optimización.
En conclusión, si bien los resultados obtenidos al simular el programa Python en el RPi son algo peores que los de las simulaciones de Matlab, este proyecto logra implementar un algoritmo MPC en un dispositivo de baja potencia computacional con un tiempo de iteración menor a 1 segundo. Esta restricción está impuesta por el tiempo de muestreo de la comunicación CAN. Además, esta tesis ilustra cómo habilitar la comunicación CAN en un RPi utilizando código Python y un dispositivo llamado PiCAN2.
[-]
[EN] The main goal of this project is to implement a constrained-control algorithm for the safe and fast charge of Li-ion battery cells in a low-computational-power device. To do that, this project migrates the MPC algorithm ...[+]
[EN] The main goal of this project is to implement a constrained-control algorithm for the safe and fast charge of Li-ion battery cells in a low-computational-power device. To do that, this project migrates the MPC algorithm proposed by Dr. Goldar (2021) from Matlab code to Python and simulates its performance on a Raspberry Pi 3B+. Furthermore, this thesis illustrates how to enable CAN communication capabilities on an RPi. The methodology of this thesis is illustrated by its hierarchical objectives. First, there is a literature review that summarizes the evolution of the li-ion battery technology and the standardized charging protocols. After that, there is a deep description of the MPC optimization strategy designed by Dr. Goldar (2021). Then, this work details all the necessary hardware and software and explains their main advantages. Before the code migration, Matlab expressions need some mathematical transformation to fulfil ¿scipy.optimize¿ Python library requirements. The next step is to translate the Matlab script originally created by Dr. Goldar to Python code and to simulate it in both a computer and a RPi. Finally, this project compares the results and develops a basic script to enable CAN communication on RPis. The Python program described in this thesis achieves to execute the MPC algorithm successfully. The results are slightly different from those obtained when running the algorithm in Matlab. Python program simulated in the RPi reaches lower initial charging currents (-4.84 C) than Matlab (-6.39C). Consequently, the discharging-charging time of the experiment is around 7% higher. In addition, the RPi needs around 0.1582 seconds on average, and up to 0.3247 seconds to complete an iteration of the optimization algorithm, while Matlab optimizations only last 0.0566 seconds on average. However, when simulating the Python script on the computer, the results are slightly better, using 0.0933s on average to complete an optimization.
Concluding, although the obtained results when simulating the Python program on the RPi are slightly worse than those of Matlab simulations, this project achieves to implement an MPC algorithm in a low-computational-power device with an optimization iteration time of less than 1 second. This restriction is imposed by the CAN communication sample time. In addition, this thesis illustrates how to enable CAN communication an RPi using Python code and a PiCAN2 add-on board.
[-]
|