?? 導納.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 + -