GithubHelp home page GithubHelp logo

lanl-ansi / powermodels.jl Goto Github PK

View Code? Open in Web Editor NEW
370.0 370.0 139.0 5.01 MB

A Julia/JuMP Package for Power Network Optimization

Home Page: https://lanl-ansi.github.io/PowerModels.jl/stable/

License: Other

Julia 93.36% MATLAB 6.64%
network optimal-power-flow optimization power-network

powermodels.jl's People

Contributors

byronbest avatar ccoffrin avatar florianshepherd avatar frederikgeth avatar hakanergun avatar jay-dave avatar jbarberia avatar jd-lara avatar juliatagbot avatar kaarthiksundar avatar kersulis avatar ksepetanc avatar lsindoni avatar lthurner avatar mtanneau avatar noahrhodes avatar odow avatar peraaslid avatar pseudocubic avatar raphaelsaavedra avatar rb004f avatar rofinn avatar sanderclaeys avatar sergio-dorado avatar tso-martin avatar yeesian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

powermodels.jl's Issues

Abstracting on/off constraints

There is significant repeated code in expansion planning line constraints (i.e. _ne) and OTS on/off constraints (i.e. _on_off).

See if there is a clean way of avoiding this replication without excessive engineering.

Update README

Add TNEP to list of supported models, also use checkout instead of clone for to get the current development version.

Variable Name Conventions

I propose the following a standard naming convention for the polar and rectangular variable spaces, let "v" be a complex number, then:

  • vm - magnitude of v
  • va - angle of v
  • vr - real component of v
  • vi - imaginary component of v

Fixing Bus Types when Parsing Matpower

When parsing .m files, if a generator bus type is incorrect (e.g. type 2 with no generators) fix it.

Key use case, is running an AC-PF solve on a non-NESTA Polish case (e.g. case2737sop.m).

JSON Object Types

By default JSON.parse returns Dict{UTF8String, Any} and we typically use Dict{AbstractString, Any}.

  1. Figure out why a function of Dict{AbstractString, Any} cannot accpt an argument of Dict{UTF8String, Any}.

  2. Migrate code to a robust solution, no types?

  3. remove special type cases from JSON.parse() calls

Variable constructor return values

The variable_* functions should return some data structure including all of the variables they have added to the model.

The key challenge here is the type of data structure, as JuMP's @varaible macro can return a single variable, an array of variables, or a dict index-variable mapping.

SLP Example

Develop an example of using SLP in PowerModels.

Speed up Tests

See if caching parsed versions of the model data can improve the speed of running package tests.

Type Parsing in build_sets

The various Int(x) calls may not be necessary.

When parsing .m files these fields are already parsed to Int. When parsing .json these values may come in as Int, Float, or Number. Needs to be investigated.

Possible typos in constraints.jl

In constraint_active_loss_lb, p_fr and p_to are defined identically:

    p_fr = getvariable(pm.model, :p)[f_idx]
    p_to = getvariable(pm.model, :p)[f_idx]

This is also the case for v_fr and v_to, and q_fr and q_to in constraint_reactive_loss_lb:

    v_fr = getvariable(pm.model, :v)[f_bus]
    v_to = getvariable(pm.model, :v)[f_bus]

    q_fr = getvariable(pm.model, :q)[f_idx]
    q_to = getvariable(pm.model, :q)[f_idx]

Tests for Variable and Constraint return values

Once #9 is resolved, the number of elements returned from all variable_* calls should be exactly equal to the variables in the JuMP model. And a similar property should be true for the constraint_* calls.

A simple and generic way to test the return value implementation correctness is to test that the total number of returned constraints and variables are consistent with the internal JuMP model.

Variable lookup helper

Consider adding a helper function to do getvariable(pm.model, :loading)[i]. Along the lines of getvariable(pm, :loading, i)

Cleaning up TNEP line on/off constraints

In light of recent changes can constraint_complex_voltage_ne{T <: AbstractWRForm} be made cleaner? Like constraint_complex_voltage_on_off{T <: AbstractWRForm}?

Multiphase support

Feature idea.

Optimal power models have traditionally only been done at the bulk power level. But with distributed generation and more advanced volt-var control, there's more opportunity to benefit from optimal models at the distribution level. To do that best, models need to include three phases and include single and two-phase lines and loads..

Strengthen DCLL OTS

in, function constraint_active_ohms_yt_on_off{T <: AbstractDCPLLForm}(pm::GenericPowerModel{T}, branch) add c4 = @constraint(pm.model, p_fr + p_to >= 0).

angle bound limits

Add checks to the appropriate constraints to check angle limits are within +/- pi/2.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.