Hello Mirko,

Thank you very much for your help. I tried and it worked.

Regards.
Beyza 


Alıntı Mirko Todorovski <mi...@feit.ukim.edu.mk>:

Hello Beyza,

The answer given by Ray precisely defines how radial power flow solvers do the job. They all assume that the case is already using internal numbering (buses are renumbered consecutively beginning at 1). As he pointed out if you use runpf() it will call ext2int() to remove off-line equipment before calling radial_pf(). Therefore, I suggest that you call all radial power flow solver through runpf().

For example, there is 33-bus network ‘case33bw’ with 37 branches out of which 5 are with BR_STATUS set to 0 (last 5 in the file). This network is also radial and you can solve it using runpf() in the following way:
mpopt = mpoption('pf.alg', 'ISUM');
results = runpf(‘case33bw’, mpopt);

Concerning your second question, radiality check is very simple. First you have to check whether your network is properly connected using connected_components(). If the network is connected, or if you select any set of connected components, the network is radial if nb == nl + 1 where nb = size(mpc.bus, 1) and nl = size(mpc.branch, 1).

Best regards,
Mirko
  On 6/1/21 5:05 PM, Ray Daniel Zimmerman wrote:

Hi Beyza,       
Let me first mention that I did not write the radial power flow code, so I am not as familiar with the details as the original author, Mirko Todorovski.
    
1. The check for radial topology in order_radial() (called by radial_pf()) is done without regard for the status of the branches in the branch matrix. This means that radial_pf() expects that all out-of-service branches have been removed before it is called. And indeed, runpf() does call ext2int() to remove off-line equipment before calling radial_pf().
    
2. Looking at the code at the top of radial_pf(), it appears that after doing the following …
    
   mpc = order_radial(ext2int(mpc));
    
   … mpc.loop should contain the number of loops in the network.
    
As a side note, I would love to see the code redesigned so that connected_components() , which traverses the network efficiently, returns all of the information needed by order_radial() to avoid duplication of network traversal code. Making connected_components() return information about loops would be straightforward if you (or anyone else) would like to give it a try.
    
      Ray
    
        


On Jun 1, 2021, at 7:37 AM, Beyza Nur Dilber <dilb...@itu.edu.tr> wrote:


Hello,

I am Beyza, from Turkey. I hope everyone is well.

I have a few question about radial power flow on Matpower.

1. I would like to run 16bus radial distribution system. There are some branches which tie buses and cause loop. But these "branches status" are '0'. So, they can be thought as opened switches (sectionalizing switches). Thus, system is actually radial with these conditions. However, when I write radial_pf, it is stated that "There are loops". I don't understand why it says that. On the other hand, when I write the code below,

mpopt = mpoption('pf.alg','ISUM')
results=runpf(mpc,mpopt);

radial power flow can be done. (I understand it is radial power flow instead of newton raphson because when I change the branches and turn into not radial situation, it shows warning that 'it is only for radial')

2. My other question is, is there any code for radiality check? (Instead of error, I want to get some results like 0-1)

Thanks a lot. Have a nice day.

Beyza Nur Dilber

 

Reply via email to