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

📄 enum_branch.cpp

📁 电力系统发输电系统基于非序贯的蒙特卡罗抽样的风险评估程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
							flag++;
						}
						for(int j=0;j<Busnum;j++)
						{
							if(tempbusdata[j].busno==tempbranchdata[i].from)
							{
								if(*(flag3+j)==0)
								{
									*(flag3+j)=1;
									*(flag4+flag1)=j;
									flag1++;
								}
								break;
							}
						}
					}
				}
				if(*(flag4+flag2+sub_busnum1+sub_busnum2)==-1)
					flag2=Busnum-sub_busnum1-sub_busnum2-1;
				flag2++;
			}
			//////////////////////////////
			int sub_busnum3,sub_branchnum3;
			struct Busdata *sub_busdata3;
			struct Branchdata *sub_branchdata3;
			sub_busnum3=flag1-sub_busnum1-sub_busnum2;
			sub_branchnum3=flag-sub_branchnum1-sub_branchnum2;
			sub_branchdata3=new struct Branchdata[sub_branchnum3];
			sub_busdata3=new struct Busdata[sub_busnum3];
			//形成新的节点参数矩阵3
			j=0;
			for(i=sub_busnum1+sub_busnum2;i<flag1;i++)	
			{
				if(*(flag3+*(flag4+i))==1)
				{
					sub_busdata3[j]=tempbusdata[*(flag4+i)];
					j++;
				}
			}
			//形成新的支路参数矩阵3
			j=0;
			for(i=sub_branchnum1+sub_branchnum2;i<flag;i++)
			{
				sub_branchdata3[j]=tempbranchdata[*(flag6+i)];
				j++;
			}
			//计算子系统潮流程序,并进行过载、线路过载判断,负荷削减等操作
			sub_flow(tempbusdata,tempbranchdata,tempgendata,Busnum,Branchnum,Gennum,igen,
				sub_busdata3,sub_branchdata3,sub_busnum3,sub_branchnum3);
			//printf("sub_system3\n");
			delete []sub_busdata3;
			delete []sub_branchdata3;
			sub_busdata3=NULL;
			sub_branchdata3=NULL;
			/////////////子系统3///////////////
			if(flag1<Busnum)
			{/////4
				flag2=0;
				while(flag2<(Busnum-sub_busnum1-sub_busnum2-sub_busnum3))
				{
					if(flag2==0)
					{
						for(i=0;i<Busnum;i++)
						{
							if(*(flag3+i)==0)
							{
								startfind=i;
								break;
							}
						}
						*(flag3+startfind)=1;
						*(flag4+flag1)=startfind;
						flag1++;
					}
					else if(flag2>0&&*(flag4+flag2+sub_busnum1+sub_busnum2+sub_busnum3)!=-1)
						startfind=*(flag4+flag2+sub_busnum1+sub_busnum2+sub_busnum3);
				
					for(i=0;i<Branchnum;i++)
					{ 
						if(tempbranchdata[i].alrnum>0&&tempbranchdata[i].from==tempbusdata[startfind].busno)
						{
							if(*(flag5+i)==0)
							{
								*(flag5+i)=1;
								*(flag6+flag)=i;
								flag++;
							}
							for(int j=0;j<Busnum;j++)
							{
								if(tempbusdata[j].busno==tempbranchdata[i].to)
								{
									if(*(flag3+j)==0)
									{
										*(flag3+j)=1;
										*(flag4+flag1)=j;
										flag1++;
									}
									break;
								}
							}
						}
						else if(tempbranchdata[i].alrnum>0&&tempbranchdata[i].to==tempbusdata[startfind].busno)
						{
							if(*(flag5+i)==0)
							{
								*(flag5+i)=1;
								*(flag6+flag)=i;
								flag++;
							}
							for(int j=0;j<Busnum;j++)
							{
								if(tempbusdata[j].busno==tempbranchdata[i].from)
								{
									if(*(flag3+j)==0)
									{
										*(flag3+j)=1;
										*(flag4+flag1)=j;
										flag1++;
									}
									break;
								}
							}
						}
					}
					if(*(flag4+flag2+sub_busnum1+sub_busnum2+sub_busnum3)==-1)
						flag2=Busnum-sub_busnum1-sub_busnum2-sub_busnum3-1;
					flag2++;
				}
				//////////////////////////////
				int sub_busnum4,sub_branchnum4;
				struct Busdata *sub_busdata4;
				struct Branchdata *sub_branchdata4;
				sub_busnum4=flag1-sub_busnum1-sub_busnum2-sub_busnum3;
				sub_branchnum4=flag-sub_branchnum1-sub_branchnum2-sub_branchnum3;
				sub_branchdata4=new struct Branchdata[sub_branchnum4];
				sub_busdata4=new struct Busdata[sub_busnum4];
				//形成新的节点参数矩阵4
				j=0;
				for(i=sub_busnum1+sub_busnum2+sub_busnum3;i<flag1;i++)	
				{
					if(*(flag3+*(flag4+i))==1)
					{
						sub_busdata4[j]=tempbusdata[*(flag4+i)];
						j++;
					}
				}
				//形成新的支路参数矩阵4
				j=0;
				for(i=sub_branchnum1+sub_branchnum2+sub_branchnum3;i<flag;i++)
				{
					sub_branchdata4[j]=tempbranchdata[*(flag6+i)];
					j++;
				}
				//计算子系统潮流程序,并进行过载、线路过载判断,负荷削减等操作
				sub_flow(tempbusdata,tempbranchdata,tempgendata,Busnum,Branchnum,Gennum,igen,
					sub_busdata4,sub_branchdata4,sub_busnum4,sub_branchnum4);
				//printf("sub_system4\n");
				delete []sub_busdata4;
				delete []sub_branchdata4;
				sub_busdata4=NULL;
				sub_branchdata4=NULL;
				   ////////////////////////子系统4
				  if(flag1<Busnum)
				  {//////////5
					  flag2=0;
					  while(flag2<(Busnum-sub_busnum1-sub_busnum2-sub_busnum3-sub_busnum4))
					  {
						  if(flag2==0)
						  {
							  for(i=0;i<Busnum;i++)
							  {
								  if(*(flag3+i)==0)
									  startfind=i;
							  }
							  *(flag3+startfind)=1;
							  *(flag4+flag1)=startfind;
							  flag1++;
						  }
						  else if(flag2>0&&*(flag4+flag2+sub_busnum1+sub_busnum2+sub_busnum3+sub_busnum4)!=-1)
							  startfind=*(flag4+flag2+sub_busnum1+sub_busnum2+sub_busnum3+sub_busnum4);
					
					for(i=0;i<Branchnum;i++)
					{ 
						if(tempbranchdata[i].alrnum>0&&tempbranchdata[i].from==tempbusdata[startfind].busno)
						{
							if(*(flag5+i)==0)
							{
								*(flag5+i)=1;
								*(flag6+flag)=i;
								flag++;
							}
							for(int j=0;j<Busnum;j++)
							{
								if(tempbusdata[j].busno==tempbranchdata[i].to)
								{
									if(*(flag3+j)==0)
									{
										*(flag3+j)=1;
										*(flag4+flag1)=j;
										flag1++;
									}
									break;
								}
							}
						}
						else if(tempbranchdata[i].alrnum>0&&tempbranchdata[i].to==tempbusdata[startfind].busno)
						{
							if(*(flag5+i)==0)
							{
								*(flag5+i)=1;
								*(flag6+flag)=i;
								flag++;
							}
							for(int j=0;j<Busnum;j++)
							{
								if(tempbusdata[j].busno==tempbranchdata[i].from)
								{
									if(*(flag3+j)==0)
									{
										*(flag3+j)=1;
										*(flag4+flag1)=j;
										flag1++;
									}
									break;
								}
							}
						}
					}
					flag2++;
				}
				//////////////////////////////
				int sub_busnum5,sub_branchnum5;
				struct Busdata *sub_busdata5;
				struct Branchdata *sub_branchdata5;
				sub_busnum5=flag1-sub_busnum1-sub_busnum2-sub_busnum3-sub_busnum4;
				sub_branchnum5=flag-sub_branchnum1-sub_branchnum2-sub_branchnum3-sub_branchnum4;
				sub_branchdata5=new struct Branchdata[sub_branchnum5];
				sub_busdata5=new struct Busdata[sub_busnum5];
				//形成新的节点参数矩阵5
				j=0;
				for(i=sub_busnum1+sub_busnum2+sub_busnum3+sub_busnum4;i<flag1;i++)	
				{
					if(*(flag3+*(flag4+i))==1)
					{
						sub_busdata5[j]=tempbusdata[*(flag4+i)];
						j++;
					}
				}
				//形成新的支路参数矩阵5
				j=0;
				for(i=sub_branchnum1+sub_branchnum2+sub_branchnum3+sub_branchnum4;i<flag;i++)
				{
					sub_branchdata5[j]=tempbranchdata[*(flag6+i)];
					j++;
				}
				////////////////////////子系统5
				//计算子系统潮流程序,并进行过载、线路过载判断,负荷削减等操作
				sub_flow(tempbusdata,tempbranchdata,tempgendata,Busnum,Branchnum,Gennum,igen,
					sub_busdata5,sub_branchdata5,sub_busnum5,sub_branchnum5);
				delete []sub_busdata5;
				delete []sub_branchdata5;
				sub_busdata5=NULL;
				sub_branchdata5=NULL;
				//printf("sub_system5\n");
				  }//////////5
			}/////4
		}/////3
	}/////2
	else if(flag1==Busnum)
	{
		//形成子系统
		int sub_busnum1,sub_branchnum1;
		sub_busnum1=flag1;
		struct Busdata *sub_busdata1;
		struct Branchdata *sub_branchdata1;
		sub_branchnum1=flag;
		sub_busdata1=new struct Busdata[sub_busnum1];
		sub_branchdata1=new struct Branchdata[sub_branchnum1];
		//形成新的节点参数矩阵1
		int j=0;
		for(i=0;i<Busnum;i++)
		{
			if(*(flag3+i)==1)
			{
				sub_busdata1[j]=tempbusdata[i];
				j++;
			}
		}
		//形成新的支路参数矩阵1
		j=0;
		for(i=0;i<Branchnum;i++)
		{
			if(tempbranchdata[i].alrnum>0&&*(flag5+i)==1)
			{
				sub_branchdata1[j]=tempbranchdata[i];
				j++;
			}
		}
		//计算子系统潮流程序,并进行过载、线路过载判断,负荷削减等操作
		sub_flow(tempbusdata,tempbranchdata,tempgendata,Busnum,Branchnum,Gennum,igen,
			  sub_busdata1,sub_branchdata1,sub_busnum1,sub_branchnum1);
		delete []sub_busdata1;
        delete []sub_branchdata1;
		sub_busdata1=NULL;
		sub_branchdata1=NULL;
		//printf("sub_system1\n");
	}
	delete []flag3;
	flag3=NULL;
	delete []flag4;
	flag4=NULL;
	delete []flag5;
	flag5=NULL;
	delete []flag6;
	flag6=NULL;
}

⌨️ 快捷键说明

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