/SCCUCSupplement

Repository containing supplementary data and code for "Unit Commitment with N-1 Security and Wind Uncertainty"

Primary LanguageJulia

SCCUCSupplement

Repository containing supplementary data and code for a chance-constrained unit commitment problem with N-1 security and wind uncertainty". arxiv

Installation instructions:

The optimization model was implemented by using the JuMPChance extension to JuMP in the Julia programming language. Additionally, we used CPLEX 12.2 in our numerical experiments. CPLEX is a commercial solver which must be installed and licensed separately (one may easily use a different solver if CPLEX is not available, see the JuMP documentation).

The experiments require Julia 0.4.2 or later, and the following Julia packages:

You should force the use of particular versions of these Julia packages with

julia> Pkg.pin("JuMP", v"0.11.1")
julia> Pkg.pin("JuMPChance", v"0.2.2")
julia> Pkg.pin("CPLEX", v"0.1.0")
julia> Pkg.pin("MatpowerCases", v"0.3.2")

Running the code:

The code for the experiments is contained in the codejl directory. The file input.jl contains routines and data structures for processing the input, and the file sccuc_simulation.jl contains the main simulation logic and optimization model. The scenarios.jl and matrix.jl contain certain additional functions to generate the scenarios and bus admittance matrices, respectively.

You can run the model by entering the run directory and executing:

julia ../codejl/sccuc_simulation.jl case96.dat

The output of the simulation is a .jld file (case96.jld) which can be opened directly loaded in Julia via the JLD package. Contained in the .jld file are the optimal objective values, solution times, solution status, and optimal values for the decision variables.

The file case96.dat specifies all of the input paths and parameters for the simulation. In particular, one can modify the parameters for different runs. The input data and the format of the input data is contained in the folder data. The code can be run on other systems by changing the input data suitably according to the data format specified in dataformat file in the data folder.

Further documentation is available on request.