1. That is setting a fixed load, not altering the dispatchable loads that were set up by load2disp(). I expect this problem is infeasible.
2. If the success flag is true all constraints will be satisfied. If not, the results are meaningless. Always check the success flag. Question I : For running DC OPFs I strongly recommend using one of the optional solvers like CPLEX, Gurobi or even the Optimization Toolbox. For LP and QP problems like the DC OPF, they are far more robust than the default MIPS solver. They can also tell you whether a failure is due to infeasibility or numerical difficulties or what. Question II : There can be many reasons for non-convergence. Infeasibility of the problem is the most common. Again a better solver can give you more information. -- Ray Zimmerman Senior Research Associate B30 Warren Hall, Cornell University, Ithaca, NY 14853 phone: (607) 255-9645 On Jan 20, 2014, at 9:29 AM, Petr Kaplunovich <[email protected]> wrote: > Dear all, > > I am trying to simulate dispatchable loads. I am doing the following: > > mpc = loadcase('case300'); > > mpc = load2disp(mpc); > > [mpc_solved, bare_success] = rundcopf(mpc,mpoption('OUT_ALL',0,'VERBOSE',0)); > > Then I have to experiments: > > 1. Setting mpc.bus(1,3) = 100000; before running DCOPF in order to exceed the > generation. > > 2. Setting mpc.branch(:,6) = 100; in order to set low branch limits. > > Both experiments are aimed to force the load shedding. > > While the results of the first simulation seem to satisfy all constraints, > the second one gives the martix singularity warnings and the solution does > not satisfy all the constraints: > > For ex. one of the rows of the gen matrix: > > # Pg > Pmin > > 13 -67.8104690140355 -10 0 -10 0.997700000000000 > 100 1 0 -58 > Pg is obviously less than allowed Pmin. > > Question I. I wonder if there is a way to avoid matrix warnings and get a > solution satisfying all constraints. I don't see any reason why it should not > be possible to find a solution for lowered branch limits except for may be > bad initial/starting point. > > > > Question II. I am also trying to imitate dispatchable loads myself by > creating generators with Pmin = -Pg and Pmax = 0, and gencost to be very > large negative number : > > disp_case = loadcase('case300'); > > dc = disp_case; > > for i=1:size(dc.bus,1) > > if (dc.bus(i,2) == 1) > > dc.bus(i,2) = 2; > > dc.gen(size(dc.gen,1)+1,1:10) = > [dc.bus(i,1),0,0,0,0,dc.bus(i,8),100,1,0,-dc.bus(i,3)]; > > dc.gen(size(dc.gen,1),11:25) = 0; > > dc.gencost(size(dc.gencost,1)+1,1:8) = > [1,0,0,2,-dc.bus(i,3),-10000*dc.bus(i,3),0,0]; > > end > > end > > disp_case = dc; > > mpopt = mpoption('OUT_ALL',0,'VERBOSE',0); > > > [disp_case_solved, disp_success] = rundcopf(disp_case,mpopt); > > > > The procedure doesn't give me any errors, just the disp_success is equal to > 0, and no values are being calculated. What can be the reason for this? > > > > > > Thank you so much! > > Petya >
