牛顿-拉夫逊法进行潮流计算matlab源程序

%本程序的功能是用牛顿-拉夫逊法进行潮流计算
n=input('请输入节点数:n=');
nl=input('请输入支路数:nl=');
isb=input('请输入平衡母线节电号:isb=');
pr=input('请输入误差精度:pr=');
B1=input('请输入由支路参数形成的矩阵:B1=');%变压器侧为1,否则为0
B2=input('请输入各节点参数形成的矩阵:B2=');
X=input('请输入由节点号及其对地阻抗形成的矩阵:X=');
Y=zeros(n);U=zeros(1,n);cta=zeros(1,n);V=zeros(1,n);O=zeros(1,n);S1=zeros(nl);
for i=1:n
    if X(i,2)~=0;
        p=X(i,1);
        Y(p,p)=X(i,2);
    end
end
for i=1:nl
    if B1(i,6)==0
        p=B1(i,1);q=B1(i,2);
    else p=B1(i,2);q=B1(i,1);
    end
    Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
    Y(q,p)=Y(p,q);
    Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;
    Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;
end %求导纳矩阵
G=real(Y);B=imag(Y);
for i=1:n
    cta(i)=angle(B2(i,3));
    U(i)=abs(B2(i,3));
    %V(i)=B2(i,4);
end
for i=1:n
    S(i)=B2(i,1)-B2(i,2);
    B(i,i)=B(i,i)+B2(i,5);
end
P=real(S);Q=imag(S);
ICT1=0;IT2=1;
while IT2~=0
    IT2=0;t1=1;t2=1;
    for i=1:n
  

你可能感兴趣的:(MATLAB解决方案)