Commit 8e4623bb by dongshufeng

refactor: add case14 data

parent f294a418
...@@ -21,38 +21,45 @@ fn make_y_bus(baseMVA, bus, branch) { ...@@ -21,38 +21,45 @@ fn make_y_bus(baseMVA, bus, branch) {
// and Qsh is the reactive power injected by the shunt at V = 1.0 p.u. // and Qsh is the reactive power injected by the shunt at V = 1.0 p.u.
// then Psh - j Qsh = V * conj(Ysh * V) = conj(Ysh) = Gs - j Bs, // then Psh - j Qsh = V * conj(Ysh * V) = conj(Ysh) = Gs - j Bs,
// i.e. Ysh = Psh + j Qsh, so ... // i.e. Ysh = Psh + j Qsh, so ...
//Ysh = (slice(bus, [0], GS) + c(0,1) * slice(bus, [0], BS)) / baseMVA; // vector of shunt admittances Ysh = (slice(bus, [0], GS) + c(0,1) * slice(bus, [0], BS)) / baseMVA; // vector of shunt admittances
// bus indices // bus indices
//f = slice(branch, [0], F_BUS); // list of "from" buses f = slice(branch, [0], F_BUS); // list of "from" buses
//t = slice(branch, [0], T_BUS); // list of "to" buses t = slice(branch, [0], T_BUS); // list of "to" buses
// for best performance, choose method based on MATLAB vs Octave and size // for best performance, choose method based on MATLAB vs Octave and size
if nb < 300 { // small case
if nb < 300 {
// small case
// build Yf and Yt such that Yf * V is the vector of complex branch currents injected // build Yf and Yt such that Yf * V is the vector of complex branch currents injected
// at each branch's "from" bus, and Yt is the same for the "to" bus end // at each branch's "from" bus, and Yt is the same for the "to" bus end
//i = [1:nl 1:nl]'; // double set of row indices i = [range(1,nl),rang(1,nl)]'; // double set of row indices
//Yf = sparse(i, [f, t], [Yff, Yft], nl, nb); Yf = sparse(i, [f, t], [Yff, Yft], nl, nb);
//Yt = sparse(i, [f, t], [Ytf, Ytt], nl, nb); Yt = sparse(i, [f, t], [Ytf, Ytt], nl, nb);
// build Ybus // build Ybus
//Ybus = sparse([f,f,t,t], [f,t,f,t], [Yff,Yft,Ytf,Ytt], nb, nb) + // branch admittances // branch admittances + shunt admittance
// sparse(1:nb, 1:nb, Ysh, nb, nb); // shunt admittance Ybus = sparse([f,f,t,t], [f,t,f,t], [Yff,Yft,Ytf,Ytt], nb, nb) +
} else { // large case running on MATLAB sparse(range(1,nb), range(1,nb), Ysh, nb, nb);
} else {
// large case running on MATLAB
// build connection matrices // build connection matrices
//Cf = sparse(1:nl, f, ones(nl, 1), nl, nb); // connection matrix for line & from buses Cf = sparse(range(1,nl), f, ones(nl, 1), nl, nb); // connection matrix for line & from buses
//Ct = sparse(1:nl, t, ones(nl, 1), nl, nb); // connection matrix for line & to buses Ct = sparse(range(1,nl), t, ones(nl, 1), nl, nb); // connection matrix for line & to buses
// build Yf and Yt such that Yf * V is the vector of complex branch currents injected // build Yf and Yt such that Yf * V is the vector of complex branch currents injected
// at each branch's "from" bus, and Yt is the same for the "to" bus end // at each branch's "from" bus, and Yt is the same for the "to" bus end
//Yf = sparse(1:nl, 1:nl, Yff, nl, nl) * Cf + sparse(1:nl, 1:nl, Yft, nl, nl) * Ct; i = range(1,nl);
//Yt = sparse(1:nl, 1:nl, Ytf, nl, nl) * Cf + sparse(1:nl, 1:nl, Ytt, nl, nl) * Ct; j = range(1,nb);
Yf = sparse(i, i, Yff, nl, nl) * Cf + sparse(i, i, Yft, nl, nl) * Ct;
Yt = sparse(i, i, Ytf, nl, nl) * Cf + sparse(i, i, Ytt, nl, nl) * Ct;
// build Ybus // build Ybus
//Ybus = Cf' * Yf + Ct' * Yt + ... // branch admittances // branch admittances + shunt admittance
// sparse(1:nb, 1:nb, Ysh, nb, nb); // shunt admittance Ybus = Cf' * Yf + Ct' * Yt +
sparse(j, j, Ysh, nb, nb);
} }
return Ytt; return Ysh;
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论