Hi Ray,

Thanks for your helpful explanation - that makes perfect sense. Sorry that I 
didn't spot this myself before asking the mailing list.


Regards,


Dominic

________________________________
From: [email protected] 
<[email protected]> on behalf of Ray Zimmerman 
<[email protected]>
Sent: 29 January 2015 15:46
To: MATPOWER discussion forum
Subject: Re: Solved case does not converge in zero iterations

Sorry, that output should have included the following …

MATPOWER Version 5.0, 17-Dec-2014 -- AC Power Flow (Newton)

 it    max P & Q mismatch (p.u.)
----  ---------------------------
  0         5.074e-11
Converged!

Guess I copied it from a run with ‘verbose’ = 0.

   Ray


On Jan 29, 2015, at 9:37 AM, Ray Zimmerman 
<[email protected]<mailto:[email protected]>> wrote:

Hi Dominic,

I don’t think there is any bug here. First of all, the issue of the power flow 
converging in 1 iteration as opposed to zero is simply an issue of the 
termination tolerances. The issue of non-matching reactive power outputs is 
related to the fact that there are two generators at the same bus, either of 
which could generate the reactive power. The total reactive power injected at 
the bus is the same in both solutions, so the power flow equations are 
satisfied in both cases. The OPF solution has all of the reactive supply at the 
bus coming from one of the two generators. The power flow code splits the 
reactive injection between multiple units proportional to the reactive range of 
each unit.

The following code (also in attached script file) results in the output below 
and will hopefully qualm any doubts ...

define_constants;
load mpc123b
mpopt = mpoption('opf.ac.solver', 'MIPS', 'mips.comptol', 1e-10, 
'mips.step_control', 1);
mpopt = mpoption(mpopt, 'out.all', 0);
r1 = runopf(mpc123, mpopt);
mpopt = mpoption(mpopt, 'verbose', 2);
r2 = runpf(r1, mpopt);
compare_case(r1, r2)
k = find(r1.gen(:, GEN_BUS) == r1.gen(220, GEN_BUS))
[r1.gen(k, QG) r2.gen(k, QG)]
sum([r1.gen(k, QG) r2.gen(k, QG)])


>> test123

MATPOWER Version 5.0, 17-Dec-2014 -- AC Optimal Power Flow
MATLAB Interior Point Solver -- MIPS-sc, Version 1.1, 17-Dec-2014
Converged!

MATPOWER Version 5.0, 17-Dec-2014 -- AC Power Flow (Newton)
----------------  --------------  --------------  --------------  -----
 matrix / col         case 1          case 2        difference     row
----------------  --------------  --------------  --------------  -----
bus
  VM                       1.1             1.1     2.22045e-16     44
  VA                   35.2787         35.2787     1.42109e-14    180 *

gen
  PG                6.4271e-10     6.38956e-10     3.75491e-12   3414
  QG               1.02725e-10         494.118         494.118    220 *

branch
  PF                   75.2832         75.2832     2.81496e-09   2148 *
  QF                     8.577           8.577     1.48452e-09   2148
  PT                  -75.2831        -75.2831     2.81496e-09   2148
  QT                  -8.65882        -8.65882     1.48449e-09   2148

k =

   219
   220


ans =

  867.6421  373.5236
    0.0000  494.1184


ans =

  867.6421  867.6421


--
Ray Zimmerman
Senior Research Associate
B30 Warren Hall, Cornell University, Ithaca, NY 14853  USA
phone: (607) 255-9645

<test123.m>

On Jan 28, 2015, at 1:42 PM, Hewes, Dominic 
<[email protected]<mailto:[email protected]>> wrote:

Dear Matpower Community,

I am observing a strange problem whereby the results from a successful 
'runopf()' do not seem to present a solved power flow case. I want to verify 
the power flow solution from an OPF by running a PF with the OPF results as the 
mpc struct. Firstly, the 'runpf()' converges in 1 iteration, whereas i would 
expect a solved case to converge in 0 iterations- am i mistaken here? Secondly, 
when i use the 'compare_case()' command to compare the OPF results with the 
resulting PF results, I see that there are large differences between the 
solutions. My code is as follows:

resultsOPF=runopf(mpc123);
resultsPF=runpf(resultsOPF);

compare_case(resultsOPF, resultsPF)

The comparison shows a maximum reactive power difference of 494 MVAR between 
the generator results:

gen
  PG               5.00578e-10     9.67145e-09     9.17088e-09    614
  QG               7.99959e-11         494.118         494.118    218 *

The OPF command converges successfully with no error warnings, and so I assumed 
that running the results struct through a PF command should give the same power 
flow solution. Am i mistaken here?  If my thinking is correct, this would 
indicate that the optimiser has provided results that do not represent a 
feasible power flow solution - is this potentially a bug? I have tested the 
same method on the 'case14.m' file and observe that this also requires 1 
iteration to converge and gives very small differences (~2e-7) between the OPF 
and PF results.

I am using the latest matpower release (5.0), the TSPOPF 5.0 solver and a 
windows 7 machine (see output of mpver at end of email). I have tried with 
other solvers and observe the same problem. I am working with a large model 
(>5000 bus) that i have attached below. Could the size of my model be the cause 
of this problem?

Presently I am not sure whether I am making a simple mistake or if there is a 
bug in the solver that is causing the output of inaccurate results.

Has anyone experienced similar problems? I would very much appreciate any 
advice on the cause of the problem.

Kind Regards,

Dominic


mpver

MATPOWER               Version 5.0        17-Dec-2014
MATLAB                 Version 8.4        08-Sep-2014   Release: (R2014b)
Optimization Toolbox   Version 7.1        08-Sep-2014   Release: (R2014b)
MIPS                   Version 1.1        17-Dec-2014
SDP_PF                 -- not installed --
YALMIP                 -- not installed --
BPMPD_MEX              -- not installed --
CPLEX                  Version 12.6.0.0                 PCWIN64
Gurobi                 -- not installed --
GLPK                   -- not installed --
IPOPT                  -- not installed --
KNITRO                 -- not installed --
MINOPF                 -- not installed --
MOSEK                  -- not installed --
PDIPMOPF               Version 5.0        17-Dec-2014   PCWIN64
SCPDIPMOPF             Version 5.0        17-Dec-2014   PCWIN64
SDPT3                  -- not installed --
SeDuMi                 -- not installed --
TRALMOPF               Version 5.0        17-Dec-2014   PCWIN64
Architecture:          PCWIN64
<mpc123.mat>


Reply via email to