📄 fm_flows.m
字号:
a7 = ati.*b.*cji; a8 = ati.*g.*sji; Vij = DAE.V(Line.from).*DAE.V(Line.to); Vi2 = DAE.V(Line.from).^2; Vj2 = DAE.V(Line.to).^2; Vi3 = DAE.V(Line.from).*Vi2; Vj3 = DAE.V(Line.to).*Vj2; v1 = Vi2.*Vj2; v2 = Vi3.*DAE.V(Line.to); v3 = Vj3.*DAE.V(Line.from); v4 = Vi2.*DAE.V(Line.to); v5 = Vj2.*DAE.V(Line.from); B1 = -a1 - a2 + a3 - a4; B2 = a5 - a6 + a7 + a8; B3 = -a5 - a6 - a7 + a8; B4 = -a1 + a2 + a3 + a4; C1 = B1.*B1; C2 = B2.*B2; C3 = B1.*B2; C4 = B3.*B3; C5 = B4.*B4; C6 = B3.*B4; C7 = B1.*g; C8 = B2.*g; C9 = B3.*g.*at2; C0 = B4.*g.*at2; Jij = [sparse(nl,Line.from, 2*(v1.*C3+v2.*C7)./at4,Line.n,Bus.n) + ... sparse(nl,Line.to, -2*(v1.*C3+v2.*C7)./at4,Line.n,Bus.n), ... sparse(nl,Line.from, 2*(3*v4.*C8+v5.*C2+2*Vi3.*g2)./at4,Line.n,Bus.n) + ... sparse(nl,Line.to, 2*(v4.*C2+Vi3.*C8)./at4,Line.n,Bus.n)]; Jji = [sparse(nl,Line.from,-2*(v1.*C6+v3.*C0)./at4,Line.n,Bus.n) + ... sparse(nl,Line.to, 2*(v1.*C6+v3.*C0)./at4,Line.n,Bus.n), ... sparse(nl,Line.from, 2*(v5.*C4+Vj3.*C9)./at4,Line.n,Bus.n) + ... sparse(nl,Line.to, 2*(3*v5.*C9+v4.*C4+2*Vj3.*g2.*at4)./at4,Line.n,Bus.n)]; k1 = 2*mu1./at4; k2 = 2*mu2./at4; D1 = (v1.*(C1-C2)-v2.*C8).*k1; E1 = (v1.*(C5-C4)-v3.*C9).*k2; D2 = (3*v4.*C7 + 2*v5.*C3).*k1; E2 = (3*v5.*C0 + 2*v4.*C6).*k2; D3 = (Vi3.*C7 + 2*v4.*C3).*k1; E3 = (Vj3.*C0 + 2*v5.*C6).*k2; D4 = (3*Vi2.*C8+2*Vij.*C2).*k1; E4 = (3*Vj2.*C9+2*Vij.*C4).*k2; D5 = (Vi2.*C2).*k1; E5 = (Vj2.*C4).*k2; D6 = (6*Vij.*C8+6*Vi2.*g2+Vj2.*C2).*k1; E6 = (6*Vij.*C9+6*Vj2.*g2.*at4+Vi2.*C4).*k2; Hij = [sparse(Line.from, Line.from, D1, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, -D1, Bus.n, Bus.n) + ... sparse(Line.to, Line.from,-D1, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, D1, Bus.n, Bus.n), ... sparse(Line.from, Line.from, D2, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, D3, Bus.n, Bus.n) + ... sparse(Line.to, Line.from,-D2, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, -D3, Bus.n, Bus.n); ... sparse(Line.from, Line.from, D2, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, -D2, Bus.n, Bus.n) + ... sparse(Line.to, Line.from, D3, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, -D3, Bus.n, Bus.n), ... sparse(Line.from, Line.from, D6, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, D4, Bus.n, Bus.n) + ... sparse(Line.to, Line.from, D4, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, D5, Bus.n, Bus.n)]; Hji = [sparse(Line.from, Line.from, E1, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, -E1, Bus.n, Bus.n) + ... sparse(Line.to, Line.from,-E1, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, E1, Bus.n, Bus.n), ... sparse(Line.from, Line.from,-E3, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, -E2, Bus.n, Bus.n) + ... sparse(Line.to, Line.from, E3, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, E2, Bus.n, Bus.n); ... sparse(Line.from, Line.from,-E3, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, E3, Bus.n, Bus.n) + ... sparse(Line.to, Line.from,-E2, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, E2, Bus.n, Bus.n), ... sparse(Line.from, Line.from, E5, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, E4, Bus.n, Bus.n) + ... sparse(Line.to, Line.from, E4, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, E6, Bus.n, Bus.n)];case 3 % ========================================================================== % AC apparent power flows % ========================================================================== Fij = VV(Line.from).*conj(((VV(Line.from) - tps.*VV(Line.to)).*y + ... VV(Line.from).*(jay*chrg))./(tps.*conj(tps))); Fij = abs(Fij).^2; Fji = VV(Line.to).*conj((VV(Line.to) - VV(Line.from)./tps).*y + ... VV(Line.to).*(jay*chrg)); Fji = abs(Fji).^2; % ========================================================================== % Jacobian & Hessian matrix of tha AC apparent power flows from bus i to bus j % ========================================================================== i = Line.from; j = Line.to; ati = imag(tps); atr = real(tps); cji = cos(DAE.a(j)-DAE.a(i)); sji = sin(DAE.a(j)-DAE.a(i)); vij = DAE.V(i).*DAE.V(j); vi2 = DAE.V(i).*DAE.V(i); vj2 = DAE.V(j).*DAE.V(j); vi2j = DAE.V(j).*vi2; vj2i = DAE.V(i).*vj2; vi3 = vi2.*DAE.V(i); vj3 = vj2.*DAE.V(j); vi3j = vi2.*vij; vj3i = vj2.*vij; g2 = g.^2; b2 = b.^2; gb2 = g2 + b2; at2 = ati.^2+atr.^2; at4 = at2.*at2; bcg = (b+chrg).^2+g2; k1 = g.*ati.*chrg.*sji; k2 = g.*atr.*chrg.*cji; k3 = b.*ati.*chrg.*cji; k4 = b.*atr.*chrg.*sji; k5 = g.*ati.*chrg.*cji; k6 = g.*atr.*chrg.*sji; k7 = b.*ati.*chrg.*sji; k8 = b.*atr.*chrg.*cji; h1 = g2.*ati.*cji; h2 = b2.*ati.*cji; h3 = g2.*atr.*sji; h4 = b2.*atr.*sji; h5 = g2.*ati.*sji; h6 = b2.*ati.*sji; h7 = g2.*atr.*cji; h8 = b2.*atr.*cji; j1 = -k1+h1+h2+k2+k3+h3+k4+h4; j2 = -h5-k5-h6-k6-k7+h7+k8+h8; j3 = -h4-k3-k1-h1+k2-h2-k4-h3; j4 = -h8+k7-k5+h5-k6+h6-k8-h7; Jij = [sparse(nl,Line.from, 2*vi3j.*j3./at4,Line.n,Bus.n) + ... sparse(nl,Line.to, -2*vi3j.*j3./at4,Line.n,Bus.n), ... sparse(nl,Line.from,(6*vi2j.*j4+4*vi3.*bcg+2*vj2i.*at2.*gb2)./at4,Line.n,Bus.n) + ... sparse(nl,Line.to, (2*vi3.*j4+2*vi2j.*at2.*gb2)./at4,Line.n,Bus.n)]; Jji = [sparse(nl,Line.from, -2*vj3i.*j1./at2,Line.n,Bus.n) + ... sparse(nl,Line.to, 2*vj3i.*j1./at2,Line.n,Bus.n), ... sparse(nl,Line.from, (-2*vj3.*j2+2*vj2i.*gb2)./at2,Line.n,Bus.n) + ... sparse(nl,Line.to, (-6*vj2i.*j2+2*vi2j.*gb2)./at2+4*vj3.*bcg,Line.n,Bus.n)]; D1 = -2*mu1.*vi3j.*j4./at4; D2 = 6*mu1.*vi2j.*j3./at4; D3 = 2*mu1.*vi3.*j3./at4; D4 = 2*mu1.*(-3*vi2.*j4+2*vij.*at2.*gb2)./at4; D5 = 2*gb2.*vi2.*mu1./at2; D6 = 2*mu1.*(-6*vij.*j4+6*vi2.*bcg+vj2.*at2.*gb2)./at4; Hij = [sparse(Line.from, Line.from, D1, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, -D1, Bus.n, Bus.n) + ... sparse(Line.to, Line.from,-D1, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, D1, Bus.n, Bus.n), ... sparse(Line.from, Line.from, D2, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, D3, Bus.n, Bus.n) + ... sparse(Line.to, Line.from,-D2, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, -D3, Bus.n, Bus.n); ... sparse(Line.from, Line.from, D2, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, -D2, Bus.n, Bus.n) + ... sparse(Line.to, Line.from, D3, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, -D3, Bus.n, Bus.n), ... sparse(Line.from, Line.from, D6, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, D4, Bus.n, Bus.n) + ... sparse(Line.to, Line.from, D4, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, D5, Bus.n, Bus.n)]; E1 = 2*mu2.*vj3i.*j2./at2; E2 = -2*mu2.*vj3.*j1./at2; E3 = -6*mu2.*vj2i.*j1./at2; E4 = -2*mu2.*(3*vj2.*j2-2*vij.*gb2)./at2; E6 = 2*mu2.*(-6*vij.*j2+vi2.*gb2)./at2 + 6*vj2.*bcg; E5 = 2*mu2.*vj2.*gb2./at2; Hji = [sparse(Line.from, Line.from, E1, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, -E1, Bus.n, Bus.n) + ... sparse(Line.to, Line.from,-E1, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, E1, Bus.n, Bus.n), ... sparse(Line.from, Line.from, E2, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, E3, Bus.n, Bus.n) + ... sparse(Line.to, Line.from,-E2, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, -E3, Bus.n, Bus.n); ... sparse(Line.from, Line.from, E2, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, -E2, Bus.n, Bus.n) + ... sparse(Line.to, Line.from, E3, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, -E3, Bus.n, Bus.n), ... sparse(Line.from, Line.from, E5, Bus.n, Bus.n) + ... sparse(Line.from, Line.to, E4, Bus.n, Bus.n) + ... sparse(Line.to, Line.from, E4, Bus.n, Bus.n) + ... sparse(Line.to, Line.to, E6, Bus.n, Bus.n)];end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -