Inspiration
OSESMO was born out of the California Public Commission's SGIP Working Group, which is evaluating options to ensure that behind-the-meter storage and solar-plus-storage systems are reducing GHG emissions. This is a project I've been working on for about three months.
What It Does
OSESMO is an optimal-dispatch storage simulation model that calculates the maximum achievable customer savings possible when performing time-of-use energy charge arbitrage, demand charge management, and solar self-consumption. It is also capable of co-optimizing for GHG emissions reduction.
How We Built It
The prototype version of OSESMO was built in MATLAB prior to SunCode. At SunCode, we focused on translating the code into Python to make it more accessible. Translating it to Python also could make it possible to create a web app interface with Flask or Django.
Challenges We Ran Into
Our group was fairly inexperienced with Python, and the prototype model is several thousand lines of code long. As a result, we were only able to translate about 30% of the model code. We also were not able to make progress on developing a web-app front-end, beyond a simple mockup created with R's Shiny package also developed prior to SunCode.
Accomplishments That We're Proud Of
We successfully translated all of the function scripts associated with importing load profile, PV production, retail rate, and emissions rate datasets, which represent a substantial portion of the codebase. We also researched optimization-package options for solving large, sparse linear programs, and began setting the problem up using the PuLP package.
What We Learned
This project served as a useful refresher on Python and algebraic optimization modeling.
What's Next for OSESMO
We hope to continue working on translating OSESMO to Python, with today's work session serving as a great first step. We are still very interested in creating a web-app interface and hosting it online. Please let us know if you would be interested in assisting with this effort - we would very much appreciate your help.
Log in or sign up for Devpost to join the conversation.