📄 fm_flows.m
字号:
gi = real(yi); bi = imag(yi); gj = real(yj); bj = imag(yj); vi = DAE.V(i); vj = DAE.V(j); vij = vi.*vj; vi2 = vi.*vi; vj2 = vj.*vj; ka1 = ga.*cij-ba.*sij; ka2 = ba.*cij+ga.*sij; kb1 = gb.*cij+bb.*sij; kb2 = bb.*cij-gb.*sij; refij = gi.*vi2 - ka1.*vij; imfij = bi.*vi2 - ka2.*vij; refji = gi.*vj2 - kb1.*vij; imfji = bi.*vj2 - kb2.*vij; Fij = refij.*refij + imfij.*imfij; Fji = refji.*refji + imfji.*imfji; % ========================================================================== % Jacobian matrix of the AC apparent power flows from bus i to bus j % ========================================================================== drefijdvi = 2*gi.*vi - ka1.*vj; drefijdvj = -ka1.*vi; drefijdti = ka2.*vij; drefijdtj = -ka2.*vij; dimfijdvi = 2*bi.*vi - ka2.*vj; dimfijdvj = -ka2.*vi; dimfijdti = -ka1.*vij; dimfijdtj = ka1.*vij; drefjidvj = 2*gj.*vj - kb1.*vi; drefjidvi = -kb1.*vj; drefjidti = -kb2.*vij; drefjidtj = kb2.*vij; dimfjidvj = 2*bj.*vj - kb2.*vi; dimfjidvi = -kb2.*vj; dimfjidti = kb1.*vij; dimfjidtj = -kb1.*vij; Jij = [sparse(nl,Line.from, 2*(refij.*drefijdti+imfij.*dimfijdti), Line.n,Bus.n)- ... sparse(nl,Line.to, 2*(refij.*drefijdti+imfij.*dimfijdti), Line.n,Bus.n), ... sparse(nl,Line.from, 2*(refij.*drefijdvi+imfij.*dimfijdvi), Line.n,Bus.n)+ ... sparse(nl,Line.to, 2*(refij.*drefijdvj+imfij.*dimfijdvj), Line.n,Bus.n)]; Jji = [sparse(nl,Line.from, 2*(refji.*drefjidti+imfji.*dimfjidti), Line.n,Bus.n)- ... sparse(nl,Line.to, 2*(refji.*drefjidti+imfji.*dimfjidti), Line.n,Bus.n), ... sparse(nl,Line.from, 2*(refji.*drefjidvi+imfji.*dimfjidvi), Line.n,Bus.n)+ ... sparse(nl,Line.to, 2*(refji.*drefjidvj+imfji.*dimfjidvj), Line.n,Bus.n)]; % ========================================================================== % Hessian matrix of the AC apparent power flows from bus i to bus j % ========================================================================== % - - - - - - - - - - - - - - - - - - - d2refijdvidvi = 2*gi; d2refijdvidvj = -ka1; d2refijdvidti = ka2.*vj; d2refijdvidtj = -ka2.*vj; d2refijdvjdvi = -ka1; d2refijdvjdvj = zeros(Line.n,1); d2refijdvjdti = ka2.*vi; d2refijdvjdtj = -ka2.*vi; d2refijdtidvi = ka2.*vj; d2refijdtidvj = ka2.*vi; d2refijdtidti = ka1.*vij; d2refijdtidtj = -ka1.*vij; d2refijdtjdvi = -ka2.*vj; d2refijdtjdvj = -ka2.*vi; d2refijdtjdti = -ka1.*vij; d2refijdtjdtj = ka1.*vij; % - - - - - - - - - - - - - - - - - - - % - - - - - - - - - - - - - - - - - - - d2imfijdvidvi = 2*bi; d2imfijdvidvj = -ka2; d2imfijdvidti = -ka1.*vj; d2imfijdvidtj = ka1.*vj; d2imfijdvjdvi = -ka2; d2imfijdvjdvj = zeros(Line.n,1); d2imfijdvjdti = -ka1.*vi; d2imfijdvjdtj = ka1.*vi; d2imfijdtidvi = -ka1.*vj; d2imfijdtidvj = -ka1.*vi; d2imfijdtidti = ka2.*vij; d2imfijdtidtj = -ka2.*vij; d2imfijdtjdvi = ka1.*vj; d2imfijdtjdvj = ka1.*vi; d2imfijdtjdti = -ka2.*vij; d2imfijdtjdtj = ka2.*vij; % - - - - - - - - - - - - - - - - - - - % - - - - - - - - - - - - - - - - - - - d2refjidvjdvj = 2*gj; d2refjidvjdvi = -kb1; d2refjidvjdti = -kb2.*vi; d2refjidvjdtj = kb2.*vi; d2refjidvidvj = -kb1; d2refjidvidvi = zeros(Line.n,1); d2refjidvidti = -kb2.*vj; d2refjidvidtj = kb2.*vj; d2refjidtidvi = -kb2.*vj; d2refjidtidvj = -kb2.*vi; d2refjidtidti = kb1.*vij; d2refjidtidtj = -kb1.*vij; d2refjidtjdvi = kb2.*vj; d2refjidtjdvj = kb2.*vi; d2refjidtjdti = -kb1.*vij; d2refjidtjdtj = kb1.*vij; % - - - - - - - - - - - - - - - - - - - % - - - - - - - - - - - - - - - - - - - d2imfjidvjdvj = 2*bj; d2imfjidvjdvi = -kb2; d2imfjidvjdti = kb1.*vi; d2imfjidvjdtj = -kb1.*vi; d2imfjidvidvj = -kb2; d2imfjidvidvi = zeros(Line.n,1); d2imfjidvidti = kb1.*vj; d2imfjidvidtj = -kb1.*vj; d2imfjidtidvi = kb1.*vj; d2imfjidtidvj = kb1.*vi; d2imfjidtidti = kb2.*vij; d2imfjidtidtj = -kb2.*vij; d2imfjidtjdvi = -kb1.*vj; d2imfjidtjdvj = -kb1.*vi; d2imfjidtjdti = -kb2.*vij; d2imfjidtjdtj = kb2.*vij; % - - - - - - - - - - - - - - - - - - - % - - - - - - - - - - - - - - - - - - - rehijtiti = 2*mu1.*(drefijdti.*drefijdti+refij.*d2refijdtidti); rehijtitj = 2*mu1.*(drefijdti.*drefijdtj+refij.*d2refijdtidtj); rehijtjti = 2*mu1.*(drefijdtj.*drefijdti+refij.*d2refijdtjdti); rehijtjtj = 2*mu1.*(drefijdtj.*drefijdtj+refij.*d2refijdtjdtj); rehijtivi = 2*mu1.*(drefijdti.*drefijdvi+refij.*d2refijdtidvi); rehijtivj = 2*mu1.*(drefijdti.*drefijdvj+refij.*d2refijdtidvj); rehijtjvi = 2*mu1.*(drefijdtj.*drefijdvi+refij.*d2refijdtjdvi); rehijtjvj = 2*mu1.*(drefijdtj.*drefijdvj+refij.*d2refijdtjdvj); rehijviti = 2*mu1.*(drefijdvi.*drefijdti+refij.*d2refijdvidti); rehijvitj = 2*mu1.*(drefijdvi.*drefijdtj+refij.*d2refijdvidtj); rehijvjti = 2*mu1.*(drefijdvj.*drefijdti+refij.*d2refijdvjdti); rehijvjtj = 2*mu1.*(drefijdvj.*drefijdtj+refij.*d2refijdvjdtj); rehijvivi = 2*mu1.*(drefijdvi.*drefijdvi+refij.*d2refijdvidvi); rehijvivj = 2*mu1.*(drefijdvi.*drefijdvj+refij.*d2refijdvidvj); rehijvjvi = 2*mu1.*(drefijdvj.*drefijdvi+refij.*d2refijdvjdvi); rehijvjvj = 2*mu1.*(drefijdvj.*drefijdvj+refij.*d2refijdvjdvj); % - - - - - - - - - - - - - - - - - - - % - - - - - - - - - - - - - - - - - - - imhijtiti = 2*mu1.*(dimfijdti.*dimfijdti+imfij.*d2imfijdtidti); imhijtitj = 2*mu1.*(dimfijdti.*dimfijdtj+imfij.*d2imfijdtidtj); imhijtjti = 2*mu1.*(dimfijdtj.*dimfijdti+imfij.*d2imfijdtjdti); imhijtjtj = 2*mu1.*(dimfijdtj.*dimfijdtj+imfij.*d2imfijdtjdtj); imhijtivi = 2*mu1.*(dimfijdvi.*dimfijdti+imfij.*d2imfijdtidvi); imhijtivj = 2*mu1.*(dimfijdvj.*dimfijdti+imfij.*d2imfijdtidvj); imhijtjvi = 2*mu1.*(dimfijdvi.*dimfijdtj+imfij.*d2imfijdtjdvi); imhijtjvj = 2*mu1.*(dimfijdvj.*dimfijdtj+imfij.*d2imfijdtjdvj); imhijviti = 2*mu1.*(dimfijdvi.*dimfijdti+imfij.*d2imfijdvidti); imhijvitj = 2*mu1.*(dimfijdvi.*dimfijdtj+imfij.*d2imfijdvidtj); imhijvjti = 2*mu1.*(dimfijdvj.*dimfijdti+imfij.*d2imfijdvjdti); imhijvjtj = 2*mu1.*(dimfijdvj.*dimfijdtj+imfij.*d2imfijdvjdtj); imhijvivi = 2*mu1.*(dimfijdvi.*dimfijdvi+imfij.*d2imfijdvidvi); imhijvivj = 2*mu1.*(dimfijdvi.*dimfijdvj+imfij.*d2imfijdvidvj); imhijvjvi = 2*mu1.*(dimfijdvj.*dimfijdvi+imfij.*d2imfijdvjdvi); imhijvjvj = 2*mu1.*(dimfijdvj.*dimfijdvj+imfij.*d2imfijdvjdvj); % - - - - - - - - - - - - - - - - - - - % - - - - - - - - - - - - - - - - - - - rehjititi = 2*mu2.*(drefjidti.*drefjidti+refji.*d2refjidtidti); rehjititj = 2*mu2.*(drefjidti.*drefjidtj+refji.*d2refjidtidtj); rehjitjti = 2*mu2.*(drefjidtj.*drefjidti+refji.*d2refjidtjdti); rehjitjtj = 2*mu2.*(drefjidtj.*drefjidtj+refji.*d2refjidtjdtj); rehjitivi = 2*mu2.*(drefjidvi.*drefjidti+refji.*d2refjidtidvi); rehjitivj = 2*mu2.*(drefjidvj.*drefjidti+refji.*d2refjidtidvj); rehjitjvi = 2*mu2.*(drefjidvi.*drefjidtj+refji.*d2refjidtjdvi); rehjitjvj = 2*mu2.*(drefjidvj.*drefjidtj+refji.*d2refjidtjdvj); rehjiviti = 2*mu2.*(drefjidvi.*drefjidti+refji.*d2refjidvidti); rehjivitj = 2*mu2.*(drefjidvi.*drefjidtj+refji.*d2refjidvidtj); rehjivjti = 2*mu2.*(drefjidvj.*drefjidti+refji.*d2refjidvjdti); rehjivjtj = 2*mu2.*(drefjidvj.*drefjidtj+refji.*d2refjidvjdtj); rehjivivi = 2*mu2.*(drefjidvi.*drefjidvi+refji.*d2refjidvidvi); rehjivivj = 2*mu2.*(drefjidvi.*drefjidvj+refji.*d2refjidvidvj); rehjivjvi = 2*mu2.*(drefjidvj.*drefjidvi+refji.*d2refjidvjdvi); rehjivjvj = 2*mu2.*(drefjidvj.*drefjidvj+refji.*d2refjidvjdvj); % - - - - - - - - - - - - - - - - - - - % - - - - - - - - - - - - - - - - - - - imhjititi = 2*mu2.*(dimfjidti.*dimfjidti+imfji.*d2imfjidtidti); imhjititj = 2*mu2.*(dimfjidti.*dimfjidtj+imfji.*d2imfjidtidtj); imhjitjti = 2*mu2.*(dimfjidtj.*dimfjidti+imfji.*d2imfjidtjdti); imhjitjtj = 2*mu2.*(dimfjidtj.*dimfjidtj+imfji.*d2imfjidtjdtj); imhjitivi = 2*mu2.*(dimfjidvi.*dimfjidti+imfji.*d2imfjidtidvi); imhjitivj = 2*mu2.*(dimfjidvj.*dimfjidti+imfji.*d2imfjidtidvj); imhjitjvi = 2*mu2.*(dimfjidvi.*dimfjidtj+imfji.*d2imfjidtjdvi); imhjitjvj = 2*mu2.*(dimfjidvj.*dimfjidtj+imfji.*d2imfjidtjdvj); imhjiviti = 2*mu2.*(dimfjidvi.*dimfjidti+imfji.*d2imfjidvidti); imhjivitj = 2*mu2.*(dimfjidvi.*dimfjidtj+imfji.*d2imfjidvidtj); imhjivjti = 2*mu2.*(dimfjidvj.*dimfjidti+imfji.*d2imfjidvjdti); imhjivjtj = 2*mu2.*(dimfjidvj.*dimfjidtj+imfji.*d2imfjidvjdtj); imhjivivi = 2*mu2.*(dimfjidvi.*dimfjidvi+imfji.*d2imfjidvidvi); imhjivivj = 2*mu2.*(dimfjidvi.*dimfjidvj+imfji.*d2imfjidvidvj); imhjivjvi = 2*mu2.*(dimfjidvj.*dimfjidvi+imfji.*d2imfjidvjdvi); imhjivjvj = 2*mu2.*(dimfjidvj.*dimfjidvj+imfji.*d2imfjidvjdvj); % - - - - - - - - - - - - - - - - - - - Hij = [sparse(Line.from,Line.from,rehijtiti+imhijtiti,Bus.n, Bus.n) + ... sparse(Line.from,Line.to, rehijtitj+imhijtitj,Bus.n, Bus.n) + ... sparse(Line.to, Line.from,rehijtjti+imhijtjti,Bus.n, Bus.n) + ... sparse(Line.to, Line.to, rehijtjtj+imhijtjtj,Bus.n, Bus.n), ... sparse(Line.from,Line.from,rehijtivi+imhijtivi,Bus.n, Bus.n) + ... sparse(Line.from,Line.to, rehijtivj+imhijtivj,Bus.n, Bus.n) + ... sparse(Line.to, Line.from,rehijtjvi+imhijtjvi,Bus.n, Bus.n) + ... sparse(Line.to, Line.to, rehijtjvj+imhijtjvj,Bus.n, Bus.n); ... sparse(Line.from,Line.from,rehijviti+imhijviti,Bus.n, Bus.n) + ... sparse(Line.from,Line.to, rehijvitj+imhijvitj,Bus.n, Bus.n) + ... sparse(Line.to, Line.from,rehijvjti+imhijvjti,Bus.n, Bus.n) + ... sparse(Line.to, Line.to, rehijvjtj+imhijvjtj,Bus.n, Bus.n), ... sparse(Line.from,Line.from,rehijvivi+imhijvivi,Bus.n, Bus.n) + ... sparse(Line.from,Line.to, rehijvivj+imhijvivj,Bus.n, Bus.n) + ... sparse(Line.to, Line.from,rehijvjvi+imhijvjvi,Bus.n, Bus.n) + ... sparse(Line.to, Line.to, rehijvjvj+imhijvjvj,Bus.n, Bus.n)]; Hji = [sparse(Line.from,Line.from,rehjititi+imhjititi,Bus.n, Bus.n) + ... sparse(Line.from,Line.to, rehjititj+imhjititj,Bus.n, Bus.n) + ... sparse(Line.to, Line.from,rehjitjti+imhjitjti,Bus.n, Bus.n) + ... sparse(Line.to, Line.to, rehjitjtj+imhjitjtj,Bus.n, Bus.n), ... sparse(Line.from,Line.from,rehjitivi+imhjitivi,Bus.n, Bus.n) + ... sparse(Line.from,Line.to, rehjitivj+imhjitivj,Bus.n, Bus.n) + ... sparse(Line.to, Line.from,rehjitjvi+imhjitjvi,Bus.n, Bus.n) + ... sparse(Line.to, Line.to, rehjitjvj+imhjitjvj,Bus.n, Bus.n); ... sparse(Line.from,Line.from,rehjiviti+imhjiviti,Bus.n, Bus.n) + ... sparse(Line.from,Line.to, rehjivitj+imhjivitj,Bus.n, Bus.n) + ... sparse(Line.to, Line.from,rehjivjti+imhjivjti,Bus.n, Bus.n) + ... sparse(Line.to, Line.to, rehjivjtj+imhjivjtj,Bus.n, Bus.n), ... sparse(Line.from,Line.from,rehjivivi+imhjivivi,Bus.n, Bus.n) + ... sparse(Line.from,Line.to, rehjivivj+imhjivivj,Bus.n, Bus.n) + ... sparse(Line.to, Line.from,rehjivjvi+imhjivjvi,Bus.n, Bus.n) + ... sparse(Line.to, Line.to, rehjivjvj+imhjivjvj,Bus.n, Bus.n)];end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -