⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 no1.txt

📁 本程序采用牛顿拉夫逊进行电力网络的潮流分布计算
💻 TXT
字号:
#define L 5					//网络的支路总数
#define N 5					//节点数
#define M 3					//网络的PQ节点数
#define N0 2*(N-1)			//雅可比矩阵的行数
#define N1 N0+1
int _tmain(int argc, _TCHAR* argv[])
{
	int K=0;					//打印开关.K=1,则打印;否则,不打印
	int K1=0;					//子程序PLSC中判断输入电压的形式;K1=1,则为极座标形式.否则为直角坐标形式. 
	float D=1e-4;				//有功及无功功率误差的最大值(绝对值).
	float *DD;					//误差量最大者
	float p=1.0;;
	DD=&p;
	float G[f2(N,N,N)+1];				//Ybus的电导元素(实部).  
	float B[f2(N,N,N)+1];				//Ybus的电纳元素(虚部).   
	float G1[L]={0.624024,0.754717,0.829876,0,0};	//第I支路的串联电导.      
	float B1[L]={-3.900156,-2.641509,-3.112033,-63.492063,-31.746032};	//第I支路的串联电纳

	//float C1[L]={0.25,0,0.25,3.023432,1.511716};			//C1(I)第I支路的pie型对称接地电纳.?????????
	float C1[L]={0.25,0,0.25,0,0};			//C1(I)第I支路的pie型对称接地电纳

	//float C[f2(N,L,L)+1]={0,0,0,0,0, 0,0,0,3.023432,0, 0,0,0,0,0,
	//				0,0,0,-6.198035, 0,0,0,0,0,-3.099017};	//C(I,J)第I节点J支路不对称接地电纳.  ???????
	float C[f2(N,L,L)+1]={0,0,0,0,0, 0,0,0,3.023432,0, 0,0,0,0,1.511716,
					0,0,0,-3.174603,0, 0,0,0,0,-1.587302};	//C(I,J)第I节点J支路不对称接地电纳

	float CO[N]={0,0,0,0,0};				//CO(I) :第I节点的接地电纳
	int S1[L]={1,1,2,2,3};					//第I支路的起始节点号
	int E1[L]={2,3,3,4,5};					//第I支路的终止节点号
	float P[N]={-1.6,-2,-3.7,5.0,0};				//第I节点的注入有功功率
	float Q[N]={-0.8,-1,-1.3,0,0};				//第I节点的注入无功功率
	float P0[N]={0};				//第I节点有功功率误差
	
	float V0[N]={0};				//第I节点(PV节点)的电压误差(平方误差)
	float V[N]={1,1,1,1.05,1.05};				//第I节点的电压幅值
	//float E[N]={1,1,1,1.05,1.05};				//第I节点的电压的实部
	float E[N]={1,1,1,1,1.05};				//第I节点的电压的实部
	float F[N]={0,0,0,0,0};				//第I节点的电压的虚部
	float JM[f2(N0,N0,N0)+1];			//Jacoby矩阵的第I行J列元素
	float A[f2(2*N-2,2*N-1,2*N-1)+1]={0};		//A(I,J)修正方程的增广矩阵,三角化矩阵的第I行J列元素,
										//运算结束后A矩阵的最后一列存放修正的解.  
	float P1[L];				//第I支路由S1(I)节点注入的有功功率
	float Q1[L];				//第I支路由S1(I)节点注入的无功功率
	float P2[L];				//第I支路由E1(I)节点注入的有功功率
	float Q2[L];				//第I支路由E1(I)节点注入的无功功率
	float P3[L];				//第I支路的有功功率损耗
	float Q3[L];				//第I支路的无功功率损耗
	float ANGLE[N];			//第I节点电压的角度
	float Q0[N]={0};			//第I节点有功功率误差
	int ii,jj;
	int cnt=1;				//迭代次数
//	file4=fopen("cs_flow_1.txt","w");
	ybus(N,L,M,G,B,G1,B1,C1,C,CO,1,S1,E1);//计算电导和导纳参数
	dpqc(P,Q,P0,Q0,V,V0,M,N,E,F,1,G,B,DD);
	//while (arrayMax(N,Q0)>D || arrayMax(N,P0)>D){
	while (*(DD)>D){
		cnt++;
		jmcc(M,N,N0,E,F,G,B,JM,1);//算jacob矩阵
		//算增广的修正方程矩阵,最后一列放误差向量,与书上的方程顺序稍有不同
		for (ii=1;ii<=N0;ii++){
			for(jj=1;jj<=N0;jj++){
				A[f2(ii,jj,N1)]=JM[f2(ii,jj,N0)];
			}
		}
		for(ii=1;ii<=N0;ii++){
			if(ii<=2*M){
				if(ii%2==1)		A[f2(ii,2*N-1,2*N-1)]=Q0[f1((ii+1)/2)];
				else	A[f2(ii,2*N-1,2*N-1)]=P0[f1(ii/2)];
			}
			else{
				if(ii%2==1)		A[f2(ii,2*N-1,2*N-1)]=V0[f1((ii+1)/2)];
				else	A[f2(ii,2*N-1,2*N-1)]=P0[f1(ii/2)];
			}
		}
		sevc(A,N0,1,N1);//解线性方程组
		for(ii=1;ii<=N0;ii++){
			if(ii%2==1){
				E[f1((ii+1)/2)]-=A[f2(ii,2*N-1,2*N-1)];
			}
			else F[f1(ii/2)]-=A[f2(ii,2*N-1,2*N-1)];
		}//修正解
		dpqc(P,Q,P0,Q0,V,V0,M,N,E,F,1,G,B,DD);//重新计算误差
	}

	/*float Atest[f2(4,5,5)+1]={1,2,0,0,1, 0,1,0,0,2, 0,0,1,0,1, 2,0,0,1,1};
	sevc ( Atest, 4, 1, 5);*/
	plsc(  N,  L,  M,  G ,  B ,  E ,  F ,\
             E1 ,  S1 ,  G1 ,  B1 ,  C1 ,  C ,\
             CO ,  P1 ,  Q1 ,  P2 ,  Q2 ,  P3 ,\
             Q3 ,  P ,  Q ,  V ,  ANGLE , K1);
	//file4=fclose("cs_flow_1");
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -