protected void HuangTowerCaculate(int index) { ElecCalsParas paras = ParaList[index]; ElecCalsRes SideCalRes = new ElecCalsRes(); SideCalRes.SpanFit = paras.BackSpanFit; SideCalRes.IsBackSide = true; //只是为了计算45风 SideCalRes.UpdataSor(paras.BackWeatherPara, paras.BackWirePara.Ind, paras.BackWirePara.Grd, paras.BackWirePara.OPGW, paras.JumpWirePara, paras.BackSidePara, paras.CommParas); TowerElecCals BackTower = ParaList[index - 1].TowerCals; BackTower.UpdataTowerTraHei(); BackTower.UpdateAtitudeTower(); TowerHangElecCals CalTower = (TowerHangElecCals)ParaList[index].TowerCals; CalTower.UpdataTowerTraHei(); CalTower.UpdateAtitudeTower(); TowerElecCals FrontTower = ParaList[index + 1].TowerCals; FrontTower.UpdataTowerTraHei(); FrontTower.UpdateAtitudeTower(); paras.CommParas.UpateIceCovrage(SideCalRes.Weather.WeathComm, SideCalRes.SideParas.IceArea); CalTower.GetAndUpdateSideRes(SideCalRes); CalTower.GetAndUpdateStrData(paras.StrDatas); for (int i = 0; i <= 9; i++) { CalTower.PhaseTraList[i].CalsStrLoad(); } CalTower.FlashBackHeiSub(BackTower); CalTower.FlashFrontHeiSub(FrontTower); CalTower.UpdateDFCure(); CalTower.Cals(); CalTower.UpdateTensionDiff(); }
public void TestMethod2_TowerHang() { var saveFileDialog = new Microsoft.Win32.SaveFileDialog() { Filter = "Txt Files (*.txt)|*.txt" }; if (saveFileDialog.ShowDialog() != true) { return; } var pro = new ProjectInfo("新建工程", "施工图"); pro.Volt = 500; pro.VoltStr = "500kV"; pro.ACorDC = 0; ElecCalsWire DxData = new ElecCalsWire("JL/G2A-720/50-45/7", 1, 775.41, 36.23, 2397.7, 63000, 20.9, 170600, 0, 25, 4); ElecCalsWire GrdData = new ElecCalsWire("JLB20A-150", 2, 148.07, 15.75, 989.4, 147200, 13, 178570, 1, 10); ElecCalsWire OPGWData = new ElecCalsWire("JLB20A-150", 3, 148.07, 15.75, 989.4, 147200, 13, 178570, 2, 10); ElecCalsWeaRes Weath15 = new ElecCalsWeaRes("15mm27m/s", 1); List <ElecCalsWorkCondition> wkcList = new List <ElecCalsWorkCondition>() { new ElecCalsWorkCondition() { Name = "最大风速", Temperature = 0, WindSpeed = 31, IceThickness = 0, }, new ElecCalsWorkCondition() { Name = "最低气温", Temperature = -20, WindSpeed = 0, IceThickness = 0, }, new ElecCalsWorkCondition() { //即Excel中的"电线覆冰" Name = "最大覆冰", Temperature = -5, WindSpeed = 10, IceThickness = 20, }, new ElecCalsWorkCondition() { Name = "平均气温", Temperature = 10, WindSpeed = 0, IceThickness = 0, }, new ElecCalsWorkCondition() { Name = "最高气温", Temperature = 40, WindSpeed = 0, IceThickness = 0, }, new ElecCalsWorkCondition() { Name = "安装情况", Temperature = -10, WindSpeed = 10, IceThickness = 0, }, new ElecCalsWorkCondition() { Name = "不均匀风", Temperature = 0, WindSpeed = 31, IceThickness = 0, }, new ElecCalsWorkCondition() { Name = "验算冰", Temperature = -5, WindSpeed = 10, IceThickness = 10, }, new ElecCalsWorkCondition() { Name = "验算不均匀冰I", Temperature = -5, WindSpeed = 10, IceThickness = 10, }, new ElecCalsWorkCondition() { Name = "验算不均匀冰II", Temperature = -5, WindSpeed = 10, IceThickness = 10, }, }; Weath15.InsertGK(wkcList); ElecCalsCommRes CommParas = new ElecCalsCommRes(); CommParas.Volt = pro.Volt; CommParas.VoltStr = pro.VoltStr; CommParas.Terrain = "山地"; CommParas.TerType = 'B'; CommParas.TerrainPara = 0.16; CommParas.IndAveHei = 20; CommParas.GrdAveHei = 20; CommParas.GrdCl = 12; CommParas.SetForIncrPara(); CommParas.SetForMaxMinPara(1.025, 1.025, 1.15 / 1.025, 1.1 / 1.025, 0.95, 0.95, 1, 1); var iceThick = wkcList.Find(item => item.Name == "最大覆冰").IceThickness; CommParas.CalMethodParaHang(1, 1, 1, iceThick, 1, 2); ElecCalsSideRes OneWrieSidePara = new ElecCalsSideRes(0.95, 2.5, 25, 1, 4, 25, 1, 4, 25); OneWrieSidePara.IceArea = "重冰区"; ElecCalsTowerAppre BackAppre = new ElecCalsTowerAppre(); BackAppre.SetTraPara(27.5, 13.3, 0, 35.3); ElecCalsTowerAppre CalsAppre = new ElecCalsTowerAppre(); CalsAppre.SetTraPara(26.1, 12.4, 0, 28.8); ElecCalsTowerAppre FrontAppre = new ElecCalsTowerAppre(); FrontAppre.SetTraPara(27.5, 13.3, 0, 35.3); ElecCalsSpanFit SpanFit = new ElecCalsSpanFit(0, 5, 10, 0, 4, 5, 0, 18, 10); TowerHangElecCals BackTower = new TowerHangElecCals(); TowerHangElecCals CalTower = new TowerHangElecCals(); TowerHangElecCals FrontTower = new TowerHangElecCals(); BackTower.SetPosInf("N6098", "SJ252D", 29, 1254.09997558594, -3, 0, 0, 0); BackTower.TowerAppre = BackAppre; BackTower.UpdataTowerTraHei(); BackTower.UpdateAtitudeTower(); CalTower.SetPosInf("N6099", "SZ253", 48, 1273, -4.7, 6, 0.3, 0); CalTower.SetFrontBackPosInf(374, 428, 466, 428); CalTower.TowerAppre = CalsAppre; CalTower.UpdataTowerTraHei(); CalTower.UpdateAtitudeTower(); FrontTower.SetPosInf("N6100", "SJ252D", 33, 1309.69995117187, -5, 0, 0, 0); FrontTower.TowerAppre = FrontAppre; FrontTower.UpdataTowerTraHei(); FrontTower.UpdateAtitudeTower(); List <string> LogList = new List <string>(); LogList.AddRange(BackTower.PrintHei("小号塔", false)); LogList.AddRange(FrontTower.PrintHei("大号塔", false)); LogList.AddRange(CalTower.PrintHei("计算塔", false)); ElecCalsRes SideCalRes = new ElecCalsRes(); SideCalRes.SpanFit = SpanFit; SideCalRes.IsBackSide = true; //只是为了计算45风 SideCalRes.UpdataSor(Weath15, DxData, GrdData, OPGWData, DxData, OneWrieSidePara, CommParas); CommParas.UpateIceCovrage(SideCalRes.Weather.WeathComm, SideCalRes.SideParas.IceArea); LogList.Add(CommParas.PrintIceCovrageHang()); CalTower.GetAndUpdateSideRes(SideCalRes); LogList.Add("\n张力:"); LogList.AddRange(CalTower.SideRes.PrintTension(CalTower.TowerType)); LogList.Add("\n比载和应力:"); LogList.AddRange(CalTower.SideRes.PrintBzAndYL(CalTower.TowerType)); //绝缘子串参数 ElecCalsStrData IndStr = new ElecCalsStrData(); IndStr.SetIGPara(701.58, 1, 28, 0, 8, 0, 0); ElecCalsStrData GrdStr = new ElecCalsStrData(); GrdStr.SetIGPara(29.08, 2, 1, 0, 4, 0, 0); CalTower.GetAndUpdateStrData(IndStr, GrdStr); for (int i = 0; i <= 9; i++) { CalTower.PhaseTraList[i].CalsStrLoad(); } //导线有2侧,每侧有3相,因为三相的数据一样,故每侧打印一相 LogList.Add("\n侧绝缘子串风荷载和垂直荷载:"); LogList.Add("导线"); LogList.AddRange(CalTower.PhaseTraList[0].PrintStrLoad(CalTower.TowerType)); LogList.Add("地线"); LogList.AddRange(CalTower.PhaseTraList[3].PrintStrLoad(CalTower.TowerType)); CalTower.FlashBackHeiSub(BackTower); CalTower.FlashFrontHeiSub(FrontTower); CalTower.UpdateDFCure(); LogList.AddRange(CalTower.PrintDFCure()); CalTower.Cals(); LogList.AddRange(CalTower.PrintCalsReslt()); CalTower.UpdateTensionDiff(); LogList.AddRange(CalTower.PrintTensionDiff()); FileUtils.TextSaveByLine(saveFileDialog.FileName, LogList); }