牛顿拉夫逊潮流计算整理版Word下载.docx
- 文档编号:8536416
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:21
- 大小:16.84KB
牛顿拉夫逊潮流计算整理版Word下载.docx
《牛顿拉夫逊潮流计算整理版Word下载.docx》由会员分享,可在线阅读,更多相关《牛顿拉夫逊潮流计算整理版Word下载.docx(21页珍藏版)》请在冰点文库上搜索。
floatQs[N]={0,-0.3};
无功初值
floatG[N][N],B[N][N];
//struct
各几点电导电纳
//阻抗参数
intnl;
左节点
intnr;
右节点
floatR;
串联电阻值
floatX;
串联电抗值
floatBl;
左节点并联电导
floatBr;
//右节点并联电纳
}ydata[n_br]={
{1,2,0,0.1880,-0.6815,0.6040},
{1,3,0.1302,0.2479,0.0129,0.0129},
{1,4,0.1736,0.3306,0.0172,0.0172},
{3,4,0.2603,0.4959,0.0259,0.0259},
{2,2,0,0.05,0,0}
};
floatZ2;
//Z^2=R^2+X^2各串
联阻抗值的平方
floate[N],f[N],dfe[2*(N-1)];
//e,f存储电压的x轴分量和y轴分量,dfe
存储电压修正值
floatmid1[N],mid2[N],dS[2*(N-1)];
//mid1、mid2存储计算雅克比行列式
对角线元素的中间值,dS存储
PQU的不平衡量
floatJacob[2*(N-1)][2*(N-1)],inv_J[2*(N-1)][2*(N-1)];
//雅克比行列式
floatdPQU=1.0;
//PQU不平衡量最大值
intkk=0;
//迭代次数
inti,j,k;
floatt;
floatPij[n_br];
存储线路i->
j
的有功
floatQij[n_br];
的无功
floatPji[n_br];
存储线路j->
i
floatQji[n_br];
floatdPij[n_br];
的有功损耗
floatdQij[n_br];
的无功损耗
floatAA,BB,CC,DD;
存储线路潮流计算时的中间
值
//形成导纳矩阵
--------------------------------------------------------------------
------------------------------
for(i=0;
i<
N;
i++)
for(j=0;
j<
j++)
G[i][j]=0;
B[i][j]=0;
}
n_br;
if(ydata[i].nl!
=ydata[i].nr)
Z2=(ydata[i].R)*(ydata[i].R)+(ydata[i].X)*(ydata[i].X);
//串联阻抗等效导纳值
//非对角元素
G[ydata[i].nl-1][ydata[i].nr-1]=(-ydata[i].R)/Z2;
B[ydata[i].nl-1][ydata[i].nr-1]=ydata[i].X/Z2;
G[ydata[i].nr-1][ydata[i].nl-1]=(-ydata[i].R)/Z2;
B[ydata[i].nr-1][ydata[i].nl-1]=ydata[i].X/Z2;
//对角元素
G[ydata[i].nl-1][ydata[i].nl-1]+=ydata[i].R/Z2;
G[ydata[i].nr-1][ydata[i].nr-1]+=ydata[i].R/Z2;
B[ydata[i].nl-1][ydata[i].nl-1]+=(-ydata[i].X/Z2);
B[ydata[i].nr-1][ydata[i].nr-1]+=(-ydata[i].X/Z2);
//并联导纳等效导纳值
B[ydata[i].nl-1][ydata[i].nl-1]+=ydata[i].Bl;
B[ydata[i].nr-1][ydata[i].nr-1]+=ydata[i].Br;
else
G[ydata[i].nl-1][ydata[i].nr-1]+=ydata[i].R;
B[ydata[i].nl-1][ydata[i].nr-1]+=ydata[i].X;
printf("
G=\n"
);
disp_matrix(*G,N,N);
B=\n"
disp_matrix(*B,N,N);
//分离e,f
e[i]=Us[2*i];
f[i]=Us[2*i+1];
//主程序
===========================================================
==========================================while(dPQU>
0.00001)
//计算功率不平衡量
N-1;
mid1[i]=0;
mid2[i]=0;
mid1[i]=mid1[i]+G[i][j]*e[j]-B[i][j]*f[j];
mid2[i]=mid2[i]+G[i][j]*f[j]+B[i][j]*e[j];
dS[2*i]=Ps[i]-(e[i]*mid1[i]+f[i]*mid2[i]);
if(i<
n_PQ)
dS[2*i+1]=Qs[i]-(f[i]*mid1[i]-e[i]*mid2[i]);
dS[2*i+1]=Us[2*i]*Us[2*i]-(e[i]*e[i]+f[i]*f[i]);
dPQU=0;
2*(N-1);
if(dS[i]<
0&
&
dPQU<
-dS[i])
dPQU=-dS[i];
elseif(dS[i]>
dS[i])
dPQU=dS[i];
if(dPQU>
kk++;
//形成雅克比行列式
-----------------------------------------------------------
--------------------------------------
Jacob[i][j]=0;
//求H,Nfor(i=0;
if(i!
=j)
Jacob[2*i][2*j]=B[i][j]*e[i]-G[i][j]*f[i];
Jacob[2*i][2*j+1]=-G[i][j]*e[i]-B[i][j]*f[i];
Jacob[2*i][2*i]=B[i][i]*e[i]-G[i][i]*f[i]-mid2[i];
Jacob[2*i][2*i+1]=-G[i][j]*e[i]-B[i][j]*f[i]-mid1[i];
//求J,Lfor(i=0;
n_PQ;
Jacob[2*i+1][2*j]=G[i][j]*e[i]+B[i][j]*f[i];
Jacob[2*i+1][2*j+1]=B[i][j]*e[i]-G[i][j]*f[i];
Jacob[2*i+1][2*i]=G[i][j]*e[i]+B[i][j]*f[i]-mid1[i];
Jacob[2*i+1][2*i+1]=B[i][j]*e[i]-G[i][j]*f[i]+mid2[i];
//求R,S
for(i=n_PQ;
if(i==j)
Jacob[2*i+1][2*i]=-2*f[i];
Jacob[2*i+1][2*i+1]=-2*e[i];
//雅克比行列式求逆
------------------------
//初始化inv_J[N][N]for(i=0;
i++)for(j=0;
inv_J[i][j]=0;
elseinv_J[i][j]=1;
//将原矩阵化简为对角阵
t=Jacob[j][i]/Jacob[i][i];
for(k=0;
k<
k++)
Jacob[j][k]-=Jacob[i][k]*t;
inv_J[j][k]-=inv_J[i][k]*t;
//原矩阵各对角元素化为1,画出逆矩阵
if(Jacob[i][i]!
=1)
t=Jacob[i][i];
inv_J[i][j]=inv_J[i][j]/t;
//求电压修正值
---------------------------------
dfe[i]=0;
dfe[i]-=inv_J[i][j]*dS[j];
e[i]+=dfe[2*i+1];
f[i]+=dfe[2*i];
break;
//循环结束
----------------------------------------------------
//求平衡节点功率
-------------------------------
mid1[N-1]=0;
mid2[N-1]=0;
mid1[N-1]=mid1[N-1]+G[N-1][j]*e[j]-B[N-1][j]*f[j];
mid2[N-1]=mid2[N-1]+G[N-1][j]*f[j]+B[N-1][j]*e[j];
Ps[N-1]=e[N-1]*mid1[N-1]+f[N-1]*mid2[N-1];
Qs[N-1]=f[N-1]*mid1[N-1]-e[N-1]*mid2[N-1];
Qs[i]=f[i]*mid1[i]-e[i]*mid2[i];
//------------------------------------------------------------------
---------------------------------------------------------
//显示输出结果
kk=%d\n"
kk);
P="
%9.4f"
Ps[i]);
\nQ="
Qs[i]);
\ne="
e[i]);
\nf="
f[i]);
\n"
//求线路上的潮流
//计算S[i][j]for(i=0;
AA=-f[ydata[i].nl-1]*ydata[i].Bl+(e[ydata[i].nl-1]-e[ydata[i].nr-1])*ydata[i].R/Z2+(f[ydata[i].nl-1]-f[ydata[i].nr-1])*ydata[i].X/Z2;
BB=-e[ydata[i].nl-1]*ydata[i].Bl-(f[ydata[i].nl-1]-f[ydata[i].nr-1])*ydata[i].R/Z2+(e[ydata[i].nl-1]-e[ydata[i].nr-1])*ydata[i].X/Z2;
Pij[i]=e[ydata[i].nl-1]*AA-f[ydata[i].nl-1]*BB;
Qij[i]=e[ydata[i].nl-1]*BB+f[ydata[i].nl-1]*AA;
printf("
S[%d][%d]=%9.4f+j%9.4f\n"
ydata[i].nl,ydata[i].nr,Pij[i],Qij
[i]);
dPij[i]=Pij[i]+Pji[i];
dQij[i]=Qij[i]+Qji[i];
//计算S[j][i]for(i=0;
CC=-f[ydata[i].nr-1]*ydata[i].Br+(e[ydata[i].nr-1]-e[ydata[i].nl-
1])*ydata[i].R/Z2+(f[ydata[i].nr-1]-f[ydata[i].nl-1])*ydata[i].X/Z2;
DD=-e[ydata[i].nr-1]*ydata[i].Br-(f[ydata[i].nr-1]-f[ydata[i].nl-1])*ydata[i].R/Z2+(e[ydata[i].nr-1]-e[ydata[i].nl-1])*ydata[i].X/Z2;
Pji[i]=e[ydata[i].nr-1]*CC-f[ydata[i].nr-1]*DD;
Qji[i]=e[ydata[i].nr-1]*DD+f[ydata[i].nr-1]*CC;
ydata[i].nr,ydata[i].nl,Pji[i],Qji
//计算dS[i][j]for(i=0;
dS[%d][%d]=%9.4f+j%9.4f\n"
ydata[i].nl,ydata[i].nr,
dPij[i],dQij[i]);
}//主程序结束
//矩阵显示函数
=============================================voiddisp_matrix(float*disp_p,intdisp_m,intdisp_n)
inti,j;
disp_m;
disp_n;
*(disp_p+i*disp_m+j));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 牛顿 拉夫逊 潮流 计算 整理