第5章 P—Q程序框图及程序说明
初始化节点和支路各参数值 |
通过统计各节点静态出线数进行节点重新排序 |
将PV节点加以标志并保存在一数组里 |
计算B/和B//,相应地形成因子表1和2 |
初始化电压幅值和相角 |
num=0 |
While(num<ITM) num=num+1;KG[0]=1; KG[1]=1; | 计算各节点有功和无功 | KQO=0; | 进行有功功率误差计算,并标出最大功率误差 | fabs(DSM)<EPS? false true | 解方程 | KG[0]=0 | 相位调整 | 重新计算各节点有功和无功 | KQO=1 | 进行有功功率误差计算,并标出最大功率误差 | (fabs(DSM)<EPS)? false true | 解方程 | KG[1]=0 | 幅值调整 | (KG[0]==0&&KG[1]==0)? False true | num>=ITM? false true | 对节点编号进行还原 | 计算节点和支路数据 | | 输出提示信息 | 输出节点和支路数据 | break | break; |
|
1. chushihua()函数
打开文件, |
输入节点信息 |
关闭文件 |
打开文件, |
输入支路信息 |
关闭文件 |
2. jiedianyh()函数
根据支路信息统计各节点出线数 |
根据出线数设置将要排序顺序号(平衡节点排最后,)形成出线表 |
支路左、右节点号根据出线数表对应的进行转化 |
支路数据左右节点号调整(左小于右) |
节点数据根据出线数表对应进行交换排序 |
数据输出 |
3. daona1()函数
只用于不接地支路构成导纳矩阵,不考虑接地支路(包括变压器非标准变比)的影响,主要用来形成P—Q分解法所要求的第一个因子表。
从i=1步长1到N作 gii(i)=0; bii(i)=0; yds(i)=0; |
|
从k=1步长1到ZLS作 i=| zl[k].zli |; j=| zl[k].zlj |; | r=| zl[k].zlr |; x=| zl[k].zlx |; | zf=r*r+x*x; | gij=r/zf; bij= -x/zf; | y[k].yg= -gij; y[k].yb= -bij; y[k].cow=j; | gii[i]= gii[i]+gij; bii[i]= bii[i]+bij; | gii[j]= gii[j]+gij; bii[j]= bii[j]+bij; | yds[k]=yds[i]+1 |
|
ydz[i]=1 |
从i=1步长1到N作
|
4. daona2()函数
追加接地支路的程序框图
从k=1步长1到zls作 i= zl[k].zli ; j= zl[k].zlj ; | yk= zl[k].zlyk ; | i<0 V j<0 true false | i<0? true false | gij=0 bij=yk/2 | i=abs(i) | i=abs(j) | sy(i) sy(j) | gij=y[k].yg; bij= y[k].yb | gii[i]=gii[i]+(1-1/yk/yk)*gij | bii[i]= bii[i]+(1-1/yk/yk)*bij; | | y[k].yg=gij/yk | y[k].yb=bij/yk | | | |
|
sy(i),sy(j)完成统计各节点自导计算
5. yinzibiao()函数
(计算部分,不含前面判断及传送)
根据t值来确定对导纳阵付初值 |
对其他变量fd[I],di[I],u[I],m付初值 |
for(k=1;k<=m;k++) 对临时工作数组B[I] 付初值 | x=2; im=1; | while(im<=k-1) jsq=1 | jsq>fd[im]? true false | im=im+1 | | while(jsq<=fd[im]) u[x+1]!=k? false true | ai=u[x]/di[im] | jsq=jsq+1; x=x+2; | while(jsq<=fd[im]) j=u[x+1] | b[j]=b[j]-ai*u[x] | x=x+2 | jsq=jsq+1 |
| |
im=im+1; |
| im>k-1? true false | di[k]=1/b[k]; ai=di[k]; jsq=0; | | for(j=k+1;j<=m;j++) b[j]!=0 true false | u[x]=b[j]*ai; | | u[x+1]=j | jsq=jsq+1 | x=x+2 |
| fd[k]=jsq |
|
结果保存 |
5.2.6 其它函数其流程图不再列出;
函数名 | 函数完成功能 |
PQjs() | 函数主体,其它函数均为其子函数,完成计算 |
chushihua() | 原始数据的输入 |
jiedianyh() | 通过静态最少出线数优先完成节点优化排序 |
PVbz() | 形成PV节点数组 |
daona1() | 形成计算因子表1所需要的导纳矩阵 |
Daona2() | 形成计算因子表1所需要的导纳矩阵 |
yinzibiao() | 根据T值形成因子表1或2 |
InputV() | 初始化V值 |
gljs() | 完成节点有功和无功的计算 |
glwc() | 计算节点功率最大误差 |
solution() | 解方程 |
dyxz() | 调整节点电压幅值和相角 |
jiedianhy() | 把通过节点优化后的数据还原为以前的编号 |
nod() | 计算节点结果数据 |
branch() | 计算支路结果数据 |
shuchu() | 输出节点、支路结果数据 |
1. N:系统节点的总数;WGS:系统中发电机节点的总数;
WLS:系统中负载节点的总数;EPS:迭代所要求的精度;
ITM