Hi, Dr. Zimmerman: In my case, the optimal power flow result is numerically failed. I tried to use check_feasibility(mpc) to find out the reason. The following is the result.
V = check_feasibility(mpc) V = 0.6097 Does this mean my generation is not enough? But after I increased the generation, it is still failed. And I also tried checklimits, it returns an error. [FV, PV] = checklimits(mpc) Index exceeds matrix dimensions. Error in checklimits (line 55) F = abs(mpc.branch(:, PF)); Thanks a lot. Jun On Mon, Jan 11, 2016 at 1:27 PM, Ray Zimmerman <[email protected]> wrote: > Ok, here are a few more ideas … > > Did you try checking the bus voltage limits and generator real and > reactive power limits for the successful power flow solution? You might > find the check_feasibility > <http://www.pserc.cornell.edu//matpower/docs/ref/matpower5.1/extras/misc/check_feasibility.html> > and checklimits > <http://www.pserc.cornell.edu//matpower/docs/ref/matpower5.1/extras/misc/checklimits.html> > functions > to be useful. If any of these are violated it could point you toward a > source of infeasibility. If not, maybe there is some numerical issue > affecting the OPF. Try different solvers if you have access to them. You > could also try turning on the opf.init_from_mpc option (assuming you are > using MIPS, Knitro or Ipopt as your OPF solver) and using the solved power > flow as input for the OPF. > > Ray > > > On Jan 7, 2016, at 2:22 PM, Alanazi, Falah <[email protected]> > wrote: > > Dear professor Ray, > > > I eliminated the branch flow limits but still the solution didn't converge. > > also I checked the mpc values and the limits it seems ok. In addition, I > tried to change some of the limits but still did not work > > I attached my data in case that may be helpful to find the problem. > > > On Tue, Jan 5, 2016 at 1:30 PM, Ray Zimmerman <[email protected]> wrote: > >> There are many possible reasons for a non-convergent OPF. One of the >> first things I always try is to eliminate the branch flow limits. E.g. >> >> define_constants; >> mpc= loadcase ('WECC179_3Area.mat');. >> mpopt = mpoption('out.lim.all',2) >> mpc.branch(:, RATE_A) = 0; >> results = runopf(mpc, mpopt); >> >> If that converges, then you likely have an infeasible problem, where some >> branch flow limit can’t be satisfied without violating something else. In >> that case, you can try multiplying the limits by some large factor that you >> gradually reduce toward 1 and observe which constraints (including voltage, >> reactive generation) bind hardest. They may show you which are your >> conflicting constraints. >> >> Hope these ideas help point you in the right direction ... >> >> Ray >> >> >> On Jan 5, 2016, at 12:42 PM, Alanazi, Falah <[email protected]> >> wrote: >> >> Dear Ray, >> >> I was running AC PF and it was working but when I tried to run AC OPF the >> solution did not converge. >> This is my code. >> >> define_constants; >> mpc= loadcase ('WECC179_3Area.mat');. >> mpopt = mpoption('out.lim.all',2) >> results = runopf(mpc, mpopt); >> >> best regards >> >> Falah >> >> >> >> >> On Tue, Jan 5, 2016 at 5:40 AM, Ray Zimmerman <[email protected]> wrote: >> >>> The options you are using should work when running an AC OPF. Is that >>> what you are running? >>> >>> Two other notes, regarding your options … >>> 1. The ENFORCE_Q_LIMS option is only for power flow, not OPF, and that >>> the VERBOSE option only affects display of solution progress, not final >>> results. >>> 2. You are mixing old-style option names (all caps) in your first line, >>> with new-style options in the second. This still works, but the old-style >>> options are deprecated. The new versions of ENFORCE_Q_LIMS and VERBOSE >>> are pf.enforce_q_lims and verbose, respectively. >>> >>> — Ray >>> >>> >>> >>> On Jan 4, 2016, at 5:09 PM, Alanazi, Falah <[email protected]> >>> wrote: >>> >>> Dear Sir, >>> >>> I would like to know how I can show the voltage constraints and the >>> branch flow constraints when I run OPF. >>> >>> When I used the matpower cases both constraints showes up but when I >>> used the WECC data they do not show up. I tried to use >>> >>> mpopt = mpoption('ENFORCE_Q_LIMS',0,'VERBOSE',3); >>> mpopt = mpoption(mpopt,'out.lim.all',2) >>> >>> best regards >>> >>> Falah >>> >>> >>> >> >> > <WECCPFlow.m> > > >
