📄 cnetflow.h
字号:
#ifndef _CNETFLOW_H
#define _CNETFLOW_H
#include "IFlow.h"
#include <set>
using namespace NM_PSNTP;
using namespace std;
namespace NM_PSNTP
{
class CNetFlow
{
public:
CNetFlow();
~CNetFlow();
private:
int m_app_no;
private:
AllFlowDevice_T m_allflow_dev_vec;
vector<Yii_T> m_yii_vec;//存储导纳矩阵对角元素,共N维。
vector<Yii_T> m_yii1_vec;//存储导纳矩阵对角元素,共N维。
vector<Yij_T> m_yij1_vec;//存储导纳矩阵上三角元素,共非零元素的个数维。
vector<Yij_T> m_yij_vec;//存储导纳矩阵上三角元素,共非零元素的个数维。
vector<int> m_nysum_vec;//存储每行非零元素的个数,共N维
vector<int> m_nyseq_vec;//存储每行非零元素的个数,共N维
int m_node_num;//系统中"母线"个数,也就是N
int m_branch_num;//系统中"支路"个数,也就是线路+变压器
int m_gn_num;//发电机个数
int m_ld_num;//负荷个数
vector<float> m_node_p;
vector<float> m_node_q;
vector<float> m_node_priv_p;
vector<float> m_node_priv_q;
vector<NodeVoltage_T> m_ndvolt_vec;
vector<float> m_DI;//P-θ时,DI为DP/v,在Q-V迭代时,DI为DQ/v
vector<float> m_v_vec;//求解出来的节点电压向量
vector<float> m_theta_vec;//求解出来的节点向量
//下面的变量存储因子表
vector<int> m_nusum_vec;//存储因子表中的上三角矩阵的每行非零元素个数
vector<float> m_d_vec;//存储因子表对角元素
vector<U_T> m_u_vec;//存储因子表上三角非零元素。
public:
virtual void Reset();//重置潮流计算
virtual void SetGraph(AllFlowDevice_T &alldev);
virtual void SetNodeNum(int node_num);
virtual void SetAppNo(int app_no){m_app_no = app_no;}
private:
void FormAdmittanceMatrix();//形成导纳矩阵
void FormFactorTable(int flag);//形成因子表
void FormFactorTable1(int flag);//形成因子表
void BackSubstitution();
void CalNodePower(int flag);
void InitNodeVolt();
void CalError(int flag);
void CalBranchFlow();
void AmendVolt(int flag);
};
class CFlowFactory:public IFlowFactory
{
public :
virtual int CreatePsntp(IFlow** ppObj)
{
*ppObj=(IFlow *)new IFlow;
return 1;
}
virtual int Release()
{
delete this;
return 1;
}
};
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -