📄 00.txt
字号:
n=input('节点数n=');
npq=input('PQ节点数npq=');
pr=input('误差精度pr=');
C1=input('节点之间的阻抗参数C1=');
C2=input('各节点自导纳参数C2=');
Y=zeros(n,n);
for i=1:n-1
for j=1:n-i
Y(i,i+j)=C1(i,j);
end
end
Y=Y+Y.';
for i=1:n
Y(i,i)=C2(i);
end %节点导纳矩阵——Y生成;
G=real(Y);
B=imag(Y);
B1=B(1:n-1,1:n-1);%有功迭代雅克比矩阵——B';
B1
npq=2;
B2=B(1:npq,1:npq);%无功迭代雅克比矩阵——B'';
B2
Pis=input('依次输入初值参数Pis=');
Vj0=input('依次输入初值参数Vj0=');
ui0=input('依次输入初值参数ui0=');
Qis=input('依次输入初值参数Qis=');
format long
k=0
for i=1:n-1
M=0;
for j=1:n
M=M+Vj0(j)*(G(i,j)*cos(ui0(i)-ui0(j))+B(i,j)*sin(ui0(i)-ui0(j)));
end
dertPi(i)=Pis(a)-Vj0(i)*M;
end
dertPi %有功功率不平衡增量;
M1=1;
for i=1:n-1
if abs(dertPi(i))<pr
a=1;
else a=0;
end
M1=M1&a;
end %判断Pis是否全都小于pr,是则M1置1,否则M1置0;
for i=1:npq
M=0;
for j=1:n
M=M+Vj0(j)*(G(i,j)*sin(ui0(i)-ui0(j))-B(i,j)*cos(ui0(i)-ui0(j)));
end
dertQi(i)=Qis(i)-Vj0(i)*M;
end
dertQi %无功功率不平衡增量;
M2=1;
for i=1:npq
if abs(dertQi(i))<pr
a=1;
else a=0;
end
M2=M2&a;
end %判断Qis是否全都小于pr,是则M2置1,否则M2置0;
while (M1&M2)==0
PV=zeros(1,n-1);
for i=1:n-1
PV(i)=dertPi(i)/Vj0(i);
end %P/V
QV=zeros(1,npq);
for i=1:npq
QV(i)=dertQi(i)/Vj0(i);
end %Q/V
Vidertui=zeros(n-1,1);
Vidertui=(-B1)\(PV');
dertui=zeros(1,n-1);
for i=1:n-1
dertui(i)=Vidertui(i)/Vj0(i);
end %dertui
for i=1:n-1
ui0(i)=ui0(i)+dertui(i);
end %ui
dertVi=(-B2)\(QV'); %dertVi
for i=1:npq
Vj0(i)= Vj0(i)+dertVi(i);
end %Vj
k=k+1
V1=Vj0(1)
V2=Vj0(2)
u1=ui0(1)*180/pi
u2=ui0(2)*180/pi
u3=ui0(3)*180/pi
for i=1:n-1
M=0;
for j=1:n
M=M+Vj0(j)*(G(i,j)*cos(ui0(i)-ui0(j))+B(i,j)*sin(ui0(i)-ui0(j)));
end
dertPi(i)=Pis(i)-Vj0(i)*M;
end
dertPi %有功功率不平衡增量;
M1=1;
for i=1:n-1
if abs(dertPi(i))<pr
a=1;
else a=0;
end
M1=M1&a;
end %判断Pis是否全都小于pr,是则M1置1,否则M1置0;
for i=1:npq
M=0;
for j=1:n
M=M+Vj0(j)*(G(i,j)*sin(ui0(i)-ui0(j))-B(i,j)*cos(ui0(i)-ui0(j)));
end
dertQi(i)=Qis(i)-Vj0(i)*M;
end
dertQi %无功功率不平衡增量;
M2=1;
for i=1:npq
if abs(dertQi(i))<pr
a=1;
else a=0;
end
M2=M2&a;
end %判断Qis是否全都小于pr,是则M2置1,否则M2置0;
end
M=0;
i=n;
for j=1:n
M=M+conj(Y(i,j))*conj(Vj0(j)*exp(ui0(j)*sqrt(-1)));
end
Sn=Vj0(i)*exp(ui0(i)*sqrt(-1))*M
y=zeros(n,n);
yi0=input('输入yi矩阵:yi0=');
yij=input('输入yij矩阵:yij=');
S=zeros(n,n);
for i=1:n
for j=1:n
if i==j
continue;
end
S(i,j)=(Vj0(i)^2)*conj(yi0(i,j))+Vj0(i)*exp(ui0(i)*sqrt(-1))*(conj(Vj0(i)*exp(ui0(i)*sqrt(-1)))-conj(Vj0(j)*exp(ui0(j)*sqrt(-1))))*conj(yij(i,j));
end
end
S
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -