form_jac.asv

来自「电力系统计算节点数不多的潮流程序,数度比较快」· ASV 代码 · 共 50 行

ASV
50
字号

function J=form_jac(V,ang,Y,nb,m)
x=0;
y=0;
for i=1:nb,
    for j=1:nb,
        G(i,j)=real(Y(i,j));
        B(i,j)=imag(Y(i,j));
        angl(i,j)=ang(i,1)-ang(j,1);
    end
end
for i=1:nb-1,
    for j=1:nb-1,
        if i~=j
            H(i,j)=(-1)*V(i,1)*V(j,1)*(G(i,j)*sin(angl(i,j))-B(i,j)*cos(angl(i,j)));
            if j<=m
                N(i,j)=(-1)*V(i,1)*V(j,1)*(G(i,j)*cos(angl(i,j))+B(i,j)*sin(angl(i,j)));
            end
            if i<=m
                K(i,j)=V(i,1)*V(j,1)*(G(i,j)*cos(angl(i,j))+B(i,j)*sin(angl(i,j)));
            end
            if i<=m&j<=m
                L(i,j)=(-1)*V(i,1)*V(j,1)*(G(i,j)*sin(angl(i,j))-B(i,j)*cos(angl(i,j)));
            end
        else   i==j
            if i<=nb-1
                x=0;
                for j=1:nb,
                    if i~=j
                        x=x+V(j,1)*(G(i,j)*sin(angl(i,j))-B(i,j)*cos(angl(i,j)));
                    end
                end
                H(i,i)=V(i,1)*x;
            end
            
            if i<=m
                y=0;
                for j=1:nb,
                    if i~=j
                        y=y+V(j,1)*(G(i,j)*cos(angl(i,j))+B(i,j)*sin(angl(i,j)));
                    end
                end
                N(i,i)=(-1)*V(i,1)*y-2*V(i,1)*V(i,1)*G(i,i);
                K(i,i)=N(i,i)+2*V(i,1)*V(i,1)*G(i,i);
                L(i,i)=(-1)*H(i,i)+2*V(i,1)*V(i,1)*B(i,i);
            end
        end
    end
end
J=[H N;K L];

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?