MATPOWER does not include any code to do that automatically, but it’s trivial
to write. Suppose k is the vector of indices of buses to eliminate. The
following code should eliminate the buses and the branches.
bn = mpc.bus(k, BUS_I);
i = find(mpc.branch(:, F_BUS) == bn);
j = find(mpc.branch(:, T_BUS) == bn);
mpc.branch(k, BUS_TYPE) = NONE;
mpc.branch([i; j], BR_STATUS) = 0;
Btw, you may need to eliminate generators too.
g = find(mpc.gen(:, GEN_BUS) == bn);
mpc.gen(g, GEN_STATUS) = 0;
Best regards,
Ray
On Dec 6, 2021, at 11:56 AM, prem panigrahi
<[email protected]<mailto:[email protected]>> wrote:
Dear Ray sir
Yes you are right. I am facing problem during automate the process.
Actually I need to remove approx.. 400 buses, and each time after removal I
need to calculate total active power of biggest Island network. Each times
identifying the transmission lines connected to a bus and mention them to
remove a bus is quite tidious job. If is thier any process in matpower to
directly remove a bus along with its branches then it can help me atleast.
On 6 Dec 2021 21:07, Ray Daniel Zimmerman
<[email protected]<mailto:[email protected]>> wrote:
You’ve got the right idea. You can simply set the branch status to 0 and then
use find_islands() and to find the isolated buses and set their BUS_TYPE to
NONE (4). You may then be left with multiple islands, also found via
find_islands() or extract_islands(). To solve a power flow, each island needs
its own reference bus (which may have been eliminated even for the main
system). The load / generation mismatch could also be potential very large in
some islands, and that would show up in the slack generation (negative, or
unreasonably large positive).
So I think the main challenge in automating everything is in selecting a new
reference bus for islands without one. I’d probably go with the first PV bus,
and if there are no PV buses, then that whole island blacks out and you can set
all its buses to type NONE.
Hope this helps,
Ray
On Dec 4, 2021, at 12:58 PM, prem panigrahi
<[email protected]<mailto:[email protected]>> wrote:
Dear Ray sir, is their any direct process to remove bus along with their
branches . I am using mpc.branch method to remove a bus with its branches. But
I am facing difficulties when I have to remove more than 100 buses.
mpc.branch([6161;7479;7480;7488;7489;7490], BR_STATUS) = 0;
results=rundcpf(mpc,opt)
[groups, isolated] = find_islands(mpc)
mpc_list = extract_islands(mpc)
[GROUPS, ISOLATED] = case_info(mpc)
mpc.bus([ISOLATED],BUS_TYPE)=4
results=rundcpf(mpc,opt)
Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows