目录
1 主要内容
2 部分代码
3 程序结果
4 下载链接
1 主要内容
该部分资料是牛拉法和PQ分解法两种潮流计算方法的代码和对应的资料,程序针对5节点系统,也可以自行修改节点和线路参数改成其他节点系统,程序通用性较强,注释清晰,方便学习。
2 部分代码
n=5; %输入节点数
nl=5; %输入支路数
isb=1; %输入平衡母线节点号
pr=0.00001; %输入误差精度
B1=[1 2 0.03i 0 1.05 0;2 3 0.08+0.3i 0.5i 1 0;2 4 0.1+0.35i 0 1 0;3 4 0.04+0.25i 0.5i 1 0;3 5 0.015i 0 1.05 1]; %输入由支路参数形成的矩阵
B2=[0 0 1.05 1.05 0 1;0 3.7+1.3i 1.05 0 0 2;0 2+1i 1.05 0 0 2;0 1.6+0.8i 1.05 0 0 2;5 0 1.05 1.05 0 3]; %输入由节点参数形成的矩阵
X=[1 0;2 0;3 0;4 0;5 0]; %输入由节点号及其对地阻抗形成的矩阵
Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);O=zeros(1,n);S1=zeros(nl);O1=zeros(1,n);
%形成导纳矩阵
for i=1:n
if X(i,2)~=0 %判断节点对地是否存在阻抗
p=X(i,1); %如果该节点对地存在阻抗,则将该节点编号赋值给p
Y(p,p)=Y(p,p)+1./X(i,2); %计算对地阻抗对于节点自阻抗的影响
end
end
for i=1:nl
if B1(i,6)==0 %判断该支路参数是否已折算到变压器高压侧
p=B1(i,1);q=B1(i,2); %如果该支路参数是否已折算到变压器高压侧,则将B1矩阵第一列元素赋值给p,将B2矩阵第二列元素赋值给q
else
p=B1(i,2);q=B1(i,1); %如果该支路参数是否已折算到变压器高压侧,则将B1矩阵第一列元素赋值给q,将B2矩阵第二列元素赋值给p
end
Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5)); %计算节点间互导纳
Y(q,p)=Y(p,q); %由于节点导纳矩阵为对称矩阵,因此Y(q,p)=Y(p,q)
Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2; %计算q节点自导纳
Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2; %计算p节点自导纳
end
%形成新的导纳矩阵(将PQ,PV和平衡节点进行分类)
node_sign=zeros(1,n); %记录新的导纳矩阵节点编号
PQ_count=0; %初始化PQ节点计数器
PV_count=0; %初始化PV节点计数器
for i=1:n
if B2(i,6)==1 %寻找平衡节点
node_sign(1,n)=i; %记录该PQ节点编号并将其放置到新的导纳矩阵节点编号矩阵最后一列
end
if B2(i,6)==2 %寻找PQ节点
PQ_count=PQ_count+1; %PQ节点个数加1
node_sign(1,PQ_count)=i; %记录该PQ节点编号
end
end
3 程序结果
牛拉法


PQ分解法


4 下载链接
点击直达!


















