Shrirang, Thanks. It makes sense, I'll try it ASAP.
Jovan On Fri, Mar 14, 2014 at 10:36 AM, Abhyankar, Shrirang G. < [email protected]> wrote: > > On Mar 14, 2014, at 9:10 AM, Jovan Ilic wrote: > > > Is there something funny about case300? makeJac returns errors. > > > makeJac() expects internal ordering of buses. Here's a note from the > help info on makeJac > > %Bus numbers must be consecutive beginning at 1 (internal ordering). > > Hence, > makeJac(loadcase('case300')) fails because the bus numbering is not > consecutive in the casefile. But > makeJac(ext2int(loadcase('case300'))) does work. > > Since makeJac() fails I'd expect runpf() to fail as well but it does > not. > > > makeJac() is not called by runpf(), there is a duplication of the same > makeJac() code in newtonpf(). > > > > I wrote a plain vanilla power flow without enforcing Qg limits and get > the > same results for other cases but |V| in case300 are much lower than > with Matpower runpf. > > > Incorrect generator terminal voltage setpoints? > > > > It seems that makeYbus() fails on case3012wp, case3375wp. > > >> makeYbus(loadcase('case3012wp')) > Error using makeYbus (line 65) > buses must appear in order by bus number > > This is an internal ordering issue again. You'll need to convert your > casestruct to internal ordering before using MakeYbus. > > mpc = ext2int(loadcase(<casefilename>)); > > Note > that runpf() executes for both of these cases with case3012wp badly > conditioned Jacobian. Should runpf() fail here since MakeYbus() fails? > > runpf() and runopf() do an internal ordering of the bus numbers and > hence MakeYbus() does not fail. > > I should probably spend more time going through Matpower code than > asking these questions but if somebody has already figured out what > is going on maybe you can save me some time. > > Thanks, > Jovan > > >> makeJac(case300) > Error using sparse > Index exceeds matrix dimensions. > > Error in bustypes (line 49) > Cg = sparse(gen(:, GEN_BUS), (1:ng)', gen(:, GEN_STATUS) > 0, nb, ng); %% > gen connection matrix > > Error in makeJac (line 63) > [ref, pv, pq] = bustypes(bus, gen); > > >> condest(makeJac(100,case300.bus,case300.branch,case300.gen)) > Error using sparse > Index exceeds matrix dimensions. > > Error in bustypes (line 49) > Cg = sparse(gen(:, GEN_BUS), (1:ng)', gen(:, GEN_STATUS) > 0, nb, ng); %% > gen connection matrix > > Error in makeJac (line 63) > [ref, pv, pq] = bustypes(bus, gen); > > >> > > >> makeYbus(case3012wp); > Error using makeYbus (line 65) > buses must appear in order by bus number > > > > > On Mon, Mar 10, 2014 at 4:38 PM, Ray Zimmerman <[email protected]> wrote: > >> Yes, both were bugs. I believe I've fixed them in my dev version so they >> should be fine in the next release, thanks to your excellent reporting >> complete with examples. >> >> Thanks, >> >> -- >> Ray Zimmerman >> Senior Research Associate >> B30 Warren Hall, Cornell University, Ithaca, NY 14853 >> phone: (607) 255-9645 >> >> >> >> On Mar 10, 2014, at 10:06 AM, Jovan Ilic <[email protected]> wrote: >> >> >> I ran Matpower 4.1 on the included cases and ran into a couple of >> things which might be bugs or features. I included examples below. >> >> Jovan Ilic >> >> >> 1) ENFORCE_Q_LIMS = 1 in mpopt does not work if there is only one PV >> bus >> ( guessing the reason) >> >> Example: >> >> mpopt4 = mpoption(mpopt, 'OUT_ALL', 0, 'VERBOSE',0, 'ENFORCE_Q_LIMS', >> 0); >> >> mpopt = mpoption(mpopt, 'OUT_ALL', 0, 'VERBOSE',0, 'ENFORCE_Q_LIMS', >> 1); >> >> case4gs = loadcase('case4gs'); >> >> case4gsSolved = runpf(case4gs,mpopt4); >> >> case4gsSolved = runpf(case4gs,mpopt) >> Attempted to access pv(1); index out of bounds because numel(pv)=0. >> >> Error in bustypes (line 61) >> ref = pv(1); %% use the first PV bus >> >> Error in runpf (line 291) >> [ref, pv, pq] = bustypes(bus, gen); >> >> >> >> >> 2) ENFORCE_Q_LIMS = 1 in mpopt can set slack bus to PQ bus type >> >> I am not sure if this is what we want. You should be careful to set it >> back to slack bus if using the solved case to run runpf again. >> >> Example: >> >> >> mpopt = mpoption(mpopt, 'OUT_ALL', 0, 'VERBOSE',0, 'ENFORCE_Q_LIMS', >> 1); >> >> case300 = loadcase('case300') >> >> case300 = >> >> version: '2' >> baseMVA: 100 >> bus: [300x13 double] >> gen: [69x21 double] >> branch: [411x13 double] >> gencost: [69x7 double] >> >> >> case300Solved = runpf(case300,mpopt); >> >> sum(case300.bus(:,2)==3) >> >> ans = >> >> 1 >> >> >> sum(case300Solved.bus(:,2)==3) >> >> ans = >> >> 0 >> >> >> >> >> > > > -- > A pessimist is an optimist with experience. > > > -- A pessimist is an optimist with experience.
