La batalla contra PowerFactory

8.33%
Día 5 / 60
El tiempo pasa rápido cuando te pones metas grandes en tan poco tiempo. Me preocupa que ya llevo 8.33% de la fecha que me puse y estos días han sido de fiestas, así que no pude trabajar tanto como esperaba. Pero aún así trabajé cuando pude.
Como comenté en mi anterior post, lo primero es construir las herramientas. Decidí partir por la que creo que me va a tomar más tiempo y la que necesito que quede mejor: DIgSILENT PowerFactory.
¿Qué es PowerFactory?
Para los que no están en el mundo eléctrico: PowerFactory es el software de análisis de sistemas de potencia. Es la herramienta estándar en el sistema eléctrico chileno (y creo que en varias partes del mundo) para correr simulaciones, flujos de potencia, cortocircuitos, análisis de estabilidad, coordinación de protecciones... básicamente todo lo que necesitas para estudios eléctricos serios.
Es un software alemán de DIgSILENT GmbH que lleva décadas en el mercado y tiene una biblioteca enorme de modelos de componentes eléctricos. La gracia es que tiene una API en Python que permite automatizar simulaciones, que es exactamente lo que necesito para que el agente pueda "pensar" y luego ejecutar estudios.
El drama de la arquitectura ARM
Un pequeño detalle que me costó un día de trabajo: llevo mucho tiempo usando el ecosistema Mac, así que los 3 computadores con los que suelo trabajar son todos Mac con procesadores M (arquitectura ARM).
Esto es muy específico, pero quizás a alguien le interese o incluso a mi yo del futuro: PowerFactory no corre en procesadores M. Solo está pensado para arquitectura x64 o x86 de Windows. A pesar de que virtualicé Windows en mis Mac, no funcionó. Por lo que perdí un día en esto.
Cloud
Mi segunda opción fue correr PowerFactory en una VM en la nube. Como era Windows, obviamente partí con Azure.
Tengo que confesar que odio Azure. Y efectivamente, luego de un par de horas intentando configurar una VM, me rendí y volví a mi siempre confiable Google Cloud.
En Google Cloud no me costó nada (creo que es porque ya tengo experiencia). Ahora tengo corriendo:
- Machine type: e2-standard-4 (4 vCPUs, 16 GB Memory)
- Disco: 50GB SSD

Esquema de la arquitectura en la nube
Por ahora las simulaciones corren bien, suelen demorar pocos segundos aunque he hecho pruebas con sistemas de 5-10 barras. Simplemente me voy a olvidar del tamaño de la máquina hasta que las simulaciones se demoren mucho.
He estado probando con un sistema eléctrico pequeño que tengo para realizar pruebas. En los próximos días iré mostrando los resultados.

Pequeño sistema eléctrico en el que he estado probando
La arquitectura: FastAPI + MCP
Entonces, ¿cómo funciona esta herramienta? Tengo un backend en Python que usa la librería de PowerFactory para ejecutar las simulaciones.
La arquitectura es simple:
- FastAPI como servidor web que expone los endpoints
- API REST tradicional para integración con cualquier sistema
- MCP (Model Context Protocol) para conectar directamente con Claude y otros LLMs
El MCP es clave porque me permite ir haciendo pruebas en Claude sin depender del agente completo. Básicamente puedo preguntarle a Claude "corre un flujo de potencia en este proyecto" y él puede ejecutarlo directamente.
Herramientas disponibles por ahora:
- Cargar proyecto
- Obtener información de elementos
- Power flow (flujo de potencia)
- Short circuit (cortocircuito)
El tema de la licencia
He pensado si disponibilizar esta herramienta públicamente. Por ahora tengo una licencia de DIgSILENT de estudiante, que tiene limitaciones (solo puedo correr 50 barras, por ejemplo). No sé si puedo distribuir esto así que por ahora esta herramienta se queda cerrada.
Igual dejo el comentario por si algún inversionista se la juega, si a alguien le interesa que corramos un servicio de DIgSILENT en cloud o si alguna empresa está interesada en este servicio.
Lista de TODOs (Pendientes o cosas a mejorar)
Cosas pendientes que mejorarían el proyecto:
- Benchmark de máquinas: Voy a ir probando distintas configuraciones y su rendimiento durante el resto del desafío
- Sistema de colas: Si quiero que el sistema escale, la máquina no es capaz de correr múltiples simulaciones simultáneamente. Necesito implementar un queue manager