亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pf30.cpp

?? 潮流計算程序
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
	int ix;							//因子表上三角元素地址(序號)計數
	double Y_Work[NODEMAX];			//工作數組
	double Temp1,Temp2;				//臨時工作單元
	int kgpv;

	for(i=0;i<Num_Node-Num_Swing;i++)
	{
		if(IterFlag==1&&Node_Flag[i]==2)		//無功迭代對應的PV節點
		{
			Num_Fact_UpTri[i][IterFlag]=0;
			Fact_Diag[i][IterFlag]=0.0;
		}
		else
		{
			for(k=i+1;k<Num_Node-Num_Swing;k++)
				Y_Work[k]=0.0;
			Y_Work[i]=Y_Diag[i][1];

			for(k=No_First_Y_UpTri[i];k<No_First_Y_UpTri[i+1];k++)
			{
				j=Foot_Y_UpTri[k];
				Y_Work[j]=Y_UpTri[k][1];
			}
			if(IterFlag==1)
			{
				for(kgpv=0;kgpv<Num_GPV;kgpv++)
				{
					j=Gen_PVNode[kgpv][0];			//PV節點號
					Y_Work[j]=0.0;
				}
			}

			ix=0;
			for(im=0;im<i;im++)
			{
				for(k=0;k<Num_Fact_UpTri[im][IterFlag];k++)
				{
					if(Foot_Fact_UpTri[ix][IterFlag]!=i)
						ix++;
					else
					{
						Temp1=Fact_UpTri[ix][IterFlag]\
							/Fact_Diag[im][IterFlag];
						for(k=k;k<Num_Fact_UpTri[im][IterFlag];k++)
						{
							j=Foot_Fact_UpTri[ix][IterFlag];
							Temp2=Temp1*Fact_UpTri[ix][IterFlag];
							Y_Work[j]=Y_Work[j]-Temp2;
							ix++;
						}
					}
				}
			}
			Fact_Diag[i][IterFlag]=1.0/Y_Work[i];
			Temp1=Fact_Diag[i][IterFlag];
			k=0;
			for(j=i+1;j<Num_Node-Num_Swing;j++)
			{
				if(fabs(Y_Work[j])!=0.0)
				{
					Fact_UpTri[ix][IterFlag]=Y_Work[j]*Temp1;
					Foot_Fact_UpTri[ix][IterFlag]=j;
					k++;
					ix++;
				}
			}
			Num_Fact_UpTri[i][IterFlag]=k;
		}
	}
//因子表結果輸出
/*	cout<<endl<<"因子表對角元素:序號(與節點號同)和元素值"<<endl;
	for(i=0;i<Num_Node-Num_Swing;i++)
		cout<<setw(5)<<i<<setw(15)<<Fact_Diag[i][IterFlag]<<endl;

	cout<<endl<<"因子表上三角非零元素:序號、列足碼和元素值"<<endl;
	for(i=0;i<ix;i++)
		cout<<setw(5)<<i<<setw(5)<<Foot_Fact_UpTri[i][IterFlag]\
		<<setw(15)<<Fact_UpTri[i][IterFlag]<<endl;
*/
}

//方程AX=t求解
void Equ_Calculation(int Num_Node,int Num_Swing,
					 double Power_Dis_Correct[NODEMAX],int IterFlag)
{
	int i,j,k,ix;							//參見Factor_Table子程說明
	double Temp1,Temp2;						//臨時工作單元

	ix=0;
	for(i=0;i<Num_Node-Num_Swing;i++)		//前代運算開始
	{
		Temp1=Power_Dis_Correct[i];			//將右端量送入臨時工作單元
		for(k=0;k<Num_Fact_UpTri[i][IterFlag];k++)
		{
			j=Foot_Fact_UpTri[ix][IterFlag];
			Temp2=Temp1*Fact_UpTri[ix][IterFlag];
			Power_Dis_Correct[j]=Power_Dis_Correct[j]-Temp2;
			ix++;
		}
		Power_Dis_Correct[i]=Temp1*Fact_Diag[i][IterFlag];
	}
	for(i=Num_Node-Num_Swing-1;i>=0;i--)	//回代運算開始
	{
		Temp1=Power_Dis_Correct[i];
		for(k=0;k<Num_Fact_UpTri[i][IterFlag];k++)
		{
			ix--;
			j=Foot_Fact_UpTri[ix][IterFlag];
			Temp2=Power_Dis_Correct[j]*Fact_UpTri[ix][IterFlag];
			Temp1=Temp1-Temp2;
		}
		Power_Dis_Correct[i]=Temp1;				//最終得未知數的解
	}
}


double Voltage[NODEMAX][2];						//節點電壓:0-相位角;
												//1-幅值。
double Current_Const[SWINGMAX*NODEFACTOR][2];	//常數電流:0-實部;
												//1-虛部。
int Node_Name_Curr_Const[SWINGMAX*NODEFACTOR];	//常數電流的節點名(號)
double Power_Const[NODEMAX][2];					//各節點注入功率不變部
												//分:0-實部;1-虛部。

void Voltage_Initial(int Num_Node,int Num_Swing);


//初始化子程
void Initial(int Num_Node,int Num_Line,int Num_Load,int Num_Swing,
			 int Num_GPV,int Num_GPQ,int &Num_Cur_Const,
			 double DVolt[NODEMAX][2],ofstream &of_PQDisOut,
			 int VolIni_Flag)				
{
	int i,j,jl,jr,k,kk;
	int Flag;
	int kg_old,kl_old;					//發電機、負荷舊順序號工作單元
	int kl;								//負荷計數臨時工作單元
	int kgpv;							//發電機PV節點計數臨時工作單元
	int kgpq;							//發電機PQ節點計數臨時工作單元
	double R,X,Z,Ang;					//線路參數及平衡節點電壓相角臨
										//時單元。
	double yij[2],V_Temp[2],I_Temp[2];	//臨時工作單元

	for(i=0;i<Num_Node-Num_Swing;i++)
	{
		Voltage[i][0]=0.0;				//電壓相位的初值:0.0(弧度)
		Voltage[i][1]=1.0;				//電壓幅值的初值:1.0
		DVolt[i][0]=0.0;				//電壓相量變化量賦初值0.0
		DVolt[i][1]=0.0;
		Power_Const[i][0]=0.0;			//各節點注入功率賦初值
		Power_Const[i][1]=0.0;

	}
	if(VolIni_Flag==1)Voltage_Initial(Num_Node,Num_Swing);
	for(kgpv=0;kgpv<Num_GPV;kgpv++)		//發電機PV節點的電壓幅值=VG
	{
		i=Gen_PVNode[kgpv][0];
		kg_old=Gen_PVNode[kgpv][1];
		Voltage[i][1]=GGen[kg_old].PQV[1];
	}

	for(i=0;i<Num_Line;i++)				//常數電流信息求解
	{
		jl=Line_NodeName[i][0];			//線路左節點
		jr=Line_NodeName[i][1];			//線路右節點
		if(jl<Num_Node-Num_Swing\
			&&jr>=Num_Node-Num_Swing)	//jl為普通節點,jr為平衡節點。
		{									
			k=Line_No_NewtoOld[i];		//對應的舊線路號
			R=LLine[k].RXBK[0];
			X=LLine[k].RXBK[1];
			Z=R*R+X*X;
			if(Line_Flag[i]==0)
			{
				R=R/Z;
				X=-X/Z;
			}
			else
			{
				R=R/Z/LLine[k].RXBK[2];
				X=-X/Z/LLine[k].RXBK[2];
			}
			yij[0]=R;
			yij[1]=X;				//至此求得支路導納除以非標準變比

			Flag=0;
			for(k=0;k<Num_Swing;k++)
			{
				if(Gen_SWNode[k][0]==jr)
				{
					kk=Gen_SWNode[k][1];
					Ang=GGen[kk].PQV[1]*Deg_to_Rad;
					V_Temp[0]=GGen[kk].PQV[0]*cos(Ang);
					V_Temp[1]=GGen[kk].PQV[0]*sin(Ang);
					Flag=1;
				}
				if(Flag==1)break;
			}						//至此求得相應平衡節點電壓的實虛部

			Flag=0;
			for(j=0;j<Num_Cur_Const;j++)
			{
				if(Node_Name_Curr_Const[j]==jl)Flag=1;
				if(Flag==1)break;
			}
			if(Flag==0)					//新增常數電流節點
			{
				Node_Name_Curr_Const[Num_Cur_Const]=jl;
				Comp_Mul(Current_Const[Num_Cur_Const],yij,V_Temp);
				Num_Cur_Const++;
				if(Num_Cur_Const>SWINGMAX*NODEFACTOR)
				{
					cout<<"Number of constant-current nodes "\
						"> SWINGMAX*NODEFACTOR!"<<endl;
					exit(10);
				}
			}
			else						//該常數電流節點已經出現過
			{
				Comp_Mul(I_Temp,yij,V_Temp);
				Current_Const[j][0]=Current_Const[j][0]+I_Temp[0];
				Current_Const[j][1]=Current_Const[j][1]+I_Temp[1];
			}
		}
	}
//輸出常數電流節點數據
/*	cout<<endl<<"Constant current:Number, new node name, "\
		<<"current value"<<endl;
	for(i=0;i<Num_Cur_Const;i++)
		cout<<setw(5)<<i<<setw(5)<<Node_Name_Curr_Const[i]\
		<<setw(10)<<Current_Const[i][0]\
		<<setw(10)<<Current_Const[i][1]<<endl;*/

//各節點注入功率不變部分求值處理
	kgpv=0;
	kgpq=0;
	kl=0;
	for(i=0;i<Num_Node-Num_Swing;i++)
	{
		if(kgpv<Num_GPV&&i==Gen_PVNode[kgpv][0])	//發電機PV節點
		{
			kg_old=Gen_PVNode[kgpv][1];				//發電機舊順序號
			if(kl<Num_Load&&i==Load_NodeName[kl])	//負荷節點
			{
				kl_old=Load_No_NewtoOld[kl];		//負荷舊順序號
				Power_Const[i][0]=Power_Const[i][0]\
					+GGen[kg_old].PQV[0]\
					-LLoad[kl_old].ABC[4];			//有功部分加PG和C1
				kl++;
			}
			else									//非負荷節點
			{
				Power_Const[i][0]=Power_Const[i][0]\
					+GGen[kg_old].PQV[0];			//有功部分加入PG
			}
			kgpv++;
		}
		else if(kgpq<Num_GPQ&&i==Gen_PQNode[kgpq][0])	//發電機PQ節點
		{
			kg_old=Gen_PQNode[kgpq][1];				//發電機舊順序號
			if(kl<Num_Load&&i==Load_NodeName[kl])	//負荷節點
			{
				kl_old=Load_No_NewtoOld[kl];		//負荷舊順序號
				Power_Const[i][0]=Power_Const[i][0]\
					+GGen[kg_old].PQV[0]\
					-LLoad[kl_old].ABC[4];			//有功部分加PG和C1
				Power_Const[i][1]=Power_Const[i][1]\
					+GGen[kg_old].PQV[1]\
					-LLoad[kl_old].ABC[5];			//無功部分加QG和C2
				kl++;
			}
			else									//非負荷節點
			{
				Power_Const[i][0]=Power_Const[i][0]\
					+GGen[kg_old].PQV[0];			//有功部分加入PG
				Power_Const[i][1]=Power_Const[i][1]\
					+GGen[kg_old].PQV[1];			//無功部分加入QG
			}
			kgpq++;
		}
		else					//既非發電機PV節點,又非發電機PQ節點
		{
			if(kl<Num_Load&&i==Load_NodeName[kl])	//負荷節點
			{
				kl_old=Load_No_NewtoOld[kl];		//負荷舊順序號
				Power_Const[i][0]=Power_Const[i][0]\
					-LLoad[kl_old].ABC[4];			//有功部分加入C1
				Power_Const[i][1]=Power_Const[i][1]\
					-LLoad[kl_old].ABC[5];			//無功部分加入C2
				kl++;
			}
		}
	}
//各節點注入功率不變部分處理結果輸出:新節點名(號),有功功率,無功功率
/*	cout<<endl<<"Node input constant power:new node name, real and "\
		<<"reactive power"<<endl;
	for(i=0;i<Num_Node-Num_Swing;i++)
		cout<<setw(5)<<i<<setw(10)<<Power_Const[i][0]\
		<<setw(10)<<Power_Const[i][1]<<endl;*/

//功率失配量輸出部分的標題輸出
//打開失配量輸出磁盤文件
	of_PQDisOut.open("pqdis.dat",ios::out,filebuf::openprot);
	if(of_PQDisOut.fail())	//判斷打開是否有錯
	{
		cerr<<"Error opening the diskette data-file:"<<"pqdis.dat"\
			<<endl;		exit(10);
	}
	of_PQDisOut<<setiosflags( ios::fixed);	
	of_PQDisOut<<setw(15)<<"Iterating No"<<setw(15)<<"P_Dis_Max"\
		<<setw(6)<<"Node"<<setw(15)<<"Q_Dis_Max"\
		<<setw(6)<<"Node"<<endl;
	of_PQDisOut<<setw(15)<<"=============="\
		<<setw(15)<<"=============="\
		<<setw(6)<<"====="\
		<<setw(15)<<"=============="\
		<<setw(6)<<"====="<<endl;
	cout<<setiosflags( ios::fixed);
	cout<<setw(15)<<"Iterating No"<<setw(15)<<"P_Dis_Max"\
		<<setw(6)<<"Node"<<setw(15)<<"Q_Dis_Max"\
		<<setw(6)<<"Node"<<endl;
	cout<<setw(15)<<"=============="\
		<<setw(15)<<"=============="\
		<<setw(6)<<"====="\
		<<setw(15)<<"=============="<<setw(6)<<"====="<<endl;
}

//讀取電壓初始化值(按內部節點號)子程
void Voltage_Initial(int Num_Node,int Num_Swing)
{
	ifstream if_VIn("vol30.ini",ios::in,filebuf::openprot);
	if(if_VIn.fail())
	{
		cerr<<"Error opening the voltage initial diskette data-file:"\
			<<"Vol30.ini"<<endl;	exit(0);
	}
	for(int i=0;i<Num_Node-Num_Swing;i++)
		if_VIn>>Voltage[i][0]>>Voltage[i][1];
	if_VIn.close();										//關閉磁盤文件
}


//求節點功率失配量子程(PV節點的dQi=0)
void PowerDis_Comp(int Num_Node,int Num_Load,int Num_Swing,int Num_GPV,
				   int Num_Cur_Const,double Power_Dis[NODEMAX][2],
				   double Pij_Sum[NODEMAX][2],double DVolt[NODEMAX][2],
				   ofstream of_PQDisOut,int Num_Iteration,
				   double &Power_Dis_Max)
{
	int i,j,k,li,kl_old,kl,kgpv,ki,k1;
	double V,Ang;					//節點i電壓幅值和相位
	double VV[2];					//節點i電壓實部和虛部
	double V_Temp[2];				//節點電壓臨時工作單元(實、虛部)
	double Cur_Count[2];			//注入電流統計單元(實、虛部)
	double Cur_Temp[2];				//注入電流臨時工作單元(實、虛部)
	double Ix,Iy;					//電流(實、虛部)
	double PP,QQ;					//有功、無功
	int ipmax,iqmax;				//最大有功、無功失配量對應的節點號
	double P_Dis_Max,Q_Dis_Max;		//最大有功、無功失配量

	kl=0;
	kgpv=0;
	ki=0;
	for(i=0;i<Num_Node-Num_Swing;i++)
	{
		Power_Dis[i][0]=Power_Const[i][0];	//將節點i注入功率不變部分
		Power_Dis[i][1]=Power_Const[i][1];	//送入失配量單元。
		Ang=Voltage[i][0];	 				//上次迭代后節點i電壓相位
		V=Voltage[i][1];					//和幅值。
		VV[0]=V*cos(Ang);					//上次迭代后節點i電壓實部
		VV[1]=V*sin(Ang);					//和虛部。
//下面求Pij和Qij及從節點i發出的所有Pij和Qij之和
		Cur_Count[0]=0.0;
		Cur_Count[1]=0.0;
		for(k=No_First_Y_DownTri[i];\
			k<No_First_Y_DownTri[i+1];k++)	//下三角第i行非零元循環
		{
			j=Foot_Y_DownTri[k];	//下三角第i行當前非零元的列足碼
			V_Temp[0]=Voltage[j][1]*cos(Voltage[j][0]);
			V_Temp[1]=Voltage[j][1]*sin(Voltage[j][0]);
			li=No_Y_DownTri_RowtoCol[k];	//對應的按列壓縮存儲序列
											//中同一非零元的序號。
			Comp_Mul(Cur_Temp,Y_UpTri[li],V_Temp);
			Cur_Count[0]=Cur_Count[0]+Cur_Temp[0];
			Cur_Count[1]=Cur_Count[1]+Cur_Temp[1];
		}
		Comp_Mul(Cur_Temp,Y_Diag[i],VV);
		Cur_Count[0]=Cur_Count[0]+Cur_Temp[0];
		Cur_Count[1]=Cur_Count[1]+Cur_Temp[1];
		for(k=No_First_Y_UpTri[i];k<No_First_Y_UpTri[i+1];k++)
		{
			j=Foot_Y_UpTri[k];
			V_Temp[0]=Voltage[j][1]*cos(Voltage[j][0]);
			V_Temp[1]=Voltage[j][1]*sin(Voltage[j][0]);
			Comp_Mul(Cur_Temp,Y_UpTri[k],V_Temp);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品在线一区| 国产高清不卡二三区| 国产乱码精品一区二区三区av | 亚洲 欧美综合在线网络| 国产一区二区在线视频| 日本韩国精品在线| 国产拍欧美日韩视频二区| 天堂在线亚洲视频| 欧美性欧美巨大黑白大战| 欧美一区二区三区免费视频| 亚洲色图.com| 成人丝袜高跟foot| 久久婷婷国产综合国色天香| 亚洲一区二区三区影院| 色狠狠色噜噜噜综合网| 国产精品嫩草影院av蜜臀| 成人免费高清视频在线观看| 久久一区二区三区四区| 久久超碰97中文字幕| 精品视频1区2区3区| 亚洲综合一区二区精品导航| 欧美三级乱人伦电影| 一区二区三区在线视频观看| 色老汉av一区二区三区| 亚洲一区欧美一区| 欧美日韩一区二区三区四区 | 色偷偷一区二区三区| 一区二区在线观看免费| 欧美性欧美巨大黑白大战| 亚洲国产成人91porn| 欧美日韩综合在线免费观看| 五月天丁香久久| 欧美美女网站色| 亚洲国产精品99久久久久久久久| 视频一区二区国产| 欧美三级日本三级少妇99| 亚洲精品成人在线| 日韩午夜激情免费电影| 韩国一区二区视频| 国产精品亲子伦对白| 在线观看一区二区视频| 日韩福利电影在线| 欧美激情综合在线| 欧美日韩国产另类一区| 国产伦精一区二区三区| 亚洲婷婷在线视频| 欧美成人精品二区三区99精品| 粉嫩嫩av羞羞动漫久久久| 一区二区三区欧美| 久久麻豆一区二区| 欧美酷刑日本凌虐凌虐| 国产成人午夜精品5599 | 亚洲国产精品视频| 久久久久国色av免费看影院| 色94色欧美sute亚洲线路一久| 麻豆视频一区二区| 亚洲大片在线观看| 亚洲视频1区2区| 国产日产欧美一区二区三区| 欧美一级日韩免费不卡| 91在线精品一区二区三区| 激情图片小说一区| 日韩av中文字幕一区二区三区| 亚洲视频一区在线观看| 久久久www免费人成精品| 7777精品久久久大香线蕉| 欧美日韩国产综合久久| 91老司机福利 在线| 91在线精品一区二区三区| 欧美日本在线播放| 精品国产乱码久久| 亚洲欧洲三级电影| 久久精品视频一区| 亚洲男同性视频| 麻豆国产欧美日韩综合精品二区| 国产不卡在线一区| 欧美性色黄大片| 国产日产欧美一区二区视频| 亚洲一区二区影院| 国产精品18久久久久久久网站| 色综合久久综合中文综合网| 欧美变态凌虐bdsm| 樱花影视一区二区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲免费成人av| 精品一区二区在线看| 91黄色小视频| 国产婷婷色一区二区三区四区| 亚洲一区二区三区影院| 丰满亚洲少妇av| 欧美成人a在线| 亚洲高清久久久| 色哟哟国产精品免费观看| 久久一夜天堂av一区二区三区| 一本久久a久久精品亚洲| 丰满亚洲少妇av| av资源站一区| 欧美一级夜夜爽| 国产精品动漫网站| 日韩在线一区二区| 成人丝袜视频网| 制服.丝袜.亚洲.中文.综合| 国产精品网站一区| 天天影视网天天综合色在线播放 | 国产精品欧美综合在线| 亚洲国产成人porn| 成人午夜私人影院| 日韩一区二区三区在线视频| 国产精品国产三级国产aⅴ入口| 亚洲一区二区三区美女| 国产mv日韩mv欧美| 91精品国产乱| 亚洲午夜视频在线| 99久久免费精品| 中文字幕av免费专区久久| 激情五月婷婷综合网| 在线播放91灌醉迷j高跟美女| 综合久久一区二区三区| 国产成人精品午夜视频免费| 日韩亚洲欧美一区二区三区| 日日夜夜精品视频天天综合网| 91在线视频免费观看| 国产精品美女久久久久久久 | av电影在线观看一区| eeuss鲁片一区二区三区在线看| 懂色av一区二区三区免费看| 91浏览器在线视频| 欧美羞羞免费网站| 日韩欧美高清dvd碟片| 一区二区三区精品在线| 国产成人精品免费一区二区| 欧美人xxxx| 日本伊人色综合网| 日韩一区二区三区电影在线观看| 午夜精品福利一区二区三区av| 91猫先生在线| 夜色激情一区二区| 欧美亚洲高清一区| 亚洲h动漫在线| 精品国产一区二区三区久久影院 | 精品对白一区国产伦| 国产在线精品一区二区| 国产午夜精品久久久久久免费视 | 亚洲6080在线| 精品免费视频一区二区| 成人av小说网| 午夜精品免费在线观看| 91精品国产福利在线观看| 另类欧美日韩国产在线| 中文字幕乱码日本亚洲一区二区| 95精品视频在线| 婷婷久久综合九色国产成人| 欧美一区二区日韩一区二区| 丁香啪啪综合成人亚洲小说| 一区二区三区精品| 久久久久久久综合日本| 色香色香欲天天天影视综合网| 日韩高清不卡一区二区三区| 久久夜色精品一区| 欧美日韩免费一区二区三区| 狠狠色综合色综合网络| 亚洲综合一区二区| 国产亚洲一区二区三区| 欧美日韩一区二区三区四区 | 久久草av在线| 一区二区三区资源| 久久人人超碰精品| 精品视频在线免费| 色综合久久久久综合| 国产美女久久久久| 日本少妇一区二区| 一区二区三区久久| 国产精品美女一区二区| 欧美精品一区二区三区高清aⅴ| 91成人免费电影| 成人午夜视频在线观看| 国产一区二区女| 另类人妖一区二区av| 亚洲v中文字幕| 亚洲综合图片区| 亚洲黄色免费网站| 亚洲欧美色一区| 亚洲免费在线视频| 日韩一区在线免费观看| 日本一区二区不卡视频| 国产喂奶挤奶一区二区三区| 2023国产精品| 久久男人中文字幕资源站| 2024国产精品| 久久久午夜电影| 国产欧美精品在线观看| 国产校园另类小说区| 国产欧美一区二区三区网站| 国产色91在线| √…a在线天堂一区| 亚洲视频免费看| 亚洲五码中文字幕| 丝袜美腿亚洲一区| 久久国产福利国产秒拍| 国产电影一区二区三区|