Yuchen’s Status Report 03/30/2024

Accomplishments This Week:

  • Added a side panel to show the optimizer results when the user clicks on the nodes/paths
  • Added time series charts for forecasting outputs display

Challenges Encountered:

  • There are some integration issues when I try to run SUGAR 3 locally. Probably because it’s not very compatible with Windows.

Next Steps:

  • Meet with Alby to solve integration issues. If it turns out that it’s not very compatible with Windows then I will switch to using EC2 for future development.

Alby’s Status Report for Mar 30

Accomplishments This Week:

  • Migrate all optimization code to a github submodule to clean up file hierarchy and simplify programming pipeline through a mirrored repo that fetches from the CMU SUGAR-D gitlab repo.
  • Added line-power functions to lines class and verified correct scaling with changes in load

Challenges Encountered:

  • Battery lambda gradient no longer converges with correct Lb equation stamp due to numerical tolerance issues.
  • Line-powers are incorrect by a factor of 2
  • Created an output function that generates a datastructure containing relevant optimization outputs for each period across all epochs.
    • line powers
    • generation powers
    • total generation
    • total cost
    • maximum and minimum voltages
    • battery state of charge
    • battery charge rate

Next Steps:

  • Fix numerical tolerance issues and investigate multi-period convergence across multiple epochs
  • Produce more example grid models to test the webapp
  • Further test the modifications of PQ loads to find limits

Team Status Report for 3/30/24

Risks

Our models are currently not exhibiting real world behavior closely enough and we plan to improve upon their performance in the coming weeks.

The multi-period solution trajectory is slow to converge and doesn’t show correct behavior for multiple test scenarios, therefore there is a risk that the optimizer has some deep structural issues that may not be solvable within the schedule.

System Changes

We’ve decided upon our basic visual layout for the final webapp. Which will include some sample scenarios (i.e. winy day, cloudy day, etc.) as well as a slider to travel through time. The SUGAR optimization codebase was migrated into a submodule to cleanup the overall file hierarchy.

Schedule Changes

We are mostly on schedule. Integration has taken a bit longer than expected so more work will need to be done next week to improve upon models and visuals

Carter’s Status Report for 3/30/24

This week was focused on integrating the components of our project in preparation for the demo next week. For my forecasting models, this meant I had to ensure that my trained models were outputting consistent and reasonable predictions given current weather forecasts. To make this easier, i created a main file with three functions (one for each of solar, load, and wind forecasting) with each function taking in a location and returning the respective predictions in a pandas dataframe, indexed by hour. This way the web app and the optimization solver and access the forecasts from one place.

For next week, I’m looking to seriously improve the performance of my models, since the load and wind predictions seem to be especially overfitting. One idea that I’ve started experimenting with is using an autoML tool which I’ve been helping develop as part of my research at the Auton Lab. I’ve already run our wind data through this autoML system and identified some models that achieve better results than our current LSTM. A ranking of these models by test R^2 score can be found at the bottom of this post.

Alby’s Status Report for Mar 23

Accomplishments This Week:

  • Added renewable generators as negative PQ loads within the grid models and verified correct modification of powers at each period.
  • Rewrote battery Lb and Bt equation stamps to explicitly define all terms and avoid confusion from cancelled out terms.
  • Added the codebase to an EC2 instance and setup a working optimizer environment
  • Created a parser wrapper script that provides a dictionary of the grid model for easy accessibility by the web app.

Challenges Encountered:

  • Battery lambda gradient no longer converges with correct Lb equation stamp due to numerical tolerance issues.

Next Steps:

  • Fix numerical tolerance issues and investigate multi-period convergence across multiple epochs
  • Produce more example grid models to test the webapp
  • Further test the modifications of PQ loads to find limits
  • Add line-current/power functions to lines class, add stamps to infeasibility, and verify correctness by running a simulation with changing powers
  • Create an output function that generates a datastructure containing relevant optimization outputs for each period.
    • line powers
    • generation powers
    • total generation
    • total cost
    • maximum and minimum voltages
    • battery state of charge
    • battery charge rate

Team Status Report 03/23/2024

Risks

The team has successfully progressed for each component of the project. However, the ongoing development and integration of the side panel and ML forecasting model could introduce complexity. Additionally, the challenge of overfitting in the load data forecasting model indicates a risk in the accuracy and reliability of ML predictions.

System Changes

Significant system changes include the initialization of an AWS EC2 Ubuntu instance, marking a pivotal shift to a more robust and scalable deployment environment. On the ML front, the refactoring and modularization of the forecasting codebase represent substantial improvements, enabling more efficient code management and model training processes.

Schedule Changes

Currently, everything aligns with the project timeline. Our team plans to begin component integration next week and try our best to meet our deadlines.

Yuchen’s Status Report 03/23/2024

Accomplishments This Week:

  • Finished the Microgrid Visualizer and integrated it with the current webpage
  • Initialized AWS EC2 Ubuntu instance for deploying the website

Challenges Encountered:

  • N/A

Next Steps:

  • Add a side panel to show the optimizer result and a panel display information when the user clicks on the nodes/paths
  • Integrate with current ML forecasting model for demo

Carter Weaver’s Status Report 3/23/24

This week I focused on properly structuring my codebase for ML forecasting and developing a pipeline for our three training datasets (load, solar, wind) centered around a simple lstm model. Code refactoring involved modularizing my data preprocessing, model training, predicting, and writing outputs to files. This made it much easier to share functions across python scripts so I could easily extend my LSTM training code.

The current LSTM model is performing well for the wind and solar data NRMSE of 11.3% and 11.0% respectively. The results for the load data, however, are not yet good enough and it appears to be resulting from overfitting, which I plan to fix this weekend.

Overall I’m making good progress, but I’m a bit behind considering I planned to begin integrating my models with the optimization and web app this week. However, we plan to put together our components beginning next week and I expect to have all my models outputting relatively accurate predictions in time for the demo.

Team Status Report 3/16/2024

Risks

  • There is a compatibility risk with the parser integration into the Django web app due to operating system limitations, which necessitates a shift to a Linux environment.
  • There are also some convergence issues in the battery lambda gradient, indicating a risk in the mathematical modeling and computational efficiency of the multi-period solver.

System Changes

  • Plan to transit to an AWS EC2 Ubuntu instance to overcome the compatibility issues encountered with Windows
  • Plan to refine the mathematical equations and introduce specific modifications to renewable PQ loads
  • Shift from linear regression to LSTM models for forecasting introduces a change in the analytical approach.

Schedule Changes

  • The integration of the parser is a bit behind due to the incompatibility

Yuchen’s Status Report 3/15/2024

Accomplishments This Week:

  • Finished the overall frontend of the website
  • Added card-style dashboard page for displaying statistics, forecasting, etc
  • Added profile, login, and upload file pages

Challenges Encountered:

  • When integrating the parser with the Django web app, there was something incompatible with Windows, and turns out that the parser needs to be set up in a Linux environment.

Next Steps:

  • Initialize AWS EC2 Ubuntu instance for deploying the parser
  • Integrate the updated frontend and the parser code into current Django web app
  • Start to integrate ML models into web app