I think the primary problem here is that case3375wp has an isolated bus. If I remove it, all of the following solvers work for me MIPS, PDIPM, IPOPT, KNITRO.
mpc = loadcase(‘case3375wp’); mpc = extract_islands(mpc, 1); r = runopf(mpc); Interestingly, for me MIPS is faster than both PDIPM and my build of IPOPT for this case. Ray > On Feb 18, 2015, at 5:46 AM, Irina Boiarchuk <[email protected]> wrote: > > Dear Matpower community, > > My question is about optimization of large scale systems and appropriate > solvers. > > I was testing OPF for the example systems, distributed with Matpower and I > followed the Matpower recommendations to use PDIPM and IPOPT solvers to deal > with large models. > > All provided examples converged successfully using both solvers, but the case > 'case3375wp' of Polish system has caused me some problems: > > 1. when I run opf with PDIPM solver, the optimization fails; > > 2. when I run opf with IPOPT solver, the optimization lasts too long (> 1 > hour) so I aborted it before it finished. > > I use pre-compiled binary version of IPOPT from the website > http://www.coin-or.org/download/binary/Ipopt/ > <http://www.coin-or.org/download/binary/Ipopt/> . It works fine with smaller > systems, but not with the 'case3375wp' ... > > Which optimizer should I use to obtain convergent opf solution for > 'case3375wp' ? > > > Any advice is appreciated! > > > Kind regards, > Irina Boiarchuk > > > On 17 February 2015 at 16:55, Irina Boiarchuk <[email protected] > <mailto:[email protected]>> wrote: > Thank you, Ray, your reply gives me enough motivation to try using IPOPT! > > Best, > Irina > > On 17 February 2015 at 16:41, Irina Boiarchuk <[email protected] > <mailto:[email protected]>> wrote: > Dear Olaf, > > thank you for the quick reply! > > It would be great to receive such version for testing. > > Is the problem of compatibility with R2014a and later of Matlab solved there? > > Is there any guidance how to install the connection with Matlab? > > Sorry for multiple questions! > > > I'm looking forward to your reply, > > Kind regards > Irina Boiarchuk > > On 17 February 2015 at 16:27, Olaf Schenk <[email protected] > <mailto:[email protected]>> wrote: > Dear Irina, > > IPOPT can handle large-scale systems MUCH better than PDIPM or MIPS. We are > in the process of building a Matpower IPOPT binary version that Ray > Zimmermann will put on the matpower webpage. > > If you like we can send you a binary so that you can test it. > > best regards, > Olaf Schenk > > > > On 17.02.2015 16:22, Irina Boiarchuk wrote: >> Dear all, >> >> my questions are about using IPOPT for optimization of large-scale systems. >> >> 1. Which MATLAB version do you have such that IPOPT works? (on their website >> it is said that there are some problems with R2014a of Matlab - i was >> wondering if it is still the case...) >> >> 2. Does IPOPT handle large-scale systems better than PDIPM or MIPS? >> >> I would appreciate any help regarding this issue! >> >> Kind regards, >> Irina Boiarchuk >> >> >> >> >> >> On 16 February 2015 at 22:49, Ray Zimmerman <[email protected] >> <mailto:[email protected]>> wrote: >> Absolutely. >> >> Ray >> >>> On Feb 16, 2015, at 12:11 PM, Bouchekara Houssem >>> <[email protected] <mailto:[email protected]>> wrote: >>> >>> Iam not using runopf but I have implemented my one OPF using MATPOWER >>> functions. >>> Another question, I guess that providing the Jacobian structure, Hessian >>> and Hessian structure will speed up the convergence? >>> >>> >>> On 2/16/2015 3:21 PM, Ray Zimmerman wrote: >>>> Again, it is not clear to me whether you are simply using MATPOWER’s OPF >>>> (i.e. runopf) or implementing your own. It would seem you’re implementing >>>> your own since the IPOPT output indicates that the Jacobian structure, >>>> Hessian and Hessian structure are not supplied. With MATPOWER’s OPF >>>> implementation that should not be the case. Here’s what I get … >>>> >>>> >> mpopt = mpoption('out.all', 0, 'verbose', 2, 'opf.ac.solver', 'IPOPT'); >>>> >> runopf('case30', mpopt) >>>> >>>> MATPOWER Version 5.1-dev, 06-Feb-2015 -- AC Optimal Power Flow >>>> This is Ipopt version 3.10.3, running with linear solver mumps. >>>> >>>> Number of nonzeros in equality constraint Jacobian...: 454 >>>> Number of nonzeros in inequality constraint Jacobian.: 324 >>>> Number of nonzeros in Lagrangian Hessian.............: 254 >>>> >>>> Total number of variables............................: 71 >>>> variables with only lower bounds: 0 >>>> variables with lower and upper bounds: 42 >>>> variables with only upper bounds: 0 >>>> Total number of equality constraints.................: 60 >>>> Total number of inequality constraints...............: 82 >>>> inequality constraints with only lower bounds: 0 >>>> inequality constraints with lower and upper bounds: 0 >>>> inequality constraints with only upper bounds: 82 >>>> >>>> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du >>>> alpha_pr ls >>>> 0 4.9036963e+02 1.21e+00 1.06e+01 0.0 0.00e+00 - 0.00e+00 >>>> 0.00e+00 0 >>>> 1 5.2670003e+02 4.79e-01 1.87e+02 0.1 1.28e+00 - 3.77e-01 >>>> 5.58e-01h 1 >>>> 2 5.7233174e+02 1.44e-02 8.54e+01 -0.4 6.07e-01 - 1.00e+00 >>>> 1.00e+00h 1 >>>> 3 5.7307970e+02 1.39e-02 5.98e+01 -1.0 9.22e-02 - 9.99e-01 >>>> 2.91e-01h 1 >>>> 4 5.7635279e+02 5.84e-03 1.90e+02 -1.3 1.49e-01 - 1.00e+00 >>>> 1.00e+00h 1 >>>> 5 5.7698733e+02 9.81e-04 6.93e+00 -2.0 6.20e-02 - 1.00e+00 >>>> 1.00e+00h 1 >>>> 6 5.7693657e+02 7.09e-05 5.84e+00 -2.9 1.30e-02 - 1.00e+00 >>>> 1.00e+00h 1 >>>> 7 5.7689674e+02 1.42e-05 6.89e-01 -3.8 7.65e-03 - 1.00e+00 >>>> 1.00e+00h 1 >>>> 8 5.7689223e+02 9.17e-06 5.46e-02 -5.3 6.06e-03 - 1.00e+00 >>>> 1.00e+00h 1 >>>> 9 5.7689227e+02 1.58e-06 1.08e-02 -6.8 2.65e-03 - 1.00e+00 >>>> 1.00e+00h 1 >>>> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du >>>> alpha_pr ls >>>> 10 5.7689232e+02 2.06e-07 1.63e-03 -8.3 9.69e-04 - 1.00e+00 >>>> 1.00e+00h 1 >>>> 11 5.7689233e+02 1.32e-08 1.19e-04 -9.3 2.47e-04 - 1.00e+00 >>>> 1.00e+00h 1 >>>> 12 5.7689233e+02 1.13e-10 1.08e-06 -11.0 2.29e-05 - 1.00e+00 >>>> 1.00e+00h 1 >>>> 13 5.7689233e+02 1.36e-14 9.86e-11 -11.0 2.15e-07 - 1.00e+00 >>>> 1.00e+00h 1 >>>> >>>> Number of Iterations....: 13 >>>> >>>> (scaled) (unscaled) >>>> Objective...............: 1.3985268672263120e+02 >>>> 5.7689233273085370e+02 >>>> Dual infeasibility......: 9.8586584428882276e-11 >>>> 4.0666966076913940e-10 >>>> Constraint violation....: 1.3558539391522494e-14 >>>> 1.3558539391522494e-14 >>>> Complementarity.........: 1.0529404232602505e-11 >>>> 4.3433792459485328e-11 >>>> Overall NLP error.......: 9.8586584428882276e-11 >>>> 4.0666966076913940e-10 >>>> >>>> >>>> Number of objective function evaluations = 14 >>>> Number of objective gradient evaluations = 14 >>>> Number of equality constraint evaluations = 14 >>>> Number of inequality constraint evaluations = 14 >>>> Number of equality constraint Jacobian evaluations = 14 >>>> Number of inequality constraint Jacobian evaluations = 14 >>>> Number of Lagrangian Hessian evaluations = 13 >>>> Total CPU secs in IPOPT (w/o function evaluations) = 0.035 >>>> Total CPU secs in NLP function evaluations = 0.046 >>>> >>>> EXIT: Optimal Solution Found. >>>> >> >>>> >>>> >>>> Regarding the issue of the objective function decreasing with each >>>> iteration, that is not necessarily to be expected with primal-dual >>>> interior point solvers such as the one used by IPOPT. The objective >>>> function may need to increase in order to improve feasibility. >>>> >>>> Ray >>>> >>>> >>>> >>>> >>>>> On Feb 14, 2015, at 2:33 PM, Bouchekara Houssem >>>>> <[email protected] <mailto:[email protected]>> >>>>> wrote: >>>>> >>>>> Dear all >>>>> I am trying to solve the OPF using the IPOPT solver (application on the >>>>> IEEE 30 bus test system). >>>>> However, I have some issues. >>>>> >>>>> The first one is that this solver takes many iterations and at the end, I >>>>> receive the message "Maximum Number of Iterations Exceeded.". if I >>>>> increase the number of iterations I obtain the same message on the time >>>>> of simulation !!! >>>>> >>>>> The second issue or question is that the objective function keep changing >>>>> but not always decreasing as you can see in the herewith results. I have >>>>> run the same problem using the fmincon function the objective function >>>>> does not increase at all it decreases all the time until convergence !!! >>>>> >>>>> Regards >>>>> >>>>> >>>>> Results >>>>> %------------------------------------------------------------------------------------------------------------------- >>>>> ------------------------------------------------------ >>>>> Nonlinear Program (NLP) Optimization >>>>> min f(x) >>>>> s.t. lb <= x <= ub >>>>> cl <= c(x) <= cu >>>>> ------------------------------------------------------ >>>>> Problem Properties: >>>>> # Decision Variables: 24 >>>>> # Constraints: 233 >>>>> # Bounds: 48 >>>>> # Nonlinear Inequality: 185 >>>>> ------------------------------------------------------ >>>>> Solver Parameters: >>>>> Solver: IPOPT >>>>> Objective Gradient: @(x)mklJac(prob.fun,x,1) [numdiff] >>>>> Constraint Jacobian: @(x)mklJac(prob.nlcon,x,nnl) [numdiff] >>>>> Jacobian Structure: Not Supplied >>>>> Lagrangian Hessian: Not Supplied >>>>> Hessian Structure: Not Supplied >>>>> ------------------------------------------------------ >>>>> >>>>> ****************************************************************************** >>>>> This program contains Ipopt, a library for large-scale nonlinear >>>>> optimization. >>>>> Ipopt is released as open source code under the Eclipse Public License >>>>> (EPL). >>>>> For more information visit http://projects.coin-or.org/Ipopt >>>>> <http://projects.coin-or.org/Ipopt> >>>>> ****************************************************************************** >>>>> >>>>> This is Ipopt version 3.11.7, running with linear solver ma57. >>>>> >>>>> Number of nonzeros in equality constraint Jacobian...: 0 >>>>> Number of nonzeros in inequality constraint Jacobian.: 2712 >>>>> Number of nonzeros in Lagrangian Hessian.............: 0 >>>>> >>>>> Total number of variables............................: 24 >>>>> variables with only lower bounds: 0 >>>>> variables with lower and upper bounds: 24 >>>>> variables with only upper bounds: 0 >>>>> Total number of equality constraints.................: 0 >>>>> Total number of inequality constraints...............: 113 >>>>> inequality constraints with only lower bounds: 0 >>>>> inequality constraints with lower and upper bounds: 72 >>>>> inequality constraints with only upper bounds: 41 >>>>> >>>>> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du >>>>> alpha_pr ls >>>>> 0 8.2505796e+002 3.92e+001 2.39e+000 0.0 0.00e+000 - 0.00e+000 >>>>> 0.00e+000 0 >>>>> 1 8.2333913e+002 3.43e+001 2.88e+001 0.0 3.26e+000 - 4.40e-001 >>>>> 7.91e-002f 2 >>>>> 2 8.1521317e+002 0.00e+000 6.48e+001 -0.4 5.64e+000 - 8.84e-001 >>>>> 1.00e+000f 1 >>>>> 3 8.0493896e+002 0.00e+000 6.52e+001 0.0 3.96e+001 - 8.87e-001 >>>>> 4.80e-001f 2 >>>>> 4 8.0277302e+002 0.00e+000 2.39e+001 -0.1 3.95e+000 - 9.88e-001 >>>>> 1.00e+000h 1 >>>>> 5 8.0079336e+002 0.00e+000 3.27e+001 -0.8 5.65e+000 - 9.86e-001 >>>>> 1.00e+000f 1 >>>>> 6 7.9975232e+002 0.00e+000 1.50e+001 -1.3 1.64e+000 - 9.99e-001 >>>>> 7.80e-001f 1 >>>>> 7 7.9977509e+002 0.00e+000 1.70e+001 -1.1 1.52e+000 - 1.00e+000 >>>>> 1.00e+000h 1 >>>>> 8 7.9947341e+002 0.00e+000 2.73e+000 -1.7 7.49e-001 - 9.98e-001 >>>>> 1.00e+000h 1 >>>>> 9 7.9933411e+002 0.00e+000 1.06e+001 -2.2 2.68e+000 - 9.99e-001 >>>>> 1.00e+000h 1 >>>>> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du >>>>> alpha_pr ls >>>>> 10 7.9931298e+002 0.00e+000 1.50e+001 -1.9 4.96e+000 - 1.00e+000 >>>>> 1.00e+000H 1 >>>>> 11 7.9945021e+002 0.00e+000 2.00e+001 -1.6 9.10e+000 - 1.00e+000 >>>>> 4.53e-001f 2 >>>>> 12 7.9940918e+002 0.00e+000 5.80e+000 -1.7 2.61e+000 - 7.69e-001 >>>>> 1.00e+000h 1 >>>>> 13 7.9935727e+002 0.00e+000 9.48e+000 -1.7 5.58e+000 - 8.33e-001 >>>>> 2.62e-001h 2 >>>>> 14 7.9970882e+002 0.00e+000 1.04e+001 -1.7 4.50e+000 - 1.00e+000 >>>>> 1.00e+000H 1 >>>>> 15 7.9936389e+002 0.00e+000 1.04e+001 -1.7 3.89e+000 - 1.00e+000 >>>>> 1.00e+000H 1 >>>>> 16 7.9932908e+002 0.00e+000 2.52e+000 -1.7 1.06e+001 - 5.30e-001 >>>>> 8.14e-002h 3 >>>>> 17 7.9940245e+002 0.00e+000 9.01e+000 -1.7 9.80e-001 - 1.00e+000 >>>>> 1.00e+000h 1 >>>>> 18 8.0110400e+002 0.00e+000 2.25e+001 -1.7 1.04e+001 - 5.27e-001 >>>>> 1.00e+000H 1 >>>>> 19 7.9946399e+002 0.00e+000 4.25e+000 -1.7 1.20e+001 - 1.00e+000 >>>>> 1.00e+000F 1 >>>>> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du >>>>> alpha_pr ls >>>>> 20 7.9948550e+002 0.00e+000 1.00e+001 -1.3 1.24e+001 - 1.00e+000 >>>>> 2.28e-001f 2 >>>>> 21 7.9975197e+002 0.00e+000 1.65e+001 -1.5 3.80e+000 - 7.44e-001 >>>>> 1.00e+000h 1 >>>>> 22 8.0029390e+002 0.00e+000 4.95e+001 -1.5 4.78e+000 - 1.00e+000 >>>>> 7.66e-001H 1 >>>>> 23 7.9969885e+002 0.00e+000 3.75e+001 -1.5 7.79e+000 - 4.43e-001 >>>>> 7.55e-001F 1 >>>>> 24 8.0153952e+002 0.00e+000 5.42e+001 -1.5 6.09e+000 - 3.71e-001 >>>>> 1.00e+000H 1 >>>>> 25 8.0083849e+002 0.00e+000 5.53e+001 -1.5 9.48e+000 - 3.14e-001 >>>>> 1.60e-001f 3 >>>>> 26 8.0055898e+002 0.00e+000 5.68e+001 -1.5 7.24e+001 - 1.35e-001 >>>>> 2.09e-002f 3 >>>>> 27 7.9993130e+002 0.00e+000 2.14e+001 -1.5 1.56e+001 - 1.22e-001 >>>>> 1.16e-001f 2 >>>>> 28 7.9966609e+002 0.00e+000 2.34e+001 -1.5 1.13e+001 - 1.91e-001 >>>>> 2.55e-001h 1 >>>>> 29 7.9951187e+002 0.00e+000 4.68e+000 -1.5 1.61e+001 - 7.25e-002 >>>>> 2.62e-001f 1 >>>>> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du >>>>> alpha_pr ls >>>>> 30 8.0267261e+002 0.00e+000 2.31e+001 -1.5 9.14e+000 - 6.12e-001 >>>>> 9.49e-001H 1 >>>>> 31 8.0226367e+002 0.00e+000 1.04e+001 -1.5 1.01e+001 - 3.30e-001 >>>>> 8.99e-002f 3 >>>>> 32 8.0192666e+002 0.00e+000 1.32e+001 -1.5 2.47e+001 - 8.06e-002 >>>>> 2.93e-002f 4 >>>>> 33 8.0132986e+002 0.00e+000 9.01e+000 -1.5 1.40e+001 - 5.76e-001 >>>>> 1.32e-001f 1 >>>>> 34 8.0105092e+002 0.00e+000 6.84e+000 -1.5 7.34e+000 - 8.30e-001 >>>>> 9.60e-002f 3 >>>>> 35 7.9977021e+002 0.00e+000 3.28e+001 -1.5 9.26e+000 - 3.27e-001 >>>>> 8.37e-001F 1 >>>>> 36 8.0033089e+002 0.00e+000 4.86e+001 -1.5 4.62e+000 - 1.00e+000 >>>>> 1.00e+000H 1 >>>>> 37 7.9996104e+002 0.00e+000 1.06e+001 -1.5 5.43e+000 - 1.96e-001 >>>>> 1.75e-001f 2 >>>>> 38 7.9951421e+002 0.00e+000 9.42e+000 -1.5 1.59e+001 - 2.53e-001 >>>>> 1.96e-001f 2 >>>>> 39 7.9967929e+002 0.00e+000 3.01e+001 -1.5 3.16e+000 - 9.19e-001 >>>>> 7.79e-001H 1 >>>>> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du >>>>> alpha_pr ls >>>>> 40 7.9962530e+002 0.00e+000 2.19e+001 -1.5 6.91e+000 - 1.80e-001 >>>>> 1.78e-001h 3 >>>>> 41 7.9951740e+002 0.00e+000 1.26e+000 -1.5 1.88e+000 - 1.00e+000 >>>>> 1.00e+000h 1 >>>>> 42 8.0007055e+002 0.00e+000 9.26e+000 -1.5 3.65e+000 - 1.00e+000 >>>>> 1.00e+000H 1 >>>>> 43 7.9994265e+002 0.00e+000 7.74e+000 -1.5 7.16e+000 - 5.93e-001 >>>>> 9.68e-002h 4 >>>>> 44 7.9969538e+002 0.00e+000 6.51e+000 -1.5 7.45e+000 - 6.32e-001 >>>>> 1.92e-001h 2 >>>>> 45 7.9957525e+002 0.00e+000 4.13e+000 -1.5 1.30e+001 - 4.92e-001 >>>>> 5.31e-002h 3 >>>>> 46 7.9993363e+002 0.00e+000 2.71e+001 -1.5 4.17e+000 - 4.89e-001 >>>>> 1.00e+000H 1 > ... > > [Message clipped] > > >
