Unfortunately, I am not really familiar with the details of this code since it 
was contributed by others. My first thought is that it might be something 
related to topology. You could run case_info() on the original case just to see 
if it shows anything unexpected, although the most obvious issues (e.g. 
islands, isolated buses) would likely also cause problems for the power flow. 
Another thought is whether there is a possibility that the elimination of 
certain buses could result in topology problems?

Sorry, I am not able to be more helpful in debugging this.

   Ray


On Jun 2, 2022, at 5:57 PM, Lusha Wang 
<lushawan...@gmail.com<mailto:lushawan...@gmail.com>> wrote:

Hello Ray,

I have checked the code inside MPReduction, and noticed that the issue comes 
from the infinite loop in SelfLink.m.

    SelfRef = Start;
    Counter = 0;
    while Link(SelfRef)~=0
        Counter = Counter+1; % count how many linkage in this list
        LinkPos(Counter)=SelfRef;
        SelfRef = Link(SelfRef);
        LinkArray(Counter)=SelfRef; % create the array of the self referential 
link list
    end

Link(SelfRef) is 37 or 585 and therefore the process is stuck in the infinite 
loop.

Thanks,
Lusha

On Wed, Jun 1, 2022 at 4:57 PM Lusha Wang 
<lushawan...@gmail.com<mailto:lushawan...@gmail.com>> wrote:
Hi Ray,

Thanks for answering the question. Yes I can solve power flow but I couldn't do 
MPReduction.

The information is as follows:
>> test

Eliminate 0 isolated buses
Eliminate 0 branches
Eliminate 0 generators
Preprocessing complete
Convert input data model
Creating Y matrix of input full model
Do first round reduction eliminating all external buses

--------------(after a long time)-----------------------------------------

Requested 2147483649x1 (16.0GB) array exceeds maximum array size preference 
(16.0GB).
This might cause MATLAB to become unresponsive.

Error in SelfLink (line 51)
        LinkPos(Counter)=SelfRef;

Error in PartialSymLU (line 97)
            [LinkPos,LinkArray,Counter] = SelfLink(Link,RowIndex);

Error in DoReduction (line 42)
[ERPU,CIndxU,ERPEQ,CIndxEQ] = 
PartialSymLU(CIndx,ERP,dim,length(ExBus),BoundBus);

Error in MPReduction (line 67)
[mpcreduced,BCIRCr,ExBusr] = 
DoReduction(DataB,ERP,CIndx,ExBus,NUMB,dim,BCIRC,newbusnum,oldbusnum,mpc); % 
ExBusr with original numbering

Error in test (line 11)
[mpcreduced,Link,BCIRCr]=MPReduction(mpc,ExBus,0); % call reduction subroutine

Related documentation

Thanks,
Lusha


On Tue, May 24, 2022 at 12:35 PM Ray Daniel Zimmerman 
<r...@cornell.edu<mailto:r...@cornell.edu>> wrote:
Have you validated the original 2000 bus system? Can you solve a power flow or 
OPF on it?

If so, could you post the exact error message you are seeing with MPReduction?

     Ray




On May 22, 2022, at 11:22 PM, Lusha Wang 
<lushawan...@gmail.com<mailto:lushawan...@gmail.com>> wrote:

Hi Sir or Madam,

I am trying to reduce a network from 2000 nodes to somewhere below 100 nodes. I 
tried to use the MPReduction function, however, it gives runtime error saying 
that the system is too big and it has some problems with calculation. Do you 
have any suggestions on this issue? Like, how to reduce a large-size network in 
matpower?

Thanks,
Lusha Wang


Reply via email to