程序说明书.docx
- 文档编号:3746504
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:31
- 大小:210.84KB
程序说明书.docx
《程序说明书.docx》由会员分享,可在线阅读,更多相关《程序说明书.docx(31页珍藏版)》请在冰豆网上搜索。
程序说明书
程序说明书(MATLAB2009R)
20913031朱光照
一、潮流计算的基本原理
程序采用牛顿—拉夫逊法潮流法计算
采用极坐标时,节点电压表示为
节点功率将写成
(1)
式中,
,是
、
两节点电压的相角差。
方程式把节点功率表示为节点电压的幅值和相角的函数。
在有
个节点的系统中,假定第
号节点为
节点,第
号节点为PV节点,第
号节点为平衡节点。
和
是给定的,PV节点的电压幅值
也是给定的。
因此,只剩下
个节点的电压相角
和
个节点的电压幅值
是未知量。
实际上,对于每一个
节点或每一个
节点都可以列写一个有功功率不平衡量方程式
(2)
而对于每一个
节点还可以再列写一个无功功率不平衡量方程式
(3)
式(3-23)和式(3-24)一共包含了
个方程式,正好同未知量的数目相等,而比直角坐标形式的方程少了
个。
对于方程式(3-23)和式(3-24)可以写出修正方程式如下
(4)
式中
(5)
是
阶方阵,其元素为
;
是
阶矩阵,其元素为
;
是
阶矩阵,其元素为
;
是
阶方阵,其元素为
。
在这里把节点不平衡功率对节点电压幅值的偏导数都乘以该节点电压,相应地把节点电压的修正量都除以该节点的电压幅值,这样,雅可比矩阵元素的表达式就具有比较整齐的形式。
对式
(2)和式(3)求偏导数,可以得到雅可比矩阵元素的表达式如下
当
时
(6)
当
时
(7)
二、程序说明
该程序是基于Matlab软件基础上,进行的电力系统潮流计算的一个小程序。
相关的原始数据数据数据输入格式如下:
B1是支路参数矩阵,第一列和第二列是节点编号。
节点编号由小到大编写
对于含有变压器的支路,第一列为低压侧节点编号,第二列为高压侧节点
编号,将变压器的串联阻抗置于低压侧处理。
第三列为支路的串列阻抗参数。
第四列为支路的对地导纳参数。
第五烈为含变压器支路的变压器的变比
第六列为变压器是否是否含有变压器的参数,其中“1”为含有变压器,
“0”为不含有变压器。
B2为节点参数矩阵,其中第一列为节点注入发电功率参数;第二列为节点
负荷功率参数;第三列为节点电压参数;第六列为节点类型参数,其中
“1”为平衡节点,“2”为PQ节点,“3”为PV节点参数。
X为节点号和对地参数矩阵。
其中第一列为节点编号,第二列为节点对地参数。
三、程序流程框图
四、程序清单
%B1是支路参数矩阵,第一列和第二列是节点编号。
节点编号由小到大编写
%对于含有变压器的支路,第一列为低压侧节点编号,第二列为高压侧节点
%编号,将变压器的串联阻抗置于低压侧处理。
%第三列为支路的串列阻抗参数。
%第四列为支路的对地导纳参数。
%第五烈为含变压器支路的变压器的变比
%第六列为变压器是否是否含有变压器的参数,其中“1”为含有变压器,
%“0”为不含有变压器。
%B2为节点参数矩阵,其中第一列为节点注入发电功率参数;第二列为节点
%负荷功率参数;第三列为节点电压参数;第六列为节点类型参数,其中
%“1”为平衡节点,“2”为PQ节点,“3”为PV节点参数。
%X为节点号和对地参数矩阵。
其中第一列为节点编号,第二列为节点对地
%参数。
n=input('请输入节点数:
n=');
n1=input('请输入支路数:
n1=');
isb=input('请输入平衡节点号:
isb=');
pr=input('请输入误差精度:
pr=');
B1=input('请输入支路参数:
B1=');
B2=input('请输入节点参数:
B2=');
X=input('节点号和对地参数:
X=');
Y=zeros(n);
Times=1;%置迭代次数为初始值
%创建节点导纳矩阵
fori=1:
n1
ifB1(i,6)==0%不含变压器的支路
p=B1(i,1);
q=B1(i,2);
Y(p,q)=Y(p,q)-1/B1(i,3);
Y(q,p)=Y(p,q);
Y(p,p)=Y(p,p)+1/B1(i,3)+0.5*B1(i,4);
Y(q,q)=Y(q,q)+1/B1(i,3)+0.5*B1(i,4);
else%含有变压器的支路
p=B1(i,1);
q=B1(i,2);
Y(p,q)=Y(p,q)-1/(B1(i,3)*B1(i,5));
Y(q,p)=Y(p,q);
Y(p,p)=Y(p,p)+1/B1(i,3);
Y(q,q)=Y(q,q)+1/(B1(i,5)^2*B1(i,3));
end
end
Y
OrgS=zeros(2*n-2,1);
DetaS=zeros(2*n-2,1);%将OrgS、DetaS初始化
%创建OrgS,用于存储初始功率参数
h=0;
j=0;
fori=1:
n%对PQ节点的处理
ifi~=isb&B2(i,6)==2
h=h+1;
forj=1:
n
OrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));
OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));
end
end
end
fori=1:
n%对PV节点的处理,注意这时不可再将h初始化为0
ifi~=isb&B2(i,6)==3
h=h+1;
forj=1:
n
OrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));
OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));
end
end
end
OrgS
%创建PVU用于存储PV节点的初始电压
PVU=zeros(n-h-1,1);
t=0;
fori=1:
n
ifB2(i,6)==3
t=t+1;
PVU(t,1)=B2(i,3);
end
end
PVU
%创建DetaS,用于存储有功功率、无功功率和电压幅值的不平衡量
h=0;
fori=1:
n%对PQ节点的处理
ifi~=isb&B2(i,6)==2
h=h+1;
DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);
DetaS(2*h,1)=imag(B2(i,2))-OrgS(2*h,1);
end
end
t=0;
fori=1:
n%对PV节点的处理,注意这时不可再将h初始化为0
ifi~=isb&B2(i,6)==3
h=h+1;
t=t+1;
DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);
DetaS(2*h,1)=real(PVU(t,1))^2+imag(PVU(t,1))^2-real(B2(i,3))^2-imag(B2(i,3))^2;
end
end
DetaS
%创建I,用于存储节点电流参数
i=zeros(n-1,1);
h=0;
fori=1:
n
ifi~=isb
h=h+1;
I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,3));
end
end
I
%创建Jacbi(雅可比矩阵)
Jacbi=zeros(2*n-2);
h=0;
k=0;
fori=1:
n%对PQ节点的处理
ifB2(i,6)==2
h=h+1;
forj=1:
n
ifj~=isb
k=k+1;
ifi==j%对角元素的处理
Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I(h,1));
Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1));
Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));
Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));
else%非对角元素的处理
Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));
Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));
Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);
Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);
end
ifk==(n-1)%将用于内循环的指针置于初始值,以确保雅可比矩阵换行
k=0;
end
end
end
end
end
k=0;
fori=1:
n%对PV节点的处理
ifB2(i,6)==3
h=h+1;
forj=1:
n
ifj~=isb
k=k+1;
ifi==j%对角元素的处理
Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I(h,1));
Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1));
Jacbi(2*h,2*k-1)=2*imag(B2(i,3));
Jacbi(2*h,2*k)=2*real(B2(i,3));
else%非对角元素的处理
Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));
Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));
Jacbi(2*h,2*k-1)=0;
Jacbi(2*h,2*k)=0;
end
ifk==(n-1)%将用于内循环的指针置于初始值,以确保雅可比矩阵换行
k=0;
end
end
end
end
end
Jacbi
%求解修正方程,获取节点电压的不平衡量
DetaU=zeros(2*n-2,1);
DetaU=inv(Jacbi)*DetaS;
DetaU
%修正节点电压
j=0;
fori=1:
n%对PQ节点处理
ifB2(i,6)==2
j=j+1;
B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);
end
end
fori=1:
n%对PV节点的处理
ifB2(i,6)==3
j=j+1;
B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);
end
end
B2
%开始循环**********************************************************************
whileabs(max(DetaU))>pr
OrgS=zeros(2*n-2,1);%!
!
!
初始功率参数在迭代过程中是不累加的,所以在这里必须将其初始化为零矩阵
h=0;
j=0;
fori=1:
n
ifi~=isb&B2(i,6)==2
h=h+1;
forj=1:
n
OrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));
OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));
end
end
end
fori=1:
n
ifi~=isb&B2(i,6)==3
h=h+1;
forj=1:
n
OrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));
OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));
end
end
end
OrgS
%创建DetaS
h=0;
fori=1:
n
ifi~=isb&B2(i,6)==2
h=h+1;
DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);
DetaS(2*h,1)=imag(B2(i,2))-OrgS(2*h,1);
end
end
t=0;
fori=1:
n
ifi~=isb&B2(i,6)==3
h=h+1;
t=t+1;
DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);
DetaS(2*h,1)=real(PVU(t,1))^2+imag(PVU(t,1))^2-real(B2(i,3))^2-imag(B2(i,3))^2;
end
end
DetaS
%创建I
i=zeros(n-1,1);
h=0;
fori=1:
n
ifi~=isb
h=h+1;
I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,3));
end
end
I
%创建Jacbi
Jacbi=zeros(2*n-2);
h=0;
k=0;
fori=1:
n
ifB2(i,6)==2
h=h+1;
forj=1:
n
ifj~=isb
k=k+1;
ifi==j
Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I(h,1));
Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1));
Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));
Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));
else
Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));
Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));
Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);
Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);
end
ifk==(n-1)
k=0;
end
end
end
end
end
k=0;
fori=1:
n
ifB2(i,6)==3
h=h+1;
forj=1:
n
ifj~=isb
k=k+1;
ifi==j
Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I(h,1));
Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1));
Jacbi(2*h,2*k-1)=2*imag(B2(i,3));
Jacbi(2*h,2*k)=2*real(B2(i,3));
else
Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));
Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));
Jacbi(2*h,2*k-1)=0;
Jacbi(2*h,2*k)=0;
end
ifk==(n-1)
k=0;
end
end
end
end
end
Jacbi
DetaU=zeros(2*n-2,1);
DetaU=inv(Jacbi)*DetaS;
DetaU
%修正节点电压
j=0;
fori=1:
n
ifB2(i,6)==2
j=j+1;
B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);
end
end
fori=1:
n
ifB2(i,6)==3
j=j+1;
B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);
end
end
B2
Times=Times+1;%迭代次数加1
end
Times
程序说明书(MATLAB2009R)
20913031朱光照
短路计算包括短路电压和短路电流的计算。
程序所用的是120对称分量法。
具体算法分为两部分,一部分为三相接地短路计算,另一部分为其他不对称短路计算。
具体原理如下:
一、三相短路计算
由于三相电路是对称的,三相短路时短路电流的周期分量也是对称的,只需要分析一相。
根据网络的导纳矩阵Y求出其阻抗矩阵Z,短路点的短路电流即为短路点对应的网络入端阻抗的倒数。
短路电压为零。
所以只要求出阻抗矩阵就可以求出短路电压和电流了。
非故障点的电流电压算法见后面。
短路计算总体框图如下:
二、不对称短路计算(对称分量法)
所谓对称分量法,就是将一组不对称的三相分量分解成三组对称的三序分量之和。
这三组对称的序分量分别称为正序分量、负序分量、零序分量,然后分别按对称的三相电路去解,在线性电路中应用叠加原理将其结果叠加起来,就是不对称三相电路的解。
设
、
、
为系统中任意一组不对称的相量,分解成三组对称的三序分量:
、
、
为三相的正序分量,大小相等,彼此相位相差120度,与系统正常对称运行方式下的相序相同。
、
、
为三相的负序分量,大小相等,彼此相位相差120度,与系统正常对称运行方式下的相序相反。
、
、
为三相的零序分量,大小相等,相位相同。
若以a相为基准相,则有:
(1)
式中
,
,且
。
电力系统运行一般是对称的,当电力系统中某一点发生不对称故障时,三相对称电路变成了不对称电路,但是除了故障点之外,其余部分原参数还是对称的。
此时应用对称分量法将不对称的电压、电流分解为三组对称的序分量,由于每一系统中三项对称,则在选好一相为基准后,每一序只需要计算一相即可。
无论哪一种短路故障,都可以找到一个三序网和三个基本电压方程的标准形式。
这些方程式是以序分量表示的,一般已知电源电动势及各序阻抗,而未知电压电流的序分量
、
、
、
、
、
,因此对于简单的不对称故障计算,只需计算出各序分量就可以进一步计算出故障电流和电压了。
各序分量计算方法如下:
a)单相接地短路时:
边界条件:
各序分量:
,
,
b)两相短路时:
边界条件:
,
,
,
各序分量:
,
,
c)两相短路接地时:
边界条件:
,
各序分量:
,
,
求出各序分量之后,既可利用式
(1)求出三相电流和电压。
三、非故障点的电流电压
求支路电流的方法是:
先求出短路点的各序电流分量,再按各序网络的结构和参数分配到各支路中去,最后再将同一支路中的各序电流分量按对称分量法合成,得该支路的各相电流。
求其他节点电压的方法是:
先求出短路点的各序电压分量,再以短路点各序电压为基础,逐段加上相应支路各序电压降,得到各节点的各序电压,最后再将同一节点上的各序电压分量按对称分量法合成,得该节点的各相电压。
四、程序清单
%电力系统故障程序
%*******************************************************************
%读入潮流结果数据
%*******************************************************************
fidflow=fopen('D:
\matlab\chaoliu.txt','r');
dataflow=fscanf(fidflow,'%d%f%f',[3,inf]);
fclose(fidflow);
dataflow=dataflow';
aa=dataflow(:
2);%电压幅值
theta=dataflow(:
3)*3.1416/180;%电压相角
U=aa.*(cos(theta)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 说明书