Commit 74de611f by Lian-runzhe

pfsoln函数修改

parent b7e628cd
...@@ -28,12 +28,12 @@ bus_type = slice(bus, [0], [BUS_TYPE-1,BUS_TYPE]); ...@@ -28,12 +28,12 @@ bus_type = slice(bus, [0], [BUS_TYPE-1,BUS_TYPE]);
ref = find(bus_type == REF) + 1; ref = find(bus_type == REF) + 1;
pv = find(bus_type == PV) + 1; pv = find(bus_type == PV) + 1;
pq = find(bus_type == PQ) + 1; pq = find(bus_type == PQ) + 1;
//bus_output = pfsoln(baseMVA, bus, gen, branch, Ybus, Yf, Yt, V, ref, pv, pq, []); bus_output = pfsoln(baseMVA, bus, gen, branch, Ybus, Yf, Yt, V, ref, pv, pq, []);
//branch_output = pfsoln(baseMVA, bus, gen, branch, Ybus, Yf, Yt, V, ref, pv, pq, []);
gen_output = pfsoln(baseMVA, bus, gen, branch, Ybus, Yf, Yt, V, ref, pv, pq, []); gen_output = pfsoln(baseMVA, bus, gen, branch, Ybus, Yf, Yt, V, ref, pv, pq, []);
branch_output = pfsoln(baseMVA, bus, gen, branch, Ybus, Yf, Yt, V, ref, pv, pq, []);
//bus结果 //bus结果
/*assert_relative_eq(bus_output, [ assert_relative_eq(bus_output, [
[c(1,0), c(3,0), c(0.0,0.0), c(0.0,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.0600,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.06,0.0), c(0.94,0.0)], [c(1,0), c(3,0), c(0.0,0.0), c(0.0,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.0600,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.06,0.0), c(0.94,0.0)],
[c(2,0), c(2,0), c(21.7,0.0), c(12.7,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.0450,0.0), c(-4.9826,0.0), c(0.0,0.0), c(1.0,0.0), c(1.06,0.0), c(0.94,0.0)], [c(2,0), c(2,0), c(21.7,0.0), c(12.7,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.0450,0.0), c(-4.9826,0.0), c(0.0,0.0), c(1.0,0.0), c(1.06,0.0), c(0.94,0.0)],
[c(3,0), c(2,0), c(94.2,0.0), c(19.0,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.0100,0.0), c(-12.7251,0.0), c(0.0,0.0), c(1.0,0.0), c(1.06,0.0), c(0.94,0.0)], [c(3,0), c(2,0), c(94.2,0.0), c(19.0,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.0100,0.0), c(-12.7251,0.0), c(0.0,0.0), c(1.0,0.0), c(1.06,0.0), c(0.94,0.0)],
...@@ -48,7 +48,7 @@ gen_output = pfsoln(baseMVA, bus, gen, branch, Ybus, Yf, Yt, V, ref, pv, pq, []) ...@@ -48,7 +48,7 @@ gen_output = pfsoln(baseMVA, bus, gen, branch, Ybus, Yf, Yt, V, ref, pv, pq, [])
[c(12,0), c(1,0), c(6.1,0.0), c(1.6,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.0552,0.0), c(-15.0756,0.0), c(0.0,0.0), c(1.0,0.0), c(1.06,0.0), c(0.94,0.0)], [c(12,0), c(1,0), c(6.1,0.0), c(1.6,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.0552,0.0), c(-15.0756,0.0), c(0.0,0.0), c(1.0,0.0), c(1.06,0.0), c(0.94,0.0)],
[c(13,0), c(1,0), c(13.5,0.0), c(5.8,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.0504,0.0), c(-15.1563,0.0), c(0.0,0.0), c(1.0,0.0), c(1.06,0.0), c(0.94,0.0)], [c(13,0), c(1,0), c(13.5,0.0), c(5.8,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.0504,0.0), c(-15.1563,0.0), c(0.0,0.0), c(1.0,0.0), c(1.06,0.0), c(0.94,0.0)],
[c(14,0), c(1,0), c(14.9,0.0), c(5.0,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.0355,0.0), c(-16.0336,0.0), c(0.0,0.0), c(1.0,0.0), c(1.06,0.0), c(0.94,0.0)] [c(14,0), c(1,0), c(14.9,0.0), c(5.0,0.0), c(0.0,0.0), c(0.0,0.0), c(1.0,0.0), c(1.0355,0.0), c(-16.0336,0.0), c(0.0,0.0), c(1.0,0.0), c(1.06,0.0), c(0.94,0.0)]
],4);*/ ],4);
//gen结果 //gen结果
/*assert_relative_eq(gen_output, [ /*assert_relative_eq(gen_output, [
...@@ -84,4 +84,6 @@ gen_output = pfsoln(baseMVA, bus, gen, branch, Ybus, Yf, Yt, V, ref, pv, pq, []) ...@@ -84,4 +84,6 @@ gen_output = pfsoln(baseMVA, bus, gen, branch, Ybus, Yf, Yt, V, ref, pv, pq, [])
],4);*/ ],4);*/
return gen_output; return bus_output;
\ No newline at end of file //return gen_output;
//return branch_output;
\ No newline at end of file
...@@ -35,10 +35,10 @@ fn pfsoln(baseMVA, bus0, gen0, branch0, Ybus, Yf, Yt, V, ref, pv, pq, mpopt){ ...@@ -35,10 +35,10 @@ fn pfsoln(baseMVA, bus0, gen0, branch0, Ybus, Yf, Yt, V, ref, pv, pq, mpopt){
gen_QG = set(slice(gen, [0], [QG-1, QG]), off, zeros(length(off), 1)); // zero out off-line Qg(离线发电机QG=0) gen_QG = set(slice(gen, [0], [QG-1, QG]), off, zeros(length(off), 1)); // zero out off-line Qg(离线发电机QG=0)
gen = assign(gen, gen_QG, [0], [QG-1, QG] ); gen = assign(gen, gen_QG, [0], [QG-1, QG] );
// don't touch the ones at PQ buses // don't touch the ones at PQ buses
Pd_gbus = total_load(select(bus, gbus-1), [], 1, [], [], []); PQ_gbus = total_load(select(bus, gbus-1), [], 1, [], [], mpopt);
//Pd_gbus = slice(total_load(select(bus, gbus-1), [], 1, [], [], mpopt), [0], [0,1]); Pd_gbus = slice(PQ_gbus, [0], [0,1]);
//Qd_gbus = slice(total_load(bus(gbus-1, :), [], 1, [], [], mpopt), [0], [1,2]); Qd_gbus = slice(PQ_gbus, [0], [1,2]);
/*gen_QG = set(slice(gen, [0], [QG-1, QG]), on, imag(Sbus) * baseMVA + Qd_gbus); // inj Q + local Qd gen_QG = set(slice(gen, [0], [QG-1, QG]), on, imag(Sbus) * baseMVA + Qd_gbus); // inj Q + local Qd
gen = assign(gen, gen_QG, [0], [QG-1, QG] ); gen = assign(gen, gen_QG, [0], [QG-1, QG] );
// ... at this point any buses with more than one generator will have // ... at this point any buses with more than one generator will have
...@@ -97,7 +97,8 @@ fn pfsoln(baseMVA, bus0, gen0, branch0, Ybus, Yf, Yt, V, ref, pv, pq, mpopt){ ...@@ -97,7 +97,8 @@ fn pfsoln(baseMVA, bus0, gen0, branch0, Ybus, Yf, Yt, V, ref, pv, pq, mpopt){
// update Pg for slack gen(s) // update Pg for slack gen(s)
for k in 1..length(ref){ for k in 1..length(ref){
refgen = find(gbus == get_multi(get_multi(ref, [k-1]), 0) ); // which is(are) the reference gen(s)? refgen = find(gbus == get_multi(get_multi(ref, [k-1]), 0) ); // which is(are) the reference gen(s)?
//Pd_refk = slice(total_load(select(bus, get_multi(ref, [k-1] )), [], 1, [], [], mpopt), [0], [0,1]); PQ_refk = total_load(select(bus, get_multi(ref, [k-1] )), [], 1, [], [], mpopt);
Pd_refk = slice(PQ_refk, [0], [0,1]);
Pd_refk = [[c(0,0)]]; Pd_refk = [[c(0,0)]];
gen_PG = set(slice(gen, [0], [PG-1, PG]), get_multi(on, [get_multi(refgen,0)]), real(get_multi(Sbus, [get_multi(refgen,0)])) * baseMVA + Pd_refk ); gen_PG = set(slice(gen, [0], [PG-1, PG]), get_multi(on, [get_multi(refgen,0)]), real(get_multi(Sbus, [get_multi(refgen,0)])) * baseMVA + Pd_refk );
gen = assign(gen, gen_PG, [0], [PG-1, PG] ); gen = assign(gen, gen_PG, [0], [PG-1, PG] );
...@@ -127,11 +128,11 @@ fn pfsoln(baseMVA, bus0, gen0, branch0, Ybus, Yf, Yt, V, ref, pv, pq, mpopt){ ...@@ -127,11 +128,11 @@ fn pfsoln(baseMVA, bus0, gen0, branch0, Ybus, Yf, Yt, V, ref, pv, pq, mpopt){
branch = horzcat(branch, branch_PT); branch = horzcat(branch, branch_PT);
branch_QT = zeros(size(branch,0), 1); branch_QT = zeros(size(branch,0), 1);
branch_QT = set(branch_QT, br, imag(St)); branch_QT = set(branch_QT, br, imag(St));
branch = horzcat(branch, branch_QT);*/ branch = horzcat(branch, branch_QT);
//return bus, gen, branch; //return bus, gen, branch;
//return bus; return bus;
return Pd_gbus; //return gen;
//return branch; //return branch;
} }
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论