电力系统分析潮流计算问题 内附详细题目

2024年11月15日 02:27
有1个网友回答
网友(1):

#包括“stdio.h中”
的#include“math.h的”

#定义M 20 / *节点数目,分行数目限制* /

#定义N 5 / *迭代次数的限制* /

整数N,M,DD = 0,PQ = 0,PV = 0,TT,QY;

浮动EPS / *节点数目,地支的,PQ节点,PV节点,控制打印,互联网一些精密* /

结构jiedian / *节点的数据结构* /

{int类型; / *节点的分支数类型:1-PQ节点; 2-PV节点; 3 - 平衡节点* /

持股量P,Q,E,F,V; / *节点主动和无功功率,电压,实部,虚部发言电压值* /

} jiedian [M] / *作为一个参考节点的无功功率,相比jiedian [1]。 Q * /

结构植绿/ *分支的数据结构* / {P1,P2,S / *分支结束节点号,分支类型:1 - 正常滑中国 - 变压器分支3 - 地支鲁* /

浮动R,X,B,克拉; / *防滑性,抗,导纳,非标准变压器匝数比* / }植绿[M]; /> 结构hulianwang / *网络结构* /

{数,PV / * Internet区域的号码,指定PV节点数量* /

持股量P,EPS2 / *指定激活时,其允许误差* /

诠释计数; / *每个区域包括相互连接的节点* /

INT A [M] / *包括节点* /

} hulianwang [M];

静态浮动G [M] [M],B [M] [M],G1 [M] [M],B1 [M] [M] / *节点导纳矩阵矩阵* /

静浮YKB [2 * M] [2 * M] / *节点导纳矩阵矩阵* /

静态浮动饮子[2 * M] [2 * M];系数表* / * /

静态持股量P [M] [M],Q [M] [M] / *流* /

FILE * FP1,FP2 * / *文件的输入和输出指针* / / a>

无效输入()/ *输入文件in.txt基本参数,节点数据,分支机构数据线* /

{

INT I,J,H / *循环变量节点(分公司)类型* /

/ **********************************开放电网参数文件********************** /

FP1 =的FOPEN(英寸TXT“,”R“);

如果(FP1 == NULL)

{

的printf(“无法打开文件in.txt!\ N”);

出口(0);

}

/ ***********阅读的节点,多家分支机构,互联网号码,PQ节点,节点和准确性的光伏*********** /
> fscanf(FP1,“%D,%D,%D,%F \ N”,&N,&M&QY&EPS);

/ ******* *****************读取节点信息****************************** ******* /

(1 <= N;我+ +)

{

fscanf(FP1,“%D”,&H); BR />(H == 1)/ *类型H = 1的PQ节点* /

{

PQ + +;

fscanf(FP1,“%F%F %F,%F \ N“,&jiedian的[I] P,&jiedian的[I] Q,&jiedian的[I]。&jiedian的[I] F);

jiedian [ ]。 S = 1;,

jiedian [I]。 = SQRT(jiedian [I],E * jiedian [I] E + jiedian [I],F * jiedian [I] F);

}

其他(H == 2) / * H型= 2是PV节点* /

{

PV + +;

fscanf(FP1,“%F,%F,%F,%F \”& jiedian [] P,&jiedian的[I] V,&jiedian的[I],E,及jiedian [I],F);

jiedian [I]。 S = 2;,

jiedian [I]。 Q = 0;

}

其他/ *型h = 3是平衡的节点* /

{ jiedian [I]。 P = 0;,

jiedian [I]。 Q = 0;,

jiedian [I]。 E = 1;,

jiedian [I]。 F = 0;,

jiedian [I]。 V = 1;,

jiedian [I]。 S = 3;

}

}

/ *************************** ****阅读分支信息************************************* /

(I = 1; <= M; + +)

{

fscanf(FP1,“为%d”,&H);

(H == 1)/ *类型H = 1是一个普通的分支* /

{

fscanf(FP1,“%D%D%F%F%F \ N”,植绿[I] P1,植绿[I] P2,&植绿[I],R&植绿[I],&植绿[I]);

植绿[I]。 KT = 1;,

植绿[I]。 = 1;

}

(H == 2)/ * H型= 2是变压器支路* /

{

fscanf(FP1,“%D, %%F,%F,%D,F \ N“,植绿[I]。P1,植绿[I]。P2,植绿[I],R&植绿[I],X,&植绿I]。克拉);,

植绿[I]。 S = 2;

}

(H == 3)/ * H型= 3接地分支* /

{

fscanf(FP1,“%D,% D,%F,%F,%F \ N“,植绿[I]。P1,植绿[I]。P2,植绿[I],R&植绿[I],X,&植绿[ ,B);

植绿[I]。 KT = 1;,

植绿[I]。 S = 3;

DD + +;

}

}

/ ******************* ************读取互联网信息*********************************** / **

(qy! = 0)

(I = 1; <= QY; + +)/ *输入互联网状态* /

{

fscanf(FP1,“%D,%D,%F,%F,为%d”,&hulianwang [i]于民,&hulianwang的[I]光伏hulianwang [I],P&hulianwang [I] 。EPS2,hulianwang的[I]计数);

(J = 1; <= hulianwang [I]。计数; J + +)

fscanf(FP1,“%D”, (hulianwang [I]一个[J]));

}

FCLOSE(FP1);

/ ********* *打开输出文件********************************************* *********** /

FP2 =打开(“out.txt的”,“W”);

(FP2 == NULL)

{
>的printf(“无法打开文件!\ N”);

出口(0);

}

fprintf(FP2,“\ N ****原始数据如下************************************************ *********** \ n \ n已“);

fprintf(FP2,”节点:%2D科数:%2D正确的地支的:%2D PQ节点编号:%2D PV节点:%2D精度1%F \ N“,N,M,DD,PQ,PV,EPS);

fprintf(FP2,”\ N ---------- -------------------------------------------------- ----------------- \ N \ N“);

(1 <= PQ + +)

fprintf(FP2 ,“%2D PQ节点节点P [%d〕=%F Q [%] =%F \”,我,我,jiedian [I],P,I,jiedian []。Q); p>就(i = PQ +1 <= PQ + PV + +)

fprintf(FP2,“节点%2D PV节点P [%] =%F V [% e] =%f \ N“,我,我,jiedian [I],P,I,jiedian [I],V);

fprintf(FP2,”节点%2D平衡节点\ N“,我)

fprintf(FP2,“,\ N -------------------------------------- ----------------------------------------- \ N \ N“); />(I = 1; <= M; + +)

{

如果(植绿[I]。== 1)

fprintf(FP2,“支部%2D :普通分支相关节点:%2D,2D R%=%F X =%F B =%F \“,我,植绿[I] P1,植绿[I]。P2,植绿[I],R植绿[I],植绿[I]);

其他(植绿[I]。== 2)

fprintf(FP2,“分支%2D:变压器分会相关节点: %2D,2D R%=%F X =%f KT =%F \“,我植绿[I] P1,植绿[I]。P2,植绿[I],R,植绿[I],X植绿[I]。克拉);

其他

fprintf(FP2,“支部%2D:相关节点树枝在地上:%2D=%F X =%F B =%F \ “,我植绿[I]。P1,植绿[I],R,植绿[I],植绿[] b)条;

}

(I = 1 <= QY; + +)

{

fprintf(FP2,“Internet区域中:%2D指定PV节点:%2D提供有效:%8.5F允许误差:包括节点%8.5F :“,hulianwang [I]数,hulianwang [I]。光伏,hulianwang [I],P,hulianwang []。EPS2);

(J = 1; <= hulianwang [I]。计数; J + +)

fprintf(FP2,“2D”,hulianwang [I]一个[J]); fprintf(FP2,“\ N”);

} }

无效油花()/ *使用节点数据,分支机构的数据,形成一个新的号码* / {

INT I,K,J,JD [N / * JD [N] [记录]节点* / struct jiedian的温度; / *中间临时党支部连接的节点数量* /

(I = 1; <= N + +)/ *分支的节点上连接数赋0 * /

{

JD [0] = 0; }

(我= 1 <=我+ +)/ *考虑每个节点* /

{

(J = 1,J <= M,J + +)/ *考虑每个分支* /

{

((植绿[J]。P1 = | |植绿[J]。P2 ==)&&(植绿[J]。!= 3))/ *如果这个分支的节点,不接地分支* /

JD [0] + +;

}

}

(I = 1
{

(J = i +1的J <= PQ研究+ +)/ *升序排序算法* /

{

(JD [I]> JD [J])

{

TEM = jiedian [I];

jiedian [I] = jiedian [J];

jiedian [J] = TEM

(K = 1; K <= M,K + +)/ *更新分支信息* /

{

(植绿[K]。P1 == J)

植绿[K]。 P1 = I 否则,如果(植绿[K]。P2 == J)

植绿[K]。 P2 = I;

其他(植绿[K]。P1 ==我)

植绿[K]。 P1 = J;

否则,如果(植绿[K]。P2 ==)

植绿[K]。 P2 = J;

}

}

}

}

就(i = PQ +1;
{

(J = i +1的; J <= PQ + PV; J + +)/ *小大排序算法* /

{

如果(JD [我]> JD [J])

{

温度= jiedian [我];

jiedian [I] = jiedian [J];

jiedian [J] = TEM

(K = 1; K <= M,K + +)/ *更新分支信息* /
> {

(植绿[K]。P1 == J)

植绿[K]。 P1 = I;

否则,如果(植绿[K]。P2 == J)

植绿[K]。 P2 = I;

其他(植绿[K]。P1 ==我)

植绿[K]。 P1 = J;

否则,如果(植绿[K]。P2 ==)

植绿[K]。 P2 = J;

}

}

}

}

fprintf(FP2,“\ N ****节点优化结果如下*********************************************** ********** \ n \ n已“);

(I = 1; <=我+ +)

{

(jiedian [I]。== 1)

fprintf(FP2,“%2D PQ节点,节点P [%d〕=%F Q [%] =%F \”,我,我,jiedian [I],P,I,jiedian [I]。Q);

如果(jiedian [I]。== 2)

fprintf(FP2,“节点%2D PV节点P [%d的=%F V [%d〕=%F \“,我,我,jiedian [I],P,我jiedian [I],V);

(jiedian [I]。= = 3)

fprintf(FP2,“%2D平衡节点的节点\ N”);

}

}

的无效form_y()/ *使用分支数据形成Y,要注意地面腿* /

{

I,J,K;

float类型的

(I = 1 <= N;我+ +)

(J = 1; <= N,J + +)

G [我] [J] = B [I] [J] = 0;

(1 <= M; + +)/ *节点导纳矩阵主对角线准入* /

(J = 1; <= N; J + +)

(植绿[I] P1 ==| |植绿[I]。P2 == J)

{

S =植绿[I]。 R *植绿[I]。 R +植绿[I]。 X *植绿[I]。 X;

(S == 0);

G [J] [J] + =植绿[I]。 R / S;

B [J] [J] + =植绿[我]。 X / S;

(植绿[I]。== 1)/ *如果是普通的分支* / B [J] [J] + =植绿[I]。 B / 2;

}

其他(植绿[I]。== 2)/ *如果是普通变压器支路* /

{

(植绿[ P1 == J)

{

G [J] [J] + =(植绿[I],R / S *(1-植绿[]克拉))/(植绿我克拉*植绿[I]克拉);

B [J] [J] + =(-植绿[I] X / S *(1-植绿[]。克拉))/(植绿[I] KT *植绿[I]克拉);

}

其他(植绿[I] P2 == j)条

{

[J] [J] + =(植绿[I],R / S(植绿[I]千吨-1))/植绿[I]。克拉;

B [J] [J] + =(-植绿[I],X / S *(植绿[I] KT-1))/植绿[I]。克拉;

}

}

其他(植绿[I]。== 3)/ *如果是在地面上分支* /

{

乙[J] [J] + =植绿[I]。 b;

}

}

(K = 1; K <= M,K + +)/ *节点导纳矩阵非准入的主对角线上* /

{

=植绿[K]。 P1;

=植绿[K]。 P2;

S =植绿[K]。 R *植绿[K]。 R +植绿[K]。 X *植绿[K]。 X;

(S == 0);

G [我] [J] + =植绿[K]。 R / S;

B [我] [J] + =植绿[K]。 X / S;

(植绿[K]。克拉= 1.0)

{

G [我] [J] / =植绿[K]。克拉;

B [我] [J] / =植绿[K]。克拉;

}

G [J] [I] = G [I] [J];

B [J] [] = B [I] [J];
>}

fprintf(FP2,“\ N \ N ******************************节点导纳矩阵********************************** \ N“);

(I = 1 <= N;我+ +)

{

fprintf(FP2,“\”);

(J = 1; <= N研究+) BR /> fprintf(FP2,“%+ J%8.5F 8.5F,G [I] [J],B [I] [J]);

}

}

BR />无效form_j,()/ *使用节点数据和Y形式的J * /

{

浮法EI,FI,A = 0,B = 0;

I1,J1,K1,I,J,K;

(I = 1; <= 2 *(PQ + PV)+1; + +)

(J = 1; J <= 2 *(PQ + PV)+1; J + +)

YKB [I] [J] = 0;

(I = 1; < = PQ + +)

(J = 1; J <; J + +)

{I1 =;

J1 = J;

EI = jiedian I]。 E;

Fi = jiedian的[I]。 F;

(i! = J)/ *找我! = j的H,N,J,L * /

{YKB *-1 [2] [2 * J-1] = G [期1] [J1] * EI + B [期1] [J1] * FI / * H * /

YKB [2 *的i-1] [2 * J] = B [I1] [J1] * EI + G [I1] [J1] * FI / * N * /

YKB [2] [2 * J-1] = B [I1]?[J1] * EI + G [I1] [J1] * FI / * J * / YKB [2] [2 * J] =-G [I1] [J1] * EI-B [I1] [J1] * FI / * L * /

}

BR /> / *其他寻求当我= J H,N,J,K * /

{A = 0,B = 0;

(K = 1; K <= N,K + +)

(k! = I)

{K1 = K;

= A + G [I1] [K1] * jiedian [K]。 EB [I1] [K1] * jiedian [K]。 F;

B = B + G [I1] [K1] * jiedian [K]。 F + B [期1] [K1] * jiedian [●]。 E;

}

YKB [2 *的i-1] [2 * J-1] = 2 * G [I1] [I1] * jiedian [I]。 E + A / * H * /

YKB [2] [2 * J] = -2 * B [I1] [I1] * jiedian [I]。 F +一个; / * L * /

YKB [2 *的i-1] [2 * j]的= 2 * G [期1] [1期1] * jiedian []。 F + B; / * N * /

YKB [2] [2 * J-1] = -2 * B [I1] [I1] * jiedian [I]。 EB / * J * /

} }

就(i = PQ +1; <= PQ + PV; + +)/ *子矩阵形成光伏节点* /

(十= 1; J <; J + +)

{I1 =;

J1 = J;

EI = jiedian [我]。 E;

Fi = jiedian的[I]。 F;

(i! = J)/ *找我! =当H,N * /

{

YKB [2 *的i-1] [2 * J-1] = G [期1] [J1] * EI + B [期1] [J1] * FI / * H * /

YKB [2 *的i-1] [2 * J] = B [I1] [J1] * EI + G [I1] [J1] * FI / * N * /

}

其他/ *求时,我= J H,N,R,S * /

{A = 0,B = 0;

(K = 1,K <= N,K +)

(k! = I)

{K1 = K;

+ = G [I1] [K1] * jiedian [K]。 EB [I1] [K1] * jiedian [K]。 F;

B + = G [I1] [K1] * jiedian [K]。 F + B [期1] [K1] * jiedian [●]。 E;

}

YKB [2 *的i-1] [2 * J-1] = 2 * G [I1] [I1] * jiedian [I]。 E + A / * H * /

YKB [2 *的i-1] [2] = 2 * G [I1] [I1] * jiedian [I]。 F + B; / * N * /

YKB [2] [2 * J-1] = 2 * EI / * R * /

YKB [2] [2 * J ] = 2 * FI / * S * /

}

}

fprintf(FP2,“\ N \ N \ N ********** *********************雅可比************** *********** \ N“);

(I = 1; <= 2 *(PQ + PV); + +) {

fprintf(FP2,“\”);

(J = 1; <= 2 *(PQ + PV); J + +)

fprintf(FP2,“%8.5 F“,YKB [I] [J]);

}

}

无效form_yz()/ *使用的J的外形表* / { BR /> INT I,J,K,

浮法A [2 * M] [2 * M],L [2 * M] [2 * M],R [2 * M] [2 * M]。

浮法X,Y,Z;

(I = 1; <= 2 *(PQ + PV); + +)

(J = 1;研究<= 2 *(PQ + PV); J + +)

{[I] [J] = 0,R [I] [J] = 0,L [I] [J] = 0 ;}

(I = 1; <= 2 *(PQ + PV); + +)

(J = 1; <= 2 *(PQ + PV); J + +) A [I] [J] = YKB [I] [J];

(I = 1; <= 2 *(PQ + PV)+ + )

{

(J = 1; <= 2 *(PQ + PV),J + +)

{

如果(> J)

{

R [我] [J] = 0;

X = 0;

(K = 1; K <= J-1,K +)

{ BR /> X = X + L [I] [K] * R [K] [J];

}

L [我] [J] = A [I] [J] X;

}

(I == J)

{

R [我] [J] = 1;

Y = 0;

(K = 1; K <= I-1,K +)

{

Y = Y + L [我] [K] * R [K] [I];

} L [I] [I] = [I] [J];

}

(I
{

L [我] [J ] = 0;

Z = 0;

(K = 1; K <= I-1,K +)

Z = Z + L [我] [K] * R [K] [J]; }

R [我] [J] =([I] [J] Z)/ L [] []; BR />}

}

}

(I = 1; <= 2 *(PQ + PV); + +)

{(J = 1; <= 2 *(PQ + PV); J + +)

{

(I
饮子[I] [J] = R [我] [J];

(I == J)

饮子[I] [J] = 1 / L [I] [J];

(> j的)

饮子[我] [J] = L [I] [J];

}

}

fprintf(FP2,“\ N \ N \ N ********************************因子表**************** ************************* \ N“);

(I = 1; <= 2 *( PQ + PV); + +){

fprintf(FP2,“\”);

(J = 1; <= 2 *(PQ + PV); + +)

fprintf(FP2,“%8.5F”,银子岩[I] [J]);

}

}