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.

Reply via email to