文档介绍:电力系统分析实验
院系:
班级:
姓名:
学号:
联系方式:
1
实验一:节点导纳阵和短路实验
:
节点导纳阵是一个稀疏的对称矩阵。一般的,对于有n个独立节点的网络,可以列写n个节电方程,或用矩阵缩记写成YV=I的形式,其中矩阵Y称为节点导纳矩阵。它的对角线元素Yii称为节点i的自
导纳,其值等于接于节点i的所有支路导纳之和。换句话说,自导纳Yii是节点i以外的所有节点都接地时节点i对地的总导纳。非对角线
元素Yij称为节点i、j之间的互导纳,它等于直接连接于节点i、j
间的支路导纳的负值。由此可见,若节点i、j之间不存在直接支路,则Yij=0。
:
(1)导纳矩阵的元素很容易根据网络接线图和支路参数直观地求得,形成节点导纳矩阵的程序比较简单。
(2)导纳矩阵是稀疏矩阵,其对角线元素一般不为零,但在非对角线元素中则存在不少零元素。在电力系统的接线图中,一半每个节点同平均3-4个其他节点有直接的支路连接,因此在导纳矩阵的非对角线元素中每行平均仅有3-4个非零元素,其余的都是零元素。
一般网络:
一般地,对于有n个独立节点的网络,可以列写n个节电方程: 2
也可以用矩阵写成:
??????VI?Y11Y12???Y1n??1??1?
?YY???Y??V???I??
2??2? ? ?21222n??
???????????????
????????YY???Y??I?nn???n1n2Vnn????????
根据上述节点导纳矩阵的物理意义及定义特点,我们容易得出节点导纳矩阵中元素的计算方法和原理:
对于节点自导纳,有:
即Yii等于与节点i相接的所有支路的导纳之和。对于节点间互导纳,有:
即Yik等于节点k、i之间的支路导纳的负值。
对于含变压器的支路:
1:kQ
根据∏型等值电路,可以写出节点p、q的自导纳和节点间的互导纳
分别为:
3
:
给定计算条件:在2节点处增加一个发电机,其有功功率为5,无功功率为3j;
程序修改方法:无需修改程序;
原因:节点导纳矩阵反映了网络元件的结构特点,而与电源或负载无关。自导纳反应了节点i以外的所有节点都接地时节点i对地的总导纳,互导纳反应了两节点之间的支路导纳负值。因此,增加发电机,节点导纳矩阵无需修改。
:
程序代码:
#include ""
int nNode,nBranch;
/*定义结构体*/
struct BranchInfo
{ int i;
int j;
float r;
float x;
float yb;
int flag;
float IR;
float IX;
}Branch[10];
/*读取数据函数*/
void data_read()
{ FILE* fp;
fp=fopen("","rb");
4
fscanf(fp,"%d%d\n",&nNode,&nBranch);
printf("%3d %3d\n",nNode,nBranch);
for(int k =0; k<nBranch;k++)
{
fscanf(fp,"%d%d%f%f%f%d\n",&Branch[k].i,&Branch[k].j,&Branch[k].r,&Branch[k].x,&Branch[k].yb,&Branch[k].flag);
printf("%d %d %f %f %f %d\n",Branch[k].i,Branch[k].j,Branch[k].r,Branch[k].x,Branch[k].yb,Branch[k].flag);
}
fclose(fp);
}
float YR[10][10],YB[10][10];
/*计算导纳参数矩阵*/
puteYmatrix()
{
for(int i=0;i<10;i++)
for (int j=0;j<10;j++)
{
YR[i][j]=;
YB[i][j]=;
}
float temp;
int ii,jj,flag;
float rr,xx,yb,yb1,yr;
for(int k=0;