C语言进行潮流计算Word文档下载推荐.docx

上传人:b****6 文档编号:21043541 上传时间:2023-01-27 格式:DOCX 页数:21 大小:337.67KB
下载 相关 举报
C语言进行潮流计算Word文档下载推荐.docx_第1页
第1页 / 共21页
C语言进行潮流计算Word文档下载推荐.docx_第2页
第2页 / 共21页
C语言进行潮流计算Word文档下载推荐.docx_第3页
第3页 / 共21页
C语言进行潮流计算Word文档下载推荐.docx_第4页
第4页 / 共21页
C语言进行潮流计算Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言进行潮流计算Word文档下载推荐.docx

《C语言进行潮流计算Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言进行潮流计算Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

C语言进行潮流计算Word文档下载推荐.docx

给定了注入有功功率Pi(PGi,PLi),Ui和Qu,待求QGi(Qi),§

例如:

有一定无功电源的降压变电所母线,有一定储备的发电厂母线。

(3)平衡节点:

给定了Ui,§

和PLi,QLi,待求PGi,QGi,即Pi,Qi,用来平衡全电网的功率,通常在一个独立的电力系统中只设一个平衡节点。

4•牛顿-拉夫逊迭代法

牛顿-拉夫逊迭代法将解非线性方程组的过程转化为反复求与之相对应的线性方程的

求解过程。

对于一个n维非线性方程组:

fi(x1,x2,...,xn^yin=1,2,3,…,n

假定其初值为Xi(0),X2(0),…,Xn(0),也即其近似解,它与真值之间的误差为

.-■:

x1(0)^■■:

x2(0),...^■■:

xn(0)也即各变量与真解之间的修正量。

将这n个方程式都在初值的附近展开成Taylor级数且忽略二次项及高次项,则可得修

正方程

fi(X1(0),X2(0),…,Xn(0))+f

心X1(0)+..

+Cfn

扎(0)

^xn=y

i,1=1,2,…n.(1-10)

cX1

釵n

将修正方程写成矩阵形式

它的第

I行,第j列交点的兀素为第I个函数fi(x1,X2,...Xn)对第j个变量Xj的偏导数在点

(X1(0),X2(0),…,Xn(0))的值,所以方程组是线性方程,可用于求出厶%⑼门X2(0),..."

Xn⑼,从

而得到新的近似解,

Xi⑴二Xi(0)」Xi(0)(1-12)

于是得到一般迭代式:

迭代一直进行到Max{|yi-fi(x1(0),x2(0),…,xn(0))|}<

&

或Max{|Axi(k)|}<

为止。

用牛顿-拉夫逊迭代法进行潮流计算

设网络中除参考节点外有n个节点,其中1个平衡节点(并令第n个节点为平衡节点)

方程(1-9),并将Yj=Gij+jBj及Uj=ei+fi代入得:

n

ejfi'

©

-jBj)(e-jfj二rjQi

j壬

将实部和虚部分开得:

二心(Gjej-Bjfj)fi(GjfjBjej)]=R(2-1)

为[fi(Gjej—Bjfi)—e(Gjfj+Bjej)]=Qi(2-2)

j吕

此外由于系统中还有PV节点,所以还应补充一组方程:

(2-3)

在式(2-3)中,ei、fi分别为迭代过程中求得的节点电压的实部和虚部,Pi为PQ节点和PV

节点的注入有功功率,Qi为PQ节点的注入无功功率,5为PV节点的电压大小。

由(2-1),

(2-2),(2-3)三式所组成的方程组一共有2(n-1)个独立方程,其中,式(2-1)类型的

有(n-1)个,包括除平衡节点以外所有节点的有功功率Pi的表达式式(3-2)类型的有(m-1)个,包

括所有PQ节点无功功率Qi的表达式式(2-3)类型的有(n-m)个,包括所有PV节点电压U:

的表达式•平衡节点s的功率和电压之所以不包括在这方程组内,是由于平衡节点的注入功率不

可能事先给定,从而不可能列出Ps,Qs的表达式,而平衡节点的电压Us=es'

jfs则不必求取

于是建立修正方程式如下

AQi

jii

Lii

Ji2

Li2…

Jip

Lip

Jin

Lin

心P2

H2i

N2i

H22

N22…

H2p

N2p

H2n

N2n

也f2

△Q2

*

」2i

s

L2i

J22

L22…

a*

J2p

a

L2p

」2n

L2n

△62

APp

Hpi

Npi

Hp2

Np2…

Hpp

Npp

Hpn

Npn

Afp

2

iUp

Rpi

Spi

Rp2

Q・・・

Sp2

Rpp

Spp

Rpn

Spn

△ep

APn

Hni

Nni

Hn2

Nn2…

Hnp

Nnp

Hnn

Nnn

Afn

2工Un_

Rni

Sni

Rn2

Sn2…

Rnp

Snp

Rnn

厶Pi

Nii

N12

H12

Nip

Nin

Hin

Hip

Hii

(2-4)

式中的

[cGej-Bj

fj)fi(Gjfj

Bijej)]

(2-5)

lQ.二Qi-'

[fi(Gjej-Bij

j討

£

)-©

(GjjfjBjej)]

(2-6)

Ui2=U^-(e2fi2)

(2-7)

当j工I时雅可比方阵的各个元素分别为:

Hij

-:

R

fj

-Bqe'

Gijfi;

FR.

NijGijeBijfi

cej

Jij

■:

-Nij;

Lij

=Hij;

Rj

=o;

.:

ej

=0

当j=I时雅可比方阵的各个元素分别为:

fi「BiieGdh;

二Gii&

Biif

.■ei

-aii;

NH

8=-GiieffaH;

Hh

Ri

Sfi;

fi

Si=

其中:

ii二如-Biifi)'

(GijfiBjfi)

 

bii-(Giiej-Bjjfj)亠二(GjfjBjej)

j」

三.用C语言编程计算潮流的流程图

四.

用编程方法求解实际问题

如图所示的一个电力网络,

0.08+j0.24

0.06+

i0」8

0.45+j0.15

3一

0.06+P!

8

0.04+j0.12

0.4+j0.05

4

0.01+j0.03

乡oj-ooo

(0.2+j0.2)

0.6+j0.1|

已知:

U;

=1.06•j0为定值,其余四个节点都是PQ节点,且给定的注入功率分别为:

S=0.20j0.20,S3=-0.45-jO.15,S4二-0.40-j0.05,S5二-0.60-j0.10由上图可得相应的节点导纳矩阵

五.程序清单

#inelude<

stdio.h>

math.h>

floatdivRe(b1,b2,b3,b4)

floatb1,b2,b3,b4;

{

floata1r;

a1r=(b1*b3+b2*b4)/(b3*b3+b4*b4);

return(a1r);

}

floatdivIm(b1,b2,b3,b4)

floata1i;

a1i=(b2*b3-b1*b4)/(b3*b3+b4*b4);

return(a1i);

floatmulRe(b1,b2,b3,b4)

floata2r;

a2r=b1*b3-b2*b4;

return(a2r);

floatmulIm(b1,b2,b3,b4)

floata2i;

a2i=b2*b3+b1*b4;

return(a2i);

floatMax(floata[],intn)

{inti;

floatmax;

for(i=0;

i<

n-1;

i++)

if(a[i]>

a[i+1])

{max=a[i];

a[i]=a[i+1];

a[i+1]=max;

return(max);

main()

inti,j,k,n,km;

floateps,sumpi1,sumpi2,sumqi1,sumqi2,max,sumir,sumii,I1r,I1i;

floatpi0[5],qi0[5],detpi[5],detqi[5],Iir0[5],Iii0[5],J0[8][8],detsi[8],detui[8],

u[8][8],l[8][8],y[8],ui1[8],H[4][4],N[4][4],J[4][4],L[4][4],ei1[5],fi1[5];

staticfloatybr[5][5]={{6.250,-5.000,-1.250,0,0},{-5.000,10.834,-1.667,-1.667,-2.500},{-1.250,-1.667,12.917,-10.000,0},{0,-1.667,-10.000,12.917,-1.250},{0,-2.500,0,-1.250,3.750}};

staticfloatybi[5][5]={{-18.750,15.000,3.750,0,0},{15.000,-32.500,5.000,5.000,7.500},{3.750,5.000,-38.750,30.000,0},{0,5.000,30.000,-38.750,3.750},{0,7.500,0,3.750,-11.250}};

floatei0[5]={1.06,1.0,1.0,1.0,1.0};

floatfi0[5]={0,0,0,0,0};

floatpi[5]={0,0.2,-0.45,-0.4,-0.6};

floatqi[5]={0,0.2,-0.15,-0.05,-0.1};

k=0;

km=6;

eps=0.00001;

do{

k+=1;

printf("

Nowstart...\n"

);

printf("

The%dtimes\n"

k);

for(i=1;

5;

i++)printf("

pi[%d]=%-14.6f"

i,pi[i]);

sumpi2=0;

sumqi2=0;

for(i=1;

{for(j=0;

j<

j++)

{sumpi1=(ei0[i]*(ybr[i][j]*ei0[j]-ybi[i][j]*fi0[j])+fi0[i]*(ybr[i][j]*fi0[j]+ybi[i][j]*ei0[j]));

sumpi2+=sumpi1;

}pi0[i]=sumpi2;

pi0[%d]=%-13.6f"

i,pi0[i]);

sumpi2=0;

}for(i=1;

{sumqi1=(fi0[i]*(ybr[i][j]*ei0[j]-ybi[i][j]*fi0[j])-ei0[i]*(ybr[i][j]*fi0[j]+ybi[i][j]*ei0[j]));

sumqi2+=sumqi1;

}qi0[i]=sumqi2;

qi0[%d]=%-13.6f"

i,qi0[i]);

{detpi[i]=pi[i]-pi0[i];

detqi[i]=qi[i]-qi0[i];

detpi[%d]=%-21.6f"

i,detpi[i]);

detqi[%d]=%-21.6f\n"

i,detqi[i]);

{Iir0[i]=divRe(pi0[i],-qi0[i],ei0[i],-fi0[i]);

Iii0[i]=divIm(pi0[i],-qi0[i],ei0[i],-fi0[i]);

Iir0[%d]=%-22.6f"

i,Iir0[i]);

Iii0[%d]=%-22.6f\n"

i,Iii0[i]);

}for(i=0;

4;

j++)if(i==j){

H[i][j]=-ybi[i+1][j+1]*ei0[i+1]+ybr[i+1][j+1]*fi0[i+1]+Iii0[i+1];

N[i][j]=ybr[i+1][j+1]*ei0[i+1]+ybi[i+1][j+1]*fi0[i+1]+Iir0[i+1];

J[i][j]=-ybr[i+1][j+1]*ei0[i+1]-ybi[i+1][i+1]*fi0[i+1]+Iir0[i+1];

L[i][j]=-ybi[i+1][j+1]*ei0[i+1]+ybr[i+1][j+1]*fi0[i+1]-Iii0[i+1];

else{

H[i][j]=ybr[i+1][j+1]*fi0[i+1]-ybi[i+1][j+1]*ei0[i+1];

N[i][j]=ybr[i+1][j+1]*ei0[i+1]+ybi[i+1][j+1]*fi0[i+1];

J[i][j]=-ybi[i+1][j+1]*fi0[i+1]-ybr[i+1][j+1]*ei0[i+1];

L[i][j]=ybr[i+1][j+1]*fi0[i+1]-ybi[i+1][j+1]*ei0[i+1];

8;

for(j=0;

j++){

if(i%2==0&

&

j%2==0)J0[i][j]=H[i/2][j/2];

elseif(i%2==0&

j%2!

=0)J0[i][j]=N[i/2][(j-1)/2];

elseif(i%2!

=0&

j%2==0)J0[i][j]=J[(i-1)/2][j/2];

elseJ0[i][j]=L[i/2][(j-1)/2];

输出雅可比矩阵:

\n"

%-10.4f"

J0[i][j]);

{if(i%2==0)detsi[i]=detpi[(i+2)/2];

elsedetsi[i]=detqi[(i+1)/2];

detsi[%d]=%-11.6f"

i,detsi[i]);

i++)u[i][i]=1.000;

for(n=0;

n<

n++)

{for(i=n;

{l[i][n]=J0[i][n];

=n-1;

l[i][n]-=(l[i][j]*u[j][n]);

for(j=n+1;

{u[n][j]=J0[n][j];

u[n][j]-=(l[n][i]*u[i][j]);

u[n][j]/=l[n][n];

{y[i]=detsi[i];

=i-1;

y[i]-=(l[i][j]*y[j]);

y[i]/=l[i][i];

}for(i=7;

i>

=0;

i--)

{detui[i]=y[i];

for(j=i+1;

n;

j++)detui[i]-=(u[i][j]*detui[j]);

detui[%d]=%-11.6f"

i,detui[i]);

for(i=0;

{if(i%2==0)ui1[i]=detui[i]+fi0[i/2+1];

elseui1[i]=detui[i]+ei0[(i+1)/2];

}printf("

ui1[%d]=%-13.6f"

i,ui1[i]);

{ei1[i]=ui1[2*i-1];

fi1[i]=ui1[2*i-2];

{printf("

ei1[%d]=%-13.6f"

i,ei1[i]);

fi1[%d]=%-13.6f"

i,fi1[i]);

}max=Max(detui,8);

max=%f\n"

max);

{ei0[i]=ei1[i];

fi0[i]=fi1[i];

{pi[i]=detpi[i]+pi0[i];

qi[i]=detqi[i]+qi0[i];

}}while(max>

eps&

k<

km);

Alldo%dtimes\n"

sumir=0;

sumii=0;

i++){

I1r=mulRe(ybr[0][i],-ybi[0][i],ei0[i],-fi0[i]);

I1i=mulIm(ybr[0][i],-ybi[0][i],ei0[i],-fi0[i]);

sumir+=I1r;

sumii+=I1i;

}pi[0]=mulRe(ei0[0],fi0[0],sumir,sumii);

qi[0]=mulIm(ei0[0],fi0[0],sumir,sumii);

S1=%f+j%f\n"

pi[0],qi[0]);

ei1[0]=ei0[0];

fi1[0]=fi0[0];

u%d=%f<

%f\n"

i+1,sqrt(ei1[i]*ei1[i]+fi1[i]*fi1[i]),atan(fi1[i]/ei1[i])*180/3.14159);

}

六.运行结果:

Nowstart...

The1times

The2times

33.1594

13.0920

-5.1360

-1.9751

-7.7040

-2.9621

-12.5811

33.6083

1.9751

2.9621

-4.9331

-2.1241

38.3848

16.0302

-29.5988

-12.7427

0.0000

2.1241

-16.8890

38.0788

12.7427

-4.9168

-2.1516

-29.5009

-12.9078

38.1553

16.2729

-3.6876

-1.6135

2.1516

12.9078

-17.0729

38.0553

1.6135

-7.3011

-3.3304

-3.6505

-1.6652

11.0516

4.3956

3.3304

1.6652

-5.5956

10.8516

detsi[0]=-0.077045detsi[4]=0.010254detui[0]=-0.000435detui[4]=0.002076ui1[0]=-0.047730ui1[4]=-0.090149ei1[1]=1.035457ei1[3]=1.003344max=0.003195Nowstart...

The3timespi[1]=0.200000pi0[1]=0.200525qi0[1]=0.200204detpi[1]=-0.000525detpi[2]=-0.000083detpi[3]=0.000025detpi[4]=-0.000003Iir0[1]=0.184354Iir0[2]=-0.431957Iir0[3]=-0.391092Iir0[4]=-0.585382

detsi[1]=-0.022040

detsi[5]=-0.036184

detui[1]=-0.007504detui[5]=-0.010761ui1[1]=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1