Hello all,
I'm using the OpenDSS Loops function to get the loops from real MT feeders from the utility I work for. But, I'm getting a strange result when the feeder have any voltage regulators banks in LN connection. The Loops function" gives me the result:
"Loops and Paralleled Lines in all EnergyMeter Zones
(allcircuit) Transformer.TRTR6378CN: LOOPED TO Transformer.trtr6378bn
(allcircuit) Transformer.TRTR6378BN: LOOPED TO Line.tr12221978
(allcircuit) Transformer.TRTR6378AN: LOOPED TO Line.tr12221978"
Is that correct? The circuit file is attached
Thanks
The Loop detection funtion can be fooled by single-phase regulators and a few other devices. The report you are looking at takes the approach of reporting ambiguous cases so you can check them out.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you for pointing out the loop detection function can be fooled by single-phase regulators and a few other devices.
Could you please specify "other devices" or where to find the list?
I am using Python COM DSSTopology = DSSCircuit.Topology
numLoops = DSSTopology.NumLoops LoopPairs = DSSTopology.AllLoopedPairs to get loops in the IEEE 123 feeder, which includes one single-phase regulator. I see numLoops = 2 there if there is no actual loop in feeder. The LoopPairs show "Transformer.reg4c
Transformer.reg4b
Transformer.reg4a
Transformer.reg4c
Transformer.reg3c
Transformer.reg3a "
I notice the signle-phase regulator reg2a is not on the list as a loop.
I also add an action to open switch 4 to disconnect Regulator 4 at t=2, after "Solve", the numLoops still show 2, and LoopPairs do not change. Do you know how to differentiate the real loops or loops caused by regulators?
Thank you!
Hongda
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The loop detection algorithm you are referring to is mainly for debugging the circuit so you can spot connection errors more easily. I suspect you are wanting to count loops for some other purpose such are a metric to judge a power flow algorithm. You may have to write you own circuit tracing algorithm for that.
Davis may have written something for that to support Diakoptics, but I'll let him answer that.
The power flow solution engine in OpenDSS doesn't care about loops - only nodes. It can solve the circuit with or without loops with the same algorithm. That is one of the reasons we use that algorithm. It is compact and efficient. You probably won't find it described in any distribution system analysis textbook, but you did learn the basics in your first Electrical Engineering course where you learned how to write nodal admittance equations.
I learned about 1977 that I=YV will generally converge to a fixed point if the first guess at V is not too far off from the final solution. That's basically how OpenDSS works.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes, my application is building IEEE 123 node system in OpenDSS as an gym environment for algorithm to train switches operations for restoration purpose.
I would like to count loops in system to ensure the taken switches operations do not cause any loops in the system (keep the radial structure). If there is a loop showing, the switch operation will be recalled.
Thank you, and look forward to learning more details about the loop functions!
Hongda
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
for finding loops within the model you can use the incidence B2N matrix provided by OpenDSS. This matrix is a graph that allows to localize loops and other topological features of the system. This is an example on how to get the matrix:
Then, by having the graph you can extract the data you need. There are a bunch of tools/add-ons for doing that out there, for example, the following library finds loops on a graph using MATLAB:
Hello all,
I'm using the OpenDSS Loops function to get the loops from real MT feeders from the utility I work for. But, I'm getting a strange result when the feeder have any voltage regulators banks in LN connection. The Loops function" gives me the result:
"Loops and Paralleled Lines in all EnergyMeter Zones
(allcircuit) Transformer.TRTR6378CN: LOOPED TO Transformer.trtr6378bn
(allcircuit) Transformer.TRTR6378BN: LOOPED TO Line.tr12221978
(allcircuit) Transformer.TRTR6378AN: LOOPED TO Line.tr12221978"
Is that correct? The circuit file is attached
Thanks
The Loop detection funtion can be fooled by single-phase regulators and a few other devices. The report you are looking at takes the approach of reporting ambiguous cases so you can check them out.
Hi Mr. Roger Dugan,
Thank you for pointing out the loop detection function can be fooled by single-phase regulators and a few other devices.
Could you please specify "other devices" or where to find the list?
I am using Python COM
DSSTopology = DSSCircuit.Topology numLoops = DSSTopology.NumLoops LoopPairs = DSSTopology.AllLoopedPairs
to get loops in the IEEE 123 feeder, which includes one single-phase regulator. I see numLoops = 2 there if there is no actual loop in feeder. The LoopPairs show "Transformer.reg4cTransformer.reg4b
Transformer.reg4a
Transformer.reg4c
Transformer.reg3c
Transformer.reg3a "
I notice the signle-phase regulator reg2a is not on the list as a loop.
I also add an action to open switch 4 to disconnect Regulator 4 at t=2, after "Solve", the numLoops still show 2, and LoopPairs do not change. Do you know how to differentiate the real loops or loops caused by regulators?
Thank you!
Hongda
The loop detection algorithm you are referring to is mainly for debugging the circuit so you can spot connection errors more easily. I suspect you are wanting to count loops for some other purpose such are a metric to judge a power flow algorithm. You may have to write you own circuit tracing algorithm for that.
Davis may have written something for that to support Diakoptics, but I'll let him answer that.
The power flow solution engine in OpenDSS doesn't care about loops - only nodes. It can solve the circuit with or without loops with the same algorithm. That is one of the reasons we use that algorithm. It is compact and efficient. You probably won't find it described in any distribution system analysis textbook, but you did learn the basics in your first Electrical Engineering course where you learned how to write nodal admittance equations.
I learned about 1977 that I=YV will generally converge to a fixed point if the first guess at V is not too far off from the final solution. That's basically how OpenDSS works.
Thank you for swift reply, Mr. Roger Dugan!
Yes, my application is building IEEE 123 node system in OpenDSS as an gym environment for algorithm to train switches operations for restoration purpose.
I would like to count loops in system to ensure the taken switches operations do not cause any loops in the system (keep the radial structure). If there is a loop showing, the switch operation will be recalled.
Thank you, and look forward to learning more details about the loop functions!
Hongda
Hello,
for finding loops within the model you can use the incidence B2N matrix provided by OpenDSS. This matrix is a graph that allows to localize loops and other topological features of the system. This is an example on how to get the matrix:
https://sourceforge.net/p/electricdss/discussion/861977/thread/ecc16f6e19/?limit=25#1a11/a0d5
Then, by having the graph you can extract the data you need. There are a bunch of tools/add-ons for doing that out there, for example, the following library finds loops on a graph using MATLAB:
https://www.mathworks.com/matlabcentral/fileexchange/10722-count-loops-in-a-graph
Best regards
Davis
Thank you, Mr. Davis Montenegro, for answering my question and sharing those resource !
Best regards,
Hongda