Functional programs connected to the power grid

  • Sebastian Egner Entelios
September 15, 2012 4:00 - 4:25 PM


Transmission system operators (TSOs), tasked with providing a reliable power grid, are facing increasing challenges due to liberalization ("unbundling") and the rise of fluctuating production from renewable energy (e.g. wind, solar). This has created new market opportunities for 'operating reserve power,' both in the open auctions held by the TSOs and within large utility companies.

At Entelios AG, a VC-funded company founded in 2010, we have developed an IT system for remote control of industrial loads, contributing power to the German national power grid by "not using it", an approach known as "demand response". The system we operate consists of a "network operation center," dedicated servers, embedded devices---and, of course, advanced application specific software.

By nature, this operation is "soft realtime" and even has a "man in the loop". Unsurprisingly, this requires the system to be highly reliable, resilient to transient malfunction of its subsystems and responsive at all times, despite having an elaborate GUI for planning, monitoring and control.

In this situation, we have applied ideas from functional programming ranging from a general "state fright" to specific mechanisms, such as Functional Reactive Programming for combining planned actions and interactive adjustments in a systematic way. Our own implementations of field bus interfaces (Modbus, IEC-60870-5-104) are functional, in the sense that they are explicit with respect to state and messages. Most of the software is written in Python, F# (with WPF) and Erlang, each of which giving access to rich and mature libraries.

Being a start-up, our approach requires numerous functional features to be demonstrated and evaluated in a short time frame. This means features are added for upcoming marketing events, usually after intense internal negotiation, as a way of taking customer feedback into account as quickly as possible. For this to work, caution must be exercised.

Functional Programming has been extremely helpful in having the speed of software development match the considerable rate of change in requirements. As such, FP has contributed to delivering the right functionality at the right time without blocking the road ahead. Although it is hard to compare tools without considering the people wielding them, FP has earned its place as an integral part of the key components of our system contributing operating reserve power to the German national power grid.

Dr. Sebastian Egner

Sebastian is chief system architect of Entelios AG, a VC-funded energy company. After studying physics and CS at the University of Karlsruhe, and completing a PhD in CS in 1997, he joined Philips Research B.V. in Eindhoven (Netherlands) to become a full-time inventor and scientist. In 2007 he founded the software development department of SPECS GmbH, a Berlin based maker of instruments for surface physics. Sebastian is aware of the delicate and ever changing balance of being "scientist, inventor, engineer, and manager" whatever the job at hand calls for.