We spoke with Russ Philbrick, founder of Polaris Optimization Systems, about optimization solutions for energy sector customers. Find out how the AIMMS-based engine PSO (Power System Optimizer) helps the power industry make the most of renewable energy.
Can you tell me a little about your background in the energy sector?
I started working with Alstom back in 1999 and was responsible for the engines used to plan day-ahead unit commitment and reliability unit commitment. That project was very successful, and even today a number of power markets still run on AIMMS as the core engine, based on that work.
What led you to start Polaris?
In the mid-2000s, I was asked to support efforts to represent what Alstom was doing to support wind integration. I began to understand that, because of the variability and uncertainty of wind and solar, integration into the power grid presented new planning and operational challenges.
With wind and solar, it’s a new kind of uncertainty and variability that is both large in magnitude and continuous. You have to deal with it hour by hour, day by day. These issues didn’t exist before and it will become very expensive to operate power grids the way we did in the past. Wind and solar power are driving a significant change in how the grid is operated, and the kind of products needed in order to operate the system reliably and economically.
That work with integrating renewables led me to recognize an opportunity to develop new tools and to apply optimization techniques that could be applied in a way that could work in large utility environments. Because of the complexity and changing needs, it would only be possible to develop these tools through lean and flexible organization structure. So I started Polaris Optimization Systems with a partner back in 2010, and have been working to develop tools to support the needs of wind and solar integration ever since.
Can you tell me a bit more about your product, PSO, and what it was designed to be used for?
We took what we understood about operational decision-making, and the high-performance computing that is needed to solve those problems in an operational timeframe, and applied them to the planning world, where we can simulate the way operations works but in a planning context.
For example, you may be trying to simulate what’s going to happen over the next year, or 10 years, or 30 years if you make certain changes to the system—such as building a new power-plant, changing the way you operate power plants, changing forecast data that you use to anticipate future needs or activities. And we put all this together to understand impacts from integration of high levels of wind and solar power.
What brought you to select AIMMS as your development platform for PSO?
Using AIMMS was an obvious choice because it allows us to quickly adapt to the needs of power grid operators and planners, as well as other customers.
The ability to quickly and efficiently develop mathematical models in AIMMS has been critical to our success. If we weren’t using AIMMS, we would need 10 times the staff to get the same work done.
You rely quite heavily on the development of the AIMMS core engine. What are the features you value most from the AIMMS engine and developer environment?
The modular/object oriented graphical interface of the AIMMS IDE is unique, aiding in the transparency and maintenance of models. Many features contribute to quick and accurate software development, and minimizing bugs and aiding analysis of model results.
For example, AIMMS namespace logic supports precise naming of entities, and the ability to propagate changes in naming conventions efficiently. Library modularity allows multiple folks to work on code without stepping on each other’s toes.
Another thing that’s kind of unique is the units logic. We deal with lots of physical and financial descriptions in our models (fuel, power, electrical characteristics, money) and being able to verify consistent application of units in model development helps us catch programming errors that we would miss otherwise. This has traditionally been a major source of bugs in software.
Also, real-time compiling: if you have a typo in an identifier, AIMMS identifies that immediately – not after you try to compile it.
On the math side, the math program inspector is a valuable tool in understanding our customers’ models and diagnosing issues. The biggest problem for our customers is good-quality data. It takes lots of effort to collect data and lots of time to validate data models, and there are many times when things don’t come out the way the customer expects, and we sometimes dive in to help them explore the issues. The math program inspector is a great tool for doing that efficiently.
What are some lessons learned about developing an AIMMS-based tool, from a modeling and programming standpoint?
AIMMS typically does a good job of minimizing overhead computation time but, with its emphasis on sparse programing, we find situations when handling large dense data sets where it’s helpful to have access to other tools outside of the AIMMS environment. In those cases we’ve used libraries to export data from AIMMS, do calculations in specialized packages, and bring them back into AIMMS.
Similarly, for data-exchange with large-scale applications, some data-exchange methods work better than others because of computational overhead. For example, we find the Excel interface is great for small models, but in a production environment we recommend to our customers to use basic CSV format.
You can read CSV files into AIMMS with built-in functions that are lightning fast to get data into AIMMS. And to get data out is easy using the built-in write statements. Using these functions prevents an import/export bottleneck in computation.
How would you sum up the role AIMMS plays in the optimization world, in your view?
The AIMMS core engine is a very powerful tool.
It’s the platform on which AIMMS is able to develop its own solutions, but it also allows external customers to develop products which can have a significant impact on solving big problems in industry and society. It is important.
Find out more about Polaris and PSO: