📄 enum_branch.cpp
字号:
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 + -