📄 导纳.txt
字号:
void form_y() /* 形成节点导纳矩阵 */
{
float S;
int i1,j1;
{for(i=1;i<=m;i++)
if(zhilu[i].bb!=1) /*变压器变比不为1时节点导纳矩阵的主对角线上的导纳*/
{i1=zhilu[i].p1;
j1=zhilu[i].p2;
S=zhilu[i].r*zhilu[i].r+zhilu[i].x*zhilu[i].x;
if(S==0) continue;
G[i1][i1]+=zhilu[i].r/(S*zhilu[i].bb*zhilu[i].bb);
B[i1][i1]+=-zhilu[i].x/(S*zhilu[i].bb*zhilu[i].bb);
G[j1][j1]+=zhilu[i].r/S;
B[j1][j1]+=-zhilu[i].x/S;
}
else /*变压器变比为1时节点导纳矩阵的主对角线上的导纳*/
for(j=0;j<=n;j++)
if((zhilu[i].p1==j)||(zhilu[i].p2==j))
{ S=zhilu[i].r*zhilu[i].r+zhilu[i].x*zhilu[i].x;
if(S==0) continue;
G[j][j]+=zhilu[i].r/S;
B[j][j]+=-zhilu[i].x/S;
}
}
for(i=1;i<=n;i++) /*对地导纳*/
if((zhilu[i].p1==0)||(zhilu[i].p2==0))
{S=zhilu[i].r*zhilu[i].r+zhilu[i].x*zhilu[i].x;
if(S==0) {G[0][i]=B[0][i]=G[i][0]=B[i][0]=0;continue;}
G[0][i]+=zhilu[i].r/S;
B[0][i]+=-zhilu[i].x/S;
G[i][0]=G[0][i];
B[i][0]=B[0][i];
}
for(k=1;k<=m;k++) /*节点导纳矩阵非主对角线上的导纳*/
{ i=zhilu[k].p1;
j=zhilu[k].p2;
S=zhilu[k].r*zhilu[k].r+zhilu[k].x*zhilu[k].x;
if(S==0) continue;
G[i][j]+=-zhilu[k].r/S*zhilu[k].bb;
B[i][j]+=zhilu[k].x/S*zhilu[k].bb;
G[j][i]=G[i][j];
B[j][i]=B[i][j];
}
/*输出节点导纳矩阵*/
fprintf(fp2,"\n\n ********* 计算结果 *********\n");
fprintf(fp2,"\n 节点导纳矩阵为:");
for(i=1;i<=n;i++)
{ fprintf(fp2,"\n ");
for(j=1;j<=n;j++)
fprintf(fp2,"%8.5f+j%8.5f ",G[i][j],B[i][j]);
}
fprintf(fp2,"\n ==============================================================\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -