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

📄 jiediandaonajuzhen.cpp

📁 本程序为c++环境下的电力系统潮流计算机算计算法中节点导纳矩阵的实现
💻 CPP
字号:

#include<iostream.h> 
#include <fstream.h> 
#include <math.h> 
#define max 50 
main () 
{ 

int l,n,i,j,k; 
cout<<"请输入节点数n、支路数l:)"; 
cin>>n>>l; 
if((n>max)||(l>max))
cout<<"错误,max定义过小,请退出"<<endl;
cout<<"n= "<<n<<",l= "<<l<<endl; 
double Z1[max][5],Z2[max][5]; 
   //初始化 
for(i=0;i<max;i++) 
{for(j=0;j<5;j++) 
Z1[i][j]=0; 
Z2[i][j]=0; 
}
 
cout<<"请输入支路参数:"<<endl;
for(i=0;i<n+l;i++) 
{ 
 cin>>Z1[i][0]>>Z1[i][1]>>Z1[i][2]>>Z1[i][3]>>Z1[i][4]; 
//cout<<Z1[i][0]<<endl;
}//把阻抗Z[i][2]+jZ[i][3]转换为导纳 
for(i=0;i<n+l;i++) 
{ 
Z2[i][0]=Z1[i][0];
Z2[i][1]=Z1[i][1];
Z2[i][4]=Z1[i][4]; 
	if (Z1[i][0]==Z1[i][1])//对角元素

	{Z2[i][2]=0;
	 Z2[i][3]=0;

	}
else
{
	Z2[i][2]=Z1[i][2]/((Z1[i][2])*(Z1[i][2])+(Z1[i][3])*(Z1[i][3])); 
    Z2[i][3]=-Z1[i][3]/((Z1[i][2])*(Z1[i][2])+(Z1[i][3])*(Z1[i][3]));
}

} 

for(i=0;i<n+l;i++)
{
	if(Z2[i][0]==Z2[i][1]) //对角元素
	{	for(j=0;j<n+l;j++)
			if(((Z2[i][0]==Z2[j][0])||(Z2[i][0]==Z2[j][1]))&&(Z2[j][0]!=Z2[j][1]))
			{
				Z2[i][2]=Z2[i][2]+Z2[j][2];
		    	Z2[i][3]=Z2[i][3]+Z2[j][3];
			}
		Z2[i][3]=Z2[i][3]+Z2[i][4];
	}
}
//非对角元素取反
for(i=0;i<n+l;i++)
{
	if(Z2[i][0]!=Z2[i][1]) //非对角元素
	{	
		Z2[i][2]=-Z2[i][2];
		Z2[i][3]=-Z2[i][3];
	}
}
cout<<"始节点  终节点       导纳       电纳    分别为:\n";//输入数据输出观看,考虑虚部的问题 
cout<<"Z2="<<endl;
for(i=0;i<n+l;i++) 
{ 

cout<<Z2[i][0]<<"       "<<Z2[i][1]<<"     "<<Z2[i][2]<<"        "<<Z2[i][3]<<"j"<<"         "<<"   ";// 需要变化,考虑虚部的输出 

cout<<"\n"; 

} 
//cout<<"程序结束,:"<<endl; 
//cout<<"Z1="<<endl;
//for(i=0;i<n+l;i++) 
//{ 

//cout<<Z1[i][0]<<"  "<<Z1[i][1]<<"    "<<Z1[i][2]<<"      "<<Z1[i][3]<<"j"<<"       "<<"   ";// 需要变化,考虑虚部的输出 
//cout<<"\n"; 
//}
return 0; 
} 

⌨️ 快捷键说明

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