Transition for Ray, and the Future of MATPOWER

Since the initial release of MATPOWER in 1997, many people have made significant contributions to the tool we know as MATPOWER today. I, Ray Zimmerman, would like to thank each and every one of you who have contributed code, ideas, documentation, bug fixes, donations, and more.

While MATPOWER is far from being my creation alone, over the years I have served as the primary developer and maintainer for MATPOWER and its related packages, MP-Test, MIPS, MP-Opt-Model, MOST, and MATPOWER Extras. This activity was supported primarily through research grants to Cornell University, where I worked as a Senior Research Associate.

In 2022, I took a half-time position at Power Analytics Software, Inc (PAS) as their lead optimization engineer and reduced my Cornell appointment to half-time. Then, in mid-2024, I retired from Cornell University and transitioned to a full-time position with PAS.

So, what does this mean for the future of MATPOWER?

First of all, it does not mean that work on MATPOWER is stopping. Following the near complete redesign and rewrite represented by the release of MATPOWER 8, with vastly expanded capabilities, this would be a particularly unfortunate time to allow the MATPOWER project to stagnate. And, I have no intention of doing that.

Initially, I was hoping the National Science Foundation would continue to fund, through grants to Cornell, significant enhancements to MATPOWER in the areas of three-phase unbalanced modeling for distribution systems and hybrid AC/DC grid modeling, among other things. Unfortunately, that door is now closed requiring us to find other ways forward. I currently have some support from The MathWorks through their MATLAB Community Toolbox program to work on additional three-phase modeling features.

However, the long-term growth and vitality of the MATPOWER project and community will require some changes to the status quo in light of the decreased number of hours I can personally dedicate to it at the moment.

To that end, I would like to propose an immediate goal to …

Expand the team

Over the next couple of months, I would like to expand the MATPOWER project team to a broader base of developers and maintainers, adding one or more additional project owners.

If you think you may be interested in playing a role in the ongoing development of the MATPOWER project, or know someone who may be, please reach out to me at info@matpower.org. I am hoping to set up a call soon with interested parties to discuss vision, goals, roles, etc. This will be about exploring our options, with no commitment implied by showing up.

I am also looking at a possible second goal to …

Launch a commercial venture

I see this as a supplement, not an alternative, to the expansion of the team for the open-source project. Currently, this is just an idea, in the exploratory phase, to create a commercial venture to offer MATPOWER-related software and services for a fee. It could also potentially serve as a sponsor of, and long-term home for, the open-source project. If you have ideas or an interest in helping pursue this option, please also contact me at info@matpower.org.

Let’s work together to ensure a growing and fruitful future for the MATPOWER project and community!

MATPOWER 8.0 released

What’s New in MATPOWER 8.0

Below are some of the highlights of the changes since version 7.1 of MATPOWER. See the full release notes and the CHANGES.md file for more details. For release notes for previous versions, see Appendix H of the MATPOWER User’s Manual.

Major Redesign

MATPOWER 8 introduces a major redesign and rewrite of all of the MATPOWER internals in the form of the flexible, all-new MATPOWER object-oriented core architecture (MP-Core) and new two user-level frameworks to access it. (Previously developed under the name MP-Element in a separate repository at https://github.com/MATPOWER/mp-element.)

  • MP-Core — Provides unparalleled flexibility and customization capabilities at all levels. Facilitates new modeling (e.g. unbalanced multiphase elements, FACTS devices, etc.), new controls (e.g. optimization of transformer taps, PAR angles, etc.), new problem formulations, and more.
  • Flexible Framework — Provides new top-level functions for running power flow (PF), continuation power flow (CPF) and optimal power flow (OPF), along with new MATPOWER Extension API for user access to the full customization capability of MP-Core.
  • Legacy Framework — Allows MP-Core modeling to be used internally by legacy functions, facilitating use of legacy test suite.

See the new MATPOWER Developer’s ManualMATPOWER Reference Manual and MATPOWER Technical Note 5 for details of the new architecture. The User’s Manual has not yet been updated for the flexible framework.

New Three-Phase and Hybrid Proof-of-Concept Examples

Prototype examples of PF, CPF, and OPF for:

  • unbalanced three-phase models
  • hybrid transmission (single-phase) / distribution (three-phase) models
  • multiple problem formulations

Note: These are proof-of-concept only, with much work remaining to define a full set of three-phase model elements and their respective parameters and data formats. But they do work!

New Features

  • MIPS 1.5.1 adds to mplinsolve() the ability to save an LU factorization and reuse it to solve for additional right-hand sides.
  • MP-Opt-Model 4.2 adds support for tracing solution curves of general parameterized nonlinear equations (PNE), providing generalized continuation power flow (CPF) capabilities to MP-Core and adds support for Optimization Toolbox 9.5 and later (MATLAB R2023a and later).
  • MOST 1.3 improves speed and memory usage on certain problems, and adds calculation of expected temporal locational marginal price (TLMP), includes transitions into first period in ramping reserves, and more.
  • SimulinkMATPOWER, included in MATPOWER Extras, enables the use of MATPOWER from MATLAB’s Simulink®environment. Thanks to Lukas Ortmann.
  • New options:
    • New AC power flow solver based on fsolve() function, selected by setting 'pf.alg' option to 'FSOLVE'.
    • New Implicit Z-bus Gauss method power flow for distribution systems, selected by setting pf.alg option to 'ZG'.
  • New functions/methods:
    • run_mp – Top-level function for running any task (PF, CPF, OPF) with the new MP-Core and flexible framework.
    • run_pf – Wrapper around run_mp for running PF.
    • run_cpf – Wrapper around run_mp for running CPF.
    • run_opf – Wrapper around run_mp for running OPF.

New Case Files

  • Two new European transmission system cases. Thanks to Florin Capitanescu.
  • Two new Swedish distribution system cases. Thanks to Gabriel Malmer.

New Documentation

Other Improvements

  • New MATPOWER Docker image (named matpower/matpower) is based on the official GNU Octave image (gnuoctave/octave) and is available for multiple MATPOWER and Octave versions.
  • Update versions of included packages:
    • MP-Test 8.0
    • MIPS 1.5.1
    • MP-Opt-Model 4.2
    • MOST 1.3
  • Numerous bug fixes.

Incompatible Changes

  • Remove several deprecated functions, methods and options.

Webinar: What’s New in MATPOWER 8?

Feb 22, 2023 @ 1pm Central Time (US and Canada)
Hosted on Zoom


Register to watch recording on-demand

Learn about the new features and capabilities of MATPOWER 8.

  • Overview of new architecture and features
  • Demo of three-phase and hybrid proof-of-concept examples
  • Opportunity to provide feedback

Register to watch recording on-demand


MATLAB live code file for the demos can be found below.

MATPOWER 8.0b1 released

What’s New in MATPOWER 8.0b1

Below are some of the highlights of the changes since version 7.1 of MATPOWER. See the full release notes and the CHANGES.md file for more details. For release notes for previous versions, see Appendix H of the MATPOWER User’s Manual.

Major Redesign

MATPOWER 8 introduces a major redesign and rewrite of all of the MATPOWER internals in the form of the flexible, all-new MATPOWER object-oriented core architecture (MP-Core) and new two user-level frameworks to access it. (Previously developed under the name MP-Element in a separate repository at https://github.com/MATPOWER/mp-element.)

  • MP-Core — Provides unparalleled flexibility and customization capabilities at all levels. Facilitates new modeling (e.g. unbalanced multiphase elements, FACTS devices, etc.), new controls (e.g. optimization of transformer taps, PAR angles, etc.), new problem formulations, and more.
  • Flexible Framework — Provides new top-level functions for running power flow (PF), continuation power flow (CPF) and optimal power flow (OPF), along with new MATPOWER Extension API for user access to the full customization capability of MP-Core.
  • Legacy Framework — Allows MP-Core modeling to be used internally by legacy functions, facilitating use of legacy test suite.

See the new MATPOWER Developer’s Manual and MATPOWER Technical Note 5 for details of the new architecture. The User’s Manual has not yet been updated for the flexible framework.

New Three-Phase and Hybrid Proof-of-Concept Examples

Prototype examples of PF, CPF, and OPF for:

  • unbalanced three-phase models
  • hybrid transmission (single-phase) / distribution (three-phase) models
  • multiple problem formulations

Note: These are proof-of-concept only, with much work remaining to define a full set of three-phase model elements and their respective parameters and data formats. But they do work!

New Features

  • MIPS 1.5 adds to mplinsolve() the ability to save an LU factorization and reuse it to solve for additional right-hand sides.
  • MP-Opt-Model 4.1 adds support for tracing solution curves of general parameterized nonlinear equations (PNE), providing generalized continuation power flow (CPF) capabilities to MP-Core.
  • MOST 1.2 adds calculation of expected temporal locational marginal price (TLMP), includes transitions into first period in ramping reserves, and more.
  • New options:
    • New AC power flow solver based on fsolve() function, selected by setting 'pf.alg' option to 'FSOLVE'.
    • New Implicit Z-bus Gauss method power flow for distribution systems, selected by setting pf.alg option to 'ZG'.
  • New functions/methods:
    • run_mp – Top-level function for running any task (PF, CPF, OPF) with the new MP-Core and flexible framework.
    • run_pf – Wrapper around run_mp for running PF.
    • run_cpf – Wrapper around run_mp for running CPF.
    • run_opf – Wrapper around run_mp for running OPF.

New Case Files

  • Two new European case files. Thanks to Florin Capitanescu.

New Documentation

Other Improvements

  • New MATPOWER Docker image (named matpower/matpower) is based on the official GNU Octave image (gnuoctave/octave) and is available for multiple MATPOWER and Octave versions.
  • Update versions of included packages:
    • MP-Test 8.0b1.
    • MIPS 1.5.
    • MP-Opt-Model 4.1
    • MOST 1.2.
  • Numerous bug fixes.

Incompatible Changes

  • Remove several deprecated functions, methods and options.

MATPOWER 7.1 released

What’s New in MATPOWER 7.1

Below are some of the highlights of the changes since version 7.0 of MATPOWER. See the full release notes and the CHANGES.md file for more details. For release notes for previous versions, see Appendix H of the MATPOWER User’s Manual.

New Features

  • Core optimization model and solver interfaces released as separate
    package (included), MP-Opt-Model 3.0, bringing many enhancements:
    • Support for new QP solver OSQP for DC OPF
    • New unified interfaces for nonlinear programming and nonlinear equation
      solvers
    • Many new features of the opt_model class, including a solve()
      method that selects and calls the appropriate solver based on the
      automatically detected problem type, and methods for extracting
      specific variables, costs, constraint values and shadow prices, etc.
      from a solved model
    • Performance improvements
  • MP-Test 7.1, with new modular, extensible have_feature() function
    for detecting optional functionality
  • New options and speed improvements for computing shift factors.
  • Numerous new functions and program options.

New Case Files

  • Nineteen new distribution system cases [ref 1ref 2].
    Thanks to Houssem Bouchekara, et. al.

New Documentation

Other Improvements

  • New implementation of Newton power flow for cartesian voltage
    representations.
  • Improved robustness of Newton power flow with hybrid voltage updates.
  • Significant performance improvement for CPLEX on small DC OPF problems.
  • Update versions of included packages:
    • MIPS 1.4.
    • MOST 1.1.
    • MP-Test 7.1.
  • Numerous bug fixes.

Incompatible Changes

  • Update case18case22case69case85 and case141 to more closely
    match data from original papers, thanks in part to case files contributed
    by Houssem Bouchekara, et al. Solutions for updated cases may not match
    exactly. See help text in case files for details.

MATPOWER 7.0 released

What’s New in MATPOWER 7.0

Below are some of the highlights of the changes since version 6.0 of MATPOWER. See the full release notes and the CHANGES.md file for more details. For release notes for previous versions, see Appendix H of the MATPOWER User’s Manual.

New Features

  • New MATPOWER installer script install_matpower()
  • User-defined general nonlinear constraints and costs in AC OPF
  • PSS/E RAW export
  • Cartesian coordinate voltage and current mismatch formulations of AC power flow and OPF.
  • Three new radial power flow algorithms
  • Major update to OPF soft limit functionality
  • MATPOWER Docker image
  • Many new functions and program options.

New Extras

  • SynGrid, a new tool for sythetic grid creation for MATPOWER.

New Case Files

  • Seven new purely synthetic cases, up to 82,000 buses.
  • New RTS-GMLC case.
  • Six new radial distribution system cases.

New Documentation

  • Two new Tech Notes, TN3 and TN4
  • LaTeX source code for manuals

New Website

Other Improvements

  • Update versions of included packages:
    • MIPS 1.3.1.
    • MOST 1.0.2.
    • MP-Test 7.0.
  • Continuous integration testing via GitHub and Travis-CI integration.
  • Support for IPOPT solver under Octave.
  • Support in core optimization model for:
    • general nonlinear constraints
    • general nonlinear costs
    • quadratic costs
  • Refactor OPF code to take advantage of new opt_model capabilities for nonlinear constraints and quadratic and nonlinear costs.
  • Support for polar and cartesian voltages in derivative functions.
  • Improved performance (up to 2x speedup) for Newton power flow.
  • Handling of generator types, fuel types and bus names.
  • Numerous bug fixes.

Incompatible Changes

  • Move included MATPOWER case files to new data subdirectory.
  • Default soft limit behavior relaxes all constraints.
  • Minor corrections to data for Polish system cases.
  • Add mpopt to input args for some OPF callbacks.
  • Eliminate unnecessary reordering of on-line generators by ext2int().

MATPOWER 7.0b1 released

What’s New in MATPOWER 7.0b1

Below are some of the highlights of the changes since version 6.0 of MATPOWER. See the full release notes and the CHANGES.md file for more details. For release notes for previous versions, see Appendix H of the MATPOWER User’s Manual.

New Features

  • New MATPOWER installer script install_matpower()
  • User-defined general nonlinear constraints and costs in AC OPF
  • PSS/E RAW export
  • Cartesian coordinate voltage and current mismatch formulations of AC OPF.
  • Three new radial power flow algorithms
  • Major update to OPF soft limit functionality
  • Many new functions and program options.

New Case Files

  • Seven new purely synthetic cases, up to 82,000 buses.
  • New RTS-GMLC case.
  • Six new radial distribution system cases.

New Documentation

  • Two new Tech Notes, TN3 and TN4
  • LaTeX source code for manuals

Other Improvements

  • Update versions of included packages:
    • MIPS 1.3.
    • MOST 1.0.1.
    • MP-Test 7.0b1.
  • Continuous integration testing via GitHub and Travis-CI integration.
  • Support for IPOPT solver under Octave.
  • Support in core optimization model for:
    • general nonlinear constraints
    • general nonlinear costs
    • quadratic costs
  • Refactor OPF code to take advantage of new opt_model capabilities for nonlinear constraints and quadratic and nonlinear costs.
  • Support for polar and cartesian voltages in derivative functions.
  • Improved performance (up to 2x speedup) for Newton power flow.
  • Handling of generator types, fuel types and bus names.
  • Numerous bug fixes.

Incompatible Changes

  • Move included MATPOWER case files to new data subdirectory.
  • Default soft limit behavior relaxes all constraints.
  • Minor corrections to data for Polish system cases.
  • Add mpopt to input args for some OPF callbacks.