Base de Arquitectura - MauricioCa07/Comunidades_Energeticas_Predicciones GitHub Wiki
1. Alcance
Descripción del Sistema:
El sistema se enfocará en la creación de modelos de machine learning para la predicción de valores futuros de variables relevantes para Comunidades Sostenibles. Además, se desarrollará un módulo web para presentar las predicciones de manera clara, concisa y útil. El sistema buscará apoyar la toma de decisiones informada en temas de sostenibilidad mediante el análisis predictivo. Características Incluidas en el Alcance:
-
Modelos de Machine Learning:
Se desarrollarán modelos de predicción de valores futuros para variables clave en comunidades sostenibles, como: Consumo de energía. Producción de energía renovable. Se aplicarán técnicas de aprendizaje supervisado y series temporales para mejorar la precisión de las predicciones.
-
Visualización de Predicciones:
Se implementará un módulo web interactivo en la página existente, permitiendo visualizar: Gráficas dinámicas de las predicciones generadas. Indicadores clave para la toma de decisiones.
-
Interfaz de Usuario Intuitiva:
El módulo web ofrecerá una experiencia de usuario amigable, permitiendo: Navegación intuitiva entre las predicciones. Filtros para explorar variables específicas. Exportación de informes en formatos descargables.
Producto Mínimo Viable (MVP):
- Desarrollo de modelos de machine learning para predicciones clave.
- Integración de un módulo web para visualizar los resultados de manera interactiva.
- Implementación de métricas de evaluación para validar el desempeño de los modelos.
- Validación inicial con usuarios clave para recoger retroalimentación y ajustar el sistema en futuras iteraciones.
2. Descripción de los componentes
Módulo 1: Predicción del Consumo de Energía Eléctrica
Este módulo analizará los patrones de consumo de energía, considerando días festivos y condiciones climáticas. Utilizará datos históricos para generar predicciones precisas y se actualizará mediante reentrenamiento periódico.
Componentes del Módulo 1:
-
recolección de Datos:
- Descripción: Recolecta y prepara datos históricos de consumo, clima y días festivos.
- Funcionalidad: Limpia, transforma y almacena datos para su análisis.
- Interacción: Se conecta con el Entrenador de Modelos para suministrar datos de entrenamiento.
-
Entrenador de Modelos:
- Descripción: Entrena y actualiza modelos de predicción.
- Funcionalidad: Utiliza datos históricos para capturar patrones complejos mediante series temporales y redes neuronales.
- Interacción: Interactúa con recolección de Datos y envía modelos al Motor de Predicciones.
-
Motor de Predicciones:
- Descripción: Genera predicciones a corto y largo plazo.
- Funcionalidad: Ajusta predicciones según clima y días festivos.
- Interacción: Envía resultados a la Interfaz de Visualización.
-
Interfaz de Visualización:
- Descripción: Muestra las predicciones de consumo en el módulo web.
- Funcionalidad: Presenta gráficas interactivas y análisis de tendencias.
- Interacción: Se conecta con el Motor de Predicciones y la Interfaz de Usuario.
Módulo 2: Predicción de la Producción de Energía
Este módulo predecirá la producción de energía utilizando datos históricos y condiciones climáticas, considerando las capacidades de producción de cada usuario.
Componentes del Módulo 2:
-
recolección de Datos: -Descripción: Recolecta datos de producción histórica y clima. -Funcionalidad: Limpia, transforma y almacena datos para análisis. -Interacción: Suministra datos al Entrenador de Modelos.
-
Entrenador de Modelos:
- Descripción: Entrena modelos de predicción de producción de energía.
- Funcionalidad: Utiliza series temporales y regresiones para ajustar modelos.
- Interacción: Recibe datos de recolección de Datos y envía modelos al Motor de Predicciones.
-
Motor de Predicciones:
- Descripción: Genera predicciones de producción a corto y largo plazo.
- Funcionalidad: Ajusta las predicciones según clima y capacidad de producción.
- Interacción: Proporciona resultados a la Interfaz de Visualización.
-
Interfaz de Visualización:
- Descripción: Muestra las predicciones de producción en el módulo web.
- Funcionalidad: Presenta gráficas interactivas y comparaciones con datos históricos.
- Interacción: Se conecta con el Motor de Predicciones y la Interfaz de Usuario.
3. Dimensión del sistema
Eficiencia:
- Velocidad de respuesta: Las predicciones y gráficos deben mostrarse en menos de 3 segundos con un ancho de banda mínimo de 10 Mbps.
- Capacidad de procesamiento: El sistema debe manejar al menos 500 usuarios simultáneos con una latencia máxima de 250 ms en el servidor.
Flexibilidad:
- Actualización de modelos de predicción: Los modelos de predicción deben ajustarse en menos de 5 minutos tras la entrada de nuevos datos o cambios en condiciones climáticas.
- Personalización de visualizaciones: Las gráficas y análisis deben adaptarse automáticamente según las preferencias del usuario.
4. Requisitos no funcionales
Rendimiento y Escalabilidad:
- El sistema debe procesar datos históricos y generar predicciones en un tiempo máximo de 5 segundos en condiciones normales de uso.
- La aplicación debe soportar al menos 100 usuarios concurrentes sin degradación en la velocidad de respuesta.
- La generación de reportes y dashboards debe completarse en un tiempo menor a 3 segundos.
Seguridad:
- La autenticación debe requerir credenciales válidas para acceder a cualquier funcionalidad del sistema.
- Un usuario sin permisos administrativos no podrá modificar parámetros de la IA ni cargar datos históricos.
Usabilidad y Accesibilidad:
- La interfaz de usuario debe ser accesible y de fácil entendimiento.
- El usuario debe poder acceder a reportes y gráficos sin necesidad de conocimientos técnicos avanzados.
- La aplicación debe ser completamente funcional en dispositivos móviles y navegadores modernos (Chrome, Firefox, Edge, Safari).
Mantenibilidad y Actualización:
- El sistema debe permitir actualizar el modelo de IA sin interrumpir el acceso a los usuarios.
- El sistema debe contar con una estructura escalable y actualizable.
Disponibilidad y Confiabilidad:
- La aplicación debe garantizar una disponibilidad mínima del 99.5% en el transcurso de un mes.
- La aplicación debe contar con mecanismos de alerta en caso de inactividad o errores críticos.
5. Diagrama de clases
6. Diagrama de componentes del sistema
La arquitectura del sistema ha sido diseñada para garantizar escalabilidad, modularidad y eficiencia en el procesamiento de datos. La solución elegida se basa en un enfoque de componentes independientes, que nos permite cumplir con todos los requisitos funcionales. Se divide en dos módulos principales:
- Modelo predictivo de consumo energético
- Modelo predictivo de producción energética
Cada modelo tiene su propia base de datos y será construido utilizando Python, TensorFlow y Keras. Tecnologías:
- Python: Lenguaje versátil y ampliamente usado en ciencia de datos.
- TensorFlow + Keras: Librerías para machine learning, ideales para tareas de predicción.
- SQL: Base de datos estructurada que permite almacenar datos históricos de consumo y producción.
Infraestructura:
- Raspberry Pi: Actúa como servidor, ejecutando los modelos predictivos y manejando la comunicación mediante API REST. Se elige por la necesidad de alcanzar a comunidades sin acceso a internet, por su bajo consumo energético, reducción de latencia y capacidad de procesamiento suficiente para estas tareas.