📄 mcproc.cpp
字号:
//===========================================================================
// Power Class Implement Functions for EMS
//
// EMS高级应用软件
//===========================================================================
// 网络分析主程序
// mcmodel----network model creation for EMS network apps
// rev 0.0 6-10-2004 initial release Qwbin
// 版本 0.0 6-10-2004 第一次发布 齐文斌
//----------------------------------------------------------------------------
#include <time.h>
#include "malib.h"
void init_state (class EmsMatrix *maparmpt,int nbus);
///***********************************************************************int main(int num_arg, char *arg[]) {
int rc;
int divg_state = 0;
int numitm = 0;
int maorder_itm = 0;
class EmsMatrix *maparmpt = new class EmsMatrix();
init_state(maparmpt,6);
rc = maparmpt->maoptim();
if (rc == SUCCESS)
{
rc = maparmpt->mareordr();
if (rc == SUCCESS)
{
rc = maparmpt->matriang(); // construct g-matrix of triagular factors
}
if ( rc = maparmpt->mafbsub() != SUCCESS )
{
printf("masolve: forward/backward substitution fails!!\n");
return(rc);
}
}
struct mastatest* mastatept;
for (int i=0;i<(int)maparmpt->mastate_vt.size();i++)
{
mastatept = maparmpt->mastate_vt[i];
}
for (int i=0;i<(int)maparmpt->maamtrx_vt.size();i++)
{
struct maamtrxst* maamtrxpt = maparmpt->maamtrx_vt[i];
}
return 1;
}
//************************************************************************
// init_state - get the diagonal elements of the y-bus matrix:
// shunt devices, line charging, and off-nominal taps are neglected.
//************************************************************************
void init_state (class EmsMatrix *maparmpt,int nbus)
{
int i, j;
int cn=0;
maparmpt->mastateft =(char *)new struct mastatest[nbus];
maparmpt->maamtrxft =(char *)new struct maamtrxst[nbus*nbus];
maparmpt->maamtrxpt = (struct maamtrxst *)maparmpt->maamtrxft ;
maparmpt->mastatept = (struct mastatest *)maparmpt->mastateft;
int recNum = nbus*nbus;
if ( maparmpt->magmtrxft == NULL ) { maparmpt->magmtrxft =(char *) new struct magmtrxst[recNum]; memset( maparmpt->magmtrxft, 0, sizeof(struct magmtrxst) * recNum ); maparmpt->magmtrxpt =(struct magmtrxst*)maparmpt->magmtrxft;
for (int i=0;i<recNum;i++,maparmpt->magmtrxpt++)
{
maparmpt->magmtrx_vt.push_back(maparmpt->magmtrxpt);
} } else { memset( maparmpt->magmtrxft, 0, sizeof(struct magmtrxst) * recNum ); maparmpt->magmtrxpt =(struct magmtrxst*)maparmpt->magmtrxft; }
maparmpt->magmtrxpt =(struct magmtrxst*)maparmpt->magmtrxft;
for (i = 1; i <= 6; i++,maparmpt->mastatept++)
{
maparmpt->mastatept->maamtrx_itm=maparmpt->maamtrx_vt.size()+1;
maparmpt->mastatept->diag=(i+1)*(i+1);
maparmpt->mastatept->x=(i+1);
maparmpt->mastatept->maamtrx_cnt=0;
for (j =1; j <=6; j++, maparmpt->maamtrxpt++)
{
if ((i!=j)&&(i!=(j+2))&&(j!=(i+2)))
{
maparmpt->maamtrxpt->rowitm=i; //row number in mastate
maparmpt->maamtrxpt->colitm=j; //column number in mastate
maparmpt->maamtrxpt->g=i+j+1 ;
if (i>j)
{
maparmpt->maamtrxpt->element=i*i+j+3;
}
else
{
maparmpt->maamtrxpt->element=j*j+i+3;
}
maparmpt->maamtrx_vt.push_back(maparmpt->maamtrxpt);
maparmpt->mastatept->maamtrx_cnt++;
}
}
memset (&maparmpt->mastatept->stat, 0, sizeof(maparmpt->mastatept->stat));
maparmpt->mastatept->stat.active = TRUE;
maparmpt->mastate_vt.push_back(maparmpt->mastatept);
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -