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]> 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]> 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]> wrote: >> >>> Absolutely. >>> >>> Ray >>> >>> On Feb 16, 2015, at 12:11 PM, Bouchekara Houssem < >>> [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]> 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 >>> >>> ****************************************************************************** >>> >>> 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] > > >
