///<summary>产生线路数据</summary> static void genline(DistNet dn) { foreach (DNACLineBase item in dn.getAllObjListByObjType(EObjectType.输电线路)) { RunDataACLineBase rundata = item.busiRunData as RunDataACLineBase; AcntACLineBase acnt = item.busiAccount as AcntACLineBase; if (acnt.cap == 0) { acnt.cap = rd.Next(50); } rundata.activePower = acnt.cap * (0.4 + 0.5 * rd.NextDouble()); //rundata.powerFactor = 0.8 + 0.2 * rd.NextDouble(); //rundata.apparentPower = rundata.activePower / rundata.powerFactor; rundata.reactivePower = Math.Sqrt(Math.Pow(rundata.apparentPower, 2) - Math.Pow(rundata.activePower, 2)); //rundata.rateOfLoad = rundata.apparentPower / acnt.cap; if (rd.NextDouble() < 0.01) { if (events.Count > 50) { events.Remove(events.Last()); } events.Insert(0, new EventData() { eObjID = item.id, startTime = DateTime.Now, eType = (EventData.EEventType)rd.Next(2), eTitle = item.name + "事件.", eContent = DateTime.Now.ToShortDateString() + item.name + "事件描述......" }); } if (item is DNACLine) { if (rundata.lstApparentPower.Count == 0) //初始模拟50条 { for (int i = 50; i > 0; i--) { rundata.lstApparentPower.Add(new MyClassLibrary.DevShare.ChartDataPoint() { argudate = DateTime.Now.AddMinutes(i), value = acnt.cap * (0.4 + 0.5 * rd.NextDouble()) }); } } //rundata.addApparentPower(rundata.apparentPower); rundata.refresh(); } } }
void loaddata() { if (UCDNV863.EDISTNET == UCDNV863.EDistnet.亦庄16) { #region ----- gis16数据模拟或载入 ----- //逐项填写运行数据 //载入潮流 List <PowerBasicObject> objs = root.distnet.dbdesc["基础数据"].DictSQLS["导线段"].batchLoadRunData(root.distnet, false); foreach (var item in objs) { DNLineSeg obj = item as DNLineSeg; obj.isInverse = obj.thisRunData.activePower < 0; //校验方向 obj.tooltipMoveTemplate = "PlanningLineTemplate"; obj.tooltipMoveContent = obj.busiRunData; } //载入变电站 objs = root.distnet.dbdesc["基础数据"].DictSQLS["变电站"].batchLoadRunData(root.distnet, false); foreach (var obj in objs) { obj.tooltipMoveTemplate = "PlanningSubstationTemplate"; obj.tooltipMoveContent = obj.busiRunData; } //载入主变压器 objs = root.distnet.dbdesc["基础数据"].DictSQLS["主变压器"].batchLoadRunData(root.distnet, false); foreach (var obj in objs) { obj.tooltipMoveTemplate = "PlanningSubstationTemplate"; obj.tooltipMoveContent = obj.busiRunData; } #endregion } else if (UCDNV863.EDISTNET == UCDNV863.EDistnet.亦庄new) { DataProvider.PlanningRunDataRead(root.distnet, _Global.curInstanceID); #region ----- 新亦庄数据模拟或载入 ----- ////逐项填写运行数据 ////载入潮流 //List<PowerBasicObject> objs = root.distnet.dbdesc["基础数据"].DictSQLS["线路"].batchLoadRunData(root.distnet, false); //foreach (var item in objs) //{ // DNACLine obj = item as DNACLine; // obj.isInverse = obj.thisRunData.activePower < 0; //校验方向 // obj.tooltipMoveTemplate = "PlanningLineTemplate"; // obj.tooltipMoveContent = obj.busiRunData; //} ////载入变电站 //objs = root.distnet.dbdesc["基础数据"].DictSQLS["变电站"].batchLoadRunData(root.distnet, false); //foreach (var obj in objs) //{ // obj.tooltipMoveTemplate = "PlanningSubstationTemplate"; // obj.tooltipMoveContent = obj.busiRunData; //} ////载入主变压器 //objs = root.distnet.dbdesc["基础数据"].DictSQLS["主变2卷"].batchLoadRunData(root.distnet, false); //foreach (var obj in objs) //{ // obj.tooltipMoveTemplate = "PlanningSubstationTemplate"; // obj.tooltipMoveContent = obj.busiRunData; //} #endregion } else { #region ------ gis15数据模拟域载入 ------ //逐项填写运行数据 //载入潮流 string id; PowerBasicObject obj; DataTable dt = DataLayer.DataProvider.getDataTableFromSQL("select f_id id,f_mch name,f_begyg yg,f_begwg wg,f_begyg/1000 fzl from MCR_ACFLOW_BRANCH union select f_id id,f_mch name,F_SHDYG yg,F_SHDWG wg,f_fzl fzl from HCR_ACFLOW_BRANCH"); Dictionary <string, PowerBasicObject> objs; if (root.earth.objManager.zLayers.ContainsKey(EObjectCategory.导线类.ToString())) { //objs = root.earth.objManager.zLayers[EObjectCategory.导线类.ToString()].pModels; objs = root.distnet.getAllObjDictByCategory(EObjectCategory.导线类); foreach (DataRow dr in dt.Rows) { id = dr["id"].ToString(); if (objs.TryGetValue(id, out obj)) { if (obj.busiRunData == null) { obj.createRunData(); } RunDataACLineBase rdata = obj.busiRunData as RunDataACLineBase; //rdata.rateOfLoad = dr.getDouble("fzl"); rdata.activePower = dr.getDouble("yg"); rdata.reactivePower = dr.getDouble("wg"); (obj as pPowerLine).isInverse = rdata.activePower < 0; //校验方向 obj.tooltipMoveTemplate = "PlanningLineTemplate"; obj.tooltipMoveContent = obj.busiRunData; } } } //载入变电站 dt = DataLayer.DataProvider.getDataTableFromSQL("select f_id id, f_mch name,f_ygfh yg,f_wgfh wg, f_fzl fzl, f_cos fcos, null ryd from MCR_ACFLOW_SS union select f_id id,F_MCH name, F_YGFH yg, F_WGFH wg,f_fzl fzl,f_cos fcos,f_ryd ryd from HCR_ACFLOW_SSLR"); objs = root.earth.objManager.zLayers[EObjectCategory.变电设施类.ToString()].pModels; // root.earth.objManager.getAllObjDictBelongtoCategory("变电站"); foreach (DataRow dr in dt.Rows) { id = dr["id"].ToString(); if (objs.TryGetValue(id, out obj)) { if (obj.busiRunData == null) { obj.createRunData(); } RunDataSubstation rdata = obj.busiRunData as RunDataSubstation; rdata.activePower = dr.getDouble("yg"); rdata.reactivePower = dr.getDouble("wg"); //rdata.rateOfLoad = dr.getDouble("fzl") / 100; //rdata.powerFactor = dr.getDouble("fcos"); rdata.redundancy = dr.getDouble("ryd"); rdata.HVL = 90 + rd.Next(40); //zh 注模拟 //rdata.HVoltPUV = rdata.HVL / 110; obj.tooltipMoveTemplate = "PlanningSubstationTemplate"; obj.tooltipMoveContent = obj.busiRunData; } } //zh注,强制模拟配电室 foreach (var item in root.distnet.getAllObjListByObjType(EObjectType.配电室)) { if (item.busiRunData == null) { item.createRunData(); } RunDataTransformFacilityBase rdata = item.busiRunData as RunDataTransformFacilityBase; //rdata.rateOfLoad = (30.0 + rd.Next(60)) / 100; rdata.HVL = 8 + rd.Next(4); //rdata.HVoltPUV = rdata.HVL / 10; } //载入变压器 string sql = @" select f_id id, f_mch name, f_fh yg,f_wgfh wg,f_fzl fzl,f_glysh fcos,f_gycyxdy hvl,f_zsh allloss,f_shzgl ap,f_tgs closs,f_ts iloss,f_bs tloss,f_bsl tlr from HCR_ACFLOW_MTTV union select f_id id, f_mch name, f_fh yg,f_wgfh wg,f_fzl fzl,f_glysh fcos,f_gycyxdy hvl,f_zsh allloss,f_shzgl ap,f_tgs closs,f_ts iloss,f_bs tloss,f_bsl tlr from HCR_ACFLOW_MTTHV union select f_id id, f_mch name, f_ygfh yg,f_wgfh wg,f_fzl fzl,f_cos fcos,0 hvl,f_zws allloss,sqrt(f_ygfh*f_ygfh+f_wgfh*f_wgfh) ap,f_pbcus closs,f_pbfes iloss,f_pbsh tloss,f_pbsl tlr from MCR_ACFLOW_MT "; dt = DataLayer.DataProvider.getDataTableFromSQL(sql); if (root.earth.objManager.zLayers.ContainsKey(EObjectCategory.变压器类.ToString())) { objs = root.earth.objManager.zLayers[EObjectCategory.变压器类.ToString()].pModels;// root.earth.objManager.getAllObjDictBelongtoCategory("变压器"); foreach (DataRow dr in dt.Rows) { id = dr["id"].ToString(); if (objs.TryGetValue(id, out obj)) { RunDataTransformerBase rundata = new RunDataTransformerBase(obj) { activePower = double.Parse(dr["yg"].ToString()), reactivePower = double.Parse(dr["wg"].ToString()), //rateOfLoad = double.Parse(dr["fzl"].ToString()) / 100, //powerFactor = double.Parse(dr["fcos"].ToString()), HVL = double.Parse(dr["hvl"].ToString()), allLoss = double.Parse(dr["allloss"].ToString()), //apparentPower = double.Parse(dr["ap"].ToString()), copperLoss = double.Parse(dr["closs"].ToString()), ironLoss = double.Parse(dr["iloss"].ToString()), transformLoss = double.Parse(dr["tloss"].ToString()), transformLossRate = double.Parse(dr["tlr"].ToString()), }; obj.busiRunData = rundata; obj.tooltipMoveTemplate = "PlanningTransformerTemplate"; obj.tooltipMoveContent = obj.busiRunData; } } } //======= 载入节点数据 dt = DataLayer.DataProvider.getDataTableFromSQL("select * from MCR_ACFLOW_node"); //objs = root.earth.objManager.getAllObjDictBelongtoCategory("节点"); objs = root.distnet.getAllObjDictByObjType(EObjectType.节点); foreach (DataRow dr in dt.Rows) { id = dr["f_id"].ToString(); if (objs.TryGetValue(id, out obj)) { RunDataNode rundata = new RunDataNode(obj) { activePower = dr.getDouble("f_yg"), reactivePower = dr.getDouble("f_wg"), volt = dr.getDouble("f_dy"), //voltPUV = dr.getDouble("f_dy_by"), }; obj.busiRunData = rundata; } } ////载入3卷变压器 //dt = DataLayer.DataProvider.getDataTableFromSQL("select * from HCR_ACFLOW_MTTHV"); //objs = root.earth.objManager.getAllObjDictBelongtoCategory("3卷变压器"); //foreach (DataRow dr in dt.Rows) //{ // id = dr["f_id"].ToString(); // if (objs.TryGetValue(id, out obj)) // { // RunDataTransformer3P rundata = new RunDataTransformer3P() // { // name = dr["F_MCH"].ToString(), // activePower = double.Parse(dr["F_FH"].ToString()), // reactivePower = double.Parse(dr["F_WGFH"].ToString()), // rateOfLoad = double.Parse(dr["F_FZL"].ToString()) / 100, // powerFactor = double.Parse(dr["F_GLYSH"].ToString()), // HVL = double.Parse(dr["F_gycyxdy"].ToString()), // allLoss = double.Parse(dr["F_zsh"].ToString()), // apparentPower = double.Parse(dr["F_shzgl"].ToString()), // copperLoss = double.Parse(dr["F_tgs"].ToString()), // ironLoss = double.Parse(dr["F_ts"].ToString()), // transformLoss = double.Parse(dr["F_bs"].ToString()), // transformLossRate = double.Parse(dr["F_bsl"].ToString()), // }; // obj.busiRunData = rundata; // obj.tooltipMoveTemplate = "PlanningTransformer3Template"; // obj.tooltipMoveContent = obj.busiRunData; // } //} #endregion } }