Giter Club home page Giter Club logo

powersystems.jl's People

Contributors

chriscoey avatar ciaranrob avatar claytonpbarrows avatar daniel-thom avatar gabrielks avatar haleyross avatar jd-lara avatar jjstickel avatar juliatagbot avatar kdayday avatar kdheepak avatar kyradif avatar lilyhanig avatar luisdi97 avatar m-bossart avatar marenat avatar nickrobinson251 avatar odow avatar pitmonticone avatar pricklypointer avatar raphaelsaavedra avatar rodrigomha avatar sambuddhac avatar scdhulipala avatar sourabhdalvi avatar tavovalmo avatar tengis-nrl 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  avatar  avatar  avatar  avatar

powersystems.jl's Issues

dict_to_struct complains in Float -> Bool conversion

The dict_to_struct function is causing some errors where available is being passed as a Float64 and not a Bool. I added some convert in the code to fix it but requires review. Check Develop.

Error During Test
  Test threw an exception of type LoadError
  Expression: include("readforecastdata.jl")
  LoadError: MethodError: no method matching PowerSystems.RenewableCurtailment(::String, ::Int64, ::PowerSystems.Bus, ::Float64, ::PowerSystems.EconRenewable, ::TimeSeries.TimeArray{Union{Float64, Missings.Missing},1,DateTime,Array{Union{Float64, Missings.Missing},1}})
  Closest candidates are:
    PowerSystems.RenewableCurtailment(::String, ::Bool, ::PowerSystems.Bus, ::Float64, ::Union{PowerSystems.EconRenewable, Void}, ::TimeSeries.TimeArray) at /Users/jdlara/.julia/v0.6/PowerSystems/src/models/generation/renewable_generation.jl:46
  Stacktrace:
   [1] gen_dict_parser(::Dict{String,Any}) at /Users/jdlara/.julia/v0.6/PowerSystems/src/parsers/dict_to_struct.jl:228
   [2] ps_dict2ps_struct(::Dict{String,Any}) at /Users/jdlara/.julia/v0.6/PowerSystems/src/parsers/dict_to_struct.jl:17
   [3] include_from_node1(::String) at ./loading.jl:576
   [4] include(::String) at ./sysimg.jl:14
   [5] include_from_node1(::String) at ./loading.jl:576
   [6] include(::String) at ./sysimg.jl:14
   [7] process_options(::Base.JLOptions) at ./client.jl:305
   [8] _start() at ./client.jl:371
  while loading /Users/jdlara/.julia/v0.6/PowerSystems/test/readforecastdata.jl, in expression starting on line 10
ERROR: LoadError: There was an error during testing
while loading /Users/jdlara/.julia/v0.6/PowerSystems/test/runtests.jl, in expression starting on line 237

Units of PowerSystems.

Should PowerSystems be stored in p.u. or in MW? For now, we have a mix, but we should be consistent and avoid issues in modeling. This is related to #10 and in particular, complicates the modeling of line flows.

update parsing code to v0.7

Please consider that Pkg.dir() doesn't work anymore. Check the code in readnetworkdara.jl as template on how to navigate directories.

parsing MATPOWER file scales generator MW values by 1/100

# from matpower file
sys_UC.generators.thermal[1].tech
TechThermal(3.24498, (min = 2.6, max = 5.2), 3.9, (min = -3.9, max = 3.9), (up = 0.0, down = 0.0), nothing)
# from .jl file
sys_UC_psst.generators.thermal[3].tech
TechThermal(520.0, (min = 260.0, max = 520.0), 100.0, (min = -390.0, max = 390.0), nothing, nothing)

Review all data files.

During the process for developing cases in PowerSimulations errors in angle limits and line rates where found.

Document units in devices structs

things like ramp limits have units. We need a clear documentation of what they are, and some QC around the parsing to ensure that appropriate unit conversions are made.

ybus calculation broken

Jose can you also look at my branch dev-forecast-parser, after changing susceptance to @nt(from,to) the ybus calculations are broken and I need that for both CDM parser and forecast parser to build a PowerSystem struct.
Once thats done I can push my parser files

Powersimulations fails when bus number is not consecutive

sys5 with bus5.number = 10 creates an error when trying to reference the JuMP.Array

julia> dump(sys.buses[5])
Bus
  number: Int64 10
  name: String "bus5"
  bustype: String "PQ"
  angle: Float64 0.0
  voltage: Float64 1.0
  voltagelimits: NamedTuple{(:min, :max),Tuple{Float64,Float64}}
    min: Float64 0.9
    max: Float64 1.1
  basevoltage: Float64 230.0
julia> PowerSimulations.constructdevice!(op_model.model, netinjection, category.device, category.formulation, op_model.transmission, sys)
ERROR: Variable name p_th[Solitude,1] is already used by MathOptInterface.VariableIndex(1))
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] check_can_assign_name(::JuMP.JuMPMOIModel{Float64}, ::Type{MathOptInterface.VariableIndex}, ::MathOptInterface.VariableIndex, ::String) at /Users/cbarrows/.julia/packages/MathOptInterface/62rhX/src/Utilities/model.jl:162
 [3] set at /Users/cbarrows/.julia/packages/MathOptInterface/62rhX/src/Utilities/model.jl:189 [inlined]
 [4] set(::MathOptInterface.Utilities.CachingOptimizer{MathOptInterface.AbstractOptimizer,MathOptInterface.Utilities.UniversalFallback{JuMP.JuMPMOIModel{Float64}}}, ::MathOptInterface.VariableName, ::MathOptInterface.VariableIndex, ::String) at /Users/cbarrows/.julia/packages/MathOptInterface/62rhX/src/Utilities/cachingoptimizer.jl:400
 [5] set(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{MathOptInterface.AbstractOptimizer,MathOptInterface.Utilities.UniversalFallback{JuMP.JuMPMOIModel{Float64}}},MathOptInterface.Bridges.AllBridgedConstraints{Float64}}, ::MathOptInterface.VariableName, ::MathOptInterface.VariableIndex, ::String) at /Users/cbarrows/.julia/packages/MathOptInterface/62rhX/src/Bridges/bridgeoptimizer.jl:200
 [6] set(::Model, ::MathOptInterface.VariableName, ::VariableRef, ::String) at /Users/cbarrows/.julia/packages/JuMP/LjMor/src/JuMP.jl:479
 [7] set_name at /Users/cbarrows/.julia/packages/JuMP/LjMor/src/variables.jl:225 [inlined]
 [8] add_variable(::Model, ::JuMP.ScalarVariable{Float64,Float64,Float64,Float64}, ::String) at /Users/cbarrows/.julia/packages/JuMP/LjMor/src/variables.jl:593
 [9] macro expansion at /Users/cbarrows/.julia/packages/JuMP/LjMor/src/macros.jl:180 [inlined]
 [10] activepowervariables(::Model, ::Array{ThermalDispatch,1}, ::Int64) at /Users/cbarrows/Documents/repos/PowerSimulations.jl/src/device_models/thermal_generation/thermal_variables.jl:12
 [11] #constructdevice!#122(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Model, ::NamedTuple{(:var_active, :var_reactive, :timeseries_active, :timeseries_reactive),Tuple{Array{JuMP.GenericAffExpr{Float64,VariableRef},2},Nothing,Array{Float64,2},Nothing}}, ::Type{ThermalGen}, ::Type{PowerSimulations.ThermalDispatch}, ::Type{CopperPlatePowerModel}, ::PowerSystem{Union{Nothing, Array{#s719,1} where #s719<:ThermalGen},Union{Nothing, Array{#s720,1} where #s720<:RenewableGen},Union{Nothing, Array{#s721,1} where #s721<:HydroGen},ElectricLoad,Array{Branch,1},Array{PowerSystems.Storage,1}}) at /Users/cbarrows/Documents/repos/PowerSimulations.jl/src/component_constructors/thermalgeneration_constructor.jl:8
 [12] constructdevice!(::Model, ::NamedTuple{(:var_active, :var_reactive, :timeseries_active, :timeseries_reactive),Tuple{Array{JuMP.GenericAffExpr{Float64,VariableRef},2},Nothing,Array{Float64,2},Nothing}}, ::Type{ThermalGen}, ::Type{PowerSimulations.ThermalDispatch}, ::Type{CopperPlatePowerModel}, ::PowerSystem{Union{Nothing, Array{#s719,1} where #s719<:ThermalGen},Union{Nothing, Array{#s720,1} where #s720<:RenewableGen},Union{Nothing, Array{#s721,1} where #s721<:HydroGen},ElectricLoad,Array{Branch,1},Array{PowerSystems.Storage,1}}) at /Users/cbarrows/Documents/repos/PowerSimulations.jl/src/component_constructors/thermalgeneration_constructor.jl:8
 [13] top-level scope at none:0

Improve parsing

Remove transform between String and Substring. Implement CSV.jl or CSVFile.jl only for parsing data .csv

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.