| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955 |
- //众多变量不知道是什么意思
- #ifndef ElectricKernelCalculate_BaseDefine_FILE
- #define ElectricKernelCalculate_BaseDefine_FILE
- #include <vector>
- #include <map>
- #include "PublicEqpmtID.h"
- #include <algorithm>
- using namespace std;
- //#define Max_SigleArrowTrain_Nums 100 //单方向列车运行的数量
- //#define Max_SigleArrowTrain_Nums 152 //单方向列车运行的数量
- #define Max_Cal_Times 500 //最大计算周期
- // #define EF_Calculate_Offsize 0.001 //计算时间偏移差
- #define EF_Calculate_Offsize 0.001 //计算时间偏移差 20150123 hcz restore
- #define Voltage_Calculate_Offsize 10 //电压的误差值
- #define PowerNode_PH_Category 0 //PH节点类型 //平衡节点:主所母线节点 xyx注释
- #define PowerNode_PQ_Category 1 //PQ //牵混所及降压所:只接动力变压器的35kV母线节点(过渡节点) xyx注释
- #define PowerNode_PV_Category 2 //PV
- #define PowerNode_PQD_Category 3 //PQD //牵混所:接牵引变和动力变的35kV母线节点 xyx注释
- #define PowerNode_PQL_Category 4 //PQL 400v母线节点 //牵混及降压所:接动力负荷的400V母线节点 xyx注释
- #define PowerSource_R 0.0145 // 电源内阻
- #define UP_TRAIN_UPDATE 9000 //更新上行列车
- #define Train_Weight 204480 //车重
- #define Voltage_Point_Train_UP 1 //列车上行节点电压
- #define Voltage_Point_Train_Down 2 //列车下行节点电压
- #define Voltage_Point_Station_UP 3 //车站上行节点电压
- #define Voltage_Point_Station_Down 4 //车站下行节点电压
- #define Voltage_Point_Station_UpRailway 5 //轨道上行节点电压
- #define Voltage_Point_Station_DownRailway 6 //轨道下行节点电压
- #define Voltage_Point_Head_UP 7 //上行头节点电压
- #define Voltage_Point_Head_Down 8 //下行头节点电压
- #define Voltage_Point_Tail_UP 9 //上行尾节点电压
- #define Voltage_Point_Tail_Down 10 //下行尾节点电压
- #define Voltage_Point_Train 0 //列车节点电压
- #define Voltage_Point_Station 1 //车站节点电压
- #define PowerLine_R_Rate 0.00028 //电阻率
- #define TRAIN_DIR_DOWN 1 //下行
- #define TRAIN_DIR_UP 2 //上行
- #define TRAIN_DIR_HEAD 6 //头方向
- #define TRAIN_DIR_TAIL 9 //尾方向
- #define OCC_TRAIN_POWERBOW_STATUS_ON 20001 //受电弓状态 合
- #define OCC_TRAIN_POWERBOW_STATUS_OFF 20002 //受电弓状态 分
- #define Iterate_Calculate_Times 500 //迭代次数
- #define Eqpmt_Category_Powerline_Source 0 //交流侧电源支路线路 xyx新增
- #define Eqpmt_Category_Powerline 1 //线设备 //35kV交流侧环网进出线
- #define Eqpmt_Category_Powerline_Transformer_35To400 2 //交流侧35kV-400V动力变馈线 xyx新增
- #define Eqpmt_Category_Powerline_Transformer_35ToDC 3 //交流侧35kV-直流侧整流变馈线 xyx新增
- #define Eqpmt_Category_Powerline_BusTie 4 //交流侧母联支路线路 xyx新增
- #define Eqpmt_Category_Powerline_load 5 //交流侧负荷支路线路 xyx新增
- #define Power_Breaker_Reject_Oper 11001 //断路器拒动
- #define Power_Breaker_Protect_Run 11002 //断路器保护运行
- #define NetMsg_Update_EqpmtData 12000 //网络消息更新设备信息
- #define Power_OutLine_I 11005 //输出电流
- #define Power_InLine_I 11006 //输入电流
- #define Power_Line_I 11000 //电线电流
- #define Power_Line_PQI 11001 //接触网功率
- #define Power_Line_TNV 11002 //
- #define Power_Line_PQR 11003 ///
- #define Power_Line_PQV 11004 //?
- #define POWERVALUE_DATATYPE_V 500 //电压
- #define POWERVALUE_DATATYPE_I 504 //电流
- #define Dc_NodeKind_RectierToTouchNet 101 //节点类型:整流器到接触网
- #define Dc_NodeKind_RectierToRailWay 102 //节点类型:整流器到轨道
- #define Dc_NodeKind_RailWay 103 //节点类型:轨道
- #define Dc_NodeKind_UpTrain 104 //节点类型:上行列车节点
- #define Dc_NodeKind_DownTrain 105 //节点类型:下行列车节点
- #define Dc_NodeKind_UPHead 106 //节点类型:上行头节点
- #define Dc_NodeKind_DownHead 107 //节点类型:下行头节点
- #define Dc_NodeKind_UPTail 108 //节点类型:上行尾节点
- #define Dc_NodeKind_DownTail 109 //节点类型:下行尾节点
- #define DC_FristWorkScope_V 1593 //第一工区电压(整流器工作区间)
- #define DC_FristWorkScope_I 3414*2 //第一工区电流
- #define DC_FristWorkScope_R 0.03126/2 //第一工区电阻
- #define DC_SecondWorkScope_V 1640
- #define DC_SecondWorkScope_I 6063*2
- #define DC_SecondWorkScope_R 0.0455/2
- #define DC_ThirdWorkScope_V 1733
- #define DC_ThirdWorkScope_I 13029*2
- #define DC_ThirdWorkScope_R 0.0604/2
- #define DC_FourthWorkScope_V 1270
- #define DC_FourthWorkScope_I 18424*2
- #define DC_FourthWorkScope_R 0.1037/2
- #define DC_FifthWorkScope_V 3276
- #define DC_FifthWorkScope_I 20764*2
- #define DC_FifthWorkScope_R 0.1568/2
- #define DC_SixthWorkScope_V 1706
- #define DC_SixthWorkScope_I 20764*2
- #define DC_SixthWorkScope_R 0.0811/2
- const double OCC_POWER_Sacbase = 100000000; //视载功率(基准值)VA //交流侧基准容量Sac:100MVA
- const double OCC_POWER_Vacbase = 35000; //电压V //交流侧基准电压器Vac:35kV
- const double OCC_POWER_R_RATE = 0.00017; //电阻Ω/m //交流输电线路单位电阻0.17Ω/km
- const double OCC_POWER_X_RATE = 0.00038; //电抗Ω/m //交流输电线路单位电抗0.38Ω/km
- struct RX //电抗相关信息
- {
- double R; //阻抗的实部
- double X; //阻抗的虚部
- };
- struct SubLine //子线类,
- {
- string breakerid; //断路器ID
- string tranformid; //变压器ID
- double P; //功率的实部
- double BaseP; //功率(实)基准值
- double Q; //功率的虚部
- double BaseQ; //无功功率的标准值
- double I; //电流
- int type; //类型
- };
- struct CalNode //计算节点类
- {
- CalNode()
- {
- AddConsumeR = 0;
- AddConsumeX = 0;
- OutputI = 0;
- OutputV = 0;
- InputI = 0;
- Status = 1;
- m_IniE=0;
- m_IniF=0;
- }
- int ID; //节点ID //用于计算的母线节点编号ID,数据来源:Table_PowerCalNode xyx注释,以下同理
- string BgkID; //回流线ID //对应的母线节点图元编号ID
- int Category; //类型 //母线节点类型
- int Position; //位置 //母线所处位置:I段、II段
- int Index; //索引 //表中的母线节点索引ID
- string strName; //名称 //母线名称
- int StationID; //车站ID //母线所属车站ID
- double Pis; //节点i注入有功功率 //母线电源注入有功
- double Qis; //节点i注入无功功率 //母线电源注入无功
- double ConsumePowerR; //R消耗功率实部 //母线负荷消耗有功 标幺值
- double AddConsumeR; //增加消耗电阻实部 //母线注入有功代数和=Pis-ConsumePowerR
- double ConsumePowerX; //X消耗功率的虚部 //母线负荷消耗无功 标幺值
- double AddConsumeX; //增加消耗电阻虚部 //母线注入无功代数和=Qis-ConsumePowerX
- double InputV; //输入电压
- double OutputV; //输出电压
- double InputI; //输入电流
- double OutputI; //输出电流
- double E; //系统修正变量
- double F; //系统修正变量
- double m_IniE; //初始E //母线节点初始电压实部
- double m_IniF; //初始F //母线节点初始电压虚部
- string inputlineid; //输入线ID
- string outputlineid; //输出线ID
- std::vector<int> m_Relations; //关系列表 //与节点关联的支路,数据来源:Table_NodeRelation
- std::vector<SubLine> m_SubLines; //子线列表 //与节点关联的馈线支路,数据来源:Table_NodeRelationLine,注:新版计算暂时未用
- int Status; //节点状态 //节点带电状态
- std::vector<string> m_RelationsSwitch; //与节点关联的开关图元ID 数据来源:Table_LineSwitch中的SwitchID xyx新增
- };
- typedef struct tgPowerValue //相关电力值 //计算结果
- {
- tgPowerValue()
- {
- InputI=0;
- OutputI=0;
- P=0;
- Q=0;
- V=0;
- }
- int StationID; //车站ID
- int ID; //系统ID
- int Parm; //参数
- int Position; //位置
- string EqpmtID; //设备ID
- string SubLineID; //子线ID
- string MLineID; //母线ID
- double InputI; //设备状态 //输入电流 xyx注释
- string InputLineID; //输入线ID
- double OutputI; //输出电流
- string OutLineID; //输出线ID
- double P; //有功功率
- double Q; //无功功率
- double V; //电压
- }POWERVALUE,*LPPOWERVALUE;
- class EqpmtInfo //设备信息
- {
- public:
- EqpmtInfo(void){};
- ~EqpmtInfo(void){};
- int GetID(){return ID;}
- string GetStrID(){return strID;}
- int GetCateGory(){ return Category;}
- void SetEqpmtInfo(int id,int category,int status,string name)
- {
- ID =id;
- Category =category;
- Status=status;
- strID = name;
- }
- void SetStatus(int status) //设置线路状态
- {
- Status=status;
- }
- int GetStatus() //获取线路状态
- {
- return Status;
- }
- protected:
- int ID; //设备ID //线路计算编号:Table_PowerLine中的 “ID”
- int Category; //设备类型 //线路类型:Table_PowerLine中的 “Category”
- int Status; //设备状态 //线路初始状态:Table_PowerLine中的 “Status”
- string strID; //设备名称ID //线路名称:Table_PowerLine中的 “StrID”
- private:
- };
- class PowerLine : public EqpmtInfo //电线类
- {
- public:
- PowerLine(void)
- {
- TransformID=-1;
- };
- ~PowerLine(void){};
- double GetLineI()
- {
- return I;
- }
- void SetLenght(double lenght)
- {
- Lenght =lenght;
- }
- double GetCosumePower()
- {
- return CosumePower;
- }
- void SetTransformID(int id)
- {
- TransformID = id;
- }
- int GetTransformID()
- {
- return TransformID;
- }
- void SetIValue(double i)
- {
- I=i;
- }
- void SetRXB(double r,double x,double b)
- {
- R =r;
- X=x;
- B=b;
- }
- void SetLineID(int linel,int liner)
- {
- LlineID = linel;
- RlineID = liner;
- }
- void SetBgkLineID(int id)
- {
- BgkLineID = id;
- }
- int GetLlineID()
- {
- return LlineID;
- }
- int GetRlineID()
- {
- return RlineID;
- }
- int GetBgkLineID()
- {
- return BgkLineID;
- }
- double GetLenght()
- {
- return Lenght;
- }
- //xyx新增 begin 设置支路对应图元ID
- void SetBranchGraphUnitID(string EqpmntID)
- {
- BranchGraphUnitID = EqpmntID;
- }
- double GetR(){return R;}
- double GetX(){return X;}
- double GetB(){return B;}
- void AddSwitchID(string strID) //添加线路关联开关编号 added by zhangjiahua
- {
- vector <string>::iterator iterID;
- iterID=find(m_vecSwitchStrID.begin(),m_vecSwitchStrID.end(),strID);
- if (iterID==m_vecSwitchStrID.end())
- {
- m_vecSwitchStrID.push_back(strID);
- }
- }
- //void SetLineStatus(int status) //added by zhangjiahua
- //{
- // m_LineStatus=status;
- //}
- //int GetLineStatus() //added by zhangjiahua
- //{
- // return m_LineStatus;
- //}
- public:
- double CosumePower; //消耗功率
- double Lenght; //电线长度
- double R; //电阻实部
- double X; //电阻虚部
- double B; //节点导纳矩阵元素虚部(王大论文:P27)
- double I; //电流
- int LlineID; //左线ID //支路ij连接的i侧节点,对于变压器支路:i侧为1侧(即高压侧) xyx注释
- int RlineID; //右线ID //支路ij连接的j侧节点,对于变压器支路:j侧为k侧(即低压侧) xyx注释
- int TransformID; //变压器ID
- int BgkLineID; //回流线ID
- string BranchGraphUnitID; //支路对应的图元ID xyx新增
- vector<string> m_vecSwitchStrID; //支路上的关联开关图元编号(含断路器、隔离开关) added by zhangjiahua
- //int m_LineStatus; //线路状态 0断开 1连接
- private:
- };
- class Transform : public EqpmtInfo //变压器
- {
- public:
- Transform(void){};
- ~Transform(void){};
- void SetHead(int head)
- {
- Head =head;
- }
- int GetHead()
- {
- return Head;
- }
- void SetRate(double rate)
- {
- Rate = rate;
- }
- double GetRate()
- {
- return Rate;
- }
- void SetRelationLine(int line)
- {
- RelationLine = line;
- }
- void SetName(string name)
- {
- strName =name;
- }
- void SetID(int id)
- {
- ID =id;
- }
- protected:
- int Head; //变压器头节点
- double Rate; //变比
- int RelationLine; //关系线
- string strName; //变压器名称
- };
- struct TrainRuningData //列车运行数据,其中定义了与列车运行相关的数据
- {
- int ID; //列车ID
- int Kind; //列车类型
- double DistanceL; //左边长度
- double DistanceR; //右边长度
- double PowerRate; //功率
- double PowerI; //电流
- int LineR; //线电阻
- double PointVoltage; //电压
- };
- struct DCNodePQValue //直流PQ节点值
- {
- DCNodePQValue()
- {
- memset(this,0,sizeof(DCNodePQValue));
- }
- double P_QYSum[24]; //有功功率和
- double Q_QYSum[24]; //无功功率和
- double P_HKSum[24]; //副站有功功率
- double Q_HKSum[24]; //副站无功功率
- double P_QY; //?有功功率(主站)
- double Q_QY; //?无功功率
- double P_HK; //副站有功功率
- double Q_HK; //副站无功功率
- int StationID; //车站ID
- };
- struct LineNodeData //线节点数据
- {
- int ID; //线ID
- int Kind; //类型
- string TouchNetID; //接触网ID
- double excursion; //偏移(长度)
- };
- struct TrackLineData //轨道线路
- {
- int LineID; //轨道线ID
- int Index; //索引
- int NextLineID; //下一个轨道线ID
- double Lenght; //长度
- };
- struct TouchNet_ShortCut_Info //接触网短路信息
- {
- string touchnetid; //接触网ID
- int errorid; //故障ID
- };
- struct TouchNet_SpanNetApplyPower_Info //接触网_跨网信息类 //接触网越区供电
- {
- int stationid; //车站ID
- int nodeid; //节点ID
- int errorid; //故障ID
- int arrow; //列车运行方向
- };
- struct Track_Section //轨道区段
- {
- int Index; //索引
- int TrackID; //轨道区段ID
- double StartPos; //起始位置
- double EndPos; //结束位置
- };
- typedef map<int,Track_Section> TRACKSECMAP; //轨道区段信息列表
- struct TouchNet_Track_Relation //接触网与轨道的关系
- {
- string TouchNetID; //接触网ID
- TRACKSECMAP TrackSecsMap; //轨道区段列表
- };
- typedef map<string,TouchNet_Track_Relation> TOUCHNETRELAMAP; //接触网轨道区段关系列表
- struct DCStationUpNode //上行车站节点
- {
- double RUpPre; //R代表电阻
- double RDownPre;
- double RUpNext;
- double RDownNext;
- double PointVoltage;
- double PowerRate;
- double PowerI;
- };
- struct DCStationDownNode //下行车站节点
- {
- double RUpRail; //上行尾节点电阻
- double RDownRail; //下行
- double RSource; //
- double PointVoltage; //电压
- double PowerRate; //电阻
- double PowerI; //电流
- };
- struct DCStationRailwayNode //轨道节点
- {
- double RFedLine; //馈线电阻
- double RPreRail; //前一尾节点电阻
- double RNextRail; //下一尾节点电阻
- double YPreRail; //前一尾节点导纳
- double YNextRail; //下一尾节点导纳
- double PointVoltage; //节点电压
- double PowerRate; //电阻
- double PowerI; //电流
- };
- struct DCHeadTailNode //头尾节点
- {
- double RUpLine; //上行线电阻
- double RDown; //下行线电阻
- double YDown; //下行线导纳
- double PointVoltage; //电压
- double PowerRate; //功率
- double PowerI; //电流
- };
- struct StationInfo //车站信息,其中定义了列车运行的相关参数
- {
- int ID; //车站ID
- string Name; //车站名称
- double UpPreLineLen; //上行前一接触网段的长度 up代表上行,down代表下行
- double DownPreLineLen; //下行前一接接触网段的长度
- double UpNextLineLen; //上行下一接触网段的长度
- double DownNextLineLen; //下行下一段接触网的长度
- double UpRailwayLen; //上行轨道长度
- double DownRailwayLen; //下行轨道长度
- int NextStationID; //下一个车站ID
- int PreStationID; //前一个车站ID
- double RInner; //内阻
- DCStationUpNode UpSourceNode; //上行车站节点
- DCStationDownNode DownSourceNode; //下行车站节点
- DCStationRailwayNode PreRailNode; //前一轨道节点
- DCStationRailwayNode NextRailNode; //下一轨道节点
- };
- class Dc_PowerStation //电站类
- {
- public:
- Dc_PowerStation(){};
- virtual ~Dc_PowerStation(){};
- void SetID(int id)
- {
- m_ID = id;
- }
- void SetName(string strName)
- {
- m_strName = strName;
- }
- void SetContactNetLineLen(double lineuppre,double linedownpre,double linedownnext,double lineupnext)//4条直流馈线长度
- {
- m_UpPreLineLen = lineuppre;
- m_DownPreLineLen = linedownpre;
- m_UpNextLineLen = lineupnext;
- m_DownNextLineLen = linedownnext;
- }
- void SetFeedBackLineLen(double Upline,double Downline)//2条负极回流线长度
- {
- m_UpFeedBackLineLen = Upline;
- m_DownFeedBackLineLen = Downline;
- }
- void SetNearStation(int prestation, int nextstation)//左、右相邻牵混所编号
- {
- m_PreStationID = prestation;
- m_NextStationID = nextstation;
- }
- void SetRectierToTouchNetNodeID(int id)//正极母线节点
- {
- YN_RectierToTouchNetID = id;
- }
- void SetRectierToRailwayNodeID(int id)//负极母线节点
- {
- YN_RectierToRailwayID = id;
- }
- void SetUpRailwayNodeID(int id)//上行轨道节点编号
- {
- YN_UpRailwayID = id;
- }
- void SetDownRailwayNodeID(int id)//下行轨道节点编号
- {
- YN_DownRailwayID = id;
- }
- void SetUpTouchNetID(string id)//上行接触网节点编号
- {
- m_UpTouchNetID = id;
- }
- void SetDownTouchNetID(string id) //下行接触网节点编号
- {
- m_DownTouchNetID = id;
- }
- void SetWorkArea(int workarea)//工作区间
- {
- m_WorkArea = workarea;
- if (m_WorkArea>6)
- {
- m_WorkArea=6;
- }
- if (m_WorkArea<1)
- {
- m_WorkArea = 1;
- }
- switch (m_WorkArea)
- {
- case 1:
- {
- m_WorkArea_V = DC_FristWorkScope_V;
- m_WorkArea_I = DC_FristWorkScope_I;
- m_WorkArea_R = DC_FristWorkScope_R;
- }
- break;
- case 2:
- {
- m_WorkArea_V = DC_SecondWorkScope_V;
- m_WorkArea_I = DC_SecondWorkScope_I;
- m_WorkArea_R = DC_SecondWorkScope_R;
- }
- break;
- case 3:
- {
- m_WorkArea_V = DC_ThirdWorkScope_V;
- m_WorkArea_I = DC_ThirdWorkScope_I;
- m_WorkArea_R = DC_ThirdWorkScope_R;
- }
- break;
- case 4:
- {
- m_WorkArea_V = DC_FourthWorkScope_V;
- m_WorkArea_I = DC_FourthWorkScope_I;
- m_WorkArea_R = DC_FourthWorkScope_R;
- }
- break;
- case 5:
- {
- m_WorkArea_V = DC_FifthWorkScope_V;
- m_WorkArea_I = DC_FifthWorkScope_I;
- m_WorkArea_R = DC_FifthWorkScope_R;
- }
- break;
- case 6:
- {
- m_WorkArea_V = DC_SixthWorkScope_V;
- m_WorkArea_I = DC_SixthWorkScope_I;
- m_WorkArea_R = DC_SixthWorkScope_R;
- }
- break;
- }
- }
-
- //xyx新增begin
- void SetNoWorkArea(bool power)//整流机组退出时的参数设置
- {
- if (!power)
- {
- m_WorkArea_V = 0.0;
- m_WorkArea_I = 0.0;
- m_WorkArea_R = 0.0;
- }
- }
- //xyx新增end
-
- ////xyx测试begin 测试直流侧整流机组的短路情况
- //void SetFualtWorkArea()//整流机组短路时的参数设置
- //{
- // m_WorkArea_V = 12;
- // m_WorkArea_I = 642000;
- // m_WorkArea_R = 0.0008625;
- //}
- ////xyx测试end
- int GetID()
- {
- return m_ID;
- }
- int GetPreStationID()
- {
- return m_PreStationID;
- }
- int GetNextStationID()
- {
- return m_NextStationID;
- }
- string GetUpTouchNetID()
- {
- return m_UpTouchNetID;
- }
- string GetDownTouchNetID()
- {
- return m_DownTouchNetID;
- }
- int GetRectierToTouchNetNodeID()
- {
- return YN_RectierToTouchNetID;
- }
- int GetRectierToRailwayNodeID()
- {
- return YN_RectierToRailwayID;
- }
- int GetUpRailwayNodeID()
- {
- return YN_UpRailwayID;
- }
- int GetDownRailwayNodeID()
- {
- return YN_DownRailwayID;
- }
- double GetInnerR()
- {
- return m_WorkArea_R;
- }
- int GetWorkArea()
- {
- return m_WorkArea;
- }
- double GetWorkAreaV()
- {
- return m_WorkArea_V;
- }
- double GetWorkAreaI()
- {
- return m_WorkArea_I;
- }
- double GetPWorkAreaI()
- {
- switch (m_WorkArea)
- {
- case 1:
- {
- return 0;
- }
- break;
- case 2:
- {
- return DC_FristWorkScope_I;
- }
- break;
- case 3:
- {
- return DC_SecondWorkScope_I;
- }
- break;
- case 4:
- {
- return DC_ThirdWorkScope_I;
- }
- break;
- case 5:
- {
- return DC_FourthWorkScope_I;
- }
- break;
- case 6:
- {
- return DC_FifthWorkScope_I;
- }
- break;
- }
- return -1;
- }
- double GetUpFeedBackLineLen()
- {
- return m_UpFeedBackLineLen;
- }
- double GetDownFeedBackLen()
- {
- return m_DownFeedBackLineLen;
- }
- double GetInnerI()
- {
- return m_WorkArea_V/m_WorkArea_R;
- }
- double GetUpPreLineLen()
- {
- return m_UpPreLineLen;
- }
- double GetDownPreLineLen()
- {
- return m_DownPreLineLen;
- }
- double GetUpNextLineLen()
- {
- return m_DownNextLineLen;
- }
- double GetDownNextLineLen()
- {
- return m_DownNextLineLen;
- }
- //added by zhangjiahua begin
- void SetOverZoneUpSwitchID(string id)
- {
- m_OverZoneUpSwitchID=id;
- }
- string GetOverZoneUpSwitchID()
- {
- return m_OverZoneUpSwitchID;
- }
- void SetOverZoneDownSwitchID(string id)
- {
- m_OverZoneDownSwitchID=id;
- }
- string GetOverZoneDownSwitchID()
- {
- return m_OverZoneDownSwitchID;
- }
- //added by zhangjiahua end
- //xyx新增 begin
- //(1)上行前一直流馈线断路器图元ID
- void SetFeedUpPreBreakerID(string id)
- {
- m_FeedUpPreBreakerID=id;
- }
- string GetFeedUpPreBreakerID()
- {
- return m_FeedUpPreBreakerID;
- }
- //(2)上行后一直流馈线断路器图元ID
- void SetFeedUpNextBreakerID(string id)
- {
- m_FeedUpNextBreakerID=id;
- }
- string GetFeedUpNextBreakerID()
- {
- return m_FeedUpNextBreakerID;
- }
- //(3)下行前一直流馈线断路器图元ID
- void SetFeedDownPreBreakerID(string id)
- {
- m_FeedDownPreBreakerID=id;
- }
- string GetFeedDownPreBreakerID()
- {
- return m_FeedDownPreBreakerID;
- }
- //(4)下行后一直流馈线断路器图元ID
- void SetFeedDownNextBreakerID(string id)
- {
- m_FeedDownNextBreakerID=id;
- }
- string GetFeedDownNextBreakerID()
- {
- return m_FeedDownNextBreakerID;
- }
- //(5)直流正极母线节点图元ID
- void SetRectierToTouchNetUnitID(string id)
- {
- m_RectierToTouchNetUnitID=id;
- }
- string GetRectierToTouchNetUnitID()
- {
- return m_RectierToTouchNetUnitID;
- }
- //(6)直流负极母线节点图元ID
- void SetRectierToRailwayUnitID(string id)
- {
- m_RectierToRailwayUnitID=id;
- }
- string GetRectierToRailwayUnitID()
- {
- return m_RectierToRailwayUnitID;
- }
- //(7)直流进线开关I图元ID
- void SetFirstDCInputBreakerUnitID(string id)
- {
- m_FirstDCInputBreakerUnitID=id;
- }
- string GetFirstDCInputBreakerUnitID()
- {
- return m_FirstDCInputBreakerUnitID;
- }
- //(8)直流进线开关II图元ID
- void SetSecondDCInputBreakerUnitID(string id)
- {
- m_SecondDCInputBreakerUnitID=id;
- }
- string GetSecondDCInputBreakerUnitID()
- {
- return m_SecondDCInputBreakerUnitID;
- }
- //(9)设置带电状态
- void SetStatus(int status)
- {
- m_Status = status;
- }
- //xyx新增 begin
- protected:
- int m_ID; //车站ID
- string m_strName; //车站名称
- double m_UpPreLineLen; //上行前一车站长度 //上行前一直流馈线长度 xyx注释
- double m_DownPreLineLen; //下行前一车站长度 //下行前一直流馈线长度 xyx注释
- double m_UpNextLineLen; //上行下一车站长度 //上行后一直流馈线长度 xyx注释
- double m_DownNextLineLen; //下行下一车站长度 //下行后一直流馈线长度 xyx注释
- double m_UpFeedBackLineLen; //上行馈线长度 //上行回流线长度 xyx注释
- double m_DownFeedBackLineLen; //下行馈线长度 //下行回流线长度 xyx注释
- //added by zhangjiahua
- string m_OverZoneUpSwitchID; //上行越区隔离开关图元ID
- string m_OverZoneDownSwitchID; //下行越区隔离开关图元ID
- //xyx新增 begin
- string m_FeedUpPreBreakerID; //上行前一直流馈线断路器图元ID
- string m_FeedUpNextBreakerID; //上行后一直流馈线断路器图元ID
- string m_FeedDownPreBreakerID; //下行前一直流馈线断路器图元ID
- string m_FeedDownNextBreakerID; //下行后一直流馈线断路器图元ID
- string m_RectierToTouchNetUnitID; //直流正极母线节点图元ID
- string m_RectierToRailwayUnitID; //直流负极母线节点图元ID
- string m_FirstDCInputBreakerUnitID; //直流进线开关I图元ID
- string m_SecondDCInputBreakerUnitID; //直流进线开关II图元ID
- int m_Status; //节点带电状态
- //xyx新增 end
- int m_NextStationID; //下一车站ID
- int m_PreStationID; //前一车站ID
- int m_WorkArea;//工作区间
- double m_WorkArea_V;//区间电压
- double m_WorkArea_I;//区间电流
- double m_WorkArea_R;//区间电阻
- string m_UpTouchNetID; //上行接触网ID
- string m_DownTouchNetID; //下行接触网ID
- int YN_RectierToTouchNetID; //整流器到接触网ID
- int YN_RectierToRailwayID; //整流器到轨道ID
- int YN_UpRailwayID; //上行轨道节点ID
- int YN_DownRailwayID; //下行轨道节点ID
- };
- struct RailwayLineInfo
- {
- int lineSectionID; //轨道区段ID
- double length; //轨道区段长度
- int arrow; //轨道区段方向
- int nextMSectionID; //下一主段的编号
- int nextPSectionID; //下一副段的编号
- int preMSectionID; //前一主段编号
- int prePSectionID;
- int NextPowerStationID; //下一车站ID
- int PrePowerStationID; //前一车站ID
- };
- class DCSysTrain // 列车类
- {
- public:
- DCSysTrain(){};
- virtual ~DCSysTrain(){};
- double GetResistance(double speed)//功率计算
- {
- return (2.089+0.0394*speed+0.000675*speed*speed)*9.81;
- };
- public:
- int ID; //列车ID
- double Speed; //列车速度
- double weight; //列车重量
- int arrow; //列车方向
- int LineSectionID; //轨道区段ID
- double excursion; //长度
- int stationID; //车站ID
- double acceleration; //加速度
- double PowerRate; //功率
- int status; //列车状态
- int powerbowstatus; //受电弓状态
- };
- #endif
|