Minimum spanning tree of an IEEE bus network

조회 수: 7 (최근 30일)
sibabalo noludwwe
sibabalo noludwwe 2019년 7월 23일
답변: sibabalo noludwwe 2019년 7월 29일
hi Guys.
I have a 9 bus IEEE test feeder in Simulink and I would like to get a minimum spanning tree from one node to the other. the problem is I am struggling to automatical represent the physical network in matlab so I can peform minimum spanning tree.
how do I represent a physical network by its edges and nodes in matlab from simulink.
thanks
  댓글 수: 2
darova
darova 2019년 7월 23일
Can you please attach data or image?
sibabalo noludwwe
sibabalo noludwwe 2019년 7월 23일
at the moment I am using the attached network just to get the concept of converting a simulink system into a graph object.

댓글을 달려면 로그인하십시오.

채택된 답변

Hari Krishna Ravuri
Hari Krishna Ravuri 2019년 7월 29일
Hi,
I understand that you have a 9 bus IEEE test feeder model in Simulink and wanted to get a Minimum Spanning Tree for the network. As of now, there is no in-built function in MATLAB or Simulink to convert a Simulink model into a Graph. But you can write a script to perform this. For this you need to decide what blocks in the Simulink model will be interpreted as Nodes and what blocks / connections will be interpreted as edges in the graph.
You can use the get_param property to get to the Outport and you can start traversing the whole network. When you traverse a block update the Graph depending on the way you want to interpret the block either as a node or as an edge. If the network is complex, you may traverse the same graph more than once. In this case, I suggest you perform a Depth First Traversal. Please refer https://www.mathworks.com/help/simulink/slref/block-specific-parameters.html for Block specific parameters. Once the graph is ready, if the graph is dense, I suggest using Prims Minimum spanning tree algorithm. If the graph is sparse, I suggest using Kruskal's Minimum spanning tree algorithm.
  댓글 수: 2
sibabalo noludwwe
sibabalo noludwwe 2019년 7월 29일
thank you,
I tried something like this and I also got the distribution lines themselves represented as nodes and also struggled to convert the three lines as one edge and I was not able to load their weight as well. please assist further.
thanks
Hari Krishna Ravuri
Hari Krishna Ravuri 2019년 7월 29일
Having three lines between two blocks can be viewed as multigraph. You can convert three lines as one edge by converting the multigraph into a single graph. Please refer https://www.mathworks.com/help/matlab/ref/graph.simplify.html for more information. By using get_param you can get the line parameters and calculate the cost.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

sibabalo noludwwe
sibabalo noludwwe 2019년 7월 29일
THANKS,
when i use simplify I am getting this error:
Undefined function 'simplify' for input arguments of type 'matlab.graphics.chart.primitive.GraphPlot'.
attached is the graph that i want to simplify and instead am getting all the blocks in simulink.

sibabalo noludwwe
sibabalo noludwwe 2019년 7월 29일
I did exactly as the examples on the referal but it does not seem to work with a directed graph I am not sure what is the problem.
Also I used the following
b=find_system('power_13NodeTestFeeder','SearchDepth',1,'Type','block');
h=get_param(b, 'Handle')
and am getting parameters of all the blocks. how do I make sure I only get load flow buses.

카테고리

Help CenterFile Exchange에서 Modeling에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by