电气工程和自动化专业综合实训一新Word下载.docx
- 文档编号:20362669
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:49
- 大小:140.72KB
电气工程和自动化专业综合实训一新Word下载.docx
《电气工程和自动化专业综合实训一新Word下载.docx》由会员分享,可在线阅读,更多相关《电气工程和自动化专业综合实训一新Word下载.docx(49页珍藏版)》请在冰豆网上搜索。
Qi=QGi–QLi
图3-1节点的变量
每条母线被归分为以下三种母线类型中的某一类:
1)平衡节点,一般一个系统只有一个平衡节点。
在潮流分布算出以前,网络中的功率损耗是未知的,因此,至少有一个节点的有功功率P和无功功率Q不能给定。
另外必须选定一个节点,制定其电压相角为零,作为其它节点电压相位的参考,这个节点叫基准节点。
为了计算方便,常将平衡节点和基准节点设在同一个节点上。
为方便起见在本书中把它标号为母线1。
平衡节点是电压参考节点,该母线的
是给定值,作为输入数据,典型取标幺值
。
潮流程序计算P1和Q1。
因为平衡节点的P、Q事先无法确定,为使潮流计算结果符合实际,常把平衡节点选在有较大调节裕量的发电机节点,潮流计算结束时若平衡节点的有功功率、无功功率和实际情况不符,就要调整其他节点的边界条件以使平衡节点的功率满足实际允许范围。
2)PQ节点,Pi和Qi是输入数据。
这类节点的有功功率Pi和无功功率Qi是给定的,潮流计算程序计算节点电压幅值Ui和相角
负荷节点和无功功率注入的联络节点都属于这类节点。
有些情况下,系统中某些发电厂送出的功率在一定时间内为固定时,该发电厂母线也可以作为PQ节点。
在一个典型的潮流程序中绝大多数母线作为PQ节点。
3)PU节点(电压控制母线),Pi和Ui是输入数据。
这类节点的有功功率Pi和节点电压幅值Ui是给定的,潮流程序计算节点的无功功率Qi和电压相角
这类节点必须具有足够的无功可调容量,用以保持给定的节点电压幅值。
在电力系统中这类节点的数目较少。
例如与发电机、并联补偿电容器或者静止无功系统相连的母线。
设备无功功率最大值QGimax和最小值QGimin都是输入数据。
另一个例子是与抽头可调节变压器相连的母线,用潮流程序计算抽头的位置。
注意,当母线i是无发电机相连接的负载母线时,Pi=-PLi为负值;
也就是说,在图3.1中给母线i提供的有功为负值。
如果负荷是感性的,Qi=-QLi为负值。
综上所述,若系统中有n个节点,n为网络中除去参考节点外的节点数,本书中以大地为参考节点,选第1个节点为平衡节点,剩下的n-1个节点中有r个PU节点,则有n-r-1个PQ节点。
因此,除了平衡节点外,有n-1个节点的注入有功功率、n-r-1个PQ节点的注入无功功率和r个PU节点电压幅值为已知量。
3.1.2潮流计算的数学模型
在稳态潮流计算中,电力系统各元件(参数)等效成一个有源网络。
将发电机和负荷用无阻抗线从网络中抽出,剩下的是由接地和不接地支路组成的无源线性网络,可以用导纳矩阵(Y)或阻抗矩阵(Z)来描述。
采用导纳矩阵时,节点电流和节点电压构成以下方程:
(3-1)
其中:
Y为n×
n阶导纳矩阵,其阶数n为网络中除去参考节点外的节点数,如果不考虑网络元件的非线性及变压器的相位偏移,Y为对称矩阵,
为n×
1维节点注入电流列向量,在电力系统计算中,节点注入电流可理解为该节点电源电流与负荷电流之和,并规定流入节点电流为正。
因此仅有负荷的节电电流就为负值,某些仅起联络作用的节点,图3-2中节点n=3,其注入电流为零。
1维节点电压列向量。
网络中有接地支路时,节点电压通常指该节点的对地电压,以大地作为参考节点,并规定其编号为零。
图3-2运用节点电压法时的电力网路等值电路
对于第i个节点,展开为如下形式:
(3-2)
若采用阻抗矩阵可表示为:
展开为:
(3-3)
在潮流计算时一般以节点电压方程进行。
节点导纳矩阵与阻抗矩阵互为逆阵,在短路计算时可直接利用导纳矩阵求逆得到阻抗矩阵以求得短路点的短路电流。
由于实际系统中一般不给出节点电流而是节点功率,因此将式(3-2)中的节点注入电流用节点注入功率来表示为:
(3-4)
如果节点电压用极坐标表示,令
n个节点电力系统的潮流方程的一般形式是
(3-5)
或
(3-6)
若采用直角坐标系,节点电压可表示为
导纳矩阵元素可以表示为
将上述表达式带入式(2-8)的右端,展开并分出实部和虚部,便得
(3-7)
可见,原来电流电压的线性方程组变换为功率和电压的非线性方程组,式(3-6)(3-7)就是潮流计算的基本方程。
它是一组共有n个非线性方程组成的复数方程组,如果把实部和虚部分开便得到2n个实数方程,由该方程组可解出2n个运行参数。
但是每一个节点都有P、Q、U、四个运行变量,共有4n个运行参数,所以要事先给定其余2n个参数。
这就要根据节点的分类,将每个节点的4个运行参数中的两个作为原始数据,另外两个作为待求量。
3.1.3潮流计算的约束条件
为了保证电力系统的正常运行,潮流问题中某些变量应满足一定的约束条件,常用的约束条件有:
(1)所有节点电压必须满足
从保证电能质量和供电安全的要求来看,电力系统的所有电气设备都必须运行在额定电压附近。
PU节点的电压幅值必须按上述条件给定。
因此,这一定约束条件主要是对PQ节点而言。
(2)所有电源节点的有功功率和无功功率必须满足
PQ节点的有功功率和无功功率以及PU节点有功功率,在给定时就必须满足此条件。
因此,对平衡节点的P和Q以及PU节点的Q应按此条件进行检验。
(3)某些节点之间电压的相位差应满足
为了保证系统运行的稳定性,要求某些输电线两端的电压相位差不超过一定的数值。
因此,潮流计算可以归结为求解一组非线性方程组,并使其解答满足一定的约束条件。
如果不能满足,则应修改某些变量。
甚至修改系统的运行方式,重新进行计算。
解:
(1)、将阻抗转换为导纳矩阵:
(2)、形成导纳矩阵:
(3)、B′,B〞形成以及其逆矩阵。
由题可知除1为平衡节点外,其他节点均为PQ节点,系数B′,B〞阶数相同,又因对该等值网络不存在去除与有功功率和电压或无功功率和电压大小关系较小因数的可能性,这两个矩阵B′,B〞完全相同,它们就由导纳矩阵的虚数部分中除第一行和第二行的各个元素组成。
B′=B〞=
由此可见,网络的节点导纳矩阵为奇异矩阵,但他的虚数部分的子矩阵B′和B〞,则是非记异矩阵,可以求逆矩阵,其逆矩阵:
=
(4)、计算各节点有功功率不平衡量
取
按下式计算各节点有功率不平衡:
相似的可得:
;
(5)、计算各节点电压的相位角
:
由下列矩阵方程式:
从而可得:
(6)、计算各节点无功功率不平衡
。
按下列计算各节点无功功率不平衡:
相似可得:
(7)、计算各节点电压的大小
PQ分解法潮流程序
//文件输入格式:
节点总数n(包括联络节点),支路数zls//
//节点数(发电机和负荷)nb,接地电抗数mdk,迭代精度eps//
//考虑负荷静特性标志kk2(0考虑),平衡节点号,优化标志(0不优化)//
//最大迭代次数it1,支路左右节点号izl[],jzl[],支路电阻zr[],电抗zx[]//
//支路容纳zyk[],节点号nob[]及标志nobt[](0-PQ,-1-PV)//
//发电机和负荷有功、无功pg[],qg[],pl[],ql[]//
//电压v0[](pv节点输入实际值,PQ节点任输入一值)//
//电抗节点号idk[],电抗值dkk[]//
#include"
math.h"
stdio.h"
#defineNS2000//最大节点数
#defineNS2NS*2
#defineNS41000//NS4、NS必须大于2*zls。
#defineZS3000//最大支路数
#defineZS2ZS*2
#defineDKS200//最大电抗器数
#defineN2ZS*4
#defineN3ZS*8+NS*4
FILE*fp1,*fp2;
charinname[12],outname[12];
//fp1输入数据文件指针fp2输出文件指针
//inname[]输入数据文件名outname[]输出数据文件名
intn,zls,nb,mdk,mpj,bnsopton,it1,dsd,kk2,nzls;
//节点总数n(包括联络节点)支路数(回路数)zls节点数nb(发电机和负荷)
//接地电抗数mdk精度eps平衡节点号mpj
//节点优化(标志)bnsopton(=0节点不优化,!
=0节点优化)
//最大迭代次数it1最低电压或最大功率误差节点号dsd
//负荷静特性标志(=0考虑负荷静特性)
//支路数(双回线算一条支路)
intizl[ZS],jzl[ZS],idk[DKS],yds[NS],ydz[NS],iy[ZS2];
//izl[],jzl[],idk[]:
分别存放左、右节点号和电抗器节点号。
//yds[]存放各行非零非对角元素的个数。
//ydz[i]是第i行第一个非零非对角元素的首地址,
//即在所有非零非对角元素中的次序号
//iy[]存放列足码。
intnnew[NS4],old[NS],nob[NS],nobt[NS];
//nnew[],old[]存放的是新、旧节点号。
//nnew[i]中为i对应的新号
//nob[]存放的是节点号。
nobt[]存放的是节点类型,0:
pq节点,-1:
pv节点。
doubleeps,dsm,vmin,dph,dqh,af[3];
//eps迭代收敛精度,dsm最大功率误差
//vmin:
系统最低电压值。
dph,dqh:
系统有、无功损耗。
//af[0]和af[1]分别是负荷有功功率、无功功率静态特性系数。
doublev00;
//v00:
系统平均电压ci,cj分别作为节点i,j的电压相角的临时存储单元。
doublezr[ZS],zx[ZS],zyk[ZS],dkk[DKS],gii[NS],bii[NS],yg[ZS2],yb[ZS2];
doublepg[NS],qg[NS],pl[NS],ql[NS],v0[NS],v[NS],va[NS];
//支路电阻zr[]支路电抗zx[]输电线路充电容纳zyk[](y0/2)
//接地电抗dkk[]对角元实部gii[]对角元虚部
//非对角元实部yg[]非对角元虚部yb[]
//pg[],qg[],pl[],ql[]:
发电机,负荷功率实、虚部
//v[]是电压幅值,va[]是电压相角。
doublew[NS2],kg[3],b[NS2];
intnewsort[NS4];
//newsort[i]存放i对应的老号
voidinitial();
voidpqflow();
voidout();
voiddataio();
voidbnsopt();
voidzlsort(int*nnew);
voidprinto();
voidprinty();
voidy2();
voidya0();
voidyzb();
voidjdgl(intkq0);
voidbbhl(intkq0);
voidcalc();
intiabs(inta);
voidbranch_output();
voidnewval(double*aa);
voidprintc();
voidiswap();
voidswap();
voidprintf2(double*aa,double*bb,intn);
voidcalc(int*iu,double*u,double*di,int*nfd,double*b);
voidprinti(int*aa,intn);
voidprintf1(double*aa,intn);
intfind(intk,inta[],int*z);
voidyzb(intt,int*iu,double*u,double*di,int*nfd);
intisgn(inta,intb);
voidyy1();
voidy3();
voidnewtoold();
intmain(void)
{
initial();
//初始化
pqflow();
//pq潮流计算
out();
//输出节点和支路数据
return1;
}
intisgn(inta,intb)
//****本函数功能返回值为a的绝对值b的符号****//
//参数1提供值,参数2提供符号//
if(b<
0)
if(a>
a=-a;
returna;
intfind(intk,inta[],int*z)
//****本函数查找a[]中是否有fabs(k)有则返回0,无则返回1****//
//参数1为待查找量,参数2待搜索数组,参数3返回k在a[]中的次序号//
inti;
for(i=1;
i<
=n;
i++)
if(iabs(k)==a[i])
{
*z=i;
return1;
}
return0;
voidoldtonew()
//****本函数将输入数据中的节点号变成从1开始的连续节点号****//
inti,j,k,ii1,ii2,zls2,k1,k2,k3,k4,ip;
zls2=zls+zls;
=zls2;
newsort[i]=0;
ii1=0;
=zls;
{
k=izl[i];
if(!
find(k,newsort,&
ii2))
{
ii1++;
newsort[ii1]=iabs(k);
k=jzl[i];
}
=ii1-1;
for(j=i+1;
j<
=ii1;
j++)
if(newsort[i]>
newsort[j])
{
k=newsort[i];
newsort[i]=newsort[j];
newsort[j]=k;
}
if(find(k,newsort,&
izl[i]=isgn(ii2,k);
else
printf("
error!
"
);
jzl[i]=isgn(ii2,k);
else
printf("
izl[%d]=%d,jzl[%d]=%d\n"
i,izl[i],i,jzl[i]);
=nb;
for(j=1;
if(nob[i]==newsort[j])
nob[i]=j;
break;
nob[%d]=%d\n"
i,nob[i]);
for(j=1;
if(mpj==newsort[j])
mpj=j;
break;
//电抗器节点号转变
=mdk;
for(i=1;
if(idk[j]==newsort[i])
idk[j]=i;
voidinitial()
{
//****本函数进行初始化工作****//
inti,k1;
dataio();
//输入原始数据
oldtonew();
//转化为新号
if(bnsopton==0)//节点不优化,新节点号即为老节点号。
i++)
old[i]=i;
nnew[i]=i;
}
else
bnsopt();
//节点优化
mpj=nnew[mpj];
//mpj:
平衡节点
zlsort(nnew);
//sortther,xandb
{
k1=idk[i];
idk[i]=nnew[k1];
v[i]=v00;
va[i]=0.0;
}//所有节点的电压幅值初值都为1.000(v00),电压相角初值都为0。
//exchangethenodebeforeandaftersort
yds[i]=0;
//theimmediate
k1=nnew[nob[i]];
yds[k1]=nobt[i];
nobt[i]=yds[i];
newval(pg);
newval(qg);
newval(pl);
newval(ql);
newval(v0);
i++)//nobt[]istypeofnode
if(nobt[i]==-1)
v[i]=v0[i];
//nob[]isserialsnumbe
//nobt[]=-1:
pv节点,v0[]存放的是最后一个节点数据,
//对于pv节点,即为该点应维持的电压值。
//nobt[]=0:
pq节点,v0[]存放的是最后一个节点数据,
//对于pq节点,即为系统平均电压值。
printo();
//输出af[]、v00和节点排序后的支路、节点和
//接地电抗数据(仅仅查看中间结果)
ya0();
//获得yds[]、ydz[]、列足码iy[]。
(P407)
voidprinto()
//****输出af[]、v00和节点排序后的支路、节点和接地电抗数据****//
fprintf(fp2,"
\n******AFANDV0******\n"
\n%7.3f%7.3f%7.3f\n"
af[0],af[1],v00);
printc('
-'
78);
\n\n*******ZLB*******\n"
=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电气工程 自动化 专业 综合 一新