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

📄 n_r_struct.h

📁 牛啦潮流算法源代码
💻 H
字号:
#ifndef  _N_R_STRUCT_STRUCT_
#define  _N_R_STRUCT_STRUCT_
//N_R_Struct.h
typedef struct  tagNodeParam
{
//节点数据
	int nCount;//节点数
	int PQCount;//PQ节点数
	int PVCount;//PV节点数
	CString *pzNodeName;//节点名
	int *pTpIndex;//节点编号
	int *pType;//节点类型:0:平衡节点 1:PQ节点 2:PV节点
	double *pUN;//节点电压的大小(模值)
	double *pEn;//节点电压实部
	double *pFn;//节点电压虚部
	double *pPN;//节点注入有功功率
	double *pQN;//节点注入无功功率
	double *pUmax;//节点电压运行上限
	double *pUmin;//节点电压运行下限
} NodeParam, *LPNodeParam;

typedef struct  tagBranchParam
{
	int    nCount;//支路总数
	CString *BranchName;//支路名数组
	CString *FirstPortName;//首节点名
	CString *LastPortName;//末节点名
	int *pFirstIndex;//首节点数组
	int *pLastIndex;//末节点数组(是变压器时带负号作标志)、、这样可省去一个一维数组作判断
    double *pR;//简化后支路电阻
	double *pX;//简化后支路电抗
	double *pK_Y0;//输电线充电容纳(忽略充电电阻)or变压器非标准变比(在J侧)
	double *pflowFtoL;
	double *qflowFtoL;//支路首端到尾端流动的总功率
	double *pflowLtoF;
	double *qflowLtoF;//支路首端到尾端流动的总功率
	double *plost;
	double *qlost;//支路的功率损耗
} BranchParam, *LPBranchParam;

typedef struct  tagNRParam
{
//导纳矩阵
	int nGBCount;//导纳矩阵阶数
	double *pG;//导纳矩阵实部n×n
	double *pB;//导纳矩阵虚部n×n
	int nJacobiCount;//修正量及雅克比矩阵阶数
//修正量:节点注入有功`无功功率及电压大小标么值修正量,节点电压 虚 实部修正量
	double *pPQ_Uef;
//雅克比矩阵
	double *pJacobi;//雅克比矩阵存储首地址	
//牛拉计算后可得到的参数
	double PWSL;//有功网损率
	double QWSL;//无功网损率
//叠代收敛所要求的精度和最大的迭代次数
	int nEps;//迭代精度科学计算法的指数(负整数)
	double duEps;//叠代收敛所要求的精度(双精度数)	
	int Didainum;//最大的迭代次数
	int RemainTimes;//剩余迭代次数

} NRParam, *LPNRParam;

struct  tagGeneticForPQ {
	double  *G_Conductance;                 //节点电导矩阵;个数为N*N维;N为节点个数
	double  *G_B_hr;                        //节点忽略电阻形成的电纳矩阵;个数为N*N维;N为节点个数
	double  *G_B_hb;                        //节点忽略接地支路形成的电纳矩阵;个数为N*N维;N为节点个数
	double  *G_B;		                    //节点电纳矩阵;个数为N*N维;N为节点个数
	double  *G_Voltage;                     //节点初始电压值;个数为N;N为节点个数;一般是电压估计值
	double  *G_Phase;                       //节点初始相角矩阵;个数为N;N为节点个数
	double  *G_CompQ;                       //补偿节点初始容量;个数为电容器和电抗器的总个数
	double  *G_J_gp;                        //节点注入有功;个数为N;N为节点个数
	double  *G_J_gq;                        //节点注入无功;个数为N;N为节点个数
	double  *G_J_lp;                        //节点流出有功;个数为N;N为节点个数
	double  *G_J_lq;                        //节点流出无功;个数为N;N为节点个数
	double  *G_Glt;				            //支路路电导;个数为支路个数
	double  *G_Blt;				            //支路电纳;个数为支路个数
	double  *G_BranchMaxMin;		        //支路电流约束;个数为支路个数
	double  *G_FirstVoltage;		        //初始电压值;个数为N;N为节点个数
	double  *G_Tapk;			            //支路的变压器变比;个数为支路个数
	double   BandWidth;        	  	        //发电厂电压调节幅度
	int	*G_NodeNum;                         //节点号;个数为N;N为节点个数
	int	*G_CompNode;                        //补偿节点号;个数为电容器和电抗器的总个数
	int  G_NodeNumber;                      //节点个数
	int	*Control_Node;                      //控制节点号;一般顺序是:发电机,电容器和电抗器,变压器的首节点和末节点
	int      G_BranchNumber;		        //支路数
	int     *G_Slt;				            //支路的首节点号;个数为支路个数
	int     *G_Elt;				            //支路的末节点号;个数为支路个数
	int     *pHighVolRank;       		    //发电厂高压侧母线电压等级;
	int  	*G_Nodetype;                    //节点的类型;个数为N;N为节点个数(pv:'1'、pq:'0'、平衡节点:'2')
	char    *G_BranchStyle;		           	//支路类型判断;个数为支路个数
};
#endif

⌨️ 快捷键说明

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