资源描述:
《c语言编写的PQ分解法解潮流程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、这里要提一下,本人使用的数据出自鞠平主编《电力工程》,PQ分解法可能由于求逆程序的精确度问题而比matlab迭代次数稍多,可将float改为dobulefloat一试,若有不当之处,还望包涵(另外,本人使用c语言编译器为tc3.0)//PQ分解法解潮流程序#include#include#defineN4 //节点数#definen_PQ2 //PQ节点数#definen_PV1 //PV节点数#definen_br5 //串联支路数#definePI3.
2、1415voidmain(){voiddisp_matrix(float*disp_p,intdisp_m,intdisp_n); //矩阵显示函数floatUs[2*N]={1.0,0,1.0,0,1.05,0,1.05,0}; //电压初值floatPs[N]={0,-0.5,0.2}; //有功初值floatQs[N]={0,-0.3};
3、 //无功初值 floatG[N][N],B[N][N],B1[N-1][N-1],B2[n_PQ][n_PQ],invB1[N-1][N-1],invB2[n_PQ][n_PQ]; struct //阻抗参数 { i
4、ntnl; //左节点 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.01
5、72,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各串联阻抗值的平方floatU_amp[N],U_ang[N]; //e,f存储电压的x轴分量和y轴分量,dfe存储电压修正值floatdU_amp[N],dU_ang[N]; //电压幅值和相角修正值floatmid1[N],mid2[N],dP[N-1
6、],dQ[n_PQ]; //mid1、mid2存储计算雅克比行列式对角线元素的中间值,dS存储PQU的不平衡量floatdPQU=1.0; //PQU不平衡量最大值intkk=0; //迭代次数inti,j,k;
7、 floatt; //形成导纳矩阵--------------------------------------------------------------------------------------------------for(i=0;i8、+) for(j=0;j