📄 iflow.h.bak
字号:
#ifndef _IFLOW_H
#define _IFLOW_H
#include <map>
#include <set>
#include <vector>
#include <string>
#include "IPsntp.h"
#include "IGraph.h"
using namespace std;
#ifdef _WINDOWS32
#define FLOW_API __declspec(dllexport)
#else
#define FLOW_API
#endif
namespace NM_PSNTP
{
//支路结构
struct Branch_T
{
DevId_T dev_id;
BsNo_T i;//i,j皆为正是线路,有一个为负号,表示是变压器支路。
BsNo_T j;
float r;
float x;
float yk;
};
struct Generator_T
{
DevId_T dev_id;
BsNo_T i;
float p;//发电机的p,q应该是正号。
float q;
float r;
float v;
};
struct Load_T
{
DevId_T dev_id;
BsNo_T i;
float p;//负荷的p,q应该是负号。
float q;
float r;
float v;
};
struct PvNode_T
{
BsNo_T i;
float v;
};
struct AllFlowDevice_T
{
vector<Branch_T> branch_vec;//变压器和线路支路数组
vector<Generator_T> gen_vec;//发电机数组
vector<Load_T> load_vec;//负荷数组
vector<PvNode_T> pvnode_vec;//pv节点数组
};
//导纳矩阵的对角元素,即节点的自导纳,N维
struct Yii_T
{
float g;
float b;
};
//导纳矩阵的上三角元素,即节点的互导纳,非零元素的个数维
struct Yij_T
{
float g;
float b;
int j;//存储非零元素所在列
};
//存储因子表的上下角元素。下三角和上三角是转置关系。
struct U_T
{
float value;//上三角的值
int j;//对应的列数
};
//存储节点的电压和角度
struct NodeVoltage_T
{
float v;//上三角的值
float theta;//对应的列数
};
class IFlow
{
public:
virtual void Release() = 0;
virtual ~IFlow() {};
public:
virtual void Reset() = 0;//重置潮流计算
virtual void SetGraph(AllFlowDevice_T &alldev) = 0;
virtual void SetNodeNum(int node_num) = 0;
};
class IFlowFactory
{
public :
virtual int CreateFlow(IFlow** ppObj) = 0;
virtual int Release() = 0;
};
};
int FLOW_API DllGetFlowFactoryObject(NM_PSNTP::IFlowFactory ** ppObj);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -