//众多变量不知道是什么意思 #ifndef ElectricKernelCalculate_BaseDefine_FILE #define ElectricKernelCalculate_BaseDefine_FILE #include #include #include "PublicEqpmtID.h" #include 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 m_Relations; //关系列表 //与节点关联的支路,数据来源:Table_NodeRelation std::vector m_SubLines; //子线列表 //与节点关联的馈线支路,数据来源:Table_NodeRelationLine,注:新版计算暂时未用 int Status; //节点状态 //节点带电状态 std::vector 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 ::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 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 TRACKSECMAP; //轨道区段信息列表 struct TouchNet_Track_Relation //接触网与轨道的关系 { string TouchNetID; //接触网ID TRACKSECMAP TrackSecsMap; //轨道区段列表 }; typedef map 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