E-book

Capítulo 2

Uso de IA para diseñar y desplegar algoritmos integrados


Cuando se emplea un enfoque tradicional para desarrollar algoritmos, se crea un programa que procesa una entrada que genera la salida deseada. En ocasiones, las ecuaciones son demasiado complejas para derivarlas de principios básicos, conllevan una carga computacional demasiado alta para desplegarlas, o son demasiado costosas o imposibles de llevar a la practica físicamente.

En esos casos, la opción puede ser crear un modelo de IA. Los algoritmos de IA integrados pueden emplearse para:

  • Sistemas de control
  • Mantenimiento predictivo
  • Sistema avanzado de asistencia al conductor (SAAC)
  • Planificación de rutas
  • Procesamiento del lenguaje natural
  • Procesamiento de señales
  • Sensores virtuales
  • Detección de objetos
partición

Creación de un sensor virtual basado en IA: ejemplo de estimación del estado de carga de una batería

En la actualidad, encontramos baterías de iones de litio en muchas aplicaciones: desde dispositivos electrónicos wearable, teléfonos móviles y equipos portátiles, hasta vehículos eléctricos y redes inteligentes. Los sistemas de gestión de baterías (BMS) garantizan un funcionamiento seguro y eficiente de estas baterías. Una tarea clave de BMS es estimar el estado de carga (SOC).

Por diversas razones, no es físicamente posible crear un sensor que se pueda desplegar para medir el SOC directamente. Este es un reto común para muchos sistemas de varios sectores, no solo de baterías.

En muchas aplicaciones, los sensores son:

  • Imprecisos
  • Costosos
  • Lentos
  • Ruidosos
  • Frágiles
  • Poco fiables
  • Físicamente inviables

En lugar de un sensor físico, se puede crear un sensor virtual.

Gráfico que muestra una correspondencia estrecha entre los datos recopilados de un motor y la salida de un sensor virtual basado en IA.

Emisiones de un motor real comparadas con la salida de un sensor virtual basado en IA que estima las emisiones de NOX. (Imagen cortesía de Renault)

Una posible opción es estimar el SOC utilizando un filtro de Kalman extendido (EKF). Un EKF puede ser extremadamente preciso, pero requiere un modelo matemático no lineal de una batería, que no siempre está disponible o no es factible crear. Además, un filtro de Kalman puede resultar costoso en carga computacional y, si un estado inicial o del modelo no es correcto, puede producir resultados imprecisos.

Una alternativa es desarrollar un sensor virtual utilizando IA. IA puede generalizar mejor que un filtro de Kalman y proporcionar resultados precisos si se entrena con los datos adecuados.

Modelo de IA de estado de carga (SOC) que toma datos de tensión, corriente y temperatura, y estima el nivel de carga.

Para crear un sensor virtual basado en IA, necesitará datos con que entrenar el modelo de IA. Con datos de lecturas de la batería en un entorno controlado en el laboratorio, puede calcular con precisión los valores de SOC mediante la integración de las corrientes, una técnica denominada conteo de culombios.

Es simple y económico en carga computacional. Sin embargo, no es una buena opción utilizarlo en un BMS para estimar el SOC. Este método puede ser propenso a errores si no se realiza en un entorno de laboratorio, donde la corriente se puede medir con precisión. No obstante, es una forma eficaz de obtener los datos necesarios para desarrollar un sensor virtual sólido.

Una vez que haya recopilado los datos de entrada/salida obtenidos con precisión, puede utilizar ese conjunto de datos para entrenar un modelo de sensor virtual basado en IA que se puede desplegar como parte del sistema de gestión de baterías.

Existen tres opciones para crear e integrar un modelo de IA en Simulink:

1. Realizar el entrenamiento en el marco de Machine Learning de MATLAB.

2. Importar un modelo desde TensorFlow o PyTorch.

3. Realizar el entrenamiento en el marco de Deep Learning de MATLAB.

La ventaja de un modelo de IA es que se entrena directamente con datos medidos. Los datos de entrenamiento capturan la compleja relación entre el estado de carga y sus entradas, tales como corriente, tensión, temperatura y el promedio móvil de corriente y temperatura, lo que incorpora inteligencia al modelo.

Como resultado, el modelo de IA podría ser más rápido y preciso que un modelo matemático basado en principios básicos.

Después de invertir en crear un conjunto de datos de entrenamiento de alta calidad, puede utilizar MATLAB® u otras herramientas para crear varios modelos de IA con diferentes técnicas de Machine Learning o Deep Learning. Puede identificar cuál de los modelos funciona mejor integrándolos en Simulink y evaluándolos lado a lado.

Acerca de la obtención de datos

Recopilar datos de entrenamiento de buena calidad es una tarea complicada. Los conjuntos de datos disponibles públicamente han impulsado la investigación en el campo de IA. Sirviéndose de los mismos conjuntos de datos, profesionales de investigación pueden realizar fácilmente comparaciones y análisis basados en puntos de referencias de diferentes técnicas de IA. Los conjuntos y modelos de datos compartidos facilitan la capacidad de reproducción y generan confianza en IA.

No obstante, en la industria, los datos a menudo provienen de conjuntos de datos cuidadosamente seleccionados, a veces generados por bancos de pruebas especializados del mundo real o simulaciones complejas de alta fidelidad basadas en principios básicos. Estos experimentos pueden resultar costosos y requerir mucho tiempo, pero el valor de un modelo de IA bien entrenado puede compensar la inversión inicial. Los profesionales de ingeniería con conocimiento especializado pueden agregar valor durante la creación de modelos de IA mediante el diseño de experimentos que produzcan datos de entrenamiento de alta calidad.

partición

Simulación y pruebas de un sensor virtual basado en IA

Una vez que haya entrenado los modelos de IA, puede integrarlos en Simulink y probarlos. Con Simulink, puede identificar qué modelo de IA tiene el mejor rendimiento y determinar si supera a otras alternativas, tales como el enfoque de EKF no basado en IA. Como se ha señalado antes, el filtro de Kalman requiere contar con un modelo de batería interno, que puede no estar disponible.

Este ejemplo incluye un EKF y tres modelos de IA, todos entrenados con los mismos datos, pero utilizando diferentes enfoques de IA:

  • Árbol de regresión fina: Enfoque de Machine Learning que crea un árbol de valores de indicador cada vez más específicos que se utilizan para interpretar los datos de entrada. Un árbol de regresión fina tiene muchas hojas pequeñas, para proporcionar una función de respuesta altamente flexible.
  • Red prealimentada (DL-FFN): Sistema adaptativo de Deep Learning que aprende mediante el uso de nodos interconectados que agrupan o clasifican las entradas. Durante la inferencia, la información se traslada hacia adelante a través de la red, nunca hacia atrás.
  • Red de memoria de corto-largo plazo (DL-LSTM): Sistema adaptativo de Deep Learning con nodos interconectados que utiliza feedback a través de la red para procesar no solo entradas individuales, sino secuencias de entrada interrelacionadas.
 Cuatro bloques en Simulink que reciben las mismas entradas y producen diferentes salidas para su comparación.

Integre los modelos de sensor virtual (EKF, ML, DL-FFN y DL-LSTM) en Simulink para comparar su rendimiento. Los modelos toman datos de tensión, corriente y temperatura, y estiman el estado de carga de la batería.

Para evaluar los modelos, ejecute comparaciones lado a lado simultáneamente en Simulink. Visualice y mida la precisión, y ajuste las salidas de cada modelo a un conjunto de datos de validación. Con esta información, puede determinar si los modelos cumplen con los requisitos de precisión antes de desplegarlos en el hardware del sistema.

Gráfico de Simulink con salidas de los cuatro modelos de sensor virtual. Las líneas se superponen, pero la línea correspondiente a las salidas del modelo EKF es la que más se desvía. La línea de las salidas de ML también se desvía de las otras.

Represente los resultados de los cuatro modelos de sensor virtual en un mismo gráfico con Simulink para identificar las diferencias de precisión.

También puede utilizar los modelos de IA junto con otros algoritmos para realizar una simulación en el nivel de sistema. Por ejemplo, puede ejecutar un modelo de IA como parte de una simulación general del sistema que incluya el subsistema BMS trabajando junto con otros subsistemas, tales como el motor o la transmisión. También puede probar y perfeccionar los modelos y otros componentes integrados para garantizar su interoperabilidad y que cumplen los requisitos en el nivel de sistema.

Esquema de un sistema de gestión de baterías en Simulink que muestra entradas y salidas que interconectan tres bloques: State_Machine, SOC_Estimation y Balancing_Logic.

Utilice las librerías de bloques de Statistics and Machine Learning Toolbox™ y Deep Learning Toolbox para llevar los modelos de IA del bloque SOC_Estimation a Simulink y realizar pruebas en el nivel de sistema.

partición

Despliegue de un modelo de IA integrado

El siguiente paso consiste en probar el modelo de IA en el hardware en el que se desplegará finalmente. Durante este paso, puede realizar una evaluación del rendimiento del modelo en el mundo real.

Utilice las herramientas de generación de código de MATLAB y Simulink para generar código C/C++ independiente de librerías para redes de Deep Learning o modelos de Machine Learning. Despliegue el código en el procesador para probar su funcionamiento como parte de una prueba de processor-in-the-loop (PIL) en la que el procesador está interconectado con la planta simulada (desarrollada con componentes de Simscape™ y Simscape Electrical™), que en este caso es la dinámica de baterías simulada.

Diagrama de un modelo de IA transformado en código, desplegado en un chip y probado en un entorno de pruebas simulado.

Genere código para el modelo de IA y despliéguelo en el procesador para realizar pruebas de processor-in-the-loop.

Después de superar la prueba de PIL, el modelo está listo para su despliegue en el hardware de producción. El hardware ejecutará el sistema de gestión de baterías en el vehículo.

Diagrama del proceso de un modelo de IA transformado en código, desplegado en un chip y probado en un vehículo.

Genere código para el modelo de IA y despliéguelo en hardware para probarlo en un vehículo.

partición

Evaluación del rendimiento

Las pruebas de PIL revelan tradeoffs de rendimiento que serán relevantes para el sistema del mundo real. Por ejemplo, si bien el modelo de árbol de regresión fina agrega interpretabilidad que puede ayudar a resolver problemas, es posible que su tamaño y precisión queden fuera del ámbito de los requisitos del proyecto. En ese caso, una red prealimentada puede ser una mejor opción.

Otros atributos relevantes son:

  • Velocidad de interferencia, que es el tiempo que tarda el modelo de IA en calcular una predicción
  • Velocidad de entrenamiento, que es el tiempo que se tarda en entrenar el modelo de IA con los datos de entrenamiento
  • Preprocesamiento, ya que ciertos modelos requieren calcular características adicionales, tales como promedios móviles, para obtener información predictiva sobre el pasado
Tabla de tradeoffs de rendimiento, con cuatro columnas por modelo, que compara velocidad de entrenamiento, interpretabilidad, velocidad de inferencia, tamaño de modelo y precisión. Por ejemplo, el modelo de DL-LSTM tiene una velocidad de inferencia lenta, un tamaño de modelo grande y una alta precisión.

Comparación de atributos importantes para diferentes técnicas de modelado de sensores virtuales. DL-FFN proporciona una velocidad de inferencia rápida y una alta precisión, pero requiere preprocesamiento, su entrenamiento tarda más y no es interpretable.

partición

Compresión de un modelo de IA

La compresión de modelos es un tradeoff que requiere análisis, conocimiento, iteración y optimización. Sin embargo, es sumamente necesaria para profesionales de ingeniería de software integrado dado que, en algunos casos, la superficie de memoria de un modelo de IA excede las limitaciones de memoria del hardware.

Se están buscando formas de reducir las superficies de memoria de los modelos con técnicas de recorte, cuantificación y conversión de punto fijo.

Un método novedoso para reducir el tamaño de un modelo en Deep Learning Toolbox™ comprime una red de Deep Learning utilizando proyección. Esta técnica permite explorar tradeoffs entre tamaño de modelo, velocidad de inferencia y precisión. En este ejemplo, no hubo una pérdida significativa de precisión. La compresión con capas proyectadas redujo la superficie de memoria en un 91% y duplicó la velocidad de inferencia.

Tabla que compara un modelo de DL-LSTM no comprimido con otro comprimido. El modelo comprimido tiene una velocidad de inferencia mayor y un tamaño mucho más pequeño que el modelo no comprimido, pero no ha perdido precisión.

La compresión puede transformar un modelo extremadamente preciso, pero grande y lento, en un modelo más pequeño que funciona mucho más rápido sin perder precisión.

partición

Revisión del BMS de un vehículo eléctrico diseñado por un cliente

Gotion, una empresa de tecnología de almacenamiento de energía de próxima generación, deseaba crear un modelo de red neuronal para estimar el estado de carga durante la carga de vehículos eléctricos. El modelo debía tener un margen de precisión del 3% y una superficie de memoria lo suficientemente pequeña como para que su despliegue en producción fuese factible. Además, el modelo tenía que verificarse en una prueba a bordo de un vehículo.

Con Deep Learning Toolbox y un enfoque low code, el equipo de trabajo entrenó una red neuronal con datos históricos de carga de pilas. Emplearon un flujo de trabajo iterativo para simular, mejorar y validar el modelo. Con Simulink, integraron y probaron el modelo con el resto del sistema. Con Simulink Test™, validaron que el modelo cumplía con los requisitos de precisión durante la simulación.

Cuando quedaron satisfechos con el rendimiento del modelo, generaron automáticamente código para pruebas de HIL y pruebas a bordo de un vehículo.

El equipo de ingeniería destacó estas ventajas clave del uso de MATLAB y Simulink:

  • Integración de IA en el flujo de trabajo de verificación y validación existente con Requirements Toolbox, Deep Learning Toolbox, Simulink, Embedded Coder y Simulink Test
  • Rendimiento de todo el flujo de trabajo, desde la captura de requisitos hasta el desarrollo del modelo, la integración en el sistema, el despliegue del modelo y el hardware de producción
  • Confianza a través de simulación y pruebas de HIL en que el modelo cumpliría con los requisitos de precisión antes de desplegarlo
  • Código generado automáticamente desde la red neuronal con una superficie de memoria pequeña (<2 KB de ROM, <100 B de RAM)
Cuatro gráficos muestran que el estado de carga objetivo y el estado de carga estimado son similares en diferentes condiciones, tales como tensión, corriente y temperatura cambiantes.

Simulink Test permite realizar pruebas de precisión en el nivel de sistema en diversas condiciones, incluidas condiciones difíciles de simular en pruebas del mundo real, tales como pruebas en temperaturas extremadamente bajas.

Ponga a prueba sus conocimientos