Thanks, Nasiruzzaman and Shiyang Li for reporting and detailing the issue. I agree that it is a bug. My approach to fixing it was to add some code to int2ext that expands the number of columns in the externally ordered matrices as needed before assigning value from the internally ordered ones. See attached file.

This will be included in the next release.

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

Attachment: int2ext.m
Description: Binary data




On Apr 29, 2012, at 11:36 AM, 李诗�D wrote:

Hi Nasiruzzaman,

You could see the codes between loadcase() and ext2int() calling in runpf():

%% add zero columns to branch for flows if needed

if size(mpc.branch,2) < QT

  mpc.branch = [ mpc.branch zeros(size(mpc.branch, 1), QT-size(mpc.branch,2)) ];

end

 

The number of column of the branch matrix in an unsolved case is 13 and that in an solved case is 17 (adding the line power flows). runpf() expands that matrix there.

I guess the programmer of ext2int() defaults to the mpc.branch with 17 columns.

In your case, ext2int() called in your script created “order” storing the branch with 13 columns. Then in the execution of ext2int() called by runpf(), the program treated the input case as the ordered one because “order” existed, bypassing the part of creating mpc.order, which will use the branch data expanded in runpf():

if first || mpc.order.state == 'e'

  ...

statements creating mpc.order

...

end

i2e = mpc;

 

Thus, in int2ext(), the result branch records with 17 columns were to be assigned to the ones with 13 columns copied from the “order”struct.

 

I think it’s really a bug because the codes or the instruction of ext2int() does not prevent this case. I think that the codes expanding branch matrix lie in runpf() is somewhat strange. I suggest to put them within loadcase() or ext2int().

 

Sincerely,

Shiyang Li

发件人: [email protected] [mailto:[email protected]] 代表 A. B. M. Nasiruzzaman
发送时间: 2012429 20:54
收件人: [email protected]
主题: Error in ex2int

 

 

From: A. B. M. Nasiruzzaman <[email protected]>
Subject: Error in ex2int
To: [email protected]
Received: Sunday, 29 April, 2012, 6:51 PM

Dear All,

When I was trying to order the 300 bus test system and run loadflow
the following error  occured
Can anyone please give the solution of the problem?

%mfile

clc
clear
define_constants;
mpc = loadcase('case300');
results = runpf(mpc);
mpc = ext2int(mpc);
results = runpf(mpc);


%Error:
??? Subscripted assignment dimension mismatch.

Error in ==> int2ext at 107
            mpc.branch(o.branch.status.on, :) = o.int.branch;

Error in ==> runpf at 324
results = int2ext(mpc);

Error in ==> sfs at 7
results = runpf(mpc);
 


Best Regards,
Nasiruzzaman
UNSW
Australia

 


Reply via email to