Skip to content

Experimental OPF Implementation using MATPOWER Input - #594

Open
lukelowry wants to merge 5 commits into
developfrom
lukel/OPF-NEW-dev
Open

lukelowry wants to merge 5 commits into
developfrom
lukel/OPF-NEW-dev

Conversation

@lukelowry

Copy link
Copy Markdown
Collaborator

Description

Experimental @superwhiskers @nkoukpaizan which uses MATPOWER input which makes interfacing with PhasorDynamics harder but most OPF data comes in MATPOWER, so this is probably most practical choice

  • Application OptimalDispatch

Checklist

  • All tests pass.
  • Code compiles cleanly with flags -Wall -Wpedantic -Wconversion -Wextra.
  • The new code follows GridKit™ style guidelines.
  • There are unit tests for the new code.
  • The new code is documented.
  • The feature branch is rebased with respect to the target branch.
  • The CHANGELOG.md has been updated to reflect the changes. If this is a minor PR that is part of a larger fix already included in the file, state so.

Further comments

Needs some cleaning first

@pelesh

pelesh commented Sep 28, 2026

Copy link
Copy Markdown
Collaborator

A few comments:

  • If you have JSON input parser already available, I suggest you use that instead of MATPOWER format. I was thinking you could use some of the existing power flow implementation, but since you took a different route, I suggest you ditch MATPOWER and go straight to JSON.
  • I would have optimal power flow app in EconomicDispatch subdirectory in examples directory, at the same level as PhasorDynamics.
  • I would rename Optimization/OptimizationProblem.*pp files (and the class within) into Optimization/SteadyState.*pp. We will likely have Multiperiod and MixedInteger as new optimization modules in the future.

@pelesh
pelesh requested a review from abirchfield September 28, 2026 18:22
@lukelowry

lukelowry commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator Author

@pelesh I changed it so it uses the PowerFlow parser with very few changes. I do believe its valuable to have that as the input format only because it makes validation easier and there is practically unlimited data in .m, and OPF data does not always come with dynamic case files.

I believed I addressed your other issues too. I am able to use the example app to change the objective/model, solve for new operating point, and start simulation in steady state at that new point!

@lukelowry
lukelowry force-pushed the lukel/OPF-NEW-dev branch 2 times, most recently from 4bfc17e to 85b9769 Compare October 6, 2026 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants