| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #ifndef OCC_PUBLIC_DEFINE_ACHEADER_FILE
- #define OCC_PUBLIC_DEFINE_ACHEADER_FILE
- #pragma once
- #include "ElecBaseDefine.h"
- #include "CalculEquation.h"
- #include "BaseElectricEqpmt.h"
- #include <vector>
- #include <map>
- using namespace std;
- class ACSysMG//此类的作用 电力仿真模型交流计算模块
- {
- public:
- ACSysMG(void);
- void UpdataTrainData(DCSysTrain *pTrain); //更新列车数据
- bool AddPQNodeData(CalNode& node); //增加PQ节点数据
- bool AddEqpmtData(EqpmtInfo* pEqpmt); //添加设备数据
- bool CreatePQNodeMatrix(); //创建PQ节点矩阵
- bool CreateYKBMatrix(); //创建雅可比矩阵
- bool CalYKBMatriX(); //计算雅可比矩阵
- double CalPQValue(); //计算PQ值
- void CalNodePowerRate(); //计算节点功率
- double CalPiValue(int i); //计算PI值
- double CalQiValue(int i); //计算QI值
- void CalResult(); //计算相关结果
- double GetOutV(int i); //得到输出电压
- void InitData(); //初始化数据
- void SetYBZ(double i,double z,double y,double s,double v); //设置YBZ
- bool RunCalValue(); //动态计算相关电力值
- void GetPQIPublishLine(std::vector<POWERVALUE>& PQIList); //获取有功无功电流发布数据
- void GetIPublishLine(std::vector<POWERVALUE>& PQIList); //获取电流发布数据
- void SetPQValueArr(DCNodePQValue PQValueArr[]); //设置PQ值数组
- void GetMLVPublish(std::vector<POWERVALUE>& PQIList); //获取母线发布电压值
- void SetEqpmentMap(ELEEQPMTMAP *ElectricEqpmtMap)
- {
- m_pElectricEqpmtMap=ElectricEqpmtMap;
- }
- protected:
- typedef std::map<int,EqpmtInfo*> EqpmtMap;
- RX **ACNodeMatrix; //交流节点
- double *E; //节点电压实部
- double *F; //节点电压虚部
- double *P; //有功功率
- double *Q; //无功功率
- CalculEquation m_EquationCalcul; //方程计算对像
- bool CalStatus; //计算标志位(状态)
- double Iac; //交流侧电流
- double Zac; //交流侧阻抗
- double Yac; //交流侧导纳
- double Sac; //交流侧容量
- double Vac; //交流侧电压
- DCNodePQValue* p_PQValueArr; //直流侧PQ节点数组
- //保存当前计算数值,防止析构时数值变化导致数组越界
- int m_nMaxSigleArrowTrainNums; //单方向最大列车数量
- int m_nAllPowerStationNums; //全线所有车站数量
- public:
- ~ACSysMG(void);
- std::vector<CalNode> m_PQNodes; //PQ节点
- EqpmtMap m_EqpmtInfoMap; //电力元件信息列表
- std::mutex m_CritilSecEqpmt; //锁
- ELEEQPMTMAP *m_pElectricEqpmtMap; //电力设备相关信息
- typedef map<int,Dc_PowerStation> DCSTATIONMAP; //直流电站表,Dc_PowerStation直流电站类
- DCSTATIONMAP m_PowerStationNodeMap; //直流电站
- };
- #endif
|