⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fm_flows.m

📁 一个较好的MATLAB潮流程序
💻 M
📖 第 1 页 / 共 2 页
字号:
    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 + -